From f0c41bba0fcecd7ec775f1da315a03581e8cd4c0 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Wed, 3 Jan 2018 20:23:41 -0800 Subject: Added documentation --- .../_adaptive_fixed_block_allocator_8h_source.html | 84 + doc/html/_advanced_math_8h_source.html | 84 + doc/html/_android_debug_8h_source.html | 83 + doc/html/_android_file_system_8h_source.html | 84 + .../_android_platform_definitions_8h_source.html | 83 + doc/html/_android_platform_misc_8h_source.html | 84 + doc/html/_async_writable_resource_8h_source.html | 84 + doc/html/_atomics_8h_source.html | 83 + doc/html/_base_interfaces_g_l_8h_source.html | 84 + doc/html/_basic_atomics_8h_source.html | 83 + doc/html/_basic_file_stream_8h_source.html | 88 + doc/html/_basic_file_system_8h_source.html | 84 + doc/html/_basic_math_8h_source.html | 84 + doc/html/_basic_platform_debug_8h_source.html | 84 + doc/html/_basic_platform_misc_8h_source.html | 84 + ...sic_shader_source_stream_factory_8h_source.html | 84 + doc/html/_basic_types_8h_source.html | 95 + doc/html/_blend_state_8h_source.html | 156 ++ doc/html/_buffer_8h_source.html | 130 + doc/html/_buffer_base_8h_source.html | 139 + doc/html/_buffer_d3_d11_8h_source.html | 87 + doc/html/_buffer_d3_d11_impl_8h_source.html | 100 + doc/html/_buffer_d3_d12_8h_source.html | 88 + doc/html/_buffer_d3_d12_impl_8h_source.html | 108 + doc/html/_buffer_g_l_8h_source.html | 87 + doc/html/_buffer_g_l_impl_8h_source.html | 103 + doc/html/_buffer_view_8h_source.html | 99 + doc/html/_buffer_view_base_8h_source.html | 94 + doc/html/_buffer_view_d3_d11_8h_source.html | 87 + doc/html/_buffer_view_d3_d11_impl_8h_source.html | 92 + doc/html/_buffer_view_d3_d12_8h_source.html | 87 + doc/html/_buffer_view_d3_d12_impl_8h_source.html | 91 + doc/html/_buffer_view_g_l_8h_source.html | 86 + doc/html/_buffer_view_g_l_impl_8h_source.html | 91 + doc/html/_command_context_8h_source.html | 84 + doc/html/_command_list_8h_source.html | 86 + doc/html/_command_list_base_8h_source.html | 88 + doc/html/_command_list_d3_d11_impl_8h_source.html | 87 + doc/html/_command_list_d3_d12_impl_8h_source.html | 87 + doc/html/_command_list_manager_8h_source.html | 84 + doc/html/_command_queue_d3_d12_8h_source.html | 90 + doc/html/_command_queue_d3_d12_impl_8h_source.html | 91 + doc/html/_common_2include_2pch_8h_source.html | 83 + doc/html/_commonly_used_states_8h_source.html | 93 + doc/html/_constants_8h_source.html | 86 + doc/html/_d3_d11_debug_utilities_8h_source.html | 84 + doc/html/_d3_d11_type_conversions_8h_source.html | 111 + doc/html/_d3_d11_type_definitions_8h_source.html | 83 + doc/html/_d3_d12_resource_base_8h_source.html | 86 + doc/html/_d3_d12_type_conversions_8h_source.html | 88 + doc/html/_d3_d12_type_definitions_8h_source.html | 83 + doc/html/_d3_d12_utils_8h_source.html | 84 + doc/html/_d3_d_errors_8h_source.html | 85 + .../_d3_d_shader_resource_loader_8h_source.html | 89 + doc/html/_d3_d_type_conversion_impl_8h_source.html | 209 ++ .../_d3_d_view_desc_conversion_impl_8h_source.html | 100 + doc/html/_d_x_g_i_type_conversions_8h_source.html | 88 + doc/html/_data_blob_8h_source.html | 89 + doc/html/_data_blob_impl_8h_source.html | 89 + doc/html/_debug_utilities_8h_source.html | 83 + .../_default_raw_memory_allocator_8h_source.html | 84 + doc/html/_defines_8h_source.html | 83 + doc/html/_depth_stencil_state_8h_source.html | 116 + doc/html/_descriptor_heap_8h_source.html | 85 + doc/html/_device_caps_8h_source.html | 113 + doc/html/_device_context_8h_source.html | 196 ++ doc/html/_device_context_base_8h_source.html | 146 + doc/html/_device_context_d3_d11_8h_source.html | 87 + .../_device_context_d3_d11_impl_8h_source.html | 129 + doc/html/_device_context_d3_d12_8h_source.html | 90 + .../_device_context_d3_d12_impl_8h_source.html | 127 + doc/html/_device_context_g_l_8h_source.html | 87 + doc/html/_device_context_g_l_impl_8h_source.html | 119 + doc/html/_device_object_8h_source.html | 88 + doc/html/_device_object_base_8h_source.html | 92 + doc/html/_dynamic_upload_heap_8h_source.html | 85 + doc/html/_engine_d3_d11_attribs_8h_source.html | 90 + doc/html/_engine_d3_d11_defines_8h_source.html | 83 + doc/html/_engine_memory_8h_source.html | 86 + doc/html/_errors_8h_source.html | 83 + ...k__helper_2include_2_g_l_context_8h_source.html | 84 + ...id_2ndk__helper_2include_2shader_8h_source.html | 84 + doc/html/_f_b_o_cache_8h_source.html | 85 + doc/html/_file_stream_8h_source.html | 91 + doc/html/_file_system_8h_source.html | 83 + doc/html/_file_wrapper_8h_source.html | 84 + .../_fixed_block_memory_allocator_8h_source.html | 89 + doc/html/_format_message_8h_source.html | 84 + doc/html/_g_l_context_8h_source.html | 83 + doc/html/_g_l_context_android_8h_source.html | 84 + doc/html/_g_l_context_linux_8h_source.html | 84 + doc/html/_g_l_context_state_8h_source.html | 93 + doc/html/_g_l_context_windows_8h_source.html | 84 + doc/html/_g_l_object_wrapper_8h_source.html | 85 + doc/html/_g_l_program_8h_source.html | 85 + doc/html/_g_l_program_resources_8h_source.html | 85 + doc/html/_g_l_s_l_definitions_8h_source.html | 83 + doc/html/_g_l_s_l_definitions__inc_8h_source.html | 83 + doc/html/_g_l_stubs_8h_source.html | 83 + doc/html/_g_l_type_conversions_8h_source.html | 132 + doc/html/_generate_mips_8h_source.html | 84 + ..._2_graphics_engine_2include_2pch_8h_source.html | 83 + ...aphics_engine_2interface_2shader_8h_source.html | 148 + ...hics_engine_d3_d11_2include_2pch_8h_source.html | 83 + ...hics_engine_d3_d12_2include_2pch_8h_source.html | 83 + ..._open_g_l_2include_2_g_l_context_8h_source.html | 83 + ...cs_engine_open_g_l_2include_2pch_8h_source.html | 83 + ...s_2_graphics_tools_2include_2pch_8h_source.html | 83 + ..._s_l_converter_lib_2include_2pch_8h_source.html | 85 + doc/html/_graphics_accessories_8h_source.html | 134 + doc/html/_graphics_types_8h_source.html | 344 +++ doc/html/_graphics_utilities_8h_source.html | 91 + .../_h_l_s_l2_g_l_s_l_converter_8h_source.html | 88 + ..._h_l_s_l2_g_l_s_l_converter_impl_8h_source.html | 92 + ..._l_s_l2_g_l_s_l_converter_object_8h_source.html | 88 + doc/html/_h_l_s_l_keywords_8h_source.html | 83 + doc/html/_hash_utils_8h_source.html | 86 + doc/html/_input_layout_8h_source.html | 103 + doc/html/_interface_i_d_8h_source.html | 89 + doc/html/_j_n_i_helper_8h_source.html | 84 + doc/html/_linux_debug_8h_source.html | 83 + doc/html/_linux_file_system_8h_source.html | 83 + .../_linux_platform_definitions_8h_source.html | 83 + doc/html/_linux_platform_misc_8h_source.html | 84 + doc/html/_lock_helper_8h_source.html | 85 + doc/html/_map_helper_8h_source.html | 99 + doc/html/_memory_allocator_8h_source.html | 88 + doc/html/_n_d_k_helper_8h_source.html | 83 + doc/html/_object_8h_source.html | 91 + doc/html/_object_base_8h_source.html | 86 + doc/html/_pipeline_state_8h_source.html | 134 + doc/html/_pipeline_state_base_8h_source.html | 116 + doc/html/_pipeline_state_d3_d11_8h_source.html | 96 + .../_pipeline_state_d3_d11_impl_8h_source.html | 107 + doc/html/_pipeline_state_d3_d12_8h_source.html | 88 + .../_pipeline_state_d3_d12_impl_8h_source.html | 98 + doc/html/_pipeline_state_g_l_8h_source.html | 86 + doc/html/_pipeline_state_g_l_impl_8h_source.html | 93 + doc/html/_platform_debug_8h_source.html | 83 + doc/html/_platform_definitions_8h_source.html | 83 + doc/html/_platform_misc_8h_source.html | 83 + ..._platforms_2_u_w_p_2include_2pch_8h_source.html | 83 + ..._platforms_2_win32_2include_2pch_8h_source.html | 83 + doc/html/_rasterizer_state_8h_source.html | 107 + doc/html/_ref_cnt_auto_ptr_8h_source.html | 89 + doc/html/_ref_counted_object_impl_8h_source.html | 85 + doc/html/_reference_counters_8h_source.html | 93 + doc/html/_render_device_8h_source.html | 113 + doc/html/_render_device_base_8h_source.html | 214 ++ doc/html/_render_device_d3_d11_8h_source.html | 92 + doc/html/_render_device_d3_d11_impl_8h_source.html | 99 + doc/html/_render_device_d3_d12_8h_source.html | 95 + doc/html/_render_device_d3_d12_impl_8h_source.html | 102 + doc/html/_render_device_d3_d_base_8h_source.html | 188 ++ .../_render_device_factory_d3_d11_8h_source.html | 85 + .../_render_device_factory_d3_d12_8h_source.html | 85 + .../_render_device_factory_open_g_l_8h_source.html | 85 + doc/html/_render_device_g_l_8h_source.html | 92 + doc/html/_render_device_g_l_e_s_8h_source.html | 86 + .../_render_device_g_l_e_s_impl_8h_source.html | 84 + doc/html/_render_device_g_l_impl_8h_source.html | 106 + doc/html/_resource_mapping_8h_source.html | 99 + doc/html/_resource_mapping_impl_8h_source.html | 97 + doc/html/_ring_buffer_8h_source.html | 87 + doc/html/_root_signature_8h_source.html | 92 + doc/html/_s_t_d_allocator_8h_source.html | 84 + doc/html/_sampler_8h_source.html | 110 + doc/html/_sampler_base_8h_source.html | 91 + doc/html/_sampler_d3_d11_8h_source.html | 87 + doc/html/_sampler_d3_d11_impl_8h_source.html | 90 + doc/html/_sampler_d3_d12_8h_source.html | 87 + doc/html/_sampler_d3_d12_impl_8h_source.html | 91 + doc/html/_sampler_g_l_8h_source.html | 86 + doc/html/_sampler_g_l_impl_8h_source.html | 89 + doc/html/_shader_8h_source.html | 142 + doc/html/_shader_base_8h_source.html | 116 + doc/html/_shader_d3_d11_8h_source.html | 87 + doc/html/_shader_d3_d11_impl_8h_source.html | 94 + doc/html/_shader_d3_d12_8h_source.html | 86 + doc/html/_shader_d3_d12_impl_8h_source.html | 94 + doc/html/_shader_d3_d_base_8h_source.html | 86 + doc/html/_shader_g_l_8h_source.html | 86 + doc/html/_shader_g_l_impl_8h_source.html | 102 + doc/html/_shader_macro_helper_8h_source.html | 84 + doc/html/_shader_resource_binding_8h_source.html | 93 + .../_shader_resource_binding_base_8h_source.html | 91 + .../_shader_resource_binding_d3_d11_8h_source.html | 86 + ...der_resource_binding_d3_d11_impl_8h_source.html | 94 + .../_shader_resource_binding_d3_d12_8h_source.html | 86 + ...der_resource_binding_d3_d12_impl_8h_source.html | 93 + .../_shader_resource_binding_g_l_8h_source.html | 86 + ...shader_resource_binding_g_l_impl_8h_source.html | 94 + .../_shader_resource_cache_d3_d11_8h_source.html | 95 + .../_shader_resource_cache_d3_d12_8h_source.html | 86 + .../_shader_resource_layout_d3_d11_8h_source.html | 91 + .../_shader_resource_layout_d3_d12_8h_source.html | 95 + doc/html/_shader_resources_8h_source.html | 94 + doc/html/_shader_resources_d3_d11_8h_source.html | 88 + doc/html/_shader_resources_d3_d12_8h_source.html | 86 + doc/html/_shader_variable_d3_d_base_8h_source.html | 85 + doc/html/_standard_file_8h_source.html | 84 + doc/html/_state_objects_registry_8h_source.html | 92 + doc/html/_string_data_blob_impl_8h_source.html | 89 + doc/html/_string_tools_8h_source.html | 84 + doc/html/_swap_chain_8h_source.html | 89 + doc/html/_swap_chain_base_8h_source.html | 98 + doc/html/_swap_chain_d3_d11_8h_source.html | 89 + doc/html/_swap_chain_d3_d11_impl_8h_source.html | 94 + doc/html/_swap_chain_d3_d12_8h_source.html | 90 + doc/html/_swap_chain_d3_d12_impl_8h_source.html | 96 + doc/html/_swap_chain_g_l_8h_source.html | 86 + doc/html/_swap_chain_g_l_impl_8h_source.html | 91 + doc/html/_tex_region_render_8h_source.html | 89 + doc/html/_texture1_d___d3_d11_8h_source.html | 91 + doc/html/_texture1_d___o_g_l_8h_source.html | 84 + doc/html/_texture1_d_array___o_g_l_8h_source.html | 84 + doc/html/_texture2_d___d3_d11_8h_source.html | 91 + doc/html/_texture2_d___o_g_l_8h_source.html | 84 + doc/html/_texture2_d_array___o_g_l_8h_source.html | 84 + doc/html/_texture3_d___d3_d11_8h_source.html | 91 + doc/html/_texture3_d___o_g_l_8h_source.html | 84 + doc/html/_texture_8h_source.html | 144 + doc/html/_texture_base_8h_source.html | 143 + doc/html/_texture_base_d3_d11_8h_source.html | 104 + doc/html/_texture_base_g_l_8h_source.html | 105 + doc/html/_texture_cube___o_g_l_8h_source.html | 84 + .../_texture_cube_array___o_g_l_8h_source.html | 84 + doc/html/_texture_d3_d11_8h_source.html | 87 + doc/html/_texture_d3_d12_8h_source.html | 88 + doc/html/_texture_d3_d12_impl_8h_source.html | 105 + doc/html/_texture_g_l_8h_source.html | 88 + doc/html/_texture_uploader_8h_source.html | 87 + doc/html/_texture_uploader_base_8h_source.html | 85 + doc/html/_texture_uploader_d3_d11_8h_source.html | 85 + doc/html/_texture_uploader_d3_d12_8h_source.html | 85 + doc/html/_texture_uploader_g_l_8h_source.html | 85 + doc/html/_texture_view_8h_source.html | 120 + doc/html/_texture_view_base_8h_source.html | 101 + doc/html/_texture_view_d3_d11_8h_source.html | 87 + doc/html/_texture_view_d3_d11_impl_8h_source.html | 94 + doc/html/_texture_view_d3_d12_8h_source.html | 87 + doc/html/_texture_view_d3_d12_impl_8h_source.html | 94 + doc/html/_texture_view_g_l_8h_source.html | 86 + doc/html/_texture_view_g_l_impl_8h_source.html | 92 + doc/html/_timer_8h_source.html | 84 + doc/html/_u_w_p_debug_8h_source.html | 83 + doc/html/_u_w_p_definitions_8h_source.html | 83 + doc/html/_u_w_p_file_system_8h_source.html | 84 + doc/html/_unique_identifier_8h_source.html | 84 + doc/html/_v_a_o_cache_8h_source.html | 85 + doc/html/_validated_cast_8h_source.html | 83 + ...ariable_size_allocations_manager_8h_source.html | 85 + ...e_size_g_p_u_allocations_manager_8h_source.html | 86 + doc/html/_win32_atomics_8h_source.html | 84 + doc/html/_win32_debug_8h_source.html | 83 + doc/html/_win32_file_system_8h_source.html | 83 + .../_win32_platform_definitions_8h_source.html | 83 + doc/html/_win32_platform_misc_8h_source.html | 84 + doc/html/android__native__app__glue_8h_source.html | 85 + doc/html/annotated.html | 263 ++ doc/html/arrowdown.png | Bin 0 -> 246 bytes doc/html/arrowright.png | Bin 0 -> 229 bytes doc/html/bc_s.png | Bin 0 -> 676 bytes doc/html/bdwn.png | Bin 0 -> 147 bytes ...ass_diligent_1_1_basic_file_stream-members.html | 89 + doc/html/class_diligent_1_1_basic_file_stream.html | 117 + doc/html/class_diligent_1_1_basic_file_stream.png | Bin 0 -> 1267 bytes .../class_diligent_1_1_buffer_base-members.html | 102 + doc/html/class_diligent_1_1_buffer_base.html | 278 ++ doc/html/class_diligent_1_1_buffer_base.png | Bin 0 -> 2579 bytes ...ss_diligent_1_1_buffer_d3_d11_impl-members.html | 105 + .../class_diligent_1_1_buffer_d3_d11_impl.html | 252 ++ doc/html/class_diligent_1_1_buffer_d3_d11_impl.png | Bin 0 -> 4367 bytes ...ss_diligent_1_1_buffer_d3_d12_impl-members.html | 107 + .../class_diligent_1_1_buffer_d3_d12_impl.html | 314 +++ doc/html/class_diligent_1_1_buffer_d3_d12_impl.png | Bin 0 -> 6265 bytes ...class_diligent_1_1_buffer_g_l_impl-members.html | 105 + doc/html/class_diligent_1_1_buffer_g_l_impl.html | 223 ++ doc/html/class_diligent_1_1_buffer_g_l_impl.png | Bin 0 -> 4185 bytes ...lass_diligent_1_1_buffer_view_base-members.html | 94 + doc/html/class_diligent_1_1_buffer_view_base.html | 215 ++ doc/html/class_diligent_1_1_buffer_view_base.png | Bin 0 -> 2322 bytes ...ligent_1_1_buffer_view_d3_d11_impl-members.html | 98 + ...class_diligent_1_1_buffer_view_d3_d11_impl.html | 194 ++ .../class_diligent_1_1_buffer_view_d3_d11_impl.png | Bin 0 -> 4215 bytes ...ligent_1_1_buffer_view_d3_d12_impl-members.html | 97 + ...class_diligent_1_1_buffer_view_d3_d12_impl.html | 159 ++ .../class_diligent_1_1_buffer_view_d3_d12_impl.png | Bin 0 -> 4267 bytes ..._diligent_1_1_buffer_view_g_l_impl-members.html | 96 + .../class_diligent_1_1_buffer_view_g_l_impl.html | 155 + .../class_diligent_1_1_buffer_view_g_l_impl.png | Bin 0 -> 4023 bytes .../class_diligent_1_1_com_error_desc-members.html | 86 + doc/html/class_diligent_1_1_com_error_desc.html | 90 + ...ass_diligent_1_1_command_list_base-members.html | 91 + doc/html/class_diligent_1_1_command_list_base.html | 187 ++ doc/html/class_diligent_1_1_command_list_base.png | Bin 0 -> 2326 bytes ...igent_1_1_command_list_d3_d11_impl-members.html | 92 + ...lass_diligent_1_1_command_list_d3_d11_impl.html | 133 + ...class_diligent_1_1_command_list_d3_d11_impl.png | Bin 0 -> 3565 bytes ...igent_1_1_command_list_d3_d12_impl-members.html | 92 + ...lass_diligent_1_1_command_list_d3_d12_impl.html | 133 + ...class_diligent_1_1_command_list_d3_d12_impl.png | Bin 0 -> 3581 bytes ...gent_1_1_command_queue_d3_d12_impl-members.html | 91 + ...ass_diligent_1_1_command_queue_d3_d12_impl.html | 157 ++ ...lass_diligent_1_1_command_queue_d3_d12_impl.png | Bin 0 -> 2135 bytes ..._diligent_1_1_d3_d12_resource_base-members.html | 87 + .../class_diligent_1_1_d3_d12_resource_base.html | 109 + .../class_diligent_1_1_d3_d12_resource_base.png | Bin 0 -> 1076 bytes .../class_diligent_1_1_data_blob_impl-members.html | 89 + doc/html/class_diligent_1_1_data_blob_impl.html | 117 + doc/html/class_diligent_1_1_data_blob_impl.png | Bin 0 -> 1203 bytes ...s_diligent_1_1_device_context_base-members.html | 120 + .../class_diligent_1_1_device_context_base.html | 310 ++ .../class_diligent_1_1_device_context_base.png | Bin 0 -> 1505 bytes ...ent_1_1_device_context_d3_d11_impl-members.html | 138 + ...ss_diligent_1_1_device_context_d3_d11_impl.html | 986 +++++++ ...ass_diligent_1_1_device_context_d3_d11_impl.png | Bin 0 -> 3008 bytes ...ent_1_1_device_context_d3_d12_impl-members.html | 138 + ...ss_diligent_1_1_device_context_d3_d12_impl.html | 1041 +++++++ ...ass_diligent_1_1_device_context_d3_d12_impl.png | Bin 0 -> 3100 bytes ...ligent_1_1_device_context_g_l_impl-members.html | 137 + ...class_diligent_1_1_device_context_g_l_impl.html | 975 +++++++ .../class_diligent_1_1_device_context_g_l_impl.png | Bin 0 -> 2926 bytes ...ss_diligent_1_1_device_object_base-members.html | 90 + .../class_diligent_1_1_device_object_base.html | 243 ++ doc/html/class_diligent_1_1_device_object_base.png | Bin 0 -> 1752 bytes ...t_1_1_fixed_block_memory_allocator-members.html | 88 + ..._diligent_1_1_fixed_block_memory_allocator.html | 105 + ...s_diligent_1_1_fixed_block_memory_allocator.png | Bin 0 -> 835 bytes ..._h_l_s_l2_g_l_s_l_converter_object-members.html | 86 + ...gent_1_1_h_l_s_l2_g_l_s_l_converter_object.html | 120 + ...igent_1_1_h_l_s_l2_g_l_s_l_converter_object.png | Bin 0 -> 2513 bytes doc/html/class_diligent_1_1_i_buffer-members.html | 96 + doc/html/class_diligent_1_1_i_buffer.html | 522 ++++ doc/html/class_diligent_1_1_i_buffer.png | Bin 0 -> 9200 bytes ...class_diligent_1_1_i_buffer_d3_d11-members.html | 97 + doc/html/class_diligent_1_1_i_buffer_d3_d11.html | 179 ++ doc/html/class_diligent_1_1_i_buffer_d3_d11.png | Bin 0 -> 4369 bytes ...class_diligent_1_1_i_buffer_d3_d12-members.html | 98 + doc/html/class_diligent_1_1_i_buffer_d3_d12.html | 235 ++ doc/html/class_diligent_1_1_i_buffer_d3_d12.png | Bin 0 -> 4418 bytes .../class_diligent_1_1_i_buffer_g_l-members.html | 97 + doc/html/class_diligent_1_1_i_buffer_g_l.html | 149 + doc/html/class_diligent_1_1_i_buffer_g_l.png | Bin 0 -> 4200 bytes .../class_diligent_1_1_i_buffer_view-members.html | 90 + doc/html/class_diligent_1_1_i_buffer_view.html | 170 ++ doc/html/class_diligent_1_1_i_buffer_view.png | Bin 0 -> 8231 bytes ..._diligent_1_1_i_buffer_view_d3_d11-members.html | 91 + .../class_diligent_1_1_i_buffer_view_d3_d11.html | 161 ++ .../class_diligent_1_1_i_buffer_view_d3_d11.png | Bin 0 -> 4230 bytes ..._diligent_1_1_i_buffer_view_d3_d12-members.html | 91 + .../class_diligent_1_1_i_buffer_view_d3_d12.html | 131 + .../class_diligent_1_1_i_buffer_view_d3_d12.png | Bin 0 -> 4281 bytes ...ass_diligent_1_1_i_buffer_view_g_l-members.html | 90 + doc/html/class_diligent_1_1_i_buffer_view_g_l.html | 126 + doc/html/class_diligent_1_1_i_buffer_view_g_l.png | Bin 0 -> 4036 bytes .../class_diligent_1_1_i_command_list-members.html | 88 + doc/html/class_diligent_1_1_i_command_list.html | 119 + doc/html/class_diligent_1_1_i_command_list.png | Bin 0 -> 4798 bytes ...iligent_1_1_i_command_queue_d3_d12-members.html | 91 + .../class_diligent_1_1_i_command_queue_d3_d12.html | 157 ++ .../class_diligent_1_1_i_command_queue_d3_d12.png | Bin 0 -> 2143 bytes .../class_diligent_1_1_i_data_blob-members.html | 93 + doc/html/class_diligent_1_1_i_data_blob.html | 134 + doc/html/class_diligent_1_1_i_data_blob.png | Bin 0 -> 2518 bytes ...lass_diligent_1_1_i_device_context-members.html | 106 + doc/html/class_diligent_1_1_i_device_context.html | 1023 +++++++ doc/html/class_diligent_1_1_i_device_context.png | Bin 0 -> 5999 bytes ...ligent_1_1_i_device_context_d3_d11-members.html | 107 + ...class_diligent_1_1_i_device_context_d3_d11.html | 204 ++ .../class_diligent_1_1_i_device_context_d3_d11.png | Bin 0 -> 3020 bytes ...ligent_1_1_i_device_context_d3_d12-members.html | 108 + ...class_diligent_1_1_i_device_context_d3_d12.html | 271 ++ .../class_diligent_1_1_i_device_context_d3_d12.png | Bin 0 -> 3111 bytes ..._diligent_1_1_i_device_context_g_l-members.html | 107 + .../class_diligent_1_1_i_device_context_g_l.html | 205 ++ .../class_diligent_1_1_i_device_context_g_l.png | Bin 0 -> 2933 bytes ...class_diligent_1_1_i_device_object-members.html | 88 + doc/html/class_diligent_1_1_i_device_object.html | 119 + doc/html/class_diligent_1_1_i_device_object.png | Bin 0 -> 3500 bytes .../class_diligent_1_1_i_file_stream-members.html | 92 + doc/html/class_diligent_1_1_i_file_stream.html | 129 + doc/html/class_diligent_1_1_i_file_stream.png | Bin 0 -> 1893 bytes ...t_1_1_i_h_l_s_l2_g_l_s_l_converter-members.html | 90 + ..._diligent_1_1_i_h_l_s_l2_g_l_s_l_converter.html | 120 + ...s_diligent_1_1_i_h_l_s_l2_g_l_s_l_converter.png | Bin 0 -> 2518 bytes ...ss_diligent_1_1_i_memory_allocator-members.html | 88 + .../class_diligent_1_1_i_memory_allocator.html | 112 + doc/html/class_diligent_1_1_i_memory_allocator.png | Bin 0 -> 834 bytes doc/html/class_diligent_1_1_i_object-members.html | 90 + doc/html/class_diligent_1_1_i_object.html | 242 ++ doc/html/class_diligent_1_1_i_object.png | Bin 0 -> 5457 bytes ...lass_diligent_1_1_i_pipeline_state-members.html | 90 + doc/html/class_diligent_1_1_i_pipeline_state.html | 218 ++ doc/html/class_diligent_1_1_i_pipeline_state.png | Bin 0 -> 8636 bytes ...ligent_1_1_i_pipeline_state_d3_d11-members.html | 100 + ...class_diligent_1_1_i_pipeline_state_d3_d11.html | 456 +++ .../class_diligent_1_1_i_pipeline_state_d3_d11.png | Bin 0 -> 4436 bytes ...ligent_1_1_i_pipeline_state_d3_d12-members.html | 92 + ...class_diligent_1_1_i_pipeline_state_d3_d12.html | 192 ++ .../class_diligent_1_1_i_pipeline_state_d3_d12.png | Bin 0 -> 4484 bytes ..._diligent_1_1_i_pipeline_state_g_l-members.html | 90 + .../class_diligent_1_1_i_pipeline_state_g_l.html | 124 + .../class_diligent_1_1_i_pipeline_state_g_l.png | Bin 0 -> 4350 bytes ..._diligent_1_1_i_reference_counters-members.html | 93 + .../class_diligent_1_1_i_reference_counters.html | 335 +++ ...class_diligent_1_1_i_render_device-members.html | 96 + doc/html/class_diligent_1_1_i_render_device.html | 505 ++++ doc/html/class_diligent_1_1_i_render_device.png | Bin 0 -> 1772 bytes ...iligent_1_1_i_render_device_d3_d11-members.html | 101 + .../class_diligent_1_1_i_render_device_d3_d11.html | 368 +++ .../class_diligent_1_1_i_render_device_d3_d11.png | Bin 0 -> 732 bytes ...iligent_1_1_i_render_device_d3_d12-members.html | 102 + .../class_diligent_1_1_i_render_device_d3_d12.html | 284 ++ .../class_diligent_1_1_i_render_device_d3_d12.png | Bin 0 -> 751 bytes ...s_diligent_1_1_i_render_device_g_l-members.html | 98 + .../class_diligent_1_1_i_render_device_g_l.html | 251 ++ .../class_diligent_1_1_i_render_device_g_l.png | Bin 0 -> 1075 bytes ...ligent_1_1_i_render_device_g_l_e_s-members.html | 98 + ...class_diligent_1_1_i_render_device_g_l_e_s.html | 144 + .../class_diligent_1_1_i_render_device_g_l_e_s.png | Bin 0 -> 1064 bytes ...ss_diligent_1_1_i_resource_mapping-members.html | 92 + .../class_diligent_1_1_i_resource_mapping.html | 354 +++ doc/html/class_diligent_1_1_i_resource_mapping.png | Bin 0 -> 2057 bytes doc/html/class_diligent_1_1_i_sampler-members.html | 89 + doc/html/class_diligent_1_1_i_sampler.html | 136 + doc/html/class_diligent_1_1_i_sampler.png | Bin 0 -> 8286 bytes ...lass_diligent_1_1_i_sampler_d3_d11-members.html | 90 + doc/html/class_diligent_1_1_i_sampler_d3_d11.html | 158 ++ doc/html/class_diligent_1_1_i_sampler_d3_d11.png | Bin 0 -> 4167 bytes ...lass_diligent_1_1_i_sampler_d3_d12-members.html | 90 + doc/html/class_diligent_1_1_i_sampler_d3_d12.html | 158 ++ doc/html/class_diligent_1_1_i_sampler_d3_d12.png | Bin 0 -> 4233 bytes .../class_diligent_1_1_i_sampler_g_l-members.html | 89 + doc/html/class_diligent_1_1_i_sampler_g_l.html | 123 + doc/html/class_diligent_1_1_i_sampler_g_l.png | Bin 0 -> 4066 bytes doc/html/class_diligent_1_1_i_shader-members.html | 91 + doc/html/class_diligent_1_1_i_shader.html | 227 ++ doc/html/class_diligent_1_1_i_shader.png | Bin 0 -> 8158 bytes ...class_diligent_1_1_i_shader_d3_d11-members.html | 92 + doc/html/class_diligent_1_1_i_shader_d3_d11.html | 164 ++ doc/html/class_diligent_1_1_i_shader_d3_d11.png | Bin 0 -> 4072 bytes ...class_diligent_1_1_i_shader_d3_d12-members.html | 91 + doc/html/class_diligent_1_1_i_shader_d3_d12.html | 129 + doc/html/class_diligent_1_1_i_shader_d3_d12.png | Bin 0 -> 4141 bytes .../class_diligent_1_1_i_shader_g_l-members.html | 91 + doc/html/class_diligent_1_1_i_shader_g_l.html | 129 + doc/html/class_diligent_1_1_i_shader_g_l.png | Bin 0 -> 3991 bytes ...gent_1_1_i_shader_resource_binding-members.html | 90 + ...ass_diligent_1_1_i_shader_resource_binding.html | 263 ++ ...lass_diligent_1_1_i_shader_resource_binding.png | Bin 0 -> 6875 bytes ...1_i_shader_resource_binding_d3_d11-members.html | 90 + ...igent_1_1_i_shader_resource_binding_d3_d11.html | 121 + ...ligent_1_1_i_shader_resource_binding_d3_d11.png | Bin 0 -> 3645 bytes ...1_i_shader_resource_binding_d3_d12-members.html | 90 + ...igent_1_1_i_shader_resource_binding_d3_d12.html | 121 + ...ligent_1_1_i_shader_resource_binding_d3_d12.png | Bin 0 -> 3728 bytes ..._1_1_i_shader_resource_binding_g_l-members.html | 90 + ...diligent_1_1_i_shader_resource_binding_g_l.html | 121 + ..._diligent_1_1_i_shader_resource_binding_g_l.png | Bin 0 -> 3531 bytes ...shader_source_input_stream_factory-members.html | 86 + ...t_1_1_i_shader_source_input_stream_factory.html | 90 + ...ass_diligent_1_1_i_shader_variable-members.html | 88 + doc/html/class_diligent_1_1_i_shader_variable.html | 198 ++ doc/html/class_diligent_1_1_i_shader_variable.png | Bin 0 -> 1153 bytes .../class_diligent_1_1_i_swap_chain-members.html | 89 + doc/html/class_diligent_1_1_i_swap_chain.html | 178 ++ doc/html/class_diligent_1_1_i_swap_chain.png | Bin 0 -> 5811 bytes ...s_diligent_1_1_i_swap_chain_d3_d11-members.html | 92 + .../class_diligent_1_1_i_swap_chain_d3_d11.html | 220 ++ .../class_diligent_1_1_i_swap_chain_d3_d11.png | Bin 0 -> 2938 bytes ...s_diligent_1_1_i_swap_chain_d3_d12-members.html | 92 + .../class_diligent_1_1_i_swap_chain_d3_d12.html | 220 ++ .../class_diligent_1_1_i_swap_chain_d3_d12.png | Bin 0 -> 3025 bytes ...lass_diligent_1_1_i_swap_chain_g_l-members.html | 89 + doc/html/class_diligent_1_1_i_swap_chain_g_l.html | 119 + doc/html/class_diligent_1_1_i_swap_chain_g_l.png | Bin 0 -> 2720 bytes doc/html/class_diligent_1_1_i_texture-members.html | 96 + doc/html/class_diligent_1_1_i_texture.html | 457 +++ doc/html/class_diligent_1_1_i_texture.png | Bin 0 -> 12967 bytes ...lass_diligent_1_1_i_texture_d3_d11-members.html | 97 + doc/html/class_diligent_1_1_i_texture_d3_d11.html | 184 ++ doc/html/class_diligent_1_1_i_texture_d3_d11.png | Bin 0 -> 8495 bytes ...lass_diligent_1_1_i_texture_d3_d12-members.html | 98 + doc/html/class_diligent_1_1_i_texture_d3_d12.html | 220 ++ doc/html/class_diligent_1_1_i_texture_d3_d12.png | Bin 0 -> 5024 bytes .../class_diligent_1_1_i_texture_g_l-members.html | 98 + doc/html/class_diligent_1_1_i_texture_g_l.html | 155 + doc/html/class_diligent_1_1_i_texture_g_l.png | Bin 0 -> 4323 bytes .../class_diligent_1_1_i_texture_view-members.html | 93 + doc/html/class_diligent_1_1_i_texture_view.html | 241 ++ doc/html/class_diligent_1_1_i_texture_view.png | Bin 0 -> 8399 bytes ...diligent_1_1_i_texture_view_d3_d11-members.html | 94 + .../class_diligent_1_1_i_texture_view_d3_d11.html | 171 ++ .../class_diligent_1_1_i_texture_view_d3_d11.png | Bin 0 -> 4302 bytes ...diligent_1_1_i_texture_view_d3_d12-members.html | 94 + .../class_diligent_1_1_i_texture_view_d3_d12.html | 141 + .../class_diligent_1_1_i_texture_view_d3_d12.png | Bin 0 -> 4380 bytes ...ss_diligent_1_1_i_texture_view_g_l-members.html | 93 + .../class_diligent_1_1_i_texture_view_g_l.html | 136 + doc/html/class_diligent_1_1_i_texture_view_g_l.png | Bin 0 -> 4162 bytes .../class_diligent_1_1_map_helper-members.html | 97 + doc/html/class_diligent_1_1_map_helper.html | 213 ++ .../class_diligent_1_1_object_base-members.html | 86 + doc/html/class_diligent_1_1_object_base.html | 115 + doc/html/class_diligent_1_1_object_base.png | Bin 0 -> 12273 bytes ...s_diligent_1_1_pipeline_state_base-members.html | 99 + .../class_diligent_1_1_pipeline_state_base.html | 228 ++ .../class_diligent_1_1_pipeline_state_base.png | Bin 0 -> 2495 bytes ...ent_1_1_pipeline_state_d3_d11_impl-members.html | 112 + ...ss_diligent_1_1_pipeline_state_d3_d11_impl.html | 505 ++++ ...ass_diligent_1_1_pipeline_state_d3_d11_impl.png | Bin 0 -> 4424 bytes ...ent_1_1_pipeline_state_d3_d12_impl-members.html | 104 + ...ss_diligent_1_1_pipeline_state_d3_d12_impl.html | 328 +++ ...ass_diligent_1_1_pipeline_state_d3_d12_impl.png | Bin 0 -> 4475 bytes ...ligent_1_1_pipeline_state_g_l_impl-members.html | 103 + ...class_diligent_1_1_pipeline_state_g_l_impl.html | 266 ++ .../class_diligent_1_1_pipeline_state_g_l_impl.png | Bin 0 -> 4333 bytes ...lass_diligent_1_1_ref_cnt_auto_ptr-members.html | 86 + doc/html/class_diligent_1_1_ref_cnt_auto_ptr.html | 93 + ...lass_diligent_1_1_ref_cnt_weak_ptr-members.html | 88 + doc/html/class_diligent_1_1_ref_cnt_weak_ptr.html | 133 + ...ss_diligent_1_1_ref_counted_object-members.html | 86 + .../class_diligent_1_1_ref_counted_object.html | 95 + ...ss_diligent_1_1_render_device_base-members.html | 107 + .../class_diligent_1_1_render_device_base.html | 387 +++ doc/html/class_diligent_1_1_render_device_base.png | Bin 0 -> 1494 bytes ...gent_1_1_render_device_d3_d11_impl-members.html | 86 + ...ass_diligent_1_1_render_device_d3_d11_impl.html | 92 + ...lass_diligent_1_1_render_device_d3_d11_impl.png | Bin 0 -> 3992 bytes ...gent_1_1_render_device_d3_d12_impl-members.html | 86 + ...ass_diligent_1_1_render_device_d3_d12_impl.html | 92 + ...lass_diligent_1_1_render_device_d3_d12_impl.png | Bin 0 -> 4079 bytes ...ligent_1_1_render_device_d3_d_base-members.html | 107 + ...class_diligent_1_1_render_device_d3_d_base.html | 193 ++ .../class_diligent_1_1_render_device_d3_d_base.png | Bin 0 -> 2140 bytes ...iligent_1_1_render_device_g_l_impl-members.html | 107 + .../class_diligent_1_1_render_device_g_l_impl.html | 189 ++ .../class_diligent_1_1_render_device_g_l_impl.png | Bin 0 -> 2233 bytes ...diligent_1_1_resource_mapping_impl-members.html | 93 + .../class_diligent_1_1_resource_mapping_impl.html | 176 ++ .../class_diligent_1_1_resource_mapping_impl.png | Bin 0 -> 2051 bytes .../class_diligent_1_1_ring_buffer-members.html | 86 + doc/html/class_diligent_1_1_ring_buffer.html | 92 + .../class_diligent_1_1_root_signature-members.html | 86 + doc/html/class_diligent_1_1_root_signature.html | 90 + .../class_diligent_1_1_sampler_base-members.html | 92 + doc/html/class_diligent_1_1_sampler_base.html | 225 ++ doc/html/class_diligent_1_1_sampler_base.png | Bin 0 -> 2435 bytes ...s_diligent_1_1_sampler_d3_d11_impl-members.html | 95 + .../class_diligent_1_1_sampler_d3_d11_impl.html | 178 ++ .../class_diligent_1_1_sampler_d3_d11_impl.png | Bin 0 -> 4154 bytes ...s_diligent_1_1_sampler_d3_d12_impl-members.html | 95 + .../class_diligent_1_1_sampler_d3_d12_impl.html | 178 ++ .../class_diligent_1_1_sampler_d3_d12_impl.png | Bin 0 -> 4222 bytes ...lass_diligent_1_1_sampler_g_l_impl-members.html | 94 + doc/html/class_diligent_1_1_sampler_g_l_impl.html | 144 + doc/html/class_diligent_1_1_sampler_g_l_impl.png | Bin 0 -> 4053 bytes .../class_diligent_1_1_shader_base-members.html | 95 + doc/html/class_diligent_1_1_shader_base.html | 212 ++ doc/html/class_diligent_1_1_shader_base.png | Bin 0 -> 2405 bytes ...ss_diligent_1_1_shader_d3_d11_impl-members.html | 99 + .../class_diligent_1_1_shader_d3_d11_impl.html | 284 ++ doc/html/class_diligent_1_1_shader_d3_d11_impl.png | Bin 0 -> 4059 bytes ...ss_diligent_1_1_shader_d3_d12_impl-members.html | 97 + .../class_diligent_1_1_shader_d3_d12_impl.html | 251 ++ doc/html/class_diligent_1_1_shader_d3_d12_impl.png | Bin 0 -> 4127 bytes ...lass_diligent_1_1_shader_d3_d_base-members.html | 86 + doc/html/class_diligent_1_1_shader_d3_d_base.html | 100 + doc/html/class_diligent_1_1_shader_d3_d_base.png | Bin 0 -> 982 bytes ...class_diligent_1_1_shader_g_l_impl-members.html | 99 + doc/html/class_diligent_1_1_shader_g_l_impl.html | 251 ++ doc/html/class_diligent_1_1_shader_g_l_impl.png | Bin 0 -> 3974 bytes ...t_1_1_shader_resource_binding_base-members.html | 89 + ..._diligent_1_1_shader_resource_binding_base.html | 181 ++ ...s_diligent_1_1_shader_resource_binding_base.png | Bin 0 -> 1655 bytes ...hader_resource_binding_d3_d11_impl-members.html | 92 + ...nt_1_1_shader_resource_binding_d3_d11_impl.html | 236 ++ ...ent_1_1_shader_resource_binding_d3_d11_impl.png | Bin 0 -> 3632 bytes ...hader_resource_binding_d3_d12_impl-members.html | 92 + ...nt_1_1_shader_resource_binding_d3_d12_impl.html | 236 ++ ...ent_1_1_shader_resource_binding_d3_d12_impl.png | Bin 0 -> 3720 bytes ...1_shader_resource_binding_g_l_impl-members.html | 92 + ...igent_1_1_shader_resource_binding_g_l_impl.html | 236 ++ ...ligent_1_1_shader_resource_binding_g_l_impl.png | Bin 0 -> 3521 bytes ...t_1_1_shader_resource_cache_d3_d11-members.html | 86 + ..._diligent_1_1_shader_resource_cache_d3_d11.html | 104 + ..._1_1_shader_resource_layout_d3_d11-members.html | 86 + ...diligent_1_1_shader_resource_layout_d3_d11.html | 90 + ..._1_1_shader_resource_layout_d3_d12-members.html | 86 + ...diligent_1_1_shader_resource_layout_d3_d12.html | 90 + ...lass_diligent_1_1_shader_resources-members.html | 86 + doc/html/class_diligent_1_1_shader_resources.html | 100 + doc/html/class_diligent_1_1_shader_resources.png | Bin 0 -> 1032 bytes ...ligent_1_1_shader_resources_d3_d11-members.html | 86 + ...class_diligent_1_1_shader_resources_d3_d11.html | 92 + .../class_diligent_1_1_shader_resources_d3_d11.png | Bin 0 -> 792 bytes ...ligent_1_1_shader_resources_d3_d12-members.html | 86 + ...class_diligent_1_1_shader_resources_d3_d12.html | 92 + .../class_diligent_1_1_shader_resources_d3_d12.png | Bin 0 -> 807 bytes ...iligent_1_1_state_objects_registry-members.html | 91 + .../class_diligent_1_1_state_objects_registry.html | 183 ++ ...diligent_1_1_string_data_blob_impl-members.html | 89 + .../class_diligent_1_1_string_data_blob_impl.html | 117 + .../class_diligent_1_1_string_data_blob_impl.png | Bin 0 -> 1254 bytes ...class_diligent_1_1_swap_chain_base-members.html | 91 + doc/html/class_diligent_1_1_swap_chain_base.html | 197 ++ doc/html/class_diligent_1_1_swap_chain_base.png | Bin 0 -> 1417 bytes ...iligent_1_1_swap_chain_d3_d11_impl-members.html | 96 + .../class_diligent_1_1_swap_chain_d3_d11_impl.html | 285 ++ .../class_diligent_1_1_swap_chain_d3_d11_impl.png | Bin 0 -> 2927 bytes ...iligent_1_1_swap_chain_d3_d12_impl-members.html | 96 + .../class_diligent_1_1_swap_chain_d3_d12_impl.html | 285 ++ .../class_diligent_1_1_swap_chain_d3_d12_impl.png | Bin 0 -> 3013 bytes ...s_diligent_1_1_swap_chain_g_l_impl-members.html | 93 + .../class_diligent_1_1_swap_chain_g_l_impl.html | 186 ++ .../class_diligent_1_1_swap_chain_g_l_impl.png | Bin 0 -> 2697 bytes ...s_diligent_1_1_texture1_d___d3_d11-members.html | 108 + .../class_diligent_1_1_texture1_d___d3_d11.html | 201 ++ .../class_diligent_1_1_texture1_d___d3_d11.png | Bin 0 -> 5468 bytes ...s_diligent_1_1_texture2_d___d3_d11-members.html | 108 + .../class_diligent_1_1_texture2_d___d3_d11.html | 201 ++ .../class_diligent_1_1_texture2_d___d3_d11.png | Bin 0 -> 5480 bytes ...s_diligent_1_1_texture3_d___d3_d11-members.html | 108 + .../class_diligent_1_1_texture3_d___d3_d11.html | 201 ++ .../class_diligent_1_1_texture3_d___d3_d11.png | Bin 0 -> 5469 bytes .../class_diligent_1_1_texture_base-members.html | 103 + doc/html/class_diligent_1_1_texture_base.html | 284 ++ doc/html/class_diligent_1_1_texture_base.png | Bin 0 -> 2581 bytes ...s_diligent_1_1_texture_base_d3_d11-members.html | 108 + .../class_diligent_1_1_texture_base_d3_d11.html | 272 ++ .../class_diligent_1_1_texture_base_d3_d11.png | Bin 0 -> 8492 bytes ...lass_diligent_1_1_texture_base_g_l-members.html | 108 + doc/html/class_diligent_1_1_texture_base_g_l.html | 239 ++ doc/html/class_diligent_1_1_texture_base_g_l.png | Bin 0 -> 4318 bytes ...s_diligent_1_1_texture_d3_d12_impl-members.html | 109 + .../class_diligent_1_1_texture_d3_d12_impl.html | 309 ++ .../class_diligent_1_1_texture_d3_d12_impl.png | Bin 0 -> 6757 bytes ...ass_diligent_1_1_texture_view_base-members.html | 97 + doc/html/class_diligent_1_1_texture_view_base.html | 226 ++ doc/html/class_diligent_1_1_texture_view_base.png | Bin 0 -> 2344 bytes ...igent_1_1_texture_view_d3_d11_impl-members.html | 102 + ...lass_diligent_1_1_texture_view_d3_d11_impl.html | 240 ++ ...class_diligent_1_1_texture_view_d3_d11_impl.png | Bin 0 -> 4288 bytes ...igent_1_1_texture_view_d3_d12_impl-members.html | 102 + ...lass_diligent_1_1_texture_view_d3_d12_impl.html | 211 ++ ...class_diligent_1_1_texture_view_d3_d12_impl.png | Bin 0 -> 4366 bytes ...diligent_1_1_texture_view_g_l_impl-members.html | 100 + .../class_diligent_1_1_texture_view_g_l_impl.html | 202 ++ .../class_diligent_1_1_texture_view_g_l_impl.png | Bin 0 -> 4150 bytes doc/html/classes.html | 170 ++ doc/html/closed.png | Bin 0 -> 132 bytes doc/html/d3dx12__win_8h_source.html | 83 + doc/html/dir_025bdc97dd64691b0b4f955c81213e8c.html | 87 + doc/html/dir_02d6d0846e01f3d88bd4a80b12ddffed.html | 83 + doc/html/dir_06ef4e3f07a13813ee5ae3ec0e9bad35.html | 87 + doc/html/dir_09e59e443c246ed342ba89292195248a.html | 83 + doc/html/dir_1238e6cbf5461cee8548eafbea3fb374.html | 87 + doc/html/dir_167d4bd16e8890a7cd2ff5ec5270769a.html | 87 + doc/html/dir_1f72b11abb8bace4525c8c39e6f19341.html | 87 + doc/html/dir_23a53e76397ca6b389073375cca4ee24.html | 83 + doc/html/dir_2424fdfe65d59a93479936929e7463cb.html | 83 + doc/html/dir_2fe9345e431230b3d055068f7e103e1c.html | 87 + doc/html/dir_3048468492d713bfc2aaa22d8490a571.html | 87 + doc/html/dir_344658fcb16a13a09094a2878bfe0cc6.html | 83 + doc/html/dir_3752367cbca4c9b58dde90984de9bccc.html | 83 + doc/html/dir_3a4ebd241e0adc51deb2a66da42ae463.html | 93 + doc/html/dir_3a819408b9777a60f7f57340e4147aae.html | 93 + doc/html/dir_41be5404b15064fd6cb707edbcd785b7.html | 83 + doc/html/dir_443fc37f241ba4018364a998c18d007b.html | 83 + doc/html/dir_4ab6b4cc6a7edbff49100e9123df213f.html | 87 + doc/html/dir_4c3a11d98988e5797b69924924a84da2.html | 83 + doc/html/dir_4d872942c630370da04c302542204c89.html | 83 + doc/html/dir_5141a14ee98b46749a6defb3839dab55.html | 93 + doc/html/dir_5d3b9e51e9fbe434f439d538f18d672c.html | 83 + doc/html/dir_5efc8bc1e288832c60268f64c6a51239.html | 83 + doc/html/dir_621c25a4dce711ebf3a6f5a041b77c17.html | 83 + doc/html/dir_645f2f2568fa5c02031acbfd93298cd3.html | 87 + doc/html/dir_64f7452aef2cdad98d34a70f5ea329e2.html | 83 + doc/html/dir_65579a36a59e5fa8e560426a7872d069.html | 87 + doc/html/dir_6efbf128a3ac7cc438f7e283f4b26daa.html | 83 + doc/html/dir_6f5298fc22fb2bb7779e518b5f3e37e7.html | 87 + doc/html/dir_71a0fe92868d87339603cb54d401c25a.html | 83 + doc/html/dir_72dd7f9d43aa98ace886b3544ecc96ae.html | 83 + doc/html/dir_73a797b61c7265598bf7f4b979c6c9ed.html | 87 + doc/html/dir_75aeac67226ff3fcc423c42454e837cc.html | 87 + doc/html/dir_78a75200960430ffac0c2ee6accc16da.html | 111 + doc/html/dir_78c27d1ffd1798cbaedc6831f648b547.html | 90 + doc/html/dir_7ebeaf53366ffd3dfb1d502f7c5f4426.html | 153 + doc/html/dir_84b36d56f7b4fc52b5c5efb321dc0000.html | 87 + doc/html/dir_85012488fe36283ebcb15fcbda1ae89f.html | 83 + doc/html/dir_85f39ffbb838bbfece321bb4f8d621bf.html | 90 + doc/html/dir_9195ec9876d1a0109e971c171bae0f6f.html | 97 + doc/html/dir_92cb2900980f09bf257878861626e98f.html | 83 + doc/html/dir_93be327b3cc3da5529d54ec42b11f308.html | 83 + doc/html/dir_9471888542df7613d67bd77853f3043a.html | 83 + doc/html/dir_986ed229c8bd2105276dc6f7f6691aa2.html | 87 + doc/html/dir_9b8b2ba32555d10c6e461abe40fed114.html | 83 + doc/html/dir_9bd32c6442cde976f141bac2efe8a42e.html | 83 + doc/html/dir_9c4007343c7adfd14026107d5f4d7396.html | 83 + doc/html/dir_a979a0769f701b04637d969865d65bf6.html | 126 + doc/html/dir_b05a5fa85f84bfc9013183c9d87f9a36.html | 87 + doc/html/dir_b05c391b1919d1ed2cba19af6bc34105.html | 87 + doc/html/dir_bb685b13b42415b0316ff027c8af4cf7.html | 83 + doc/html/dir_bc3082b78d94babef84a35bfcdc9f2a9.html | 114 + doc/html/dir_bcba4911fbc539869e8e42c1eee5290c.html | 87 + doc/html/dir_c14f889dd2eabb40f33940b62dde1899.html | 90 + doc/html/dir_c34a03468eacdd279ce7df13aaf8be35.html | 83 + doc/html/dir_c81e2bbe52342ad85c6df4b5da5342ae.html | 83 + doc/html/dir_cce291394cd32453076ad2518557a3ce.html | 87 + doc/html/dir_cd89c6f694be839cedac8e0968a623c1.html | 90 + doc/html/dir_d6522a90866720d8f9d6d452f6024cb3.html | 83 + doc/html/dir_d86bb5f490e23b390428054071f71303.html | 89 + doc/html/dir_dcadd071f86d817ff481621da6d513b2.html | 150 + doc/html/dir_dfd2a36e5d7e18a07e2d62267c3478e3.html | 83 + doc/html/dir_e48f30194d94fdd1dcbbc479c6afc2e2.html | 102 + doc/html/dir_e4adb31a02abf2c56ebb0eddad9839cc.html | 150 + doc/html/dir_e5c92ba1793c0d530db39bcf10297377.html | 87 + doc/html/dir_e6079c330507d68f1ae0aff3b70538e2.html | 89 + doc/html/dir_ecb5f9f0f25d20023a282ab2a0713764.html | 90 + doc/html/dir_f0df80f5feb8c8ef897a587309ad6a15.html | 83 + doc/html/dir_f16caef3a7f43b3f0e8a3a66426d5b4f.html | 126 + doc/html/dir_f184bd3933ab1dc1369d332259c9bae5.html | 87 + doc/html/dir_f42476f6cdbec807db89f1b1b5522dce.html | 87 + doc/html/dir_fba0aa376286f5aae7cd1ec184e07477.html | 83 + doc/html/dir_fc5af6d1773db9fbf4492fb9f3c112e5.html | 138 + doc/html/dir_fd2dd35c0314879b24158b45d1b1dc1e.html | 126 + doc/html/doc.png | Bin 0 -> 746 bytes doc/html/doxygen.css | 1596 +++++++++++ doc/html/doxygen.png | Bin 0 -> 3779 bytes doc/html/dynsections.js | 120 + doc/html/eglew_8h_source.html | 83 + doc/html/eglew__head_8h_source.html | 83 + doc/html/eglew__mid_8h_source.html | 83 + doc/html/eglew__tail_8h_source.html | 83 + doc/html/folderclosed.png | Bin 0 -> 616 bytes doc/html/folderopen.png | Bin 0 -> 597 bytes doc/html/functions.html | 114 + doc/html/functions_0x7e.html | 85 + doc/html/functions_b.html | 204 ++ doc/html/functions_c.html | 215 ++ doc/html/functions_d.html | 189 ++ doc/html/functions_e.html | 93 + doc/html/functions_enum.html | 80 + doc/html/functions_eval.html | 89 + doc/html/functions_f.html | 149 + doc/html/functions_func.html | 93 + doc/html/functions_func_0x7e.html | 85 + doc/html/functions_func_b.html | 119 + doc/html/functions_func_c.html | 178 ++ doc/html/functions_func_d.html | 112 + doc/html/functions_func_e.html | 87 + doc/html/functions_func_f.html | 100 + doc/html/functions_func_g.html | 332 +++ doc/html/functions_func_i.html | 98 + doc/html/functions_func_l.html | 85 + doc/html/functions_func_m.html | 95 + doc/html/functions_func_o.html | 104 + doc/html/functions_func_p.html | 91 + doc/html/functions_func_q.html | 115 + doc/html/functions_func_r.html | 121 + doc/html/functions_func_s.html | 185 ++ doc/html/functions_func_t.html | 123 + doc/html/functions_func_u.html | 107 + doc/html/functions_func_v.html | 82 + doc/html/functions_func_w.html | 82 + doc/html/functions_func_~.html | 140 + doc/html/functions_g.html | 341 +++ doc/html/functions_h.html | 84 + doc/html/functions_i.html | 129 + doc/html/functions_l.html | 97 + doc/html/functions_m.html | 347 +++ doc/html/functions_n.html | 132 + doc/html/functions_o.html | 107 + doc/html/functions_p.html | 155 + doc/html/functions_q.html | 118 + doc/html/functions_r.html | 139 + doc/html/functions_s.html | 264 ++ doc/html/functions_t.html | 169 ++ doc/html/functions_u.html | 114 + doc/html/functions_v.html | 93 + doc/html/functions_vars.html | 100 + doc/html/functions_vars_b.html | 164 ++ doc/html/functions_vars_c.html | 116 + doc/html/functions_vars_d.html | 156 ++ doc/html/functions_vars_e.html | 85 + doc/html/functions_vars_f.html | 113 + doc/html/functions_vars_g.html | 88 + doc/html/functions_vars_h.html | 84 + doc/html/functions_vars_i.html | 110 + doc/html/functions_vars_l.html | 91 + doc/html/functions_vars_m.html | 331 +++ doc/html/functions_vars_n.html | 132 + doc/html/functions_vars_o.html | 82 + doc/html/functions_vars_p.html | 143 + doc/html/functions_vars_q.html | 82 + doc/html/functions_vars_r.html | 97 + doc/html/functions_vars_s.html | 158 ++ doc/html/functions_vars_t.html | 125 + doc/html/functions_vars_u.html | 86 + doc/html/functions_vars_v.html | 90 + doc/html/functions_vars_w.html | 84 + doc/html/functions_w.html | 87 + doc/html/functions_~.html | 142 + doc/html/gesture_detector_8h_source.html | 84 + doc/html/gl3stub_8h_source.html | 83 + doc/html/glew_8h_source.html | 83 + doc/html/glew__head_8h_source.html | 83 + doc/html/glew__license_8h_source.html | 83 + doc/html/glew__tail_8h_source.html | 83 + doc/html/glxew_8h_source.html | 84 + doc/html/glxew__head_8h_source.html | 84 + doc/html/glxew__mid_8h_source.html | 83 + doc/html/glxew__tail_8h_source.html | 83 + doc/html/hierarchy.html | 415 +++ doc/html/index.html | 263 ++ doc/html/interpolator_8h_source.html | 84 + doc/html/jquery.js | 115 + doc/html/khronos__license_8h_source.html | 83 + ...igent_engine__diligent_core__common_readme.html | 91 + ..._diligent_core__external_glew__r_e_a_d_m_e.html | 183 ++ ...e__graphics__graphics_engine_d3_d11_readme.html | 146 + ...e__graphics__graphics_engine_d3_d12_readme.html | 174 ++ ..._graphics__graphics_engine_open_g_l_readme.html | 135 + ...ics__h_l_s_l2_g_l_s_l_converter_lib_readme.html | 191 ++ doc/html/menu.js | 50 + doc/html/menudata.js | 145 + doc/html/mesa__license_8h_source.html | 83 + doc/html/namespace_diligent.html | 2960 ++++++++++++++++++++ doc/html/namespacemembers.html | 238 ++ doc/html/namespacemembers_c.html | 208 ++ doc/html/namespacemembers_d.html | 82 + doc/html/namespacemembers_e.html | 82 + doc/html/namespacemembers_enum.html | 232 ++ doc/html/namespacemembers_eval.html | 220 ++ doc/html/namespacemembers_eval_c.html | 187 ++ doc/html/namespacemembers_eval_f.html | 133 + doc/html/namespacemembers_eval_l.html | 130 + doc/html/namespacemembers_eval_m.html | 100 + doc/html/namespacemembers_eval_p.html | 211 ++ doc/html/namespacemembers_eval_r.html | 109 + doc/html/namespacemembers_eval_s.html | 154 + doc/html/namespacemembers_eval_t.html | 421 +++ doc/html/namespacemembers_eval_u.html | 103 + doc/html/namespacemembers_eval_v.html | 109 + doc/html/namespacemembers_f.html | 139 + doc/html/namespacemembers_func.html | 92 + doc/html/namespacemembers_g.html | 82 + doc/html/namespacemembers_i.html | 97 + doc/html/namespacemembers_l.html | 142 + doc/html/namespacemembers_m.html | 115 + doc/html/namespacemembers_p.html | 217 ++ doc/html/namespacemembers_r.html | 112 + doc/html/namespacemembers_s.html | 172 ++ doc/html/namespacemembers_t.html | 430 +++ doc/html/namespacemembers_type.html | 110 + doc/html/namespacemembers_u.html | 109 + doc/html/namespacemembers_v.html | 112 + doc/html/namespacemembers_vars.html | 83 + doc/html/namespaces.html | 84 + doc/html/nav_f.png | Bin 0 -> 153 bytes doc/html/nav_g.png | Bin 0 -> 95 bytes doc/html/nav_h.png | Bin 0 -> 98 bytes doc/html/open.png | Bin 0 -> 123 bytes doc/html/pages.html | 87 + doc/html/perf_monitor_8h_source.html | 84 + doc/html/search/all_0.html | 30 + doc/html/search/all_0.js | 14 + doc/html/search/all_1.html | 30 + doc/html/search/all_1.js | 107 + doc/html/search/all_10.html | 30 + doc/html/search/all_10.js | 121 + doc/html/search/all_11.html | 30 + doc/html/search/all_11.js | 163 ++ doc/html/search/all_12.html | 30 + doc/html/search/all_12.js | 18 + doc/html/search/all_13.html | 30 + doc/html/search/all_13.js | 21 + doc/html/search/all_14.html | 30 + doc/html/search/all_14.js | 5 + doc/html/search/all_15.html | 30 + doc/html/search/all_15.js | 5 + doc/html/search/all_2.html | 30 + doc/html/search/all_2.js | 89 + doc/html/search/all_3.html | 30 + doc/html/search/all_3.js | 82 + doc/html/search/all_4.html | 30 + doc/html/search/all_4.js | 10 + doc/html/search/all_5.html | 30 + doc/html/search/all_5.js | 44 + doc/html/search/all_6.html | 30 + doc/html/search/all_6.js | 68 + doc/html/search/all_7.html | 30 + doc/html/search/all_7.js | 11 + doc/html/search/all_8.html | 30 + doc/html/search/all_8.js | 70 + doc/html/search/all_9.html | 30 + doc/html/search/all_9.js | 30 + doc/html/search/all_a.html | 30 + doc/html/search/all_a.js | 99 + doc/html/search/all_b.html | 30 + doc/html/search/all_b.js | 19 + doc/html/search/all_c.html | 30 + doc/html/search/all_c.js | 49 + doc/html/search/all_d.html | 30 + doc/html/search/all_d.js | 80 + doc/html/search/all_e.html | 30 + doc/html/search/all_e.js | 5 + doc/html/search/all_f.html | 30 + doc/html/search/all_f.js | 93 + doc/html/search/classes_0.html | 30 + doc/html/search/classes_0.js | 24 + doc/html/search/classes_1.html | 30 + doc/html/search/classes_1.js | 12 + doc/html/search/classes_10.html | 30 + doc/html/search/classes_10.js | 14 + doc/html/search/classes_2.html | 30 + doc/html/search/classes_2.js | 50 + doc/html/search/classes_3.html | 30 + doc/html/search/classes_3.js | 6 + doc/html/search/classes_4.html | 30 + doc/html/search/classes_4.js | 4 + doc/html/search/classes_5.html | 30 + doc/html/search/classes_5.js | 4 + doc/html/search/classes_6.html | 30 + doc/html/search/classes_6.js | 10 + doc/html/search/classes_7.html | 30 + doc/html/search/classes_7.js | 55 + doc/html/search/classes_8.html | 30 + doc/html/search/classes_8.js | 4 + doc/html/search/classes_9.html | 30 + doc/html/search/classes_9.js | 4 + doc/html/search/classes_a.html | 30 + doc/html/search/classes_a.js | 41 + doc/html/search/classes_b.html | 30 + doc/html/search/classes_b.js | 11 + doc/html/search/classes_c.html | 30 + doc/html/search/classes_c.js | 71 + doc/html/search/classes_d.html | 30 + doc/html/search/classes_d.js | 49 + doc/html/search/classes_e.html | 30 + doc/html/search/classes_e.js | 28 + doc/html/search/classes_f.html | 30 + doc/html/search/classes_f.js | 5 + doc/html/search/close.png | Bin 0 -> 273 bytes doc/html/search/enums_0.html | 30 + doc/html/search/enums_0.js | 9 + doc/html/search/enums_1.html | 30 + doc/html/search/enums_1.js | 10 + doc/html/search/enums_2.html | 30 + doc/html/search/enums_2.js | 4 + doc/html/search/enums_3.html | 30 + doc/html/search/enums_3.js | 4 + doc/html/search/enums_4.html | 30 + doc/html/search/enums_4.js | 6 + doc/html/search/enums_5.html | 30 + doc/html/search/enums_5.js | 4 + doc/html/search/enums_6.html | 30 + doc/html/search/enums_6.js | 6 + doc/html/search/enums_7.html | 30 + doc/html/search/enums_7.js | 5 + doc/html/search/enums_8.html | 30 + doc/html/search/enums_8.js | 4 + doc/html/search/enums_9.html | 30 + doc/html/search/enums_9.js | 8 + doc/html/search/enums_a.html | 30 + doc/html/search/enums_a.js | 6 + doc/html/search/enums_b.html | 30 + doc/html/search/enums_b.js | 5 + doc/html/search/enums_c.html | 30 + doc/html/search/enums_c.js | 4 + doc/html/search/enumvalues_0.html | 30 + doc/html/search/enumvalues_0.js | 50 + doc/html/search/enumvalues_1.html | 30 + doc/html/search/enumvalues_1.js | 39 + doc/html/search/enumvalues_2.html | 30 + doc/html/search/enumvalues_2.js | 5 + doc/html/search/enumvalues_3.html | 30 + doc/html/search/enumvalues_3.js | 25 + doc/html/search/enumvalues_4.html | 30 + doc/html/search/enumvalues_4.js | 20 + doc/html/search/enumvalues_5.html | 30 + doc/html/search/enumvalues_5.js | 10 + doc/html/search/enumvalues_6.html | 30 + doc/html/search/enumvalues_6.js | 5 + doc/html/search/enumvalues_7.html | 30 + doc/html/search/enumvalues_7.js | 47 + doc/html/search/enumvalues_8.html | 30 + doc/html/search/enumvalues_8.js | 13 + doc/html/search/enumvalues_9.html | 30 + doc/html/search/enumvalues_9.js | 28 + doc/html/search/enumvalues_a.html | 30 + doc/html/search/enumvalues_a.js | 117 + doc/html/search/enumvalues_b.html | 30 + doc/html/search/enumvalues_b.js | 12 + doc/html/search/enumvalues_c.html | 30 + doc/html/search/enumvalues_c.js | 15 + doc/html/search/functions_0.html | 30 + doc/html/search/functions_0.js | 7 + doc/html/search/functions_1.html | 30 + doc/html/search/functions_1.js | 13 + doc/html/search/functions_10.html | 30 + doc/html/search/functions_10.js | 6 + doc/html/search/functions_11.html | 30 + doc/html/search/functions_11.js | 4 + doc/html/search/functions_12.html | 30 + doc/html/search/functions_12.js | 4 + doc/html/search/functions_13.html | 30 + doc/html/search/functions_13.js | 5 + doc/html/search/functions_2.html | 30 + doc/html/search/functions_2.js | 25 + doc/html/search/functions_3.html | 30 + doc/html/search/functions_3.js | 12 + doc/html/search/functions_4.html | 30 + doc/html/search/functions_4.js | 4 + doc/html/search/functions_5.html | 30 + doc/html/search/functions_5.js | 8 + doc/html/search/functions_6.html | 30 + doc/html/search/functions_6.js | 61 + doc/html/search/functions_7.html | 30 + doc/html/search/functions_7.js | 8 + doc/html/search/functions_8.html | 30 + doc/html/search/functions_8.js | 8 + doc/html/search/functions_9.html | 30 + doc/html/search/functions_9.js | 5 + doc/html/search/functions_a.html | 30 + doc/html/search/functions_a.js | 8 + doc/html/search/functions_b.html | 30 + doc/html/search/functions_b.js | 6 + doc/html/search/functions_c.html | 30 + doc/html/search/functions_c.js | 4 + doc/html/search/functions_d.html | 30 + doc/html/search/functions_d.js | 15 + doc/html/search/functions_e.html | 30 + doc/html/search/functions_e.js | 27 + doc/html/search/functions_f.html | 30 + doc/html/search/functions_f.js | 16 + doc/html/search/mag_sel.png | Bin 0 -> 563 bytes doc/html/search/namespaces_0.html | 30 + doc/html/search/namespaces_0.js | 4 + doc/html/search/nomatches.html | 12 + doc/html/search/pages_0.html | 30 + doc/html/search/pages_0.js | 4 + doc/html/search/pages_1.html | 30 + doc/html/search/pages_1.js | 4 + doc/html/search/pages_2.html | 30 + doc/html/search/pages_2.js | 6 + doc/html/search/pages_3.html | 30 + doc/html/search/pages_3.js | 4 + doc/html/search/search.css | 271 ++ doc/html/search/search.js | 814 ++++++ doc/html/search/search_l.png | Bin 0 -> 604 bytes doc/html/search/search_m.png | Bin 0 -> 158 bytes doc/html/search/search_r.png | Bin 0 -> 612 bytes doc/html/search/searchdata.js | 36 + doc/html/search/typedefs_0.html | 30 + doc/html/search/typedefs_0.js | 4 + doc/html/search/typedefs_1.html | 30 + doc/html/search/typedefs_1.js | 4 + doc/html/search/typedefs_2.html | 30 + doc/html/search/typedefs_2.js | 7 + doc/html/search/typedefs_3.html | 30 + doc/html/search/typedefs_3.js | 4 + doc/html/search/typedefs_4.html | 30 + doc/html/search/typedefs_4.js | 7 + doc/html/search/variables_0.html | 30 + doc/html/search/variables_0.js | 10 + doc/html/search/variables_1.html | 30 + doc/html/search/variables_1.js | 31 + doc/html/search/variables_10.html | 30 + doc/html/search/variables_10.js | 29 + doc/html/search/variables_11.html | 30 + doc/html/search/variables_11.js | 18 + doc/html/search/variables_12.html | 30 + doc/html/search/variables_12.js | 5 + doc/html/search/variables_13.html | 30 + doc/html/search/variables_13.js | 6 + doc/html/search/variables_14.html | 30 + doc/html/search/variables_14.js | 4 + doc/html/search/variables_2.html | 30 + doc/html/search/variables_2.js | 15 + doc/html/search/variables_3.html | 30 + doc/html/search/variables_3.js | 28 + doc/html/search/variables_4.html | 30 + doc/html/search/variables_4.js | 5 + doc/html/search/variables_5.html | 30 + doc/html/search/variables_5.js | 13 + doc/html/search/variables_6.html | 30 + doc/html/search/variables_6.js | 6 + doc/html/search/variables_7.html | 30 + doc/html/search/variables_7.js | 4 + doc/html/search/variables_8.html | 30 + doc/html/search/variables_8.js | 13 + doc/html/search/variables_9.html | 30 + doc/html/search/variables_9.js | 7 + doc/html/search/variables_a.html | 30 + doc/html/search/variables_a.js | 87 + doc/html/search/variables_b.html | 30 + doc/html/search/variables_b.js | 19 + doc/html/search/variables_c.html | 30 + doc/html/search/variables_c.js | 4 + doc/html/search/variables_d.html | 30 + doc/html/search/variables_d.js | 24 + doc/html/search/variables_e.html | 30 + doc/html/search/variables_e.js | 4 + doc/html/search/variables_f.html | 30 + doc/html/search/variables_f.js | 9 + doc/html/sensor_manager_8h_source.html | 85 + doc/html/splitbar.png | Bin 0 -> 314 bytes ...ruct_diligent_1_1_blend_state_desc-members.html | 92 + doc/html/struct_diligent_1_1_blend_state_desc.html | 206 ++ doc/html/struct_diligent_1_1_box-members.html | 93 + doc/html/struct_diligent_1_1_box.html | 127 + .../struct_diligent_1_1_buffer_data-members.html | 89 + doc/html/struct_diligent_1_1_buffer_data.html | 146 + .../struct_diligent_1_1_buffer_desc-members.html | 97 + doc/html/struct_diligent_1_1_buffer_desc.html | 277 ++ doc/html/struct_diligent_1_1_buffer_desc.png | Bin 0 -> 736 bytes ..._1_1_buffer_desc_1_1_buffer_format-members.html | 91 + ...diligent_1_1_buffer_desc_1_1_buffer_format.html | 156 ++ ...ruct_diligent_1_1_buffer_view_desc-members.html | 93 + doc/html/struct_diligent_1_1_buffer_view_desc.html | 215 ++ doc/html/struct_diligent_1_1_buffer_view_desc.png | Bin 0 -> 769 bytes ...diligent_1_1_compute_pipeline_desc-members.html | 87 + .../struct_diligent_1_1_compute_pipeline_desc.html | 100 + ...gent_1_1_depth_stencil_clear_value-members.html | 88 + ...uct_diligent_1_1_depth_stencil_clear_value.html | 103 + ...igent_1_1_depth_stencil_state_desc-members.html | 96 + ...ruct_diligent_1_1_depth_stencil_state_desc.html | 258 ++ .../struct_diligent_1_1_device_caps-members.html | 96 + doc/html/struct_diligent_1_1_device_caps.html | 139 + ...diligent_1_1_device_object_attribs-members.html | 88 + .../struct_diligent_1_1_device_object_attribs.html | 122 + .../struct_diligent_1_1_device_object_attribs.png | Bin 0 -> 2234 bytes ...igent_1_1_dispatch_compute_attribs-members.html | 93 + ...ruct_diligent_1_1_dispatch_compute_attribs.html | 224 ++ .../struct_diligent_1_1_draw_attribs-members.html | 100 + doc/html/struct_diligent_1_1_draw_attribs.html | 209 ++ ...diligent_1_1_dummy_shader_variable-members.html | 88 + .../struct_diligent_1_1_dummy_shader_variable.html | 198 ++ .../struct_diligent_1_1_dummy_shader_variable.png | Bin 0 -> 1143 bytes ...ligent_1_1_engine_creation_attribs-members.html | 87 + ...truct_diligent_1_1_engine_creation_attribs.html | 109 + ...struct_diligent_1_1_engine_creation_attribs.png | Bin 0 -> 1072 bytes ...diligent_1_1_engine_d3_d11_attribs-members.html | 88 + .../struct_diligent_1_1_engine_d3_d11_attribs.html | 130 + .../struct_diligent_1_1_engine_d3_d11_attribs.png | Bin 0 -> 799 bytes ...diligent_1_1_engine_d3_d12_attribs-members.html | 92 + .../struct_diligent_1_1_engine_d3_d12_attribs.html | 129 + .../struct_diligent_1_1_engine_d3_d12_attribs.png | Bin 0 -> 806 bytes ...iligent_1_1_graphics_pipeline_desc-members.html | 102 + ...struct_diligent_1_1_graphics_pipeline_desc.html | 160 ++ ...t_diligent_1_1_hash_map_string_key-members.html | 86 + .../struct_diligent_1_1_hash_map_string_key.html | 90 + ...ligent_1_1_i_n_t_e_r_f_a_c_e___i_d-members.html | 86 + ...truct_diligent_1_1_i_n_t_e_r_f_a_c_e___i_d.html | 90 + ...uct_diligent_1_1_input_layout_desc-members.html | 88 + .../struct_diligent_1_1_input_layout_desc.html | 104 + ...struct_diligent_1_1_layout_element-members.html | 99 + doc/html/struct_diligent_1_1_layout_element.html | 169 ++ ...diligent_1_1_optimized_clear_value-members.html | 89 + .../struct_diligent_1_1_optimized_clear_value.html | 107 + ...t_diligent_1_1_pipeline_state_desc-members.html | 92 + .../struct_diligent_1_1_pipeline_state_desc.html | 150 + .../struct_diligent_1_1_pipeline_state_desc.png | Bin 0 -> 766 bytes ...diligent_1_1_rasterizer_state_desc-members.html | 97 + .../struct_diligent_1_1_rasterizer_state_desc.html | 318 +++ doc/html/struct_diligent_1_1_rect-members.html | 91 + doc/html/struct_diligent_1_1_rect.html | 121 + ...igent_1_1_render_target_blend_desc-members.html | 98 + ...ruct_diligent_1_1_render_target_blend_desc.html | 238 ++ ...diligent_1_1_resource_mapping_desc-members.html | 88 + .../struct_diligent_1_1_resource_mapping_desc.html | 140 + ...iligent_1_1_resource_mapping_entry-members.html | 89 + ...struct_diligent_1_1_resource_mapping_entry.html | 163 ++ .../struct_diligent_1_1_sample_desc-members.html | 88 + doc/html/struct_diligent_1_1_sample_desc.html | 104 + .../struct_diligent_1_1_sampler_caps-members.html | 90 + doc/html/struct_diligent_1_1_sampler_caps.html | 115 + .../struct_diligent_1_1_sampler_desc-members.html | 102 + doc/html/struct_diligent_1_1_sampler_desc.html | 337 +++ doc/html/struct_diligent_1_1_sampler_desc.png | Bin 0 -> 758 bytes ...ligent_1_1_shader_creation_attribs-members.html | 96 + ...truct_diligent_1_1_shader_creation_attribs.html | 264 ++ .../struct_diligent_1_1_shader_desc-members.html | 94 + doc/html/struct_diligent_1_1_shader_desc.html | 141 + doc/html/struct_diligent_1_1_shader_desc.png | Bin 0 -> 749 bytes ...source_cache_d3_d11_1_1_cached_c_b-members.html | 87 + ...hader_resource_cache_d3_d11_1_1_cached_c_b.html | 99 + ...e_cache_d3_d11_1_1_cached_resource-members.html | 87 + ..._resource_cache_d3_d11_1_1_cached_resource.html | 99 + ...ce_cache_d3_d11_1_1_cached_sampler-members.html | 87 + ...r_resource_cache_d3_d11_1_1_cached_sampler.html | 99 + ..._diligent_1_1_shader_variable_base-members.html | 88 + .../struct_diligent_1_1_shader_variable_base.html | 111 + .../struct_diligent_1_1_shader_variable_base.png | Bin 0 -> 1149 bytes ..._diligent_1_1_shader_variable_desc-members.html | 88 + .../struct_diligent_1_1_shader_variable_desc.html | 103 + ...t_diligent_1_1_static_sampler_desc-members.html | 88 + .../struct_diligent_1_1_static_sampler_desc.html | 103 + ...truct_diligent_1_1_stencil_op_desc-members.html | 92 + doc/html/struct_diligent_1_1_stencil_op_desc.html | 202 ++ ...truct_diligent_1_1_swap_chain_desc-members.html | 95 + doc/html/struct_diligent_1_1_swap_chain_desc.html | 135 + .../struct_diligent_1_1_texture_caps-members.html | 93 + doc/html/struct_diligent_1_1_texture_caps.html | 127 + .../struct_diligent_1_1_texture_data-members.html | 89 + doc/html/struct_diligent_1_1_texture_data.html | 146 + .../struct_diligent_1_1_texture_desc-members.html | 103 + doc/html/struct_diligent_1_1_texture_desc.html | 273 ++ doc/html/struct_diligent_1_1_texture_desc.png | Bin 0 -> 751 bytes ...iligent_1_1_texture_format_attribs-members.html | 92 + ...struct_diligent_1_1_texture_format_attribs.html | 133 + .../struct_diligent_1_1_texture_format_attribs.png | Bin 0 -> 1157 bytes ...t_diligent_1_1_texture_format_info-members.html | 94 + .../struct_diligent_1_1_texture_format_info.html | 144 + .../struct_diligent_1_1_texture_format_info.png | Bin 0 -> 1154 bytes ...ligent_1_1_texture_format_info_ext-members.html | 103 + ...truct_diligent_1_1_texture_format_info_ext.html | 182 ++ ...struct_diligent_1_1_texture_format_info_ext.png | Bin 0 -> 1146 bytes ..._diligent_1_1_texture_sub_res_data-members.html | 93 + .../struct_diligent_1_1_texture_sub_res_data.html | 181 ++ ...uct_diligent_1_1_texture_view_desc-members.html | 100 + .../struct_diligent_1_1_texture_view_desc.html | 252 ++ doc/html/struct_diligent_1_1_texture_view_desc.png | Bin 0 -> 779 bytes ...t_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type.html | 91 + ...c_type_3_01_v_t___f_l_o_a_t16_01_4-members.html | 86 + ..._y_p_e2_c_type_3_01_v_t___f_l_o_a_t16_01_4.html | 96 + ...c_type_3_01_v_t___f_l_o_a_t32_01_4-members.html | 86 + ..._y_p_e2_c_type_3_01_v_t___f_l_o_a_t32_01_4.html | 95 + ..._e2_c_type_3_01_v_t___i_n_t16_01_4-members.html | 86 + ...___t_y_p_e2_c_type_3_01_v_t___i_n_t16_01_4.html | 95 + ..._e2_c_type_3_01_v_t___i_n_t32_01_4-members.html | 86 + ...___t_y_p_e2_c_type_3_01_v_t___i_n_t32_01_4.html | 95 + ...p_e2_c_type_3_01_v_t___i_n_t8_01_4-members.html | 86 + ...e___t_y_p_e2_c_type_3_01_v_t___i_n_t8_01_4.html | 95 + ...2_c_type_3_01_v_t___u_i_n_t16_01_4-members.html | 86 + ..._t_y_p_e2_c_type_3_01_v_t___u_i_n_t16_01_4.html | 95 + ...2_c_type_3_01_v_t___u_i_n_t32_01_4-members.html | 86 + ..._t_y_p_e2_c_type_3_01_v_t___u_i_n_t32_01_4.html | 95 + ...e2_c_type_3_01_v_t___u_i_n_t8_01_4-members.html | 86 + ...__t_y_p_e2_c_type_3_01_v_t___u_i_n_t8_01_4.html | 95 + ...ct_diligent_1_1_vertex_stream_info-members.html | 89 + .../struct_diligent_1_1_vertex_stream_info.html | 107 + doc/html/struct_diligent_1_1_viewport-members.html | 93 + doc/html/struct_diligent_1_1_viewport.html | 128 + doc/html/structandroid__app-members.html | 82 + doc/html/structandroid__app.html | 83 + doc/html/structandroid__poll__source-members.html | 82 + doc/html/structandroid__poll__source.html | 83 + ...diligent_1_1_blend_state_desc_01_4-members.html | 86 + ...sh_3_01_diligent_1_1_blend_state_desc_01_4.html | 93 + ..._1_1_depth_stencil_state_desc_01_4-members.html | 86 + ...diligent_1_1_depth_stencil_state_desc_01_4.html | 93 + ...ent_1_1_rasterizer_state_desc_01_4-members.html | 86 + ...01_diligent_1_1_rasterizer_state_desc_01_4.html | 93 + ..._01_diligent_1_1_sampler_desc_01_4-members.html | 86 + ..._1hash_3_01_diligent_1_1_sampler_desc_01_4.html | 93 + ..._diligent_1_1_stencil_op_desc_01_4-members.html | 86 + ...ash_3_01_diligent_1_1_stencil_op_desc_01_4.html | 93 + ...iligent_1_1_texture_view_desc_01_4-members.html | 86 + ...h_3_01_diligent_1_1_texture_view_desc_01_4.html | 93 + doc/html/sync_off.png | Bin 0 -> 853 bytes doc/html/sync_on.png | Bin 0 -> 845 bytes doc/html/tab_a.png | Bin 0 -> 142 bytes doc/html/tab_b.png | Bin 0 -> 169 bytes doc/html/tab_h.png | Bin 0 -> 177 bytes doc/html/tab_s.png | Bin 0 -> 184 bytes doc/html/tabs.css | 1 + doc/html/tap_camera_8h_source.html | 84 + doc/html/targetver_8h_source.html | 83 + doc/html/vecmath_8h_source.html | 84 + doc/html/wglew_8h_source.html | 83 + doc/html/wglew__head_8h_source.html | 83 + doc/html/wglew__mid_8h_source.html | 83 + doc/html/wglew__tail_8h_source.html | 83 + 1276 files changed, 119557 insertions(+) create mode 100644 doc/html/_adaptive_fixed_block_allocator_8h_source.html create mode 100644 doc/html/_advanced_math_8h_source.html create mode 100644 doc/html/_android_debug_8h_source.html create mode 100644 doc/html/_android_file_system_8h_source.html create mode 100644 doc/html/_android_platform_definitions_8h_source.html create mode 100644 doc/html/_android_platform_misc_8h_source.html create mode 100644 doc/html/_async_writable_resource_8h_source.html create mode 100644 doc/html/_atomics_8h_source.html create mode 100644 doc/html/_base_interfaces_g_l_8h_source.html create mode 100644 doc/html/_basic_atomics_8h_source.html create mode 100644 doc/html/_basic_file_stream_8h_source.html create mode 100644 doc/html/_basic_file_system_8h_source.html create mode 100644 doc/html/_basic_math_8h_source.html create mode 100644 doc/html/_basic_platform_debug_8h_source.html create mode 100644 doc/html/_basic_platform_misc_8h_source.html create mode 100644 doc/html/_basic_shader_source_stream_factory_8h_source.html create mode 100644 doc/html/_basic_types_8h_source.html create mode 100644 doc/html/_blend_state_8h_source.html create mode 100644 doc/html/_buffer_8h_source.html create mode 100644 doc/html/_buffer_base_8h_source.html create mode 100644 doc/html/_buffer_d3_d11_8h_source.html create mode 100644 doc/html/_buffer_d3_d11_impl_8h_source.html create mode 100644 doc/html/_buffer_d3_d12_8h_source.html create mode 100644 doc/html/_buffer_d3_d12_impl_8h_source.html create mode 100644 doc/html/_buffer_g_l_8h_source.html create mode 100644 doc/html/_buffer_g_l_impl_8h_source.html create mode 100644 doc/html/_buffer_view_8h_source.html create mode 100644 doc/html/_buffer_view_base_8h_source.html create mode 100644 doc/html/_buffer_view_d3_d11_8h_source.html create mode 100644 doc/html/_buffer_view_d3_d11_impl_8h_source.html create mode 100644 doc/html/_buffer_view_d3_d12_8h_source.html create mode 100644 doc/html/_buffer_view_d3_d12_impl_8h_source.html create mode 100644 doc/html/_buffer_view_g_l_8h_source.html create mode 100644 doc/html/_buffer_view_g_l_impl_8h_source.html create mode 100644 doc/html/_command_context_8h_source.html create mode 100644 doc/html/_command_list_8h_source.html create mode 100644 doc/html/_command_list_base_8h_source.html create mode 100644 doc/html/_command_list_d3_d11_impl_8h_source.html create mode 100644 doc/html/_command_list_d3_d12_impl_8h_source.html create mode 100644 doc/html/_command_list_manager_8h_source.html create mode 100644 doc/html/_command_queue_d3_d12_8h_source.html create mode 100644 doc/html/_command_queue_d3_d12_impl_8h_source.html create mode 100644 doc/html/_common_2include_2pch_8h_source.html create mode 100644 doc/html/_commonly_used_states_8h_source.html create mode 100644 doc/html/_constants_8h_source.html create mode 100644 doc/html/_d3_d11_debug_utilities_8h_source.html create mode 100644 doc/html/_d3_d11_type_conversions_8h_source.html create mode 100644 doc/html/_d3_d11_type_definitions_8h_source.html create mode 100644 doc/html/_d3_d12_resource_base_8h_source.html create mode 100644 doc/html/_d3_d12_type_conversions_8h_source.html create mode 100644 doc/html/_d3_d12_type_definitions_8h_source.html create mode 100644 doc/html/_d3_d12_utils_8h_source.html create mode 100644 doc/html/_d3_d_errors_8h_source.html create mode 100644 doc/html/_d3_d_shader_resource_loader_8h_source.html create mode 100644 doc/html/_d3_d_type_conversion_impl_8h_source.html create mode 100644 doc/html/_d3_d_view_desc_conversion_impl_8h_source.html create mode 100644 doc/html/_d_x_g_i_type_conversions_8h_source.html create mode 100644 doc/html/_data_blob_8h_source.html create mode 100644 doc/html/_data_blob_impl_8h_source.html create mode 100644 doc/html/_debug_utilities_8h_source.html create mode 100644 doc/html/_default_raw_memory_allocator_8h_source.html create mode 100644 doc/html/_defines_8h_source.html create mode 100644 doc/html/_depth_stencil_state_8h_source.html create mode 100644 doc/html/_descriptor_heap_8h_source.html create mode 100644 doc/html/_device_caps_8h_source.html create mode 100644 doc/html/_device_context_8h_source.html create mode 100644 doc/html/_device_context_base_8h_source.html create mode 100644 doc/html/_device_context_d3_d11_8h_source.html create mode 100644 doc/html/_device_context_d3_d11_impl_8h_source.html create mode 100644 doc/html/_device_context_d3_d12_8h_source.html create mode 100644 doc/html/_device_context_d3_d12_impl_8h_source.html create mode 100644 doc/html/_device_context_g_l_8h_source.html create mode 100644 doc/html/_device_context_g_l_impl_8h_source.html create mode 100644 doc/html/_device_object_8h_source.html create mode 100644 doc/html/_device_object_base_8h_source.html create mode 100644 doc/html/_dynamic_upload_heap_8h_source.html create mode 100644 doc/html/_engine_d3_d11_attribs_8h_source.html create mode 100644 doc/html/_engine_d3_d11_defines_8h_source.html create mode 100644 doc/html/_engine_memory_8h_source.html create mode 100644 doc/html/_errors_8h_source.html create mode 100644 doc/html/_external_2_android_2ndk__helper_2include_2_g_l_context_8h_source.html create mode 100644 doc/html/_external_2_android_2ndk__helper_2include_2shader_8h_source.html create mode 100644 doc/html/_f_b_o_cache_8h_source.html create mode 100644 doc/html/_file_stream_8h_source.html create mode 100644 doc/html/_file_system_8h_source.html create mode 100644 doc/html/_file_wrapper_8h_source.html create mode 100644 doc/html/_fixed_block_memory_allocator_8h_source.html create mode 100644 doc/html/_format_message_8h_source.html create mode 100644 doc/html/_g_l_context_8h_source.html create mode 100644 doc/html/_g_l_context_android_8h_source.html create mode 100644 doc/html/_g_l_context_linux_8h_source.html create mode 100644 doc/html/_g_l_context_state_8h_source.html create mode 100644 doc/html/_g_l_context_windows_8h_source.html create mode 100644 doc/html/_g_l_object_wrapper_8h_source.html create mode 100644 doc/html/_g_l_program_8h_source.html create mode 100644 doc/html/_g_l_program_resources_8h_source.html create mode 100644 doc/html/_g_l_s_l_definitions_8h_source.html create mode 100644 doc/html/_g_l_s_l_definitions__inc_8h_source.html create mode 100644 doc/html/_g_l_stubs_8h_source.html create mode 100644 doc/html/_g_l_type_conversions_8h_source.html create mode 100644 doc/html/_generate_mips_8h_source.html create mode 100644 doc/html/_graphics_2_graphics_engine_2include_2pch_8h_source.html create mode 100644 doc/html/_graphics_2_graphics_engine_2interface_2shader_8h_source.html create mode 100644 doc/html/_graphics_2_graphics_engine_d3_d11_2include_2pch_8h_source.html create mode 100644 doc/html/_graphics_2_graphics_engine_d3_d12_2include_2pch_8h_source.html create mode 100644 doc/html/_graphics_2_graphics_engine_open_g_l_2include_2_g_l_context_8h_source.html create mode 100644 doc/html/_graphics_2_graphics_engine_open_g_l_2include_2pch_8h_source.html create mode 100644 doc/html/_graphics_2_graphics_tools_2include_2pch_8h_source.html create mode 100644 doc/html/_graphics_2_h_l_s_l2_g_l_s_l_converter_lib_2include_2pch_8h_source.html create mode 100644 doc/html/_graphics_accessories_8h_source.html create mode 100644 doc/html/_graphics_types_8h_source.html create mode 100644 doc/html/_graphics_utilities_8h_source.html create mode 100644 doc/html/_h_l_s_l2_g_l_s_l_converter_8h_source.html create mode 100644 doc/html/_h_l_s_l2_g_l_s_l_converter_impl_8h_source.html create mode 100644 doc/html/_h_l_s_l2_g_l_s_l_converter_object_8h_source.html create mode 100644 doc/html/_h_l_s_l_keywords_8h_source.html create mode 100644 doc/html/_hash_utils_8h_source.html create mode 100644 doc/html/_input_layout_8h_source.html create mode 100644 doc/html/_interface_i_d_8h_source.html create mode 100644 doc/html/_j_n_i_helper_8h_source.html create mode 100644 doc/html/_linux_debug_8h_source.html create mode 100644 doc/html/_linux_file_system_8h_source.html create mode 100644 doc/html/_linux_platform_definitions_8h_source.html create mode 100644 doc/html/_linux_platform_misc_8h_source.html create mode 100644 doc/html/_lock_helper_8h_source.html create mode 100644 doc/html/_map_helper_8h_source.html create mode 100644 doc/html/_memory_allocator_8h_source.html create mode 100644 doc/html/_n_d_k_helper_8h_source.html create mode 100644 doc/html/_object_8h_source.html create mode 100644 doc/html/_object_base_8h_source.html create mode 100644 doc/html/_pipeline_state_8h_source.html create mode 100644 doc/html/_pipeline_state_base_8h_source.html create mode 100644 doc/html/_pipeline_state_d3_d11_8h_source.html create mode 100644 doc/html/_pipeline_state_d3_d11_impl_8h_source.html create mode 100644 doc/html/_pipeline_state_d3_d12_8h_source.html create mode 100644 doc/html/_pipeline_state_d3_d12_impl_8h_source.html create mode 100644 doc/html/_pipeline_state_g_l_8h_source.html create mode 100644 doc/html/_pipeline_state_g_l_impl_8h_source.html create mode 100644 doc/html/_platform_debug_8h_source.html create mode 100644 doc/html/_platform_definitions_8h_source.html create mode 100644 doc/html/_platform_misc_8h_source.html create mode 100644 doc/html/_platforms_2_u_w_p_2include_2pch_8h_source.html create mode 100644 doc/html/_platforms_2_win32_2include_2pch_8h_source.html create mode 100644 doc/html/_rasterizer_state_8h_source.html create mode 100644 doc/html/_ref_cnt_auto_ptr_8h_source.html create mode 100644 doc/html/_ref_counted_object_impl_8h_source.html create mode 100644 doc/html/_reference_counters_8h_source.html create mode 100644 doc/html/_render_device_8h_source.html create mode 100644 doc/html/_render_device_base_8h_source.html create mode 100644 doc/html/_render_device_d3_d11_8h_source.html create mode 100644 doc/html/_render_device_d3_d11_impl_8h_source.html create mode 100644 doc/html/_render_device_d3_d12_8h_source.html create mode 100644 doc/html/_render_device_d3_d12_impl_8h_source.html create mode 100644 doc/html/_render_device_d3_d_base_8h_source.html create mode 100644 doc/html/_render_device_factory_d3_d11_8h_source.html create mode 100644 doc/html/_render_device_factory_d3_d12_8h_source.html create mode 100644 doc/html/_render_device_factory_open_g_l_8h_source.html create mode 100644 doc/html/_render_device_g_l_8h_source.html create mode 100644 doc/html/_render_device_g_l_e_s_8h_source.html create mode 100644 doc/html/_render_device_g_l_e_s_impl_8h_source.html create mode 100644 doc/html/_render_device_g_l_impl_8h_source.html create mode 100644 doc/html/_resource_mapping_8h_source.html create mode 100644 doc/html/_resource_mapping_impl_8h_source.html create mode 100644 doc/html/_ring_buffer_8h_source.html create mode 100644 doc/html/_root_signature_8h_source.html create mode 100644 doc/html/_s_t_d_allocator_8h_source.html create mode 100644 doc/html/_sampler_8h_source.html create mode 100644 doc/html/_sampler_base_8h_source.html create mode 100644 doc/html/_sampler_d3_d11_8h_source.html create mode 100644 doc/html/_sampler_d3_d11_impl_8h_source.html create mode 100644 doc/html/_sampler_d3_d12_8h_source.html create mode 100644 doc/html/_sampler_d3_d12_impl_8h_source.html create mode 100644 doc/html/_sampler_g_l_8h_source.html create mode 100644 doc/html/_sampler_g_l_impl_8h_source.html create mode 100644 doc/html/_shader_8h_source.html create mode 100644 doc/html/_shader_base_8h_source.html create mode 100644 doc/html/_shader_d3_d11_8h_source.html create mode 100644 doc/html/_shader_d3_d11_impl_8h_source.html create mode 100644 doc/html/_shader_d3_d12_8h_source.html create mode 100644 doc/html/_shader_d3_d12_impl_8h_source.html create mode 100644 doc/html/_shader_d3_d_base_8h_source.html create mode 100644 doc/html/_shader_g_l_8h_source.html create mode 100644 doc/html/_shader_g_l_impl_8h_source.html create mode 100644 doc/html/_shader_macro_helper_8h_source.html create mode 100644 doc/html/_shader_resource_binding_8h_source.html create mode 100644 doc/html/_shader_resource_binding_base_8h_source.html create mode 100644 doc/html/_shader_resource_binding_d3_d11_8h_source.html create mode 100644 doc/html/_shader_resource_binding_d3_d11_impl_8h_source.html create mode 100644 doc/html/_shader_resource_binding_d3_d12_8h_source.html create mode 100644 doc/html/_shader_resource_binding_d3_d12_impl_8h_source.html create mode 100644 doc/html/_shader_resource_binding_g_l_8h_source.html create mode 100644 doc/html/_shader_resource_binding_g_l_impl_8h_source.html create mode 100644 doc/html/_shader_resource_cache_d3_d11_8h_source.html create mode 100644 doc/html/_shader_resource_cache_d3_d12_8h_source.html create mode 100644 doc/html/_shader_resource_layout_d3_d11_8h_source.html create mode 100644 doc/html/_shader_resource_layout_d3_d12_8h_source.html create mode 100644 doc/html/_shader_resources_8h_source.html create mode 100644 doc/html/_shader_resources_d3_d11_8h_source.html create mode 100644 doc/html/_shader_resources_d3_d12_8h_source.html create mode 100644 doc/html/_shader_variable_d3_d_base_8h_source.html create mode 100644 doc/html/_standard_file_8h_source.html create mode 100644 doc/html/_state_objects_registry_8h_source.html create mode 100644 doc/html/_string_data_blob_impl_8h_source.html create mode 100644 doc/html/_string_tools_8h_source.html create mode 100644 doc/html/_swap_chain_8h_source.html create mode 100644 doc/html/_swap_chain_base_8h_source.html create mode 100644 doc/html/_swap_chain_d3_d11_8h_source.html create mode 100644 doc/html/_swap_chain_d3_d11_impl_8h_source.html create mode 100644 doc/html/_swap_chain_d3_d12_8h_source.html create mode 100644 doc/html/_swap_chain_d3_d12_impl_8h_source.html create mode 100644 doc/html/_swap_chain_g_l_8h_source.html create mode 100644 doc/html/_swap_chain_g_l_impl_8h_source.html create mode 100644 doc/html/_tex_region_render_8h_source.html create mode 100644 doc/html/_texture1_d___d3_d11_8h_source.html create mode 100644 doc/html/_texture1_d___o_g_l_8h_source.html create mode 100644 doc/html/_texture1_d_array___o_g_l_8h_source.html create mode 100644 doc/html/_texture2_d___d3_d11_8h_source.html create mode 100644 doc/html/_texture2_d___o_g_l_8h_source.html create mode 100644 doc/html/_texture2_d_array___o_g_l_8h_source.html create mode 100644 doc/html/_texture3_d___d3_d11_8h_source.html create mode 100644 doc/html/_texture3_d___o_g_l_8h_source.html create mode 100644 doc/html/_texture_8h_source.html create mode 100644 doc/html/_texture_base_8h_source.html create mode 100644 doc/html/_texture_base_d3_d11_8h_source.html create mode 100644 doc/html/_texture_base_g_l_8h_source.html create mode 100644 doc/html/_texture_cube___o_g_l_8h_source.html create mode 100644 doc/html/_texture_cube_array___o_g_l_8h_source.html create mode 100644 doc/html/_texture_d3_d11_8h_source.html create mode 100644 doc/html/_texture_d3_d12_8h_source.html create mode 100644 doc/html/_texture_d3_d12_impl_8h_source.html create mode 100644 doc/html/_texture_g_l_8h_source.html create mode 100644 doc/html/_texture_uploader_8h_source.html create mode 100644 doc/html/_texture_uploader_base_8h_source.html create mode 100644 doc/html/_texture_uploader_d3_d11_8h_source.html create mode 100644 doc/html/_texture_uploader_d3_d12_8h_source.html create mode 100644 doc/html/_texture_uploader_g_l_8h_source.html create mode 100644 doc/html/_texture_view_8h_source.html create mode 100644 doc/html/_texture_view_base_8h_source.html create mode 100644 doc/html/_texture_view_d3_d11_8h_source.html create mode 100644 doc/html/_texture_view_d3_d11_impl_8h_source.html create mode 100644 doc/html/_texture_view_d3_d12_8h_source.html create mode 100644 doc/html/_texture_view_d3_d12_impl_8h_source.html create mode 100644 doc/html/_texture_view_g_l_8h_source.html create mode 100644 doc/html/_texture_view_g_l_impl_8h_source.html create mode 100644 doc/html/_timer_8h_source.html create mode 100644 doc/html/_u_w_p_debug_8h_source.html create mode 100644 doc/html/_u_w_p_definitions_8h_source.html create mode 100644 doc/html/_u_w_p_file_system_8h_source.html create mode 100644 doc/html/_unique_identifier_8h_source.html create mode 100644 doc/html/_v_a_o_cache_8h_source.html create mode 100644 doc/html/_validated_cast_8h_source.html create mode 100644 doc/html/_variable_size_allocations_manager_8h_source.html create mode 100644 doc/html/_variable_size_g_p_u_allocations_manager_8h_source.html create mode 100644 doc/html/_win32_atomics_8h_source.html create mode 100644 doc/html/_win32_debug_8h_source.html create mode 100644 doc/html/_win32_file_system_8h_source.html create mode 100644 doc/html/_win32_platform_definitions_8h_source.html create mode 100644 doc/html/_win32_platform_misc_8h_source.html create mode 100644 doc/html/android__native__app__glue_8h_source.html create mode 100644 doc/html/annotated.html create mode 100644 doc/html/arrowdown.png create mode 100644 doc/html/arrowright.png create mode 100644 doc/html/bc_s.png create mode 100644 doc/html/bdwn.png create mode 100644 doc/html/class_diligent_1_1_basic_file_stream-members.html create mode 100644 doc/html/class_diligent_1_1_basic_file_stream.html create mode 100644 doc/html/class_diligent_1_1_basic_file_stream.png create mode 100644 doc/html/class_diligent_1_1_buffer_base-members.html create mode 100644 doc/html/class_diligent_1_1_buffer_base.html create mode 100644 doc/html/class_diligent_1_1_buffer_base.png create mode 100644 doc/html/class_diligent_1_1_buffer_d3_d11_impl-members.html create mode 100644 doc/html/class_diligent_1_1_buffer_d3_d11_impl.html create mode 100644 doc/html/class_diligent_1_1_buffer_d3_d11_impl.png create mode 100644 doc/html/class_diligent_1_1_buffer_d3_d12_impl-members.html create mode 100644 doc/html/class_diligent_1_1_buffer_d3_d12_impl.html create mode 100644 doc/html/class_diligent_1_1_buffer_d3_d12_impl.png create mode 100644 doc/html/class_diligent_1_1_buffer_g_l_impl-members.html create mode 100644 doc/html/class_diligent_1_1_buffer_g_l_impl.html create mode 100644 doc/html/class_diligent_1_1_buffer_g_l_impl.png create mode 100644 doc/html/class_diligent_1_1_buffer_view_base-members.html create mode 100644 doc/html/class_diligent_1_1_buffer_view_base.html create mode 100644 doc/html/class_diligent_1_1_buffer_view_base.png create mode 100644 doc/html/class_diligent_1_1_buffer_view_d3_d11_impl-members.html create mode 100644 doc/html/class_diligent_1_1_buffer_view_d3_d11_impl.html create mode 100644 doc/html/class_diligent_1_1_buffer_view_d3_d11_impl.png create mode 100644 doc/html/class_diligent_1_1_buffer_view_d3_d12_impl-members.html create mode 100644 doc/html/class_diligent_1_1_buffer_view_d3_d12_impl.html create mode 100644 doc/html/class_diligent_1_1_buffer_view_d3_d12_impl.png create mode 100644 doc/html/class_diligent_1_1_buffer_view_g_l_impl-members.html create mode 100644 doc/html/class_diligent_1_1_buffer_view_g_l_impl.html create mode 100644 doc/html/class_diligent_1_1_buffer_view_g_l_impl.png create mode 100644 doc/html/class_diligent_1_1_com_error_desc-members.html create mode 100644 doc/html/class_diligent_1_1_com_error_desc.html create mode 100644 doc/html/class_diligent_1_1_command_list_base-members.html create mode 100644 doc/html/class_diligent_1_1_command_list_base.html create mode 100644 doc/html/class_diligent_1_1_command_list_base.png create mode 100644 doc/html/class_diligent_1_1_command_list_d3_d11_impl-members.html create mode 100644 doc/html/class_diligent_1_1_command_list_d3_d11_impl.html create mode 100644 doc/html/class_diligent_1_1_command_list_d3_d11_impl.png create mode 100644 doc/html/class_diligent_1_1_command_list_d3_d12_impl-members.html create mode 100644 doc/html/class_diligent_1_1_command_list_d3_d12_impl.html create mode 100644 doc/html/class_diligent_1_1_command_list_d3_d12_impl.png create mode 100644 doc/html/class_diligent_1_1_command_queue_d3_d12_impl-members.html create mode 100644 doc/html/class_diligent_1_1_command_queue_d3_d12_impl.html create mode 100644 doc/html/class_diligent_1_1_command_queue_d3_d12_impl.png create mode 100644 doc/html/class_diligent_1_1_d3_d12_resource_base-members.html create mode 100644 doc/html/class_diligent_1_1_d3_d12_resource_base.html create mode 100644 doc/html/class_diligent_1_1_d3_d12_resource_base.png create mode 100644 doc/html/class_diligent_1_1_data_blob_impl-members.html create mode 100644 doc/html/class_diligent_1_1_data_blob_impl.html create mode 100644 doc/html/class_diligent_1_1_data_blob_impl.png create mode 100644 doc/html/class_diligent_1_1_device_context_base-members.html create mode 100644 doc/html/class_diligent_1_1_device_context_base.html create mode 100644 doc/html/class_diligent_1_1_device_context_base.png create mode 100644 doc/html/class_diligent_1_1_device_context_d3_d11_impl-members.html create mode 100644 doc/html/class_diligent_1_1_device_context_d3_d11_impl.html create mode 100644 doc/html/class_diligent_1_1_device_context_d3_d11_impl.png create mode 100644 doc/html/class_diligent_1_1_device_context_d3_d12_impl-members.html create mode 100644 doc/html/class_diligent_1_1_device_context_d3_d12_impl.html create mode 100644 doc/html/class_diligent_1_1_device_context_d3_d12_impl.png create mode 100644 doc/html/class_diligent_1_1_device_context_g_l_impl-members.html create mode 100644 doc/html/class_diligent_1_1_device_context_g_l_impl.html create mode 100644 doc/html/class_diligent_1_1_device_context_g_l_impl.png create mode 100644 doc/html/class_diligent_1_1_device_object_base-members.html create mode 100644 doc/html/class_diligent_1_1_device_object_base.html create mode 100644 doc/html/class_diligent_1_1_device_object_base.png create mode 100644 doc/html/class_diligent_1_1_fixed_block_memory_allocator-members.html create mode 100644 doc/html/class_diligent_1_1_fixed_block_memory_allocator.html create mode 100644 doc/html/class_diligent_1_1_fixed_block_memory_allocator.png create mode 100644 doc/html/class_diligent_1_1_h_l_s_l2_g_l_s_l_converter_object-members.html create mode 100644 doc/html/class_diligent_1_1_h_l_s_l2_g_l_s_l_converter_object.html create mode 100644 doc/html/class_diligent_1_1_h_l_s_l2_g_l_s_l_converter_object.png create mode 100644 doc/html/class_diligent_1_1_i_buffer-members.html create mode 100644 doc/html/class_diligent_1_1_i_buffer.html create mode 100644 doc/html/class_diligent_1_1_i_buffer.png create mode 100644 doc/html/class_diligent_1_1_i_buffer_d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_i_buffer_d3_d11.html create mode 100644 doc/html/class_diligent_1_1_i_buffer_d3_d11.png create mode 100644 doc/html/class_diligent_1_1_i_buffer_d3_d12-members.html create mode 100644 doc/html/class_diligent_1_1_i_buffer_d3_d12.html create mode 100644 doc/html/class_diligent_1_1_i_buffer_d3_d12.png create mode 100644 doc/html/class_diligent_1_1_i_buffer_g_l-members.html create mode 100644 doc/html/class_diligent_1_1_i_buffer_g_l.html create mode 100644 doc/html/class_diligent_1_1_i_buffer_g_l.png create mode 100644 doc/html/class_diligent_1_1_i_buffer_view-members.html create mode 100644 doc/html/class_diligent_1_1_i_buffer_view.html create mode 100644 doc/html/class_diligent_1_1_i_buffer_view.png create mode 100644 doc/html/class_diligent_1_1_i_buffer_view_d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_i_buffer_view_d3_d11.html create mode 100644 doc/html/class_diligent_1_1_i_buffer_view_d3_d11.png create mode 100644 doc/html/class_diligent_1_1_i_buffer_view_d3_d12-members.html create mode 100644 doc/html/class_diligent_1_1_i_buffer_view_d3_d12.html create mode 100644 doc/html/class_diligent_1_1_i_buffer_view_d3_d12.png create mode 100644 doc/html/class_diligent_1_1_i_buffer_view_g_l-members.html create mode 100644 doc/html/class_diligent_1_1_i_buffer_view_g_l.html create mode 100644 doc/html/class_diligent_1_1_i_buffer_view_g_l.png create mode 100644 doc/html/class_diligent_1_1_i_command_list-members.html create mode 100644 doc/html/class_diligent_1_1_i_command_list.html create mode 100644 doc/html/class_diligent_1_1_i_command_list.png create mode 100644 doc/html/class_diligent_1_1_i_command_queue_d3_d12-members.html create mode 100644 doc/html/class_diligent_1_1_i_command_queue_d3_d12.html create mode 100644 doc/html/class_diligent_1_1_i_command_queue_d3_d12.png create mode 100644 doc/html/class_diligent_1_1_i_data_blob-members.html create mode 100644 doc/html/class_diligent_1_1_i_data_blob.html create mode 100644 doc/html/class_diligent_1_1_i_data_blob.png create mode 100644 doc/html/class_diligent_1_1_i_device_context-members.html create mode 100644 doc/html/class_diligent_1_1_i_device_context.html create mode 100644 doc/html/class_diligent_1_1_i_device_context.png create mode 100644 doc/html/class_diligent_1_1_i_device_context_d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_i_device_context_d3_d11.html create mode 100644 doc/html/class_diligent_1_1_i_device_context_d3_d11.png create mode 100644 doc/html/class_diligent_1_1_i_device_context_d3_d12-members.html create mode 100644 doc/html/class_diligent_1_1_i_device_context_d3_d12.html create mode 100644 doc/html/class_diligent_1_1_i_device_context_d3_d12.png create mode 100644 doc/html/class_diligent_1_1_i_device_context_g_l-members.html create mode 100644 doc/html/class_diligent_1_1_i_device_context_g_l.html create mode 100644 doc/html/class_diligent_1_1_i_device_context_g_l.png create mode 100644 doc/html/class_diligent_1_1_i_device_object-members.html create mode 100644 doc/html/class_diligent_1_1_i_device_object.html create mode 100644 doc/html/class_diligent_1_1_i_device_object.png create mode 100644 doc/html/class_diligent_1_1_i_file_stream-members.html create mode 100644 doc/html/class_diligent_1_1_i_file_stream.html create mode 100644 doc/html/class_diligent_1_1_i_file_stream.png create mode 100644 doc/html/class_diligent_1_1_i_h_l_s_l2_g_l_s_l_converter-members.html create mode 100644 doc/html/class_diligent_1_1_i_h_l_s_l2_g_l_s_l_converter.html create mode 100644 doc/html/class_diligent_1_1_i_h_l_s_l2_g_l_s_l_converter.png create mode 100644 doc/html/class_diligent_1_1_i_memory_allocator-members.html create mode 100644 doc/html/class_diligent_1_1_i_memory_allocator.html create mode 100644 doc/html/class_diligent_1_1_i_memory_allocator.png create mode 100644 doc/html/class_diligent_1_1_i_object-members.html create mode 100644 doc/html/class_diligent_1_1_i_object.html create mode 100644 doc/html/class_diligent_1_1_i_object.png create mode 100644 doc/html/class_diligent_1_1_i_pipeline_state-members.html create mode 100644 doc/html/class_diligent_1_1_i_pipeline_state.html create mode 100644 doc/html/class_diligent_1_1_i_pipeline_state.png create mode 100644 doc/html/class_diligent_1_1_i_pipeline_state_d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_i_pipeline_state_d3_d11.html create mode 100644 doc/html/class_diligent_1_1_i_pipeline_state_d3_d11.png create mode 100644 doc/html/class_diligent_1_1_i_pipeline_state_d3_d12-members.html create mode 100644 doc/html/class_diligent_1_1_i_pipeline_state_d3_d12.html create mode 100644 doc/html/class_diligent_1_1_i_pipeline_state_d3_d12.png create mode 100644 doc/html/class_diligent_1_1_i_pipeline_state_g_l-members.html create mode 100644 doc/html/class_diligent_1_1_i_pipeline_state_g_l.html create mode 100644 doc/html/class_diligent_1_1_i_pipeline_state_g_l.png create mode 100644 doc/html/class_diligent_1_1_i_reference_counters-members.html create mode 100644 doc/html/class_diligent_1_1_i_reference_counters.html create mode 100644 doc/html/class_diligent_1_1_i_render_device-members.html create mode 100644 doc/html/class_diligent_1_1_i_render_device.html create mode 100644 doc/html/class_diligent_1_1_i_render_device.png create mode 100644 doc/html/class_diligent_1_1_i_render_device_d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_i_render_device_d3_d11.html create mode 100644 doc/html/class_diligent_1_1_i_render_device_d3_d11.png create mode 100644 doc/html/class_diligent_1_1_i_render_device_d3_d12-members.html create mode 100644 doc/html/class_diligent_1_1_i_render_device_d3_d12.html create mode 100644 doc/html/class_diligent_1_1_i_render_device_d3_d12.png create mode 100644 doc/html/class_diligent_1_1_i_render_device_g_l-members.html create mode 100644 doc/html/class_diligent_1_1_i_render_device_g_l.html create mode 100644 doc/html/class_diligent_1_1_i_render_device_g_l.png create mode 100644 doc/html/class_diligent_1_1_i_render_device_g_l_e_s-members.html create mode 100644 doc/html/class_diligent_1_1_i_render_device_g_l_e_s.html create mode 100644 doc/html/class_diligent_1_1_i_render_device_g_l_e_s.png create mode 100644 doc/html/class_diligent_1_1_i_resource_mapping-members.html create mode 100644 doc/html/class_diligent_1_1_i_resource_mapping.html create mode 100644 doc/html/class_diligent_1_1_i_resource_mapping.png create mode 100644 doc/html/class_diligent_1_1_i_sampler-members.html create mode 100644 doc/html/class_diligent_1_1_i_sampler.html create mode 100644 doc/html/class_diligent_1_1_i_sampler.png create mode 100644 doc/html/class_diligent_1_1_i_sampler_d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_i_sampler_d3_d11.html create mode 100644 doc/html/class_diligent_1_1_i_sampler_d3_d11.png create mode 100644 doc/html/class_diligent_1_1_i_sampler_d3_d12-members.html create mode 100644 doc/html/class_diligent_1_1_i_sampler_d3_d12.html create mode 100644 doc/html/class_diligent_1_1_i_sampler_d3_d12.png create mode 100644 doc/html/class_diligent_1_1_i_sampler_g_l-members.html create mode 100644 doc/html/class_diligent_1_1_i_sampler_g_l.html create mode 100644 doc/html/class_diligent_1_1_i_sampler_g_l.png create mode 100644 doc/html/class_diligent_1_1_i_shader-members.html create mode 100644 doc/html/class_diligent_1_1_i_shader.html create mode 100644 doc/html/class_diligent_1_1_i_shader.png create mode 100644 doc/html/class_diligent_1_1_i_shader_d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_i_shader_d3_d11.html create mode 100644 doc/html/class_diligent_1_1_i_shader_d3_d11.png create mode 100644 doc/html/class_diligent_1_1_i_shader_d3_d12-members.html create mode 100644 doc/html/class_diligent_1_1_i_shader_d3_d12.html create mode 100644 doc/html/class_diligent_1_1_i_shader_d3_d12.png create mode 100644 doc/html/class_diligent_1_1_i_shader_g_l-members.html create mode 100644 doc/html/class_diligent_1_1_i_shader_g_l.html create mode 100644 doc/html/class_diligent_1_1_i_shader_g_l.png create mode 100644 doc/html/class_diligent_1_1_i_shader_resource_binding-members.html create mode 100644 doc/html/class_diligent_1_1_i_shader_resource_binding.html create mode 100644 doc/html/class_diligent_1_1_i_shader_resource_binding.png create mode 100644 doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d11.html create mode 100644 doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d11.png create mode 100644 doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d12-members.html create mode 100644 doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d12.html create mode 100644 doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d12.png create mode 100644 doc/html/class_diligent_1_1_i_shader_resource_binding_g_l-members.html create mode 100644 doc/html/class_diligent_1_1_i_shader_resource_binding_g_l.html create mode 100644 doc/html/class_diligent_1_1_i_shader_resource_binding_g_l.png create mode 100644 doc/html/class_diligent_1_1_i_shader_source_input_stream_factory-members.html create mode 100644 doc/html/class_diligent_1_1_i_shader_source_input_stream_factory.html create mode 100644 doc/html/class_diligent_1_1_i_shader_variable-members.html create mode 100644 doc/html/class_diligent_1_1_i_shader_variable.html create mode 100644 doc/html/class_diligent_1_1_i_shader_variable.png create mode 100644 doc/html/class_diligent_1_1_i_swap_chain-members.html create mode 100644 doc/html/class_diligent_1_1_i_swap_chain.html create mode 100644 doc/html/class_diligent_1_1_i_swap_chain.png create mode 100644 doc/html/class_diligent_1_1_i_swap_chain_d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_i_swap_chain_d3_d11.html create mode 100644 doc/html/class_diligent_1_1_i_swap_chain_d3_d11.png create mode 100644 doc/html/class_diligent_1_1_i_swap_chain_d3_d12-members.html create mode 100644 doc/html/class_diligent_1_1_i_swap_chain_d3_d12.html create mode 100644 doc/html/class_diligent_1_1_i_swap_chain_d3_d12.png create mode 100644 doc/html/class_diligent_1_1_i_swap_chain_g_l-members.html create mode 100644 doc/html/class_diligent_1_1_i_swap_chain_g_l.html create mode 100644 doc/html/class_diligent_1_1_i_swap_chain_g_l.png create mode 100644 doc/html/class_diligent_1_1_i_texture-members.html create mode 100644 doc/html/class_diligent_1_1_i_texture.html create mode 100644 doc/html/class_diligent_1_1_i_texture.png create mode 100644 doc/html/class_diligent_1_1_i_texture_d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_i_texture_d3_d11.html create mode 100644 doc/html/class_diligent_1_1_i_texture_d3_d11.png create mode 100644 doc/html/class_diligent_1_1_i_texture_d3_d12-members.html create mode 100644 doc/html/class_diligent_1_1_i_texture_d3_d12.html create mode 100644 doc/html/class_diligent_1_1_i_texture_d3_d12.png create mode 100644 doc/html/class_diligent_1_1_i_texture_g_l-members.html create mode 100644 doc/html/class_diligent_1_1_i_texture_g_l.html create mode 100644 doc/html/class_diligent_1_1_i_texture_g_l.png create mode 100644 doc/html/class_diligent_1_1_i_texture_view-members.html create mode 100644 doc/html/class_diligent_1_1_i_texture_view.html create mode 100644 doc/html/class_diligent_1_1_i_texture_view.png create mode 100644 doc/html/class_diligent_1_1_i_texture_view_d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_i_texture_view_d3_d11.html create mode 100644 doc/html/class_diligent_1_1_i_texture_view_d3_d11.png create mode 100644 doc/html/class_diligent_1_1_i_texture_view_d3_d12-members.html create mode 100644 doc/html/class_diligent_1_1_i_texture_view_d3_d12.html create mode 100644 doc/html/class_diligent_1_1_i_texture_view_d3_d12.png create mode 100644 doc/html/class_diligent_1_1_i_texture_view_g_l-members.html create mode 100644 doc/html/class_diligent_1_1_i_texture_view_g_l.html create mode 100644 doc/html/class_diligent_1_1_i_texture_view_g_l.png create mode 100644 doc/html/class_diligent_1_1_map_helper-members.html create mode 100644 doc/html/class_diligent_1_1_map_helper.html create mode 100644 doc/html/class_diligent_1_1_object_base-members.html create mode 100644 doc/html/class_diligent_1_1_object_base.html create mode 100644 doc/html/class_diligent_1_1_object_base.png create mode 100644 doc/html/class_diligent_1_1_pipeline_state_base-members.html create mode 100644 doc/html/class_diligent_1_1_pipeline_state_base.html create mode 100644 doc/html/class_diligent_1_1_pipeline_state_base.png create mode 100644 doc/html/class_diligent_1_1_pipeline_state_d3_d11_impl-members.html create mode 100644 doc/html/class_diligent_1_1_pipeline_state_d3_d11_impl.html create mode 100644 doc/html/class_diligent_1_1_pipeline_state_d3_d11_impl.png create mode 100644 doc/html/class_diligent_1_1_pipeline_state_d3_d12_impl-members.html create mode 100644 doc/html/class_diligent_1_1_pipeline_state_d3_d12_impl.html create mode 100644 doc/html/class_diligent_1_1_pipeline_state_d3_d12_impl.png create mode 100644 doc/html/class_diligent_1_1_pipeline_state_g_l_impl-members.html create mode 100644 doc/html/class_diligent_1_1_pipeline_state_g_l_impl.html create mode 100644 doc/html/class_diligent_1_1_pipeline_state_g_l_impl.png create mode 100644 doc/html/class_diligent_1_1_ref_cnt_auto_ptr-members.html create mode 100644 doc/html/class_diligent_1_1_ref_cnt_auto_ptr.html create mode 100644 doc/html/class_diligent_1_1_ref_cnt_weak_ptr-members.html create mode 100644 doc/html/class_diligent_1_1_ref_cnt_weak_ptr.html create mode 100644 doc/html/class_diligent_1_1_ref_counted_object-members.html create mode 100644 doc/html/class_diligent_1_1_ref_counted_object.html create mode 100644 doc/html/class_diligent_1_1_render_device_base-members.html create mode 100644 doc/html/class_diligent_1_1_render_device_base.html create mode 100644 doc/html/class_diligent_1_1_render_device_base.png create mode 100644 doc/html/class_diligent_1_1_render_device_d3_d11_impl-members.html create mode 100644 doc/html/class_diligent_1_1_render_device_d3_d11_impl.html create mode 100644 doc/html/class_diligent_1_1_render_device_d3_d11_impl.png create mode 100644 doc/html/class_diligent_1_1_render_device_d3_d12_impl-members.html create mode 100644 doc/html/class_diligent_1_1_render_device_d3_d12_impl.html create mode 100644 doc/html/class_diligent_1_1_render_device_d3_d12_impl.png create mode 100644 doc/html/class_diligent_1_1_render_device_d3_d_base-members.html create mode 100644 doc/html/class_diligent_1_1_render_device_d3_d_base.html create mode 100644 doc/html/class_diligent_1_1_render_device_d3_d_base.png create mode 100644 doc/html/class_diligent_1_1_render_device_g_l_impl-members.html create mode 100644 doc/html/class_diligent_1_1_render_device_g_l_impl.html create mode 100644 doc/html/class_diligent_1_1_render_device_g_l_impl.png create mode 100644 doc/html/class_diligent_1_1_resource_mapping_impl-members.html create mode 100644 doc/html/class_diligent_1_1_resource_mapping_impl.html create mode 100644 doc/html/class_diligent_1_1_resource_mapping_impl.png create mode 100644 doc/html/class_diligent_1_1_ring_buffer-members.html create mode 100644 doc/html/class_diligent_1_1_ring_buffer.html create mode 100644 doc/html/class_diligent_1_1_root_signature-members.html create mode 100644 doc/html/class_diligent_1_1_root_signature.html create mode 100644 doc/html/class_diligent_1_1_sampler_base-members.html create mode 100644 doc/html/class_diligent_1_1_sampler_base.html create mode 100644 doc/html/class_diligent_1_1_sampler_base.png create mode 100644 doc/html/class_diligent_1_1_sampler_d3_d11_impl-members.html create mode 100644 doc/html/class_diligent_1_1_sampler_d3_d11_impl.html create mode 100644 doc/html/class_diligent_1_1_sampler_d3_d11_impl.png create mode 100644 doc/html/class_diligent_1_1_sampler_d3_d12_impl-members.html create mode 100644 doc/html/class_diligent_1_1_sampler_d3_d12_impl.html create mode 100644 doc/html/class_diligent_1_1_sampler_d3_d12_impl.png create mode 100644 doc/html/class_diligent_1_1_sampler_g_l_impl-members.html create mode 100644 doc/html/class_diligent_1_1_sampler_g_l_impl.html create mode 100644 doc/html/class_diligent_1_1_sampler_g_l_impl.png create mode 100644 doc/html/class_diligent_1_1_shader_base-members.html create mode 100644 doc/html/class_diligent_1_1_shader_base.html create mode 100644 doc/html/class_diligent_1_1_shader_base.png create mode 100644 doc/html/class_diligent_1_1_shader_d3_d11_impl-members.html create mode 100644 doc/html/class_diligent_1_1_shader_d3_d11_impl.html create mode 100644 doc/html/class_diligent_1_1_shader_d3_d11_impl.png create mode 100644 doc/html/class_diligent_1_1_shader_d3_d12_impl-members.html create mode 100644 doc/html/class_diligent_1_1_shader_d3_d12_impl.html create mode 100644 doc/html/class_diligent_1_1_shader_d3_d12_impl.png create mode 100644 doc/html/class_diligent_1_1_shader_d3_d_base-members.html create mode 100644 doc/html/class_diligent_1_1_shader_d3_d_base.html create mode 100644 doc/html/class_diligent_1_1_shader_d3_d_base.png create mode 100644 doc/html/class_diligent_1_1_shader_g_l_impl-members.html create mode 100644 doc/html/class_diligent_1_1_shader_g_l_impl.html create mode 100644 doc/html/class_diligent_1_1_shader_g_l_impl.png create mode 100644 doc/html/class_diligent_1_1_shader_resource_binding_base-members.html create mode 100644 doc/html/class_diligent_1_1_shader_resource_binding_base.html create mode 100644 doc/html/class_diligent_1_1_shader_resource_binding_base.png create mode 100644 doc/html/class_diligent_1_1_shader_resource_binding_d3_d11_impl-members.html create mode 100644 doc/html/class_diligent_1_1_shader_resource_binding_d3_d11_impl.html create mode 100644 doc/html/class_diligent_1_1_shader_resource_binding_d3_d11_impl.png create mode 100644 doc/html/class_diligent_1_1_shader_resource_binding_d3_d12_impl-members.html create mode 100644 doc/html/class_diligent_1_1_shader_resource_binding_d3_d12_impl.html create mode 100644 doc/html/class_diligent_1_1_shader_resource_binding_d3_d12_impl.png create mode 100644 doc/html/class_diligent_1_1_shader_resource_binding_g_l_impl-members.html create mode 100644 doc/html/class_diligent_1_1_shader_resource_binding_g_l_impl.html create mode 100644 doc/html/class_diligent_1_1_shader_resource_binding_g_l_impl.png create mode 100644 doc/html/class_diligent_1_1_shader_resource_cache_d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_shader_resource_cache_d3_d11.html create mode 100644 doc/html/class_diligent_1_1_shader_resource_layout_d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_shader_resource_layout_d3_d11.html create mode 100644 doc/html/class_diligent_1_1_shader_resource_layout_d3_d12-members.html create mode 100644 doc/html/class_diligent_1_1_shader_resource_layout_d3_d12.html create mode 100644 doc/html/class_diligent_1_1_shader_resources-members.html create mode 100644 doc/html/class_diligent_1_1_shader_resources.html create mode 100644 doc/html/class_diligent_1_1_shader_resources.png create mode 100644 doc/html/class_diligent_1_1_shader_resources_d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_shader_resources_d3_d11.html create mode 100644 doc/html/class_diligent_1_1_shader_resources_d3_d11.png create mode 100644 doc/html/class_diligent_1_1_shader_resources_d3_d12-members.html create mode 100644 doc/html/class_diligent_1_1_shader_resources_d3_d12.html create mode 100644 doc/html/class_diligent_1_1_shader_resources_d3_d12.png create mode 100644 doc/html/class_diligent_1_1_state_objects_registry-members.html create mode 100644 doc/html/class_diligent_1_1_state_objects_registry.html create mode 100644 doc/html/class_diligent_1_1_string_data_blob_impl-members.html create mode 100644 doc/html/class_diligent_1_1_string_data_blob_impl.html create mode 100644 doc/html/class_diligent_1_1_string_data_blob_impl.png create mode 100644 doc/html/class_diligent_1_1_swap_chain_base-members.html create mode 100644 doc/html/class_diligent_1_1_swap_chain_base.html create mode 100644 doc/html/class_diligent_1_1_swap_chain_base.png create mode 100644 doc/html/class_diligent_1_1_swap_chain_d3_d11_impl-members.html create mode 100644 doc/html/class_diligent_1_1_swap_chain_d3_d11_impl.html create mode 100644 doc/html/class_diligent_1_1_swap_chain_d3_d11_impl.png create mode 100644 doc/html/class_diligent_1_1_swap_chain_d3_d12_impl-members.html create mode 100644 doc/html/class_diligent_1_1_swap_chain_d3_d12_impl.html create mode 100644 doc/html/class_diligent_1_1_swap_chain_d3_d12_impl.png create mode 100644 doc/html/class_diligent_1_1_swap_chain_g_l_impl-members.html create mode 100644 doc/html/class_diligent_1_1_swap_chain_g_l_impl.html create mode 100644 doc/html/class_diligent_1_1_swap_chain_g_l_impl.png create mode 100644 doc/html/class_diligent_1_1_texture1_d___d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_texture1_d___d3_d11.html create mode 100644 doc/html/class_diligent_1_1_texture1_d___d3_d11.png create mode 100644 doc/html/class_diligent_1_1_texture2_d___d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_texture2_d___d3_d11.html create mode 100644 doc/html/class_diligent_1_1_texture2_d___d3_d11.png create mode 100644 doc/html/class_diligent_1_1_texture3_d___d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_texture3_d___d3_d11.html create mode 100644 doc/html/class_diligent_1_1_texture3_d___d3_d11.png create mode 100644 doc/html/class_diligent_1_1_texture_base-members.html create mode 100644 doc/html/class_diligent_1_1_texture_base.html create mode 100644 doc/html/class_diligent_1_1_texture_base.png create mode 100644 doc/html/class_diligent_1_1_texture_base_d3_d11-members.html create mode 100644 doc/html/class_diligent_1_1_texture_base_d3_d11.html create mode 100644 doc/html/class_diligent_1_1_texture_base_d3_d11.png create mode 100644 doc/html/class_diligent_1_1_texture_base_g_l-members.html create mode 100644 doc/html/class_diligent_1_1_texture_base_g_l.html create mode 100644 doc/html/class_diligent_1_1_texture_base_g_l.png create mode 100644 doc/html/class_diligent_1_1_texture_d3_d12_impl-members.html create mode 100644 doc/html/class_diligent_1_1_texture_d3_d12_impl.html create mode 100644 doc/html/class_diligent_1_1_texture_d3_d12_impl.png create mode 100644 doc/html/class_diligent_1_1_texture_view_base-members.html create mode 100644 doc/html/class_diligent_1_1_texture_view_base.html create mode 100644 doc/html/class_diligent_1_1_texture_view_base.png create mode 100644 doc/html/class_diligent_1_1_texture_view_d3_d11_impl-members.html create mode 100644 doc/html/class_diligent_1_1_texture_view_d3_d11_impl.html create mode 100644 doc/html/class_diligent_1_1_texture_view_d3_d11_impl.png create mode 100644 doc/html/class_diligent_1_1_texture_view_d3_d12_impl-members.html create mode 100644 doc/html/class_diligent_1_1_texture_view_d3_d12_impl.html create mode 100644 doc/html/class_diligent_1_1_texture_view_d3_d12_impl.png create mode 100644 doc/html/class_diligent_1_1_texture_view_g_l_impl-members.html create mode 100644 doc/html/class_diligent_1_1_texture_view_g_l_impl.html create mode 100644 doc/html/class_diligent_1_1_texture_view_g_l_impl.png create mode 100644 doc/html/classes.html create mode 100644 doc/html/closed.png create mode 100644 doc/html/d3dx12__win_8h_source.html create mode 100644 doc/html/dir_025bdc97dd64691b0b4f955c81213e8c.html create mode 100644 doc/html/dir_02d6d0846e01f3d88bd4a80b12ddffed.html create mode 100644 doc/html/dir_06ef4e3f07a13813ee5ae3ec0e9bad35.html create mode 100644 doc/html/dir_09e59e443c246ed342ba89292195248a.html create mode 100644 doc/html/dir_1238e6cbf5461cee8548eafbea3fb374.html create mode 100644 doc/html/dir_167d4bd16e8890a7cd2ff5ec5270769a.html create mode 100644 doc/html/dir_1f72b11abb8bace4525c8c39e6f19341.html create mode 100644 doc/html/dir_23a53e76397ca6b389073375cca4ee24.html create mode 100644 doc/html/dir_2424fdfe65d59a93479936929e7463cb.html create mode 100644 doc/html/dir_2fe9345e431230b3d055068f7e103e1c.html create mode 100644 doc/html/dir_3048468492d713bfc2aaa22d8490a571.html create mode 100644 doc/html/dir_344658fcb16a13a09094a2878bfe0cc6.html create mode 100644 doc/html/dir_3752367cbca4c9b58dde90984de9bccc.html create mode 100644 doc/html/dir_3a4ebd241e0adc51deb2a66da42ae463.html create mode 100644 doc/html/dir_3a819408b9777a60f7f57340e4147aae.html create mode 100644 doc/html/dir_41be5404b15064fd6cb707edbcd785b7.html create mode 100644 doc/html/dir_443fc37f241ba4018364a998c18d007b.html create mode 100644 doc/html/dir_4ab6b4cc6a7edbff49100e9123df213f.html create mode 100644 doc/html/dir_4c3a11d98988e5797b69924924a84da2.html create mode 100644 doc/html/dir_4d872942c630370da04c302542204c89.html create mode 100644 doc/html/dir_5141a14ee98b46749a6defb3839dab55.html create mode 100644 doc/html/dir_5d3b9e51e9fbe434f439d538f18d672c.html create mode 100644 doc/html/dir_5efc8bc1e288832c60268f64c6a51239.html create mode 100644 doc/html/dir_621c25a4dce711ebf3a6f5a041b77c17.html create mode 100644 doc/html/dir_645f2f2568fa5c02031acbfd93298cd3.html create mode 100644 doc/html/dir_64f7452aef2cdad98d34a70f5ea329e2.html create mode 100644 doc/html/dir_65579a36a59e5fa8e560426a7872d069.html create mode 100644 doc/html/dir_6efbf128a3ac7cc438f7e283f4b26daa.html create mode 100644 doc/html/dir_6f5298fc22fb2bb7779e518b5f3e37e7.html create mode 100644 doc/html/dir_71a0fe92868d87339603cb54d401c25a.html create mode 100644 doc/html/dir_72dd7f9d43aa98ace886b3544ecc96ae.html create mode 100644 doc/html/dir_73a797b61c7265598bf7f4b979c6c9ed.html create mode 100644 doc/html/dir_75aeac67226ff3fcc423c42454e837cc.html create mode 100644 doc/html/dir_78a75200960430ffac0c2ee6accc16da.html create mode 100644 doc/html/dir_78c27d1ffd1798cbaedc6831f648b547.html create mode 100644 doc/html/dir_7ebeaf53366ffd3dfb1d502f7c5f4426.html create mode 100644 doc/html/dir_84b36d56f7b4fc52b5c5efb321dc0000.html create mode 100644 doc/html/dir_85012488fe36283ebcb15fcbda1ae89f.html create mode 100644 doc/html/dir_85f39ffbb838bbfece321bb4f8d621bf.html create mode 100644 doc/html/dir_9195ec9876d1a0109e971c171bae0f6f.html create mode 100644 doc/html/dir_92cb2900980f09bf257878861626e98f.html create mode 100644 doc/html/dir_93be327b3cc3da5529d54ec42b11f308.html create mode 100644 doc/html/dir_9471888542df7613d67bd77853f3043a.html create mode 100644 doc/html/dir_986ed229c8bd2105276dc6f7f6691aa2.html create mode 100644 doc/html/dir_9b8b2ba32555d10c6e461abe40fed114.html create mode 100644 doc/html/dir_9bd32c6442cde976f141bac2efe8a42e.html create mode 100644 doc/html/dir_9c4007343c7adfd14026107d5f4d7396.html create mode 100644 doc/html/dir_a979a0769f701b04637d969865d65bf6.html create mode 100644 doc/html/dir_b05a5fa85f84bfc9013183c9d87f9a36.html create mode 100644 doc/html/dir_b05c391b1919d1ed2cba19af6bc34105.html create mode 100644 doc/html/dir_bb685b13b42415b0316ff027c8af4cf7.html create mode 100644 doc/html/dir_bc3082b78d94babef84a35bfcdc9f2a9.html create mode 100644 doc/html/dir_bcba4911fbc539869e8e42c1eee5290c.html create mode 100644 doc/html/dir_c14f889dd2eabb40f33940b62dde1899.html create mode 100644 doc/html/dir_c34a03468eacdd279ce7df13aaf8be35.html create mode 100644 doc/html/dir_c81e2bbe52342ad85c6df4b5da5342ae.html create mode 100644 doc/html/dir_cce291394cd32453076ad2518557a3ce.html create mode 100644 doc/html/dir_cd89c6f694be839cedac8e0968a623c1.html create mode 100644 doc/html/dir_d6522a90866720d8f9d6d452f6024cb3.html create mode 100644 doc/html/dir_d86bb5f490e23b390428054071f71303.html create mode 100644 doc/html/dir_dcadd071f86d817ff481621da6d513b2.html create mode 100644 doc/html/dir_dfd2a36e5d7e18a07e2d62267c3478e3.html create mode 100644 doc/html/dir_e48f30194d94fdd1dcbbc479c6afc2e2.html create mode 100644 doc/html/dir_e4adb31a02abf2c56ebb0eddad9839cc.html create mode 100644 doc/html/dir_e5c92ba1793c0d530db39bcf10297377.html create mode 100644 doc/html/dir_e6079c330507d68f1ae0aff3b70538e2.html create mode 100644 doc/html/dir_ecb5f9f0f25d20023a282ab2a0713764.html create mode 100644 doc/html/dir_f0df80f5feb8c8ef897a587309ad6a15.html create mode 100644 doc/html/dir_f16caef3a7f43b3f0e8a3a66426d5b4f.html create mode 100644 doc/html/dir_f184bd3933ab1dc1369d332259c9bae5.html create mode 100644 doc/html/dir_f42476f6cdbec807db89f1b1b5522dce.html create mode 100644 doc/html/dir_fba0aa376286f5aae7cd1ec184e07477.html create mode 100644 doc/html/dir_fc5af6d1773db9fbf4492fb9f3c112e5.html create mode 100644 doc/html/dir_fd2dd35c0314879b24158b45d1b1dc1e.html create mode 100644 doc/html/doc.png create mode 100644 doc/html/doxygen.css create mode 100644 doc/html/doxygen.png create mode 100644 doc/html/dynsections.js create mode 100644 doc/html/eglew_8h_source.html create mode 100644 doc/html/eglew__head_8h_source.html create mode 100644 doc/html/eglew__mid_8h_source.html create mode 100644 doc/html/eglew__tail_8h_source.html create mode 100644 doc/html/folderclosed.png create mode 100644 doc/html/folderopen.png create mode 100644 doc/html/functions.html create mode 100644 doc/html/functions_0x7e.html create mode 100644 doc/html/functions_b.html create mode 100644 doc/html/functions_c.html create mode 100644 doc/html/functions_d.html create mode 100644 doc/html/functions_e.html create mode 100644 doc/html/functions_enum.html create mode 100644 doc/html/functions_eval.html create mode 100644 doc/html/functions_f.html create mode 100644 doc/html/functions_func.html create mode 100644 doc/html/functions_func_0x7e.html create mode 100644 doc/html/functions_func_b.html create mode 100644 doc/html/functions_func_c.html create mode 100644 doc/html/functions_func_d.html create mode 100644 doc/html/functions_func_e.html create mode 100644 doc/html/functions_func_f.html create mode 100644 doc/html/functions_func_g.html create mode 100644 doc/html/functions_func_i.html create mode 100644 doc/html/functions_func_l.html create mode 100644 doc/html/functions_func_m.html create mode 100644 doc/html/functions_func_o.html create mode 100644 doc/html/functions_func_p.html create mode 100644 doc/html/functions_func_q.html create mode 100644 doc/html/functions_func_r.html create mode 100644 doc/html/functions_func_s.html create mode 100644 doc/html/functions_func_t.html create mode 100644 doc/html/functions_func_u.html create mode 100644 doc/html/functions_func_v.html create mode 100644 doc/html/functions_func_w.html create mode 100644 doc/html/functions_func_~.html create mode 100644 doc/html/functions_g.html create mode 100644 doc/html/functions_h.html create mode 100644 doc/html/functions_i.html create mode 100644 doc/html/functions_l.html create mode 100644 doc/html/functions_m.html create mode 100644 doc/html/functions_n.html create mode 100644 doc/html/functions_o.html create mode 100644 doc/html/functions_p.html create mode 100644 doc/html/functions_q.html create mode 100644 doc/html/functions_r.html create mode 100644 doc/html/functions_s.html create mode 100644 doc/html/functions_t.html create mode 100644 doc/html/functions_u.html create mode 100644 doc/html/functions_v.html create mode 100644 doc/html/functions_vars.html create mode 100644 doc/html/functions_vars_b.html create mode 100644 doc/html/functions_vars_c.html create mode 100644 doc/html/functions_vars_d.html create mode 100644 doc/html/functions_vars_e.html create mode 100644 doc/html/functions_vars_f.html create mode 100644 doc/html/functions_vars_g.html create mode 100644 doc/html/functions_vars_h.html create mode 100644 doc/html/functions_vars_i.html create mode 100644 doc/html/functions_vars_l.html create mode 100644 doc/html/functions_vars_m.html create mode 100644 doc/html/functions_vars_n.html create mode 100644 doc/html/functions_vars_o.html create mode 100644 doc/html/functions_vars_p.html create mode 100644 doc/html/functions_vars_q.html create mode 100644 doc/html/functions_vars_r.html create mode 100644 doc/html/functions_vars_s.html create mode 100644 doc/html/functions_vars_t.html create mode 100644 doc/html/functions_vars_u.html create mode 100644 doc/html/functions_vars_v.html create mode 100644 doc/html/functions_vars_w.html create mode 100644 doc/html/functions_w.html create mode 100644 doc/html/functions_~.html create mode 100644 doc/html/gesture_detector_8h_source.html create mode 100644 doc/html/gl3stub_8h_source.html create mode 100644 doc/html/glew_8h_source.html create mode 100644 doc/html/glew__head_8h_source.html create mode 100644 doc/html/glew__license_8h_source.html create mode 100644 doc/html/glew__tail_8h_source.html create mode 100644 doc/html/glxew_8h_source.html create mode 100644 doc/html/glxew__head_8h_source.html create mode 100644 doc/html/glxew__mid_8h_source.html create mode 100644 doc/html/glxew__tail_8h_source.html create mode 100644 doc/html/hierarchy.html create mode 100644 doc/html/index.html create mode 100644 doc/html/interpolator_8h_source.html create mode 100644 doc/html/jquery.js create mode 100644 doc/html/khronos__license_8h_source.html create mode 100644 doc/html/md__d_1__git_hub__diligent_engine__diligent_core__common_readme.html create mode 100644 doc/html/md__d_1__git_hub__diligent_engine__diligent_core__external_glew__r_e_a_d_m_e.html create mode 100644 doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_d3_d11_readme.html create mode 100644 doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_d3_d12_readme.html create mode 100644 doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_open_g_l_readme.html create mode 100644 doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__h_l_s_l2_g_l_s_l_converter_lib_readme.html create mode 100644 doc/html/menu.js create mode 100644 doc/html/menudata.js create mode 100644 doc/html/mesa__license_8h_source.html create mode 100644 doc/html/namespace_diligent.html create mode 100644 doc/html/namespacemembers.html create mode 100644 doc/html/namespacemembers_c.html create mode 100644 doc/html/namespacemembers_d.html create mode 100644 doc/html/namespacemembers_e.html create mode 100644 doc/html/namespacemembers_enum.html create mode 100644 doc/html/namespacemembers_eval.html create mode 100644 doc/html/namespacemembers_eval_c.html create mode 100644 doc/html/namespacemembers_eval_f.html create mode 100644 doc/html/namespacemembers_eval_l.html create mode 100644 doc/html/namespacemembers_eval_m.html create mode 100644 doc/html/namespacemembers_eval_p.html create mode 100644 doc/html/namespacemembers_eval_r.html create mode 100644 doc/html/namespacemembers_eval_s.html create mode 100644 doc/html/namespacemembers_eval_t.html create mode 100644 doc/html/namespacemembers_eval_u.html create mode 100644 doc/html/namespacemembers_eval_v.html create mode 100644 doc/html/namespacemembers_f.html create mode 100644 doc/html/namespacemembers_func.html create mode 100644 doc/html/namespacemembers_g.html create mode 100644 doc/html/namespacemembers_i.html create mode 100644 doc/html/namespacemembers_l.html create mode 100644 doc/html/namespacemembers_m.html create mode 100644 doc/html/namespacemembers_p.html create mode 100644 doc/html/namespacemembers_r.html create mode 100644 doc/html/namespacemembers_s.html create mode 100644 doc/html/namespacemembers_t.html create mode 100644 doc/html/namespacemembers_type.html create mode 100644 doc/html/namespacemembers_u.html create mode 100644 doc/html/namespacemembers_v.html create mode 100644 doc/html/namespacemembers_vars.html create mode 100644 doc/html/namespaces.html create mode 100644 doc/html/nav_f.png create mode 100644 doc/html/nav_g.png create mode 100644 doc/html/nav_h.png create mode 100644 doc/html/open.png create mode 100644 doc/html/pages.html create mode 100644 doc/html/perf_monitor_8h_source.html create mode 100644 doc/html/search/all_0.html create mode 100644 doc/html/search/all_0.js create mode 100644 doc/html/search/all_1.html create mode 100644 doc/html/search/all_1.js create mode 100644 doc/html/search/all_10.html create mode 100644 doc/html/search/all_10.js create mode 100644 doc/html/search/all_11.html create mode 100644 doc/html/search/all_11.js create mode 100644 doc/html/search/all_12.html create mode 100644 doc/html/search/all_12.js create mode 100644 doc/html/search/all_13.html create mode 100644 doc/html/search/all_13.js create mode 100644 doc/html/search/all_14.html create mode 100644 doc/html/search/all_14.js create mode 100644 doc/html/search/all_15.html create mode 100644 doc/html/search/all_15.js create mode 100644 doc/html/search/all_2.html create mode 100644 doc/html/search/all_2.js create mode 100644 doc/html/search/all_3.html create mode 100644 doc/html/search/all_3.js create mode 100644 doc/html/search/all_4.html create mode 100644 doc/html/search/all_4.js create mode 100644 doc/html/search/all_5.html create mode 100644 doc/html/search/all_5.js create mode 100644 doc/html/search/all_6.html create mode 100644 doc/html/search/all_6.js create mode 100644 doc/html/search/all_7.html create mode 100644 doc/html/search/all_7.js create mode 100644 doc/html/search/all_8.html create mode 100644 doc/html/search/all_8.js create mode 100644 doc/html/search/all_9.html create mode 100644 doc/html/search/all_9.js create mode 100644 doc/html/search/all_a.html create mode 100644 doc/html/search/all_a.js create mode 100644 doc/html/search/all_b.html create mode 100644 doc/html/search/all_b.js create mode 100644 doc/html/search/all_c.html create mode 100644 doc/html/search/all_c.js create mode 100644 doc/html/search/all_d.html create mode 100644 doc/html/search/all_d.js create mode 100644 doc/html/search/all_e.html create mode 100644 doc/html/search/all_e.js create mode 100644 doc/html/search/all_f.html create mode 100644 doc/html/search/all_f.js create mode 100644 doc/html/search/classes_0.html create mode 100644 doc/html/search/classes_0.js create mode 100644 doc/html/search/classes_1.html create mode 100644 doc/html/search/classes_1.js create mode 100644 doc/html/search/classes_10.html create mode 100644 doc/html/search/classes_10.js create mode 100644 doc/html/search/classes_2.html create mode 100644 doc/html/search/classes_2.js create mode 100644 doc/html/search/classes_3.html create mode 100644 doc/html/search/classes_3.js create mode 100644 doc/html/search/classes_4.html create mode 100644 doc/html/search/classes_4.js create mode 100644 doc/html/search/classes_5.html create mode 100644 doc/html/search/classes_5.js create mode 100644 doc/html/search/classes_6.html create mode 100644 doc/html/search/classes_6.js create mode 100644 doc/html/search/classes_7.html create mode 100644 doc/html/search/classes_7.js create mode 100644 doc/html/search/classes_8.html create mode 100644 doc/html/search/classes_8.js create mode 100644 doc/html/search/classes_9.html create mode 100644 doc/html/search/classes_9.js create mode 100644 doc/html/search/classes_a.html create mode 100644 doc/html/search/classes_a.js create mode 100644 doc/html/search/classes_b.html create mode 100644 doc/html/search/classes_b.js create mode 100644 doc/html/search/classes_c.html create mode 100644 doc/html/search/classes_c.js create mode 100644 doc/html/search/classes_d.html create mode 100644 doc/html/search/classes_d.js create mode 100644 doc/html/search/classes_e.html create mode 100644 doc/html/search/classes_e.js create mode 100644 doc/html/search/classes_f.html create mode 100644 doc/html/search/classes_f.js create mode 100644 doc/html/search/close.png create mode 100644 doc/html/search/enums_0.html create mode 100644 doc/html/search/enums_0.js create mode 100644 doc/html/search/enums_1.html create mode 100644 doc/html/search/enums_1.js create mode 100644 doc/html/search/enums_2.html create mode 100644 doc/html/search/enums_2.js create mode 100644 doc/html/search/enums_3.html create mode 100644 doc/html/search/enums_3.js create mode 100644 doc/html/search/enums_4.html create mode 100644 doc/html/search/enums_4.js create mode 100644 doc/html/search/enums_5.html create mode 100644 doc/html/search/enums_5.js create mode 100644 doc/html/search/enums_6.html create mode 100644 doc/html/search/enums_6.js create mode 100644 doc/html/search/enums_7.html create mode 100644 doc/html/search/enums_7.js create mode 100644 doc/html/search/enums_8.html create mode 100644 doc/html/search/enums_8.js create mode 100644 doc/html/search/enums_9.html create mode 100644 doc/html/search/enums_9.js create mode 100644 doc/html/search/enums_a.html create mode 100644 doc/html/search/enums_a.js create mode 100644 doc/html/search/enums_b.html create mode 100644 doc/html/search/enums_b.js create mode 100644 doc/html/search/enums_c.html create mode 100644 doc/html/search/enums_c.js create mode 100644 doc/html/search/enumvalues_0.html create mode 100644 doc/html/search/enumvalues_0.js create mode 100644 doc/html/search/enumvalues_1.html create mode 100644 doc/html/search/enumvalues_1.js create mode 100644 doc/html/search/enumvalues_2.html create mode 100644 doc/html/search/enumvalues_2.js create mode 100644 doc/html/search/enumvalues_3.html create mode 100644 doc/html/search/enumvalues_3.js create mode 100644 doc/html/search/enumvalues_4.html create mode 100644 doc/html/search/enumvalues_4.js create mode 100644 doc/html/search/enumvalues_5.html create mode 100644 doc/html/search/enumvalues_5.js create mode 100644 doc/html/search/enumvalues_6.html create mode 100644 doc/html/search/enumvalues_6.js create mode 100644 doc/html/search/enumvalues_7.html create mode 100644 doc/html/search/enumvalues_7.js create mode 100644 doc/html/search/enumvalues_8.html create mode 100644 doc/html/search/enumvalues_8.js create mode 100644 doc/html/search/enumvalues_9.html create mode 100644 doc/html/search/enumvalues_9.js create mode 100644 doc/html/search/enumvalues_a.html create mode 100644 doc/html/search/enumvalues_a.js create mode 100644 doc/html/search/enumvalues_b.html create mode 100644 doc/html/search/enumvalues_b.js create mode 100644 doc/html/search/enumvalues_c.html create mode 100644 doc/html/search/enumvalues_c.js create mode 100644 doc/html/search/functions_0.html create mode 100644 doc/html/search/functions_0.js create mode 100644 doc/html/search/functions_1.html create mode 100644 doc/html/search/functions_1.js create mode 100644 doc/html/search/functions_10.html create mode 100644 doc/html/search/functions_10.js create mode 100644 doc/html/search/functions_11.html create mode 100644 doc/html/search/functions_11.js create mode 100644 doc/html/search/functions_12.html create mode 100644 doc/html/search/functions_12.js create mode 100644 doc/html/search/functions_13.html create mode 100644 doc/html/search/functions_13.js create mode 100644 doc/html/search/functions_2.html create mode 100644 doc/html/search/functions_2.js create mode 100644 doc/html/search/functions_3.html create mode 100644 doc/html/search/functions_3.js create mode 100644 doc/html/search/functions_4.html create mode 100644 doc/html/search/functions_4.js create mode 100644 doc/html/search/functions_5.html create mode 100644 doc/html/search/functions_5.js create mode 100644 doc/html/search/functions_6.html create mode 100644 doc/html/search/functions_6.js create mode 100644 doc/html/search/functions_7.html create mode 100644 doc/html/search/functions_7.js create mode 100644 doc/html/search/functions_8.html create mode 100644 doc/html/search/functions_8.js create mode 100644 doc/html/search/functions_9.html create mode 100644 doc/html/search/functions_9.js create mode 100644 doc/html/search/functions_a.html create mode 100644 doc/html/search/functions_a.js create mode 100644 doc/html/search/functions_b.html create mode 100644 doc/html/search/functions_b.js create mode 100644 doc/html/search/functions_c.html create mode 100644 doc/html/search/functions_c.js create mode 100644 doc/html/search/functions_d.html create mode 100644 doc/html/search/functions_d.js create mode 100644 doc/html/search/functions_e.html create mode 100644 doc/html/search/functions_e.js create mode 100644 doc/html/search/functions_f.html create mode 100644 doc/html/search/functions_f.js create mode 100644 doc/html/search/mag_sel.png create mode 100644 doc/html/search/namespaces_0.html create mode 100644 doc/html/search/namespaces_0.js create mode 100644 doc/html/search/nomatches.html create mode 100644 doc/html/search/pages_0.html create mode 100644 doc/html/search/pages_0.js create mode 100644 doc/html/search/pages_1.html create mode 100644 doc/html/search/pages_1.js create mode 100644 doc/html/search/pages_2.html create mode 100644 doc/html/search/pages_2.js create mode 100644 doc/html/search/pages_3.html create mode 100644 doc/html/search/pages_3.js create mode 100644 doc/html/search/search.css create mode 100644 doc/html/search/search.js create mode 100644 doc/html/search/search_l.png create mode 100644 doc/html/search/search_m.png create mode 100644 doc/html/search/search_r.png create mode 100644 doc/html/search/searchdata.js create mode 100644 doc/html/search/typedefs_0.html create mode 100644 doc/html/search/typedefs_0.js create mode 100644 doc/html/search/typedefs_1.html create mode 100644 doc/html/search/typedefs_1.js create mode 100644 doc/html/search/typedefs_2.html create mode 100644 doc/html/search/typedefs_2.js create mode 100644 doc/html/search/typedefs_3.html create mode 100644 doc/html/search/typedefs_3.js create mode 100644 doc/html/search/typedefs_4.html create mode 100644 doc/html/search/typedefs_4.js create mode 100644 doc/html/search/variables_0.html create mode 100644 doc/html/search/variables_0.js create mode 100644 doc/html/search/variables_1.html create mode 100644 doc/html/search/variables_1.js create mode 100644 doc/html/search/variables_10.html create mode 100644 doc/html/search/variables_10.js create mode 100644 doc/html/search/variables_11.html create mode 100644 doc/html/search/variables_11.js create mode 100644 doc/html/search/variables_12.html create mode 100644 doc/html/search/variables_12.js create mode 100644 doc/html/search/variables_13.html create mode 100644 doc/html/search/variables_13.js create mode 100644 doc/html/search/variables_14.html create mode 100644 doc/html/search/variables_14.js create mode 100644 doc/html/search/variables_2.html create mode 100644 doc/html/search/variables_2.js create mode 100644 doc/html/search/variables_3.html create mode 100644 doc/html/search/variables_3.js create mode 100644 doc/html/search/variables_4.html create mode 100644 doc/html/search/variables_4.js create mode 100644 doc/html/search/variables_5.html create mode 100644 doc/html/search/variables_5.js create mode 100644 doc/html/search/variables_6.html create mode 100644 doc/html/search/variables_6.js create mode 100644 doc/html/search/variables_7.html create mode 100644 doc/html/search/variables_7.js create mode 100644 doc/html/search/variables_8.html create mode 100644 doc/html/search/variables_8.js create mode 100644 doc/html/search/variables_9.html create mode 100644 doc/html/search/variables_9.js create mode 100644 doc/html/search/variables_a.html create mode 100644 doc/html/search/variables_a.js create mode 100644 doc/html/search/variables_b.html create mode 100644 doc/html/search/variables_b.js create mode 100644 doc/html/search/variables_c.html create mode 100644 doc/html/search/variables_c.js create mode 100644 doc/html/search/variables_d.html create mode 100644 doc/html/search/variables_d.js create mode 100644 doc/html/search/variables_e.html create mode 100644 doc/html/search/variables_e.js create mode 100644 doc/html/search/variables_f.html create mode 100644 doc/html/search/variables_f.js create mode 100644 doc/html/sensor_manager_8h_source.html create mode 100644 doc/html/splitbar.png create mode 100644 doc/html/struct_diligent_1_1_blend_state_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_blend_state_desc.html create mode 100644 doc/html/struct_diligent_1_1_box-members.html create mode 100644 doc/html/struct_diligent_1_1_box.html create mode 100644 doc/html/struct_diligent_1_1_buffer_data-members.html create mode 100644 doc/html/struct_diligent_1_1_buffer_data.html create mode 100644 doc/html/struct_diligent_1_1_buffer_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_buffer_desc.html create mode 100644 doc/html/struct_diligent_1_1_buffer_desc.png create mode 100644 doc/html/struct_diligent_1_1_buffer_desc_1_1_buffer_format-members.html create mode 100644 doc/html/struct_diligent_1_1_buffer_desc_1_1_buffer_format.html create mode 100644 doc/html/struct_diligent_1_1_buffer_view_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_buffer_view_desc.html create mode 100644 doc/html/struct_diligent_1_1_buffer_view_desc.png create mode 100644 doc/html/struct_diligent_1_1_compute_pipeline_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_compute_pipeline_desc.html create mode 100644 doc/html/struct_diligent_1_1_depth_stencil_clear_value-members.html create mode 100644 doc/html/struct_diligent_1_1_depth_stencil_clear_value.html create mode 100644 doc/html/struct_diligent_1_1_depth_stencil_state_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_depth_stencil_state_desc.html create mode 100644 doc/html/struct_diligent_1_1_device_caps-members.html create mode 100644 doc/html/struct_diligent_1_1_device_caps.html create mode 100644 doc/html/struct_diligent_1_1_device_object_attribs-members.html create mode 100644 doc/html/struct_diligent_1_1_device_object_attribs.html create mode 100644 doc/html/struct_diligent_1_1_device_object_attribs.png create mode 100644 doc/html/struct_diligent_1_1_dispatch_compute_attribs-members.html create mode 100644 doc/html/struct_diligent_1_1_dispatch_compute_attribs.html create mode 100644 doc/html/struct_diligent_1_1_draw_attribs-members.html create mode 100644 doc/html/struct_diligent_1_1_draw_attribs.html create mode 100644 doc/html/struct_diligent_1_1_dummy_shader_variable-members.html create mode 100644 doc/html/struct_diligent_1_1_dummy_shader_variable.html create mode 100644 doc/html/struct_diligent_1_1_dummy_shader_variable.png create mode 100644 doc/html/struct_diligent_1_1_engine_creation_attribs-members.html create mode 100644 doc/html/struct_diligent_1_1_engine_creation_attribs.html create mode 100644 doc/html/struct_diligent_1_1_engine_creation_attribs.png create mode 100644 doc/html/struct_diligent_1_1_engine_d3_d11_attribs-members.html create mode 100644 doc/html/struct_diligent_1_1_engine_d3_d11_attribs.html create mode 100644 doc/html/struct_diligent_1_1_engine_d3_d11_attribs.png create mode 100644 doc/html/struct_diligent_1_1_engine_d3_d12_attribs-members.html create mode 100644 doc/html/struct_diligent_1_1_engine_d3_d12_attribs.html create mode 100644 doc/html/struct_diligent_1_1_engine_d3_d12_attribs.png create mode 100644 doc/html/struct_diligent_1_1_graphics_pipeline_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_graphics_pipeline_desc.html create mode 100644 doc/html/struct_diligent_1_1_hash_map_string_key-members.html create mode 100644 doc/html/struct_diligent_1_1_hash_map_string_key.html create mode 100644 doc/html/struct_diligent_1_1_i_n_t_e_r_f_a_c_e___i_d-members.html create mode 100644 doc/html/struct_diligent_1_1_i_n_t_e_r_f_a_c_e___i_d.html create mode 100644 doc/html/struct_diligent_1_1_input_layout_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_input_layout_desc.html create mode 100644 doc/html/struct_diligent_1_1_layout_element-members.html create mode 100644 doc/html/struct_diligent_1_1_layout_element.html create mode 100644 doc/html/struct_diligent_1_1_optimized_clear_value-members.html create mode 100644 doc/html/struct_diligent_1_1_optimized_clear_value.html create mode 100644 doc/html/struct_diligent_1_1_pipeline_state_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_pipeline_state_desc.html create mode 100644 doc/html/struct_diligent_1_1_pipeline_state_desc.png create mode 100644 doc/html/struct_diligent_1_1_rasterizer_state_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_rasterizer_state_desc.html create mode 100644 doc/html/struct_diligent_1_1_rect-members.html create mode 100644 doc/html/struct_diligent_1_1_rect.html create mode 100644 doc/html/struct_diligent_1_1_render_target_blend_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_render_target_blend_desc.html create mode 100644 doc/html/struct_diligent_1_1_resource_mapping_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_resource_mapping_desc.html create mode 100644 doc/html/struct_diligent_1_1_resource_mapping_entry-members.html create mode 100644 doc/html/struct_diligent_1_1_resource_mapping_entry.html create mode 100644 doc/html/struct_diligent_1_1_sample_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_sample_desc.html create mode 100644 doc/html/struct_diligent_1_1_sampler_caps-members.html create mode 100644 doc/html/struct_diligent_1_1_sampler_caps.html create mode 100644 doc/html/struct_diligent_1_1_sampler_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_sampler_desc.html create mode 100644 doc/html/struct_diligent_1_1_sampler_desc.png create mode 100644 doc/html/struct_diligent_1_1_shader_creation_attribs-members.html create mode 100644 doc/html/struct_diligent_1_1_shader_creation_attribs.html create mode 100644 doc/html/struct_diligent_1_1_shader_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_shader_desc.html create mode 100644 doc/html/struct_diligent_1_1_shader_desc.png create mode 100644 doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_c_b-members.html create mode 100644 doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_c_b.html create mode 100644 doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_resource-members.html create mode 100644 doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_resource.html create mode 100644 doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_sampler-members.html create mode 100644 doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_sampler.html create mode 100644 doc/html/struct_diligent_1_1_shader_variable_base-members.html create mode 100644 doc/html/struct_diligent_1_1_shader_variable_base.html create mode 100644 doc/html/struct_diligent_1_1_shader_variable_base.png create mode 100644 doc/html/struct_diligent_1_1_shader_variable_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_shader_variable_desc.html create mode 100644 doc/html/struct_diligent_1_1_static_sampler_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_static_sampler_desc.html create mode 100644 doc/html/struct_diligent_1_1_stencil_op_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_stencil_op_desc.html create mode 100644 doc/html/struct_diligent_1_1_swap_chain_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_swap_chain_desc.html create mode 100644 doc/html/struct_diligent_1_1_texture_caps-members.html create mode 100644 doc/html/struct_diligent_1_1_texture_caps.html create mode 100644 doc/html/struct_diligent_1_1_texture_data-members.html create mode 100644 doc/html/struct_diligent_1_1_texture_data.html create mode 100644 doc/html/struct_diligent_1_1_texture_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_texture_desc.html create mode 100644 doc/html/struct_diligent_1_1_texture_desc.png create mode 100644 doc/html/struct_diligent_1_1_texture_format_attribs-members.html create mode 100644 doc/html/struct_diligent_1_1_texture_format_attribs.html create mode 100644 doc/html/struct_diligent_1_1_texture_format_attribs.png create mode 100644 doc/html/struct_diligent_1_1_texture_format_info-members.html create mode 100644 doc/html/struct_diligent_1_1_texture_format_info.html create mode 100644 doc/html/struct_diligent_1_1_texture_format_info.png create mode 100644 doc/html/struct_diligent_1_1_texture_format_info_ext-members.html create mode 100644 doc/html/struct_diligent_1_1_texture_format_info_ext.html create mode 100644 doc/html/struct_diligent_1_1_texture_format_info_ext.png create mode 100644 doc/html/struct_diligent_1_1_texture_sub_res_data-members.html create mode 100644 doc/html/struct_diligent_1_1_texture_sub_res_data.html create mode 100644 doc/html/struct_diligent_1_1_texture_view_desc-members.html create mode 100644 doc/html/struct_diligent_1_1_texture_view_desc.html create mode 100644 doc/html/struct_diligent_1_1_texture_view_desc.png create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t16_01_4-members.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t16_01_4.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t32_01_4-members.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t32_01_4.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t16_01_4-members.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t16_01_4.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t32_01_4-members.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t32_01_4.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t8_01_4-members.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t8_01_4.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t16_01_4-members.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t16_01_4.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t32_01_4-members.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t32_01_4.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t8_01_4-members.html create mode 100644 doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t8_01_4.html create mode 100644 doc/html/struct_diligent_1_1_vertex_stream_info-members.html create mode 100644 doc/html/struct_diligent_1_1_vertex_stream_info.html create mode 100644 doc/html/struct_diligent_1_1_viewport-members.html create mode 100644 doc/html/struct_diligent_1_1_viewport.html create mode 100644 doc/html/structandroid__app-members.html create mode 100644 doc/html/structandroid__app.html create mode 100644 doc/html/structandroid__poll__source-members.html create mode 100644 doc/html/structandroid__poll__source.html create mode 100644 doc/html/structstd_1_1hash_3_01_diligent_1_1_blend_state_desc_01_4-members.html create mode 100644 doc/html/structstd_1_1hash_3_01_diligent_1_1_blend_state_desc_01_4.html create mode 100644 doc/html/structstd_1_1hash_3_01_diligent_1_1_depth_stencil_state_desc_01_4-members.html create mode 100644 doc/html/structstd_1_1hash_3_01_diligent_1_1_depth_stencil_state_desc_01_4.html create mode 100644 doc/html/structstd_1_1hash_3_01_diligent_1_1_rasterizer_state_desc_01_4-members.html create mode 100644 doc/html/structstd_1_1hash_3_01_diligent_1_1_rasterizer_state_desc_01_4.html create mode 100644 doc/html/structstd_1_1hash_3_01_diligent_1_1_sampler_desc_01_4-members.html create mode 100644 doc/html/structstd_1_1hash_3_01_diligent_1_1_sampler_desc_01_4.html create mode 100644 doc/html/structstd_1_1hash_3_01_diligent_1_1_stencil_op_desc_01_4-members.html create mode 100644 doc/html/structstd_1_1hash_3_01_diligent_1_1_stencil_op_desc_01_4.html create mode 100644 doc/html/structstd_1_1hash_3_01_diligent_1_1_texture_view_desc_01_4-members.html create mode 100644 doc/html/structstd_1_1hash_3_01_diligent_1_1_texture_view_desc_01_4.html create mode 100644 doc/html/sync_off.png create mode 100644 doc/html/sync_on.png create mode 100644 doc/html/tab_a.png create mode 100644 doc/html/tab_b.png create mode 100644 doc/html/tab_h.png create mode 100644 doc/html/tab_s.png create mode 100644 doc/html/tabs.css create mode 100644 doc/html/tap_camera_8h_source.html create mode 100644 doc/html/targetver_8h_source.html create mode 100644 doc/html/vecmath_8h_source.html create mode 100644 doc/html/wglew_8h_source.html create mode 100644 doc/html/wglew__head_8h_source.html create mode 100644 doc/html/wglew__mid_8h_source.html create mode 100644 doc/html/wglew__tail_8h_source.html (limited to 'doc/html') diff --git a/doc/html/_adaptive_fixed_block_allocator_8h_source.html b/doc/html/_adaptive_fixed_block_allocator_8h_source.html new file mode 100644 index 00000000..d401b68d --- /dev/null +++ b/doc/html/_adaptive_fixed_block_allocator_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/AdaptiveFixedBlockAllocator.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
AdaptiveFixedBlockAllocator.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "MemoryAllocator.h"
27 #include "FixedBlockMemoryAllocator.h"
28 #include "DebugUtilities.h"
29 
30 namespace Diligent
31 {
32  // Adaptive allocator that can function as a raw memory allocator or as
33  // fixed block memory allocator. In the fixed block memory allocator mode,
34  // the block size is determined by the size of the first allocation
35  class AdaptiveFixedBlockAllocator : public IMemoryAllocator
36  {
37  public:
38  AdaptiveFixedBlockAllocator(IMemoryAllocator &RawMemAllocator, Uint32 NumBlocksPerAllocation) :
39  m_RawMemAllocator(RawMemAllocator),
40  m_pFixedBlockAllocator(nullptr, STDDeleterRawMem<FixedBlockMemoryAllocator>(RawMemAllocator)),
41  m_NumBlocksPerAllocation(NumBlocksPerAllocation)
42  {
43  // Initialize allocator when we get the fist allocation request and know allocation size
44  }
45 
46  // Allocates block of memory
47  virtual void* Allocate(size_t Size, const Char* dbgDescription, const char* dbgFileName, const Int32 dbgLineNumber)override final
48  {
49  if (m_NumBlocksPerAllocation > 1)
50  {
51  if( !m_pFixedBlockAllocator )
52  {
53  // Create fixed block allocator
54  auto *pRawMem = m_RawMemAllocator.Allocate(sizeof(FixedBlockMemoryAllocator), "Memory for FixedBlockMemoryAllocator", __FILE__, __LINE__);
55  m_pFixedBlockAllocator.reset( new(pRawMem) FixedBlockMemoryAllocator(m_RawMemAllocator, Size, m_NumBlocksPerAllocation) );
56  }
57 
58  return m_pFixedBlockAllocator->Allocate(Size, dbgDescription, dbgFileName, dbgLineNumber);
59  }
60  else
61  {
62  // Use default raw allocator
63  return m_RawMemAllocator.Allocate(Size, dbgDescription, dbgFileName, dbgLineNumber);
64  }
65  }
66 
67  // Releases memory
68  virtual void Free(void *Ptr)override final
69  {
70  if (m_NumBlocksPerAllocation > 1)
71  {
72  VERIFY_EXPR(m_pFixedBlockAllocator);
73  m_pFixedBlockAllocator->Free(Ptr);
74  }
75  else
76  {
77  VERIFY_EXPR(!m_pFixedBlockAllocator);
78  m_RawMemAllocator.Free(Ptr);
79  }
80  }
81 
82  private:
83  IMemoryAllocator &m_RawMemAllocator;
84  Uint32 m_NumBlocksPerAllocation = 0;
85  std::unique_ptr<FixedBlockMemoryAllocator, STDDeleterRawMem<FixedBlockMemoryAllocator> > m_pFixedBlockAllocator;
86  };
87 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_advanced_math_8h_source.html b/doc/html/_advanced_math_8h_source.html new file mode 100644 index 00000000..f21692ac --- /dev/null +++ b/doc/html/_advanced_math_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/AdvancedMath.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
AdvancedMath.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BasicMath.h"
27 
28 // Structure describing a plane
29 struct Plane3D
30 {
31  float3 Normal;
32  float Distance; //Distance from the coordinate system origin to the plane along the normal direction
33 };
34 
35 struct ViewFrustum
36 {
37  Plane3D LeftPlane, RightPlane, BottomPlane, TopPlane, NearPlane, FarPlane;
38 };
39 
40 struct ViewFrustumExt : public ViewFrustum
41 {
42  float3 FrustumCorners[8];
43 };
44 
45 // For OpenGL, matrix is still considered row-major. The only difference is that
46 // near clip plane is at -1, not 0.
47 inline void ExtractViewFrustumPlanesFromMatrix(const float4x4 &Matrix, ViewFrustum &Frustum, bool bIsDirectX)
48 {
49  // For more details, see Gribb G., Hartmann K., "Fast Extraction of Viewing Frustum Planes from the
50  // World-View-Projection Matrix" (the paper is available at
51  // http://gamedevs.org/uploads/fast-extraction-viewing-frustum-planes-from-world-view-projection-matrix.pdf)
52 
53  // Left clipping plane
54  Frustum.LeftPlane.Normal.x = Matrix._14 + Matrix._11;
55  Frustum.LeftPlane.Normal.y = Matrix._24 + Matrix._21;
56  Frustum.LeftPlane.Normal.z = Matrix._34 + Matrix._31;
57  Frustum.LeftPlane.Distance = Matrix._44 + Matrix._41;
58 
59  // Right clipping plane
60  Frustum.RightPlane.Normal.x = Matrix._14 - Matrix._11;
61  Frustum.RightPlane.Normal.y = Matrix._24 - Matrix._21;
62  Frustum.RightPlane.Normal.z = Matrix._34 - Matrix._31;
63  Frustum.RightPlane.Distance = Matrix._44 - Matrix._41;
64 
65  // Top clipping plane
66  Frustum.TopPlane.Normal.x = Matrix._14 - Matrix._12;
67  Frustum.TopPlane.Normal.y = Matrix._24 - Matrix._22;
68  Frustum.TopPlane.Normal.z = Matrix._34 - Matrix._32;
69  Frustum.TopPlane.Distance = Matrix._44 - Matrix._42;
70 
71  // Bottom clipping plane
72  Frustum.BottomPlane.Normal.x = Matrix._14 + Matrix._12;
73  Frustum.BottomPlane.Normal.y = Matrix._24 + Matrix._22;
74  Frustum.BottomPlane.Normal.z = Matrix._34 + Matrix._32;
75  Frustum.BottomPlane.Distance = Matrix._44 + Matrix._42;
76 
77  // Near clipping plane
78  if( bIsDirectX )
79  {
80  // 0 <= z <= w
81  Frustum.NearPlane.Normal.x = Matrix._13;
82  Frustum.NearPlane.Normal.y = Matrix._23;
83  Frustum.NearPlane.Normal.z = Matrix._33;
84  Frustum.NearPlane.Distance = Matrix._43;
85  }
86  else
87  {
88  // -w <= z <= w
89  Frustum.NearPlane.Normal.x = Matrix._14 + Matrix._13;
90  Frustum.NearPlane.Normal.y = Matrix._24 + Matrix._23;
91  Frustum.NearPlane.Normal.z = Matrix._34 + Matrix._33;
92  Frustum.NearPlane.Distance = Matrix._44 + Matrix._43;
93  }
94 
95  // Far clipping plane
96  Frustum.FarPlane.Normal.x = Matrix._14 - Matrix._13;
97  Frustum.FarPlane.Normal.y = Matrix._24 - Matrix._23;
98  Frustum.FarPlane.Normal.z = Matrix._34 - Matrix._33;
99  Frustum.FarPlane.Distance = Matrix._44 - Matrix._43;
100 }
101 
102 inline void ExtractViewFrustumPlanesFromMatrix(const float4x4 &Matrix, ViewFrustumExt &FrustumExt, bool bIsDirectX)
103 {
104  ExtractViewFrustumPlanesFromMatrix(Matrix, static_cast<ViewFrustum&>(FrustumExt), bIsDirectX);
105 
106  // Compute frustum corners
107  float4x4 InvMatrix = inverseMatrix(Matrix);
108 
109  float nearClipZ = bIsDirectX ? 0.f : -1.f;
110  static const float3 ProjSpaceCorners[] =
111  {
112  float3(-1,-1, nearClipZ),
113  float3( 1,-1, nearClipZ),
114  float3(-1, 1, nearClipZ),
115  float3( 1, 1, nearClipZ),
116 
117  float3(-1,-1, 1),
118  float3( 1,-1, 1),
119  float3(-1, 1, 1),
120  float3( 1, 1, 1),
121  };
122 
123  for(int i = 0; i < 8; ++i)
124  FrustumExt.FrustumCorners[i] = ProjSpaceCorners[i] * InvMatrix;
125 }
126 
127 struct BoundBox
128 {
129  // Order must not be changed!
130  float fMinX, fMaxX, fMinY, fMaxY, fMinZ, fMaxZ;
131 };
132 
133 enum class BoxVisibility
134 {
135  // Bounding box is guaranteed to be outside of the view frustum
136  // .
137  // . ' |
138  // . ' |
139  // | |
140  // . |
141  // ___ ' . |
142  // | | ' .
143  // |___|
144  //
145  Invisible,
146 
147  // Bounding box intersects the frustum
148  // .
149  // . ' |
150  // . ' |
151  // | |
152  // _.__ |
153  // | '|. |
154  // |____| ' .
155  //
156  Intersecting,
157 
158  // Bounding box is fully inside the view frustum
159  // .
160  // . ' |
161  // . '___ |
162  // | | | |
163  // . |___| |
164  // ' . |
165  // ' .
166  //
167  FullyVisible
168 };
169 
170 template<bool TestFullVisibility>
171 inline BoxVisibility GetBoxVisibilityAgainstPlane(const Plane3D& Plane, const BoundBox &Box)
172 {
173  const float3& Normal = Plane.Normal;
174 
175  float3 MaxPoint(
176  (Normal.x > 0) ? Box.fMaxX : Box.fMinX,
177  (Normal.y > 0) ? Box.fMaxY : Box.fMinY,
178  (Normal.z > 0) ? Box.fMaxZ : Box.fMinZ
179  );
180 
181  float DMax = dot( MaxPoint, Normal ) + Plane.Distance;
182 
183  if( DMax < 0 )
184  return BoxVisibility::Invisible;
185 
186  if (TestFullVisibility)
187  {
188  float3 MinPoint(
189  (Normal.x > 0) ? Box.fMinX : Box.fMaxX,
190  (Normal.y > 0) ? Box.fMinY : Box.fMaxY,
191  (Normal.z > 0) ? Box.fMinZ : Box.fMaxZ
192  );
193 
194  float DMin = dot(MinPoint, Normal) + Plane.Distance;
195 
196  if (DMin > 0)
197  return BoxVisibility::FullyVisible;
198  }
199 
200  return BoxVisibility::Intersecting;
201 }
202 
203 // Tests if bounding box is visible by the camera
204 template<bool TestFullVisibility>
205 inline BoxVisibility GetBoxVisibility(const ViewFrustum &ViewFrustum, const BoundBox &Box)
206 {
207  const Plane3D *pPlanes = reinterpret_cast<const Plane3D*>(&ViewFrustum);
208 
209  int NumPlanesInside = 0;
210  for(int iViewFrustumPlane = 0; iViewFrustumPlane < 6; iViewFrustumPlane++)
211  {
212  const Plane3D &CurrPlane = pPlanes[iViewFrustumPlane];
213  auto VisibilityAgainstPlane = GetBoxVisibilityAgainstPlane<TestFullVisibility>(CurrPlane, Box);
214 
215  // If bounding box is "behind" one of the planes, it is definitely invisible
216  if (VisibilityAgainstPlane == BoxVisibility::Invisible)
217  return BoxVisibility::Invisible;
218 
219  // Count total number of planes the bound box is inside
220  if (VisibilityAgainstPlane == BoxVisibility::FullyVisible)
221  ++NumPlanesInside;
222  }
223 
224  return (TestFullVisibility && NumPlanesInside == 6) ? BoxVisibility::FullyVisible : BoxVisibility::Intersecting;
225 }
226 
227 template<bool TestFullVisibility>
228 inline BoxVisibility GetBoxVisibility(const ViewFrustumExt &ViewFrustumExt, const BoundBox &Box)
229 {
230  auto Visibility = GetBoxVisibility<TestFullVisibility>(static_cast<const ViewFrustum&>(ViewFrustumExt), Box);
231  if (Visibility == BoxVisibility::FullyVisible || Visibility == BoxVisibility::Invisible)
232  return Visibility;
233 
234  // Additionally test if the whole frustum is outside one of
235  // the the bounding box planes. This helps in the following situation:
236  //
237  //
238  // .
239  // / ' . .
240  // / AABB / . ' |
241  // / /. ' |
242  // ' . / | |
243  // * . | |
244  // ' . |
245  // ' . |
246  // ' .
247 
248  for(int iBoundBoxPlane = 0; iBoundBoxPlane < 6; ++iBoundBoxPlane)
249  {
250  // struct BoundBox
251  // {
252  // float fMinX, fMaxX, fMinY, fMaxY, fMinZ, fMaxZ;
253  // };
254  float CurrPlaneCoord = reinterpret_cast<const float*>(&Box)[iBoundBoxPlane];
255  int iCoordOrder = iBoundBoxPlane / 2; // 0, 0, 1, 1, 2, 2
256  float fSign = (iBoundBoxPlane & 0x01) ? +1.f : -1.f;
257  bool bAllCornersOutside = true;
258  for(int iCorner=0; iCorner < 8; iCorner++)
259  {
260  float CurrCornerCoord = ViewFrustumExt.FrustumCorners[iCorner][iCoordOrder];
261  if( fSign * (CurrPlaneCoord - CurrCornerCoord) > 0)
262  {
263  bAllCornersOutside = false;
264  break;
265  }
266  }
267  if( bAllCornersOutside )
268  return BoxVisibility::Invisible;
269  }
270 
271  return BoxVisibility::Intersecting;
272 }
273 
274 inline float GetPointToBoxDistance(const BoundBox &BndBox, const float3 &Pos)
275 {
276  VERIFY_EXPR(BndBox.fMaxX >= BndBox.fMinX &&
277  BndBox.fMaxY >= BndBox.fMinY &&
278  BndBox.fMaxZ >= BndBox.fMinZ);
279  float fdX = (Pos.x > BndBox.fMaxX) ? (Pos.x - BndBox.fMaxX) : ( (Pos.x < BndBox.fMinX) ? (BndBox.fMinX - Pos.x) : 0.f );
280  float fdY = (Pos.y > BndBox.fMaxY) ? (Pos.y - BndBox.fMaxY) : ( (Pos.y < BndBox.fMinY) ? (BndBox.fMinY - Pos.y) : 0.f );
281  float fdZ = (Pos.z > BndBox.fMaxZ) ? (Pos.z - BndBox.fMaxZ) : ( (Pos.z < BndBox.fMinZ) ? (BndBox.fMinZ - Pos.z) : 0.f );
282  VERIFY_EXPR(fdX >= 0 && fdY >= 0 && fdZ >= 0);
283 
284  float3 RangeVec(fdX, fdY, fdZ);
285  return length( RangeVec );
286 }
287 
288 inline bool operator == (const Plane3D &p1, const Plane3D &p2)
289 {
290  return p1.Normal == p2.Normal &&
291  p1.Distance == p2.Distance;
292 }
293 
294 inline bool operator == (const ViewFrustum &f1, const ViewFrustum &f2)
295 {
296  return f1.LeftPlane == f2.LeftPlane &&
297  f1.RightPlane == f2.RightPlane &&
298  f1.BottomPlane == f2.BottomPlane &&
299  f1.TopPlane == f2.TopPlane &&
300  f1.NearPlane == f2.NearPlane &&
301  f1.FarPlane == f2.FarPlane;
302 }
303 
304 inline bool operator == (const ViewFrustumExt &f1, const ViewFrustumExt &f2)
305 {
306  if (! (static_cast<const ViewFrustum &>(f1) == static_cast<const ViewFrustum &>(f2)) )
307  return false;
308 
309  for (int c = 0; c < _countof(f1.FrustumCorners); ++c)
310  if (f1.FrustumCorners[c] != f2.FrustumCorners[c])
311  return false;
312 
313  return true;
314 }
315 
316 namespace std
317 {
318  template<>
319  struct hash<Plane3D>
320  {
321  size_t operator()( const Plane3D &Plane ) const
322  {
323  return Diligent::ComputeHash(Plane.Normal, Plane.Distance);
324  }
325  };
326 
327  template<>
328  struct hash<ViewFrustum>
329  {
330  size_t operator()( const ViewFrustum &Frustum ) const
331  {
332  return Diligent::ComputeHash(Frustum.LeftPlane, Frustum.RightPlane, Frustum.BottomPlane, Frustum.TopPlane, Frustum.NearPlane, Frustum.FarPlane);
333  }
334  };
335 
336  template<>
337  struct hash<ViewFrustumExt>
338  {
339  size_t operator()( const ViewFrustumExt &Frustum ) const
340  {
341  auto Seed = Diligent::ComputeHash(static_cast<const ViewFrustum&>(Frustum));
342  for (int Corner = 0; Corner < _countof(Frustum.FrustumCorners); ++Corner)
343  Diligent::HashCombine(Seed, Frustum.FrustumCorners[Corner]);
344  return Seed;
345  }
346  };
347 }
Definition: AdvancedMath.h:316
+
+ + + + + diff --git a/doc/html/_android_debug_8h_source.html b/doc/html/_android_debug_8h_source.html new file mode 100644 index 00000000..54e6c28f --- /dev/null +++ b/doc/html/_android_debug_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Android/include/AndroidDebug.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
AndroidDebug.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BasicPlatformDebug.h"
27 
28 struct AndroidDebug : public BasicPlatformDebug
29 {
30  static void AssertionFailed( const Diligent::Char *Message, const char *Function, const char *File, int Line );
31  static void OutputDebugMessage( DebugMessageSeverity Severity, const Diligent::Char *Message );
32 };
+ + + + + diff --git a/doc/html/_android_file_system_8h_source.html b/doc/html/_android_file_system_8h_source.html new file mode 100644 index 00000000..58d6cf57 --- /dev/null +++ b/doc/html/_android_file_system_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Android/include/AndroidFileSystem.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
AndroidFileSystem.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BasicFileSystem.h"
27 #include "DataBlob.h"
28 
29 #include <memory>
30 #include <vector>
31 
32 class AndroidFile : public BasicFile
33 {
34 public:
35  AndroidFile( const FileOpenAttribs &OpenAttribs );
36  ~AndroidFile();
37 
38  void Read( Diligent::IDataBlob *pData );
39 
40  bool Read( void* Data, size_t BufferSize );
41 
42  bool Write( const void *Data, size_t BufferSize );
43 
44  size_t GetSize();
45 
46  size_t GetPos();
47 
48  void SetPos(size_t Offset, FilePosOrigin Origin);
49 
50 private:
51  //FILE *m_pFile;
52 };
53 
54 struct AndroidFileSystem : public BasicFileSystem
55 {
56 public:
57  static AndroidFile* OpenFile( const FileOpenAttribs &OpenAttribs );
58  static inline Diligent::Char GetSlashSymbol(){ return '/'; }
59 
60  static bool FileExists( const Diligent::Char *strFilePath );
61  static bool PathExists( const Diligent::Char *strPath );
62 
63  static bool CreateDirectory( const Diligent::Char *strPath );
64  static void ClearDirectory( const Diligent::Char *strPath );
65  static void DeleteFile( const Diligent::Char *strPath );
66  static std::vector<std::unique_ptr<FindFileData>> Search(const Diligent::Char *SearchPattern);
67 };
Base interface for a file stream.
Definition: DataBlob.h:39
+
+ + + + + diff --git a/doc/html/_android_platform_definitions_8h_source.html b/doc/html/_android_platform_definitions_8h_source.html new file mode 100644 index 00000000..efa75029 --- /dev/null +++ b/doc/html/_android_platform_definitions_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Android/include/AndroidPlatformDefinitions.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
AndroidPlatformDefinitions.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <cstddef>
27 
28 template <typename _CountofType, std::size_t _SizeOfArray>
29 char (*__countof_helper(_CountofType (&_Array)[_SizeOfArray]))[_SizeOfArray];
30 #define _countof(_Array) (sizeof(*__countof_helper(_Array)) + 0)
+ + + + + diff --git a/doc/html/_android_platform_misc_8h_source.html b/doc/html/_android_platform_misc_8h_source.html new file mode 100644 index 00000000..16870e5e --- /dev/null +++ b/doc/html/_android_platform_misc_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Android/include/AndroidPlatformMisc.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
AndroidPlatformMisc.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BasicPlatformMisc.h"
27 #include "DebugUtilities.h"
28 
29 struct AndroidMisc : public BasicPlatformMisc
30 {
31  static Diligent::Uint32 GetMSB(Diligent::Uint32 Val)
32  {
33  if( Val == 0 )return 32;
34 
35  // Returns the number of leading 0-bits in x, starting at the
36  // most significant bit position. If x is 0, the result is undefined.
37  auto LeadingZeros = __builtin_clz(Val);
38  auto MSB = 31 - LeadingZeros;
39  VERIFY_EXPR(MSB == BasicPlatformMisc::GetMSB(Val));
40 
41  return MSB;
42  }
43 };
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
+ + + + + diff --git a/doc/html/_async_writable_resource_8h_source.html b/doc/html/_async_writable_resource_8h_source.html new file mode 100644 index 00000000..cac4ffde --- /dev/null +++ b/doc/html/_async_writable_resource_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/AsyncWritableResource.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
AsyncWritableResource.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 namespace Diligent
27 {
28 
29 class AsyncWritableResource
30 {
31 public:
32  AsyncWritableResource() : m_PendingMemoryBarriers( 0 ) {}
33 
34  void SetPendingMemoryBarriers( Uint32 Barriers ){ m_PendingMemoryBarriers |= Barriers; }
35  Uint32 GetPendingMemortBarriers(){ return m_PendingMemoryBarriers;}
36 
37 private:
38  friend class GLContextState;
39  void ResetPendingMemoryBarriers( Uint32 Barriers ){ m_PendingMemoryBarriers = Barriers; }
40  void ClearPendingMemoryBarriers( Uint32 Barriers ){ m_PendingMemoryBarriers &= ~Barriers; }
41 
42  // Buffer barriers:
43  // GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT
44  // GL_ELEMENT_ARRAY_BARRIER_BIT
45  // GL_UNIFORM_BARRIER_BIT
46  // GL_BUFFER_UPDATE_BARRIER_BIT
47  // GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT
48  // GL_SHADER_STORAGE_BARRIER_BIT
49 
50  // Texture barriers:
51  // GL_TEXTURE_FETCH_BARRIER_BIT
52  // GL_SHADER_IMAGE_ACCESS_BARRIER_BIT
53  // GL_PIXEL_BUFFER_BARRIER_BIT
54  // GL_TEXTURE_UPDATE_BARRIER_BIT
55 
56  // Misc barriers:
57  // GL_FRAMEBUFFER_BARRIER_BIT
58  // GL_TRANSFORM_FEEDBACK_BARRIER_BIT
59  // GL_ATOMIC_COUNTER_BARRIER_BIT
60  // GL_QUERY_BUFFER_BARRIER_BIT
61 
62  Uint32 m_PendingMemoryBarriers;
63 };
64 
65 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_atomics_8h_source.html b/doc/html/_atomics_8h_source.html new file mode 100644 index 00000000..420e8464 --- /dev/null +++ b/doc/html/_atomics_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/interface/Atomics.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Atomics.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "PlatformDefinitions.h"
27 
28 #if defined( PLATFORM_WIN32 ) || defined( PLATFORM_UNIVERSAL_WINDOWS )
29 
30  #include "Win32Atomics.h"
31  typedef WindowsAtomics Atomics;
32 
33 #else
34 
35  // Use c++11 standard atomics
36  #include "BasicAtomics.h"
37  typedef BasicAtomics Atomics;
38 
39 #endif
40 
41 
+ + + + + diff --git a/doc/html/_base_interfaces_g_l_8h_source.html b/doc/html/_base_interfaces_g_l_8h_source.html new file mode 100644 index 00000000..d42c2fcb --- /dev/null +++ b/doc/html/_base_interfaces_g_l_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/interface/BaseInterfacesGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BaseInterfacesGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #if defined(PLATFORM_ANDROID)
27  #include "RenderDeviceGLES.h"
28  namespace Diligent
29  {
30  using IGLDeviceBaseInterface = IRenderDeviceGLES;
31  }
32 #elif defined(PLATFORM_WIN32) || defined(PLATFORM_LINUX)
33  #include "RenderDeviceGL.h"
34  namespace Diligent
35  {
36  using IGLDeviceBaseInterface = IRenderDeviceGL;
37  }
38 #else
39 # error Unsupported platform
40 #endif
41 
42 #include "DeviceContextGL.h"
43 namespace Diligent
44 {
45  using IGLDeviceContextBaseInterface = IDeviceContextGL;
46 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_basic_atomics_8h_source.html b/doc/html/_basic_atomics_8h_source.html new file mode 100644 index 00000000..bb85bc64 --- /dev/null +++ b/doc/html/_basic_atomics_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Basic/interface/BasicAtomics.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BasicAtomics.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <atomic>
27 
28 struct BasicAtomics
29 {
30  typedef long Long;
31  typedef std::atomic<Long> AtomicLong;
32  typedef std::atomic<int64_t> AtomicInt64;
33 
34  // The function returns the resulting INCREMENTED value.
35  template<typename Type>
36  static inline Type AtomicIncrement(std::atomic<Type> &Val)
37  {
38  return ++Val;
39  }
40 
41  // The function returns the resulting DECREMENTED value.
42  template<typename Type>
43  static inline Type AtomicDecrement(std::atomic<Type> &Val)
44  {
45  return --Val;
46  }
47 
48  // The function compares the Destination value with the Comparand value. If the Destination value is equal
49  // to the Comparand value, the Exchange value is stored in the address specified by Destination.
50  // Otherwise, no operation is performed.
51  // The function returns the initial value of the Destination parameter
52  template<typename Type>
53  static inline Type AtomicCompareExchange( std::atomic<Type> &Destination, Type Exchange, Type Comparand)
54  {
55  Destination.compare_exchange_strong(Comparand, Exchange);
56  return Comparand;
57  }
58 
59  template<typename Type>
60  static inline Type AtomicAdd( std::atomic<Type> &Destination, Type Val)
61  {
62  return std::atomic_fetch_add(&Destination, Val);
63  }
64 
65 };
+ + + + + diff --git a/doc/html/_basic_file_stream_8h_source.html b/doc/html/_basic_file_stream_8h_source.html new file mode 100644 index 00000000..64c449e9 --- /dev/null +++ b/doc/html/_basic_file_stream_8h_source.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/BasicFileStream.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BasicFileStream.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "FileStream.h"
30 #include "ObjectBase.h"
31 #include "RefCountedObjectImpl.h"
32 #include "FileWrapper.h"
33 #include "DataBlob.h"
34 
35 namespace Diligent
36 {
37 
39 class BasicFileStream : public ObjectBase<IFileStream>
40 {
41 public:
43 
44  BasicFileStream(IReferenceCounters *pRefCounters,
45  const Char *Path,
46  EFileAccessMode Access = EFileAccessMode::Read);
47 
48  virtual void QueryInterface( const INTERFACE_ID &IID, IObject **ppInterface )override;
49 
51  virtual void Read( IDataBlob *pData )override;
52 
54  virtual bool Read( void *Data, size_t BufferSize )override;
55 
57  virtual bool Write( const void *Data, size_t Size )override;
58 
59  virtual size_t GetSize()override;
60 
61  virtual bool IsValid()override;
62 
63 private:
64  FileWrapper m_FileWrpr;
65 };
66 
67 }
Template class implementing base functionality for an object.
Definition: ObjectBase.h:62
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual bool Write(const void *Data, size_t Size) override
Writes data to the stream.
Definition: BasicFileStream.cpp:49
+
virtual void Read(IDataBlob *pData) override
Reads data from the stream.
+
Basic file stream implementation.
Definition: BasicFileStream.h:39
+
+ + + + + diff --git a/doc/html/_basic_file_system_8h_source.html b/doc/html/_basic_file_system_8h_source.html new file mode 100644 index 00000000..a05e53bf --- /dev/null +++ b/doc/html/_basic_file_system_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Basic/interface/BasicFileSystem.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BasicFileSystem.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <vector>
27 #include "BasicTypes.h"
28 
29 enum class EFileAccessMode
30 {
31  Read,
32  Overwrite,
33  Append
34 };
35 
36 enum class FilePosOrigin
37 {
38  Start,
39  Curr,
40  End
41 };
42 
43 
44 struct FileOpenAttribs
45 {
46  const Diligent::Char *strFilePath;
47  EFileAccessMode AccessMode;
48  FileOpenAttribs(const Diligent::Char *Path = nullptr,
49  EFileAccessMode Access = EFileAccessMode::Read) :
50  strFilePath( Path ),
51  AccessMode( Access )
52  {}
53 };
54 
55 class BasicFile
56 {
57 public:
58  BasicFile( const FileOpenAttribs &OpenAttribs, Diligent::Char SlashSymbol );
59  virtual ~BasicFile();
60 
61  size_t GetSize();
62 
63  const Diligent::String& GetPath(){ return m_Path; }
64 
65 protected:
66  Diligent::String GetOpenModeStr();
67 
68  FileOpenAttribs m_OpenAttribs;
69  Diligent::String m_Path;
70 };
71 
72 struct FindFileData
73 {
74  virtual const Diligent::Char* Name()const = 0;
75  virtual bool IsDirectory()const = 0;
76 
77  virtual ~FindFileData(){}
78 };
79 
80 struct BasicFileSystem
81 {
82 public:
83  static BasicFile* OpenFile( FileOpenAttribs &OpenAttribs );
84  static void ReleaseFile( BasicFile* );
85 
86  static std::string GetFullPath( const Diligent::Char *strFilePath );
87 
88  static bool FileExists( const Diligent::Char *strFilePath );
89 
90  static void SetWorkingDirectory( const Diligent::Char *strWorkingDir ){ m_strWorkingDirectory = strWorkingDir; }
91  static const Diligent::String &GetWorkingDirectory(){ return m_strWorkingDirectory; }
92 
93  static Diligent::Char GetSlashSymbol();
94  static void CorrectSlashes(Diligent::String &Path, Diligent::Char SlashSymbol);
95 
96  static void SplitFilePath(const Diligent::String& FullName,
97  Diligent::String *Path,
98  Diligent::String *Name);
99 
100 protected:
101  static Diligent::String m_strWorkingDirectory;
102 };
std::basic_string< Char > String
String variable.
Definition: BasicTypes.h:51
+
+ + + + + diff --git a/doc/html/_basic_math_8h_source.html b/doc/html/_basic_math_8h_source.html new file mode 100644 index 00000000..35a4d631 --- /dev/null +++ b/doc/html/_basic_math_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/BasicMath.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BasicMath.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
30 
31 #pragma once
32 
33 #include "DebugUtilities.h"
34 
35 #define _USE_MATH_DEFINES
36 #include <math.h>
37 
38 #include "HashUtils.h"
39 
40 // Common Constants
41 
42 #define PI_F 3.1415927f
43 
44 // Template Vector & Matrix Classes
45 template <class T> struct Matrix4x4;
46 template <class T> struct Vector4;
47 
48 template <class T> struct Vector2
49 {
50  union
51  {
52  struct
53  {
54  T x;
55  T y;
56  };
57  struct
58  {
59  T r;
60  T g;
61  };
62  struct
63  {
64  T u;
65  T v;
66  };
67  };
68 
69 
70  Vector2 operator-(const Vector2<T> &right)const
71  {
72  return Vector2(x - right.x, y - right.y);
73  }
74 
75  Vector2& operator-=(const Vector2<T> &right)
76  {
77  x -= right.x;
78  y -= right.y;
79  return *this;
80  }
81 
82  Vector2 operator-()const
83  {
84  return Vector2(-x, -y);
85  }
86 
87  Vector2 operator+(const Vector2<T> &right)const
88  {
89  return Vector2(x + right.x, y + right.y);
90  }
91 
92  Vector2& operator+=(const Vector2<T> &right)
93  {
94  x += right.x;
95  y += right.y;
96  return *this;
97  }
98 
99  Vector2 operator*(T s)const
100  {
101  return Vector2(x * s, y * s);
102  }
103 
104  Vector2 operator*(const Vector2 &right)const
105  {
106  return Vector2(x * right.x, y * right.y);
107  }
108 
109  Vector2& operator*=( const Vector2 &right)
110  {
111  x *= right.x;
112  y *= right.y;
113  return *this;
114  }
115 
116  Vector2& operator*=( T s)
117  {
118  x *= s;
119  y *= s;
120  return *this;
121  }
122 
123  Vector2 operator/(const Vector2 &right)const
124  {
125  return Vector2(x / right.x, y / right.y);
126  }
127 
128  Vector2& operator/=( const Vector2 &right)
129  {
130  x /= right.x;
131  y /= right.y;
132  return *this;
133  }
134 
135  Vector2 operator/(T s)const
136  {
137  return Vector2(x / s, y / s);
138  }
139 
140  Vector2& operator/=( T s)
141  {
142  x /= s;
143  y /= s;
144  return *this;
145  }
146 
147  bool operator == (const Vector2 &right)const
148  {
149  return x == right.x && y == right.y;
150  }
151 
152  bool operator != (const Vector2 &right)const
153  {
154  return !(*this == right);
155  }
156 
157  Vector2 operator < ( const Vector2 &right )const
158  {
159  return Vector2(x < right.x ? static_cast<T>(1) : static_cast<T>(0),
160  y < right.y ? static_cast<T>(1) : static_cast<T>(0));
161  }
162 
163  Vector2 operator > ( const Vector2 &right )const
164  {
165  return Vector2(x > right.x ? static_cast<T>(1) : static_cast<T>(0),
166  y > right.y ? static_cast<T>(1) : static_cast<T>(0));
167  }
168 
169  Vector2 operator <= ( const Vector2 &right )const
170  {
171  return Vector2(x <= right.x ? static_cast<T>(1) : static_cast<T>(0),
172  y <= right.y ? static_cast<T>(1) : static_cast<T>(0));
173  }
174 
175  Vector2 operator >= ( const Vector2 &right )const
176  {
177  return Vector2(x >= right.x ? static_cast<T>(1) : static_cast<T>(0),
178  y >= right.y ? static_cast<T>(1) : static_cast<T>(0));
179  }
180 
181  T& operator[](size_t index)
182  {
183  return reinterpret_cast<T*>(this)[index];
184  }
185 
186  const T& operator[](size_t index)const
187  {
188  return reinterpret_cast<const T*>(this)[index];
189  }
190 
191  explicit
192  Vector2(T _x = 0, T _y = 0) : x(_x), y(_y) { }
193 };
194 
195 template <class T>
196 Vector2<T> operator*(T s, const Vector2<T> &a)
197 {
198  return a * s;
199 }
200 
201 
202 template <class T> struct Vector3
203 {
204  union
205  {
206  struct
207  {
208  T x;
209  T y;
210  T z;
211  };
212  struct
213  {
214  T r;
215  T g;
216  T b;
217  };
218  struct
219  {
220  T u;
221  T v;
222  T w;
223  };
224  };
225 
226 
227  Vector3 operator-( const Vector3 &right )const
228  {
229  return Vector3(x - right.x, y - right.y, z - right.z);
230  }
231 
232  Vector3 operator-()const
233  {
234  return Vector3(-x, -y, -z);
235  }
236 
237  Vector3& operator-=(const Vector3<T> &right)
238  {
239  x -= right.x;
240  y -= right.y;
241  z -= right.z;
242  return *this;
243  }
244 
245  Vector3 operator+( const Vector3 &right )const
246  {
247  return Vector3(x + right.x, y + right.y, z + right.z);
248  }
249 
250  Vector3& operator+=(const Vector3<T> &right)
251  {
252  x += right.x;
253  y += right.y;
254  z += right.z;
255  return *this;
256  }
257 
258  Vector3 operator*( T s )const
259  {
260  return Vector3(x * s, y * s, z * s);
261  }
262 
263  Vector3& operator*=( T s)
264  {
265  x *= s;
266  y *= s;
267  z *= s;
268  return *this;
269  }
270 
271  Vector3 operator*( const Vector3 &right )const
272  {
273  return Vector3(x * right.x, y * right.y, z * right.z);
274  }
275 
276  Vector3 operator* (const Matrix4x4<T>& m)const
277  {
278  Vector4<T> out4 = Vector4<T>(x, y, z, 1) * m;
279  return Vector3(out4.x / out4.w, out4.y / out4.w, out4.z / out4.w) ;
280  }
281 
282  Vector3& operator*=( const Vector3 &right)
283  {
284  x *= right.x;
285  y *= right.y;
286  z *= right.z;
287  return *this;
288  }
289 
290  Vector3 operator/ ( T s)const
291  {
292  return Vector3(x / s, y / s, z / s);
293  }
294 
295  Vector3& operator/=( T s)
296  {
297  x /= s;
298  y /= s;
299  z /= s;
300  return *this;
301  }
302 
303  Vector3 operator/( const Vector3 &right )const
304  {
305  return Vector3(x / right.x, y / right.y, z / right.z);
306  }
307 
308  Vector3& operator/=( const Vector3 &right)
309  {
310  x /= right.x;
311  y /= right.y;
312  z /= right.z;
313  return *this;
314  }
315 
316  bool operator == (const Vector3 &right)const
317  {
318  return x == right.x && y == right.y && z == right.z;
319  }
320 
321  bool operator != (const Vector3 &right)const
322  {
323  return !(*this == right);
324  }
325 
326  Vector3 operator < ( const Vector3 &right )const
327  {
328  return Vector3(x < right.x ? static_cast<T>(1) : static_cast<T>(0),
329  y < right.y ? static_cast<T>(1) : static_cast<T>(0),
330  z < right.z ? static_cast<T>(1) : static_cast<T>(0));
331  }
332 
333  Vector3 operator > ( const Vector3 &right )const
334  {
335  return Vector3(x > right.x ? static_cast<T>(1) : static_cast<T>(0),
336  y > right.y ? static_cast<T>(1) : static_cast<T>(0),
337  z > right.z ? static_cast<T>(1) : static_cast<T>(0));
338  }
339 
340  Vector3 operator <= ( const Vector3 &right )const
341  {
342  return Vector3(x <= right.x ? static_cast<T>(1) : static_cast<T>(0),
343  y <= right.y ? static_cast<T>(1) : static_cast<T>(0),
344  z <= right.z ? static_cast<T>(1) : static_cast<T>(0));
345  }
346 
347  Vector3 operator >= ( const Vector3 &right )const
348  {
349  return Vector3(x >= right.x ? static_cast<T>(1) : static_cast<T>(0),
350  y >= right.y ? static_cast<T>(1) : static_cast<T>(0),
351  z >= right.z ? static_cast<T>(1) : static_cast<T>(0));
352  }
353 
354  T& operator[](size_t index)
355  {
356  return reinterpret_cast<T*>(this)[index];
357  }
358 
359  const T& operator[](size_t index)const
360  {
361  return reinterpret_cast<const T*>(this)[index];
362  }
363 
364  explicit
365  Vector3(T _x = 0, T _y = 0, T _z = 0) : x(_x), y(_y), z(_z) { }
366 
367  operator Vector2<T>()const{return Vector2<T>(x,y);}
368 };
369 
370 template <class T>
371 Vector3<T> operator*(T s, const Vector3<T> &a)
372 {
373  return a * s;
374 }
375 
376 
377 template <class T> struct Vector4
378 {
379  union
380  {
381  struct
382  {
383  T x;
384  T y;
385  T z;
386  T w;
387  };
388  struct
389  {
390  T r;
391  T g;
392  T b;
393  T a;
394  };
395  };
396 
397  Vector4 operator-( const Vector4 &right)const
398  {
399  return Vector4(x - right.x, y - right.y, z - right.z, w - right.w);
400  }
401 
402  Vector4 operator-()const
403  {
404  return Vector4(-x, -y, -z, -w);
405  }
406 
407  Vector4& operator-=(const Vector4<T> &right)
408  {
409  x -= right.x;
410  y -= right.y;
411  z -= right.z;
412  w -= right.w;
413  return *this;
414  }
415 
416  Vector4 operator+( const Vector4 &right)const
417  {
418  return Vector4(x + right.x, y + right.y, z + right.z, w + right.w);
419  }
420 
421  Vector4& operator+=(const Vector4<T> &right)
422  {
423  x += right.x;
424  y += right.y;
425  z += right.z;
426  w += right.w;
427  return *this;
428  }
429 
430  Vector4 operator*( T s)const
431  {
432  return Vector4(x * s, y * s, z * s, w * s);
433  }
434 
435  Vector4& operator*=( T s)
436  {
437  x *= s;
438  y *= s;
439  z *= s;
440  w *= s;
441  return *this;
442  }
443 
444  Vector4 operator*( const Vector4 &right)const
445  {
446  return Vector4(x * right.x, y * right.y, z * right.z, w * right.w);
447  }
448 
449  Vector4& operator*=( const Vector4 &right)
450  {
451  x *= right.x;
452  y *= right.y;
453  z *= right.z;
454  w *= right.w;
455  return *this;
456  }
457 
458  Vector4 operator/( T s)const
459  {
460  return Vector4(x / s, y / s, z / s, w / s);
461  }
462 
463  Vector4& operator/=( T s)
464  {
465  x /= s;
466  y /= s;
467  z /= s;
468  w /= s;
469  return *this;
470  }
471 
472  Vector4 operator/( const Vector4 &right)const
473  {
474  return Vector4(x / right.x, y / right.y, z / right.z, w / right.w);
475  }
476 
477  Vector4& operator/=( const Vector4 &right)
478  {
479  x /= right.x;
480  y /= right.y;
481  z /= right.z;
482  w /= right.w;
483  return *this;
484  }
485 
486  bool operator == (const Vector4 &right)const
487  {
488  return x == right.x && y == right.y && z == right.z && w == right.w;
489  }
490 
491  bool operator != (const Vector4 &right)const
492  {
493  return !(*this == right);
494  }
495 
496  Vector4 operator*(const Matrix4x4<T>& m)const
497  {
498  Vector4 out;
499  out[0] = x * m[0][0] + y * m[1][0] + z * m[2][0] + w * m[3][0];
500  out[1] = x * m[0][1] + y * m[1][1] + z * m[2][1] + w * m[3][1];
501  out[2] = x * m[0][2] + y * m[1][2] + z * m[2][2] + w * m[3][2];
502  out[3] = x * m[0][3] + y * m[1][3] + z * m[2][3] + w * m[3][3];
503  return out;
504  }
505 
506  Vector4& operator = (const Vector3<T> &v3)
507  {
508  x = v3.x;
509  y = v3.y;
510  z = v3.z;
511  w = 1;
512  return *this;
513  }
514  Vector4& operator = (const Vector4 &) = default;
515 
516  Vector4 operator < ( const Vector4 &right )const
517  {
518  return Vector4(x < right.x ? static_cast<T>(1) : static_cast<T>(0),
519  y < right.y ? static_cast<T>(1) : static_cast<T>(0),
520  z < right.z ? static_cast<T>(1) : static_cast<T>(0),
521  w < right.w ? static_cast<T>(1) : static_cast<T>(0));
522  }
523 
524  Vector4 operator > ( const Vector4 &right )const
525  {
526  return Vector4(x > right.x ? static_cast<T>(1) : static_cast<T>(0),
527  y > right.y ? static_cast<T>(1) : static_cast<T>(0),
528  z > right.z ? static_cast<T>(1) : static_cast<T>(0),
529  w > right.w ? static_cast<T>(1) : static_cast<T>(0));
530  }
531 
532  Vector4 operator <= ( const Vector4 &right )const
533  {
534  return Vector4(x <= right.x ? static_cast<T>(1) : static_cast<T>(0),
535  y <= right.y ? static_cast<T>(1) : static_cast<T>(0),
536  z <= right.z ? static_cast<T>(1) : static_cast<T>(0),
537  w <= right.w ? static_cast<T>(1) : static_cast<T>(0));
538  }
539 
540  Vector4 operator >= ( const Vector4 &right )const
541  {
542  return Vector4(x >= right.x ? static_cast<T>(1) : static_cast<T>(0),
543  y >= right.y ? static_cast<T>(1) : static_cast<T>(0),
544  z >= right.z ? static_cast<T>(1) : static_cast<T>(0),
545  w >= right.w ? static_cast<T>(1) : static_cast<T>(0));
546  }
547 
548  T& operator[](size_t index)
549  {
550  return reinterpret_cast<T*>(this)[index];
551  }
552 
553  const T& operator[](size_t index)const
554  {
555  return reinterpret_cast<const T*>(this)[index];
556  }
557 
558  explicit
559  Vector4(T _x = 0, T _y = 0, T _z = 0, T _w = 0) : x(_x), y(_y), z(_z), w(_w) { }
560 };
561 
562 
563 template <class T>
564 Vector4<T> operator*(T s, const Vector4<T> &a)
565 {
566  return a * s;
567 }
568 
569 template <class T> struct Matrix3x3
570 {
571  union
572  {
573  struct
574  {
575  T _11; T _12; T _13;
576  T _21; T _22; T _23;
577  T _31; T _32; T _33;
578  };
579  struct
580  {
581  T _m00; T _m01; T _m02;
582  T _m10; T _m11; T _m12;
583  T _m20; T _m21; T _m22;
584  };
585  };
586 
587  explicit
588  Matrix3x3(T value = 0)
589  {
590  _11 = _12 = _13 =value;
591  _21 = _22 = _23 =value;
592  _31 = _32 = _33 =value;
593  }
594 
595  explicit
596  Matrix3x3(
597  T i11, T i12, T i13,
598  T i21, T i22, T i23,
599  T i31, T i32, T i33 )
600  {
601  _11 = i11; _12 = i12; _13 = i13;
602  _21 = i21; _22 = i22; _23 = i23;
603  _31 = i31; _32 = i32; _33 = i33;
604  }
605 
606  bool operator == (const Matrix3x3 &r)const
607  {
608  for( int i = 0; i < 3; ++i )
609  for( int j = 0; i < 3; ++i )
610  if( (*this)[i][j] != r[i][j] )
611  return false;
612 
613  return true;
614  }
615 
616  bool operator != (const Matrix3x3 &r)const
617  {
618  return !(*this == r);
619  }
620 
621  T* operator[](size_t index)
622  {
623  return &(reinterpret_cast<T*>(this)[index*3]);
624  }
625 
626  const T* operator[](size_t index)const
627  {
628  return &(reinterpret_cast<const T*>(this)[index*3]);
629  }
630 
631  Matrix3x3& operator *=(T s)
632  {
633  for( int i = 0; i < 9; ++i )
634  (reinterpret_cast<T*>(this))[i] *= s;
635 
636  return *this;
637  }
638 };
639 
640 template <class T> struct Matrix4x4
641 {
642  union
643  {
644  struct
645  {
646  T _11; T _12; T _13; T _14;
647  T _21; T _22; T _23; T _24;
648  T _31; T _32; T _33; T _34;
649  T _41; T _42; T _43; T _44;
650  };
651  struct
652  {
653  T _m00; T _m01; T _m02; T _m03;
654  T _m10; T _m11; T _m12; T _m13;
655  T _m20; T _m21; T _m22; T _m23;
656  T _m30; T _m31; T _m32; T _m33;
657  };
658  };
659 
660  explicit
661  Matrix4x4(T value = 0)
662  {
663  _11 = _12 = _13 = _14 = value;
664  _21 = _22 = _23 = _24 = value;
665  _31 = _32 = _33 = _34 = value;
666  _41 = _42 = _43 = _44 = value;
667  }
668 
669  explicit
670  Matrix4x4(
671  T i11, T i12, T i13, T i14,
672  T i21, T i22, T i23, T i24,
673  T i31, T i32, T i33, T i34,
674  T i41, T i42, T i43, T i44
675  )
676  {
677  _11 = i11; _12 = i12; _13 = i13; _14 = i14;
678  _21 = i21; _22 = i22; _23 = i23; _24 = i24;
679  _31 = i31; _32 = i32; _33 = i33; _34 = i34;
680  _41 = i41; _42 = i42; _43 = i43; _44 = i44;
681  }
682 
683  bool operator == (const Matrix4x4 &r)const
684  {
685  for( int i = 0; i < 4; ++i )
686  for( int j = 0; i < 4; ++i )
687  if( (*this)[i][j] != r[i][j] )
688  return false;
689 
690  return true;
691  }
692 
693  bool operator != (const Matrix4x4 &r)const
694  {
695  return !(*this == r);
696  }
697 
698  T* operator[](size_t index)
699  {
700  return &(reinterpret_cast<T*>(this)[index*4]);
701  }
702 
703  const T* operator[](size_t index)const
704  {
705  return &(reinterpret_cast<const T*>(this)[index*4]);
706  }
707 
708  Matrix4x4& operator *=(T s)
709  {
710  for( int i = 0; i < 16; ++i )
711  (reinterpret_cast<T*>(this))[i] *= s;
712 
713  return *this;
714  }
715 };
716 
717 // Template Vector Operations
718 
719 
720 template <class T>
721 T dot(const Vector2<T> &a, const Vector2<T> &b)
722 {
723  return a.x * b.x + a.y * b.y;
724 }
725 
726 template <class T>
727 T dot(const Vector3<T> &a, const Vector3<T> &b)
728 {
729  return a.x * b.x + a.y * b.y + a.z * b.z;
730 }
731 
732 template <class T>
733 T dot(const Vector4<T> &a, const Vector4<T> &b)
734 {
735  return a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w;
736 }
737 
738 template <class VectorType>
739 auto length(const VectorType &a)->decltype(dot(a,a))
740 {
741  return sqrt( dot(a,a) );
742 }
743 
744 
745 template <class T>
746 Vector3<T> min(const Vector3<T> &a, const Vector3<T> &b)
747 {
748  return Vector3<T>( std::min(a.x, b.x), std::min(a.y, b.y), std::min(a.z, b.z) );
749 }
750 
751 template <class T>
752 Vector4<T> min(const Vector4<T> &a, const Vector4<T> &b)
753 {
754  return Vector4<T>( std::min(a.x, b.x), std::min(a.y, b.y), std::min(a.z, b.z), std::min(a.w, b.w) );
755 }
756 
757 template <class T>
758 Vector3<T> max(const Vector3<T> &a, const Vector3<T> &b)
759 {
760  return Vector3<T>( std::max(a.x, b.x), std::max(a.y, b.y), std::max(a.z, b.z) );
761 }
762 
763 template <class T>
764 Vector4<T> max(const Vector4<T> &a, const Vector4<T> &b)
765 {
766  return Vector4<T>( std::max(a.x, b.x), std::max(a.y, b.y), std::max(a.z, b.z), std::max(a.w, b.w) );
767 }
768 
769 template <class T>
770 Vector2<T> abs(const Vector2<T> &a)
771 {
772  // WARNING: abs() on gcc is for integers only!
773  return Vector2<T>( a.x < 0 ? -a.x : a.x,
774  a.y < 0 ? -a.y : a.y);
775 }
776 
777 template <class T>
778 Vector3<T> abs(const Vector3<T> &a)
779 {
780  // WARNING: abs() on gcc is for integers only!
781  return Vector3<T>( a.x < 0 ? -a.x : a.x,
782  a.y < 0 ? -a.y : a.y,
783  a.z < 0 ? -a.z : a.z);
784 }
785 
786 template <class T>
787 Vector4<T> abs(const Vector4<T> &a)
788 {
789  // WARNING: abs() on gcc is for integers only!
790  return Vector4<T>( a.x < 0 ? -a.x : a.x,
791  a.y < 0 ? -a.y : a.y,
792  a.z < 0 ? -a.z : a.z,
793  a.w < 0 ? -a.w : a.w);
794 }
795 
796 
797 template <class T>
798 Vector3<T> cross(const Vector3<T> &a, const Vector3<T> &b)
799 {
800  // | i j k |
801  // | a.x a.y a.z |
802  // | b.x b.y b.z |
803  return Vector3<T>((a.y*b.z)-(a.z*b.y), (a.z*b.x)-(a.x*b.z), (a.x*b.y)-(a.y*b.x));
804 }
805 
806 template <class VectorType>
807 VectorType normalize(const VectorType &a)
808 {
809  auto len = length(a);
810  return a / len;
811 }
812 
813 
814 // Template Matrix Operations
815 
816 template <class T>
817 Matrix4x4<T> transposeMatrix(const Matrix4x4<T> &m)
818 {
819  return Matrix4x4<T>(
820  m._11, m._21, m._31, m._41,
821  m._12, m._22, m._32, m._42,
822  m._13, m._23, m._33, m._43,
823  m._14, m._24, m._34, m._44
824  );
825 }
826 
827 template <class T>
828 Matrix4x4<T> mul(const Matrix4x4<T> &m1, const Matrix4x4<T> &m2)
829 {
830  Matrix4x4<T> mOut;
831 
832  for (int i = 0; i < 4; i++)
833  {
834  for (int j = 0; j < 4; j++)
835  {
836  for (int k = 0; k < 4; k++)
837  {
838  mOut[i][j] += m1[i][k] * m2[k][j];
839  }
840  }
841  }
842 
843  return mOut;
844 }
845 
846 template <class T>
847 Matrix4x4<T> operator* (const Matrix4x4<T> &m1, const Matrix4x4<T> &m2)
848 {
849  return mul( m1, m2 );
850 }
851 
852 
853 
854 template <class T>
855 Matrix3x3<T> transposeMatrix(const Matrix3x3<T> &m)
856 {
857  return Matrix3x3<T>(
858  m._11, m._21, m._31,
859  m._12, m._22, m._32,
860  m._13, m._23, m._33
861  );
862 }
863 
864 template <class T>
865 Matrix3x3<T> mul(const Matrix3x3<T> &m1, const Matrix3x3<T> &m2)
866 {
867  Matrix3x3<T> mOut;
868 
869  for (int i = 0; i < 3; i++)
870  {
871  for (int j = 0; j < 3; j++)
872  {
873  for (int k = 0; k < 3; k++)
874  {
875  mOut[i][j] += m1[i][k] * m2[k][j];
876  }
877  }
878  }
879 
880  return mOut;
881 }
882 
883 template <class T>
884 Matrix3x3<T> operator* (const Matrix3x3<T> &m1, const Matrix3x3<T> &m2)
885 {
886  return mul( m1, m2 );
887 }
888 
889 // Common HLSL-compatible vector typedefs
890 
891 typedef unsigned int uint;
892 
893 typedef Vector2<float> float2;
894 typedef Vector3<float> float3;
895 typedef Vector4<float> float4;
896 
897 typedef Matrix4x4<float> float4x4;
898 typedef Matrix3x3<float> float3x3;
899 
900 // Standard Matrix Intializers
901 
902 inline float4x4 identityMatrix()
903 {
904  return float4x4(1, 0, 0, 0,
905  0, 1, 0, 0,
906  0, 0, 1, 0,
907  0, 0, 0, 1);
908 }
909 
910 inline float4x4 translationMatrix(float x, float y, float z)
911 {
912  return float4x4 (1, 0, 0, 0,
913  0, 1, 0, 0,
914  0, 0, 1, 0,
915  x, y, z, 1);
916 }
917 
918 inline float4x4 translationMatrix( const float3 &v )
919 {
920  return translationMatrix( v.x, v.y, v.z );
921 }
922 
923 
924 inline float4x4 scaleMatrix(float x, float y, float z)
925 {
926  return float4x4(x, 0, 0, 0,
927  0, y, 0, 0,
928  0, 0, z, 0,
929  0, 0, 0, 1);
930 }
931 
932 inline float4x4 rotationX(float angleInRadians)
933 {
934  float sinAngle = sinf(angleInRadians);
935  float cosAngle = cosf(angleInRadians);
936 
937  float4x4 mOut;
938 
939  mOut._11 = 1.0f; mOut._12 = 0.0f; mOut._13 = 0.0f; mOut._14 = 0.0f;
940  mOut._21 = 0.0f; mOut._22 = cosAngle; mOut._23 = -sinAngle; mOut._24 = 0.0f;
941  mOut._31 = 0.0f; mOut._32 = sinAngle; mOut._33 = cosAngle; mOut._34 = 0.0f;
942  mOut._41 = 0.0f; mOut._42 = 0.0f; mOut._43 = 0.0f; mOut._44 = 1.0f;
943 
944  return mOut;
945 }
946 
947 inline float4x4 rotationY(float angleInRadians)
948 {
949  float sinAngle = sinf(angleInRadians);
950  float cosAngle = cosf(angleInRadians);
951 
952  float4x4 mOut;
953 
954  mOut._11 = cosAngle; mOut._12 = 0.0f; mOut._13 = sinAngle; mOut._14 = 0.0f;
955  mOut._21 = 0.0f; mOut._22 = 1.0f; mOut._23 = 0.0f; mOut._24 = 0.0f;
956  mOut._31 = -sinAngle; mOut._32 = 0.0f; mOut._33 = cosAngle; mOut._34 = 0.0f;
957  mOut._41 = 0.0f; mOut._42 = 0.0f; mOut._43 = 0.0f; mOut._44 = 1.0f;
958 
959  return mOut;
960 }
961 
962 inline float4x4 rotationZ(float angleInRadians)
963 {
964  float sinAngle = sinf(angleInRadians);
965  float cosAngle = cosf(angleInRadians);
966 
967  float4x4 mOut;
968 
969  mOut._11 = cosAngle; mOut._12 = -sinAngle; mOut._13 = 0.0f; mOut._14 = 0.0f;
970  mOut._21 = sinAngle; mOut._22 = cosAngle; mOut._23 = 0.0f; mOut._24 = 0.0f;
971  mOut._31 = 0.0f; mOut._32 = 0.0f; mOut._33 = 1.0f; mOut._34 = 0.0f;
972  mOut._41 = 0.0f; mOut._42 = 0.0f; mOut._43 = 0.0f; mOut._44 = 1.0f;
973 
974  return mOut;
975 }
976 
977 // 3D Rotation matrix for an arbitrary axis specified by x, y and z
978 inline float4x4 rotationArbitrary(float3 axis, float degree)
979 {
980  UNSUPPORTED("This function is not tested, it might be incorrect");
981 
982  axis = normalize(axis);
983 
984  float angleInRadians = degree * (PI_F / 180.0f);
985 
986  float sinAngle = sinf(angleInRadians);
987  float cosAngle = cosf(angleInRadians);
988  float oneMinusCosAngle = 1 - cosAngle;
989 
990  float4x4 mOut;
991 
992  mOut._11 = 1.0f + oneMinusCosAngle * (axis.x * axis.x - 1.0f);
993  mOut._12 = axis.z * sinAngle + oneMinusCosAngle * axis.x * axis.y;
994  mOut._13 = -axis.y * sinAngle + oneMinusCosAngle * axis.x * axis.z;
995  mOut._41 = 0.0f;
996 
997  mOut._21 = -axis.z * sinAngle + oneMinusCosAngle * axis.y * axis.x;
998  mOut._22 = 1.0f + oneMinusCosAngle * (axis.y * axis.y - 1.0f);
999  mOut._23 = axis.x * sinAngle + oneMinusCosAngle * axis.y * axis.z;
1000  mOut._24 = 0.0f;
1001 
1002  mOut._31 = axis.y * sinAngle + oneMinusCosAngle * axis.z * axis.x;
1003  mOut._32 = -axis.x * sinAngle + oneMinusCosAngle * axis.z * axis.y;
1004  mOut._33 = 1.0f + oneMinusCosAngle * (axis.z * axis.z - 1.0f);
1005  mOut._34 = 0.0f;
1006 
1007  mOut._41 = 0.0f;
1008  mOut._42 = 0.0f;
1009  mOut._43 = 0.0f;
1010  mOut._44 = 1.0f;
1011 
1012  return mOut;
1013 }
1014 
1015 inline float4x4 ViewMatrixFromBasis( const float3 &f3X, const float3 &f3Y, const float3 &f3Z )
1016 {
1017  return float4x4( f3X.x, f3Y.x, f3Z.x, 0,
1018  f3X.y, f3Y.y, f3Z.y, 0,
1019  f3X.z, f3Y.z, f3Z.z, 0,
1020  0, 0, 0, 1);
1021 }
1022 
1023 inline void SetNearFarClipPlanes( float4x4 &ProjMatrix, float zNear, float zFar, bool bIsDirectX )
1024 {
1025  if( bIsDirectX )
1026  {
1027  ProjMatrix._33 = zFar / (zFar - zNear);
1028  ProjMatrix._43 = -zNear * zFar / (zFar - zNear);
1029  ProjMatrix._34 = 1;
1030  }
1031  else
1032  {
1033  // https://www.opengl.org/sdk/docs/man2/xhtml/gluPerspective.xml
1034  // http://www.terathon.com/gdc07_lengyel.pdf
1035  // Note that OpenGL uses right-handed coordinate system, where
1036  // camera is looking in negative z direction:
1037  // OO
1038  // |__|<--------------------
1039  // -z +z
1040  // Consequently, OpenGL projection matrix given by these two
1041  // references inverts z axis.
1042 
1043  // We do not need to do this, because we use DX coordinate
1044  // system for the camera space. Thus we need to invert the
1045  // sign of the values in the third column in the matrix
1046  // from the references:
1047 
1048  ProjMatrix._33 = -(-(zFar + zNear) / (zFar - zNear));
1049  ProjMatrix._43 = -2.0f * zNear * zFar / (zFar - zNear);
1050  ProjMatrix._34 = -(-1);
1051  }
1052 }
1053 
1054 inline void GetNearFarPlaneFromProjMatrix( const float4x4 &ProjMatrix, float &zNear, float &zFar, bool bIsDirectX )
1055 {
1056  if( bIsDirectX )
1057  {
1058  zNear = -ProjMatrix._43 / ProjMatrix._33;
1059  zFar = ProjMatrix._33 / (ProjMatrix._33 - 1) * zNear;
1060  }
1061  else
1062  {
1063  zNear = ProjMatrix._43 / (-1.f - ProjMatrix._33);
1064  zFar = ProjMatrix._43 / (+1.f - ProjMatrix._33);
1065  }
1066 }
1067 
1068 inline float4x4 Projection(float fov, float aspectRatio, float zNear, float zFar, bool bIsDirectX) // Left-handed projection
1069 {
1070  float4x4 mOut;
1071  float yScale = 1.0f / tan(fov / 2.0f);
1072  float xScale = yScale / aspectRatio;
1073  mOut._11 = xScale;
1074  mOut._22 = yScale;
1075 
1076  SetNearFarClipPlanes( mOut, zNear, zFar, bIsDirectX );
1077 
1078  return mOut;
1079 }
1080 
1081 
1082 struct Quaternion
1083 {
1084  float q[4];
1085 };
1086 
1087 inline Quaternion RotationFromAxisAngle(const float3& axis, float angle)
1088 {
1089  Quaternion out;
1090  float norm = length(axis);
1091  float sina2 = sin(0.5f * angle);
1092  out.q[0] = sina2 * axis[0] / norm;
1093  out.q[1] = sina2 * axis[1] / norm;
1094  out.q[2] = sina2 * axis[2] / norm;
1095  out.q[3] = cos(0.5f * angle);
1096  return out;
1097 }
1098 
1099 inline void AxisAngleFromRotation(float3& outAxis, float& outAngle, const Quaternion& quat)
1100 {
1101  float sina2 = sqrt(quat.q[0]*quat.q[0] + quat.q[1]*quat.q[1] + quat.q[2]*quat.q[2]);
1102  outAngle = 2.0f * atan2(sina2, quat.q[3]);
1103  float r = (sina2 > 0) ? (1.0f / sina2) : 0;
1104  outAxis[0] = r * quat.q[0];
1105  outAxis[1] = r * quat.q[1];
1106  outAxis[2] = r * quat.q[2];
1107 }
1108 
1109 inline float4x4 QuaternionToMatrix(const Quaternion& quat)
1110 {
1111  float4x4 out;
1112  float yy2 = 2.0f * quat.q[1] * quat.q[1];
1113  float xy2 = 2.0f * quat.q[0] * quat.q[1];
1114  float xz2 = 2.0f * quat.q[0] * quat.q[2];
1115  float yz2 = 2.0f * quat.q[1] * quat.q[2];
1116  float zz2 = 2.0f * quat.q[2] * quat.q[2];
1117  float wz2 = 2.0f * quat.q[3] * quat.q[2];
1118  float wy2 = 2.0f * quat.q[3] * quat.q[1];
1119  float wx2 = 2.0f * quat.q[3] * quat.q[0];
1120  float xx2 = 2.0f * quat.q[0] * quat.q[0];
1121  out[0][0] = - yy2 - zz2 + 1.0f;
1122  out[0][1] = xy2 + wz2;
1123  out[0][2] = xz2 - wy2;
1124  out[0][3] = 0;
1125  out[1][0] = xy2 - wz2;
1126  out[1][1] = - xx2 - zz2 + 1.0f;
1127  out[1][2] = yz2 + wx2;
1128  out[1][3] = 0;
1129  out[2][0] = xz2 + wy2;
1130  out[2][1] = yz2 - wx2;
1131  out[2][2] = - xx2 - yy2 + 1.0f;
1132  out[2][3] = 0;
1133  out[3][0] = out[3][1] = out[3][2] = 0;
1134  out[3][3] = 1;
1135  return out;
1136 }
1137 
1138 inline float determinant( const float3x3& m )
1139 {
1140  float det = 0.f;
1141  det += m._11 * (m._22*m._33 - m._32*m._23);
1142  det -= m._12 * (m._21*m._33 - m._31*m._23);
1143  det += m._13 * (m._21*m._32 - m._31*m._22);
1144  return det;
1145 }
1146 
1147 
1148 inline float determinant( const float4x4& m )
1149 {
1150  float det = 0.f;
1151 
1152  det += m._11 * determinant(
1153  float3x3 ( m._22,m._23,m._24,
1154  m._32,m._33,m._34,
1155  m._42,m._43,m._44) );
1156 
1157  det -= m._12 * determinant(
1158  float3x3( m._21,m._23,m._24,
1159  m._31,m._33,m._34,
1160  m._41,m._43,m._44) );
1161 
1162  det += m._13 * determinant(
1163  float3x3( m._21,m._22,m._24,
1164  m._31,m._32,m._34,
1165  m._41,m._42,m._44) );
1166 
1167  det -= m._14 * determinant(
1168  float3x3( m._21,m._22,m._23,
1169  m._31,m._32,m._33,
1170  m._41,m._42,m._43) );
1171 
1172  return det;
1173 }
1174 
1175 inline float4x4 inverseMatrix(const float4x4& m)
1176 {
1177  float4x4 inv;
1178 
1179  // row 1
1180  inv._11 = determinant(
1181  float3x3( m._22, m._23, m._24,
1182  m._32, m._33, m._34,
1183  m._42, m._43, m._44 ) );
1184 
1185  inv._12 = -determinant(
1186  float3x3( m._21, m._23, m._24,
1187  m._31, m._33, m._34,
1188  m._41, m._43, m._44) );
1189 
1190  inv._13 = determinant(
1191  float3x3 ( m._21, m._22, m._24,
1192  m._31, m._32, m._34,
1193  m._41, m._42, m._44) );
1194 
1195  inv._14 = -determinant(
1196  float3x3 ( m._21, m._22, m._23,
1197  m._31, m._32, m._33,
1198  m._41, m._42, m._43) );
1199 
1200 
1201  // row 2
1202  inv._21 = -determinant(
1203  float3x3( m._12, m._13, m._14,
1204  m._32, m._33, m._34,
1205  m._42, m._43, m._44) );
1206 
1207  inv._22 = determinant(
1208  float3x3( m._11, m._13, m._14,
1209  m._31, m._33, m._34,
1210  m._41, m._43, m._44) );
1211 
1212  inv._23 = -determinant(
1213  float3x3( m._11, m._12, m._14,
1214  m._31, m._32, m._34,
1215  m._41, m._42, m._44) );
1216 
1217  inv._24 = determinant(
1218  float3x3( m._11, m._12, m._13,
1219  m._31, m._32, m._33,
1220  m._41, m._42, m._43) );
1221 
1222 
1223  // row 3
1224  inv._31 = determinant(
1225  float3x3( m._12,m._13,m._14,
1226  m._22,m._23,m._24,
1227  m._42,m._43,m._44) );
1228 
1229  inv._32 = -determinant(
1230  float3x3( m._11,m._13,m._14,
1231  m._21,m._23,m._24,
1232  m._41,m._43,m._44) );
1233 
1234  inv._33 = determinant(
1235  float3x3( m._11,m._12,m._14,
1236  m._21,m._22,m._24,
1237  m._41,m._42,m._44) );
1238 
1239  inv._34 = -determinant(
1240  float3x3( m._11,m._12,m._13,
1241  m._21,m._22,m._23,
1242  m._41,m._42,m._43) );
1243 
1244  // row 4
1245  inv._41 = -determinant(
1246  float3x3( m._12, m._13, m._14,
1247  m._22, m._23, m._24,
1248  m._32, m._33, m._34) );
1249 
1250  inv._42 = determinant(
1251  float3x3( m._11, m._13, m._14,
1252  m._21, m._23, m._24,
1253  m._31, m._33, m._34) );
1254 
1255  inv._43 = -determinant(
1256  float3x3( m._11, m._12, m._14,
1257  m._21, m._22, m._24,
1258  m._31, m._32, m._34) );
1259 
1260  inv._44 = determinant(
1261  float3x3( m._11, m._12, m._13,
1262  m._21, m._22, m._23,
1263  m._31, m._32, m._33) );
1264 
1265  auto det = m._11 * inv._11 + m._12 * inv._12 + m._13 * inv._13 + m._14 * inv._14;
1266  inv = transposeMatrix(inv);
1267  inv *= 1.0f/det;
1268 
1269  return inv;
1270 }
1271 
1272 namespace std
1273 {
1274  template<typename T>
1275  Vector2<T> max( const Vector2<T> &Left, const Vector2<T> &Right )
1276  {
1277  return Vector2<T>(
1278  std::max( Left.x, Right.x ),
1279  std::max( Left.y, Right.y )
1280  );
1281  }
1282 
1283  template<typename T>
1284  Vector3<T> max( const Vector3<T> &Left, const Vector3<T> &Right )
1285  {
1286  return Vector3<T>(
1287  std::max( Left.x, Right.x ),
1288  std::max( Left.y, Right.y ),
1289  std::max( Left.z, Right.z )
1290  );
1291  }
1292 
1293  template<typename T>
1294  Vector4<T> max( const Vector4<T> &Left, const Vector4<T> &Right )
1295  {
1296  return Vector4<T>(
1297  std::max( Left.x, Right.x ),
1298  std::max( Left.y, Right.y ),
1299  std::max( Left.z, Right.z ),
1300  std::max( Left.w, Right.w )
1301  );
1302  }
1303 
1304 
1305  template<typename T>
1306  Vector2<T> min( const Vector2<T> &Left, const Vector2<T> &Right )
1307  {
1308  return Vector2<T>(
1309  std::min( Left.x, Right.x ),
1310  std::min( Left.y, Right.y )
1311  );
1312  }
1313 
1314  template<typename T>
1315  Vector3<T> min( const Vector3<T> &Left, const Vector3<T> &Right )
1316  {
1317  return Vector3<T>(
1318  std::min( Left.x, Right.x ),
1319  std::min( Left.y, Right.y ),
1320  std::min( Left.z, Right.z )
1321  );
1322  }
1323 
1324  template<typename T>
1325  Vector4<T> min( const Vector4<T> &Left, const Vector4<T> &Right )
1326  {
1327  return Vector4<T>(
1328  std::min( Left.x, Right.x ),
1329  std::min( Left.y, Right.y ),
1330  std::min( Left.z, Right.z ),
1331  std::min( Left.w, Right.w )
1332  );
1333  }
1334 
1335 
1336  template<typename T>
1337  struct hash<Vector2<T>>
1338  {
1339  size_t operator()( const Vector2<T> &v2 ) const
1340  {
1341  return Diligent::ComputeHash(v2.x, v2.y);
1342  }
1343  };
1344 
1345  template<typename T>
1346  struct hash<Vector3<T>>
1347  {
1348  size_t operator()( const Vector3<T> &v3 ) const
1349  {
1350  return Diligent::ComputeHash(v3.x, v3.y, v3.z);
1351  }
1352  };
1353 
1354  template<typename T>
1355  struct hash<Vector4<T>>
1356  {
1357  size_t operator()( const Vector4<T> &v4 ) const
1358  {
1359  return Diligent::ComputeHash(v4.x, v4.y, v4.z, v4.w);
1360  }
1361  };
1362 
1363  template<typename T>
1364  struct hash<Matrix3x3<T>>
1365  {
1366  size_t operator()( const Matrix3x3<T> &m ) const
1367  {
1368  return Diligent::ComputeHash(
1369  m._m00, m._m01, m._m02,
1370  m._m10, m._m11, m._m12,
1371  m._m20, m._m21, m._m22
1372  );
1373  }
1374  };
1375 
1376  template<typename T>
1377  struct hash<Matrix4x4<T>>
1378  {
1379  size_t operator()( const Matrix4x4<T> &m ) const
1380  {
1381  return Diligent::ComputeHash(
1382  m._m00, m._m01, m._m02, m._m03,
1383  m._m10, m._m11, m._m12, m._m13,
1384  m._m20, m._m21, m._m22, m._m23,
1385  m._m30, m._m31, m._m32, m._m33
1386  );
1387  }
1388  };
1389 }
Definition: AdvancedMath.h:316
+
+ + + + + diff --git a/doc/html/_basic_platform_debug_8h_source.html b/doc/html/_basic_platform_debug_8h_source.html new file mode 100644 index 00000000..8fc56342 --- /dev/null +++ b/doc/html/_basic_platform_debug_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Basic/interface/BasicPlatformDebug.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BasicPlatformDebug.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BasicTypes.h"
27 
28 struct BasicPlatformDebug
29 {
30  enum class DebugMessageSeverity
31  {
32  Info,
33  Warning,
34  Error,
35  FatalError
36  };
37 
38  static Diligent::String FormatAssertionFailedMessage(const Diligent::Char* Message, const char* Function, const char* File, int Line);
39 };
40 
41 // Forward declarations of platform-specific debug functions
42 void DebugAssertionFailed(const Diligent::Char* Message, const char* Function, const char* File, int Line);
43 void OutputDebugMessage(BasicPlatformDebug::DebugMessageSeverity Severity, const Diligent::Char* Message);
std::basic_string< Char > String
String variable.
Definition: BasicTypes.h:51
+
+ + + + + diff --git a/doc/html/_basic_platform_misc_8h_source.html b/doc/html/_basic_platform_misc_8h_source.html new file mode 100644 index 00000000..baa4d35b --- /dev/null +++ b/doc/html/_basic_platform_misc_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Basic/interface/BasicPlatformMisc.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BasicPlatformMisc.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BasicTypes.h"
27 
28 struct BasicPlatformMisc
29 {
30  static Diligent::Uint32 GetMSB(Diligent::Uint32 Val)
31  {
32  if( Val == 0 )return 32;
33 
34  Diligent::Uint32 MSB = 31;
35  while( !(Val & (1 << MSB)) )
36  --MSB;
37 
38  return MSB;
39  }
40 
41  static Diligent::Uint32 GetLSB(Diligent::Uint32 Val)
42  {
43  if( Val == 0 )return 32;
44 
45  Diligent::Uint32 LSB = 0;
46  while( !(Val & (1 << LSB)) )
47  ++LSB;
48 
49  return LSB;
50  }
51 };
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
+ + + + + diff --git a/doc/html/_basic_shader_source_stream_factory_8h_source.html b/doc/html/_basic_shader_source_stream_factory_8h_source.html new file mode 100644 index 00000000..468b3421 --- /dev/null +++ b/doc/html/_basic_shader_source_stream_factory_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsTools/include/BasicShaderSourceStreamFactory.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BasicShaderSourceStreamFactory.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BasicFileStream.h"
27 #include "Shader.h"
28 
29 namespace Diligent
30 {
31  class BasicShaderSourceStreamFactory : public IShaderSourceInputStreamFactory
32  {
33  public:
34  BasicShaderSourceStreamFactory( const Char *SearchDirectories = nullptr );
35 
36  virtual void CreateInputStream( const Char *Name, IFileStream **ppStream )override;
37 
38  private:
39  std::vector<String> m_SearchDirectories;
40  };
41 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
+ + + + + diff --git a/doc/html/_basic_types_8h_source.html b/doc/html/_basic_types_8h_source.html new file mode 100644 index 00000000..6276e7b9 --- /dev/null +++ b/doc/html/_basic_types_8h_source.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Primitives/interface/BasicTypes.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BasicTypes.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <cstdint>
27 #include <string>
28 
29 namespace Diligent
30 {
31  typedef float Float32;
32 
33  typedef int64_t Int64;
34  typedef int32_t Int32;
35  typedef int16_t Int16;
36  typedef int8_t Int8;
37 
38  typedef uint64_t Uint64;
39  typedef uint32_t Uint32;
40  typedef uint16_t Uint16;
41  typedef uint8_t Uint8;
42 
43  typedef size_t SizeType;
44  typedef void* PVoid;
45 
46  typedef bool Bool;
47  static constexpr Bool False = false;
48  static constexpr Bool True = true;
49 
50  typedef char Char;
51  typedef std::basic_string<Char> String;
52 }
int8_t Int8
8-bit signed integer
Definition: BasicTypes.h:36
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
int64_t Int64
64-bit signed integer
Definition: BasicTypes.h:33
+
uint64_t Uint64
64-bit unsigned integer
Definition: BasicTypes.h:38
+
uint8_t Uint8
8-bit unsigned integer
Definition: BasicTypes.h:41
+
bool Bool
Boolean.
Definition: BasicTypes.h:46
+
std::basic_string< Char > String
String variable.
Definition: BasicTypes.h:51
+
float Float32
32-bit float
Definition: BasicTypes.h:31
+
int16_t Int16
16-bit signed integer
Definition: BasicTypes.h:35
+
uint16_t Uint16
16-bit unsigned integer
Definition: BasicTypes.h:40
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
int32_t Int32
32-bit signed integer
Definition: BasicTypes.h:34
+
+ + + + + diff --git a/doc/html/_blend_state_8h_source.html b/doc/html/_blend_state_8h_source.html new file mode 100644 index 00000000..b0c485bc --- /dev/null +++ b/doc/html/_blend_state_8h_source.html @@ -0,0 +1,156 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/BlendState.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BlendState.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BasicTypes.h"
30 
31 namespace Diligent
32 {
33 
35 
43 enum BLEND_FACTOR : Int8
44 {
47 
51 
55 
59 
63 
67 
71 
75 
79 
83 
87 
92 
96 
100 
104 
108 
112 
116 
119 };
120 
122 
130 enum BLEND_OPERATION : Int8
131 {
134 
138 
142 
146 
150 
154 
157 };
158 
160 
163 enum COLOR_MASK : Int32
164 {
167 
170 
173 
176 
179 };
180 
181 
183 
189 enum LOGIC_OPERATION : Int8
190 {
194 
198 
202 
206 
210 
214 
218 
222 
226 
230 
234 
238 
242 
246 
250 
254 
257 };
258 
260 
264 {
267 
270 
273 
276 
280 
284 
288 
292 
295 
298 
300 
314  BlendEnable ( False ),
315  LogicOperationEnable(False),
324  {}
325 
326 
328 
333  bool operator == (const RenderTargetBlendDesc& rhs)const
334  {
335  return BlendEnable == rhs.BlendEnable &&
337  SrcBlend == rhs.SrcBlend &&
338  DestBlend == rhs.DestBlend &&
339  BlendOp == rhs.BlendOp &&
340  SrcBlendAlpha == rhs.SrcBlendAlpha &&
342  BlendOpAlpha == rhs.BlendOpAlpha &&
343  LogicOp == rhs.LogicOp &&
345  }
346 };
347 
349 
352 {
356 
360 
362  static constexpr int MaxRenderTargets = 8;
363 
367 
369 
378  AlphaToCoverageEnable(False),
380  {
381  }
382 
384 
393  bool operator == (const BlendStateDesc& RHS)const
394  {
395  bool bRTsEqual = true;
396  for( int i = 0; i < MaxRenderTargets; ++i )
397  if( !(RenderTargets[i] == RHS.RenderTargets[i]) )
398  {
399  bRTsEqual = false;
400  break;
401  }
402 
403  return bRTsEqual &&
406  }
407 };
408 
409 }
Perform a logical OR and reverse operation on the render target. Direct3D12 counterpart: D3D12_LOGIC...
Definition: BlendState.h:249
+
BLEND_OPERATION
Blending operation.
Definition: BlendState.h:130
+
Undefined blend factor.
Definition: BlendState.h:46
+
Perform a logical OR operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_OR.
Definition: BlendState.h:225
+
BLEND_OPERATION BlendOp
Defines how to combine the source and destination RGB values after applying the SrcBlend and DestBlen...
Definition: BlendState.h:279
+
COLOR_MASK
Color component write flags.
Definition: BlendState.h:163
+
Helper value that stores the total number of blend operations in the enumeration. ...
Definition: BlendState.h:156
+
The blend factor is one. Direct3D counterpart: D3D11_BLEND_ONE/D3D12_BLEND_ONE. OpenGL counterpart: ...
Definition: BlendState.h:54
+
BlendStateDesc()
Constructor initializes structure members with default values.
Definition: BlendState.h:377
+
Allow data to be stored in the blue component.
Definition: BlendState.h:172
+
Perform a logical equal operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_EQUIV...
Definition: BlendState.h:237
+
Helper value that stores the total number of blend factors in the enumeration.
Definition: BlendState.h:118
+
The blend factor is 1-A, where A is the second alpha data output from a pixel shader. Direct3D counterpart: D3D11_BLEND_INV_SRC1_ALPHA/D3D12_BLEND_INV_SRC1_ALPHA. OpenGL counterpart: GL_ONE_MINUS_SRC1_ALPHA.
Definition: BlendState.h:115
+
Undefined blend operation.
Definition: BlendState.h:133
+
Bool AlphaToCoverageEnable
Specifies whether to use alpha-to-coverage as a multisampling technique when setting a pixel to a ren...
Definition: BlendState.h:355
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Add source and destination color components. Direct3D counterpart: D3D11_BLEND_OP_ADD/D3D12_BLEND_OP...
Definition: BlendState.h:137
+
RenderTargetBlendDesc()
Constructor initializes structure members with default values.
Definition: BlendState.h:313
+
The blend factor is the constant blend factor set with IDeviceContext::SetBlendFactors(). Direct3D counterpart: D3D11_BLEND_BLEND_FACTOR/D3D12_BLEND_BLEND_FACTOR. OpenGL counterpart: GL_CONSTANT_COLOR.
Definition: BlendState.h:95
+
Perform a logical AND operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_AND.
Definition: BlendState.h:217
+
Subtract source color components from destination color components. Direct3D counterpart: D3D11_BLEN...
Definition: BlendState.h:145
+
LOGIC_OPERATION LogicOp
Defines logical operation for the render target.
Definition: BlendState.h:294
+
Copy the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_COPY.
Definition: BlendState.h:201
+
Allow data to be stored in all components.
Definition: BlendState.h:178
+
The blend factor is 1-RGB, where RGB is the data from a render target. Direct3D counterpart: D3D11_B...
Definition: BlendState.h:86
+
The blend factor is 1-A, where A is alpha data from a render target. Direct3D counterpart: D3D11_BLE...
Definition: BlendState.h:78
+
Perform a logical NOR operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_NOR.
Definition: BlendState.h:229
+
Bool LogicOperationEnable
Enable or disable a logical operation for this render target.
Definition: BlendState.h:269
+
Allow data to be stored in the red component.
Definition: BlendState.h:166
+
Perform a logical OR and invert operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_...
Definition: BlendState.h:253
+
BLEND_FACTOR DestBlendAlpha
Specifies the blend factor to apply to the alpha value in the render target. Blend factors that end i...
Definition: BlendState.h:287
+
Perform a logical AND and invert operation on the render target. Direct3D12 counterpart: D3D12_LOGIC...
Definition: BlendState.h:245
+
The blend factor is alpha (A) data from a pixel shader. Direct3D counterpart: D3D11_BLEND_SRC_ALPHA/...
Definition: BlendState.h:66
+
Blend state description.
Definition: BlendState.h:351
+
The blend factor is the second alpha (A) data output from a pixel shader. Direct3D counterpart: D3D1...
Definition: BlendState.h:111
+
bool operator==(const BlendStateDesc &RHS) const
Comparison operator tests if two structures are equivalent.
Definition: BlendState.h:393
+
BLEND_FACTOR SrcBlend
Specifies the blend factor to apply to the RGB value output from the pixel shader.
Definition: BlendState.h:272
+
Subtract destination color components from source color components. Direct3D counterpart: D3D11_BLEN...
Definition: BlendState.h:141
+
Compute the minimum of source and destination color components. Direct3D counterpart: D3D11_BLEND_OP...
Definition: BlendState.h:149
+
Uint32 RenderTargetWriteMask
Render target write mask.
Definition: BlendState.h:297
+
No operation is performed on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_NOOP.
Definition: BlendState.h:209
+
Bool IndependentBlendEnable
Specifies whether to enable independent blending in simultaneous render targets. If set to False...
Definition: BlendState.h:359
+
The blend factor is 1-RGB, where RGB is the second RGB data output from a pixel shader. Direct3D counterpart: D3D11_BLEND_INV_SRC1_COLOR/D3D12_BLEND_INV_SRC1_COLOR. OpenGL counterpart: GL_ONE_MINUS_SRC1_COLOR.
Definition: BlendState.h:107
+
bool operator==(const RenderTargetBlendDesc &rhs) const
Comparison operator tests if two structures are equivalent.
Definition: BlendState.h:333
+
The blend factor is 1-RGB, where RGB is the data from a pixel shader. Direct3D counterpart: D3D11_BL...
Definition: BlendState.h:62
+
Describes a blend state for a single render target.
Definition: BlendState.h:263
+
Allow data to be stored in the green component.
Definition: BlendState.h:169
+
Perform a logical XOR operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_XOR.
Definition: BlendState.h:233
+
BLEND_OPERATION BlendOpAlpha
Defines how to combine the source and destination alpha values after applying the SrcBlendAlpha and D...
Definition: BlendState.h:291
+
BLEND_FACTOR SrcBlendAlpha
Specifies the blend factor to apply to the alpha value output from the pixel shader. Blend factors that end in _COLOR are not allowed.
Definition: BlendState.h:283
+
The blend factor is the second RGB data output from a pixel shader. Direct3D counterpart: D3D11_BLEN...
Definition: BlendState.h:103
+
static constexpr int MaxRenderTargets
Constant member defining the maximum number of render targets.
Definition: BlendState.h:362
+
Compute the maximum of source and destination color components. Direct3D counterpart: D3D11_BLEND_OP...
Definition: BlendState.h:153
+
Perform a logical AND and reverse operation on the render target. Direct3D12 counterpart: D3D12_LOGI...
Definition: BlendState.h:241
+
Helper value that stores the total number of logical operations in the enumeration.
Definition: BlendState.h:256
+
BLEND_FACTOR DestBlend
Specifies the blend factor to apply to the RGB value in the render target.
Definition: BlendState.h:275
+
The blend factor is (f,f,f,1), where f = min(As, 1-Ad), As is alpha data from a pixel shader...
Definition: BlendState.h:91
+
The blend factor is RGB data from a render target. Direct3D counterpart: D3D11_BLEND_DEST_COLOR/D3D1...
Definition: BlendState.h:82
+
The blend factor is zero. Direct3D counterpart: D3D11_BLEND_ZERO/D3D12_BLEND_ZERO. OpenGL counterpart: GL_ZERO.
Definition: BlendState.h:50
+
Allow data to be stored in the alpha component.
Definition: BlendState.h:175
+
The blend factor is alpha (A) data from a render target. Direct3D counterpart: D3D11_BLEND_DEST_ALPH...
Definition: BlendState.h:74
+
BLEND_FACTOR
Blend factors.
Definition: BlendState.h:43
+
The blend factor is one minus constant blend factor set with IDeviceContext::SetBlendFactors(). Direct3D counterpart: D3D11_BLEND_INV_BLEND_FACTOR/D3D12_BLEND_INV_BLEND_FACTOR. OpenGL counterpart: GL_ONE_MINUS_CONSTANT_COLOR.
Definition: BlendState.h:99
+
The blend factor is 1-A, where A is alpha data from a pixel shader. Direct3D counterpart: D3D11_BLEN...
Definition: BlendState.h:70
+
RenderTargetBlendDesc RenderTargets[MaxRenderTargets]
An array of RenderTargetBlendDesc structures that describe the blend states for render targets...
Definition: BlendState.h:366
+
Perform a logical NAND operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_NAND.
Definition: BlendState.h:221
+
Clear the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_CLEAR.
Definition: BlendState.h:193
+
Bool BlendEnable
Enable or disable blending for this render target.
Definition: BlendState.h:266
+
The blend factor is RGB data from a pixel shader. Direct3D counterpart: D3D11_BLEND_SRC_COLOR/D3D12_...
Definition: BlendState.h:58
+
LOGIC_OPERATION
Logic operation.
Definition: BlendState.h:189
+
Set the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_SET.
Definition: BlendState.h:197
+
Invert the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_INVERT.
Definition: BlendState.h:213
+
Perform an inverted-copy of the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_COPY_INVERTED...
Definition: BlendState.h:205
+
+ + + + + diff --git a/doc/html/_buffer_8h_source.html b/doc/html/_buffer_8h_source.html new file mode 100644 index 00000000..3b946e49 --- /dev/null +++ b/doc/html/_buffer_8h_source.html @@ -0,0 +1,130 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/Buffer.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Buffer.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DeviceObject.h"
30 
31 namespace Diligent
32 {
33 
34 // {EC47EAD3-A2C4-44F2-81C5-5248D14F10E4}
35 static constexpr INTERFACE_ID IID_Buffer =
36 { 0xec47ead3, 0xa2c4, 0x44f2, { 0x81, 0xc5, 0x52, 0x48, 0xd1, 0x4f, 0x10, 0xe4 } };
37 
39 
41 enum BUFFER_MODE : Int32
42 {
45 
48 
51 
54 };
55 
58 {
60  Uint32 uiSizeInBytes;
61 
63 
68  Uint32 BindFlags;
69 
72 
76 
79 
81  struct BufferFormat
82  {
85 
88  Uint32 NumComponents;
89 
96 
98 
107  NumComponents( 0 ),
108  IsNormalized(True)
109  {}
110 
112  bool operator == (const BufferFormat& RHS)const
113  {
114  return ValueType == RHS.ValueType &&
115  NumComponents == RHS.NumComponents &&
116  IsNormalized == RHS.IsNormalized;
117  }
118  };
119 
121 
125 
132 
134 
146  uiSizeInBytes(0),
147  BindFlags(0),
149  CPUAccessFlags(0),
152  {}
153 
154 
156 
163  bool operator == (const BufferDesc& RHS)const
164  {
165  return uiSizeInBytes == RHS.uiSizeInBytes &&
166  BindFlags == RHS.BindFlags &&
167  Usage == RHS.Usage &&
169  Mode == RHS.Mode &&
170  Format == RHS.Format &&
172  }
173 };
174 
177 {
179  const void* pData;
180 
182  Uint32 DataSize;
183 
185 
192  pData(nullptr),
193  DataSize(0)
194  {}
195 };
196 
198 
200 class IBuffer : public IDeviceObject
201 {
202 public:
204  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface ) = 0;
205 
207  virtual const BufferDesc& GetDesc()const = 0;
208 
210 
215  virtual void UpdateData( class IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData) = 0;
216 
218 
225  virtual void CopyData( IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size ) = 0;
226 
228 
233  virtual void Map( IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData ) = 0;
234 
241  virtual void Unmap( IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags ) = 0;
242 
244 
254  virtual void CreateView( const struct BufferViewDesc &ViewDesc, class IBufferView **ppView ) = 0;
255 
257 
263  virtual IBufferView* GetDefaultView( BUFFER_VIEW_TYPE ViewType ) = 0;
264 
266 
270  virtual void* GetNativeHandle() = 0;
271 };
272 
273 }
bool operator==(const BufferDesc &RHS) const
Tests if two structures are equivalent.
Definition: Buffer.h:163
+
Buffer view description.
Definition: BufferView.h:39
+
Helper value storing the total number of modes in the enumeration.
Definition: Buffer.h:53
+
BufferData()
Initializes the structure members with default values.
Definition: Buffer.h:191
+
Describes the buffer initial data.
Definition: Buffer.h:176
+
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
virtual void CreateView(const struct BufferViewDesc &ViewDesc, class IBufferView **ppView)=0
Creates a new buffer view.
+
virtual void UpdateData(class IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData)=0
Updates the data in the buffer.
+
Undefined type.
Definition: GraphicsTypes.h:41
+
BUFFER_MODE Mode
Buffer mode.
Definition: Buffer.h:78
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Uint32 ElementByteStride
Buffer element stride, in bytes. For a structured buffer (BufferDesc::Mode equals Diligent::BUFFER_MO...
Definition: Buffer.h:131
+
USAGE Usage
Buffer usage, see Diligent::USAGE for details.
Definition: Buffer.h:71
+
Undefined mode.
Definition: Buffer.h:44
+
bool operator==(const BufferFormat &RHS) const
Tests if two structures are equivalent.
Definition: Buffer.h:112
+
Structured buffer.
Definition: Buffer.h:50
+
BufferFormat()
Initializes the structure members with default values.
Definition: Buffer.h:105
+
virtual void Unmap(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags)=0
Unmaps the previously mapped buffer.
+
BufferDesc()
Initializes the structure members with default values.
Definition: Buffer.h:145
+
Buffer interface.
Definition: Buffer.h:200
+
Formated buffer.
Definition: Buffer.h:47
+
Device context interface.
Definition: DeviceContext.h:443
+
BUFFER_MODE
Describes the buffer access mode.
Definition: Buffer.h:41
+
Uint32 uiSizeInBytes
Size of the buffer, in bytes. For a uniform buffer, this must be multiple of 16.
Definition: Buffer.h:60
+
virtual void * GetNativeHandle()=0
Returns native buffer handle specific to the underlying graphics API.
+
A resource that requires read and write access by the GPU and can also be occasionally written by the...
Definition: GraphicsTypes.h:95
+
Buffer description.
Definition: Buffer.h:57
+
VALUE_TYPE
Value type.
Definition: GraphicsTypes.h:39
+
virtual void CopyData(IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size)=0
Copies the data from other buffer.
+
VALUE_TYPE ValueType
Type of components. For a formatted buffer, this value cannot be VT_UNDEFINED.
Definition: Buffer.h:84
+
virtual void Map(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData)=0
Maps the buffer.
+
USAGE
Resource usage.
Definition: GraphicsTypes.h:84
+
Buffer format description.
Definition: Buffer.h:81
+
virtual IBufferView * GetDefaultView(BUFFER_VIEW_TYPE ViewType)=0
Returns the pointer to the default view.
+
Describes common device object attributes.
Definition: GraphicsTypes.h:900
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
Queries the specific interface, see IObject::QueryInterface() for details.
+
Uint32 DataSize
Data size, in bytes.
Definition: Buffer.h:182
+
Uint32 NumComponents
Number of components. Allowed values: 1, 2, 3, 4. For a formatted buffer, this value cannot be 0...
Definition: Buffer.h:88
+
BufferFormat Format
Buffer format.
Definition: Buffer.h:124
+
Uint32 BindFlags
Buffer bind flags, see Diligent::BIND_FLAGS for details.
Definition: Buffer.h:68
+
Buffer view interface.
Definition: BufferView.h:91
+
const void * pData
Pointer to the data.
Definition: Buffer.h:179
+
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:125
+
Uint32 CPUAccessFlags
CPU access flags or 0 if no CPU access is allowed, see Diligent::CPU_ACCESS_FLAG for details...
Definition: Buffer.h:75
+
BUFFER_VIEW_TYPE
Buffer view type.
Definition: GraphicsTypes.h:219
+
virtual const BufferDesc & GetDesc() const =0
Returns the buffer description used to create the object.
+
Bool IsNormalized
For signed and unsigned integer value types (VT_INT8, VT_INT16, VT_INT32, VT_UINT8, VT_UINT16, VT_UINT32) indicates if the value should be normalized to [-1,+1] or [0, 1] range respectively. For floating point types (VT_FLOAT16 and VT_FLOAT32), this member is ignored.
Definition: Buffer.h:95
+
+ + + + + diff --git a/doc/html/_buffer_base_8h_source.html b/doc/html/_buffer_base_8h_source.html new file mode 100644 index 00000000..c25903fc --- /dev/null +++ b/doc/html/_buffer_base_8h_source.html @@ -0,0 +1,139 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/BufferBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BufferBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Buffer.h"
30 #include "DeviceObjectBase.h"
31 #include "GraphicsAccessories.h"
32 #include "STDAllocator.h"
33 #include <memory>
34 
35 namespace Diligent
36 {
37 
39 
45 template<class BaseInterface, class BufferViewImplType, class TBuffViewObjAllocator>
46 class BufferBase : public DeviceObjectBase < BaseInterface, BufferDesc>
47 {
48 public:
50 
58  BufferBase( IReferenceCounters *pRefCounters,
59  TBuffViewObjAllocator &BuffViewObjAllocator,
60  IRenderDevice *pDevice,
61  const BufferDesc& BuffDesc,
62  bool bIsDeviceInternal) :
63  TDeviceObjectBase( pRefCounters, pDevice, BuffDesc, bIsDeviceInternal),
64 #ifdef _DEBUG
65  m_dbgBuffViewAllocator(BuffViewObjAllocator),
66 #endif
67  m_pDefaultUAV(nullptr, STDDeleter<BufferViewImplType, TBuffViewObjAllocator>(BuffViewObjAllocator) ),
68  m_pDefaultSRV(nullptr, STDDeleter<BufferViewImplType, TBuffViewObjAllocator>(BuffViewObjAllocator) )
69  {
70 #define VERIFY_BUFFER(Expr, ...) VERIFY(Expr, "Buffer \"", this->m_Desc.Name ? this->m_Desc.Name : "", "\": ", ##__VA_ARGS__)
71 
72 #ifdef _DEBUG
73  Uint32 AllowedBindFlags =
77  const Char* strAllowedBindFlags =
78  "BIND_VERTEX_BUFFER (1), BIND_INDEX_BUFFER (2), BIND_UNIFORM_BUFFER (4), "
79  "BIND_SHADER_RESOURCE (8), BIND_STREAM_OUTPUT (16), BIND_UNORDERED_ACCESS (128), "
80  "BIND_INDIRECT_DRAW_ARGS (256)";
81 
82  VERIFY_BUFFER( (BuffDesc.BindFlags & ~AllowedBindFlags) == 0, "Incorrect bind flags specified (", BuffDesc.BindFlags & ~AllowedBindFlags, "). Only the following flags are allowed:\n", strAllowedBindFlags );
83 #endif
84 
85  if( (this->m_Desc.BindFlags & BIND_UNORDERED_ACCESS) ||
86  (this->m_Desc.BindFlags & BIND_SHADER_RESOURCE) )
87  {
88  VERIFY_BUFFER( this->m_Desc.Mode > BUFFER_MODE_UNDEFINED && this->m_Desc.Mode < BUFFER_MODE_NUM_MODES, "Buffer mode (", this->m_Desc.Mode, ") is not correct" );
89  if( this->m_Desc.Mode == BUFFER_MODE_STRUCTURED )
90  {
91  VERIFY_BUFFER( this->m_Desc.ElementByteStride != 0, "Element stride cannot be zero for structured buffer" );
92  }
93 
94  if( this->m_Desc.Mode == BUFFER_MODE_FORMATTED )
95  {
96  VERIFY_BUFFER( this->m_Desc.Format.ValueType != VT_UNDEFINED, "Value type is not specified for a formatted buffer" );
97  VERIFY_BUFFER( this->m_Desc.Format.NumComponents != 0, "Num components cannot be zero in a formatted buffer" );
98  if( this->m_Desc.ElementByteStride == 0 )
99  this->m_Desc.ElementByteStride = static_cast<Uint32>(GetValueSize( this->m_Desc.Format.ValueType )) * this->m_Desc.Format.NumComponents;
100  }
101  }
102  }
103 
104  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_Buffer, TDeviceObjectBase )
105 
106 
107  virtual void UpdateData( IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData )override = 0;
108 
110  virtual void CopyData( IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size )override = 0;
111 
113  virtual void Map( IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData )override;
114 
116  virtual void Unmap( IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags )override = 0;
117 
120  virtual void CreateView( const struct BufferViewDesc &ViewDesc, IBufferView **ppView )override;
121 
123  virtual IBufferView* GetDefaultView( BUFFER_VIEW_TYPE ViewType )override;
124 
126 
132  void CreateDefaultViews();
133 
134 protected:
135 
137  virtual void CreateViewInternal( const struct BufferViewDesc &ViewDesc, IBufferView **ppView, bool bIsDefaultView ) = 0;
138 
140  void CorrectBufferViewDesc( struct BufferViewDesc &ViewDesc );
141 
142 #ifdef _DEBUG
143  TBuffViewObjAllocator &m_dbgBuffViewAllocator;
144 #endif
145 
147  std::unique_ptr<BufferViewImplType, STDDeleter<BufferViewImplType, TBuffViewObjAllocator> > m_pDefaultUAV;
148 
150  std::unique_ptr<BufferViewImplType, STDDeleter<BufferViewImplType, TBuffViewObjAllocator> > m_pDefaultSRV;
151 };
152 
153 template<class BaseInterface, class BufferViewImplType, class TBuffViewObjAllocator>
154 void BufferBase<BaseInterface, BufferViewImplType, TBuffViewObjAllocator> :: UpdateData( IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData )
155 {
156  VERIFY_BUFFER( this->m_Desc.Usage == USAGE_DEFAULT, "Only default usage buffers can be updated with UpdateData()" );
157  VERIFY_BUFFER( Offset < this->m_Desc.uiSizeInBytes, "Offset (", Offset, ") exceeds the buffer size (", this->m_Desc.uiSizeInBytes, ")" );
158  VERIFY_BUFFER( Size + Offset <= this->m_Desc.uiSizeInBytes, "Update region [", Offset, ",", Size + Offset, ") is out of buffer bounds [0,",this->m_Desc.uiSizeInBytes,")" );
159 }
160 
161 template<class BaseInterface, class BufferViewImplType, class TBuffViewObjAllocator>
162 void BufferBase<BaseInterface, BufferViewImplType, TBuffViewObjAllocator> :: CopyData( IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size )
163 {
164  VERIFY_BUFFER( DstOffset + Size <= this->m_Desc.uiSizeInBytes, "Destination range [", DstOffset, ",", DstOffset + Size, ") is out of buffer bounds [0,",this->m_Desc.uiSizeInBytes,")" );
165  VERIFY_BUFFER( SrcOffset + Size <= pSrcBuffer->GetDesc().uiSizeInBytes, "Source range [", SrcOffset, ",", SrcOffset + Size, ") is out of buffer bounds [0,",this->m_Desc.uiSizeInBytes,")" );
166 }
167 
168 
169 template<class BaseInterface, class BufferViewImplType, class TBuffViewObjAllocator>
170 void BufferBase<BaseInterface, BufferViewImplType, TBuffViewObjAllocator> :: Map( IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData )
171 {
172  switch( MapType )
173  {
174  case MAP_READ:
175  VERIFY_BUFFER( this->m_Desc.Usage == USAGE_CPU_ACCESSIBLE, "Only buffers with usage USAGE_CPU_ACCESSIBLE can be read from" );
176  VERIFY_BUFFER( (this->m_Desc.CPUAccessFlags & CPU_ACCESS_READ), "Buffer being mapped for reading was not created with CPU_ACCESS_READ flag" );
177  VERIFY_BUFFER( (MapFlags & MAP_FLAG_DISCARD) == 0, "MAP_FLAG_DISCARD is not valid when mapping buffer for reading" );
178  break;
179 
180  case MAP_WRITE:
181  VERIFY_BUFFER( this->m_Desc.Usage == USAGE_DYNAMIC || this->m_Desc.Usage == USAGE_CPU_ACCESSIBLE, "Only buffers with usage USAGE_CPU_ACCESSIBLE or USAGE_DYNAMIC can be mapped for writing" );
182  VERIFY_BUFFER( (this->m_Desc.CPUAccessFlags & CPU_ACCESS_WRITE), "Buffer being mapped for writing was not created with CPU_ACCESS_WRITE flag" );
183  break;
184 
185  case MAP_READ_WRITE:
186  VERIFY_BUFFER( this->m_Desc.Usage == USAGE_CPU_ACCESSIBLE, "Only buffers with usage USAGE_CPU_ACCESSIBLE can be mapped for reading and writing" );
187  VERIFY_BUFFER( (this->m_Desc.CPUAccessFlags & CPU_ACCESS_WRITE), "Buffer being mapped for reading & writing was not created with CPU_ACCESS_WRITE flag" );
188  VERIFY_BUFFER( (this->m_Desc.CPUAccessFlags & CPU_ACCESS_READ), "Buffer being mapped for reading & writing was not created with CPU_ACCESS_READ flag" );
189  VERIFY_BUFFER( (MapFlags & MAP_FLAG_DISCARD) == 0, "MAP_FLAG_DISCARD is not valid when mapping buffer for reading and writing" );
190  break;
191 
192  default: UNEXPECTED( "Unknown map type" );
193  }
194 
195  if (this->m_Desc.Usage == USAGE_DYNAMIC)
196  {
197  VERIFY((MapFlags & MAP_FLAG_DISCARD) != 0 && MapType == MAP_WRITE, "Dynamic buffers can only be mapped for writing with discard flag");
198  }
199 
200  if ( (MapFlags & MAP_FLAG_DISCARD) != 0 )
201  {
202  VERIFY_BUFFER( this->m_Desc.Usage == USAGE_DYNAMIC || this->m_Desc.Usage == USAGE_CPU_ACCESSIBLE, "Only dynamic and staging buffers can be mapped with discard flag" );
203  VERIFY_BUFFER( MapType == MAP_WRITE, "MAP_FLAG_DISCARD is only valid when mapping buffer for writing" );
204  }
205 }
206 
207 template<class BaseInterface, class BufferViewImplType, class TBuffViewObjAllocator>
209 {
210 
211 }
212 
213 
214 template<class BaseInterface, class BufferViewImplType, class TBuffViewObjAllocator>
216 {
217  CreateViewInternal( ViewDesc, ppView, false );
218 }
219 
220 
221 template<class BaseInterface, class BufferViewImplType, class TBuffViewObjAllocator>
223 {
224  if( ViewDesc.ByteWidth == 0 )
225  ViewDesc.ByteWidth = this->m_Desc.uiSizeInBytes;
226  if( ViewDesc.ByteOffset + ViewDesc.ByteWidth > this->m_Desc.uiSizeInBytes )
227  LOG_ERROR_AND_THROW( "Buffer view range [", ViewDesc.ByteOffset, ", ", ViewDesc.ByteOffset + ViewDesc.ByteWidth, ") is out of the buffer boundaries [0, ", this->m_Desc.uiSizeInBytes, ")." );
228  if( (this->m_Desc.BindFlags & BIND_UNORDERED_ACCESS) ||
229  (this->m_Desc.BindFlags & BIND_SHADER_RESOURCE) )
230  {
231  VERIFY( this->m_Desc.ElementByteStride != 0, "Element byte stride is zero" );
232  if( (ViewDesc.ByteOffset % this->m_Desc.ElementByteStride) != 0 )
233  LOG_ERROR_AND_THROW( "Buffer view byte offset (", ViewDesc.ByteOffset, ") is not multiple of element byte stride (", this->m_Desc.ElementByteStride, ")." );
234  if( (ViewDesc.ByteWidth % this->m_Desc.ElementByteStride) != 0 )
235  LOG_ERROR_AND_THROW( "Buffer view byte width (", ViewDesc.ByteWidth, ") is not multiple of element byte stride (", this->m_Desc.ElementByteStride, ")." );
236  }
237 }
238 
239 template<class BaseInterface, class BufferViewImplType, class TBuffViewObjAllocator>
241 {
242  switch( ViewType )
243  {
244  case BUFFER_VIEW_SHADER_RESOURCE: return m_pDefaultSRV.get();
245  case BUFFER_VIEW_UNORDERED_ACCESS: return m_pDefaultUAV.get();
246  default: UNEXPECTED( "Unknown view type" ); return nullptr;
247  }
248 }
249 
250 template<class BaseInterface, class BufferViewImplType, class TBuffViewObjAllocator>
252 {
253  if( this->m_Desc.BindFlags & BIND_UNORDERED_ACCESS )
254  {
255  BufferViewDesc ViewDesc;
257  IBufferView *pUAV = nullptr;
258  CreateViewInternal( ViewDesc, &pUAV, true );
259  m_pDefaultUAV.reset( static_cast<BufferViewImplType*>(pUAV) );
260  VERIFY( m_pDefaultUAV->GetDesc().ViewType == BUFFER_VIEW_UNORDERED_ACCESS, "Unexpected view type" );
261  }
262 
263  if( this->m_Desc.BindFlags & BIND_SHADER_RESOURCE )
264  {
265  BufferViewDesc ViewDesc;
267  IBufferView* pSRV = nullptr;
268  CreateViewInternal( ViewDesc, &pSRV, true );
269  m_pDefaultSRV.reset( static_cast<BufferViewImplType*>(pSRV) );
270  VERIFY( m_pDefaultSRV->GetDesc().ViewType == BUFFER_VIEW_SHADER_RESOURCE, "Unexpected view type" );
271  }
272 }
273 
274 }
void CorrectBufferViewDesc(struct BufferViewDesc &ViewDesc)
Corrects buffer view description and validates view parameters.
Definition: BufferBase.h:222
+
BUFFER_VIEW_TYPE ViewType
View type. See Diligent::BUFFER_VIEW_TYPE for details.
Definition: BufferView.h:42
+
void CreateDefaultViews()
Creates default buffer views.
Definition: BufferBase.h:251
+
Buffer view description.
Definition: BufferView.h:39
+
Helper value storing the total number of modes in the enumeration.
Definition: Buffer.h:53
+
Render device interface.
Definition: RenderDevice.h:55
+
Undefined type.
Definition: GraphicsTypes.h:41
+
A buffer or a texture can be bound as a shader resource.
Definition: GraphicsTypes.h:68
+
virtual IBufferView * GetDefaultView(BUFFER_VIEW_TYPE ViewType) override
Implementation of IBuffer::GetDefaultView().
Definition: BufferBase.h:240
+
BUFFER_MODE Mode
Buffer mode.
Definition: Buffer.h:78
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
A buffer view will define an unordered access view that will be used for unordered read/write operati...
Definition: GraphicsTypes.h:230
+
virtual void CreateView(const struct BufferViewDesc &ViewDesc, IBufferView **ppView) override
Implementation of IBuffer::CreateView(); calls CreateViewInternal() virtual function that creates buf...
Definition: BufferBase.h:215
+
Uint32 ElementByteStride
Buffer element stride, in bytes. For a structured buffer (BufferDesc::Mode equals Diligent::BUFFER_MO...
Definition: Buffer.h:131
+
Uint32 ByteOffset
Offset in bytes from the beginnig of the buffer to the start of the buffer region referenced by the v...
Definition: BufferView.h:46
+
A buffer can be bound as an index buffer.
Definition: GraphicsTypes.h:65
+
Template class implementing base functionality for a buffer object.
Definition: BufferBase.h:46
+
Undefined mode.
Definition: Buffer.h:44
+
Previous contents of the resource will be undefined. This flag is only compatible with MAP_WRITE D3D...
Definition: GraphicsTypes.h:158
+
Structured buffer.
Definition: Buffer.h:50
+
BufferBase(IReferenceCounters *pRefCounters, TBuffViewObjAllocator &BuffViewObjAllocator, IRenderDevice *pDevice, const BufferDesc &BuffDesc, bool bIsDeviceInternal)
Definition: BufferBase.h:58
+
virtual void Unmap(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags) override=0
Base implementation of IBuffer::Unmap()
Definition: BufferBase.h:208
+
A buffer can be bound as a vertex buffer.
Definition: GraphicsTypes.h:64
+
Buffer interface.
Definition: Buffer.h:200
+
Formated buffer.
Definition: Buffer.h:47
+
Device context interface.
Definition: DeviceContext.h:443
+
A buffer can be bound as the source buffer for indirect draw commands.
Definition: GraphicsTypes.h:74
+
A resource can be mapped for reading.
Definition: GraphicsTypes.h:114
+
A resource that requires read and write access by the GPU and can also be occasionally written by the...
Definition: GraphicsTypes.h:95
+
Buffer description.
Definition: Buffer.h:57
+
virtual void CreateViewInternal(const struct BufferViewDesc &ViewDesc, IBufferView **ppView, bool bIsDefaultView)=0
Pure virtual function that creates buffer view for the specific engine implementation.
+
virtual void UpdateData(IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData) override=0
Base implementation of IBuffer::UpdateData(); validates input parameters.
Definition: BufferBase.h:154
+
Resource is mapped for writing. D3D11 counterpart: D3D11_MAP_WRITE. OpenGL counterpart: GL_MAP_WRIT...
Definition: GraphicsTypes.h:133
+
VALUE_TYPE ValueType
Type of components. For a formatted buffer, this value cannot be VT_UNDEFINED.
Definition: Buffer.h:84
+
A resource that facilitates transferring data from GPU to CPU. D3D11 Counterpart: D3D11_USAGE_STAGI...
Definition: GraphicsTypes.h:103
+
Resource is mapped for reading. D3D11 counterpart: D3D11_MAP_READ. OpenGL counterpart: GL_MAP_READ_...
Definition: GraphicsTypes.h:129
+
BufferDesc m_Desc
Object description.
Definition: DeviceObjectBase.h:138
+
A buffer or a texture can be bound as an unordered access view.
Definition: GraphicsTypes.h:73
+
virtual void Map(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData) override
Base implementation of IBuffer::Map(); validates input parameters.
Definition: BufferBase.h:170
+
Uint32 ByteWidth
Size in bytes of the referenced buffer region.
Definition: BufferView.h:49
+
A buffer can be bound as a target for stream output stage.
Definition: GraphicsTypes.h:70
+
A buffer view will define a shader resource view that will be used as the source for the shader read ...
Definition: GraphicsTypes.h:226
+
virtual void CopyData(IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size) override=0
Base implementation of IBuffer::CopyData(); validates input parameters.
Definition: BufferBase.h:162
+
A buffer can be bound as a uniform buffer.
Definition: GraphicsTypes.h:66
+
std::unique_ptr< BufferViewImplType, STDDeleter< BufferViewImplType, TBuffViewObjAllocator > > m_pDefaultUAV
Default UAV addressing the entire buffer.
Definition: BufferBase.h:147
+
A resource can be mapped for writing.
Definition: GraphicsTypes.h:115
+
std::unique_ptr< BufferViewImplType, STDDeleter< BufferViewImplType, TBuffViewObjAllocator > > m_pDefaultSRV
Default SRV addressing the entire buffer.
Definition: BufferBase.h:150
+
Uint32 NumComponents
Number of components. Allowed values: 1, 2, 3, 4. For a formatted buffer, this value cannot be 0...
Definition: Buffer.h:88
+
BufferFormat Format
Buffer format.
Definition: Buffer.h:124
+
Uint32 BindFlags
Buffer bind flags, see Diligent::BIND_FLAGS for details.
Definition: Buffer.h:68
+
Resource is mapped for reading and writing. D3D11 counterpart: D3D11_MAP_READ_WRITE. OpenGL counterpart: GL_MAP_WRITE_BIT | GL_MAP_READ_BIT.
Definition: GraphicsTypes.h:137
+
Buffer view interface.
Definition: BufferView.h:91
+
Template class implementing base functionality for a device object.
Definition: DeviceObjectBase.h:42
+
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:125
+
A resource that can be read by the GPU and written at least once per frame by the CPU...
Definition: GraphicsTypes.h:99
+
BUFFER_VIEW_TYPE
Buffer view type.
Definition: GraphicsTypes.h:219
+
+ + + + + diff --git a/doc/html/_buffer_d3_d11_8h_source.html b/doc/html/_buffer_d3_d11_8h_source.html new file mode 100644 index 00000000..9de1338c --- /dev/null +++ b/doc/html/_buffer_d3_d11_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/interface/BufferD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BufferD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Buffer.h"
30 
31 namespace Diligent
32 {
33 
34 // {4A696D2E-44BB-4C4B-9DE2-3AF7C94DCFC0}
35 static constexpr INTERFACE_ID IID_BufferD3D11 =
36 { 0x4a696d2e, 0x44bb, 0x4c4b, { 0x9d, 0xe2, 0x3a, 0xf7, 0xc9, 0x4d, 0xcf, 0xc0 } };
37 
39 class IBufferD3D11 : public IBuffer
40 {
41 public:
42 
44 
47  virtual ID3D11Buffer *GetD3D11Buffer() = 0;
48 };
49 
50 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual ID3D11Buffer * GetD3D11Buffer()=0
Returns a pointer to the ID3D11Buffer interface of the internal Direct3D11 object.
+
Buffer interface.
Definition: Buffer.h:200
+
Interface to the buffer object implemented in D3D11.
Definition: BufferD3D11.h:39
+
+ + + + + diff --git a/doc/html/_buffer_d3_d11_impl_8h_source.html b/doc/html/_buffer_d3_d11_impl_8h_source.html new file mode 100644 index 00000000..ab7ad953 --- /dev/null +++ b/doc/html/_buffer_d3_d11_impl_8h_source.html @@ -0,0 +1,100 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/BufferD3D11Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BufferD3D11Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BufferD3D11.h"
30 #include "RenderDeviceD3D11.h"
31 #include "BufferBase.h"
32 #include "BufferViewD3D11Impl.h"
33 
34 namespace Diligent
35 {
36 
38 
39 enum class D3D11BufferState
40 {
41  Undefined = 0x00,
42  ShaderResource = 0x01,
43  ConstantBuffer = 0x02,
44  VertexBuffer = 0x04,
45  IndexBuffer = 0x08,
46  UnorderedAccess = 0x10,
47  AnyInput = ShaderResource | ConstantBuffer | VertexBuffer | IndexBuffer
48 };
49 
51 class BufferD3D11Impl : public BufferBase<IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator>
52 {
53 public:
55  BufferD3D11Impl(IReferenceCounters *pRefCounters,
56  FixedBlockMemoryAllocator &BuffViewObjMemAllocator,
57  class RenderDeviceD3D11Impl *pDeviceD3D11,
58  const BufferDesc& BuffDesc,
59  const BufferData &BuffData = BufferData());
60  BufferD3D11Impl(IReferenceCounters *pRefCounters,
61  FixedBlockMemoryAllocator &BuffViewObjMemAllocator,
62  class RenderDeviceD3D11Impl *pDeviceD3D11,
63  const BufferDesc& BuffDesc,
64  ID3D11Buffer *pd3d11Buffer);
65 
66  ~BufferD3D11Impl();
67 
68  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final;
69 
70  virtual void UpdateData( IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData )override final;
71  virtual void CopyData( IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size )override final;
72  virtual void Map( IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData )override final;
73  virtual void Unmap( IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags )override final;
74  virtual ID3D11Buffer *GetD3D11Buffer()override final{ return m_pd3d11Buffer; }
75 
76  virtual void* GetNativeHandle()override final { return GetD3D11Buffer(); }
77 
78  void ResetState(D3D11BufferState State){m_State = static_cast<Uint32>(State);}
79  void AddState(D3D11BufferState State){m_State |= static_cast<Uint32>(State);}
80  void ClearState(D3D11BufferState State){m_State &= ~static_cast<Uint32>(State);}
81  bool CheckState(D3D11BufferState State){return (m_State & static_cast<Uint32>(State)) ? true : false;}
82 
83 private:
84  virtual void CreateViewInternal( const struct BufferViewDesc &ViewDesc, IBufferView **ppView, bool bIsDefaultView )override;
85 
86  void CreateUAV( struct BufferViewDesc &UAVDesc, ID3D11UnorderedAccessView **ppD3D11UAV );
87  void CreateSRV( struct BufferViewDesc &SRVDesc, ID3D11ShaderResourceView **ppD3D11SRV );
88 
89  friend class DeviceContextD3D11Impl;
90  CComPtr<ID3D11Buffer> m_pd3d11Buffer;
91 
92  Uint32 m_State = static_cast<Uint32>(D3D11BufferState::Undefined);
93 };
94 
95 }
Describes the buffer initial data.
Definition: Buffer.h:176
+
virtual void CopyData(IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size) override final
Base implementation of IBuffer::CopyData(); validates input parameters.
Definition: BufferD3D11Impl.cpp:175
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Template class implementing base functionality for a buffer object.
Definition: BufferBase.h:46
+
virtual void Unmap(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags) override final
Base implementation of IBuffer::Unmap()
Definition: BufferD3D11Impl.cpp:209
+
virtual void UpdateData(IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData) override final
Base implementation of IBuffer::UpdateData(); validates input parameters.
Definition: BufferD3D11Impl.cpp:158
+
Buffer interface.
Definition: Buffer.h:200
+
Device context interface.
Definition: DeviceContext.h:443
+
virtual void * GetNativeHandle() override final
Returns native buffer handle specific to the underlying graphics API.
Definition: BufferD3D11Impl.h:76
+
Buffer description.
Definition: Buffer.h:57
+
Memory allocator that allocates memory in a fixed-size chunks.
Definition: FixedBlockMemoryAllocator.h:50
+
Implementation of the Diligent::IRenderDeviceD3D11 interface.
Definition: RenderDeviceD3D11Impl.h:38
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
Queries the specific interface, see IObject::QueryInterface() for details.
+
virtual ID3D11Buffer * GetD3D11Buffer() override final
Returns a pointer to the ID3D11Buffer interface of the internal Direct3D11 object.
Definition: BufferD3D11Impl.h:74
+
Implementation of the Diligent::IBufferD3D11 interface.
Definition: BufferD3D11Impl.h:51
+
virtual void Map(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData) override final
Base implementation of IBuffer::Map(); validates input parameters.
Definition: BufferD3D11Impl.cpp:192
+
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:125
+
+ + + + + diff --git a/doc/html/_buffer_d3_d12_8h_source.html b/doc/html/_buffer_d3_d12_8h_source.html new file mode 100644 index 00000000..9dcc0d82 --- /dev/null +++ b/doc/html/_buffer_d3_d12_8h_source.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/interface/BufferD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BufferD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Buffer.h"
30 
31 namespace Diligent
32 {
33 
34 // {3E9B15ED-A289-48DC-8214-C6E3E6177378}
35 static constexpr INTERFACE_ID IID_BufferD3D12 =
36 { 0x3e9b15ed, 0xa289, 0x48dc, { 0x82, 0x14, 0xc6, 0xe3, 0xe6, 0x17, 0x73, 0x78 } };
37 
39 class IBufferD3D12 : public IBuffer
40 {
41 public:
42 
44 
52  virtual ID3D12Resource* GetD3D12Buffer(size_t &DataStartByteOffset, Uint32 ContextId) = 0;
53 
55 
57  virtual void SetD3D12ResourceState(D3D12_RESOURCE_STATES state) = 0;
58 };
59 
60 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual ID3D12Resource * GetD3D12Buffer(size_t &DataStartByteOffset, Uint32 ContextId)=0
Returns a pointer to the ID3D12Resource interface of the internal Direct3D12 object.
+
virtual void SetD3D12ResourceState(D3D12_RESOURCE_STATES state)=0
Sets the buffer usage state.
+
Buffer interface.
Definition: Buffer.h:200
+
Interface to the buffer object implemented in D3D12.
Definition: BufferD3D12.h:39
+
+ + + + + diff --git a/doc/html/_buffer_d3_d12_impl_8h_source.html b/doc/html/_buffer_d3_d12_impl_8h_source.html new file mode 100644 index 00000000..ca351721 --- /dev/null +++ b/doc/html/_buffer_d3_d12_impl_8h_source.html @@ -0,0 +1,108 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/BufferD3D12Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BufferD3D12Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BufferD3D12.h"
30 #include "RenderDeviceD3D12.h"
31 #include "BufferBase.h"
32 #include "BufferViewD3D12Impl.h"
33 #include "D3D12ResourceBase.h"
34 #include "DynamicUploadHeap.h"
35 
36 namespace Diligent
37 {
38 
39 class FixedBlockMemoryAllocator;
40 
42 class BufferD3D12Impl : public BufferBase<IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator>, public D3D12ResourceBase
43 {
44 public:
46  BufferD3D12Impl(IReferenceCounters *pRefCounters,
47  FixedBlockMemoryAllocator &BuffViewObjMemAllocator,
48  class RenderDeviceD3D12Impl *pDeviceD3D12,
49  const BufferDesc& BuffDesc,
50  const BufferData &BuffData = BufferData());
51  BufferD3D12Impl(IReferenceCounters *pRefCounters,
52  FixedBlockMemoryAllocator &BuffViewObjMemAllocator,
53  class RenderDeviceD3D12Impl *pDeviceD3D12,
54  const BufferDesc& BuffDesc,
55  ID3D12Resource *pd3d12Buffer);
56  ~BufferD3D12Impl();
57 
58  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override;
59 
60  virtual void UpdateData( IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData )override;
61  virtual void CopyData( IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size )override;
62  virtual void Map( IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData )override;
63  virtual void Unmap( IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags )override;
64 
65 #ifdef _DEBUG
66  void DbgVerifyDynamicAllocation(Uint32 ContextId);
67 #endif
68 
69  virtual ID3D12Resource *GetD3D12Buffer(size_t &DataStartByteOffset, Uint32 ContextId)override final
70  {
71  auto *pd3d12Resource = GetD3D12Resource();
72  if(pd3d12Resource != nullptr)
73  {
74  VERIFY(m_Desc.Usage != USAGE_DYNAMIC || (m_Desc.BindFlags | (BIND_SHADER_RESOURCE|BIND_UNORDERED_ACCESS)) != 0, "Expected non-dynamic buffer or a buffer with SRV or UAV bind flags");
75  DataStartByteOffset = 0;
76  return pd3d12Resource;
77  }
78  else
79  {
80  VERIFY(m_Desc.Usage == USAGE_DYNAMIC, "Dynamic buffer is expected");
81 
82 #ifdef _DEBUG
83  DbgVerifyDynamicAllocation(ContextId);
84 #endif
85  DataStartByteOffset = m_DynamicData[ContextId].Offset;
86  return m_DynamicData[ContextId].pBuffer;
87  }
88  }
89 
90  virtual void* GetNativeHandle()override final
91  {
92  VERIFY(GetD3D12Resource() != nullptr, "The buffer is dynamic and has no pointer to D3D12 resource");
93  size_t DataStartByteOffset = 0;
94  auto *pd3d12Buffer = GetD3D12Buffer(DataStartByteOffset, 0);
95  VERIFY(DataStartByteOffset == 0, "0 offset expected");
96  return pd3d12Buffer;
97  }
98 
99  virtual void SetD3D12ResourceState(D3D12_RESOURCE_STATES state)override final{ SetState(state); }
100 
101  D3D12_GPU_VIRTUAL_ADDRESS GetGPUAddress(Uint32 ContextId)
102  {
103  if(m_Desc.Usage == USAGE_DYNAMIC)
104  {
105 #ifdef _DEBUG
106  DbgVerifyDynamicAllocation(ContextId);
107 #endif
108  return m_DynamicData[ContextId].GPUAddress;
109  }
110  else
111  {
112  return GetD3D12Resource()->GetGPUVirtualAddress();
113  }
114  }
115 
116  D3D12_CPU_DESCRIPTOR_HANDLE GetCBVHandle(){return m_CBVDescriptorAllocation.GetCpuHandle();}
117 
118 private:
119  virtual void CreateViewInternal( const struct BufferViewDesc &ViewDesc, IBufferView **ppView, bool bIsDefaultView )override;
120 
121  void CreateUAV( struct BufferViewDesc &UAVDesc, D3D12_CPU_DESCRIPTOR_HANDLE UAVDescriptor );
122  void CreateSRV( struct BufferViewDesc &SRVDesc, D3D12_CPU_DESCRIPTOR_HANDLE SRVDescriptor );
123  void CreateCBV( D3D12_CPU_DESCRIPTOR_HANDLE CBVDescriptor );
124  DescriptorHeapAllocation m_CBVDescriptorAllocation;
125 
126 #ifdef _DEBUG
127  std::vector< std::pair<MAP_TYPE, Uint32>, STDAllocatorRawMem<std::pair<MAP_TYPE, Uint32>> > m_DbgMapType;
128 #endif
129 
130  friend class DeviceContextD3D12Impl;
131  // Array of dynamic allocations for every device context
132  std::vector<DynamicAllocation, STDAllocatorRawMem<DynamicAllocation> > m_DynamicData;
133 };
134 
135 }
Describes the buffer initial data.
Definition: Buffer.h:176
+
virtual ID3D12Resource * GetD3D12Buffer(size_t &DataStartByteOffset, Uint32 ContextId) override final
Returns a pointer to the ID3D12Resource interface of the internal Direct3D12 object.
Definition: BufferD3D12Impl.h:69
+
Implementation of the Diligent::IBufferD3D12 interface.
Definition: BufferD3D12Impl.h:42
+
A buffer or a texture can be bound as a shader resource.
Definition: GraphicsTypes.h:68
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Base implementation of a D3D12 resource.
Definition: D3D12ResourceBase.h:33
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
Queries the specific interface, see IObject::QueryInterface() for details.
+
USAGE Usage
Buffer usage, see Diligent::USAGE for details.
Definition: Buffer.h:71
+
virtual void UpdateData(IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData) override
Base implementation of IBuffer::UpdateData(); validates input parameters.
Definition: BufferD3D12Impl.cpp:272
+
Template class implementing base functionality for a buffer object.
Definition: BufferBase.h:46
+
Buffer interface.
Definition: Buffer.h:200
+
Device context interface.
Definition: DeviceContext.h:443
+
virtual void * GetNativeHandle() override final
Returns native buffer handle specific to the underlying graphics API.
Definition: BufferD3D12Impl.h:90
+
Buffer description.
Definition: Buffer.h:57
+
Memory allocator that allocates memory in a fixed-size chunks.
Definition: FixedBlockMemoryAllocator.h:50
+
virtual void Map(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData) override
Base implementation of IBuffer::Map(); validates input parameters.
Definition: BufferD3D12Impl.cpp:289
+
BufferDesc m_Desc
Object description.
Definition: DeviceObjectBase.h:138
+
virtual void CopyData(IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size) override
Base implementation of IBuffer::CopyData(); validates input parameters.
Definition: BufferD3D12Impl.cpp:282
+
A buffer or a texture can be bound as an unordered access view.
Definition: GraphicsTypes.h:73
+
Uint32 BindFlags
Buffer bind flags, see Diligent::BIND_FLAGS for details.
Definition: Buffer.h:68
+
virtual void SetD3D12ResourceState(D3D12_RESOURCE_STATES state) override final
Sets the buffer usage state.
Definition: BufferD3D12Impl.h:99
+
virtual void Unmap(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags) override
Base implementation of IBuffer::Unmap()
Definition: BufferD3D12Impl.cpp:344
+
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:125
+
A resource that can be read by the GPU and written at least once per frame by the CPU...
Definition: GraphicsTypes.h:99
+
Implementation of the Diligent::IRenderDeviceD3D12 interface.
Definition: RenderDeviceD3D12Impl.h:43
+
+ + + + + diff --git a/doc/html/_buffer_g_l_8h_source.html b/doc/html/_buffer_g_l_8h_source.html new file mode 100644 index 00000000..28f3a7f3 --- /dev/null +++ b/doc/html/_buffer_g_l_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/interface/BufferGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BufferGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Buffer.h"
30 
31 namespace Diligent
32 {
33 
34 // {08DF7319-F425-4EC7-8D2B-1B3FC0BDDBB4}
35 static constexpr INTERFACE_ID IID_BufferGL =
36 { 0x8df7319, 0xf425, 0x4ec7, { 0x8d, 0x2b, 0x1b, 0x3f, 0xc0, 0xbd, 0xdb, 0xb4 } };
37 
39 class IBufferGL : public IBuffer
40 {
41 public:
43  virtual GLuint GetGLBufferHandle() = 0;
44 };
45 
46 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Buffer interface.
Definition: Buffer.h:200
+
virtual GLuint GetGLBufferHandle()=0
Returns OpenGL buffer handle.
+
Interface to the buffer object implemented in OpenGL.
Definition: BufferGL.h:39
+
+ + + + + diff --git a/doc/html/_buffer_g_l_impl_8h_source.html b/doc/html/_buffer_g_l_impl_8h_source.html new file mode 100644 index 00000000..d0a904b6 --- /dev/null +++ b/doc/html/_buffer_g_l_impl_8h_source.html @@ -0,0 +1,103 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/BufferGLImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BufferGLImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BufferGL.h"
27 #include "BufferBase.h"
28 #include "GLObjectWrapper.h"
29 #include "AsyncWritableResource.h"
30 #include "BaseInterfacesGL.h"
31 #include "BufferViewGLImpl.h"
32 
33 
34 namespace Diligent
35 {
36 
37 class FixedBlockMemoryAllocator;
38 
40 class BufferGLImpl : public BufferBase<IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator>, public AsyncWritableResource
41 {
42 public:
44 
45  BufferGLImpl(IReferenceCounters *pRefCounters,
46  FixedBlockMemoryAllocator &BuffViewObjMemAllocator,
47  class RenderDeviceGLImpl *pDeviceGL,
48  const BufferDesc& BuffDesc,
49  const BufferData& BuffData,
50  bool bIsDeviceInternal);
51  BufferGLImpl(IReferenceCounters *pRefCounters,
52  FixedBlockMemoryAllocator &BuffViewObjMemAllocator,
53  class RenderDeviceGLImpl *pDeviceGL,
54  const BufferDesc& BuffDesc,
55  GLuint GLHandle,
56  bool bIsDeviceInternal);
57  ~BufferGLImpl();
58 
60  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override;
61 
62  virtual void UpdateData(IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData)override;
63  virtual void CopyData( IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size )override;
64  virtual void Map( IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData )override;
65  virtual void Unmap( IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags )override;
66 
67  void BufferMemoryBarrier( Uint32 RequiredBarriers, class GLContextState &GLContextState );
68 
69  const GLObjectWrappers::GLBufferObj& GetGLHandle(){ return m_GlBuffer; }
70 
71  virtual GLuint GetGLBufferHandle()override final { return GetGLHandle(); }
72  virtual void* GetNativeHandle()override final { return reinterpret_cast<void*>(static_cast<size_t>(GetGLBufferHandle())); }
73 
74 private:
75  virtual void CreateViewInternal( const struct BufferViewDesc &ViewDesc, class IBufferView **ppView, bool bIsDefaultView )override;
76 
77  friend class DeviceContextGLImpl;
78  friend class VAOCache;
79 
80  GLObjectWrappers::GLBufferObj m_GlBuffer;
81  Uint32 m_uiMapTarget;
82  const GLenum m_GLUsageHint;
83  const Bool m_bUseMapWriteDiscardBugWA;
84 };
85 
86 }
virtual void * GetNativeHandle() override final
Returns native buffer handle specific to the underlying graphics API.
Definition: BufferGLImpl.h:72
+
virtual void Unmap(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags) override
Base implementation of IBuffer::Unmap()
Definition: BufferGLImpl.cpp:314
+
Buffer view description.
Definition: BufferView.h:39
+
Describes the buffer initial data.
Definition: Buffer.h:176
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Implementation of the Diligent::IDeviceContextGL interface.
Definition: DeviceContextGLImpl.h:35
+
Template class implementing base functionality for a buffer object.
Definition: BufferBase.h:46
+
virtual GLuint GetGLBufferHandle() override final
Returns OpenGL buffer handle.
Definition: BufferGLImpl.h:71
+
Implementation of the render device interface in OpenGL.
Definition: RenderDeviceGLImpl.h:53
+
Buffer interface.
Definition: Buffer.h:200
+
Device context interface.
Definition: DeviceContext.h:443
+
virtual void Map(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData) override
Base implementation of IBuffer::Map(); validates input parameters.
Definition: BufferGLImpl.cpp:230
+
Buffer description.
Definition: Buffer.h:57
+
Memory allocator that allocates memory in a fixed-size chunks.
Definition: FixedBlockMemoryAllocator.h:50
+
Implementation of the Diligent::IBufferGL interface.
Definition: BufferGLImpl.h:40
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
Queries the specific interface, see IObject::QueryInterface() for details.
+
Buffer view interface.
Definition: BufferView.h:91
+
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:125
+
virtual void CopyData(IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size) override
Base implementation of IBuffer::CopyData(); validates input parameters.
Definition: BufferGLImpl.cpp:200
+
virtual void UpdateData(IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData) override
Base implementation of IBuffer::UpdateData(); validates input parameters.
Definition: BufferGLImpl.cpp:177
+
+ + + + + diff --git a/doc/html/_buffer_view_8h_source.html b/doc/html/_buffer_view_8h_source.html new file mode 100644 index 00000000..0c6e57b4 --- /dev/null +++ b/doc/html/_buffer_view_8h_source.html @@ -0,0 +1,99 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/BufferView.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BufferView.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DeviceObject.h"
30 
31 namespace Diligent
32 {
33 
34 // {E2E83490-E9D2-495B-9A83-ABB413A38B07}
35 static constexpr INTERFACE_ID IID_BufferView =
36 { 0xe2e83490, 0xe9d2, 0x495b, { 0x9a, 0x83, 0xab, 0xb4, 0x13, 0xa3, 0x8b, 0x7 } };
37 
40 {
43 
46  Uint32 ByteOffset;
47 
49  Uint32 ByteWidth;
50 
52 
61  ByteOffset(0),
62  ByteWidth(0)
63  {
64  }
65 
67 
74  bool operator == (const BufferViewDesc& RHS)const
75  {
76  // Name is primarily used for debug purposes and does not affect the view.
77  // It is ignored in comparison operation.
78  return //strcmp(Name, RHS.Name) == 0 &&
79  ViewType == RHS.ViewType &&
80  ByteOffset== RHS.ByteOffset &&
81  ByteWidth == RHS.ByteWidth;
82  }
83 };
84 
86 
91 class IBufferView : public IDeviceObject
92 {
93 public:
95  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface ) = 0;
96 
98  virtual const BufferViewDesc& GetDesc()const = 0;
99 
101 
104  virtual IBuffer* GetBuffer() = 0;
105 };
106 
107 }
virtual IBuffer * GetBuffer()=0
Returns pointer to the referenced buffer object.
+
BUFFER_VIEW_TYPE ViewType
View type. See Diligent::BUFFER_VIEW_TYPE for details.
Definition: BufferView.h:42
+
virtual const BufferViewDesc & GetDesc() const =0
Returns the buffer view description used to create the object.
+
Buffer view description.
Definition: BufferView.h:39
+
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
Undefined view type.
Definition: GraphicsTypes.h:222
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Uint32 ByteOffset
Offset in bytes from the beginnig of the buffer to the start of the buffer region referenced by the v...
Definition: BufferView.h:46
+
bool operator==(const BufferViewDesc &RHS) const
Comparison operator tests if two structures are equivalent.
Definition: BufferView.h:74
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
Queries the specific interface, see IObject::QueryInterface() for details.
+
Buffer interface.
Definition: Buffer.h:200
+
Uint32 ByteWidth
Size in bytes of the referenced buffer region.
Definition: BufferView.h:49
+
Describes common device object attributes.
Definition: GraphicsTypes.h:900
+
BufferViewDesc()
Initializes the structure members with default values.
Definition: BufferView.h:59
+
Buffer view interface.
Definition: BufferView.h:91
+
BUFFER_VIEW_TYPE
Buffer view type.
Definition: GraphicsTypes.h:219
+
+ + + + + diff --git a/doc/html/_buffer_view_base_8h_source.html b/doc/html/_buffer_view_base_8h_source.html new file mode 100644 index 00000000..ad05f0ec --- /dev/null +++ b/doc/html/_buffer_view_base_8h_source.html @@ -0,0 +1,94 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/BufferViewBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BufferViewBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BufferView.h"
30 #include "DeviceObjectBase.h"
31 #include "GraphicsTypes.h"
32 #include "RefCntAutoPtr.h"
33 
34 namespace Diligent
35 {
36 
37 class IRenderDevice;
38 class IBuffer;
39 
41 
45 template<class BaseInterface>
46 class BufferViewBase : public DeviceObjectBase<BaseInterface, BufferViewDesc>
47 {
48 public:
50 
58  BufferViewBase( IReferenceCounters *pRefCounters,
59  IRenderDevice *pDevice,
60  const BufferViewDesc& ViewDesc,
61  IBuffer *pBuffer,
62  bool bIsDefaultView ) :
63  // Default views are created as part of the buffer, so we cannot not keep strong
64  // reference to the buffer to avoid cyclic links. Instead, we will attach to the
65  // reference counters of the buffer.
66  TDeviceObjectBase( pRefCounters, pDevice, ViewDesc),
67  m_pBuffer( pBuffer ),
68  // For non-default view, we will keep strong reference to buffer
69  m_spBuffer(bIsDefaultView ? nullptr : pBuffer)
70  {}
71 
72  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_BufferView, TDeviceObjectBase )
73 
74 
75  virtual IBuffer* GetBuffer()override final
76  {
77  return m_pBuffer;
78  }
79 
80 protected:
81 
84 
88 };
89 
90 }
IBuffer *const m_pBuffer
Pointer to the buffer.
Definition: BufferViewBase.h:83
+
Buffer view description.
Definition: BufferView.h:39
+
Render device interface.
Definition: RenderDevice.h:55
+
RefCntAutoPtr< IBuffer > m_spBuffer
Strong reference to the buffer. Used for non-default views to keep the buffer alive.
Definition: BufferViewBase.h:87
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Buffer interface.
Definition: Buffer.h:200
+
virtual IBuffer * GetBuffer() override final
Implementation of IBufferView::GetBuffer()
Definition: BufferViewBase.h:75
+
Template class that implements reference counting.
Definition: RefCntAutoPtr.h:71
+
Template class implementing base functionality for a buffer view object.
Definition: BufferViewBase.h:46
+
BufferViewBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ViewDesc, IBuffer *pBuffer, bool bIsDefaultView)
Definition: BufferViewBase.h:58
+
Template class implementing base functionality for a device object.
Definition: DeviceObjectBase.h:42
+
+ + + + + diff --git a/doc/html/_buffer_view_d3_d11_8h_source.html b/doc/html/_buffer_view_d3_d11_8h_source.html new file mode 100644 index 00000000..eb293a2c --- /dev/null +++ b/doc/html/_buffer_view_d3_d11_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/interface/BufferViewD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BufferViewD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BufferView.h"
30 
31 namespace Diligent
32 {
33 
34 // {6ABA95FC-CD7D-4C03-8CAE-AFC45F9696B7}
35 static constexpr INTERFACE_ID IID_BufferViewD3D11 =
36 { 0x6aba95fc, 0xcd7d, 0x4c03, { 0x8c, 0xae, 0xaf, 0xc4, 0x5f, 0x96, 0x96, 0xb7 } };
37 
40 {
41 public:
42 
44 
47  virtual ID3D11View* GetD3D11View() = 0;
48 };
49 
50 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Interface to the buffer view object implemented in D3D11.
Definition: BufferViewD3D11.h:39
+
virtual ID3D11View * GetD3D11View()=0
Returns a pointer to the ID3D11View interface of the internal Direct3D11 object.
+
Buffer view interface.
Definition: BufferView.h:91
+
+ + + + + diff --git a/doc/html/_buffer_view_d3_d11_impl_8h_source.html b/doc/html/_buffer_view_d3_d11_impl_8h_source.html new file mode 100644 index 00000000..944e2d45 --- /dev/null +++ b/doc/html/_buffer_view_d3_d11_impl_8h_source.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/BufferViewD3D11Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BufferViewD3D11Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BufferViewD3D11.h"
30 #include "RenderDeviceD3D11.h"
31 #include "BufferViewBase.h"
32 
33 namespace Diligent
34 {
35 
36 class FixedBlockMemoryAllocator;
38 class BufferViewD3D11Impl : public BufferViewBase<IBufferViewD3D11>
39 {
40 public:
42 
43  BufferViewD3D11Impl( IReferenceCounters *pRefCounters,
44  IRenderDevice *pDevice,
45  const BufferViewDesc& ViewDesc,
46  class IBuffer *pBuffer,
47  ID3D11View* pD3D11View,
48  bool bIsDefaultView);
49 
50  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface ) final;
51 
52  virtual ID3D11View* GetD3D11View()override final
53  {
54  return m_pD3D11View;
55  }
56 
57 protected:
58  CComPtr<ID3D11View> m_pD3D11View;
59 };
60 
61 }
Buffer view description.
Definition: BufferView.h:39
+
Render device interface.
Definition: RenderDevice.h:55
+
CComPtr< ID3D11View > m_pD3D11View
D3D11 view.
Definition: BufferViewD3D11Impl.h:58
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) final
Queries the specific interface, see IObject::QueryInterface() for details.
+
Buffer interface.
Definition: Buffer.h:200
+
Template class implementing base functionality for a buffer view object.
Definition: BufferViewBase.h:46
+
Implementation of the Diligent::IBufferViewD3D11 interface.
Definition: BufferViewD3D11Impl.h:38
+
virtual ID3D11View * GetD3D11View() override final
Returns a pointer to the ID3D11View interface of the internal Direct3D11 object.
Definition: BufferViewD3D11Impl.h:52
+
+ + + + + diff --git a/doc/html/_buffer_view_d3_d12_8h_source.html b/doc/html/_buffer_view_d3_d12_8h_source.html new file mode 100644 index 00000000..af0d6874 --- /dev/null +++ b/doc/html/_buffer_view_d3_d12_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/interface/BufferViewD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BufferViewD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BufferView.h"
30 
31 namespace Diligent
32 {
33 
34 // {09643F2F-40D4-4076-B086-9E5CDC2CC4FC}
35 static constexpr INTERFACE_ID IID_BufferViewD3D12 =
36 { 0x9643f2f, 0x40d4, 0x4076, { 0xb0, 0x86, 0x9e, 0x5c, 0xdc, 0x2c, 0xc4, 0xfc } };
37 
40 {
41 public:
42 
44  virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle() = 0;
45 };
46 
47 }
virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle()=0
Returns CPU descriptor handle of the buffer view.
+
Interface to the buffer view object implemented in D3D12.
Definition: BufferViewD3D12.h:39
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Buffer view interface.
Definition: BufferView.h:91
+
+ + + + + diff --git a/doc/html/_buffer_view_d3_d12_impl_8h_source.html b/doc/html/_buffer_view_d3_d12_impl_8h_source.html new file mode 100644 index 00000000..8d11abc3 --- /dev/null +++ b/doc/html/_buffer_view_d3_d12_impl_8h_source.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/BufferViewD3D12Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BufferViewD3D12Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BufferViewD3D12.h"
30 #include "RenderDeviceD3D12.h"
31 #include "BufferViewBase.h"
32 #include "DescriptorHeap.h"
33 
34 namespace Diligent
35 {
36 
37 class FixedBlockMemoryAllocator;
39 class BufferViewD3D12Impl : public BufferViewBase<IBufferViewD3D12>
40 {
41 public:
43 
44  BufferViewD3D12Impl( IReferenceCounters *pRefCounters,
45  IRenderDevice *pDevice,
46  const BufferViewDesc& ViewDesc,
47  class IBuffer *pBuffer,
48  DescriptorHeapAllocation &&HandleAlloc,
49  bool bIsDefaultView);
50 
51  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface );
52 
53  virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle()override{return m_DescriptorHandle.GetCpuHandle();}
54 
55 protected:
56  // Allocation in a CPU-only descriptor heap
57  DescriptorHeapAllocation m_DescriptorHandle;
58 };
59 
60 }
Buffer view description.
Definition: BufferView.h:39
+
Render device interface.
Definition: RenderDevice.h:55
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)
Queries the specific interface, see IObject::QueryInterface() for details.
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Buffer interface.
Definition: Buffer.h:200
+
Implementation of the Diligent::IBufferViewD3D12 interface.
Definition: BufferViewD3D12Impl.h:39
+
virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle() override
Returns CPU descriptor handle of the buffer view.
Definition: BufferViewD3D12Impl.h:53
+
Template class implementing base functionality for a buffer view object.
Definition: BufferViewBase.h:46
+
+ + + + + diff --git a/doc/html/_buffer_view_g_l_8h_source.html b/doc/html/_buffer_view_g_l_8h_source.html new file mode 100644 index 00000000..c5d19d18 --- /dev/null +++ b/doc/html/_buffer_view_g_l_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/interface/BufferViewGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BufferViewGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BufferView.h"
30 
31 namespace Diligent
32 {
33 
34 // {927A865B-3CEB-4743-9A22-2A1397A73E6D}
35 static constexpr INTERFACE_ID IID_BufferViewGL =
36 { 0x927a865b, 0x3ceb, 0x4743, { 0x9a, 0x22, 0x2a, 0x13, 0x97, 0xa7, 0x3e, 0x6d } };
37 
39 class IBufferViewGL : public IBufferView
40 {
41 public:
42  //const GLObjectWrappers::GLTextureObj& GetTexBufferHandle(){ return m_GLTexBuffer; }
43 };
44 
45 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Interface to the buffer view object implemented in OpenGL.
Definition: BufferViewGL.h:39
+
Buffer view interface.
Definition: BufferView.h:91
+
+ + + + + diff --git a/doc/html/_buffer_view_g_l_impl_8h_source.html b/doc/html/_buffer_view_g_l_impl_8h_source.html new file mode 100644 index 00000000..84e0f057 --- /dev/null +++ b/doc/html/_buffer_view_g_l_impl_8h_source.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/BufferViewGLImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BufferViewGLImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BufferViewGL.h"
27 #include "BaseInterfacesGL.h"
28 #include "BufferViewBase.h"
29 #include "RenderDevice.h"
30 #include "GLObjectWrapper.h"
31 
32 namespace Diligent
33 {
34 
35 class FixedBlockMemoryAllocator;
36 class IRenderDevice;
37 class IDeviceContext;
38 class BufferGLImpl;
39 struct BufferViewDesc;
40 
42 class BufferViewGLImpl : public BufferViewBase<IBufferViewGL>
43 {
44 public:
46 
47  BufferViewGLImpl( IReferenceCounters *pRefCounters,
48  IRenderDevice *pDevice,
49  IDeviceContext *pContext,
50  const BufferViewDesc& ViewDesc,
51  BufferGLImpl *pBuffer,
52  bool bIsDefaultView);
53 
55  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface );
56 
57  const GLObjectWrappers::GLTextureObj& GetTexBufferHandle(){ return m_GLTexBuffer; }
58 
59 private:
60  GLObjectWrappers::GLTextureObj m_GLTexBuffer;
61 };
62 
63 }
Buffer view description.
Definition: BufferView.h:39
+
Render device interface.
Definition: RenderDevice.h:55
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Implementation of the Diligent::IBufferViewGL interface.
Definition: BufferViewGLImpl.h:42
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)
Queries the specific interface, see IObject::QueryInterface() for details.
+
Device context interface.
Definition: DeviceContext.h:443
+
Implementation of the Diligent::IBufferGL interface.
Definition: BufferGLImpl.h:40
+
Template class implementing base functionality for a buffer view object.
Definition: BufferViewBase.h:46
+
+ + + + + diff --git a/doc/html/_command_context_8h_source.html b/doc/html/_command_context_8h_source.html new file mode 100644 index 00000000..7ba59af0 --- /dev/null +++ b/doc/html/_command_context_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/CommandContext.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
CommandContext.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 
25 #pragma once
26 
27 #include <vector>
28 
29 #include "D3D12ResourceBase.h"
30 #include "TextureViewD3D12.h"
31 #include "TextureD3D12.h"
32 #include "BufferD3D12.h"
33 #include "DescriptorHeap.h"
34 
35 namespace Diligent
36 {
37 
38 
39 struct DWParam
40 {
41  DWParam( FLOAT f ) : Float(f) {}
42  DWParam( UINT u ) : Uint(u) {}
43  DWParam( INT i ) : Int(i) {}
44 
45  void operator= ( FLOAT f ) { Float = f; }
46  void operator= ( UINT u ) { Uint = u; }
47  void operator= ( INT i ) { Int = i; }
48 
49  union
50  {
51  FLOAT Float;
52  UINT Uint;
53  INT Int;
54  };
55 };
56 
57 
58 class CommandContext
59 {
60 public:
61 
62  CommandContext( IMemoryAllocator &MemAllocator,
63  class CommandListManager& CmdListManager,
64  GPUDescriptorHeap GPUDescriptorHeaps[],
65  const Uint32 DynamicDescriptorAllocationChunkSize[]);
66 
67  ~CommandContext(void);
68 
69  // Submit the command buffer and reset it. This is encouraged to keep the GPU busy and reduce latency.
70  // Taking too long to build command lists and submit them can idle the GPU.
71  ID3D12GraphicsCommandList* Close(ID3D12CommandAllocator **ppAllocator);
72  void Reset( CommandListManager& CmdListManager );
73 
74  class GraphicsContext& AsGraphicsContext();
75  class ComputeContext& AsComputeContext();
76 
77  void ClearUAVFloat( ITextureViewD3D12 *pTexView, const float* Color );
78  void ClearUAVUint( ITextureViewD3D12 *pTexView, const UINT *Color );
79 
80  void CopyResource(ID3D12Resource *pDstRes, ID3D12Resource *pSrcRes)
81  {
82  m_pCommandList->CopyResource(pDstRes, pSrcRes);
83  }
84 
85  void TransitionResource(ITextureD3D12 *pTexture, D3D12_RESOURCE_STATES NewState, bool FlushImmediate = false);
86  void TransitionResource(IBufferD3D12 *pBuffer, D3D12_RESOURCE_STATES NewState, bool FlushImmediate = false);
87  //void BeginResourceTransition(GpuResource& Resource, D3D12_RESOURCE_STATES NewState, bool FlushImmediate = false);
88  void FlushResourceBarriers();
89 
90  struct ShaderDescriptorHeaps
91  {
92  ID3D12DescriptorHeap* pSrvCbvUavHeap;
93  ID3D12DescriptorHeap* pSamplerHeap;
94  ShaderDescriptorHeaps(ID3D12DescriptorHeap* _pSrvCbvUavHeap = nullptr, ID3D12DescriptorHeap* _pSamplerHeap = nullptr) :
95  pSrvCbvUavHeap(_pSrvCbvUavHeap),
96  pSamplerHeap(_pSamplerHeap)
97  {}
98  bool operator == (const ShaderDescriptorHeaps& rhs)const
99  {
100  return pSrvCbvUavHeap == rhs.pSrvCbvUavHeap && pSamplerHeap == rhs.pSamplerHeap;
101  }
102  operator bool()const
103  {
104  return pSrvCbvUavHeap != nullptr || pSamplerHeap != nullptr;
105  }
106  };
107  void SetDescriptorHeaps( ShaderDescriptorHeaps& Heaps );
108 
109  void ExecuteIndirect(ID3D12CommandSignature *pCmdSignature, ID3D12Resource *pBuff, Uint64 ArgsOffset)
110  {
111  FlushResourceBarriers();
112  m_pCommandList->ExecuteIndirect(pCmdSignature, 1, pBuff, ArgsOffset, nullptr, 0);
113  }
114 
115  void SetID(const Char* ID) { m_ID = ID; }
116  ID3D12GraphicsCommandList *GetCommandList(){return m_pCommandList;}
117 
118  void DiscardDynamicDescriptors(Uint64 FenceValue);
119  DescriptorHeapAllocation AllocateDynamicGPUVisibleDescriptor( D3D12_DESCRIPTOR_HEAP_TYPE Type, UINT Count = 1 );
120 
121  void InsertUAVBarrier(D3D12ResourceBase& Resource, IDeviceObject &Object, bool FlushImmediate = false);
122 
123  void SetPipelineState( ID3D12PipelineState* pPSO )
124  {
125  if (pPSO != m_pCurPipelineState)
126  {
127  m_pCommandList->SetPipelineState(m_pCurPipelineState = pPSO);
128  }
129  }
130 
131 protected:
132  void TransitionResource(D3D12ResourceBase& Resource, IDeviceObject &Object, D3D12_RESOURCE_STATES NewState, bool FlushImmediate);
133  void InsertAliasBarrier(D3D12ResourceBase& Before, D3D12ResourceBase& After, IDeviceObject &BeforeObj, IDeviceObject &AfterObj, bool FlushImmediate = false);
134 
135  CComPtr<ID3D12GraphicsCommandList> m_pCommandList;
136  CComPtr<ID3D12CommandAllocator> m_pCurrentAllocator;
137 
138  ID3D12PipelineState* m_pCurPipelineState = nullptr;
139  ID3D12RootSignature* m_pCurGraphicsRootSignature = nullptr;
140  ID3D12RootSignature* m_pCurComputeRootSignature = nullptr;
141 
142  static constexpr int MaxPendingBarriers = 16;
143  std::vector<D3D12_RESOURCE_BARRIER, STDAllocatorRawMem<D3D12_RESOURCE_BARRIER> > m_PendingResourceBarriers;
144  // We must make sure that all referenced objects are alive until barriers are executed
145  // Keeping reference to ID3D12Resource is not sufficient!
146  // TextureD3D12Impl::~TextureD3D12Impl() and BufferD3D12Impl::~BufferD3D12Impl()
147  // are responsible for putting the D3D12 resource in the release queue
148  std::vector< RefCntAutoPtr<IDeviceObject>, STDAllocatorRawMem<RefCntAutoPtr<IDeviceObject>> > m_PendingBarrierObjects;
149 
150  ShaderDescriptorHeaps m_BoundDescriptorHeaps;
151 
152  // Every context must use its own allocator that maintains individual list of retired descriptor heaps to
153  // avoid interference with other command contexts
154  // The heaps can only be discarded after the command list is submitted for execution
155  DynamicSuballocationsManager m_DynamicGPUDescriptorAllocator[2];
156 
157  String m_ID;
158 
159  D3D12_PRIMITIVE_TOPOLOGY m_PrimitiveTopology = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED;
160 };
161 
162 
163 class GraphicsContext : public CommandContext
164 {
165 public:
166  void ClearRenderTarget( ITextureViewD3D12 *pRTV, const float *Color );
167  void ClearDepthStencil( ITextureViewD3D12 *pDSV, D3D12_CLEAR_FLAGS ClearFlags, float Depth, UINT8 Stencil );
168 
169  void SetRootSignature( ID3D12RootSignature *pRootSig )
170  {
171  if (pRootSig != m_pCurGraphicsRootSignature)
172  {
173  m_pCommandList->SetGraphicsRootSignature(m_pCurGraphicsRootSignature = pRootSig);
174  }
175  }
176 
177  void SetRenderTargets( UINT NumRTVs, ITextureViewD3D12** ppRTVs, ITextureViewD3D12* pDSV );
178 
179  void SetViewports( UINT NumVPs, const D3D12_VIEWPORT* pVPs )
180  {
181  m_pCommandList->RSSetViewports(NumVPs, pVPs);
182  }
183 
184  void SetScissorRects( UINT NumRects, const D3D12_RECT* pRects )
185  {
186  m_pCommandList->RSSetScissorRects(NumRects, pRects);
187  }
188 
189  void SetStencilRef( UINT StencilRef )
190  {
191  m_pCommandList->OMSetStencilRef( StencilRef );
192  }
193 
194  void SetBlendFactor( const float* BlendFactor )
195  {
196  m_pCommandList->OMSetBlendFactor( BlendFactor );
197  }
198 
199  void SetPrimitiveTopology( D3D12_PRIMITIVE_TOPOLOGY Topology )
200  {
201  if(m_PrimitiveTopology != Topology)
202  {
203  m_PrimitiveTopology = Topology;
204  m_pCommandList->IASetPrimitiveTopology(Topology);
205  }
206  }
207 
208  void SetConstants( UINT RootIndex, UINT NumConstants, const void* pConstants )
209  {
210  m_pCommandList->SetGraphicsRoot32BitConstants( RootIndex, NumConstants, pConstants, 0 );
211  }
212 
213  void SetConstants( UINT RootIndex, DWParam X )
214  {
215  m_pCommandList->SetGraphicsRoot32BitConstant( RootIndex, X.Uint, 0 );
216  }
217 
218  void SetConstants( UINT RootIndex, DWParam X, DWParam Y )
219  {
220  m_pCommandList->SetGraphicsRoot32BitConstant( RootIndex, X.Uint, 0 );
221  m_pCommandList->SetGraphicsRoot32BitConstant( RootIndex, Y.Uint, 1 );
222  }
223 
224  void SetConstants( UINT RootIndex, DWParam X, DWParam Y, DWParam Z )
225  {
226  m_pCommandList->SetGraphicsRoot32BitConstant( RootIndex, X.Uint, 0 );
227  m_pCommandList->SetGraphicsRoot32BitConstant( RootIndex, Y.Uint, 1 );
228  m_pCommandList->SetGraphicsRoot32BitConstant( RootIndex, Z.Uint, 2 );
229  }
230 
231  void SetConstants( UINT RootIndex, DWParam X, DWParam Y, DWParam Z, DWParam W )
232  {
233  m_pCommandList->SetGraphicsRoot32BitConstant( RootIndex, X.Uint, 0 );
234  m_pCommandList->SetGraphicsRoot32BitConstant( RootIndex, Y.Uint, 1 );
235  m_pCommandList->SetGraphicsRoot32BitConstant( RootIndex, Z.Uint, 2 );
236  m_pCommandList->SetGraphicsRoot32BitConstant( RootIndex, W.Uint, 3 );
237  }
238 
239  void SetConstantBuffer( UINT RootIndex, D3D12_GPU_VIRTUAL_ADDRESS CBV )
240  {
241  m_pCommandList->SetGraphicsRootConstantBufferView(RootIndex, CBV);
242  }
243 
244  void SetDescriptorTable( UINT RootIndex, D3D12_GPU_DESCRIPTOR_HANDLE FirstHandle )
245  {
246  m_pCommandList->SetGraphicsRootDescriptorTable( RootIndex, FirstHandle );
247  }
248 
249  void SetIndexBuffer( const D3D12_INDEX_BUFFER_VIEW& IBView )
250  {
251  m_pCommandList->IASetIndexBuffer(&IBView);
252  }
253 
254  void SetVertexBuffers( UINT StartSlot, UINT Count, const D3D12_VERTEX_BUFFER_VIEW VBViews[] )
255  {
256  m_pCommandList->IASetVertexBuffers(StartSlot, Count, VBViews);
257  }
258 
259  void Draw(UINT VertexCountPerInstance, UINT InstanceCount,
260  UINT StartVertexLocation, UINT StartInstanceLocation)
261  {
262  FlushResourceBarriers();
263  m_pCommandList->DrawInstanced(VertexCountPerInstance, InstanceCount, StartVertexLocation, StartInstanceLocation);
264  }
265 
266  void DrawIndexed(UINT IndexCountPerInstance, UINT InstanceCount, UINT StartIndexLocation,
267  INT BaseVertexLocation, UINT StartInstanceLocation)
268  {
269  FlushResourceBarriers();
270  m_pCommandList->DrawIndexedInstanced(IndexCountPerInstance, InstanceCount, StartIndexLocation, BaseVertexLocation, StartInstanceLocation);
271  }
272 };
273 
274 class ComputeContext : public CommandContext
275 {
276 public:
277 
278  void SetRootSignature( ID3D12RootSignature *pRootSig )
279  {
280  if (pRootSig != m_pCurComputeRootSignature)
281  {
282  m_pCommandList->SetComputeRootSignature(m_pCurComputeRootSignature = pRootSig);
283  }
284  }
285 
286  void SetConstants( UINT RootIndex, UINT NumConstants, const void* pConstants )
287  {
288  m_pCommandList->SetComputeRoot32BitConstants( RootIndex, NumConstants, pConstants, 0 );
289  }
290 
291  void SetConstants( UINT RootIndex, DWParam X )
292  {
293  m_pCommandList->SetComputeRoot32BitConstant( RootIndex, X.Uint, 0 );
294  }
295 
296  void SetConstants( UINT RootIndex, DWParam X, DWParam Y )
297  {
298  m_pCommandList->SetComputeRoot32BitConstant( RootIndex, X.Uint, 0 );
299  m_pCommandList->SetComputeRoot32BitConstant( RootIndex, Y.Uint, 1 );
300  }
301 
302  void SetConstants( UINT RootIndex, DWParam X, DWParam Y, DWParam Z )
303  {
304  m_pCommandList->SetComputeRoot32BitConstant( RootIndex, X.Uint, 0 );
305  m_pCommandList->SetComputeRoot32BitConstant( RootIndex, Y.Uint, 1 );
306  m_pCommandList->SetComputeRoot32BitConstant( RootIndex, Z.Uint, 2 );
307  }
308 
309  void SetConstants( UINT RootIndex, DWParam X, DWParam Y, DWParam Z, DWParam W )
310  {
311  m_pCommandList->SetComputeRoot32BitConstant( RootIndex, X.Uint, 0 );
312  m_pCommandList->SetComputeRoot32BitConstant( RootIndex, Y.Uint, 1 );
313  m_pCommandList->SetComputeRoot32BitConstant( RootIndex, Z.Uint, 2 );
314  m_pCommandList->SetComputeRoot32BitConstant( RootIndex, W.Uint, 3 );
315  }
316 
317 
318  void SetConstantBuffer( UINT RootIndex, D3D12_GPU_VIRTUAL_ADDRESS CBV )
319  {
320  m_pCommandList->SetComputeRootConstantBufferView(RootIndex, CBV);
321  }
322 
323  void SetDescriptorTable( UINT RootIndex, D3D12_GPU_DESCRIPTOR_HANDLE FirstHandle )
324  {
325  m_pCommandList->SetComputeRootDescriptorTable( RootIndex, FirstHandle );
326  }
327 
328  void Dispatch( size_t GroupCountX = 1, size_t GroupCountY = 1, size_t GroupCountZ = 1 )
329  {
330  FlushResourceBarriers();
331  m_pCommandList->Dispatch((UINT)GroupCountX, (UINT)GroupCountY, (UINT)GroupCountZ);
332  }
333 };
334 
335 inline GraphicsContext& CommandContext::AsGraphicsContext()
336 {
337  return static_cast<GraphicsContext&>(*this);
338 }
339 
340 inline ComputeContext& CommandContext::AsComputeContext()
341 {
342  return static_cast<ComputeContext&>(*this);
343 }
344 
345 inline void CommandContext::SetDescriptorHeaps( ShaderDescriptorHeaps& Heaps )
346 {
347 #ifdef _DEBUG
348  VERIFY(Heaps.pSrvCbvUavHeap != nullptr || Heaps.pSamplerHeap != nullptr, "At least one heap is expected to be set");
349  VERIFY(Heaps.pSrvCbvUavHeap == nullptr || Heaps.pSrvCbvUavHeap->GetDesc().Type == D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV, "Invalid heap type provided in pSrvCbvUavHeap");
350  VERIFY(Heaps.pSamplerHeap == nullptr || Heaps.pSamplerHeap->GetDesc().Type == D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER, "Invalid heap type provided in pSamplerHeap");
351 #endif
352 
353  if (!(Heaps == m_BoundDescriptorHeaps))
354  {
355  m_BoundDescriptorHeaps = Heaps;
356 
357  ID3D12DescriptorHeap **ppHeaps = reinterpret_cast<ID3D12DescriptorHeap**>(&Heaps);
358  UINT NumHeaps = (ppHeaps[0] != nullptr ? 1 : 0) + (ppHeaps[1] != nullptr ? 1 : 0);
359  if(ppHeaps[0] == nullptr)
360  ++ppHeaps;
361 
362  m_pCommandList->SetDescriptorHeaps(NumHeaps, ppHeaps);
363  }
364 }
365 
366 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_command_list_8h_source.html b/doc/html/_command_list_8h_source.html new file mode 100644 index 00000000..6c7c1399 --- /dev/null +++ b/doc/html/_command_list_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/CommandList.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
CommandList.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DeviceObject.h"
30 
31 namespace Diligent
32 {
33 
34 // {C38C68F2-8A8C-4ED5-B7EE-69126E75DCD8}
35 static constexpr INTERFACE_ID IID_CommandList =
36 { 0xc38c68f2, 0x8a8c, 0x4ed5, { 0xb7, 0xee, 0x69, 0x12, 0x6e, 0x75, 0xdc, 0xd8 } };
37 
39 
43 {
44 public:
45 
46 
47 };
48 
49 }
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Command list interface.
Definition: CommandList.h:42
+
+ + + + + diff --git a/doc/html/_command_list_base_8h_source.html b/doc/html/_command_list_base_8h_source.html new file mode 100644 index 00000000..36c32bd1 --- /dev/null +++ b/doc/html/_command_list_base_8h_source.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/CommandListBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
CommandListBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "CommandList.h"
30 #include "DeviceObjectBase.h"
31 #include "RenderDeviceBase.h"
32 
33 namespace Diligent
34 {
35 
36 struct CommandListDesc : public DeviceObjectAttribs
37 {
38 };
39 
41 
44 template<class BaseInterface>
45 class CommandListBase : public DeviceObjectBase<BaseInterface, CommandListDesc>
46 {
47 public:
49 
54  CommandListBase( IReferenceCounters *pRefCounters, IRenderDevice *pDevice, bool bIsDeviceInternal = false ) :
55  TDeviceObjectBase( pRefCounters, pDevice, CommandListDesc(), bIsDeviceInternal )
56  {}
57 
59  {
60  }
61 
62  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_CommandList, TDeviceObjectBase )
63 };
64 
65 }
Template class implementing base functionality for a command list object.
Definition: CommandListBase.h:45
+
Render device interface.
Definition: RenderDevice.h:55
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
CommandListBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, bool bIsDeviceInternal=false)
Definition: CommandListBase.h:54
+
Template class implementing base functionality for a device object.
Definition: DeviceObjectBase.h:42
+
+ + + + + diff --git a/doc/html/_command_list_d3_d11_impl_8h_source.html b/doc/html/_command_list_d3_d11_impl_8h_source.html new file mode 100644 index 00000000..bfb88114 --- /dev/null +++ b/doc/html/_command_list_d3_d11_impl_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/CommandListD3D11Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
CommandListD3D11Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "RenderDeviceD3D11.h"
30 #include "CommandListBase.h"
31 
32 namespace Diligent
33 {
34 
35 class FixedBlockMemoryAllocator;
36 
38 class CommandListD3D11Impl : public CommandListBase<ICommandList>
39 {
40 public:
42  CommandListD3D11Impl(IReferenceCounters *pRefCounters,
43  IRenderDevice *pDevice,
44  ID3D11CommandList *pd3d11CommandList);
46 
47  ID3D11CommandList *GetD3D11CommandList(){ return m_pd3d11CommandList; }
48 
49 private:
50  CComPtr<ID3D11CommandList> m_pd3d11CommandList;
51 };
52 
53 }
Template class implementing base functionality for a command list object.
Definition: CommandListBase.h:45
+
Render device interface.
Definition: RenderDevice.h:55
+
Implementation of the Diligent::ICommandListD3D11 interface.
Definition: CommandListD3D11Impl.h:38
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_command_list_d3_d12_impl_8h_source.html b/doc/html/_command_list_d3_d12_impl_8h_source.html new file mode 100644 index 00000000..951701a6 --- /dev/null +++ b/doc/html/_command_list_d3_d12_impl_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/CommandListD3D12Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
CommandListD3D12Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "CommandListBase.h"
30 
31 namespace Diligent
32 {
33 
35 class CommandListD3D12Impl : public CommandListBase<ICommandList>
36 {
37 public:
39  CommandListD3D12Impl(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, class CommandContext* pCmdContext) :
40  TCommandListBase(pRefCounters, pDevice),
41  m_pCmdContext(pCmdContext)
42  {
43  }
44 
46  {
47  VERIFY(m_pCmdContext == nullptr, "Destroying command list that was never executed");
48  }
49 
50  CommandContext* Close()
51  {
52  CommandContext* pCmdContext = m_pCmdContext;
53  m_pCmdContext = nullptr;
54  return pCmdContext;
55  }
56 
57 private:
58  CommandContext* m_pCmdContext = nullptr;
59 };
60 
61 }
Template class implementing base functionality for a command list object.
Definition: CommandListBase.h:45
+
Render device interface.
Definition: RenderDevice.h:55
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Implementation of the Diligent::ICommandList interface.
Definition: CommandListD3D12Impl.h:35
+
+ + + + + diff --git a/doc/html/_command_list_manager_8h_source.html b/doc/html/_command_list_manager_8h_source.html new file mode 100644 index 00000000..457fc2e1 --- /dev/null +++ b/doc/html/_command_list_manager_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/CommandListManager.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
CommandListManager.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <vector>
27 #include <deque>
28 #include <mutex>
29 #include <stdint.h>
30 
31 namespace Diligent
32 {
33 
34 class CommandListManager
35 {
36 public:
37  CommandListManager(class RenderDeviceD3D12Impl *pDeviceD3D12);
38  ~CommandListManager();
39 
40  CommandListManager(const CommandListManager&) = delete;
41  CommandListManager(CommandListManager&&) = delete;
42  CommandListManager& operator = (const CommandListManager&) = delete;
43  CommandListManager& operator = (CommandListManager&&) = delete;
44 
45  void CreateNewCommandList( ID3D12GraphicsCommandList** ppList, ID3D12CommandAllocator** ppAllocator );
46 
47  // Discards the allocator.
48  // FenceValue is the value that was signaled by the command queue after it
49  // executed the the command list created by the allocator
50  void DiscardAllocator( Uint64 FenceValue, ID3D12CommandAllocator* pAllocator );
51 
52  void RequestAllocator(ID3D12CommandAllocator** ppAllocator);
53 
54 private:
55  // fist - the fence value associated with the command list that was created by the allocator
56  // second - the allocator to be discarded
57  typedef std::pair<Uint64, CComPtr<ID3D12CommandAllocator> > DiscardedAllocatorQueueElemType;
58  std::deque< DiscardedAllocatorQueueElemType, STDAllocatorRawMem<DiscardedAllocatorQueueElemType> > m_DiscardedAllocators;
59 
60  std::mutex m_AllocatorMutex;
61  RenderDeviceD3D12Impl *m_pDeviceD3D12;
62 
63  Atomics::AtomicLong m_NumAllocators = 0; // For debug purposes only
64 };
65 
66 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_command_queue_d3_d12_8h_source.html b/doc/html/_command_queue_d3_d12_8h_source.html new file mode 100644 index 00000000..68436d60 --- /dev/null +++ b/doc/html/_command_queue_d3_d12_8h_source.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/interface/CommandQueueD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
CommandQueueD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 namespace Diligent
30 {
31 
32 // {D89693CE-F3F4-44B5-B7EF-24115AAD085E}
33 static constexpr INTERFACE_ID IID_CommandQueueD3D12 =
34 { 0xd89693ce, 0xf3f4, 0x44b5, { 0xb7, 0xef, 0x24, 0x11, 0x5a, 0xad, 0x8, 0x5e } };
35 
37 class ICommandQueueD3D12 : public Diligent::IObject
38 {
39 public:
41  virtual UINT64 GetNextFenceValue() = 0;
42 
44 
46  virtual UINT64 ExecuteCommandList(ID3D12GraphicsCommandList* commandList) = 0;
47 
49  virtual ID3D12CommandQueue* GetD3D12CommandQueue() = 0;
50 
52  virtual Uint64 GetCompletedFenceValue() = 0;
53 
55  virtual void IdleGPU() = 0;
56 };
57 
58 }
virtual ID3D12CommandQueue * GetD3D12CommandQueue()=0
Returns D3D12 command queue. May return null if queue is anavailable.
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual Uint64 GetCompletedFenceValue()=0
Returns value of the last completed fence.
+
virtual UINT64 GetNextFenceValue()=0
Returns the fence value that will be signaled next time.
+
virtual void IdleGPU()=0
Blocks execution until all pending GPU commands are complete.
+
Command queue interface.
Definition: CommandQueueD3D12.h:37
+
virtual UINT64 ExecuteCommandList(ID3D12GraphicsCommandList *commandList)=0
Executes a given command list.
+
+ + + + + diff --git a/doc/html/_command_queue_d3_d12_impl_8h_source.html b/doc/html/_command_queue_d3_d12_impl_8h_source.html new file mode 100644 index 00000000..71286798 --- /dev/null +++ b/doc/html/_command_queue_d3_d12_impl_8h_source.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/CommandQueueD3D12Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
CommandQueueD3D12Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "CommandQueueD3D12.h"
30 #include "ObjectBase.h"
31 
32 namespace Diligent
33 {
34 
36 class CommandQueueD3D12Impl : public ObjectBase<ICommandQueueD3D12>
37 {
38 public:
40 
41  CommandQueueD3D12Impl(IReferenceCounters *pRefCounters, ID3D12CommandQueue *pd3d12NativeCmdQueue, ID3D12Fence *pd3d12Fence);
43 
44  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override;
45 
46  // Returns the fence value that will be signaled next time
47  virtual UINT64 GetNextFenceValue()override final { return m_NextFenceValue; }
48 
49  // Executes a given command list
50  virtual UINT64 ExecuteCommandList(ID3D12GraphicsCommandList* commandList)override final;
51 
52  virtual ID3D12CommandQueue* GetD3D12CommandQueue()override final { return m_pd3d12CmdQueue; }
53 
54  virtual void IdleGPU()override final;
55 
56  virtual Uint64 GetCompletedFenceValue()override final;
57 
58 private:
59  // A value that will be signaled by the command queue next
60  Atomics::AtomicInt64 m_NextFenceValue;
61 
62  // Last fence value completed by the GPU
63  volatile Uint64 m_LastCompletedFenceValue = 0;
64 
65  CComPtr<ID3D12CommandQueue> m_pd3d12CmdQueue;
66 
67  // The fence is signaled right after the command list has been
68  // submitted to the command queue for execution.
69  // All command lists with fence value less or equal to the signaled value
70  // are guaranteed to be finished by the GPU
71  CComPtr<ID3D12Fence> m_d3d12Fence;
72 
73  HANDLE m_WaitForGPUEventHandle = {};
74 };
75 
76 }
virtual ID3D12CommandQueue * GetD3D12CommandQueue() override final
Returns D3D12 command queue. May return null if queue is anavailable.
Definition: CommandQueueD3D12Impl.h:52
+
virtual UINT64 GetNextFenceValue() override final
Returns the fence value that will be signaled next time.
Definition: CommandQueueD3D12Impl.h:47
+
virtual Uint64 GetCompletedFenceValue() override final
Returns value of the last completed fence.
Definition: CommandQueueD3D12Impl.cpp:73
+
Template class implementing base functionality for an object.
Definition: ObjectBase.h:62
+
virtual UINT64 ExecuteCommandList(ID3D12GraphicsCommandList *commandList) override final
Executes a given command list.
Definition: CommandQueueD3D12Impl.cpp:48
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual void IdleGPU() override final
Blocks execution until all pending GPU commands are complete.
Definition: CommandQueueD3D12Impl.cpp:60
+
Implementation of the Diligent::ICommandQueueD3D12 interface.
Definition: CommandQueueD3D12Impl.h:36
+
+ + + + + diff --git a/doc/html/_common_2include_2pch_8h_source.html b/doc/html/_common_2include_2pch_8h_source.html new file mode 100644 index 00000000..283b59b5 --- /dev/null +++ b/doc/html/_common_2include_2pch_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/include/pch.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
pch.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 // stdafx.h : include file for standard system include files,
25 // or project specific include files that are used frequently, but
26 // are changed infrequently
27 //
28 
29 #pragma once
30 
31 #include "PlatformDefinitions.h"
32 #include "BasicTypes.h"
33 #include "Errors.h"
34 #include "FileWrapper.h"
35 #include "RefCntAutoPtr.h"
+ + + + + diff --git a/doc/html/_commonly_used_states_8h_source.html b/doc/html/_commonly_used_states_8h_source.html new file mode 100644 index 00000000..e8747256 --- /dev/null +++ b/doc/html/_commonly_used_states_8h_source.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsTools/include/CommonlyUsedStates.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
CommonlyUsedStates.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "GraphicsTypes.h"
30 #include "DepthStencilState.h"
31 #include "BlendState.h"
32 #include "RasterizerState.h"
33 #include "Sampler.h"
34 
35 namespace Diligent
36 {
37  // Common depth-stencil states
38  const DepthStencilStateDesc DSS_DisableDepth(False, False);
39 
40  // Common rasterizer states
41  const RasterizerStateDesc RS_SolidFillNoCull(FILL_MODE_SOLID, CULL_MODE_NONE);
42 
43  const RasterizerStateDesc RS_WireFillNoCull(FILL_MODE_WIREFRAME, CULL_MODE_NONE, false, 1, 0.f, 1.f);
44 
45 
46  // Common sampler states
47  const SamplerDesc Sam_LinearClamp(FILTER_TYPE_LINEAR, FILTER_TYPE_LINEAR, FILTER_TYPE_LINEAR,
49 
50  const SamplerDesc Sam_PointClamp(FILTER_TYPE_POINT, FILTER_TYPE_POINT, FILTER_TYPE_POINT,
52 
53  const SamplerDesc Sam_LinearMirror(FILTER_TYPE_LINEAR, FILTER_TYPE_LINEAR, FILTER_TYPE_LINEAR,
55 
56  const SamplerDesc Sam_PointWrap(FILTER_TYPE_POINT, FILTER_TYPE_POINT, FILTER_TYPE_POINT,
58 
59  const SamplerDesc Sam_LinearWrap(FILTER_TYPE_LINEAR, FILTER_TYPE_LINEAR, FILTER_TYPE_LINEAR,
61 
62  const SamplerDesc Sam_Aniso2xClamp(FILTER_TYPE_ANISOTROPIC, FILTER_TYPE_ANISOTROPIC, FILTER_TYPE_ANISOTROPIC,
64 
65  const SamplerDesc Sam_Aniso4xClamp(FILTER_TYPE_ANISOTROPIC, FILTER_TYPE_ANISOTROPIC, FILTER_TYPE_ANISOTROPIC,
67 
68  const SamplerDesc Sam_Aniso8xClamp(FILTER_TYPE_ANISOTROPIC, FILTER_TYPE_ANISOTROPIC, FILTER_TYPE_ANISOTROPIC,
70 
71  const SamplerDesc Sam_Aniso16xClamp(FILTER_TYPE_ANISOTROPIC, FILTER_TYPE_ANISOTROPIC, FILTER_TYPE_ANISOTROPIC,
73 
74  const SamplerDesc Sam_Aniso8xWrap(FILTER_TYPE_ANISOTROPIC, FILTER_TYPE_ANISOTROPIC, FILTER_TYPE_ANISOTROPIC,
76 }
Rasterize triangles using wireframe fill. Direct3D counterpart: D3D11_FILL_WIREFRAME/D3D12_FILL_MOD...
Definition: RasterizerState.h:47
+
Texture coordinates outside the range [0.0, 1.0] are set to the texture color at 0.0 or 1.0, respectively. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_CLAMP/D3D12_TEXTURE_ADDRESS_MODE_CLAMP. OpenGL counterpart: GL_CLAMP_TO_EDGE.
Definition: GraphicsTypes.h:821
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Rasterize triangles using solid fill. Direct3D counterpart: D3D11_FILL_SOLID/D3D12_FILL_MODE_SOLID...
Definition: RasterizerState.h:51
+
Tile the texture at every integer junction. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_WRAP/D3D12_...
Definition: GraphicsTypes.h:812
+
Draw all triangles. Direct3D counterpart: D3D11_CULL_NONE/D3D12_CULL_MODE_NONE. OpenGL counterpart:...
Definition: RasterizerState.h:70
+
Point filtering.
Definition: GraphicsTypes.h:783
+
Flip the texture at every integer junction. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_MIRROR/D3D1...
Definition: GraphicsTypes.h:816
+
Anisotropic filtering.
Definition: GraphicsTypes.h:785
+
Linear filtering.
Definition: GraphicsTypes.h:784
+
+ + + + + diff --git a/doc/html/_constants_8h_source.html b/doc/html/_constants_8h_source.html new file mode 100644 index 00000000..acfbfa86 --- /dev/null +++ b/doc/html/_constants_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/Constants.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Constants.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 namespace Diligent
30 {
33  static constexpr Uint32 MaxBufferSlots = 32;
34 
36  static constexpr Uint32 MaxRenderTargets = 8;
37 }
static constexpr Uint32 MaxBufferSlots
Maximum number of input buffer slots. D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT == 32...
Definition: Constants.h:33
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
static constexpr Uint32 MaxRenderTargets
Maximum number of simultaneous render targets.
Definition: Constants.h:36
+
+ + + + + diff --git a/doc/html/_d3_d11_debug_utilities_8h_source.html b/doc/html/_d3_d11_debug_utilities_8h_source.html new file mode 100644 index 00000000..bf728dc0 --- /dev/null +++ b/doc/html/_d3_d11_debug_utilities_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/D3D11DebugUtilities.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
D3D11DebugUtilities.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 
30 namespace Diligent
31 {
32 
33 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_d3_d11_type_conversions_8h_source.html b/doc/html/_d3_d11_type_conversions_8h_source.html new file mode 100644 index 00000000..f3ce7b96 --- /dev/null +++ b/doc/html/_d3_d11_type_conversions_8h_source.html @@ -0,0 +1,111 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/D3D11TypeConversions.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
D3D11TypeConversions.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "GraphicsTypes.h"
30 #include "DXGITypeConversions.h"
31 
32 namespace Diligent
33 {
34 
35 inline UINT BindFlagsToD3D11BindFlags(Uint32 BindFlags)
36 {
37  UINT D3D11BindFlags = 0;
38  D3D11BindFlags = D3D11BindFlags | ((BindFlags & BIND_VERTEX_BUFFER) ? D3D11_BIND_VERTEX_BUFFER : 0);
39  D3D11BindFlags = D3D11BindFlags | ((BindFlags & BIND_INDEX_BUFFER) ? D3D11_BIND_INDEX_BUFFER : 0);
40  D3D11BindFlags = D3D11BindFlags | ((BindFlags & BIND_UNIFORM_BUFFER) ? D3D11_BIND_CONSTANT_BUFFER : 0);
41  D3D11BindFlags = D3D11BindFlags | ((BindFlags & BIND_SHADER_RESOURCE) ? D3D11_BIND_SHADER_RESOURCE : 0);
42  D3D11BindFlags = D3D11BindFlags | ((BindFlags & BIND_STREAM_OUTPUT) ? D3D11_BIND_STREAM_OUTPUT : 0);
43  D3D11BindFlags = D3D11BindFlags | ((BindFlags & BIND_RENDER_TARGET) ? D3D11_BIND_RENDER_TARGET : 0);
44  D3D11BindFlags = D3D11BindFlags | ((BindFlags & BIND_DEPTH_STENCIL) ? D3D11_BIND_DEPTH_STENCIL : 0);
45  D3D11BindFlags = D3D11BindFlags | ((BindFlags & BIND_UNORDERED_ACCESS) ? D3D11_BIND_UNORDERED_ACCESS : 0);
46  return D3D11BindFlags;
47 }
48 
49 inline Uint32 D3D11BindFlagsToBindFlags(UINT D3D11BindFlags)
50 {
51  Uint32 BindFlags = 0;
52  BindFlags = BindFlags | ((D3D11BindFlags & D3D11_BIND_VERTEX_BUFFER) ? BIND_VERTEX_BUFFER : 0);
53  BindFlags = BindFlags | ((D3D11BindFlags & D3D11_BIND_INDEX_BUFFER) ? BIND_INDEX_BUFFER : 0);
54  BindFlags = BindFlags | ((D3D11BindFlags & D3D11_BIND_CONSTANT_BUFFER) ? BIND_UNIFORM_BUFFER : 0);
55  BindFlags = BindFlags | ((D3D11BindFlags & D3D11_BIND_SHADER_RESOURCE) ? BIND_SHADER_RESOURCE : 0);
56  BindFlags = BindFlags | ((D3D11BindFlags & D3D11_BIND_STREAM_OUTPUT) ? BIND_STREAM_OUTPUT : 0);
57  BindFlags = BindFlags | ((D3D11BindFlags & D3D11_BIND_RENDER_TARGET) ? BIND_RENDER_TARGET : 0);
58  BindFlags = BindFlags | ((D3D11BindFlags & D3D11_BIND_DEPTH_STENCIL) ? BIND_DEPTH_STENCIL : 0);
59  BindFlags = BindFlags | ((D3D11BindFlags & D3D11_BIND_UNORDERED_ACCESS) ? BIND_UNORDERED_ACCESS : 0);
60  VERIFY_EXPR( (D3D11BindFlags &
61  (D3D11_BIND_VERTEX_BUFFER|D3D11_BIND_INDEX_BUFFER|D3D11_BIND_CONSTANT_BUFFER|
62  D3D11_BIND_SHADER_RESOURCE|D3D11_BIND_STREAM_OUTPUT|D3D11_BIND_RENDER_TARGET|
63  D3D11_BIND_DEPTH_STENCIL|D3D11_BIND_UNORDERED_ACCESS)) == BindFlagsToD3D11BindFlags(BindFlags));
64  return BindFlags;
65 }
66 
67 D3D11_PRIMITIVE_TOPOLOGY TopologyToD3D11Topology(PRIMITIVE_TOPOLOGY Topology);
68 
69 inline D3D11_USAGE UsageToD3D11Usage(USAGE Usage)
70 {
71  switch(Usage)
72  {
73  case USAGE_STATIC: return D3D11_USAGE_IMMUTABLE;
74  case USAGE_DEFAULT: return D3D11_USAGE_DEFAULT;
75  case USAGE_DYNAMIC: return D3D11_USAGE_DYNAMIC;
76  case USAGE_CPU_ACCESSIBLE: return D3D11_USAGE_STAGING;
77  default: UNEXPECTED("Unknow usage" ); return D3D11_USAGE_DEFAULT;
78  }
79 }
80 
81 inline USAGE D3D11UsageToUsage(D3D11_USAGE D3D11Usage)
82 {
83  switch(D3D11Usage)
84  {
85  case D3D11_USAGE_IMMUTABLE: return USAGE_STATIC;
86  case D3D11_USAGE_DEFAULT: return USAGE_DEFAULT;
87  case D3D11_USAGE_DYNAMIC: return USAGE_DYNAMIC;
88  case D3D11_USAGE_STAGING: return USAGE_CPU_ACCESSIBLE;
89  default: UNEXPECTED("Unknow D3D11 usage" ); return USAGE_DEFAULT;
90  }
91 }
92 
93 inline void MapParamsToD3D11MapParams(MAP_TYPE MapType, Uint32 MapFlags, D3D11_MAP &d3d11MapType, UINT d3d11MapFlags)
94 {
95  d3d11MapType = static_cast<D3D11_MAP>(0);
96  switch(MapType)
97  {
98  case MAP_READ:
99  d3d11MapType = D3D11_MAP_READ;
100  break;
101 
102  case MAP_WRITE:
103  if(MapFlags & MAP_FLAG_DISCARD)
104  d3d11MapType = D3D11_MAP_WRITE_DISCARD;
105  else if(MapFlags & MAP_FLAG_DO_NOT_SYNCHRONIZE)
106  d3d11MapType = D3D11_MAP_WRITE_NO_OVERWRITE;
107  else
108  d3d11MapType = D3D11_MAP_WRITE;
109  break;
110 
111  case MAP_READ_WRITE:
112  d3d11MapType = D3D11_MAP_READ_WRITE;
113  break;
114 
115  default:
116  UNEXPECTED( "Unknown map type" );
117  }
118 
119  d3d11MapFlags = 0;
120  d3d11MapFlags |= (MapFlags & MAP_FLAG_DO_NOT_WAIT) ? D3D11_MAP_FLAG_DO_NOT_WAIT : 0;
121 }
122 
123 inline UINT MapFlagsToD3D11MapFlags(Uint32 MapFlags)
124 {
125 }
126 
127 inline UINT CPUAccessFlagsToD3D11CPUAccessFlags(Uint32 Flags)
128 {
129  UINT D3D11CPUAccessFlags = 0;
130  D3D11CPUAccessFlags |= (Flags & CPU_ACCESS_READ) ? D3D11_CPU_ACCESS_READ : 0;
131  D3D11CPUAccessFlags |= (Flags & CPU_ACCESS_WRITE) ? D3D11_CPU_ACCESS_WRITE : 0;
132  return D3D11CPUAccessFlags;
133 }
134 
135 inline Uint32 D3D11CPUAccessFlagsToCPUAccessFlags(UINT D3D11CPUAccessFlags)
136 {
137  Uint32 CPUAccessFlags = 0;
138  CPUAccessFlags |= (D3D11CPUAccessFlags & D3D11_CPU_ACCESS_READ) ? CPU_ACCESS_READ : 0;
139  CPUAccessFlags |= (D3D11CPUAccessFlags & D3D11_CPU_ACCESS_WRITE) ? CPU_ACCESS_WRITE : 0;
140  VERIFY_EXPR(D3D11CPUAccessFlags == CPUAccessFlagsToD3D11CPUAccessFlags(CPUAccessFlags));
141  return CPUAccessFlags;
142 }
143 
144 inline UINT MiscTextureFlagsToD3D11Flags(Uint32 Flags)
145 {
146  UINT D3D11MiscFlags = 0;
147  D3D11MiscFlags |= (Flags & MISC_TEXTURE_FLAG_GENERATE_MIPS) ? D3D11_RESOURCE_MISC_GENERATE_MIPS : 0;
148  return D3D11MiscFlags;
149 }
150 
151 inline Uint32 D3D11MiscFlagsToMiscTextureFlags(UINT D3D11MiscFlags)
152 {
153  Uint32 MiscFlags = 0;
154  MiscFlags |= (D3D11MiscFlags & D3D11_RESOURCE_MISC_GENERATE_MIPS) ? MISC_TEXTURE_FLAG_GENERATE_MIPS : 0;
155  return MiscFlags;
156 }
157 
158 D3D11_FILTER FilterTypeToD3D11Filter(FILTER_TYPE MinFilter, FILTER_TYPE MagFilter, FILTER_TYPE MipFilter);
159 D3D11_TEXTURE_ADDRESS_MODE TexAddressModeToD3D11AddressMode(TEXTURE_ADDRESS_MODE Mode);
160 
161 D3D11_COMPARISON_FUNC ComparisonFuncToD3D11ComparisonFunc(COMPARISON_FUNCTION Func);
162 void DepthStencilStateDesc_To_D3D11_DEPTH_STENCIL_DESC(const DepthStencilStateDesc &DepthStencilDesc, D3D11_DEPTH_STENCIL_DESC &d3d11DSSDesc);
163 void RasterizerStateDesc_To_D3D11_RASTERIZER_DESC(const RasterizerStateDesc &RasterizerDesc, D3D11_RASTERIZER_DESC &d3d11RSDesc);
164 void BlendStateDesc_To_D3D11_BLEND_DESC(const BlendStateDesc &BSDesc, D3D11_BLEND_DESC &D3D11BSDesc);
165 void LayoutElements_To_D3D11_INPUT_ELEMENT_DESCs(const std::vector<LayoutElement, STDAllocatorRawMem<LayoutElement> > &LayoutElements,
166  std::vector<D3D11_INPUT_ELEMENT_DESC, STDAllocatorRawMem<D3D11_INPUT_ELEMENT_DESC> > &D3D11InputElements);
167 
168 void TextureViewDesc_to_D3D11_SRV_DESC(const TextureViewDesc& TexViewDesc, D3D11_SHADER_RESOURCE_VIEW_DESC &D3D11SRVDesc, Uint32 SampleCount);
169 void TextureViewDesc_to_D3D11_RTV_DESC(const TextureViewDesc& TexViewDesc, D3D11_RENDER_TARGET_VIEW_DESC &D3D11RTVDesc, Uint32 SampleCount);
170 void TextureViewDesc_to_D3D11_DSV_DESC(const TextureViewDesc& TexViewDesc, D3D11_DEPTH_STENCIL_VIEW_DESC &D3D11DSVDesc, Uint32 SampleCount);
171 void TextureViewDesc_to_D3D11_UAV_DESC(const TextureViewDesc& TexViewDesc, D3D11_UNORDERED_ACCESS_VIEW_DESC &D3D11UAVDesc);
172 
173 void BufferViewDesc_to_D3D11_SRV_DESC(const BufferDesc &BuffDesc, const BufferViewDesc& SRVDesc, D3D11_SHADER_RESOURCE_VIEW_DESC &D3D11SRVDesc);
174 void BufferViewDesc_to_D3D11_UAV_DESC(const BufferDesc &BuffDesc, const BufferViewDesc& UAVDesc, D3D11_UNORDERED_ACCESS_VIEW_DESC &D3D11UAVDesc);
175 
176 }
A texture can be bound as a render target.
Definition: GraphicsTypes.h:71
+
PRIMITIVE_TOPOLOGY
Input primitive topology.
Definition: DeviceContext.h:56
+
A buffer or a texture can be bound as a shader resource.
Definition: GraphicsTypes.h:68
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
A buffer can be bound as an index buffer.
Definition: GraphicsTypes.h:65
+
TEXTURE_ADDRESS_MODE
Texture address mode.
Definition: GraphicsTypes.h:805
+
Previous contents of the resource will be undefined. This flag is only compatible with MAP_WRITE D3D...
Definition: GraphicsTypes.h:158
+
A buffer can be bound as a vertex buffer.
Definition: GraphicsTypes.h:64
+
A resource can be mapped for reading.
Definition: GraphicsTypes.h:114
+
A texture can be bound as a depth-stencil target.
Definition: GraphicsTypes.h:72
+
A resource that requires read and write access by the GPU and can also be occasionally written by the...
Definition: GraphicsTypes.h:95
+
The system will not synchronize pending operations before mapping the buffer. It is responsibility of...
Definition: GraphicsTypes.h:164
+
A resource that can only be read by the GPU. It cannot be written by the GPU, and cannot be accessed ...
Definition: GraphicsTypes.h:90
+
Specifies that map operation should not wait until previous command that using the same resource comp...
Definition: GraphicsTypes.h:153
+
Resource is mapped for writing. D3D11 counterpart: D3D11_MAP_WRITE. OpenGL counterpart: GL_MAP_WRIT...
Definition: GraphicsTypes.h:133
+
A resource that facilitates transferring data from GPU to CPU. D3D11 Counterpart: D3D11_USAGE_STAGI...
Definition: GraphicsTypes.h:103
+
Resource is mapped for reading. D3D11 counterpart: D3D11_MAP_READ. OpenGL counterpart: GL_MAP_READ_...
Definition: GraphicsTypes.h:129
+
USAGE
Resource usage.
Definition: GraphicsTypes.h:84
+
Allow automatic mipmap generation with ITextureView::GenerateMips()
Definition: GraphicsTypes.h:896
+
A buffer or a texture can be bound as an unordered access view.
Definition: GraphicsTypes.h:73
+
A buffer can be bound as a target for stream output stage.
Definition: GraphicsTypes.h:70
+
A buffer can be bound as a uniform buffer.
Definition: GraphicsTypes.h:66
+
FILTER_TYPE
Filter type.
Definition: GraphicsTypes.h:780
+
A resource can be mapped for writing.
Definition: GraphicsTypes.h:115
+
COMPARISON_FUNCTION
Comparison function.
Definition: GraphicsTypes.h:847
+
Resource is mapped for reading and writing. D3D11 counterpart: D3D11_MAP_READ_WRITE. OpenGL counterpart: GL_MAP_WRITE_BIT | GL_MAP_READ_BIT.
Definition: GraphicsTypes.h:137
+
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:125
+
A resource that can be read by the GPU and written at least once per frame by the CPU...
Definition: GraphicsTypes.h:99
+
+ + + + + diff --git a/doc/html/_d3_d11_type_definitions_8h_source.html b/doc/html/_d3_d11_type_definitions_8h_source.html new file mode 100644 index 00000000..9e7f4512 --- /dev/null +++ b/doc/html/_d3_d11_type_definitions_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/D3D11TypeDefinitions.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
D3D11TypeDefinitions.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 // Filters
30 #define D3D_FILTER_MIN_MAG_MIP_POINT D3D11_FILTER_MIN_MAG_MIP_POINT
31 #define D3D_FILTER_MIN_MAG_POINT_MIP_LINEAR D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR
32 #define D3D_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT
33 #define D3D_FILTER_MIN_POINT_MAG_MIP_LINEAR D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR
34 #define D3D_FILTER_MIN_LINEAR_MAG_MIP_POINT D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT
35 #define D3D_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR
36 #define D3D_FILTER_MIN_MAG_LINEAR_MIP_POINT D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT
37 #define D3D_FILTER_MIN_MAG_MIP_LINEAR D3D11_FILTER_MIN_MAG_MIP_LINEAR
38 #define D3D_FILTER_ANISOTROPIC D3D11_FILTER_ANISOTROPIC
39 
40 #define D3D_FILTER_COMPARISON_MIN_MAG_MIP_POINT D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT
41 #define D3D_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR
42 #define D3D_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT
43 #define D3D_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR
44 #define D3D_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT
45 #define D3D_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR
46 #define D3D_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT
47 #define D3D_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR
48 #define D3D_FILTER_COMPARISON_ANISOTROPIC D3D11_FILTER_COMPARISON_ANISOTROPIC
49 
50 // Minimum/maximum filtering is not supported in d3d11
51 #define D3D_FILTER_MINIMUM_MIN_MAG_MIP_POINT D3D11_FILTER_MIN_MAG_MIP_POINT
52 #define D3D_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR D3D11_FILTER_MIN_MAG_MIP_POINT
53 #define D3D_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT D3D11_FILTER_MIN_MAG_MIP_POINT
54 #define D3D_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR D3D11_FILTER_MIN_MAG_MIP_POINT
55 #define D3D_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT D3D11_FILTER_MIN_MAG_MIP_POINT
56 #define D3D_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR D3D11_FILTER_MIN_MAG_MIP_POINT
57 #define D3D_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT D3D11_FILTER_MIN_MAG_MIP_POINT
58 #define D3D_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR D3D11_FILTER_MIN_MAG_MIP_POINT
59 #define D3D_FILTER_MINIMUM_ANISOTROPIC D3D11_FILTER_MIN_MAG_MIP_POINT
60 
61 #define D3D_FILTER_MAXIMUM_MIN_MAG_MIP_POINT D3D11_FILTER_MIN_MAG_MIP_POINT
62 #define D3D_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR D3D11_FILTER_MIN_MAG_MIP_POINT
63 #define D3D_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT D3D11_FILTER_MIN_MAG_MIP_POINT
64 #define D3D_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR D3D11_FILTER_MIN_MAG_MIP_POINT
65 #define D3D_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT D3D11_FILTER_MIN_MAG_MIP_POINT
66 #define D3D_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR D3D11_FILTER_MIN_MAG_MIP_POINT
67 #define D3D_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT D3D11_FILTER_MIN_MAG_MIP_POINT
68 #define D3D_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR D3D11_FILTER_MIN_MAG_MIP_POINT
69 #define D3D_FILTER_MAXIMUM_ANISOTROPIC D3D11_FILTER_MIN_MAG_MIP_POINT
70 
71 
72 // Comparison functions
73 #define D3D_COMPARISON_FUNC_NEVER D3D11_COMPARISON_NEVER
74 #define D3D_COMPARISON_FUNC_LESS D3D11_COMPARISON_LESS
75 #define D3D_COMPARISON_FUNC_EQUAL D3D11_COMPARISON_EQUAL
76 #define D3D_COMPARISON_FUNC_LESS_EQUAL D3D11_COMPARISON_LESS_EQUAL
77 #define D3D_COMPARISON_FUNC_GREATER D3D11_COMPARISON_GREATER
78 #define D3D_COMPARISON_FUNC_NOT_EQUAL D3D11_COMPARISON_NOT_EQUAL
79 #define D3D_COMPARISON_FUNC_GREATER_EQUAL D3D11_COMPARISON_GREATER_EQUAL
80 #define D3D_COMPARISON_FUNC_ALWAYS D3D11_COMPARISON_ALWAYS
81 
82 // Stencil operations
83 #define D3D_STENCIL_OP_KEEP D3D11_STENCIL_OP_KEEP
84 #define D3D_STENCIL_OP_ZERO D3D11_STENCIL_OP_ZERO
85 #define D3D_STENCIL_OP_REPLACE D3D11_STENCIL_OP_REPLACE
86 #define D3D_STENCIL_OP_INCR_SAT D3D11_STENCIL_OP_INCR_SAT
87 #define D3D_STENCIL_OP_DECR_SAT D3D11_STENCIL_OP_DECR_SAT
88 #define D3D_STENCIL_OP_INVERT D3D11_STENCIL_OP_INVERT
89 #define D3D_STENCIL_OP_INCR D3D11_STENCIL_OP_INCR
90 #define D3D_STENCIL_OP_DECR D3D11_STENCIL_OP_DECR
91 
92 // Depth write masks
93 #define D3D_DEPTH_WRITE_MASK_ALL D3D11_DEPTH_WRITE_MASK_ALL
94 #define D3D_DEPTH_WRITE_MASK_ZERO D3D11_DEPTH_WRITE_MASK_ZERO
95 
96 // Cull modes
97 #define D3D_CULL_MODE_NONE D3D11_CULL_NONE
98 #define D3D_CULL_MODE_FRONT D3D11_CULL_FRONT
99 #define D3D_CULL_MODE_BACK D3D11_CULL_BACK
100 
101 // Fill modes
102 #define D3D_FILL_MODE_WIREFRAME D3D11_FILL_WIREFRAME
103 #define D3D_FILL_MODE_SOLID D3D11_FILL_SOLID
104 
105 // Blend sources
106 #define D3D_BLEND_ZERO D3D11_BLEND_ZERO
107 #define D3D_BLEND_ONE D3D11_BLEND_ONE
108 #define D3D_BLEND_SRC_COLOR D3D11_BLEND_SRC_COLOR
109 #define D3D_BLEND_INV_SRC_COLOR D3D11_BLEND_INV_SRC_COLOR
110 #define D3D_BLEND_SRC_ALPHA D3D11_BLEND_SRC_ALPHA
111 #define D3D_BLEND_INV_SRC_ALPHA D3D11_BLEND_INV_SRC_ALPHA
112 #define D3D_BLEND_DEST_ALPHA D3D11_BLEND_DEST_ALPHA
113 #define D3D_BLEND_INV_DEST_ALPHA D3D11_BLEND_INV_DEST_ALPHA
114 #define D3D_BLEND_DEST_COLOR D3D11_BLEND_DEST_COLOR
115 #define D3D_BLEND_INV_DEST_COLOR D3D11_BLEND_INV_DEST_COLOR
116 #define D3D_BLEND_SRC_ALPHA_SAT D3D11_BLEND_SRC_ALPHA_SAT
117 #define D3D_BLEND_BLEND_FACTOR D3D11_BLEND_BLEND_FACTOR
118 #define D3D_BLEND_INV_BLEND_FACTOR D3D11_BLEND_INV_BLEND_FACTOR
119 #define D3D_BLEND_SRC1_COLOR D3D11_BLEND_SRC1_COLOR
120 #define D3D_BLEND_INV_SRC1_COLOR D3D11_BLEND_INV_SRC1_COLOR
121 #define D3D_BLEND_SRC1_ALPHA D3D11_BLEND_SRC1_ALPHA
122 #define D3D_BLEND_INV_SRC1_ALPHA D3D11_BLEND_INV_SRC1_ALPHA
123 
124 // Blend operations
125 #define D3D_BLEND_OP_ADD D3D11_BLEND_OP_ADD
126 #define D3D_BLEND_OP_SUBTRACT D3D11_BLEND_OP_SUBTRACT
127 #define D3D_BLEND_OP_REV_SUBTRACT D3D11_BLEND_OP_REV_SUBTRACT
128 #define D3D_BLEND_OP_MIN D3D11_BLEND_OP_MIN
129 #define D3D_BLEND_OP_MAX D3D11_BLEND_OP_MAX
130 
131 // Color masks
132 #define D3D_COLOR_WRITE_ENABLE_RED D3D11_COLOR_WRITE_ENABLE_RED
133 #define D3D_COLOR_WRITE_ENABLE_GREEN D3D11_COLOR_WRITE_ENABLE_GREEN
134 #define D3D_COLOR_WRITE_ENABLE_BLUE D3D11_COLOR_WRITE_ENABLE_BLUE
135 #define D3D_COLOR_WRITE_ENABLE_ALPHA D3D11_COLOR_WRITE_ENABLE_ALPHA
136 
137 // Input classification
138 #define D3D_INPUT_CLASSIFICATION_PER_VERTEX_DATA D3D11_INPUT_PER_VERTEX_DATA
139 #define D3D_INPUT_CLASSIFICATION_PER_INSTANCE_DATA D3D11_INPUT_PER_INSTANCE_DATA
140 
141 // Texture address modes
142 #define D3D_TEXTURE_ADDRESS_WRAP D3D11_TEXTURE_ADDRESS_WRAP
143 #define D3D_TEXTURE_ADDRESS_MIRROR D3D11_TEXTURE_ADDRESS_MIRROR
144 #define D3D_TEXTURE_ADDRESS_CLAMP D3D11_TEXTURE_ADDRESS_CLAMP
145 #define D3D_TEXTURE_ADDRESS_BORDER D3D11_TEXTURE_ADDRESS_BORDER
146 #define D3D_TEXTURE_ADDRESS_MIRROR_ONCE D3D11_TEXTURE_ADDRESS_MIRROR_ONCE
147 
148 
149 // SRV Dimensions
150 // d3d11.h aliases D3D11_SRV_DIMENSION as D3D_SRV_DIMENSION, so there is no
151 // need to redefine this enum
152 
153 // RTV Dimensions
154 #define D3D_RTV_DIMENSION_UNKNOWN D3D11_RTV_DIMENSION_UNKNOWN
155 #define D3D_RTV_DIMENSION_BUFFER D3D11_RTV_DIMENSION_BUFFER
156 #define D3D_RTV_DIMENSION_TEXTURE1D D3D11_RTV_DIMENSION_TEXTURE1D
157 #define D3D_RTV_DIMENSION_TEXTURE1DARRAY D3D11_RTV_DIMENSION_TEXTURE1DARRAY
158 #define D3D_RTV_DIMENSION_TEXTURE2D D3D11_RTV_DIMENSION_TEXTURE2D
159 #define D3D_RTV_DIMENSION_TEXTURE2DARRAY D3D11_RTV_DIMENSION_TEXTURE2DARRAY
160 #define D3D_RTV_DIMENSION_TEXTURE2DMS D3D11_RTV_DIMENSION_TEXTURE2DMS
161 #define D3D_RTV_DIMENSION_TEXTURE2DMSARRAY D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY
162 #define D3D_RTV_DIMENSION_TEXTURE3D D3D11_RTV_DIMENSION_TEXTURE3D
163 
164 
165 // DSV Dimensions
166 #define D3D_DSV_DIMENSION_UNKNOWN D3D11_DSV_DIMENSION_UNKNOWN
167 #define D3D_DSV_DIMENSION_TEXTURE1D D3D11_DSV_DIMENSION_TEXTURE1D
168 #define D3D_DSV_DIMENSION_TEXTURE1DARRAY D3D11_DSV_DIMENSION_TEXTURE1DARRAY
169 #define D3D_DSV_DIMENSION_TEXTURE2D D3D11_DSV_DIMENSION_TEXTURE2D
170 #define D3D_DSV_DIMENSION_TEXTURE2DARRAY D3D11_DSV_DIMENSION_TEXTURE2DARRAY
171 #define D3D_DSV_DIMENSION_TEXTURE2DMS D3D11_DSV_DIMENSION_TEXTURE2DMS
172 #define D3D_DSV_DIMENSION_TEXTURE2DMSARRAY D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY
173 
174 // UAV Dimensions
175 #define D3D_UAV_DIMENSION_UNKNOWN D3D11_UAV_DIMENSION_UNKNOWN
176 #define D3D_UAV_DIMENSION_BUFFER D3D11_UAV_DIMENSION_BUFFER
177 #define D3D_UAV_DIMENSION_TEXTURE1D D3D11_UAV_DIMENSION_TEXTURE1D
178 #define D3D_UAV_DIMENSION_TEXTURE1DARRAY D3D11_UAV_DIMENSION_TEXTURE1DARRAY
179 #define D3D_UAV_DIMENSION_TEXTURE2D D3D11_UAV_DIMENSION_TEXTURE2D
180 #define D3D_UAV_DIMENSION_TEXTURE2DARRAY D3D11_UAV_DIMENSION_TEXTURE2DARRAY
181 #define D3D_UAV_DIMENSION_TEXTURE3D D3D11_UAV_DIMENSION_TEXTURE3D
+ + + + + diff --git a/doc/html/_d3_d12_resource_base_8h_source.html b/doc/html/_d3_d12_resource_base_8h_source.html new file mode 100644 index 00000000..141e86a8 --- /dev/null +++ b/doc/html/_d3_d12_resource_base_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/D3D12ResourceBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
D3D12ResourceBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 namespace Diligent
30 {
31 
34 {
35 public:
37  m_UsageState(D3D12_RESOURCE_STATE_COMMON)/*,
38  m_TransitioningState((D3D12_RESOURCE_STATES)-1)*/
39  {}
40 
41  D3D12_RESOURCE_STATES GetState()const{return m_UsageState;}
42  void SetState(D3D12_RESOURCE_STATES UsageState){m_UsageState = UsageState;}
43  bool CheckAllStates(D3D12_RESOURCE_STATES States)const{return (m_UsageState & States) == States;}
44  bool CheckAnyState(D3D12_RESOURCE_STATES States)const{return (m_UsageState & States) != 0;}
45  ID3D12Resource *GetD3D12Resource(){ return m_pd3d12Resource; }
46 
47 protected:
48  D3D12_RESOURCE_STATES m_UsageState;
49  //D3D12_RESOURCE_STATES m_TransitioningState;
50  CComPtr<ID3D12Resource> m_pd3d12Resource;
51 };
52 
53 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Base implementation of a D3D12 resource.
Definition: D3D12ResourceBase.h:33
+
CComPtr< ID3D12Resource > m_pd3d12Resource
D3D12 buffer object.
Definition: D3D12ResourceBase.h:50
+
+ + + + + diff --git a/doc/html/_d3_d12_type_conversions_8h_source.html b/doc/html/_d3_d12_type_conversions_8h_source.html new file mode 100644 index 00000000..6b20911e --- /dev/null +++ b/doc/html/_d3_d12_type_conversions_8h_source.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/D3D12TypeConversions.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
D3D12TypeConversions.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "GraphicsTypes.h"
30 
31 namespace Diligent
32 {
33 
34 D3D12_COMPARISON_FUNC ComparisonFuncToD3D12ComparisonFunc(COMPARISON_FUNCTION Func);
35 D3D12_FILTER FilterTypeToD3D12Filter(FILTER_TYPE MinFilter, FILTER_TYPE MagFilter, FILTER_TYPE MipFilter);
36 D3D12_TEXTURE_ADDRESS_MODE TexAddressModeToD3D12AddressMode(TEXTURE_ADDRESS_MODE Mode);
37 D3D12_PRIMITIVE_TOPOLOGY TopologyToD3D12Topology(PRIMITIVE_TOPOLOGY Topology);
38 
39 void DepthStencilStateDesc_To_D3D12_DEPTH_STENCIL_DESC(const DepthStencilStateDesc &DepthStencilDesc, D3D12_DEPTH_STENCIL_DESC &d3d12DSSDesc);
40 void RasterizerStateDesc_To_D3D12_RASTERIZER_DESC(const RasterizerStateDesc &RasterizerDesc, D3D12_RASTERIZER_DESC &d3d11RSDesc);
41 void BlendStateDesc_To_D3D12_BLEND_DESC(const BlendStateDesc &BSDesc, D3D12_BLEND_DESC &d3d12BlendDesc);
42 
43 void LayoutElements_To_D3D12_INPUT_ELEMENT_DESCs(const std::vector<LayoutElement, STDAllocatorRawMem<LayoutElement>> &LayoutElements,
44  std::vector<D3D12_INPUT_ELEMENT_DESC, STDAllocatorRawMem<D3D12_INPUT_ELEMENT_DESC> > &d3d12InputElements);
45 
46 void TextureViewDesc_to_D3D12_SRV_DESC(const TextureViewDesc& SRVDesc, D3D12_SHADER_RESOURCE_VIEW_DESC &D3D12SRVDesc, Uint32 SampleCount);
47 void TextureViewDesc_to_D3D12_RTV_DESC(const TextureViewDesc& RTVDesc, D3D12_RENDER_TARGET_VIEW_DESC &D3D12RTVDesc, Uint32 SampleCount);
48 void TextureViewDesc_to_D3D12_DSV_DESC(const TextureViewDesc& DSVDesc, D3D12_DEPTH_STENCIL_VIEW_DESC &D3D12DSVDesc, Uint32 SampleCount);
49 void TextureViewDesc_to_D3D12_UAV_DESC(const TextureViewDesc& UAVDesc, D3D12_UNORDERED_ACCESS_VIEW_DESC &D3D12UAVDesc);
50 
51 void BufferViewDesc_to_D3D12_SRV_DESC(const BufferDesc &BuffDesc, const BufferViewDesc& SRVDesc, D3D12_SHADER_RESOURCE_VIEW_DESC &D3D12SRVDesc);
52 void BufferViewDesc_to_D3D12_UAV_DESC(const BufferDesc &BuffDesc, const BufferViewDesc& UAVDesc, D3D12_UNORDERED_ACCESS_VIEW_DESC &D3D12UAVDesc);
53 
54 D3D12_STATIC_BORDER_COLOR BorderColorToD3D12StaticBorderColor(const Float32 BorderColor[]);
55 
56 }
PRIMITIVE_TOPOLOGY
Input primitive topology.
Definition: DeviceContext.h:56
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
TEXTURE_ADDRESS_MODE
Texture address mode.
Definition: GraphicsTypes.h:805
+
FILTER_TYPE
Filter type.
Definition: GraphicsTypes.h:780
+
COMPARISON_FUNCTION
Comparison function.
Definition: GraphicsTypes.h:847
+
+ + + + + diff --git a/doc/html/_d3_d12_type_definitions_8h_source.html b/doc/html/_d3_d12_type_definitions_8h_source.html new file mode 100644 index 00000000..028b99b2 --- /dev/null +++ b/doc/html/_d3_d12_type_definitions_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/D3D12TypeDefinitions.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
D3D12TypeDefinitions.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 // Filters
30 #define D3D_FILTER_MIN_MAG_MIP_POINT D3D12_FILTER_MIN_MAG_MIP_POINT
31 #define D3D_FILTER_MIN_MAG_POINT_MIP_LINEAR D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR
32 #define D3D_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT
33 #define D3D_FILTER_MIN_POINT_MAG_MIP_LINEAR D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR
34 #define D3D_FILTER_MIN_LINEAR_MAG_MIP_POINT D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT
35 #define D3D_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR
36 #define D3D_FILTER_MIN_MAG_LINEAR_MIP_POINT D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT
37 #define D3D_FILTER_MIN_MAG_MIP_LINEAR D3D12_FILTER_MIN_MAG_MIP_LINEAR
38 #define D3D_FILTER_ANISOTROPIC D3D12_FILTER_ANISOTROPIC
39 
40 #define D3D_FILTER_COMPARISON_MIN_MAG_MIP_POINT D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT
41 #define D3D_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR
42 #define D3D_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT
43 #define D3D_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR
44 #define D3D_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT
45 #define D3D_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR
46 #define D3D_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT
47 #define D3D_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR
48 #define D3D_FILTER_COMPARISON_ANISOTROPIC D3D12_FILTER_COMPARISON_ANISOTROPIC
49 
50 #define D3D_FILTER_MINIMUM_MIN_MAG_MIP_POINT D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT
51 #define D3D_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR
52 #define D3D_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT
53 #define D3D_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR
54 #define D3D_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT
55 #define D3D_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR
56 #define D3D_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT
57 #define D3D_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR
58 #define D3D_FILTER_MINIMUM_ANISOTROPIC D3D12_FILTER_MINIMUM_ANISOTROPIC
59 
60 #define D3D_FILTER_MAXIMUM_MIN_MAG_MIP_POINT D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT
61 #define D3D_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR
62 #define D3D_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT
63 #define D3D_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR
64 #define D3D_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT
65 #define D3D_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR
66 #define D3D_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT
67 #define D3D_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR
68 #define D3D_FILTER_MAXIMUM_ANISOTROPIC D3D12_FILTER_MAXIMUM_ANISOTROPIC
69 
70 // Comparison functions
71 #define D3D_COMPARISON_FUNC_NEVER D3D12_COMPARISON_FUNC_NEVER
72 #define D3D_COMPARISON_FUNC_LESS D3D12_COMPARISON_FUNC_LESS
73 #define D3D_COMPARISON_FUNC_EQUAL D3D12_COMPARISON_FUNC_EQUAL
74 #define D3D_COMPARISON_FUNC_LESS_EQUAL D3D12_COMPARISON_FUNC_LESS_EQUAL
75 #define D3D_COMPARISON_FUNC_GREATER D3D12_COMPARISON_FUNC_GREATER
76 #define D3D_COMPARISON_FUNC_NOT_EQUAL D3D12_COMPARISON_FUNC_NOT_EQUAL
77 #define D3D_COMPARISON_FUNC_GREATER_EQUAL D3D12_COMPARISON_FUNC_GREATER_EQUAL
78 #define D3D_COMPARISON_FUNC_ALWAYS D3D12_COMPARISON_FUNC_ALWAYS
79 
80 // Stencil operations
81 #define D3D_STENCIL_OP_KEEP D3D12_STENCIL_OP_KEEP
82 #define D3D_STENCIL_OP_ZERO D3D12_STENCIL_OP_ZERO
83 #define D3D_STENCIL_OP_REPLACE D3D12_STENCIL_OP_REPLACE
84 #define D3D_STENCIL_OP_INCR_SAT D3D12_STENCIL_OP_INCR_SAT
85 #define D3D_STENCIL_OP_DECR_SAT D3D12_STENCIL_OP_DECR_SAT
86 #define D3D_STENCIL_OP_INVERT D3D12_STENCIL_OP_INVERT
87 #define D3D_STENCIL_OP_INCR D3D12_STENCIL_OP_INCR
88 #define D3D_STENCIL_OP_DECR D3D12_STENCIL_OP_DECR
89 
90 // Depth write masks
91 #define D3D_DEPTH_WRITE_MASK_ALL D3D12_DEPTH_WRITE_MASK_ALL
92 #define D3D_DEPTH_WRITE_MASK_ZERO D3D12_DEPTH_WRITE_MASK_ZERO
93 
94 // Cull modes
95 #define D3D_CULL_MODE_NONE D3D12_CULL_MODE_NONE
96 #define D3D_CULL_MODE_FRONT D3D12_CULL_MODE_FRONT
97 #define D3D_CULL_MODE_BACK D3D12_CULL_MODE_BACK
98 
99 // Fill modes
100 #define D3D_FILL_MODE_WIREFRAME D3D12_FILL_MODE_WIREFRAME
101 #define D3D_FILL_MODE_SOLID D3D12_FILL_MODE_SOLID
102 
103 // Blend sources
104 #define D3D_BLEND_ZERO D3D12_BLEND_ZERO
105 #define D3D_BLEND_ONE D3D12_BLEND_ONE
106 #define D3D_BLEND_SRC_COLOR D3D12_BLEND_SRC_COLOR
107 #define D3D_BLEND_INV_SRC_COLOR D3D12_BLEND_INV_SRC_COLOR
108 #define D3D_BLEND_SRC_ALPHA D3D12_BLEND_SRC_ALPHA
109 #define D3D_BLEND_INV_SRC_ALPHA D3D12_BLEND_INV_SRC_ALPHA
110 #define D3D_BLEND_DEST_ALPHA D3D12_BLEND_DEST_ALPHA
111 #define D3D_BLEND_INV_DEST_ALPHA D3D12_BLEND_INV_DEST_ALPHA
112 #define D3D_BLEND_DEST_COLOR D3D12_BLEND_DEST_COLOR
113 #define D3D_BLEND_INV_DEST_COLOR D3D12_BLEND_INV_DEST_COLOR
114 #define D3D_BLEND_SRC_ALPHA_SAT D3D12_BLEND_SRC_ALPHA_SAT
115 #define D3D_BLEND_BLEND_FACTOR D3D12_BLEND_BLEND_FACTOR
116 #define D3D_BLEND_INV_BLEND_FACTOR D3D12_BLEND_INV_BLEND_FACTOR
117 #define D3D_BLEND_SRC1_COLOR D3D12_BLEND_SRC1_COLOR
118 #define D3D_BLEND_INV_SRC1_COLOR D3D12_BLEND_INV_SRC1_COLOR
119 #define D3D_BLEND_SRC1_ALPHA D3D12_BLEND_SRC1_ALPHA
120 #define D3D_BLEND_INV_SRC1_ALPHA D3D12_BLEND_INV_SRC1_ALPHA
121 
122 // Blend operations
123 #define D3D_BLEND_OP_ADD D3D12_BLEND_OP_ADD
124 #define D3D_BLEND_OP_SUBTRACT D3D12_BLEND_OP_SUBTRACT
125 #define D3D_BLEND_OP_REV_SUBTRACT D3D12_BLEND_OP_REV_SUBTRACT
126 #define D3D_BLEND_OP_MIN D3D12_BLEND_OP_MIN
127 #define D3D_BLEND_OP_MAX D3D12_BLEND_OP_MAX
128 
129 // Color masks
130 #define D3D_COLOR_WRITE_ENABLE_RED D3D12_COLOR_WRITE_ENABLE_RED
131 #define D3D_COLOR_WRITE_ENABLE_GREEN D3D12_COLOR_WRITE_ENABLE_GREEN
132 #define D3D_COLOR_WRITE_ENABLE_BLUE D3D12_COLOR_WRITE_ENABLE_BLUE
133 #define D3D_COLOR_WRITE_ENABLE_ALPHA D3D12_COLOR_WRITE_ENABLE_ALPHA
134 
135 // Input classification
136 #define D3D_INPUT_CLASSIFICATION_PER_VERTEX_DATA D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA
137 #define D3D_INPUT_CLASSIFICATION_PER_INSTANCE_DATA D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA
138 
139 // Texture address modes
140 #define D3D_TEXTURE_ADDRESS_WRAP D3D12_TEXTURE_ADDRESS_MODE_WRAP
141 #define D3D_TEXTURE_ADDRESS_MIRROR D3D12_TEXTURE_ADDRESS_MODE_MIRROR
142 #define D3D_TEXTURE_ADDRESS_CLAMP D3D12_TEXTURE_ADDRESS_MODE_CLAMP
143 #define D3D_TEXTURE_ADDRESS_BORDER D3D12_TEXTURE_ADDRESS_MODE_BORDER
144 #define D3D_TEXTURE_ADDRESS_MIRROR_ONCE D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE
145 
146 // SRV Dimensions
147 #define D3D_SRV_DIMENSION_UNKNOWN D3D12_SRV_DIMENSION_UNKNOWN
148 #define D3D_SRV_DIMENSION_BUFFER D3D12_SRV_DIMENSION_BUFFER
149 #define D3D_SRV_DIMENSION_TEXTURE1D D3D12_SRV_DIMENSION_TEXTURE1D
150 #define D3D_SRV_DIMENSION_TEXTURE1DARRAY D3D12_SRV_DIMENSION_TEXTURE1DARRAY
151 #define D3D_SRV_DIMENSION_TEXTURE2D D3D12_SRV_DIMENSION_TEXTURE2D
152 #define D3D_SRV_DIMENSION_TEXTURE2DARRAY D3D12_SRV_DIMENSION_TEXTURE2DARRAY
153 #define D3D_SRV_DIMENSION_TEXTURE2DMS D3D12_SRV_DIMENSION_TEXTURE2DMS
154 #define D3D_SRV_DIMENSION_TEXTURE2DMSARRAY D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY
155 #define D3D_SRV_DIMENSION_TEXTURE3D D3D12_SRV_DIMENSION_TEXTURE3D
156 #define D3D_SRV_DIMENSION_TEXTURECUBE D3D12_SRV_DIMENSION_TEXTURECUBE
157 #define D3D_SRV_DIMENSION_TEXTURECUBEARRAY D3D12_SRV_DIMENSION_TEXTURECUBEARRAY
158 
159 // RTV Dimensions
160 #define D3D_RTV_DIMENSION_UNKNOWN D3D12_RTV_DIMENSION_UNKNOWN
161 #define D3D_RTV_DIMENSION_BUFFER D3D12_RTV_DIMENSION_BUFFER
162 #define D3D_RTV_DIMENSION_TEXTURE1D D3D12_RTV_DIMENSION_TEXTURE1D
163 #define D3D_RTV_DIMENSION_TEXTURE1DARRAY D3D12_RTV_DIMENSION_TEXTURE1DARRAY
164 #define D3D_RTV_DIMENSION_TEXTURE2D D3D12_RTV_DIMENSION_TEXTURE2D
165 #define D3D_RTV_DIMENSION_TEXTURE2DARRAY D3D12_RTV_DIMENSION_TEXTURE2DARRAY
166 #define D3D_RTV_DIMENSION_TEXTURE2DMS D3D12_RTV_DIMENSION_TEXTURE2DMS
167 #define D3D_RTV_DIMENSION_TEXTURE2DMSARRAY D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY
168 #define D3D_RTV_DIMENSION_TEXTURE3D D3D12_RTV_DIMENSION_TEXTURE3D
169 
170 
171 // DSV Dimensions
172 #define D3D_DSV_DIMENSION_UNKNOWN D3D12_DSV_DIMENSION_UNKNOWN
173 #define D3D_DSV_DIMENSION_TEXTURE1D D3D12_DSV_DIMENSION_TEXTURE1D
174 #define D3D_DSV_DIMENSION_TEXTURE1DARRAY D3D12_DSV_DIMENSION_TEXTURE1DARRAY
175 #define D3D_DSV_DIMENSION_TEXTURE2D D3D12_DSV_DIMENSION_TEXTURE2D
176 #define D3D_DSV_DIMENSION_TEXTURE2DARRAY D3D12_DSV_DIMENSION_TEXTURE2DARRAY
177 #define D3D_DSV_DIMENSION_TEXTURE2DMS D3D12_DSV_DIMENSION_TEXTURE2DMS
178 #define D3D_DSV_DIMENSION_TEXTURE2DMSARRAY D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY
179 
180 // UAV Dimensions
181 #define D3D_UAV_DIMENSION_UNKNOWN D3D12_UAV_DIMENSION_UNKNOWN
182 #define D3D_UAV_DIMENSION_BUFFER D3D12_UAV_DIMENSION_BUFFER
183 #define D3D_UAV_DIMENSION_TEXTURE1D D3D12_UAV_DIMENSION_TEXTURE1D
184 #define D3D_UAV_DIMENSION_TEXTURE1DARRAY D3D12_UAV_DIMENSION_TEXTURE1DARRAY
185 #define D3D_UAV_DIMENSION_TEXTURE2D D3D12_UAV_DIMENSION_TEXTURE2D
186 #define D3D_UAV_DIMENSION_TEXTURE2DARRAY D3D12_UAV_DIMENSION_TEXTURE2DARRAY
187 #define D3D_UAV_DIMENSION_TEXTURE3D D3D12_UAV_DIMENSION_TEXTURE3D
+ + + + + diff --git a/doc/html/_d3_d12_utils_8h_source.html b/doc/html/_d3_d12_utils_8h_source.html new file mode 100644 index 00000000..0ca2e91a --- /dev/null +++ b/doc/html/_d3_d12_utils_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/D3D12Utils.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
D3D12Utils.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BasicTypes.h"
27 namespace Diligent
28 {
29  const Char* GetD3D12DescriptorHeapTypeLiteralName(D3D12_DESCRIPTOR_HEAP_TYPE Type);
30 
31 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_d3_d_errors_8h_source.html b/doc/html/_d3_d_errors_8h_source.html new file mode 100644 index 00000000..9bbd84e2 --- /dev/null +++ b/doc/html/_d3_d_errors_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3DBase/include/D3DErrors.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
D3DErrors.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "Errors.h"
27 
30 
31 namespace Diligent
32 {
33 
36 {
37 public:
38  ComErrorDesc( HRESULT hr )
39  {
40  FormatMessageA(
41  FORMAT_MESSAGE_FROM_SYSTEM |
42  FORMAT_MESSAGE_IGNORE_INSERTS,
43  NULL,
44  hr,
45  MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ),
46  m_Msg,
47  _countof(m_Msg),
48  NULL );
49  auto nLen = strlen( m_Msg );
50  if( nLen > 1 && m_Msg[nLen - 1] == '\n' )
51  {
52  m_Msg[nLen - 1] = 0;
53  if( m_Msg[nLen - 2] == '\r' )
54  {
55  m_Msg[nLen - 2] = 0;
56  }
57  }
58  }
59 
60  const char* Get(){ return m_Msg; }
61 
62 private:
63  char m_Msg[4096];
64 };
65 
66 }
67 
68 
69 #define CHECK_D3D_RESULT_THROW(Expr, Message)\
70 { \
71  HRESULT _hr_ = Expr; \
72  if(FAILED(_hr_)) \
73  { \
74  ComErrorDesc ErrDesc( _hr_ ); \
75  LOG_ERROR_AND_THROW( Message, "\nHRESULT Desc: ", ErrDesc.Get());\
76  } \
77 }
78 
79 #define CHECK_D3D_RESULT_THROW_EX(Expr, ...)\
80 { \
81  HRESULT _hr_ = Expr; \
82  if(FAILED(_hr_)) \
83  { \
84  Diligent::MsgStream ms; \
85  Diligent::FormatMsg(ms, __VA_ARGS__); \
86  ComErrorDesc ErrDesc( _hr_ ); \
87  LOG_ERROR_AND_THROW( ms.str(), "\nHRESULT Desc: ", ErrDesc.Get());\
88  } \
89 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Helper class that provides description of a COM error.
Definition: D3DErrors.h:35
+
+ + + + + diff --git a/doc/html/_d3_d_shader_resource_loader_8h_source.html b/doc/html/_d3_d_shader_resource_loader_8h_source.html new file mode 100644 index 00000000..efedb18f --- /dev/null +++ b/doc/html/_d3_d_shader_resource_loader_8h_source.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3DBase/include/D3DShaderResourceLoader.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
D3DShaderResourceLoader.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "Shader.h"
27 #include "StringTools.h"
28 
31 
32 namespace Diligent
33 {
34  template<typename D3D_SHADER_DESC,
35  typename D3D_SHADER_INPUT_BIND_DESC,
36  typename TShaderReflection,
37 
38  typename TOnResourcesCounted,
39  typename TOnNewCB,
40  typename TOnNewTexUAV,
41  typename TOnNewBuffUAV,
42  typename TOnNewBuffSRV,
43  typename TOnNewSampler,
44  typename TOnNewTexSRV>
45  void LoadD3DShaderResources(ID3DBlob *pShaderByteCode,
46 
47  TOnResourcesCounted OnResourcesCounted,
48  TOnNewCB OnNewCB,
49  TOnNewTexUAV OnNewTexUAV,
50  TOnNewBuffUAV OnNewBuffUAV,
51  TOnNewBuffSRV OnNewBuffSRV,
52  TOnNewSampler OnNewSampler,
53  TOnNewTexSRV OnNewTexSRV,
54 
55  const ShaderDesc &ShdrDesc,
56  const Char *SamplerSuffix)
57  {
58  CComPtr<TShaderReflection> pShaderReflection;
59  CHECK_D3D_RESULT_THROW( D3DReflect( pShaderByteCode->GetBufferPointer(), pShaderByteCode->GetBufferSize(), __uuidof(pShaderReflection), reinterpret_cast<void**>(static_cast<TShaderReflection**>(&pShaderReflection)) ),
60  "Failed to get the shader reflection" );
61 
62  D3D_SHADER_DESC shaderDesc = {};
63  pShaderReflection->GetDesc( &shaderDesc );
64 
65  std::vector<D3DShaderResourceAttribs, STDAllocatorRawMem<D3DShaderResourceAttribs> > Resources( STD_ALLOCATOR_RAW_MEM(D3DShaderResourceAttribs, GetRawAllocator(), "Allocator for vector<D3DShaderResourceAttribs>") );
66  Resources.reserve(shaderDesc.BoundResources);
67 
68  Uint32 NumCBs = 0, NumTexSRVs = 0, NumTexUAVs = 0, NumBufSRVs = 0, NumBufUAVs = 0, NumSamplers = 0;
69  // Number of resources to skip (used for array resources)
70  UINT SkipCount = 1;
71  for( UINT Res = 0; Res < shaderDesc.BoundResources; Res += SkipCount )
72  {
73  D3D_SHADER_INPUT_BIND_DESC BindingDesc = {};
74  pShaderReflection->GetResourceBindingDesc( Res, &BindingDesc );
75 
76  String Name(BindingDesc.Name);
77 
78  SkipCount = 1;
79 
80  UINT BindCount = BindingDesc.BindCount;
81 
82  // Handle arrays
83  // For shader models 5_0 and before, every resource array element is enumerated individually.
84  // For instance, if the following texture array is defined in the shader:
85  //
86  // Texture2D<float3> g_tex2DDiffuse[4];
87  //
88  // The reflection system will enumerate 4 resources with the following names:
89  // "g_tex2DDiffuse[0]"
90  // "g_tex2DDiffuse[1]"
91  // "g_tex2DDiffuse[2]"
92  // "g_tex2DDiffuse[3]"
93  //
94  // Notice that if some array element is not used by the shader, it will not be enumerated
95 
96  auto OpenBracketPos = Name.find('[');
97  if (String::npos != OpenBracketPos)
98  {
99  VERIFY(BindCount == 1, "When array elements are enumerated individually, BindCount is expected to always be 1");
100 
101  // Name == "g_tex2DDiffuse[0]"
102  // ^
103  // OpenBracketPos
104  Name.erase(OpenBracketPos, Name.length() - OpenBracketPos);
105  // Name == "g_tex2DDiffuse"
106  VERIFY_EXPR(Name.length() == OpenBracketPos);
107 #ifdef _DEBUG
108  for (const auto &ExistingRes : Resources)
109  {
110  VERIFY(ExistingRes.Name != Name, "Resource with the same name has already been enumerated. All array elements are expected to be enumerated one after another");
111  }
112 #endif
113  for( UINT ArrElem = Res+1; ArrElem < shaderDesc.BoundResources; ++ArrElem)
114  {
115  D3D_SHADER_INPUT_BIND_DESC ArrElemBindingDesc = {};
116  pShaderReflection->GetResourceBindingDesc( ArrElem, &ArrElemBindingDesc );
117 
118  // Make sure this case is handled correctly:
119  // "g_tex2DDiffuse[.]" != "g_tex2DDiffuse2[.]"
120  if ( strncmp(Name.c_str(), ArrElemBindingDesc.Name, OpenBracketPos) == 0 && ArrElemBindingDesc.Name[OpenBracketPos] == '[')
121  {
122  //g_tex2DDiffuse[2]
123  // ^
124  UINT Ind = atoi(ArrElemBindingDesc.Name+OpenBracketPos+1);
125  BindCount = std::max(BindCount, Ind+1);
126  VERIFY(ArrElemBindingDesc.BindPoint == BindingDesc.BindPoint + Ind,
127  "Array elements are expected to use contigous bind points.\n",
128  BindingDesc.Name, " uses slot ", BindingDesc.BindPoint, ", so ", ArrElemBindingDesc.Name, " is expected to use slot ", BindingDesc.BindPoint + Ind, " while ", ArrElemBindingDesc.BindPoint, " is actually used" );
129 
130  // Note that skip count may not necessarily be the same as BindCount.
131  // If some array elements are not used by the shader, the reflection system skips them
132  ++SkipCount;
133  }
134  else
135  {
136  break;
137  }
138  }
139  }
140 
141 
143  bool IsStaticSampler = false;
144  if (BindingDesc.Type == D3D_SIT_SAMPLER)
145  {
146  for (Uint32 s = 0; s < ShdrDesc.NumStaticSamplers; ++s)
147  {
148  if( StrCmpSuff(Name.c_str(), ShdrDesc.StaticSamplers[s].TextureName, SamplerSuffix) )
149  {
150  IsStaticSampler = true;
151  break;
152  }
153  }
154  // Use texture name to derive sampler type
155  VarType = GetShaderVariableType(ShdrDesc.DefaultVariableType, ShdrDesc.VariableDesc, ShdrDesc.NumVariables,
156  [&](const char *TexName)
157  {
158  return StrCmpSuff(Name.c_str(), TexName, SamplerSuffix);
159  }
160  );
161  }
162  else
163  {
164  VarType = GetShaderVariableType(Name.c_str(), ShdrDesc.DefaultVariableType, ShdrDesc.VariableDesc, ShdrDesc.NumVariables);
165  }
166 
167 
168  switch( BindingDesc.Type )
169  {
170  case D3D_SIT_CBUFFER: ++NumCBs; break;
171  case D3D_SIT_TBUFFER: UNSUPPORTED( "TBuffers are not supported" ); break;
172  case D3D_SIT_TEXTURE: ++(BindingDesc.Dimension == D3D_SRV_DIMENSION_BUFFER ? NumBufSRVs : NumTexSRVs); break;
173  case D3D_SIT_SAMPLER: ++NumSamplers; break;
174  case D3D_SIT_UAV_RWTYPED: ++(BindingDesc.Dimension == D3D_SRV_DIMENSION_BUFFER ? NumBufUAVs : NumTexUAVs); break;
175  case D3D_SIT_STRUCTURED: ++NumBufSRVs; break;
176  case D3D_SIT_UAV_RWSTRUCTURED: ++NumBufUAVs; break;
177  case D3D_SIT_BYTEADDRESS: UNSUPPORTED( "Byte address buffers are not supported" ); break;
178  case D3D_SIT_UAV_RWBYTEADDRESS: ++NumBufUAVs; break;
179  case D3D_SIT_UAV_APPEND_STRUCTURED: UNSUPPORTED( "Append structured buffers are not supported" ); break;
180  case D3D_SIT_UAV_CONSUME_STRUCTURED: UNSUPPORTED( "Consume structured buffers are not supported" ); break;
181  case D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER: UNSUPPORTED( "RW structured buffers with counter are not supported" ); break;
182  default: UNEXPECTED("Unexpected resource type");
183  }
184  Resources.emplace_back(std::move(Name), BindingDesc.BindPoint, BindCount, BindingDesc.Type, VarType, BindingDesc.Dimension, D3DShaderResourceAttribs::InvalidSamplerId, IsStaticSampler);
185  }
186 
187 
188 #ifdef _DEBUG
189  if(ShdrDesc.NumVariables != 0 || ShdrDesc.NumStaticSamplers != 0 )
190  {
191  for (Uint32 v = 0; v < ShdrDesc.NumVariables; ++v)
192  {
193  bool VariableFound = false;
194  const auto *VarName = ShdrDesc.VariableDesc[v].Name;
195 
196  for (const auto& Res : Resources)
197  {
198  // Skip samplers as they are not handled as independent variables
199  if (Res.GetInputType() != D3D_SIT_SAMPLER && Res.Name.compare(VarName) == 0)
200  {
201  VariableFound = true;
202  break;
203  }
204  }
205  if(!VariableFound)
206  {
207  LOG_WARNING_MESSAGE("Variable \"", VarName, "\" not found in shader \"", ShdrDesc.Name, '\"');
208  }
209  }
210 
211  for (Uint32 s = 0; s < ShdrDesc.NumStaticSamplers; ++s)
212  {
213  bool TextureFound = false;
214  const auto *TexName = ShdrDesc.StaticSamplers[s].TextureName;
215 
216  for (const auto& Res : Resources)
217  {
218  if ( Res.GetInputType() == D3D_SIT_TEXTURE && Res.GetSRVDimension() != D3D_SRV_DIMENSION_BUFFER && Res.Name.compare(TexName) == 0)
219  {
220  TextureFound = true;
221  break;
222  }
223  }
224  if(!TextureFound)
225  {
226  LOG_WARNING_MESSAGE("Static sampler specifies a texture \"", TexName, "\" that is not found in shader \"", ShdrDesc.Name, '\"');
227  }
228  }
229  }
230 #endif
231 
232  OnResourcesCounted(NumCBs, NumTexSRVs, NumTexUAVs, NumBufSRVs, NumBufUAVs, NumSamplers);
233 
234  std::vector<D3DShaderResourceAttribs, STDAllocatorRawMem<D3DShaderResourceAttribs> > TextureSRVs( STD_ALLOCATOR_RAW_MEM(D3DShaderResourceAttribs, GetRawAllocator(), "Allocator for vector<D3DShaderResourceAttribs>") );
235  TextureSRVs.reserve(NumTexSRVs);
236 
237  for(auto &Res : Resources)
238  {
239  switch( Res.GetInputType() )
240  {
241  case D3D_SIT_CBUFFER:
242  {
243  OnNewCB( std::move(Res) );
244  break;
245  }
246 
247  case D3D_SIT_TBUFFER:
248  {
249  UNSUPPORTED( "TBuffers are not supported" );
250  break;
251  }
252 
253  case D3D_SIT_TEXTURE:
254  {
255  if( Res.GetSRVDimension() == D3D_SRV_DIMENSION_BUFFER )
256  {
257  OnNewBuffSRV( std::move(Res) );
258  }
259  else
260  {
261  TextureSRVs.emplace_back( std::move(Res) );
262  }
263  break;
264  }
265 
266  case D3D_SIT_SAMPLER:
267  {
268  OnNewSampler( std::move(Res) );
269  break;
270  }
271 
272  case D3D_SIT_UAV_RWTYPED:
273  {
274  if( Res.GetSRVDimension() == D3D_SRV_DIMENSION_BUFFER )
275  {
276  OnNewBuffUAV( std::move(Res) );
277  }
278  else
279  {
280  OnNewTexUAV( std::move(Res) );
281  }
282  break;
283  }
284 
285  case D3D_SIT_STRUCTURED:
286  {
287  OnNewBuffSRV( std::move(Res) );
288  break;
289  }
290 
291  case D3D_SIT_UAV_RWSTRUCTURED:
292  {
293  OnNewBuffUAV( std::move(Res) );
294  break;
295  }
296 
297  case D3D_SIT_BYTEADDRESS:
298  {
299  UNSUPPORTED( "Byte address buffers are not supported" );
300  break;
301  }
302 
303  case D3D_SIT_UAV_RWBYTEADDRESS:
304  {
305  OnNewBuffUAV( std::move(Res) );
306  break;
307  }
308 
309  case D3D_SIT_UAV_APPEND_STRUCTURED:
310  {
311  UNSUPPORTED( "Append structured buffers are not supported" );
312  break;
313  }
314 
315  case D3D_SIT_UAV_CONSUME_STRUCTURED:
316  {
317  UNSUPPORTED( "Consume structured buffers are not supported" );
318  break;
319  }
320 
321  case D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER:
322  {
323  UNSUPPORTED( "RW structured buffers with counter are not supported" );
324  break;
325  }
326  }
327  }
328 
329  // Process texture SRVs. We need to do this after all samplers are initialized
330  for( auto &Tex : TextureSRVs )
331  {
332  OnNewTexSRV( std::move(Tex) );
333  }
334  }
335 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
IMemoryAllocator & GetRawAllocator()
Returns raw memory allocator.
Definition: EngineMemory.cpp:46
+
SHADER_VARIABLE_TYPE
Describes shader variable type that is used by ShaderVariableDesc.
Definition: Shader.h:100
+
std::basic_string< Char > String
String variable.
Definition: BasicTypes.h:51
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
Total number of shader variable types.
Definition: Shader.h:117
+
+ + + + + diff --git a/doc/html/_d3_d_type_conversion_impl_8h_source.html b/doc/html/_d3_d_type_conversion_impl_8h_source.html new file mode 100644 index 00000000..6d37175e --- /dev/null +++ b/doc/html/_d3_d_type_conversion_impl_8h_source.html @@ -0,0 +1,209 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3DBase/include/D3DTypeConversionImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
D3DTypeConversionImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
30 
31 namespace Diligent
32 {
33 
34  template<typename D3D_COMPARISON_FUNC>
35  inline D3D_COMPARISON_FUNC ComparisonFuncToD3DComparisonFunc(COMPARISON_FUNCTION Func)
36  {
37  // D3D12_COMPARISON_FUNC is equal to D3D11_COMPARISON_FUNC
38  switch(Func)
39  {
40  case COMPARISON_FUNC_UNKNOWN: UNEXPECTED("Comparison function is not specified" ); return D3D_COMPARISON_FUNC_ALWAYS;
41  case COMPARISON_FUNC_NEVER: return D3D_COMPARISON_FUNC_NEVER;
42  case COMPARISON_FUNC_LESS: return D3D_COMPARISON_FUNC_LESS;
43  case COMPARISON_FUNC_EQUAL: return D3D_COMPARISON_FUNC_EQUAL;
44  case COMPARISON_FUNC_LESS_EQUAL: return D3D_COMPARISON_FUNC_LESS_EQUAL;
45  case COMPARISON_FUNC_GREATER: return D3D_COMPARISON_FUNC_GREATER;
46  case COMPARISON_FUNC_NOT_EQUAL: return D3D_COMPARISON_FUNC_NOT_EQUAL;
47  case COMPARISON_FUNC_GREATER_EQUAL: return D3D_COMPARISON_FUNC_GREATER_EQUAL;
48  case COMPARISON_FUNC_ALWAYS: return D3D_COMPARISON_FUNC_ALWAYS;
49  default: UNEXPECTED("Unknown comparison function" ); return D3D_COMPARISON_FUNC_ALWAYS;
50  }
51  }
52 
53 
54  template<typename D3D_TEXTURE_ADDRESS_MODE>
55  D3D_TEXTURE_ADDRESS_MODE TexAddressModeToD3DAddressMode(TEXTURE_ADDRESS_MODE Mode)
56  {
57  switch(Mode)
58  {
59  case TEXTURE_ADDRESS_UNKNOWN: UNEXPECTED("Texture address mode is not specified" ); return D3D_TEXTURE_ADDRESS_CLAMP;
60  case TEXTURE_ADDRESS_WRAP: return D3D_TEXTURE_ADDRESS_WRAP;
61  case TEXTURE_ADDRESS_MIRROR: return D3D_TEXTURE_ADDRESS_MIRROR;
62  case TEXTURE_ADDRESS_CLAMP: return D3D_TEXTURE_ADDRESS_CLAMP;
63  case TEXTURE_ADDRESS_BORDER: return D3D_TEXTURE_ADDRESS_BORDER;
64  case TEXTURE_ADDRESS_MIRROR_ONCE: return D3D_TEXTURE_ADDRESS_MIRROR_ONCE;
65  default: UNEXPECTED("Unknown texture address mode" ); return D3D_TEXTURE_ADDRESS_CLAMP;
66  }
67  }
68 
69  template<typename D3D_PRIM_TOPOLOGY>
70  D3D_PRIM_TOPOLOGY TopologyToD3DTopology(PRIMITIVE_TOPOLOGY Topology)
71  {
72  static bool bIsInit = false;
73  static D3D_PRIM_TOPOLOGY d3dPrimTopology[PRIMITIVE_TOPOLOGY_NUM_TOPOLOGIES] = {};
74  if( !bIsInit )
75  {
76  d3dPrimTopology[PRIMITIVE_TOPOLOGY_UNDEFINED] = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED;
77  d3dPrimTopology[PRIMITIVE_TOPOLOGY_TRIANGLE_LIST] = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST;
78  d3dPrimTopology[PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP] = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP;
79  d3dPrimTopology[PRIMITIVE_TOPOLOGY_POINT_LIST] = D3D_PRIMITIVE_TOPOLOGY_POINTLIST;
80  d3dPrimTopology[PRIMITIVE_TOPOLOGY_LINE_LIST] = D3D_PRIMITIVE_TOPOLOGY_LINELIST;
81  d3dPrimTopology[PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST;
82  d3dPrimTopology[PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST;
83  d3dPrimTopology[PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST;
84  d3dPrimTopology[PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST;
85  d3dPrimTopology[PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST;
86  d3dPrimTopology[PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST;
87  d3dPrimTopology[PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST;
88  d3dPrimTopology[PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST;
89  d3dPrimTopology[PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST;
90  d3dPrimTopology[PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST;
91  d3dPrimTopology[PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST;
92  d3dPrimTopology[PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST;
93  d3dPrimTopology[PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST;
94  d3dPrimTopology[PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST;
95  d3dPrimTopology[PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST;
96  d3dPrimTopology[PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST;
97  d3dPrimTopology[PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST;
98  d3dPrimTopology[PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST;
99  d3dPrimTopology[PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST;
100  d3dPrimTopology[PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST;
101  d3dPrimTopology[PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST;
102  d3dPrimTopology[PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST;
103  d3dPrimTopology[PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST;
104  d3dPrimTopology[PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST;
105  d3dPrimTopology[PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST;
106  d3dPrimTopology[PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST;
107  d3dPrimTopology[PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST;
108  d3dPrimTopology[PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST;
109  d3dPrimTopology[PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST;
110  d3dPrimTopology[PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST;
111  d3dPrimTopology[PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST;
112  d3dPrimTopology[PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST] = D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST;
113 
114  bIsInit = true;
115  }
116 
117  VERIFY_EXPR(Topology >= PRIMITIVE_TOPOLOGY_UNDEFINED && Topology<PRIMITIVE_TOPOLOGY_NUM_TOPOLOGIES);
118  return d3dPrimTopology[Topology];
119  }
120 
121 
122  // ================= Rasterizer state attributes conversion functions =================
123 
124  template<typename D3D_FILL_MODE>
125  D3D_FILL_MODE FillModeToD3DFillMode(FILL_MODE FillMode)
126  {
127  // D3D12_FILL_MODE is identical tp D3D11_FILL_MODE
128  static bool bIsInit = false;
129  static D3D_FILL_MODE d3dFillModes[FILL_MODE_NUM_MODES] = {};
130  if( !bIsInit )
131  {
132  d3dFillModes[ FILL_MODE_WIREFRAME ] = D3D_FILL_MODE_WIREFRAME;
133  d3dFillModes[ FILL_MODE_SOLID ] = D3D_FILL_MODE_SOLID;
134 
135  bIsInit = true;
136  }
137  if( FILL_MODE_UNDEFINED < FillMode && FillMode < FILL_MODE_NUM_MODES )
138  {
139  auto d3dFillMode = d3dFillModes[FillMode];
140  VERIFY( d3dFillMode != 0, "Incorrect fill mode" );
141  return d3dFillMode;
142  }
143  else
144  {
145  UNEXPECTED( "Incorrect fill mode (", FillMode, ")" );
146  return static_cast<D3D_FILL_MODE>(0);
147  }
148  }
149 
150  template<typename D3D_CULL_MODE>
151  D3D_CULL_MODE CullModeToD3DCullMode( CULL_MODE CullMode )
152  {
153  // D3D_CULL_MODE is identical to D3D11_CULL_MODE
154  static bool bIsInit = false;
155  static D3D_CULL_MODE d3dCullModes[CULL_MODE_NUM_MODES] = {};
156  if( !bIsInit )
157  {
158  d3dCullModes[ CULL_MODE_NONE ] = D3D_CULL_MODE_NONE;
159  d3dCullModes[ CULL_MODE_FRONT ] = D3D_CULL_MODE_FRONT;
160  d3dCullModes[ CULL_MODE_BACK ] = D3D_CULL_MODE_BACK;
161 
162  bIsInit = true;
163  }
164 
165  if( CULL_MODE_UNDEFINED < CullMode && CullMode < CULL_MODE_NUM_MODES )
166  {
167  auto d3dCullMode = d3dCullModes[CullMode];
168  VERIFY( d3dCullMode != 0, "Incorrect cull mode" );
169  return d3dCullMode;
170  }
171  else
172  {
173  UNEXPECTED( "Incorrect cull mode (", CullMode, ")" );
174  return static_cast<D3D_CULL_MODE>(0);
175  }
176  }
177 
178  template<typename D3D_RASTERIZER_DESC, typename D3D_FILL_MODE, typename D3D_CULL_MODE>
179  void RasterizerStateDesc_To_D3D_RASTERIZER_DESC(const RasterizerStateDesc &RasterizerDesc, D3D_RASTERIZER_DESC &d3dRSDesc)
180  {
181  d3dRSDesc.FillMode = FillModeToD3DFillMode<D3D_FILL_MODE>(RasterizerDesc.FillMode);
182  d3dRSDesc.CullMode = CullModeToD3DCullMode<D3D_CULL_MODE>(RasterizerDesc.CullMode);
183  d3dRSDesc.FrontCounterClockwise = RasterizerDesc.FrontCounterClockwise ? TRUE : FALSE;
184  d3dRSDesc.DepthBias = RasterizerDesc.DepthBias;
185  d3dRSDesc.DepthBiasClamp = RasterizerDesc.DepthBiasClamp;
186  d3dRSDesc.SlopeScaledDepthBias = RasterizerDesc.SlopeScaledDepthBias;
187  d3dRSDesc.DepthClipEnable = RasterizerDesc.DepthClipEnable ? TRUE : FALSE;
188 
189  //d3d12RSDesc.ScissorEnable = RSDesc.ScissorEnable ? TRUE : FALSE;
190 
191  d3dRSDesc.AntialiasedLineEnable = RasterizerDesc.AntialiasedLineEnable ? TRUE : FALSE;
192  d3dRSDesc.MultisampleEnable = d3dRSDesc.AntialiasedLineEnable;
193  }
194 
195 
196 
197  // ================= Blend state attributes conversion functions =================
198 
199  template<typename D3D_BLEND>
200  D3D_BLEND BlendFactorToD3DBlend( BLEND_FACTOR bf )
201  {
202  // D3D11_BLEND and D3D12_BLEND are identical
203 
204  // Note that this code is safe for multithreaded environments since
205  // bIsInit is set to true only AFTER the entire map is initialized.
206  static bool bIsInit = false;
207  static D3D_BLEND D3DBlend[BLEND_FACTOR_NUM_FACTORS] = {};
208  if( !bIsInit )
209  {
210  // In a multithreaded environment, several threads can potentially enter
211  // this block. This is not a problem since they will just initialize the
212  // memory with the same values more than once
213  D3DBlend[ BLEND_FACTOR_ZERO ] = D3D_BLEND_ZERO;
214  D3DBlend[ BLEND_FACTOR_ONE ] = D3D_BLEND_ONE;
215  D3DBlend[ BLEND_FACTOR_SRC_COLOR ] = D3D_BLEND_SRC_COLOR;
216  D3DBlend[ BLEND_FACTOR_INV_SRC_COLOR ] = D3D_BLEND_INV_SRC_COLOR;
217  D3DBlend[ BLEND_FACTOR_SRC_ALPHA ] = D3D_BLEND_SRC_ALPHA;
218  D3DBlend[ BLEND_FACTOR_INV_SRC_ALPHA ] = D3D_BLEND_INV_SRC_ALPHA;
219  D3DBlend[ BLEND_FACTOR_DEST_ALPHA ] = D3D_BLEND_DEST_ALPHA;
220  D3DBlend[ BLEND_FACTOR_INV_DEST_ALPHA ] = D3D_BLEND_INV_DEST_ALPHA;
221  D3DBlend[ BLEND_FACTOR_DEST_COLOR ] = D3D_BLEND_DEST_COLOR;
222  D3DBlend[ BLEND_FACTOR_INV_DEST_COLOR ] = D3D_BLEND_INV_DEST_COLOR;
223  D3DBlend[ BLEND_FACTOR_SRC_ALPHA_SAT ] = D3D_BLEND_SRC_ALPHA_SAT;
224  D3DBlend[ BLEND_FACTOR_BLEND_FACTOR ] = D3D_BLEND_BLEND_FACTOR;
225  D3DBlend[ BLEND_FACTOR_INV_BLEND_FACTOR ] = D3D_BLEND_INV_BLEND_FACTOR;
226  D3DBlend[ BLEND_FACTOR_SRC1_COLOR ] = D3D_BLEND_SRC1_COLOR;
227  D3DBlend[ BLEND_FACTOR_INV_SRC1_COLOR ] = D3D_BLEND_INV_SRC1_COLOR;
228  D3DBlend[ BLEND_FACTOR_SRC1_ALPHA ] = D3D_BLEND_SRC1_ALPHA;
229  D3DBlend[ BLEND_FACTOR_INV_SRC1_ALPHA ] = D3D_BLEND_INV_SRC1_ALPHA;
230 
231  bIsInit = true;
232  }
234  {
235  auto d3dbf = D3DBlend[bf];
236  VERIFY( d3dbf != 0, "Incorrect blend factor" );
237  return d3dbf;
238  }
239  else
240  {
241  UNEXPECTED("Incorrect blend factor (", bf, ")" );
242  return static_cast<D3D_BLEND>( 0 );
243  }
244  }
245 
246  template<typename D3D_BLEND_OP>
247  D3D_BLEND_OP BlendOperationToD3DBlendOp( BLEND_OPERATION BlendOp )
248  {
249  // D3D12_BLEND_OP and D3D11_BLEND_OP are identical
250 
251  static bool bIsInit = false;
252  static D3D_BLEND_OP D3DBlendOp[BLEND_OPERATION_NUM_OPERATIONS] = {};
253  if( !bIsInit )
254  {
255  D3DBlendOp[ BLEND_OPERATION_ADD ] = D3D_BLEND_OP_ADD;
256  D3DBlendOp[ BLEND_OPERATION_SUBTRACT ] = D3D_BLEND_OP_SUBTRACT;
257  D3DBlendOp[ BLEND_OPERATION_REV_SUBTRACT ] = D3D_BLEND_OP_REV_SUBTRACT;
258  D3DBlendOp[ BLEND_OPERATION_MIN ] = D3D_BLEND_OP_MIN;
259  D3DBlendOp[ BLEND_OPERATION_MAX ] = D3D_BLEND_OP_MAX;
260 
261  bIsInit = true;
262  }
263 
264  if( BlendOp > BLEND_OPERATION_UNDEFINED && BlendOp < BLEND_OPERATION_NUM_OPERATIONS )
265  {
266  auto d3dbop = D3DBlendOp[BlendOp];
267  VERIFY( d3dbop != 0, "Incorrect blend operation" );
268  return d3dbop;
269  }
270  else
271  {
272  UNEXPECTED( "Incorrect blend operation (", BlendOp, ")" );
273  return static_cast<D3D_BLEND_OP>(0);
274  }
275  }
276 
277  template<typename D3D_BLEND_DESC, typename D3D_BLEND, typename D3D_BLEND_OP>
278  void BlendStateDescToD3DBlendDesc(const BlendStateDesc &BSDesc, D3D_BLEND_DESC &d3d12BlendDesc)
279  {
280  // D3D_BLEND_DESC and D3D11_BLEND_DESC structures are identical
281  d3d12BlendDesc.AlphaToCoverageEnable = BSDesc.AlphaToCoverageEnable ? TRUE : FALSE;
282  d3d12BlendDesc.IndependentBlendEnable = BSDesc.IndependentBlendEnable ? TRUE : FALSE;
283  VERIFY( BSDesc.MaxRenderTargets >= 8, "Number of render targets is expected to be at least 8" );
284  for( int i = 0; i < 8; ++i )
285  {
286  const auto& SrcRTDesc = BSDesc.RenderTargets[i];
287  auto &DstRTDesc = d3d12BlendDesc.RenderTarget[i];
288  DstRTDesc.BlendEnable = SrcRTDesc.BlendEnable ? TRUE : FALSE;
289 
290  DstRTDesc.SrcBlend = BlendFactorToD3DBlend<D3D_BLEND>(SrcRTDesc.SrcBlend);
291  DstRTDesc.DestBlend = BlendFactorToD3DBlend<D3D_BLEND>(SrcRTDesc.DestBlend);
292  DstRTDesc.BlendOp = BlendOperationToD3DBlendOp<D3D_BLEND_OP>(SrcRTDesc.BlendOp);
293 
294  DstRTDesc.SrcBlendAlpha = BlendFactorToD3DBlend<D3D_BLEND>(SrcRTDesc.SrcBlendAlpha);
295  DstRTDesc.DestBlendAlpha = BlendFactorToD3DBlend<D3D_BLEND>(SrcRTDesc.DestBlendAlpha);
296  DstRTDesc.BlendOpAlpha = BlendOperationToD3DBlendOp<D3D_BLEND_OP>(SrcRTDesc.BlendOpAlpha);
297 
298  DstRTDesc.RenderTargetWriteMask =
299  ((SrcRTDesc.RenderTargetWriteMask & COLOR_MASK_RED) ? D3D_COLOR_WRITE_ENABLE_RED : 0) |
300  ((SrcRTDesc.RenderTargetWriteMask & COLOR_MASK_GREEN) ? D3D_COLOR_WRITE_ENABLE_GREEN : 0) |
301  ((SrcRTDesc.RenderTargetWriteMask & COLOR_MASK_BLUE) ? D3D_COLOR_WRITE_ENABLE_BLUE : 0) |
302  ((SrcRTDesc.RenderTargetWriteMask & COLOR_MASK_ALPHA) ? D3D_COLOR_WRITE_ENABLE_ALPHA : 0);
303  }
304  }
305 
306 
307 
308  // ====================== Depth-stencil state attributes conversion functions ======================
309 
310  template<typename D3D_STENCIL_OP>
311  D3D_STENCIL_OP StencilOpToD3DStencilOp( STENCIL_OP StencilOp )
312  {
313  static bool bIsInit = false;
314  static D3D_STENCIL_OP StOpToD3DStOpMap[STENCIL_OP_NUM_OPS] = {};
315  if( !bIsInit )
316  {
317  StOpToD3DStOpMap[ STENCIL_OP_KEEP ] = D3D_STENCIL_OP_KEEP;
318  StOpToD3DStOpMap[ STENCIL_OP_ZERO ] = D3D_STENCIL_OP_ZERO;
319  StOpToD3DStOpMap[ STENCIL_OP_REPLACE ] = D3D_STENCIL_OP_REPLACE;
320  StOpToD3DStOpMap[ STENCIL_OP_INCR_SAT ] = D3D_STENCIL_OP_INCR_SAT;
321  StOpToD3DStOpMap[ STENCIL_OP_DECR_SAT ] = D3D_STENCIL_OP_DECR_SAT;
322  StOpToD3DStOpMap[ STENCIL_OP_INVERT ] = D3D_STENCIL_OP_INVERT;
323  StOpToD3DStOpMap[ STENCIL_OP_INCR_WRAP] = D3D_STENCIL_OP_INCR;
324  StOpToD3DStOpMap[ STENCIL_OP_DECR_WRAP] = D3D_STENCIL_OP_DECR;
325 
326  bIsInit = true;
327  }
328 
329  if( StencilOp > STENCIL_OP_UNDEFINED && StencilOp < STENCIL_OP_NUM_OPS )
330  {
331  auto d3dStencilOp = StOpToD3DStOpMap[StencilOp];
332  VERIFY( d3dStencilOp != 0, "Unexpected stencil op" );
333  return d3dStencilOp;
334  }
335  else
336  {
337  UNEXPECTED( "Stencil operation (", StencilOp, ") is out of allowed range [1, ", STENCIL_OP_NUM_OPS - 1, "]" );
338  return static_cast<D3D_STENCIL_OP>(0);
339  }
340  }
341 
342  template<typename D3D_DEPTH_STENCILOP_DESC, typename D3D_STENCIL_OP, typename D3D_COMPARISON_FUNC>
343  D3D_DEPTH_STENCILOP_DESC StencilOpDescToD3DStencilOpDesc(const StencilOpDesc &StOpDesc)
344  {
345  // D3D12_DEPTH_STENCILOP_DESC is identical to D3D11_DEPTH_STENCILOP_DESC
346  D3D_DEPTH_STENCILOP_DESC D3DStOpDesc;
347  D3DStOpDesc.StencilFailOp = StencilOpToD3DStencilOp<D3D_STENCIL_OP>( StOpDesc.StencilFailOp );
348  D3DStOpDesc.StencilDepthFailOp = StencilOpToD3DStencilOp<D3D_STENCIL_OP>( StOpDesc.StencilDepthFailOp );
349  D3DStOpDesc.StencilPassOp = StencilOpToD3DStencilOp<D3D_STENCIL_OP>( StOpDesc.StencilPassOp );
350  D3DStOpDesc.StencilFunc = ComparisonFuncToD3DComparisonFunc<D3D_COMPARISON_FUNC>( StOpDesc.StencilFunc );
351  return D3DStOpDesc;
352  }
353 
354  template<typename D3D_DEPTH_STENCIL_DESC, typename D3D_DEPTH_STENCILOP_DESC, typename D3D_STENCIL_OP, typename D3D_COMPARISON_FUNC>
355  void DepthStencilStateDesc_To_D3D_DEPTH_STENCIL_DESC(const DepthStencilStateDesc &DepthStencilDesc, D3D_DEPTH_STENCIL_DESC &d3dDSSDesc)
356  {
357  // D3D_DEPTH_STENCIL_DESC is identical to D3D11_DEPTH_STENCIL_DESC
358  d3dDSSDesc.DepthEnable = DepthStencilDesc.DepthEnable ? TRUE : FALSE;
359  d3dDSSDesc.DepthWriteMask = DepthStencilDesc.DepthWriteEnable ? D3D_DEPTH_WRITE_MASK_ALL : D3D_DEPTH_WRITE_MASK_ZERO;
360  d3dDSSDesc.DepthFunc = ComparisonFuncToD3DComparisonFunc<D3D_COMPARISON_FUNC>( DepthStencilDesc.DepthFunc );
361  d3dDSSDesc.StencilEnable = DepthStencilDesc.StencilEnable ? TRUE : FALSE;
362  d3dDSSDesc.StencilReadMask = DepthStencilDesc.StencilReadMask;
363  d3dDSSDesc.StencilWriteMask = DepthStencilDesc.StencilWriteMask;
364  d3dDSSDesc.FrontFace = StencilOpDescToD3DStencilOpDesc<D3D_DEPTH_STENCILOP_DESC, D3D_STENCIL_OP, D3D_COMPARISON_FUNC>( DepthStencilDesc.FrontFace );
365  d3dDSSDesc.BackFace = StencilOpDescToD3DStencilOpDesc<D3D_DEPTH_STENCILOP_DESC, D3D_STENCIL_OP, D3D_COMPARISON_FUNC>( DepthStencilDesc.BackFace );
366  }
367 
368 
369 
370  template<typename D3D_INPUT_ELEMENT_DESC>
371  void LayoutElements_To_D3D_INPUT_ELEMENT_DESCs(const std::vector<LayoutElement, STDAllocatorRawMem<LayoutElement> > &LayoutElements, std::vector<D3D_INPUT_ELEMENT_DESC, STDAllocatorRawMem<D3D_INPUT_ELEMENT_DESC>> &D3DInputElements)
372  {
373  // D3D12_INPUT_ELEMENT_DESC and D3D11_INPUT_ELEMENT_DESC are identical
374  auto NumElements = LayoutElements.size();
375  D3DInputElements.resize(NumElements);
376  for(Uint32 iElem=0; iElem < NumElements; ++iElem)
377  {
378  const auto &CurrElem = LayoutElements[iElem];
379  auto &D3DElem = D3DInputElements[iElem];
380  D3DElem.SemanticName = "ATTRIB";
381  D3DElem.SemanticIndex = CurrElem.InputIndex;
382  D3DElem.AlignedByteOffset = CurrElem.RelativeOffset;
383  D3DElem.InputSlot = CurrElem.BufferSlot;
384  D3DElem.Format = TypeToDXGI_Format(CurrElem.ValueType, CurrElem.NumComponents, CurrElem.IsNormalized);
385  D3DElem.InputSlotClass = (CurrElem.Frequency == LayoutElement::FREQUENCY_PER_VERTEX) ? D3D_INPUT_CLASSIFICATION_PER_VERTEX_DATA : D3D_INPUT_CLASSIFICATION_PER_INSTANCE_DATA;
386  D3DElem.InstanceDataStepRate = (CurrElem.Frequency == LayoutElement::FREQUENCY_PER_VERTEX) ? 0 : CurrElem.InstanceDataStepRate;
387  }
388  }
389 
390 
391  template<typename D3D_FILTER>
392  D3D_FILTER FilterTypeToD3DFilter(FILTER_TYPE MinFilter, FILTER_TYPE MagFilter, FILTER_TYPE MipFilter)
393  {
394  switch( MinFilter )
395  {
396  // Regular filters
397  case FILTER_TYPE_POINT:
398  if( MagFilter == FILTER_TYPE_POINT )
399  {
400  if( MipFilter == FILTER_TYPE_POINT )
401  return D3D_FILTER_MIN_MAG_MIP_POINT;
402  else if( MipFilter == FILTER_TYPE_LINEAR )
403  return D3D_FILTER_MIN_MAG_POINT_MIP_LINEAR;
404  }
405  else if( MagFilter == FILTER_TYPE_LINEAR )
406  {
407  if( MipFilter == FILTER_TYPE_POINT )
408  return D3D_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT;
409  else if( MipFilter == FILTER_TYPE_LINEAR )
410  return D3D_FILTER_MIN_POINT_MAG_MIP_LINEAR;
411  }
412  break;
413 
414  case FILTER_TYPE_LINEAR:
415  if( MagFilter == FILTER_TYPE_POINT )
416  {
417  if( MipFilter == FILTER_TYPE_POINT )
418  return D3D_FILTER_MIN_LINEAR_MAG_MIP_POINT;
419  else if( MipFilter == FILTER_TYPE_LINEAR )
420  return D3D_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR;
421  }
422  else if( MagFilter == FILTER_TYPE_LINEAR )
423  {
424  if( MipFilter == FILTER_TYPE_POINT )
425  return D3D_FILTER_MIN_MAG_LINEAR_MIP_POINT;
426  else if( MipFilter == FILTER_TYPE_LINEAR )
427  return D3D_FILTER_MIN_MAG_MIP_LINEAR;
428  }
429  break;
430 
432  VERIFY( MagFilter == FILTER_TYPE_ANISOTROPIC && MipFilter == FILTER_TYPE_ANISOTROPIC,
433  "For anistropic filtering, all filters must be anisotropic" );
434  return D3D_FILTER_ANISOTROPIC;
435  break;
436 
437 
438 
439  // Comparison filters
441  if( MagFilter == FILTER_TYPE_COMPARISON_POINT )
442  {
443  if( MipFilter == FILTER_TYPE_COMPARISON_POINT )
444  return D3D_FILTER_COMPARISON_MIN_MAG_MIP_POINT;
445  else if( MipFilter == FILTER_TYPE_COMPARISON_LINEAR )
446  return D3D_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR;
447  }
448  else if( MagFilter == FILTER_TYPE_COMPARISON_LINEAR )
449  {
450  if( MipFilter == FILTER_TYPE_COMPARISON_POINT )
451  return D3D_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT;
452  else if( MipFilter == FILTER_TYPE_COMPARISON_LINEAR )
453  return D3D_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR;
454  }
455  break;
456 
458  if( MagFilter == FILTER_TYPE_COMPARISON_POINT )
459  {
460  if( MipFilter == FILTER_TYPE_COMPARISON_POINT )
461  return D3D_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT;
462  else if( MipFilter == FILTER_TYPE_COMPARISON_LINEAR )
463  return D3D_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR;
464  }
465  else if( MagFilter == FILTER_TYPE_COMPARISON_LINEAR )
466  {
467  if( MipFilter == FILTER_TYPE_COMPARISON_POINT )
468  return D3D_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT;
469  else if( MipFilter == FILTER_TYPE_COMPARISON_LINEAR )
470  return D3D_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR;
471  }
472  break;
473 
475  VERIFY( MagFilter == FILTER_TYPE_COMPARISON_ANISOTROPIC && MipFilter == FILTER_TYPE_COMPARISON_ANISOTROPIC,
476  "For comparison anistropic filtering, all filters must be anisotropic" );
477  return D3D_FILTER_COMPARISON_ANISOTROPIC;
478  break;
479 
480 
481 
482  // Minimum filters
484  if( MagFilter == FILTER_TYPE_MINIMUM_POINT )
485  {
486  if( MipFilter == FILTER_TYPE_MINIMUM_POINT )
487  return D3D_FILTER_MINIMUM_MIN_MAG_MIP_POINT;
488  else if( MipFilter == FILTER_TYPE_MINIMUM_LINEAR )
489  return D3D_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR;
490  }
491  else if( MagFilter == FILTER_TYPE_MINIMUM_LINEAR )
492  {
493  if( MipFilter == FILTER_TYPE_MINIMUM_POINT )
494  return D3D_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT;
495  else if( MipFilter == FILTER_TYPE_MINIMUM_LINEAR )
496  return D3D_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR;
497  }
498  break;
499 
501  if( MagFilter == FILTER_TYPE_MINIMUM_POINT )
502  {
503  if( MipFilter == FILTER_TYPE_MINIMUM_POINT )
504  return D3D_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT;
505  else if( MipFilter == FILTER_TYPE_MINIMUM_LINEAR )
506  return D3D_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR;
507  }
508  else if( MagFilter == FILTER_TYPE_MINIMUM_LINEAR )
509  {
510  if( MipFilter == FILTER_TYPE_MINIMUM_POINT )
511  return D3D_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT;
512  else if( MipFilter == FILTER_TYPE_MINIMUM_LINEAR )
513  return D3D_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR;
514  }
515  break;
516 
518  VERIFY( MagFilter == FILTER_TYPE_MINIMUM_ANISOTROPIC && MipFilter == FILTER_TYPE_MINIMUM_ANISOTROPIC,
519  "For minimum anistropic filtering, all filters must be anisotropic" );
520  return D3D_FILTER_MINIMUM_ANISOTROPIC;
521  break;
522 
523 
524 
525  // Maximum filters
527  if( MagFilter == FILTER_TYPE_MAXIMUM_POINT )
528  {
529  if( MipFilter == FILTER_TYPE_MAXIMUM_POINT )
530  return D3D_FILTER_MAXIMUM_MIN_MAG_MIP_POINT;
531  else if( MipFilter == FILTER_TYPE_MAXIMUM_LINEAR )
532  return D3D_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR;
533  }
534  else if( MagFilter == FILTER_TYPE_MAXIMUM_LINEAR )
535  {
536  if( MipFilter == FILTER_TYPE_MAXIMUM_POINT )
537  return D3D_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT;
538  else if( MipFilter == FILTER_TYPE_MAXIMUM_LINEAR )
539  return D3D_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR;
540  }
541  break;
542 
544  if( MagFilter == FILTER_TYPE_MAXIMUM_POINT )
545  {
546  if( MipFilter == FILTER_TYPE_MAXIMUM_POINT )
547  return D3D_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT;
548  else if( MipFilter == FILTER_TYPE_MAXIMUM_LINEAR )
549  return D3D_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR;
550  }
551  else if( MagFilter == FILTER_TYPE_MAXIMUM_LINEAR )
552  {
553  if( MipFilter == FILTER_TYPE_MAXIMUM_POINT )
554  return D3D_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT;
555  else if( MipFilter == FILTER_TYPE_MAXIMUM_LINEAR )
556  return D3D_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR;
557  }
558  break;
559 
561  VERIFY( MagFilter == FILTER_TYPE_MAXIMUM_ANISOTROPIC && MipFilter == FILTER_TYPE_MAXIMUM_ANISOTROPIC,
562  "For maximum anistropic filtering, all filters must be anisotropic" );
563  return D3D_FILTER_MAXIMUM_ANISOTROPIC;
564  break;
565  }
566 
567  UNEXPECTED( "Unsupported filter combination" );
568  return D3D_FILTER_MIN_MAG_MIP_POINT;
569  }
570 }
Interpret the vertex data as a list of points. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_POINTLIST. OpenGL counterpart: GL_POINTS.
Definition: DeviceContext.h:71
+
Comparison passes if the source data is less than or equal to the destination data. Direct3D counterpart: D3D11_COMPARISON_LESS_EQUAL/D3D12_COMPARISON_FUNC_LESS_EQUAL. OpenGL counterpart: GL_LEQUAL.
Definition: GraphicsTypes.h:866
+
BLEND_OPERATION
Blending operation.
Definition: BlendState.h:130
+
Undefined blend factor.
Definition: BlendState.h:46
+
Rasterize triangles using wireframe fill. Direct3D counterpart: D3D11_FILL_WIREFRAME/D3D12_FILL_MOD...
Definition: RasterizerState.h:47
+
Interpret the vertex data as a list of 20 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:155
+
Comparison always passes. Direct3D counterpart: D3D11_COMPARISON_ALWAYS/D3D12_COMPARISON_FUNC_ALWAY...
Definition: GraphicsTypes.h:882
+
Helper value that stores the total number of blend operations in the enumeration. ...
Definition: BlendState.h:156
+
The blend factor is one. Direct3D counterpart: D3D11_BLEND_ONE/D3D12_BLEND_ONE. OpenGL counterpart: ...
Definition: BlendState.h:54
+
Maximum-linear filtering (DX12 only)
Definition: GraphicsTypes.h:793
+
Allow data to be stored in the blue component.
Definition: BlendState.h:172
+
PRIMITIVE_TOPOLOGY
Input primitive topology.
Definition: DeviceContext.h:56
+
STENCIL_OP
Stencil operation.
Definition: DepthStencilState.h:42
+
Interpret the vertex data as a list of 11 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:119
+
Helper value that stores the total number of blend factors in the enumeration.
Definition: BlendState.h:118
+
Comparison passes if the source data is equal to the destination data. Direct3D counterpart: D3D11_C...
Definition: GraphicsTypes.h:862
+
The blend factor is 1-A, where A is the second alpha data output from a pixel shader. Direct3D counterpart: D3D11_BLEND_INV_SRC1_ALPHA/D3D12_BLEND_INV_SRC1_ALPHA. OpenGL counterpart: GL_ONE_MINUS_SRC1_ALPHA.
Definition: BlendState.h:115
+
Helper value that stores the total number of fill modes in the enumeration.
Definition: RasterizerState.h:54
+
Texture coordinates outside the range [0.0, 1.0] are set to the texture color at 0.0 or 1.0, respectively. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_CLAMP/D3D12_TEXTURE_ADDRESS_MODE_CLAMP. OpenGL counterpart: GL_CLAMP_TO_EDGE.
Definition: GraphicsTypes.h:821
+
Comparison never passes. Direct3D counterpart: D3D11_COMPARISON_NEVER/D3D12_COMPARISON_FUNC_NEVER. OpenGL counterpart: GL_NEVER.
Definition: GraphicsTypes.h:854
+
Comparison-anisotropic filtering.
Definition: GraphicsTypes.h:788
+
Undefined blend operation.
Definition: BlendState.h:133
+
Undefined fill mode.
Definition: RasterizerState.h:43
+
Keep the existing stencil data. Direct3D counterpart: D3D11_STENCIL_OP_KEEP/D3D12_STENCIL_OP_KEEP. OpenGL counterpart: GL_KEEP.
Definition: DepthStencilState.h:49
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Add source and destination color components. Direct3D counterpart: D3D11_BLEND_OP_ADD/D3D12_BLEND_OP...
Definition: BlendState.h:137
+
Set the stencil data to the reference value set by calling IDeviceContext::SetStencilRef(). Direct3D counterpart: D3D11_STENCIL_OP_REPLACE/D3D12_STENCIL_OP_REPLACE. OpenGL counterpart: GL_REPLACE.
Definition: DepthStencilState.h:57
+
Comparison-point filtering.
Definition: GraphicsTypes.h:786
+
The blend factor is the constant blend factor set with IDeviceContext::SetBlendFactors(). Direct3D counterpart: D3D11_BLEND_BLEND_FACTOR/D3D12_BLEND_BLEND_FACTOR. OpenGL counterpart: GL_CONSTANT_COLOR.
Definition: BlendState.h:95
+
Interpret the vertex data as a list of 16 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:139
+
Subtract source color components from destination color components. Direct3D counterpart: D3D11_BLEN...
Definition: BlendState.h:145
+
Decrement the current stencil value, and clamp to 0. Direct3D counterpart: D3D11_STENCIL_OP_DECR_SAT...
Definition: DepthStencilState.h:65
+
Interpret the vertex data as a list of five control point patches. D3D counterpart: D3D_PRIMITIVE_TO...
Definition: DeviceContext.h:95
+
Interpret the vertex data as a list of 15 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:135
+
Interpret the vertex data as a list of nine control point patches. D3D counterpart: D3D_PRIMITIVE_TO...
Definition: DeviceContext.h:111
+
Interpret the vertex data as a list of 32 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:203
+
Comparison passes if the source data is greater than the destination data. Direct3D counterpart: 3D1...
Definition: GraphicsTypes.h:870
+
The blend factor is 1-RGB, where RGB is the data from a render target. Direct3D counterpart: D3D11_B...
Definition: BlendState.h:86
+
The blend factor is 1-A, where A is alpha data from a render target. Direct3D counterpart: D3D11_BLE...
Definition: BlendState.h:78
+
Allow data to be stored in the red component.
Definition: BlendState.h:166
+
TEXTURE_ADDRESS_MODE
Texture address mode.
Definition: GraphicsTypes.h:805
+
Interpret the vertex data as a list of four control point patches. D3D counterpart: D3D_PRIMITIVE_TO...
Definition: DeviceContext.h:91
+
Interpret the vertex data as a list of 30 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:195
+
Rasterize triangles using solid fill. Direct3D counterpart: D3D11_FILL_SOLID/D3D12_FILL_MODE_SOLID...
Definition: RasterizerState.h:51
+
Minimum-linear filtering (DX12 only)
Definition: GraphicsTypes.h:790
+
Interpret the vertex data as a list of 22 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:163
+
Undefined topology.
Definition: DeviceContext.h:59
+
Interpret the vertex data as a list of 24 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:171
+
Decrement the current stencil value, and wrap the value to the maximum representable unsigned value w...
Definition: DepthStencilState.h:79
+
Comparison-linear filtering.
Definition: GraphicsTypes.h:787
+
Comparison passes if the source data is less than the destination data. Direct3D counterpart: D3D11_...
Definition: GraphicsTypes.h:858
+
Interpret the vertex data as a list of lines. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_LINELIST. OpenGL counterpart: GL_LINES.
Definition: DeviceContext.h:75
+
Interpret the vertex data as a list of 19 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:151
+
Interpret the vertex data as a list of eight control point patches. D3D counterpart: D3D_PRIMITIVE_T...
Definition: DeviceContext.h:107
+
Interpret the vertex data as a list of ten control point patches. D3D counterpart: D3D_PRIMITIVE_TOP...
Definition: DeviceContext.h:115
+
The blend factor is alpha (A) data from a pixel shader. Direct3D counterpart: D3D11_BLEND_SRC_ALPHA/...
Definition: BlendState.h:66
+
Interpret the vertex data as a list of 28 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:187
+
The blend factor is the second alpha (A) data output from a pixel shader. Direct3D counterpart: D3D1...
Definition: BlendState.h:111
+
Set the stencil data to 0. Direct3D counterpart: D3D11_STENCIL_OP_ZERO/D3D12_STENCIL_OP_ZERO. OpenGL counterpart: GL_ZERO.
Definition: DepthStencilState.h:53
+
Tile the texture at every integer junction. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_WRAP/D3D12_...
Definition: GraphicsTypes.h:812
+
Maximum-anisotropic filtering (DX12 only)
Definition: GraphicsTypes.h:794
+
Undefined cull mode.
Definition: RasterizerState.h:66
+
Comparison passes if the source data is not equal to the destination data. Direct3D counterpart: D3D...
Definition: GraphicsTypes.h:874
+
Interpret the vertex data as a list of 21 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:159
+
Interpret the vertex data as a list of six control point patches. D3D counterpart: D3D_PRIMITIVE_TOP...
Definition: DeviceContext.h:99
+
Subtract destination color components from source color components. Direct3D counterpart: D3D11_BLEN...
Definition: BlendState.h:141
+
Compute the minimum of source and destination color components. Direct3D counterpart: D3D11_BLEND_OP...
Definition: BlendState.h:149
+
Comparison passes if the source data is greater than or equal to the destination data. Direct3D counterpart: D3D11_COMPARISON_GREATER_EQUAL/D3D12_COMPARISON_FUNC_GREATER_EQUAL. OpenGL counterpart: GL_GEQUAL.
Definition: GraphicsTypes.h:878
+
Maximum-point filtering (DX12 only)
Definition: GraphicsTypes.h:792
+
Interpret the vertex data as a list of 17 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:143
+
Interpret the vertex data as a list of 25 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:175
+
Interpret the vertex data as a list of 12 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:123
+
Bitwise invert the current stencil buffer value. Direct3D counterpart: D3D11_STENCIL_OP_INVERT/D3D12...
Definition: DepthStencilState.h:69
+
Texture coordinates outside the range [0.0, 1.0] are set to the border color specified specified in S...
Definition: GraphicsTypes.h:826
+
Unknown comparison function.
Definition: GraphicsTypes.h:850
+
Interpret the vertex data as a list of 13 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:127
+
Draw all triangles. Direct3D counterpart: D3D11_CULL_NONE/D3D12_CULL_MODE_NONE. OpenGL counterpart:...
Definition: RasterizerState.h:70
+
Helper value that stores the total number of stencil operations in the enumeration.
Definition: DepthStencilState.h:82
+
FILL_MODE
Fill mode.
Definition: RasterizerState.h:40
+
The blend factor is 1-RGB, where RGB is the second RGB data output from a pixel shader. Direct3D counterpart: D3D11_BLEND_INV_SRC1_COLOR/D3D12_BLEND_INV_SRC1_COLOR. OpenGL counterpart: GL_ONE_MINUS_SRC1_COLOR.
Definition: BlendState.h:107
+
Point filtering.
Definition: GraphicsTypes.h:783
+
The blend factor is 1-RGB, where RGB is the data from a pixel shader. Direct3D counterpart: D3D11_BL...
Definition: BlendState.h:62
+
Helper value that stores the total number of cull modes in the enumeration.
Definition: RasterizerState.h:83
+
Unknown mode.
Definition: GraphicsTypes.h:808
+
Do not draw triangles that are front-facing. Front- and back-facing triangles are determined by the R...
Definition: RasterizerState.h:75
+
Interpret the vertex data as a list of 26 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:179
+
Allow data to be stored in the green component.
Definition: BlendState.h:169
+
Interpret the vertex data as a list of 23 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:167
+
Increment the current stencil value, and wrap the value to zero when incrementing the maximum represe...
Definition: DepthStencilState.h:74
+
Minimum-anisotropic filtering (DX12 only)
Definition: GraphicsTypes.h:791
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
The blend factor is the second RGB data output from a pixel shader. Direct3D counterpart: D3D11_BLEN...
Definition: BlendState.h:103
+
Compute the maximum of source and destination color components. Direct3D counterpart: D3D11_BLEND_OP...
Definition: BlendState.h:153
+
FILTER_TYPE
Filter type.
Definition: GraphicsTypes.h:780
+
Interpret the vertex data as a list of 31 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:199
+
Interpret the vertex data as a list of three control point patches. D3D counterpart: D3D_PRIMITIVE_T...
Definition: DeviceContext.h:87
+
Interpret the vertex data as a triangle strip. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP...
Definition: DeviceContext.h:67
+
The blend factor is (f,f,f,1), where f = min(As, 1-Ad), As is alpha data from a pixel shader...
Definition: BlendState.h:91
+
The blend factor is RGB data from a render target. Direct3D counterpart: D3D11_BLEND_DEST_COLOR/D3D1...
Definition: BlendState.h:82
+
The blend factor is zero. Direct3D counterpart: D3D11_BLEND_ZERO/D3D12_BLEND_ZERO. OpenGL counterpart: GL_ZERO.
Definition: BlendState.h:50
+
Helper value that stores the total number of topologies in the enumeration.
Definition: DeviceContext.h:206
+
Allow data to be stored in the alpha component.
Definition: BlendState.h:175
+
The blend factor is alpha (A) data from a render target. Direct3D counterpart: D3D11_BLEND_DEST_ALPH...
Definition: BlendState.h:74
+
Interpret the vertex data as a list of one control point patches. D3D counterpart: D3D_PRIMITIVE_TOP...
Definition: DeviceContext.h:79
+
Undefined operation.
Definition: DepthStencilState.h:45
+
BLEND_FACTOR
Blend factors.
Definition: BlendState.h:43
+
Increment the current stencil value, and clamp to the maximum representable unsigned value...
Definition: DepthStencilState.h:61
+
Interpret the vertex data as a list of triangles. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_TRIANGLELI...
Definition: DeviceContext.h:63
+
COMPARISON_FUNCTION
Comparison function.
Definition: GraphicsTypes.h:847
+
Interpret the vertex data as a list of 29 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:191
+
Interpret the vertex data as a list of two control point patches. D3D counterpart: D3D_PRIMITIVE_TOP...
Definition: DeviceContext.h:83
+
Interpret the vertex data as a list of 14 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:131
+
The blend factor is one minus constant blend factor set with IDeviceContext::SetBlendFactors(). Direct3D counterpart: D3D11_BLEND_INV_BLEND_FACTOR/D3D12_BLEND_INV_BLEND_FACTOR. OpenGL counterpart: GL_ONE_MINUS_CONSTANT_COLOR.
Definition: BlendState.h:99
+
Interpret the vertex data as a list of seven control point patches. D3D counterpart: D3D_PRIMITIVE_T...
Definition: DeviceContext.h:103
+
Flip the texture at every integer junction. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_MIRROR/D3D1...
Definition: GraphicsTypes.h:816
+
Input data is per-vertex data.
Definition: InputLayout.h:71
+
The blend factor is 1-A, where A is alpha data from a pixel shader. Direct3D counterpart: D3D11_BLEN...
Definition: BlendState.h:70
+
Do not draw triangles that are back-facing. Front- and back-facing triangles are determined by the Ra...
Definition: RasterizerState.h:80
+
Interpret the vertex data as a list of 18 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:147
+
Interpret the vertex data as a list of 27 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:183
+
CULL_MODE
Cull mode.
Definition: RasterizerState.h:63
+
Anisotropic filtering.
Definition: GraphicsTypes.h:785
+
Minimum-point filtering (DX12 only)
Definition: GraphicsTypes.h:789
+
The blend factor is RGB data from a pixel shader. Direct3D counterpart: D3D11_BLEND_SRC_COLOR/D3D12_...
Definition: BlendState.h:58
+
Linear filtering.
Definition: GraphicsTypes.h:784
+
Similar to TEXTURE_ADDRESS_MIRROR and TEXTURE_ADDRESS_CLAMP. Takes the absolute value of the texture ...
Definition: GraphicsTypes.h:833
+
+ + + + + diff --git a/doc/html/_d3_d_view_desc_conversion_impl_8h_source.html b/doc/html/_d3_d_view_desc_conversion_impl_8h_source.html new file mode 100644 index 00000000..38a634ac --- /dev/null +++ b/doc/html/_d3_d_view_desc_conversion_impl_8h_source.html @@ -0,0 +1,100 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3DBase/include/D3DViewDescConversionImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
D3DViewDescConversionImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
30 
31 #include "DXGITypeConversions.h"
32 
33 namespace Diligent
34 {
35  template<typename D3D_SHADER_RESOURCE_VIEW_DESC>
36  void TextureViewDesc_to_D3D_SRV_DESC(const TextureViewDesc& SRVDesc, D3D_SHADER_RESOURCE_VIEW_DESC &d3dSRVDesc, Uint32 SampleCount)
37  {
38  memset(&d3dSRVDesc, 0, sizeof(d3dSRVDesc));
39  d3dSRVDesc.Format = TexFormatToDXGI_Format(SRVDesc.Format, BIND_SHADER_RESOURCE);
40 
41  switch (SRVDesc.TextureDim)
42  {
44  d3dSRVDesc.ViewDimension = D3D_SRV_DIMENSION_TEXTURE1D;
45  d3dSRVDesc.Texture1D.MipLevels = SRVDesc.NumMipLevels;
46  d3dSRVDesc.Texture1D.MostDetailedMip = SRVDesc.MostDetailedMip;
47  break;
48 
50  d3dSRVDesc.ViewDimension = D3D_SRV_DIMENSION_TEXTURE1DARRAY;
51  d3dSRVDesc.Texture1DArray.ArraySize = SRVDesc.NumArraySlices;
52  d3dSRVDesc.Texture1DArray.FirstArraySlice = SRVDesc.FirstArraySlice;
53  d3dSRVDesc.Texture1DArray.MipLevels = SRVDesc.NumMipLevels;
54  d3dSRVDesc.Texture1DArray.MostDetailedMip = SRVDesc.MostDetailedMip;
55  break;
56 
58  if( SampleCount > 1 )
59  {
60  d3dSRVDesc.ViewDimension = D3D_SRV_DIMENSION_TEXTURE2DMS;
61  d3dSRVDesc.Texture2DMS.UnusedField_NothingToDefine = 0;
62  }
63  else
64  {
65  d3dSRVDesc.ViewDimension = D3D_SRV_DIMENSION_TEXTURE2D;
66  d3dSRVDesc.Texture2D.MipLevels = SRVDesc.NumMipLevels;
67  d3dSRVDesc.Texture2D.MostDetailedMip = SRVDesc.MostDetailedMip;
68  }
69  break;
70 
72  if( SampleCount > 1 )
73  {
74  d3dSRVDesc.ViewDimension = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY;
75  d3dSRVDesc.Texture2DMSArray.ArraySize = SRVDesc.NumArraySlices;
76  d3dSRVDesc.Texture2DMSArray.FirstArraySlice = SRVDesc.FirstArraySlice;
77  }
78  else
79  {
80  d3dSRVDesc.ViewDimension = D3D_SRV_DIMENSION_TEXTURE2DARRAY;
81  d3dSRVDesc.Texture2DArray.ArraySize = SRVDesc.NumArraySlices;
82  d3dSRVDesc.Texture2DArray.FirstArraySlice = SRVDesc.FirstArraySlice;
83  d3dSRVDesc.Texture2DArray.MipLevels = SRVDesc.NumMipLevels;
84  d3dSRVDesc.Texture2DArray.MostDetailedMip = SRVDesc.MostDetailedMip;
85  }
86  break;
87 
89  d3dSRVDesc.ViewDimension = D3D_SRV_DIMENSION_TEXTURE3D;
90  d3dSRVDesc.Texture3D.MipLevels = SRVDesc.NumMipLevels;
91  d3dSRVDesc.Texture3D.MostDetailedMip = SRVDesc.MostDetailedMip;
92  break;
93 
95  d3dSRVDesc.ViewDimension = D3D_SRV_DIMENSION_TEXTURECUBE;
96  d3dSRVDesc.TextureCube.MipLevels = SRVDesc.NumMipLevels;
97  d3dSRVDesc.TextureCube.MostDetailedMip = SRVDesc.MostDetailedMip;
98  break;
99 
101  d3dSRVDesc.ViewDimension = D3D_SRV_DIMENSION_TEXTURECUBEARRAY;
102  d3dSRVDesc.TextureCubeArray.MipLevels = SRVDesc.NumMipLevels;
103  d3dSRVDesc.TextureCubeArray.MostDetailedMip = SRVDesc.MostDetailedMip;
104  d3dSRVDesc.TextureCubeArray.First2DArrayFace = SRVDesc.FirstArraySlice;
105  d3dSRVDesc.TextureCubeArray.NumCubes = SRVDesc.NumArraySlices / 6;
106  break;
107 
108  default:
109  UNEXPECTED( "Unexpected view type" );
110  }
111  }
112 
113  template<typename D3D_RENDER_TARGET_VIEW_DESC>
114  void TextureViewDesc_to_D3D_RTV_DESC(const TextureViewDesc& RTVDesc, D3D_RENDER_TARGET_VIEW_DESC &d3dRTVDesc, Uint32 SampleCount)
115  {
116  memset(&d3dRTVDesc, 0, sizeof(d3dRTVDesc));
117  d3dRTVDesc.Format = TexFormatToDXGI_Format(RTVDesc.Format, BIND_RENDER_TARGET);
118 
119  switch(RTVDesc.TextureDim)
120  {
121  case RESOURCE_DIM_TEX_1D:
122  d3dRTVDesc.ViewDimension = D3D_RTV_DIMENSION_TEXTURE1D;
123  d3dRTVDesc.Texture1D.MipSlice = RTVDesc.MostDetailedMip;
124  break;
125 
127  d3dRTVDesc.ViewDimension = D3D_RTV_DIMENSION_TEXTURE1DARRAY;
128  d3dRTVDesc.Texture1DArray.ArraySize = RTVDesc.NumArraySlices;
129  d3dRTVDesc.Texture1DArray.FirstArraySlice = RTVDesc.FirstArraySlice;
130  d3dRTVDesc.Texture1DArray.MipSlice = RTVDesc.MostDetailedMip;
131  break;
132 
133 
134  case RESOURCE_DIM_TEX_2D:
135  if( SampleCount > 1 )
136  {
137  d3dRTVDesc.ViewDimension = D3D_RTV_DIMENSION_TEXTURE2DMS;
138  d3dRTVDesc.Texture2DMS.UnusedField_NothingToDefine = 0;
139  }
140  else
141  {
142  d3dRTVDesc.ViewDimension = D3D_RTV_DIMENSION_TEXTURE2D;
143  d3dRTVDesc.Texture2D.MipSlice = RTVDesc.MostDetailedMip;
144  }
145  break;
146 
148  if( SampleCount > 1 )
149  {
150  d3dRTVDesc.ViewDimension = D3D_RTV_DIMENSION_TEXTURE2DMSARRAY;
151  d3dRTVDesc.Texture2DMSArray.ArraySize = RTVDesc.NumArraySlices;
152  d3dRTVDesc.Texture2DMSArray.FirstArraySlice = RTVDesc.FirstArraySlice;
153  }
154  else
155  {
156  d3dRTVDesc.ViewDimension = D3D_RTV_DIMENSION_TEXTURE2DARRAY;
157  d3dRTVDesc.Texture2DArray.ArraySize = RTVDesc.NumArraySlices;
158  d3dRTVDesc.Texture2DArray.FirstArraySlice = RTVDesc.FirstArraySlice;
159  d3dRTVDesc.Texture2DArray.MipSlice = RTVDesc.MostDetailedMip;
160  }
161  break;
162 
163  case RESOURCE_DIM_TEX_3D:
164  d3dRTVDesc.ViewDimension = D3D_RTV_DIMENSION_TEXTURE3D;
165  d3dRTVDesc.Texture3D.FirstWSlice = RTVDesc.FirstDepthSlice;
166  d3dRTVDesc.Texture3D.WSize = RTVDesc.NumDepthSlices;
167  d3dRTVDesc.Texture3D.MipSlice = RTVDesc.MostDetailedMip;
168  break;
169 
170  default:
171  UNEXPECTED( "Unexpected view type" );
172  }
173  }
174 
175  template<typename D3D_DEPTH_STENCIL_VIEW_DESC>
176  void TextureViewDesc_to_D3D_DSV_DESC(const TextureViewDesc& DSVDesc, D3D_DEPTH_STENCIL_VIEW_DESC &d3dDSVDesc, Uint32 SampleCount)
177  {
178  memset(&d3dDSVDesc, 0, sizeof(d3dDSVDesc));
179  d3dDSVDesc.Format = TexFormatToDXGI_Format(DSVDesc.Format, BIND_DEPTH_STENCIL);
180 
181  switch(DSVDesc.TextureDim)
182  {
183  case RESOURCE_DIM_TEX_1D:
184  d3dDSVDesc.ViewDimension = D3D_DSV_DIMENSION_TEXTURE1D;
185  d3dDSVDesc.Texture1D.MipSlice = DSVDesc.MostDetailedMip;
186  break;
187 
189  d3dDSVDesc.ViewDimension = D3D_DSV_DIMENSION_TEXTURE1DARRAY;
190  d3dDSVDesc.Texture1DArray.ArraySize = DSVDesc.NumArraySlices;
191  d3dDSVDesc.Texture1DArray.FirstArraySlice = DSVDesc.FirstArraySlice;
192  d3dDSVDesc.Texture1DArray.MipSlice = DSVDesc.MostDetailedMip;
193  break;
194 
195 
196  case RESOURCE_DIM_TEX_2D:
197  if( SampleCount > 1 )
198  {
199  d3dDSVDesc.ViewDimension = D3D_DSV_DIMENSION_TEXTURE2DMS;
200  d3dDSVDesc.Texture2DMS.UnusedField_NothingToDefine = 0;
201  }
202  else
203  {
204  d3dDSVDesc.ViewDimension = D3D_DSV_DIMENSION_TEXTURE2D;
205  d3dDSVDesc.Texture2D.MipSlice = DSVDesc.MostDetailedMip;
206  }
207  break;
208 
210  if( SampleCount > 1 )
211  {
212  d3dDSVDesc.ViewDimension = D3D_DSV_DIMENSION_TEXTURE2DMSARRAY;
213  d3dDSVDesc.Texture2DMSArray.ArraySize = DSVDesc.NumArraySlices;
214  d3dDSVDesc.Texture2DMSArray.FirstArraySlice = DSVDesc.FirstArraySlice;
215  }
216  else
217  {
218  d3dDSVDesc.ViewDimension = D3D_DSV_DIMENSION_TEXTURE2DARRAY;
219  d3dDSVDesc.Texture2DArray.ArraySize = DSVDesc.NumArraySlices;
220  d3dDSVDesc.Texture2DArray.FirstArraySlice = DSVDesc.FirstArraySlice;
221  d3dDSVDesc.Texture2DArray.MipSlice = DSVDesc.MostDetailedMip;
222  }
223  break;
224 
225  case RESOURCE_DIM_TEX_3D:
226  LOG_ERROR_AND_THROW("Depth stencil views are not supported for 3D textures");
227  break;
228 
229  default:
230  UNEXPECTED( "Unexpected view type" );
231  }
232  }
233 
234  template<typename D3D_UNORDERED_ACCESS_VIEW_DESC>
235  void TextureViewDesc_to_D3D_UAV_DESC(const TextureViewDesc& UAVDesc, D3D_UNORDERED_ACCESS_VIEW_DESC &d3dUAVDesc)
236  {
237  memset(&d3dUAVDesc, 0, sizeof(d3dUAVDesc));
238  d3dUAVDesc.Format = TexFormatToDXGI_Format(UAVDesc.Format, BIND_UNORDERED_ACCESS);
239 
240  switch(UAVDesc.TextureDim)
241  {
242  case RESOURCE_DIM_TEX_1D:
243  d3dUAVDesc.ViewDimension = D3D_UAV_DIMENSION_TEXTURE1D;
244  d3dUAVDesc.Texture1D.MipSlice = UAVDesc.MostDetailedMip;
245  break;
246 
248  d3dUAVDesc.ViewDimension = D3D_UAV_DIMENSION_TEXTURE1DARRAY;
249  d3dUAVDesc.Texture1DArray.ArraySize = UAVDesc.NumArraySlices;
250  d3dUAVDesc.Texture1DArray.FirstArraySlice = UAVDesc.FirstArraySlice;
251  d3dUAVDesc.Texture1DArray.MipSlice = UAVDesc.MostDetailedMip;
252  break;
253 
254  case RESOURCE_DIM_TEX_2D:
255  d3dUAVDesc.ViewDimension = D3D_UAV_DIMENSION_TEXTURE2D;
256  d3dUAVDesc.Texture2D.MipSlice = UAVDesc.MostDetailedMip;
257  break;
258 
260  d3dUAVDesc.ViewDimension = D3D_UAV_DIMENSION_TEXTURE2DARRAY;
261  d3dUAVDesc.Texture2DArray.ArraySize = UAVDesc.NumArraySlices;
262  d3dUAVDesc.Texture2DArray.FirstArraySlice = UAVDesc.FirstArraySlice;
263  d3dUAVDesc.Texture2DArray.MipSlice = UAVDesc.MostDetailedMip;
264  break;
265 
266  case RESOURCE_DIM_TEX_3D:
267  d3dUAVDesc.ViewDimension = D3D_UAV_DIMENSION_TEXTURE3D;
268  d3dUAVDesc.Texture3D.FirstWSlice = UAVDesc.FirstDepthSlice;
269  d3dUAVDesc.Texture3D.WSize = UAVDesc.NumDepthSlices;
270  d3dUAVDesc.Texture3D.MipSlice = UAVDesc.MostDetailedMip;
271  break;
272 
273  default:
274  UNEXPECTED( "Unexpected view type" );
275  }
276  }
277 
278  template<typename D3D_UNORDERED_ACCESS_VIEW_DESC>
279  void BufferViewDesc_to_D3D_SRV_DESC(const BufferDesc &BuffDesc, const BufferViewDesc& SRVDesc, D3D_UNORDERED_ACCESS_VIEW_DESC &d3dSRVDesc)
280  {
281  if( SRVDesc.ByteOffset != 0 )
282  {
283  VERIFY( BuffDesc.Mode == BUFFER_MODE_STRUCTURED, "Non-zero byte offset is only supported for structured buffers" );
284  }
285 
286  memset( &d3dSRVDesc, 0, sizeof( d3dSRVDesc ) );
287  const auto &BuffFmt = BuffDesc.Format;
288  if( BuffDesc.Mode == BUFFER_MODE_FORMATTED )
289  d3dSRVDesc.Format = TypeToDXGI_Format( BuffFmt.ValueType, BuffFmt.NumComponents, BuffFmt.IsNormalized );
290 
291  VERIFY( SRVDesc.ViewType == BUFFER_VIEW_SHADER_RESOURCE, "Incorrect view type: shader resource is expected" );
292  VERIFY( (SRVDesc.ByteOffset % BuffDesc.ElementByteStride) == 0, "Byte offest is not multiple of element byte stride" );
293  VERIFY( (SRVDesc.ByteWidth % BuffDesc.ElementByteStride) == 0, "Byte width is not multiple of element byte stride" );
294  d3dSRVDesc.Buffer.FirstElement = SRVDesc.ByteOffset / BuffDesc.ElementByteStride;
295  d3dSRVDesc.Buffer.NumElements = SRVDesc.ByteWidth / BuffDesc.ElementByteStride;
296  d3dSRVDesc.ViewDimension = D3D_SRV_DIMENSION_BUFFER;
297  }
298 
299  template<typename D3D_UNORDERED_ACCESS_VIEW_DESC>
300  void BufferViewDesc_to_D3D_UAV_DESC(const BufferDesc &BuffDesc, const BufferViewDesc& UAVDesc, D3D_UNORDERED_ACCESS_VIEW_DESC &d3dUAVDesc)
301  {
302  if( UAVDesc.ByteOffset != 0 )
303  {
304  VERIFY( BuffDesc.Mode == BUFFER_MODE_STRUCTURED, "Non-zero byte offset is only supported for structured buffers" );
305  }
306 
307  memset( &d3dUAVDesc, 0, sizeof(d3dUAVDesc) );
308  const auto &BuffFmt = BuffDesc.Format;
309  if( BuffDesc.Mode == BUFFER_MODE_FORMATTED )
310  d3dUAVDesc.Format = TypeToDXGI_Format( BuffFmt.ValueType, BuffFmt.NumComponents, BuffFmt.IsNormalized );
311 
312  VERIFY( UAVDesc.ViewType == BUFFER_VIEW_UNORDERED_ACCESS, "Incorrect view type: unordered access is expected" );
313  VERIFY( (UAVDesc.ByteOffset % BuffDesc.ElementByteStride) == 0, "Byte offest is not multiple of element byte stride" );
314  VERIFY( (UAVDesc.ByteWidth % BuffDesc.ElementByteStride) == 0, "Byte width is not multiple of element byte stride" );
315  d3dUAVDesc.Buffer.FirstElement = UAVDesc.ByteOffset / BuffDesc.ElementByteStride;
316  d3dUAVDesc.Buffer.NumElements = UAVDesc.ByteWidth / BuffDesc.ElementByteStride;
317  d3dUAVDesc.ViewDimension = D3D_UAV_DIMENSION_BUFFER;
318  }
319 }
Cube-map texture.
Definition: GraphicsTypes.h:181
+
Two-dimensional texture.
Definition: GraphicsTypes.h:178
+
A texture can be bound as a render target.
Definition: GraphicsTypes.h:71
+
One-dimensional texture.
Definition: GraphicsTypes.h:176
+
Cube-map array texture.
Definition: GraphicsTypes.h:182
+
A buffer or a texture can be bound as a shader resource.
Definition: GraphicsTypes.h:68
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
A buffer view will define an unordered access view that will be used for unordered read/write operati...
Definition: GraphicsTypes.h:230
+
Structured buffer.
Definition: Buffer.h:50
+
Formated buffer.
Definition: Buffer.h:47
+
A texture can be bound as a depth-stencil target.
Definition: GraphicsTypes.h:72
+
One-dimensional texture array.
Definition: GraphicsTypes.h:177
+
A buffer or a texture can be bound as an unordered access view.
Definition: GraphicsTypes.h:73
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
A buffer view will define a shader resource view that will be used as the source for the shader read ...
Definition: GraphicsTypes.h:226
+
Three-dimensional texture.
Definition: GraphicsTypes.h:180
+
Two-dimensional texture array.
Definition: GraphicsTypes.h:179
+
+ + + + + diff --git a/doc/html/_d_x_g_i_type_conversions_8h_source.html b/doc/html/_d_x_g_i_type_conversions_8h_source.html new file mode 100644 index 00000000..0c788f4e --- /dev/null +++ b/doc/html/_d_x_g_i_type_conversions_8h_source.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3DBase/include/DXGITypeConversions.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DXGITypeConversions.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include <dxgi.h>
30 #include "GraphicsTypes.h"
31 
32 namespace Diligent
33 {
34  DXGI_FORMAT TexFormatToDXGI_Format(TEXTURE_FORMAT TexFormat, Uint32 BindFlags = 0);
35  TEXTURE_FORMAT DXGI_FormatToTexFormat(DXGI_FORMAT DXGIFormat);
36  DXGI_FORMAT TypeToDXGI_Format(VALUE_TYPE ValType, Uint32 NumComponents, Bool bIsNormalized);
37 }
38 
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
bool Bool
Boolean.
Definition: BasicTypes.h:46
+
VALUE_TYPE
Value type.
Definition: GraphicsTypes.h:39
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
+ + + + + diff --git a/doc/html/_data_blob_8h_source.html b/doc/html/_data_blob_8h_source.html new file mode 100644 index 00000000..b147246d --- /dev/null +++ b/doc/html/_data_blob_8h_source.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Primitives/interface/DataBlob.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DataBlob.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Object.h"
30 
31 namespace Diligent
32 {
33 
34 // {F578FF0D-ABD2-4514-9D32-7CB454D4A73B}
35 static constexpr INTERFACE_ID IID_DataBlob =
36 { 0xf578ff0d, 0xabd2, 0x4514, { 0x9d, 0x32, 0x7c, 0xb4, 0x54, 0xd4, 0xa7, 0x3b } };
37 
39 class IDataBlob : public IObject
40 {
41 public:
42 
44  virtual void Resize( size_t NewSize ) = 0;
45 
47  virtual size_t GetSize() = 0;
48 
50  virtual void* GetDataPtr() = 0;
51 };
52 
53 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Base interface for a file stream.
Definition: DataBlob.h:39
+
virtual void Resize(size_t NewSize)=0
Sets the size of the internal data buffer.
+
virtual size_t GetSize()=0
Returns the size of the internal data buffer.
+
Base interface for all dynamic objects in the engine.
Definition: Object.h:36
+
virtual void * GetDataPtr()=0
Returns the pointer to the internal data buffer.
+
+ + + + + diff --git a/doc/html/_data_blob_impl_8h_source.html b/doc/html/_data_blob_impl_8h_source.html new file mode 100644 index 00000000..1d9c182f --- /dev/null +++ b/doc/html/_data_blob_impl_8h_source.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/DataBlobImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DataBlobImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BasicTypes.h"
30 #include "ObjectBase.h"
31 #include "DataBlob.h"
32 #include <vector>
33 
34 namespace Diligent
35 {
36 
38 class DataBlobImpl : public Diligent::ObjectBase<IDataBlob>
39 {
40 public:
42 
43  DataBlobImpl( IReferenceCounters *pRefCounters, size_t InitialSize = 0 );
44 
45  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override;
46 
48  virtual void Resize( size_t NewSize )override;
49 
51  virtual size_t GetSize()override;
52 
54  virtual void* GetDataPtr()override;
55 
56 private:
57  std::vector<Diligent::Uint8> m_DataBuff;
58 };
59 
60 }
Template class implementing base functionality for an object.
Definition: ObjectBase.h:62
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual void Resize(size_t NewSize) override
Sets the size of the internal data buffer.
Definition: DataBlobImpl.cpp:38
+
Base interface for a file stream.
Definition: DataBlobImpl.h:38
+
virtual void * GetDataPtr() override
Returns the pointer to the internal data buffer.
Definition: DataBlobImpl.cpp:50
+
virtual size_t GetSize() override
Returns the size of the internal data buffer.
Definition: DataBlobImpl.cpp:44
+
+ + + + + diff --git a/doc/html/_debug_utilities_8h_source.html b/doc/html/_debug_utilities_8h_source.html new file mode 100644 index 00000000..28dc61d8 --- /dev/null +++ b/doc/html/_debug_utilities_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Basic/interface/DebugUtilities.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DebugUtilities.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "FormatMessage.h"
27 #include "BasicPlatformDebug.h"
28 
29 #ifdef _DEBUG
30 
31 #include <typeinfo>
32 
33 // This function is only requried to ensure that Message argument passed to the macro
34 // is actually string and not something else
35 inline void EnsureStr( const char* ){}
36 
37 #define ASSERTION_FAILED(Message, ...)\
38 do{ \
39  EnsureStr(Message); \
40  Diligent::MsgStream ms; \
41  Diligent::FormatMsg( ms, Message, ##__VA_ARGS__);\
42  DebugAssertionFailed( ms.str().c_str(), __FUNCTION__, __FILE__, __LINE__); \
43 }while(false)
44 
45 # define VERIFY(Expr, Message, ...)\
46  do{ \
47  EnsureStr(Message); \
48  if( !(Expr) ) \
49  { \
50  ASSERTION_FAILED(Message, ##__VA_ARGS__);\
51  } \
52  }while(false)
53 
54 # define UNEXPECTED ASSERTION_FAILED
55 # define UNSUPPORTED ASSERTION_FAILED
56 
57 # define VERIFY_EXPR(Expr) VERIFY(Expr, "Debug exression failed:\n", #Expr)
58 
59 
60 template<typename DstType, typename SrcType>
61 void CheckDynamicType( SrcType *pSrcPtr )
62 {
63  VERIFY(pSrcPtr == nullptr || dynamic_cast<DstType*> (pSrcPtr) != nullptr, "Dynamic type cast failed. Src typeid: \'", typeid(*pSrcPtr).name(), "\' Dst typeid: \'", typeid(DstType).name(), '\'');
64 }
65 # define CHECK_DYNAMIC_TYPE(DstType, pSrcPtr) do{ CheckDynamicType<DstType>(pSrcPtr); }while(false)
66 
67 
68 #else
69 
70 # define CHECK_DYNAMIC_TYPE(...)do{}while(false)
71 # define VERIFY(...)do{}while(false)
72 # define UNEXPECTED(...)do{}while(false)
73 # define UNSUPPORTED(...)do{}while(false)
74 # define VERIFY_EXPR(...)do{}while(false)
75 
76 #endif
+ + + + + diff --git a/doc/html/_default_raw_memory_allocator_8h_source.html b/doc/html/_default_raw_memory_allocator_8h_source.html new file mode 100644 index 00000000..c86ed18d --- /dev/null +++ b/doc/html/_default_raw_memory_allocator_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/DefaultRawMemoryAllocator.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DefaultRawMemoryAllocator.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "MemoryAllocator.h"
30 
31 namespace Diligent
32 {
33 
34 class DefaultRawMemoryAllocator : public IMemoryAllocator
35 {
36 public:
37  DefaultRawMemoryAllocator();
38 
40  virtual void* Allocate( size_t Size, const Char* dbgDescription, const char* dbgFileName, const Int32 dbgLineNumber)override;
41 
43  virtual void Free(void *Ptr)override;
44 
45  static DefaultRawMemoryAllocator& GetAllocator();
46 
47 private:
48  DefaultRawMemoryAllocator(const DefaultRawMemoryAllocator&) = delete;
49  DefaultRawMemoryAllocator(DefaultRawMemoryAllocator&&) = delete;
50  DefaultRawMemoryAllocator& operator = (const DefaultRawMemoryAllocator&) = delete;
51  DefaultRawMemoryAllocator& operator = (DefaultRawMemoryAllocator&&) = delete;
52 };
53 
54 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_defines_8h_source.html b/doc/html/_defines_8h_source.html new file mode 100644 index 00000000..0ecd5f60 --- /dev/null +++ b/doc/html/_defines_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/Defines.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Defines.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
+ + + + + diff --git a/doc/html/_depth_stencil_state_8h_source.html b/doc/html/_depth_stencil_state_8h_source.html new file mode 100644 index 00000000..2f450073 --- /dev/null +++ b/doc/html/_depth_stencil_state_8h_source.html @@ -0,0 +1,116 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/DepthStencilState.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DepthStencilState.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BasicTypes.h"
30 
31 namespace Diligent
32 {
33 
35 
42 enum STENCIL_OP : Int32
43 {
46 
50 
54 
58 
62 
66 
70 
75 
80 
83 };
84 
86 
93 {
96 
99 
102 
106 
108 
121  {}
122 
124 
129  bool operator == (const StencilOpDesc& rhs)const
130  {
131  return StencilFailOp == rhs.StencilFailOp &&
133  StencilPassOp == rhs.StencilPassOp &&
134  StencilFunc == rhs.StencilFunc;
135  }
136 };
137 
139 
146 {
151 
154 
158 
161 
164 
167 
170 
173 
175 
188  DepthStencilStateDesc(Bool _DepthEnable = True,
189  Bool _DepthWriteEnable = True,
191  Bool _StencilEnable = False,
192  Uint8 _StencilReadMask = 0xFF,
193  Uint8 _StencilWriteMask = 0xFF) :
194  DepthEnable ( _DepthEnable ),
195  DepthWriteEnable( _DepthWriteEnable ),
196  DepthFunc ( _DepthFunc ),
197  StencilEnable ( _StencilEnable ),
198  StencilReadMask ( _StencilReadMask ),
199  StencilWriteMask( _StencilWriteMask )
200  {}
201 
203 
208  bool operator == (const DepthStencilStateDesc& rhs)const
209  {
210  return DepthEnable == rhs.DepthEnable &&
212  DepthFunc == rhs.DepthFunc &&
213  StencilEnable == rhs.StencilEnable &&
216  FrontFace == rhs.FrontFace &&
217  BackFace == rhs.BackFace;
218  }
219 };
220 
221 }
STENCIL_OP StencilPassOp
The stencil operation to perform when stencil testing and depth testing both pass.
Definition: DepthStencilState.h:101
+
COMPARISON_FUNCTION StencilFunc
A function that compares stencil data against existing stencil data. See Diligent::COMPARISON_FUNCTIO...
Definition: DepthStencilState.h:105
+
Comparison always passes. Direct3D counterpart: D3D11_COMPARISON_ALWAYS/D3D12_COMPARISON_FUNC_ALWAY...
Definition: GraphicsTypes.h:882
+
STENCIL_OP
Stencil operation.
Definition: DepthStencilState.h:42
+
Uint8 StencilWriteMask
Identify which bits of the depth-stencil buffer are accessed when writing stencil data...
Definition: DepthStencilState.h:166
+
Bool DepthEnable
Enable depth-stencil operations. When it is set to False, depth test always passes, depth writes are disabled, and no stencil operations are performed.
Definition: DepthStencilState.h:150
+
Keep the existing stencil data. Direct3D counterpart: D3D11_STENCIL_OP_KEEP/D3D12_STENCIL_OP_KEEP. OpenGL counterpart: GL_KEEP.
Definition: DepthStencilState.h:49
+
Uint8 StencilReadMask
Identify which bits of the depth-stencil buffer are accessed when reading stencil data...
Definition: DepthStencilState.h:163
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Set the stencil data to the reference value set by calling IDeviceContext::SetStencilRef(). Direct3D counterpart: D3D11_STENCIL_OP_REPLACE/D3D12_STENCIL_OP_REPLACE. OpenGL counterpart: GL_REPLACE.
Definition: DepthStencilState.h:57
+
Decrement the current stencil value, and clamp to 0. Direct3D counterpart: D3D11_STENCIL_OP_DECR_SAT...
Definition: DepthStencilState.h:65
+
DepthStencilStateDesc(Bool _DepthEnable=True, Bool _DepthWriteEnable=True, COMPARISON_FUNCTION _DepthFunc=COMPARISON_FUNC_LESS, Bool _StencilEnable=False, Uint8 _StencilReadMask=0xFF, Uint8 _StencilWriteMask=0xFF)
Initializes the structure members.
Definition: DepthStencilState.h:188
+
StencilOpDesc FrontFace
Identify stencil operations for the front-facing triangles, see Diligent::StencilOpDesc.
Definition: DepthStencilState.h:169
+
STENCIL_OP StencilFailOp
The stencil operation to perform when stencil testing fails.
Definition: DepthStencilState.h:95
+
Decrement the current stencil value, and wrap the value to the maximum representable unsigned value w...
Definition: DepthStencilState.h:79
+
Comparison passes if the source data is less than the destination data. Direct3D counterpart: D3D11_...
Definition: GraphicsTypes.h:858
+
Describes stencil operations that are performed based on the results of depth test.
Definition: DepthStencilState.h:92
+
Set the stencil data to 0. Direct3D counterpart: D3D11_STENCIL_OP_ZERO/D3D12_STENCIL_OP_ZERO. OpenGL counterpart: GL_ZERO.
Definition: DepthStencilState.h:53
+
bool operator==(const DepthStencilStateDesc &rhs) const
Tests if two structures are equivalent.
Definition: DepthStencilState.h:208
+
STENCIL_OP StencilDepthFailOp
The stencil operation to perform when stencil testing passes and depth testing fails.
Definition: DepthStencilState.h:98
+
Bool DepthWriteEnable
Enable or disable writes to a depth buffer.
Definition: DepthStencilState.h:153
+
StencilOpDesc BackFace
Identify stencil operations for the back-facing triangles, see Diligent::StencilOpDesc.
Definition: DepthStencilState.h:172
+
Bitwise invert the current stencil buffer value. Direct3D counterpart: D3D11_STENCIL_OP_INVERT/D3D12...
Definition: DepthStencilState.h:69
+
Helper value that stores the total number of stencil operations in the enumeration.
Definition: DepthStencilState.h:82
+
Bool StencilEnable
Enable stencil opertaions.
Definition: DepthStencilState.h:160
+
Depth stencil state description.
Definition: DepthStencilState.h:145
+
Increment the current stencil value, and wrap the value to zero when incrementing the maximum represe...
Definition: DepthStencilState.h:74
+
Undefined operation.
Definition: DepthStencilState.h:45
+
bool operator==(const StencilOpDesc &rhs) const
Tests if two structures are equivalent.
Definition: DepthStencilState.h:129
+
Increment the current stencil value, and clamp to the maximum representable unsigned value...
Definition: DepthStencilState.h:61
+
COMPARISON_FUNCTION
Comparison function.
Definition: GraphicsTypes.h:847
+
COMPARISON_FUNCTION DepthFunc
A function that compares depth data against existing depth data. See Diligent::COMPARISON_FUNCTION fo...
Definition: DepthStencilState.h:157
+
StencilOpDesc()
Initializes the structure members with default values.
Definition: DepthStencilState.h:116
+
+ + + + + diff --git a/doc/html/_descriptor_heap_8h_source.html b/doc/html/_descriptor_heap_8h_source.html new file mode 100644 index 00000000..ffb9bb87 --- /dev/null +++ b/doc/html/_descriptor_heap_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/DescriptorHeap.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DescriptorHeap.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 // Descriptor heap management utilities.
25 // See http://diligentgraphics.com/diligent-engine/architecture/d3d12/managing-descriptor-heaps/ for details
26 
27 #pragma once
28 
29 #include <mutex>
30 #include <vector>
31 #include <queue>
32 #include <string>
33 #include <set>
34 #include "ObjectBase.h"
35 #include "VariableSizeGPUAllocationsManager.h"
36 
37 namespace Diligent
38 {
39 
40 class DescriptorHeapAllocation;
41 class DescriptorHeapAllocationManager;
42 class RenderDeviceD3D12Impl;
43 
44 class IDescriptorAllocator
45 {
46 public:
47  // Allocate Count descriptors
48  virtual DescriptorHeapAllocation Allocate( uint32_t Count ) = 0;
49  virtual void Free(DescriptorHeapAllocation&& Allocation) = 0;
50  virtual Uint32 GetDescriptorSize()const = 0;
51 };
52 
53 
54 // The class represents descriptor heap allocation (continuous descriptor range in a descriptor heap)
55 //
56 // m_FirstCpuHandle
57 // |
58 // | ~ ~ ~ ~ ~ X X X X X X X ~ ~ ~ ~ ~ ~ | D3D12 Descriptor Heap
59 // |
60 // m_FirstGpuHandle
61 //
62 class DescriptorHeapAllocation
63 {
64 public:
65  // Creates null allocation
66  DescriptorHeapAllocation() :
67  m_NumHandles(1), // One null descriptor handle
68  m_pDescriptorHeap(nullptr),
69  m_DescriptorSize(0)
70  {
71  m_FirstCpuHandle.ptr = 0;
72  m_FirstGpuHandle.ptr = 0;
73  }
74 
75  // Initializes non-null allocation
76  DescriptorHeapAllocation( IDescriptorAllocator *pAllocator,
77  ID3D12DescriptorHeap *pHeap,
78  D3D12_CPU_DESCRIPTOR_HANDLE CpuHandle,
79  D3D12_GPU_DESCRIPTOR_HANDLE GpuHandle,
80  Uint32 NHandles,
81  Uint16 AllocationManagerId = static_cast<Uint16>(-1) ) :
82  m_FirstCpuHandle(CpuHandle),
83  m_FirstGpuHandle(GpuHandle),
84  m_pAllocator(pAllocator),
85  m_NumHandles(NHandles),
86  m_pDescriptorHeap(pHeap),
87  m_AllocationManagerId(AllocationManagerId)
88  {
89  VERIFY_EXPR(m_pAllocator != nullptr && m_pDescriptorHeap != nullptr);
90  auto DescriptorSize = m_pAllocator->GetDescriptorSize();
91  VERIFY(DescriptorSize < std::numeric_limits<Uint16>::max(), "DescriptorSize exceeds allowed limit");
92  m_DescriptorSize = static_cast<Uint16>( DescriptorSize );
93  }
94 
95  // Move constructor (copy is not allowed)
96  DescriptorHeapAllocation(DescriptorHeapAllocation &&Allocation) :
97  m_FirstCpuHandle(Allocation.m_FirstCpuHandle),
98  m_FirstGpuHandle(Allocation.m_FirstGpuHandle),
99  m_NumHandles(Allocation.m_NumHandles),
100  m_pAllocator(std::move(Allocation.m_pAllocator)),
101  m_AllocationManagerId(std::move(Allocation.m_AllocationManagerId)),
102  m_pDescriptorHeap(std::move(Allocation.m_pDescriptorHeap) ),
103  m_DescriptorSize(std::move(Allocation.m_DescriptorSize) )
104  {
105  Allocation.m_pAllocator = nullptr;
106  Allocation.m_FirstCpuHandle.ptr = 0;
107  Allocation.m_FirstGpuHandle.ptr = 0;
108  Allocation.m_NumHandles = 0;
109  Allocation.m_pDescriptorHeap = nullptr;
110  Allocation.m_DescriptorSize = 0;
111  Allocation.m_AllocationManagerId = static_cast<Uint16>(-1);
112  }
113 
114  // Move assignment (assignment is not allowed)
115  DescriptorHeapAllocation& operator = (DescriptorHeapAllocation &&Allocation)
116  {
117  m_FirstCpuHandle = Allocation.m_FirstCpuHandle;
118  m_FirstGpuHandle = Allocation.m_FirstGpuHandle;
119  m_NumHandles = Allocation.m_NumHandles;
120  m_pAllocator = std::move(Allocation.m_pAllocator);
121  m_AllocationManagerId = std::move(Allocation.m_AllocationManagerId);
122  m_pDescriptorHeap = std::move(Allocation.m_pDescriptorHeap);
123  m_DescriptorSize = std::move(Allocation.m_DescriptorSize);
124 
125  Allocation.m_FirstCpuHandle.ptr = 0;
126  Allocation.m_FirstGpuHandle.ptr = 0;
127  Allocation.m_NumHandles = 0;
128  Allocation.m_pAllocator = nullptr;
129  Allocation.m_pDescriptorHeap = nullptr;
130  Allocation.m_DescriptorSize = 0;
131  Allocation.m_AllocationManagerId = static_cast<Uint16>(-1);
132 
133  return *this;
134  }
135 
136  // Destructor automatically releases this allocation through the allocator
137  ~DescriptorHeapAllocation()
138  {
139  if(!IsNull() && m_pAllocator)
140  m_pAllocator->Free(std::move(*this));
141  // Allocation must have been disposed by the allocator
142  VERIFY(IsNull(), "Non-null descriptor is being destroyed");
143  }
144 
145  // Returns CPU descriptor handle at the specified offset
146  D3D12_CPU_DESCRIPTOR_HANDLE GetCpuHandle(Uint32 Offset = 0) const
147  {
148  VERIFY_EXPR(Offset >= 0 && Offset < m_NumHandles);
149 
150  D3D12_CPU_DESCRIPTOR_HANDLE CPUHandle = m_FirstCpuHandle;
151  if (Offset != 0)
152  {
153  CPUHandle.ptr += m_DescriptorSize * Offset;
154  }
155  return CPUHandle;
156  }
157 
158  // Returns GPU descriptor handle at the specified offset
159  D3D12_GPU_DESCRIPTOR_HANDLE GetGpuHandle(Uint32 Offset = 0) const
160  {
161  VERIFY_EXPR(Offset >= 0 && Offset < m_NumHandles);
162  D3D12_GPU_DESCRIPTOR_HANDLE GPUHandle = m_FirstGpuHandle;
163  if (Offset != 0)
164  {
165  GPUHandle.ptr += m_DescriptorSize * Offset;
166  }
167  return GPUHandle;
168  }
169 
170  // Returns pointer to D3D12 descriptor heap that contains this allocation
171  ID3D12DescriptorHeap *GetDescriptorHeap(){return m_pDescriptorHeap;}
172 
173  size_t GetNumHandles()const{return m_NumHandles;}
174 
175  bool IsNull() const { return m_FirstCpuHandle.ptr == 0; }
176  bool IsShaderVisible() const { return m_FirstGpuHandle.ptr != 0; }
177  size_t GetAllocationManagerId(){return m_AllocationManagerId;}
178  UINT GetDescriptorSize()const{return m_DescriptorSize;}
179 
180 private:
181  // No copies, only moves are allowed
182  DescriptorHeapAllocation(const DescriptorHeapAllocation&) = delete;
183  DescriptorHeapAllocation& operator= (const DescriptorHeapAllocation&) = delete;
184 
185  // First CPU descriptor handle in this allocation
186  D3D12_CPU_DESCRIPTOR_HANDLE m_FirstCpuHandle = {0};
187 
188  // First GPU descriptor handle in this allocation
189  D3D12_GPU_DESCRIPTOR_HANDLE m_FirstGpuHandle = {0};
190 
191  // Keep strong reference to the parent heap to make sure it is alive while allocation is alive - TOO EXPENSIVE
192  //RefCntAutoPtr<IDescriptorAllocator> m_pAllocator;
193 
194  // Pointer to the descriptor heap allocator that created this allocation
195  IDescriptorAllocator* m_pAllocator = nullptr;
196 
197  // Pointer to the D3D12 descriptor heap that contains descriptors in this allocation
198  ID3D12DescriptorHeap* m_pDescriptorHeap = nullptr;
199 
200  // Number of descriptors in the allocation
201  Uint32 m_NumHandles = 0;
202 
203  // Allocation manager ID. One allocator may support several
204  // allocation managers. This field is required to identify
205  // the manager within the allocator that was used to create
206  // this allocation
207  Uint16 m_AllocationManagerId = static_cast<Uint16>(-1);
208 
209  // Descriptor size
210  Uint16 m_DescriptorSize = 0;
211 };
212 
213 
214 // The class performs suballocations within one D3D12 descriptor heap.
215 // It uses VariableSizeGPUAllocationsManager to manage free space in the heap
216 //
217 // | X X X X O O O X X O O X O O O O | D3D12 descriptor heap
218 //
219 // X - used descriptor
220 // O - available descriptor
221 //
222 class DescriptorHeapAllocationManager
223 {
224 public:
225  // Creates a new D3D12 descriptor heap
226  DescriptorHeapAllocationManager(IMemoryAllocator &Allocator,
227  RenderDeviceD3D12Impl *pDeviceD3D12Impl,
228  IDescriptorAllocator *pParentAllocator,
229  size_t ThisManagerId,
230  const D3D12_DESCRIPTOR_HEAP_DESC &HeapDesc);
231 
232  // Uses subrange of descriptors in the existing D3D12 descriptor heap
233  // that starts at offset FirstDescriptor and uses NumDescriptors descriptors
234  DescriptorHeapAllocationManager(IMemoryAllocator &Allocator,
235  RenderDeviceD3D12Impl *pDeviceD3D12Impl,
236  IDescriptorAllocator *pParentAllocator,
237  size_t ThisManagerId,
238  ID3D12DescriptorHeap *pd3d12DescriptorHeap,
239  Uint32 FirstDescriptor,
240  Uint32 NumDescriptors);
241 
242 
243  // = default causes compiler error when instantiating std::vector::emplace_back() in Visual Studio 2015 (Version 14.0.23107.0 D14REL)
244  DescriptorHeapAllocationManager(DescriptorHeapAllocationManager&& rhs) :
245  m_FreeBlockManager(std::move(rhs.m_FreeBlockManager)),
246  m_HeapDesc(rhs.m_HeapDesc),
247  m_pd3d12DescriptorHeap(std::move(rhs.m_pd3d12DescriptorHeap)),
248  m_FirstCPUHandle(rhs.m_FirstCPUHandle),
249  m_FirstGPUHandle(rhs.m_FirstGPUHandle),
250  m_DescriptorSize(rhs.m_DescriptorSize),
251  m_NumDescriptorsInAllocation(rhs.m_NumDescriptorsInAllocation),
252  // Mutex is not movable
253  //m_AllocationMutex(std::move(rhs.m_AllocationMutex))
254  m_pDeviceD3D12Impl(rhs.m_pDeviceD3D12Impl),
255  m_pParentAllocator(rhs.m_pParentAllocator),
256  m_ThisManagerId(rhs.m_ThisManagerId)
257  {
258  rhs.m_FirstCPUHandle.ptr = 0;
259  rhs.m_FirstGPUHandle.ptr = 0;
260  rhs.m_DescriptorSize = 0;
261  rhs.m_NumDescriptorsInAllocation = 0;
262  rhs.m_HeapDesc.NumDescriptors = 0;
263  rhs.m_pDeviceD3D12Impl = nullptr;
264  rhs.m_pParentAllocator = nullptr;
265  rhs.m_ThisManagerId = static_cast<size_t>(-1);
266  }
267 
268  // No copies or move-assignments
269  DescriptorHeapAllocationManager& operator = (DescriptorHeapAllocationManager&& rhs) = delete;
270  DescriptorHeapAllocationManager(const DescriptorHeapAllocationManager&) = delete;
271  DescriptorHeapAllocationManager& operator = (const DescriptorHeapAllocationManager&) = delete;
272 
273  ~DescriptorHeapAllocationManager();
274 
275  // Allocates Count descriptors
276  DescriptorHeapAllocation Allocate( uint32_t Count );
277 
278  // Releases descriptor heap allocation.
279  // Note that the allocation is not released immediately, but
280  // added to the release queue in the allocations manager
281  void Free(DescriptorHeapAllocation&& Allocation);
282 
283  // Releases all stale allocation used by completed command lists
284  // The method takes the last known completed fence value N
285  // and releases all allocations whose associated fence value n <= N
286  void ReleaseStaleAllocations(Uint64 LastCompletedFenceValue);
287 
288  size_t GetNumAvailableDescriptors()const{return m_FreeBlockManager.GetFreeSize();}
289  size_t GetNumStaleDescriptors()const { return m_FreeBlockManager.GetStaleAllocationsSize(); }
290  Uint32 GetMaxDescriptors()const { return m_NumDescriptorsInAllocation; }
291 
292 private:
293  // Allocations manager used to handle descriptor allocations within the heap
294  VariableSizeGPUAllocationsManager m_FreeBlockManager;
295 
296  // Heap description
297  D3D12_DESCRIPTOR_HEAP_DESC m_HeapDesc;
298 
299  // Strong reference to D3D12 descriptor heap object
300  CComPtr<ID3D12DescriptorHeap> m_pd3d12DescriptorHeap;
301 
302  // First CPU descriptor handle in the available descriptor range
303  D3D12_CPU_DESCRIPTOR_HANDLE m_FirstCPUHandle = {0};
304 
305  // First GPU descriptor handle in the available descriptor range
306  D3D12_GPU_DESCRIPTOR_HANDLE m_FirstGPUHandle = {0};
307 
308  UINT m_DescriptorSize = 0;
309 
310  // Number of descriptors in the allocation.
311  // If this manager was initialized as a subrange in the existing heap,
312  // this value may be different from m_HeapDesc.NumDescriptors
313  Uint32 m_NumDescriptorsInAllocation = 0;
314 
315  std::mutex m_AllocationMutex;
316  RenderDeviceD3D12Impl *m_pDeviceD3D12Impl = nullptr;
317  IDescriptorAllocator *m_pParentAllocator = nullptr;
318 
319  // External ID assigned to this descriptor allocations manager
320  size_t m_ThisManagerId = static_cast<size_t>(-1);
321 };
322 
323 // CPU descriptor heap is intended to provide storage for resource view descriptor handles
324 // It contains a pool of DescriptorHeapAllocationManager object instances, where every instance manages
325 // its own CPU-only D3D12 descriptor heap:
326 //
327 // m_HeapPool[0] m_HeapPool[1] m_HeapPool[2]
328 // | X X X X X X X X |, | X X X O O X X O |, | X O O O O O O O |
329 //
330 // X - used descriptor m_AvailableHeaps = {1,2}
331 // O - available descriptor
332 //
333 // Allocation routine goes through the list of managers that have available descriptors and tries to process
334 // the request using every manager. If there are no available managers or no manager was able to handle the request,
335 // the function creates a new descriptor heap manager and lets it handle the request
336 //
337 // Render device contains four CPUDescriptorHeap object instances (one for each D3D12 heap type). The heaps are accessed
338 // when a texture or a buffer view is created.
339 //
340 class CPUDescriptorHeap : public IDescriptorAllocator
341 {
342 public:
343  // Initializes the heap
344  CPUDescriptorHeap(IMemoryAllocator &Allocator,
345  RenderDeviceD3D12Impl *pDeviceD3D12Impl,
346  Uint32 NumDescriptorsInHeap,
347  D3D12_DESCRIPTOR_HEAP_TYPE Type,
348  D3D12_DESCRIPTOR_HEAP_FLAGS Flags);
349 
350  CPUDescriptorHeap(const CPUDescriptorHeap&) = delete;
351  CPUDescriptorHeap(CPUDescriptorHeap&&) = delete;
352  CPUDescriptorHeap& operator = (const CPUDescriptorHeap&) = delete;
353  CPUDescriptorHeap& operator = (CPUDescriptorHeap&&) = delete;
354 
355  ~CPUDescriptorHeap();
356 
357  virtual DescriptorHeapAllocation Allocate( uint32_t Count )override;
358  virtual void Free(DescriptorHeapAllocation&& Allocation)override;
359  virtual Uint32 GetDescriptorSize()const override{return m_DescriptorSize;}
360 
361  // Releases all stale allocation used by completed command lists
362  // The method takes the last known completed fence value N
363  // and releases all allocations whose associated fence value n <= N
364  void ReleaseStaleAllocations(Uint64 LastCompletedFenceValue);
365 
366 protected:
367 
368  // Pool of descriptor heap managers
369  std::vector<DescriptorHeapAllocationManager, STDAllocatorRawMem<DescriptorHeapAllocationManager> > m_HeapPool;
370  // Indices of available descriptor heap managers
371  std::set<size_t, std::less<size_t>, STDAllocatorRawMem<size_t> > m_AvailableHeaps;
372  IMemoryAllocator &m_MemAllocator;
373 
374  std::mutex m_AllocationMutex;
375 
376  D3D12_DESCRIPTOR_HEAP_DESC m_HeapDesc;
377  RenderDeviceD3D12Impl *m_pDeviceD3D12Impl;
378  UINT m_DescriptorSize;
379 
380  // Maximum heap size during the application lifetime - for statistic purposes
381  Uint32 m_MaxHeapSize = 0;
382  Uint32 m_MaxStaleSize = 0;
383  Uint32 m_CurrentSize = 0; // This size does not count stale allocation
384 };
385 
386 // GPU descriptor heap provides storage for shader-visible descriptors
387 // The heap contains single D3D12 descriptor heap that is broken into two parts.
388 // The first part stores static and mutable resource descriptor handles.
389 // The second part is intended to provide temporary storage for dynamic resources
390 // Space for dynamic resources is allocated in chunks, and then descriptors are suballocated within every
391 // chunk. DynamicSuballocationsManager facilitates this process
392 //
393 //
394 // static and mutable handles || dynamic space
395 // || chunk 0 chunk 1 chunk 2 unused
396 // | X O O X X O X O O O O X X X X O || | X X X O | | X X O O | | O O O O | O O O O ||
397 // | |
398 // suballocation suballocation
399 // within chunk 0 within chunk 1
400 //
401 // Render device contains two GPUDescriptorHeap instances (CBV_SRV_UAV and SAMPLER). The heaps
402 // are used to allocate GPU-visible descriptors for shader resource binding objects. The heaps
403 // are also used by the command contexts (through DynamicSuballocationsManager to allocated dynamic descriptors)
404 //
405 // _______________________________________________________________________________________________________________________________
406 // | Render Device |
407 // | |
408 // | m_CPUDescriptorHeaps[CBV_SRV_UAV] | X X X X X X X X |, | X X X X X X X X |, | X O O X O O O O | |
409 // | m_CPUDescriptorHeaps[SAMPLER] | X X X X O O O X |, | X O O X O O O O | |
410 // | m_CPUDescriptorHeaps[RTV] | X X X O O O O O |, | O O O O O O O O | |
411 // | m_CPUDescriptorHeaps[DSV] | X X X O X O X O | |
412 // | ctx1 ctx2 |
413 // | m_GPUDescriptorHeaps[CBV_SRV_UAV] | X O O X X O X O O O O X X X X O || | X X X O | | X X O O | | O O O O | O O O O || |
414 // | m_GPUDescriptorHeaps[SAMPLER] | X X O O X O X X X O O X O O O O || | X X O O | | X O O O | | O O O O | O O O O || |
415 // | |
416 // |_______________________________________________________________________________________________________________________________|
417 //
418 // ________________________________________________ ________________________________________________
419 // |Device Context 1 | |Device Context 2 |
420 // | | | |
421 // | m_DynamicGPUDescriptorAllocator[CBV_SRV_UAV] | | m_DynamicGPUDescriptorAllocator[CBV_SRV_UAV] |
422 // | m_DynamicGPUDescriptorAllocator[SAMPLER] | | m_DynamicGPUDescriptorAllocator[SAMPLER] |
423 // |________________________________________________| |________________________________________________|
424 //
425 class GPUDescriptorHeap : public IDescriptorAllocator
426 {
427 public:
428  GPUDescriptorHeap(IMemoryAllocator &Allocator,
429  RenderDeviceD3D12Impl *pDevice,
430  Uint32 NumDescriptorsInHeap,
431  Uint32 NumDynamicDescriptors,
432  D3D12_DESCRIPTOR_HEAP_TYPE Type,
433  D3D12_DESCRIPTOR_HEAP_FLAGS Flags);
434 
435  GPUDescriptorHeap(const GPUDescriptorHeap&) = delete;
436  GPUDescriptorHeap(GPUDescriptorHeap&&) = delete;
437  GPUDescriptorHeap& operator = (const GPUDescriptorHeap&) = delete;
438  GPUDescriptorHeap& operator = (GPUDescriptorHeap&&) = delete;
439 
440  ~GPUDescriptorHeap();
441 
442  virtual DescriptorHeapAllocation Allocate( uint32_t Count )override;
443  virtual void Free(DescriptorHeapAllocation&& Allocation)override;
444  virtual Uint32 GetDescriptorSize()const override{return m_DescriptorSize;}
445 
446  DescriptorHeapAllocation AllocateDynamic( uint32_t Count );
447 
448  // Releases all stale allocation used by completed command lists
449  // The method takes the last known completed fence value N
450  // and releases all allocations whose associated fence value n <= N
451  void ReleaseStaleAllocations(Uint64 LastCompletedFenceValue);
452 
453  const D3D12_DESCRIPTOR_HEAP_DESC &GetHeapDesc()const{return m_HeapDesc;}
454  Uint32 GetMaxStaticDescriptors()const { return m_HeapAllocationManager.GetMaxDescriptors(); }
455  Uint32 GetMaxDynamicDescriptors()const { return m_DynamicAllocationsManager.GetMaxDescriptors(); }
456 
457 protected:
458 
459  D3D12_DESCRIPTOR_HEAP_DESC m_HeapDesc;
460  CComPtr<ID3D12DescriptorHeap> m_pd3d12DescriptorHeap;
461 
462  UINT m_DescriptorSize = 0;
463 
464  std::mutex m_AllocMutex, m_DynAllocMutex;
465  // Allocation manager for static/mutable part
466  DescriptorHeapAllocationManager m_HeapAllocationManager;
467 
468  // Allocation manager for dynamic part
469  DescriptorHeapAllocationManager m_DynamicAllocationsManager;
470 
471  RenderDeviceD3D12Impl *m_pDeviceD3D12;
472  Uint32 m_CurrentSize = 0;
473  // Maximum static/mutable part size during the application lifetime - for statistic purposes
474  Uint32 m_MaxHeapSize = 0;
475  Uint32 m_MaxStaleSize = 0;
476  Uint32 m_CurrentDynamicSize = 0;
477  // Maximum dynamic part size during the application lifetime - for statistic purposes
478  Uint32 m_MaxDynamicSize = 0;
479  Uint32 m_MaxDynamicStaleSize = 0;
480 };
481 
482 
483 // The class facilitates allocation of dynamic descriptor handles. It requests a chunk of heap
484 // from the master GPU descriptor heap and then performs linear suballocation within the chunk
485 // At the end of the frame all allocations are disposed.
486 
487 // static and mutable handles || dynamic space
488 // || chunk 0 chunk 2
489 // | || | X X X O | | O O O O | || GPU Descriptor Heap
490 // | |
491 // m_Suballocations[0] m_Suballocations[1]
492 //
493 class DynamicSuballocationsManager : public IDescriptorAllocator
494 {
495 public:
496  DynamicSuballocationsManager(IMemoryAllocator &Allocator, GPUDescriptorHeap& ParentGPUHeap, Uint32 DynamicChunkSize);
497 
498  DynamicSuballocationsManager(const DynamicSuballocationsManager&) = delete;
499  DynamicSuballocationsManager(DynamicSuballocationsManager&&) = delete;
500  DynamicSuballocationsManager& operator = (const DynamicSuballocationsManager&) = delete;
501  DynamicSuballocationsManager& operator = (DynamicSuballocationsManager&&) = delete;
502 
503  void DiscardAllocations(Uint64 /*FenceValue*/);
504 
505  virtual DescriptorHeapAllocation Allocate( Uint32 Count )override;
506  virtual void Free(DescriptorHeapAllocation&& Allocation)override;
507 
508  virtual Uint32 GetDescriptorSize()const override{return m_ParentGPUHeap.GetDescriptorSize();}
509 
510 private:
511  // List of chunks allocated from the master GPU descriptor heap. All chunks are disposed at the end
512  // of the frame
513  std::vector<DescriptorHeapAllocation, STDAllocatorRawMem<DescriptorHeapAllocation> > m_Suballocations;
514 
515  Uint32 m_CurrentSuballocationOffset = 0;
516  Uint32 m_DynamicChunkSize = 0;
517 
518  // Parent GPU descriptor heap that is used to allocate chunks
519  GPUDescriptorHeap &m_ParentGPUHeap;
520 };
521 
522 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Definition: AdvancedMath.h:316
+
+ + + + + diff --git a/doc/html/_device_caps_8h_source.html b/doc/html/_device_caps_8h_source.html new file mode 100644 index 00000000..93ff8500 --- /dev/null +++ b/doc/html/_device_caps_8h_source.html @@ -0,0 +1,113 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/DeviceCaps.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DeviceCaps.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "GraphicsTypes.h"
30 
31 namespace Diligent
32 {
34  enum class DeviceType : Int32
35  {
36  Undefined = 0,
37  D3D11,
38  D3D12,
39  OpenGL,
40  OpenGLES
41  };
42 
44  struct SamplerCaps
45  {
48 
51 
54 
59  bLODBiasSupported( True )
60  {}
61  };
62 
64  struct TextureCaps
65  {
68 
71 
74 
77 
80 
83 
86  bTexture1DSupported( True ),
88  bTexture2DMSSupported( True ),
90  bTextureViewSupported( True ),
92  {}
93  };
94 
96  struct DeviceCaps
97  {
100 
104 
108 
111 
114 
117 
120 
123 
126 
129  DevType( DeviceType::Undefined ),
130  MajorVersion( 0 ),
131  MinorVersion( 0 ),
134  bWireframeFillSupported( True ),
136  {}
137  };
138 }
Bool bSeparableProgramSupported
Indicates if device supports separable programs.
Definition: DeviceCaps.h:110
+
Bool bTexture2DMSSupported
Indicates if device supports 2D multisampled textures.
Definition: DeviceCaps.h:73
+
Bool bMultithreadedResourceCreationSupported
Indicates if device supports multithreaded resource creation.
Definition: DeviceCaps.h:119
+ +
Int32 MinorVersion
Major API revision. For instance, for D3D11.2 this value would be 2, and for OpenGL4.3 this value would be 3.
Definition: DeviceCaps.h:107
+
Bool bAnisotropicFilteringSupported
Indicates if device supports anisotrpoic filtering.
Definition: DeviceCaps.h:50
+ +
Bool bWireframeFillSupported
Indicates if device supports wireframe fill mode.
Definition: DeviceCaps.h:116
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Bool bLODBiasSupported
Indicates if device supports MIP load bias.
Definition: DeviceCaps.h:53
+
TextureCaps()
Initializes the structure members with default values.
Definition: DeviceCaps.h:85
+
SamplerCaps()
Initializes the structure members with default values.
Definition: DeviceCaps.h:56
+
SamplerCaps SamCaps
Texture sampling capabilities. See Diligent::SamplerCaps.
Definition: DeviceCaps.h:122
+
Device capabilities.
Definition: DeviceCaps.h:96
+
Bool bTexture1DArraySupported
Indicates if device supports 1D texture arrays.
Definition: DeviceCaps.h:70
+
Bool bTexture1DSupported
Indicates if device supports 1D textures.
Definition: DeviceCaps.h:67
+
Int32 MajorVersion
Major API revision. For instance, for D3D11.2 this value would be 11, and for OpenGL4.3 this value would be 4.
Definition: DeviceCaps.h:103
+
DeviceType
Device type.
Definition: DeviceCaps.h:34
+ +
DeviceType DevType
Device type. See Diligent::DeviceType.
Definition: DeviceCaps.h:99
+
Texture capabilities.
Definition: DeviceCaps.h:64
+
bool bTextureViewSupported
Indicates if device supports texture views.
Definition: DeviceCaps.h:79
+
Bool bTexture2DMSArraySupported
Indicates if device supports 2D multisampled texture arrays.
Definition: DeviceCaps.h:76
+
DeviceCaps()
Initializes the structure members with default values.
Definition: DeviceCaps.h:128
+
Bool bIndirectRenderingSupported
Indicates if device supports indirect draw commands.
Definition: DeviceCaps.h:113
+
TextureCaps TexCaps
Texture capabilities. See Diligent::TextureCaps.
Definition: DeviceCaps.h:125
+
Bool bBorderSamplingModeSupported
Indicates if device supports border texture addressing mode.
Definition: DeviceCaps.h:47
+
bool bCubemapArraysSupported
Indicates if device supports cubemap arrays.
Definition: DeviceCaps.h:82
+
Texture sampler capabilities.
Definition: DeviceCaps.h:44
+ +
+ + + + + diff --git a/doc/html/_device_context_8h_source.html b/doc/html/_device_context_8h_source.html new file mode 100644 index 00000000..b017eb02 --- /dev/null +++ b/doc/html/_device_context_8h_source.html @@ -0,0 +1,196 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/DeviceContext.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DeviceContext.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Object.h"
30 #include "DeviceCaps.h"
31 #include "Constants.h"
32 #include "Buffer.h"
33 #include "InputLayout.h"
34 #include "Shader.h"
35 #include "Texture.h"
36 #include "Sampler.h"
37 #include "ResourceMapping.h"
38 #include "TextureView.h"
39 #include "BufferView.h"
40 #include "DepthStencilState.h"
41 #include "BlendState.h"
42 #include "PipelineState.h"
43 #include "CommandList.h"
44 #include "SwapChain.h"
45 
46 namespace Diligent
47 {
48 
49 // {DC92711B-A1BE-4319-B2BD-C662D1CC19E4}
50 static constexpr INTERFACE_ID IID_DeviceContext =
51 { 0xdc92711b, 0xa1be, 0x4319, { 0xb2, 0xbd, 0xc6, 0x62, 0xd1, 0xcc, 0x19, 0xe4 } };
52 
54 
56 enum PRIMITIVE_TOPOLOGY : Int32
57 {
60 
64 
68 
72 
76 
80 
84 
88 
92 
96 
100 
104 
108 
112 
116 
120 
124 
128 
132 
136 
140 
144 
148 
152 
156 
160 
164 
168 
172 
176 
180 
184 
188 
192 
196 
200 
204 
207 };
208 
210 
213 {
216  union
217  {
219  Uint32 NumVertices;
220 
222  Uint32 NumIndices;
223  };
227 
229  Bool IsIndexed;
230 
233  Uint32 NumInstances;
234 
239 
242  Uint32 BaseVertex;
243 
247 
248  union
249  {
253 
257  };
261 
265 
266 
268 
285  NumVertices(0),
287  IsIndexed(False),
288  NumInstances(1),
289  IsIndirect(False),
290  BaseVertex(0),
294  pIndirectDrawAttribs(nullptr)
295  {}
296 };
297 
299 
302 {
305 };
306 
308 
313 {
317 
322 
326 
328 
332  DispatchComputeAttribs( Uint32 GroupsX = 1, Uint32 GroupsY = 1, Uint32 GroupsZ = 1 ) :
333  ThreadGroupCountX( GroupsX ),
334  ThreadGroupCountY( GroupsY ),
335  ThreadGroupCountZ( GroupsZ ),
336  pIndirectDispatchAttribs(nullptr),
338  {}
339 
341 
345  DispatchComputeAttribs( IBuffer *pDispatchAttribs, Uint32 Offset = 0 ) :
346  ThreadGroupCountX( 0 ),
347  ThreadGroupCountY( 0 ),
348  ThreadGroupCountZ( 0 ),
349  pIndirectDispatchAttribs( pDispatchAttribs ),
350  DispatchArgsByteOffset( Offset )
351  {}
352 };
353 
356 {
360 };
361 
364 {
366 
370 };
371 
372 
374 
376 struct Viewport
377 {
379  Float32 TopLeftX;
380 
385  Float32 TopLeftY;
386 
388  Float32 Width;
389 
391  Float32 Height;
392 
394  Float32 MinDepth;
395 
397  Float32 MaxDepth;
398 
400  Viewport(Float32 _TopLeftX = 0, Float32 _TopLeftY = 0,
401  Float32 _Width = 0, Float32 _Height = 0,
402  Float32 _MinDepth = 0, Float32 _MaxDepth = 1 )
403  :
404  TopLeftX( _TopLeftX ),
405  TopLeftY( _TopLeftY ),
406  Width ( _Width ),
407  Height ( _Height ),
408  MinDepth( _MinDepth ),
409  MaxDepth( _MaxDepth )
410  {}
411 };
412 
414 
420 struct Rect
421 {
422  Int32 left;
423  Int32 top;
424  Int32 right;
425  Int32 bottom;
426 
428  Rect( Int32 _left = 0, Int32 _top = 0, Int32 _right = 0, Int32 _bottom = 0 ) :
429  left ( _left ),
430  top ( _top ),
431  right ( _right ),
432  bottom( _bottom )
433  {}
434 };
435 
436 
438 
443 class IDeviceContext : public IObject
444 {
445 public:
447  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface ) = 0;
448 
450 
452  virtual void SetPipelineState(IPipelineState *pPipelineState) = 0;
453 
454 
461  virtual void TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding) = 0;
462 
464 
479  virtual void CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags) = 0;
480 
482 
484  virtual void SetStencilRef(Uint32 StencilRef) = 0;
485 
486 
493  virtual void SetBlendFactors(const float* pBlendFactors = nullptr) = 0;
494 
495 
497 
503  // The vertex buffers must have been created with the Diligent::BIND_VERTEX_BUFFER flag.
520  virtual void SetVertexBuffers(Uint32 StartSlot,
521  Uint32 NumBuffersSet,
522  IBuffer **ppBuffers,
523  Uint32 *pStrides,
524  Uint32 *pOffsets,
525  Uint32 Flags) = 0;
526 
528 
531  virtual void InvalidateState() = 0;
532 
533 
535 
543  virtual void SetIndexBuffer(IBuffer *pIndexBuffer, Uint32 ByteOffset) = 0;
544 
545 
547 
563  virtual void SetViewports( Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight ) = 0;
564 
566 
578  virtual void SetScissorRects( Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight ) = 0;
579 
582 
599  virtual void SetRenderTargets( Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil ) = 0;
600 
602 
604  virtual void Draw(DrawAttribs &DrawAttribs) = 0;
605 
607 
610  virtual void DispatchCompute( const DispatchComputeAttribs &DispatchAttrs ) = 0;
611 
613 
621  virtual void ClearDepthStencil( ITextureView *pView, Uint32 ClearFlags = CLEAR_DEPTH_FLAG, float fDepth = 1.f, Uint8 Stencil = 0 ) = 0;
622 
624 
631  virtual void ClearRenderTarget( ITextureView *pView, const float *RGBA = nullptr ) = 0;
632 
634 
636  virtual void FinishCommandList( ICommandList **ppCommandList) = 0;
637 
639 
642  virtual void ExecuteCommandList( ICommandList *pCommandList) = 0;
643 
645  virtual void Flush() = 0;
646 
648 
662  virtual void SetSwapChain( ISwapChain *pSwapChain) = 0;
663 };
664 
665 }
Interpret the vertex data as a list of points. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_POINTLIST. OpenGL counterpart: GL_POINTS.
Definition: DeviceContext.h:71
+
virtual void SetIndexBuffer(IBuffer *pIndexBuffer, Uint32 ByteOffset)=0
Binds an index buffer to the pipeline.
+
virtual void SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight)=0
Sets active scissor rects.
+
virtual void SetStencilRef(Uint32 StencilRef)=0
Sets the stencil reference value.
+
Interpret the vertex data as a list of 20 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:155
+
virtual void Draw(DrawAttribs &DrawAttribs)=0
Executes a draw command.
+
Uint32 FirstInstanceLocation
For instanced rendering, LOCATION (or INDEX, but NOT the byte offset) in the vertex buffer to start r...
Definition: DeviceContext.h:260
+
Rect(Int32 _left=0, Int32 _top=0, Int32 _right=0, Int32 _bottom=0)
Initializes the structure.
Definition: DeviceContext.h:428
+
PRIMITIVE_TOPOLOGY
Input primitive topology.
Definition: DeviceContext.h:56
+
Interpret the vertex data as a list of 11 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:119
+
Uint32 BaseVertex
For indexed rendering, a constant which is added to each index before accessing the vertex buffer...
Definition: DeviceContext.h:242
+
Undefined type.
Definition: GraphicsTypes.h:41
+
CLEAR_DEPTH_STENCIL_FLAGS
Defines which parts of the depth-stencil buffer to clear.
Definition: DeviceContext.h:301
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Float32 TopLeftX
X coordinate of the left boundary of the viewport.
Definition: DeviceContext.h:379
+
virtual void SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil)=0
Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewp...
+
Interpret the vertex data as a list of 16 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:139
+
virtual void DispatchCompute(const DispatchComputeAttribs &DispatchAttrs)=0
Executes a dispatch compute command.
+
virtual void SetPipelineState(IPipelineState *pPipelineState)=0
Sets the pipeline state.
+
Interpret the vertex data as a list of five control point patches. D3D counterpart: D3D_PRIMITIVE_TO...
Definition: DeviceContext.h:95
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
Queries the specific interface, see IObject::QueryInterface() for details.
+
Interpret the vertex data as a list of 15 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:135
+
Interpret the vertex data as a list of nine control point patches. D3D counterpart: D3D_PRIMITIVE_TO...
Definition: DeviceContext.h:111
+
Interpret the vertex data as a list of 32 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:203
+
IBuffer * pIndirectDrawAttribs
For indirect rendering, pointer to the buffer, from which draw attributes will be read...
Definition: DeviceContext.h:264
+
virtual void Flush()=0
Flushes the command buffer.
+
Describes the viewport.
Definition: DeviceContext.h:376
+
Int32 bottom
Y coordinate of the bottom boundary of the viewport.
Definition: DeviceContext.h:425
+
SET_VERTEX_BUFFERS_FLAGS
Defines allowed flags for IDeviceContext::SetVertexBuffers() function.
Definition: DeviceContext.h:355
+
Float32 MinDepth
Minimum depth of the viewport. Ranges between 0 and 1.
Definition: DeviceContext.h:394
+
DrawAttribs()
Initializes the structure members with default values.
Definition: DeviceContext.h:283
+
Viewport(Float32 _TopLeftX=0, Float32 _TopLeftY=0, Float32 _Width=0, Float32 _Height=0, Float32 _MinDepth=0, Float32 _MaxDepth=1)
Initializes the structure.
Definition: DeviceContext.h:400
+
Interpret the vertex data as a list of four control point patches. D3D counterpart: D3D_PRIMITIVE_TO...
Definition: DeviceContext.h:91
+
Interpret the vertex data as a list of 30 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:195
+
Shader resource binding interface.
Definition: ShaderResourceBinding.h:40
+
Interpret the vertex data as a list of 22 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:163
+
Float32 Width
Viewport width.
Definition: DeviceContext.h:388
+
Undefined topology.
Definition: DeviceContext.h:59
+
Bool IsIndirect
Indicates if indirect draw call will be performed. If set to True, pIndirectDrawAttribs must contain ...
Definition: DeviceContext.h:238
+
Int32 right
X coordinate of the right boundary of the viewport.
Definition: DeviceContext.h:424
+
Interpret the vertex data as a list of 24 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:171
+
Describes dispatch command arguments.
Definition: DeviceContext.h:312
+
DispatchComputeAttribs(Uint32 GroupsX=1, Uint32 GroupsY=1, Uint32 GroupsZ=1)
Initializes the structure to perform non-indirect dispatch command.
Definition: DeviceContext.h:332
+
Interpret the vertex data as a list of lines. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_LINELIST. OpenGL counterpart: GL_LINES.
Definition: DeviceContext.h:75
+
Interpret the vertex data as a list of 19 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:151
+
virtual void TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding)=0
Transitions shader resources to the require states.
+
Interpret the vertex data as a list of eight control point patches. D3D counterpart: D3D_PRIMITIVE_T...
Definition: DeviceContext.h:107
+
Interpret the vertex data as a list of ten control point patches. D3D counterpart: D3D_PRIMITIVE_TOP...
Definition: DeviceContext.h:115
+
DispatchComputeAttribs(IBuffer *pDispatchAttribs, Uint32 Offset=0)
Initializes the structure to perform indirect dispatch command.
Definition: DeviceContext.h:345
+
Interpret the vertex data as a list of 28 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:187
+
Buffer interface.
Definition: Buffer.h:200
+
virtual void FinishCommandList(ICommandList **ppCommandList)=0
Finishes recording commands and generates a command list.
+
VALUE_TYPE IndexType
For an indexed draw call, type of elements in the index buffer. Allowed values: VT_UINT16 and VT_UINT...
Definition: DeviceContext.h:226
+
virtual void SetBlendFactors(const float *pBlendFactors=nullptr)=0
+
Uint32 DispatchArgsByteOffset
If pIndirectDispatchAttribs is not nullptr, indicates offset from the beginning of the buffer to the ...
Definition: DeviceContext.h:325
+
Device context interface.
Definition: DeviceContext.h:443
+
Int32 left
X coordinate of the left boundary of the viewport.
Definition: DeviceContext.h:422
+
Swap chain interface.
Definition: SwapChain.h:41
+
Int32 top
Y coordinate of the top boundary of the viewport.
Definition: DeviceContext.h:423
+
Interpret the vertex data as a list of 21 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:159
+
Uint32 NumIndices
For an indexed draw call, number of indices to draw.
Definition: DeviceContext.h:222
+
virtual void InvalidateState()=0
Invalidates the cached context state.
+
Interpret the vertex data as a list of six control point patches. D3D counterpart: D3D_PRIMITIVE_TOP...
Definition: DeviceContext.h:99
+
Texture view interface.
Definition: TextureView.h:163
+
Uint32 NumVertices
For a non-indexed draw call, number of vertices to draw.
Definition: DeviceContext.h:219
+
Interpret the vertex data as a list of 17 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:143
+
VALUE_TYPE
Value type.
Definition: GraphicsTypes.h:39
+
Command list interface.
Definition: CommandList.h:42
+
Interpret the vertex data as a list of 25 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:175
+
Interpret the vertex data as a list of 12 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:123
+
Interpret the vertex data as a list of 13 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:127
+
Definition: PipelineState.h:209
+
virtual void ExecuteCommandList(ICommandList *pCommandList)=0
Executes recorded commands in a command list.
+
Uint32 NumInstances
Number of instances to draw. If more than one instance is specified, instanced draw call will be perf...
Definition: DeviceContext.h:233
+
Interpret the vertex data as a list of 26 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:179
+
Uint32 ThreadGroupCountY
Number of groups dispatched in Y direction.
Definition: DeviceContext.h:315
+
Interpret the vertex data as a list of 23 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:167
+
Defines the draw command attributes.
Definition: DeviceContext.h:212
+
virtual void CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags)=0
Commits shader resources to the device context.
+
Transition resources being committed.
Definition: DeviceContext.h:369
+
Clear stencil part of the buffer.
Definition: DeviceContext.h:304
+
virtual void SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight)=0
Sets an array of viewports.
+
virtual void SetVertexBuffers(Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags)=0
Binds vertex buffers to the pipeline.
+
Describes the rectangle.
Definition: DeviceContext.h:420
+
Float32 Height
Viewport Height.
Definition: DeviceContext.h:391
+
virtual void ClearDepthStencil(ITextureView *pView, Uint32 ClearFlags=CLEAR_DEPTH_FLAG, float fDepth=1.f, Uint8 Stencil=0)=0
Clears a depth-stencil view.
+
Interpret the vertex data as a list of 31 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:199
+
Clear depth part of the buffer.
Definition: DeviceContext.h:303
+
Interpret the vertex data as a list of three control point patches. D3D counterpart: D3D_PRIMITIVE_T...
Definition: DeviceContext.h:87
+
Interpret the vertex data as a triangle strip. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP...
Definition: DeviceContext.h:67
+
virtual void SetSwapChain(ISwapChain *pSwapChain)=0
Sets the swap chain in the device context.
+
Uint32 ThreadGroupCountX
Number of groups dispatched in X direction.
Definition: DeviceContext.h:314
+
Helper value that stores the total number of topologies in the enumeration.
Definition: DeviceContext.h:206
+
Float32 TopLeftY
Y coordinate of the top boundary of the viewport. When defining a viewport, DirectX convention is use...
Definition: DeviceContext.h:385
+
Reset the vertex buffers to only the buffers specified in this call. All buffers previously bound to ...
Definition: DeviceContext.h:359
+
Interpret the vertex data as a list of one control point patches. D3D counterpart: D3D_PRIMITIVE_TOP...
Definition: DeviceContext.h:79
+
COMMIT_SHADER_RESOURCES_FLAG
Defines allowed flags for IDeviceContext::CommitShaderResources() function.
Definition: DeviceContext.h:363
+
Interpret the vertex data as a list of triangles. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_TRIANGLELI...
Definition: DeviceContext.h:63
+
Interpret the vertex data as a list of 29 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:191
+
Interpret the vertex data as a list of two control point patches. D3D counterpart: D3D_PRIMITIVE_TOP...
Definition: DeviceContext.h:83
+
Interpret the vertex data as a list of 14 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:131
+
Interpret the vertex data as a list of seven control point patches. D3D counterpart: D3D_PRIMITIVE_T...
Definition: DeviceContext.h:103
+
Uint32 IndirectDrawArgsOffset
For indirect rendering, offset from the beginning of the buffer to the location of draw command attri...
Definition: DeviceContext.h:246
+
IBuffer * pIndirectDispatchAttribs
Pointer to the buffer containing dispatch arguments. If not nullptr, then indirect dispatch command i...
Definition: DeviceContext.h:321
+
Interpret the vertex data as a list of 18 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:147
+
Bool IsIndexed
Indicates if index buffer will be used to index input vertices.
Definition: DeviceContext.h:229
+
Uint32 StartVertexLocation
For non-indexed rendering, LOCATION (or INDEX, but NOT the byte offset) of the first vertex in the ve...
Definition: DeviceContext.h:252
+
Uint32 ThreadGroupCountZ
Number of groups dispatched in Z direction.
Definition: DeviceContext.h:316
+
Interpret the vertex data as a list of 27 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPO...
Definition: DeviceContext.h:183
+
virtual void ClearRenderTarget(ITextureView *pView, const float *RGBA=nullptr)=0
Clears a render target view.
+
Float32 MaxDepth
Maximum depth of the viewport. Ranges between 0 and 1.
Definition: DeviceContext.h:397
+
PRIMITIVE_TOPOLOGY Topology
Input primitive topology, see Diligent::PRIMITIVE_TOPOLOGY.
Definition: DeviceContext.h:215
+
Uint32 FirstIndexLocation
For indexed rendering, LOCATION (NOT the byte offset) of the first index in the index buffer to start...
Definition: DeviceContext.h:256
+
+ + + + + diff --git a/doc/html/_device_context_base_8h_source.html b/doc/html/_device_context_base_8h_source.html new file mode 100644 index 00000000..bf577f52 --- /dev/null +++ b/doc/html/_device_context_base_8h_source.html @@ -0,0 +1,146 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/DeviceContextBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DeviceContextBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DeviceContext.h"
30 #include "DeviceObjectBase.h"
31 #include "Defines.h"
32 #include "ResourceMapping.h"
33 #include "Sampler.h"
34 #include "ObjectBase.h"
35 #include "DebugUtilities.h"
36 #include "SwapChain.h"
37 #include "ValidatedCast.h"
38 #include "GraphicsAccessories.h"
39 
40 #ifdef _DEBUG
41 # define DEBUG_CHECKS
42 #endif
43 
44 namespace Diligent
45 {
46 
49 {
52  Uint32 Stride;
53  Uint32 Offset;
55  Stride( 0 ),
56  Offset( 0 )
57  {}
58 };
59 
61 
67 template<typename BaseInterface>
68 class DeviceContextBase : public ObjectBase<BaseInterface>
69 {
70 public:
71 
73 
77  DeviceContextBase(IReferenceCounters *pRefCounters, IRenderDevice *pRenderDevice, bool bIsDeferred) :
78  TObjectBase(pRefCounters),
79  m_pDevice(pRenderDevice),
80  m_bIsDeferred(bIsDeferred)
81  {
82  }
83 
85  {
86  }
87 
88  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_DeviceContext, TObjectBase )
89 
90 
91  inline virtual void SetVertexBuffers( Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags )override = 0;
93 
94  inline virtual void InvalidateState()override = 0;
95 
97  inline virtual void SetPipelineState(IPipelineState *pPipelineState)override = 0;
98 
100  inline bool CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags, int);
101 
103  inline virtual void SetIndexBuffer( IBuffer *pIndexBuffer, Uint32 ByteOffset )override = 0;
104 
106  inline void SetViewports( Uint32 NumViewports, const Viewport *pViewports, Uint32 &RTWidth, Uint32 &RTHeight );
107 
109  inline void SetScissorRects( Uint32 NumRects, const Rect *pRects, Uint32 &RTWidth, Uint32 &RTHeight );
110 
113  inline bool SetRenderTargets( Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil, Uint32 Dummy = 0 );
114 
116  virtual void SetSwapChain( ISwapChain *pSwapChain )override final { m_pSwapChain = pSwapChain; }
117 
120 
123 
125  inline void GetPipelineState(IPipelineState **ppPSO, float* BlendFactors, Uint32 &StencilRef);
126 
128  inline void GetRenderTargets(Uint32 &NumRenderTargets, ITextureView **ppRTVs, ITextureView **ppDSV);
129 
131  inline void GetViewports( Uint32 &NumViewports, Viewport *pViewports );
132 
135 
136 protected:
137  inline bool SetBlendFactors(const float *BlendFactors, int Dummy);
138 
139  inline bool SetStencilRef(Uint32 StencilRef, int Dummy);
140 
142  inline void GetRenderTargetSize( Uint32 &RTWidth, Uint32 &RTHeight );
143 
145  inline void ClearStateCache();
146 
149 
153 
156 
158  Uint32 m_NumVertexStreams = 0;
159 
162 
165 
168 
170  Uint32 m_StencilRef = 0;
171 
173  Float32 m_BlendFactors[4] = { -1, -1, -1, -1 };
174 
178  Uint32 m_NumViewports = 0;
179 
183  Uint32 m_NumScissorRects = 0;
184 
192 
195 
196  const bool m_bIsDeferred = false;
197 };
198 
199 
200 template<typename BaseInterface>
201 inline void DeviceContextBase<BaseInterface> :: SetVertexBuffers( Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags )
202 {
203  if( StartSlot >= MaxBufferSlots )
204  {
205  LOG_ERROR_MESSAGE( "Start vertex buffer slot ", StartSlot, " is out of allowed range [0, ", MaxBufferSlots-1, "]." );
206  return;
207  }
208 
209  if( StartSlot + NumBuffersSet > MaxBufferSlots )
210  {
211  LOG_ERROR_MESSAGE( "The range of vertex buffer slots being set [", StartSlot, ", ", StartSlot + NumBuffersSet - 1, "] is out of allowed range [0, ", MaxBufferSlots - 1, "]." );
212  NumBuffersSet = MaxBufferSlots - StartSlot;
213  }
214 
215  if( Flags & SET_VERTEX_BUFFERS_FLAG_RESET )
216  {
217  for(Uint32 s=0; s < m_NumVertexStreams; ++s)
218  m_VertexStreams[s] = VertexStreamInfo();
219  m_NumVertexStreams = 0;
220  }
221  m_NumVertexStreams = std::max(m_NumVertexStreams, StartSlot + NumBuffersSet );
222 
223  for( Uint32 Buff = 0; Buff < NumBuffersSet; ++Buff )
224  {
225  auto &CurrStream = m_VertexStreams[StartSlot + Buff];
226  CurrStream.pBuffer = RefCntAutoPtr<IBuffer>( ppBuffers ? ppBuffers[Buff] : nullptr );
227  CurrStream.Stride = pStrides ? pStrides[Buff] : 0;
228  CurrStream.Offset = pOffsets ? pOffsets[Buff] : 0;
229 #ifdef DEBUG_CHECKS
230  if( CurrStream.pBuffer )
231  {
232  const auto &BuffDesc = CurrStream.pBuffer->GetDesc();
233  if( !(BuffDesc.BindFlags & BIND_VERTEX_BUFFER) )
234  {
235  LOG_ERROR_MESSAGE( "Buffer \"", BuffDesc.Name ? BuffDesc.Name : "", "\" being bound as vertex buffer to slot ", Buff," was not created with BIND_VERTEX_BUFFER flag" );
236  }
237  }
238 #endif
239  }
240  // Remove null buffers from the end of the array
241  while(m_NumVertexStreams > 0 && !m_VertexStreams[m_NumVertexStreams-1].pBuffer)
242  m_VertexStreams[m_NumVertexStreams--] = VertexStreamInfo();
243 }
244 
245 template<typename BaseInterface>
247 {
248  m_pPipelineState = pPipelineState;
249 }
250 
251 template<typename BaseInterface>
252 inline bool DeviceContextBase<BaseInterface> :: CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags, int)
253 {
254 #ifdef _DEBUG
255  if (!m_pPipelineState)
256  {
257  LOG_ERROR_MESSAGE("No pipeline state is bound to the pipeline");
258  return false;
259  }
260 
261  if (pShaderResourceBinding)
262  {
263  auto *pPSO = pShaderResourceBinding->GetPipelineState();
264  if (pPSO != m_pPipelineState)
265  {
266  LOG_ERROR_MESSAGE("Shader resource binding object does not match currently bound pipeline state");
267  return false;
268  }
269  }
270 #endif
271  return true;
272 }
273 
274 template<typename BaseInterface>
276 {
278  m_IsDefaultFramebufferBound = false;
279 }
280 
281 template<typename BaseInterface>
282 inline void DeviceContextBase<BaseInterface> :: SetIndexBuffer( IBuffer *pIndexBuffer, Uint32 ByteOffset )
283 {
284  m_pIndexBuffer = pIndexBuffer;
285  m_IndexDataStartOffset = ByteOffset;
286 #ifdef DEBUG_CHECKS
287  const auto &BuffDesc = m_pIndexBuffer->GetDesc();
288  if( !(BuffDesc.BindFlags & BIND_INDEX_BUFFER) )
289  {
290  LOG_ERROR_MESSAGE( "Buffer \"", BuffDesc.Name ? BuffDesc.Name : "", "\" being bound as index buffer was not created with BIND_INDEX_BUFFER flag" );
291  }
292 #endif
293 }
294 
295 
296 template<typename BaseInterface>
297 inline void DeviceContextBase<BaseInterface> :: GetPipelineState(IPipelineState **ppPSO, float* BlendFactors, Uint32 &StencilRef)
298 {
299  VERIFY( ppPSO != nullptr, "Null pointer provided null" );
300  VERIFY( *ppPSO == nullptr, "Memory address contains a pointer to a non-null blend state" );
301  if(m_pPipelineState)
302  {
303  m_pPipelineState->QueryInterface( IID_PipelineState, reinterpret_cast<IObject**>( ppPSO ) );
304  }
305  else
306  {
307  *ppPSO = nullptr;
308  }
309 
310  for( Uint32 f = 0; f < 4; ++f )
311  BlendFactors[f] = m_BlendFactors[f];
312  StencilRef = m_StencilRef;
313 };
314 
315 template<typename BaseInterface>
316 inline bool DeviceContextBase<BaseInterface> ::SetBlendFactors(const float *BlendFactors, int)
317 {
318  bool FactorsDiffer = false;
319  for( Uint32 f = 0; f < 4; ++f )
320  {
321  if( m_BlendFactors[f] != BlendFactors[f] )
322  FactorsDiffer = true;
323  m_BlendFactors[f] = BlendFactors[f];
324  }
325  return FactorsDiffer;
326 }
327 
328 template<typename BaseInterface>
329 inline bool DeviceContextBase<BaseInterface> :: SetStencilRef(Uint32 StencilRef, int)
330 {
331  if (m_StencilRef != StencilRef)
332  {
333  m_StencilRef = StencilRef;
334  return true;
335  }
336  return false;
337 }
338 
339 template<typename BaseInterface>
340 inline void DeviceContextBase<BaseInterface> :: GetRenderTargetSize( Uint32 &RTWidth, Uint32 &RTHeight )
341 {
342  RTWidth = 0;
343  RTHeight = 0;
344  // First, try to find non-null render target
345  for( Uint32 rt = 0; rt < m_NumBoundRenderTargets; ++rt )
346  {
347  if( auto *pRTView = m_pBoundRenderTargets[rt].RawPtr() )
348  {
349  // Use render target size as viewport size
350  auto *pTex = pRTView->GetTexture();
351  auto MipLevel = pRTView->GetDesc().MostDetailedMip;
352  const auto &TexDesc = pTex->GetDesc();
353  RTWidth = TexDesc.Width >> MipLevel;
354  RTHeight = TexDesc.Height >> MipLevel;
355  VERIFY( RTWidth > 0 && RTHeight > 0, "RT dimension is zero" );
356  break;
357  }
358  }
359 
360  // If render target was not found, check depth stencil
361  if( RTWidth == 0 || RTHeight == 0 )
362  {
363  auto *pDSView = m_pBoundDepthStencil.RawPtr();
364  if( pDSView != nullptr )
365  {
366  // Use depth stencil size
367  auto *pTex = pDSView->GetTexture();
368  const auto &TexDesc = pTex->GetDesc();
369  RTWidth = TexDesc.Width;
370  RTHeight = TexDesc.Height;
371  }
372  }
373 
374  // Finally, if no render targets and depth stencil are bound,
375  // use default RT size
376  if( RTWidth == 0 || RTHeight == 0 )
377  {
378  if (m_pSwapChain)
379  {
380  const auto &SwapChainDesc = m_pSwapChain->GetDesc();
381  RTWidth = SwapChainDesc.Width;
382  RTHeight = SwapChainDesc.Height;
383  }
384  else
385  {
386  LOG_ERROR("Failed to determine default render target size: swap chain is not initialized in the device context");
387  }
388  }
389 }
390 
391 template<typename BaseInterface>
392 inline void DeviceContextBase<BaseInterface> :: SetViewports( Uint32 NumViewports, const Viewport *pViewports, Uint32 &RTWidth, Uint32 &RTHeight )
393 {
394  if( RTWidth == 0 || RTHeight == 0 )
395  {
396  GetRenderTargetSize( RTWidth, RTHeight );
397  }
398 
399  VERIFY(NumViewports < MaxRenderTargets, "Num viewports (", NumViewports, ") exceeds the limit (", MaxRenderTargets, ")");
400  m_NumViewports = std::min(MaxRenderTargets, NumViewports);
401 
402  Viewport DefaultVP( 0, 0, static_cast<float>(RTWidth), static_cast<float>(RTHeight) );
403  // If no viewports are specified, use default viewport
404  if( m_NumViewports == 1 && pViewports == nullptr )
405  {
406  pViewports = &DefaultVP;
407  }
408 
409  for( Uint32 vp = 0; vp < m_NumViewports; ++vp )
410  {
411  m_Viewports[vp] = pViewports[vp];
412  VERIFY( m_Viewports[vp].Width >= 0, "Incorrect viewport width (", m_Viewports[vp].Width, ")" );
413  VERIFY( m_Viewports[vp].Height >= 0 , "Incorrect viewport height (", m_Viewports[vp].Height, ")" );
414  VERIFY( m_Viewports[vp].MaxDepth >= m_Viewports[vp].MinDepth, "Incorrect viewport depth range [", m_Viewports[vp].MinDepth, ", ", m_Viewports[vp].MaxDepth, "]" );
415  }
416 }
417 
418 template<typename BaseInterface>
419 inline void DeviceContextBase<BaseInterface> :: GetViewports( Uint32 &NumViewports, Viewport *pViewports )
420 {
421  NumViewports = m_NumViewports;
422  if( pViewports )
423  {
424  for( Uint32 vp = 0; vp < m_NumViewports; ++vp )
425  pViewports[vp] = m_Viewports[vp];
426  }
427 }
428 
429 template<typename BaseInterface>
430 inline void DeviceContextBase<BaseInterface> :: SetScissorRects( Uint32 NumRects, const Rect *pRects, Uint32 &RTWidth, Uint32 &RTHeight )
431 {
432  if( RTWidth == 0 || RTHeight == 0 )
433  {
434  GetRenderTargetSize( RTWidth, RTHeight );
435  }
436 
437  VERIFY(NumRects < MaxRenderTargets, "Num scissor rects (", NumRects, ") exceeds the limit (", MaxRenderTargets, ")");
438  m_NumScissorRects = std::min(MaxRenderTargets, NumRects);
439 
440  for( Uint32 sr = 0; sr < m_NumScissorRects; ++sr )
441  {
442  m_ScissorRects[sr] = pRects[sr];
443  VERIFY( m_ScissorRects[sr].left <= m_ScissorRects[sr].right, "Incorrect horizontal bounds for a scissor rect [", m_ScissorRects[sr].left, ", ", m_ScissorRects[sr].right, ")" );
444  VERIFY( m_ScissorRects[sr].top <= m_ScissorRects[sr].bottom, "Incorrect vertical bounds for a scissor rect [", m_ScissorRects[sr].top, ", ", m_ScissorRects[sr].bottom, ")" );
445  }
446 }
447 
448 template<typename BaseInterface>
449 inline bool DeviceContextBase<BaseInterface> :: SetRenderTargets( Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil, Uint32 Dummy )
450 {
451  bool bBindRenderTargets = false;
452  if( NumRenderTargets != m_NumBoundRenderTargets )
453  {
454  bBindRenderTargets = true;
455  for(Uint32 rt = NumRenderTargets; rt < m_NumBoundRenderTargets; ++rt )
456  m_pBoundRenderTargets[rt].Release();
457 
458  m_NumBoundRenderTargets = NumRenderTargets;
459  }
460 
461  for( Uint32 rt = 0; rt < NumRenderTargets; ++rt )
462  {
463  auto *pRTView = ppRenderTargets[rt];
464 #ifdef _DEBUG
465  if( pRTView )
466  {
467  const auto &ViewDesc = pRTView->GetDesc();
468  VERIFY( ViewDesc.ViewType == TEXTURE_VIEW_RENDER_TARGET, "Texture view object named \"", ViewDesc.Name ? ViewDesc.Name : "", "\" has incorrect view type (", GetTexViewTypeLiteralName(ViewDesc.ViewType), "). Render target view is expected" );
469  }
470 #endif
471  // Here both views a certainly live object, since we store
472  // strong references to all bound render targets. So we
473  // can safely compare pointers.
474  if( m_pBoundRenderTargets[rt] != pRTView )
475  {
476  m_pBoundRenderTargets[rt] = pRTView;
477  bBindRenderTargets = true;
478  }
479  }
480 
481 #ifdef _DEBUG
482  if( pDepthStencil )
483  {
484  const auto &ViewDesc = pDepthStencil->GetDesc();
485  VERIFY( ViewDesc.ViewType == TEXTURE_VIEW_DEPTH_STENCIL, "Texture view object named \"", ViewDesc.Name ? ViewDesc.Name : "", "\" has incorrect view type (", GetTexViewTypeLiteralName(ViewDesc.ViewType), "). Depth stencil view is expected" );
486  }
487 #endif
488 
489  if( m_pBoundDepthStencil != pDepthStencil)
490  {
491  m_pBoundDepthStencil = pDepthStencil;
492  bBindRenderTargets = true;
493  }
494 
495  if (NumRenderTargets == 0 && pDepthStencil == nullptr)
496  {
497  if (!m_IsDefaultFramebufferBound)
498  {
499  m_IsDefaultFramebufferBound = true;
500  bBindRenderTargets = true;
501  }
502  }
503  else
504  m_IsDefaultFramebufferBound = false;
505 
506  return bBindRenderTargets;
507 }
508 
509 template<typename BaseInterface>
510 inline void DeviceContextBase<BaseInterface> :: GetRenderTargets( Uint32 &NumRenderTargets, ITextureView **ppRTVs, ITextureView **ppDSV )
511 {
512  NumRenderTargets = m_NumBoundRenderTargets;
513 
514  if( ppRTVs )
515  {
516  for( Uint32 rt = 0; rt < NumRenderTargets; ++rt )
517  {
518  VERIFY( ppRTVs[rt] == nullptr, "Non-null pointer found in RTV array element #", rt );
519  auto pBoundRTV = m_pBoundRenderTargets[rt];
520  if( pBoundRTV )
521  pBoundRTV->QueryInterface( IID_TextureView, reinterpret_cast<IObject**>(ppRTVs + rt) );
522  else
523  ppRTVs[rt] = nullptr;
524  }
525  for( Uint32 rt = NumRenderTargets; rt < MaxRenderTargets; ++rt )
526  {
527  VERIFY( ppRTVs[rt] == nullptr, "Non-null pointer found in RTV array element #", rt );
528  ppRTVs[rt] = nullptr;
529  }
530  }
531 
532  if( ppDSV )
533  {
534  VERIFY( *ppDSV == nullptr, "Non-null DSV pointer found" );
535  if( m_pBoundDepthStencil )
536  m_pBoundDepthStencil->QueryInterface( IID_TextureView, reinterpret_cast<IObject**>(ppDSV) );
537  else
538  *ppDSV = nullptr;
539  }
540 }
541 
542 template<typename BaseInterface>
544 {
545  for(Uint32 stream=0; stream < m_NumVertexStreams; ++stream)
546  m_VertexStreams[stream] = VertexStreamInfo();
547 #ifdef _DEBUG
548  for(Uint32 stream=m_NumVertexStreams; stream < _countof(m_VertexStreams); ++stream)
549  {
550  VERIFY(m_VertexStreams[stream].pBuffer == nullptr, "Unexpected non-null buffer");
551  VERIFY(m_VertexStreams[stream].Offset == 0, "Unexpected non-zero offset");
552  VERIFY(m_VertexStreams[stream].Stride == 0, "Unexpected non-zero stride");
553  }
554 #endif
555  m_NumVertexStreams = 0;
556 
557  m_pPipelineState.Release();
558 
559  m_pIndexBuffer.Release();
560  m_IndexDataStartOffset = 0;
561 
562  m_StencilRef = 0;
563 
564  for( int i = 0; i < 4; ++i )
565  m_BlendFactors[i] = -1;
566 
567  for(Uint32 vp=0; vp < m_NumViewports; ++vp)
568  m_Viewports[vp] = Viewport();
569  m_NumViewports = 0;
570 
571  for(Uint32 sr=0; sr < m_NumScissorRects; ++sr)
572  m_ScissorRects[sr] = Rect();
573  m_NumScissorRects = 0;
574 
575  // Vector of strong references to bound render targets
576  for(Uint32 rt=0; rt < m_NumBoundRenderTargets; ++rt )
577  m_pBoundRenderTargets[rt].Release();
578 #ifdef _DEBUG
579  for (Uint32 rt = m_NumBoundRenderTargets; rt < _countof(m_pBoundRenderTargets); ++rt)
580  {
581  VERIFY(m_pBoundRenderTargets[rt] == nullptr, "Non-null render target found");
582  }
583 #endif
584  m_NumBoundRenderTargets = 0;
585 
586  m_pBoundDepthStencil.Release();
587 }
588 
589 }
bool SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil, Uint32 Dummy=0)
Caches the render target and depth stencil views. Returns true if any view is different from the cach...
Definition: DeviceContextBase.h:449
+
Uint32 m_NumViewports
Number of current viewports.
Definition: DeviceContextBase.h:178
+
static constexpr Uint32 MaxBufferSlots
Maximum number of input buffer slots. D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT == 32...
Definition: Constants.h:33
+
Swap chain description.
Definition: GraphicsTypes.h:912
+
void GetRenderTargetSize(Uint32 &RTWidth, Uint32 &RTHeight)
Returns the size of the currently bound render target.
Definition: DeviceContextBase.h:340
+
Render device interface.
Definition: RenderDevice.h:55
+
Uint32 m_NumVertexStreams
Number of bound vertex streams.
Definition: DeviceContextBase.h:158
+
Template class implementing base functionality for an object.
Definition: ObjectBase.h:62
+
bool CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags, int)
Base implementation of IDeviceContext::CommitShaderResources(); validates parameters.
Definition: DeviceContextBase.h:252
+
DeviceContextBase(IReferenceCounters *pRefCounters, IRenderDevice *pRenderDevice, bool bIsDeferred)
Definition: DeviceContextBase.h:77
+
void GetRenderTargets(Uint32 &NumRenderTargets, ITextureView **ppRTVs, ITextureView **ppDSV)
Returns currently bound render targets.
Definition: DeviceContextBase.h:510
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Uint32 Offset
Offset in bytes.
Definition: DeviceContextBase.h:53
+
Base implementation of the device context.
Definition: DeviceContextBase.h:68
+
Uint32 m_NumScissorRects
Number of current scissor rects.
Definition: DeviceContextBase.h:183
+
void SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 &RTWidth, Uint32 &RTHeight)
Caches the viewports.
Definition: DeviceContextBase.h:392
+
bool IsDefaultFBBound()
Returns true if currently bound frame buffer is the default frame buffer.
Definition: DeviceContextBase.h:122
+
static constexpr Uint32 MaxRenderTargets
Maximum number of simultaneous render targets.
Definition: Constants.h:36
+
A buffer can be bound as an index buffer.
Definition: GraphicsTypes.h:65
+
Describes the viewport.
Definition: DeviceContext.h:376
+
virtual void SetSwapChain(ISwapChain *pSwapChain) override final
Sets the strong pointer to the swap chain.
Definition: DeviceContextBase.h:116
+
Shader resource binding interface.
Definition: ShaderResourceBinding.h:40
+
IRenderDevice * GetDevice()
Returns the render device.
Definition: DeviceContextBase.h:134
+
Describes input vertex stream.
Definition: DeviceContextBase.h:48
+
A buffer can be bound as a vertex buffer.
Definition: GraphicsTypes.h:64
+
Buffer interface.
Definition: Buffer.h:200
+
Uint32 m_StencilRef
Current stencil reference value.
Definition: DeviceContextBase.h:170
+
RefCntAutoPtr< ITextureView > m_pBoundDepthStencil
Strong references to the bound depth stencil view.
Definition: DeviceContextBase.h:194
+
Swap chain interface.
Definition: SwapChain.h:41
+
Rect m_ScissorRects[MaxRenderTargets]
Current scissor rects.
Definition: DeviceContextBase.h:181
+
A texture view will define a depth stencil view that will be used as the target for rendering operati...
Definition: GraphicsTypes.h:205
+
VertexStreamInfo m_VertexStreams[MaxBufferSlots]
Vertex streams. Every stream holds strong reference to the buffer.
Definition: DeviceContextBase.h:155
+
Texture view interface.
Definition: TextureView.h:163
+
RefCntAutoPtr< IPipelineState > m_pPipelineState
Strong reference to the bound pipeline state object.
Definition: DeviceContextBase.h:161
+
Uint32 m_IndexDataStartOffset
Offset from the beginning of the index buffer to the start of the index data, in bytes.
Definition: DeviceContextBase.h:167
+
ISwapChain * GetSwapChain()
Returns the swap chain.
Definition: DeviceContextBase.h:119
+
void ClearStateCache()
Clears all cached resources.
Definition: DeviceContextBase.h:543
+
virtual const TextureViewDesc & GetDesc() const =0
Returns the texture view description used to create the object.
+
void SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 &RTWidth, Uint32 &RTHeight)
Caches the scissor rects.
Definition: DeviceContextBase.h:430
+
Definition: PipelineState.h:209
+
RefCntAutoPtr< ITextureView > m_pBoundRenderTargets[MaxRenderTargets]
Vector of strong references to the bound render targets.
Definition: DeviceContextBase.h:186
+
void GetPipelineState(IPipelineState **ppPSO, float *BlendFactors, Uint32 &StencilRef)
Returns currently bound pipeline state and blend factors.
Definition: DeviceContextBase.h:297
+
bool m_IsDefaultFramebufferBound
Flag indicating if default render target & depth-stencil buffer are currently bound.
Definition: DeviceContextBase.h:191
+
void GetViewports(Uint32 &NumViewports, Viewport *pViewports)
Returns currently set viewports.
Definition: DeviceContextBase.h:419
+
Uint32 Stride
Stride in bytes.
Definition: DeviceContextBase.h:52
+
Viewport m_Viewports[MaxRenderTargets]
Current viewports.
Definition: DeviceContextBase.h:176
+
Describes the rectangle.
Definition: DeviceContext.h:420
+
Template class that implements reference counting.
Definition: RefCntAutoPtr.h:71
+
RefCntAutoPtr< IBuffer > pBuffer
Strong reference to the buffer object.
Definition: DeviceContextBase.h:51
+
virtual void SetPipelineState(IPipelineState *pPipelineState) override=0
Base implementation of IDeviceContext::SetPipelineState(); caches references to the pipeline state ob...
Definition: DeviceContextBase.h:246
+
RefCntAutoPtr< IRenderDevice > m_pDevice
Strong reference to the device.
Definition: DeviceContextBase.h:148
+
Reset the vertex buffers to only the buffers specified in this call. All buffers previously bound to ...
Definition: DeviceContext.h:359
+
RefCntAutoPtr< IBuffer > m_pIndexBuffer
Strong reference to the bound index buffer.
Definition: DeviceContextBase.h:164
+
Uint32 m_NumBoundRenderTargets
Number of bound render targets.
Definition: DeviceContextBase.h:188
+
Float32 m_BlendFactors[4]
Curent blend factors.
Definition: DeviceContextBase.h:173
+
virtual void SetVertexBuffers(Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags) override=0
Base implementation of IDeviceContext::SetVertexBuffers(); validates parameters and caches references...
Definition: DeviceContextBase.h:201
+
RefCntAutoPtr< ISwapChain > m_pSwapChain
Strong reference to the swap chain. Swap chain holds weak reference to the immediate context...
Definition: DeviceContextBase.h:152
+
Uint32 Height
The swap chain height. Default value is 0.
Definition: GraphicsTypes.h:918
+
Uint32 Width
The swap chain width. Default value is 0.
Definition: GraphicsTypes.h:915
+
virtual void SetIndexBuffer(IBuffer *pIndexBuffer, Uint32 ByteOffset) override=0
Base implementation of IDeviceContext::SetIndexBuffer(); caches the strong reference to the index buf...
Definition: DeviceContextBase.h:282
+
virtual class IPipelineState * GetPipelineState()=0
Returns pointer to the referenced buffer object.
+
A texture view will define a render target view that will be used as the target for rendering operati...
Definition: GraphicsTypes.h:201
+
virtual const BufferDesc & GetDesc() const =0
Returns the buffer description used to create the object.
+
+ + + + + diff --git a/doc/html/_device_context_d3_d11_8h_source.html b/doc/html/_device_context_d3_d11_8h_source.html new file mode 100644 index 00000000..cd84ebc4 --- /dev/null +++ b/doc/html/_device_context_d3_d11_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/interface/DeviceContextD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DeviceContextD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DeviceContext.h"
30 
31 namespace Diligent
32 {
33 
34 // {F0EE0335-C8AB-4EC1-BB15-B8EE5F003B99}
35 static constexpr INTERFACE_ID IID_DeviceContextD3D11 =
36 { 0xf0ee0335, 0xc8ab, 0x4ec1, { 0xbb, 0x15, 0xb8, 0xee, 0x5f, 0x0, 0x3b, 0x99 } };
37 
40 {
41 public:
42 
44 
47  virtual ID3D11DeviceContext* GetD3D11DeviceContext() = 0;
48 };
49 
50 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Device context interface.
Definition: DeviceContext.h:443
+
Interface to the device context object implemented in D3D11.
Definition: DeviceContextD3D11.h:39
+
virtual ID3D11DeviceContext * GetD3D11DeviceContext()=0
Returns a pointer to the ID3D11DeviceContext interface of the internal Direct3D11 object...
+
+ + + + + diff --git a/doc/html/_device_context_d3_d11_impl_8h_source.html b/doc/html/_device_context_d3_d11_impl_8h_source.html new file mode 100644 index 00000000..906a4325 --- /dev/null +++ b/doc/html/_device_context_d3_d11_impl_8h_source.html @@ -0,0 +1,129 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/DeviceContextD3D11Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DeviceContextD3D11Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DeviceContextD3D11.h"
30 #include "DeviceContextBase.h"
31 #include "ShaderD3D11Impl.h"
32 
33 #ifdef _DEBUG
34 # define VERIFY_CONTEXT_BINDINGS
35 #endif
36 
37 namespace Diligent
38 {
39 
41 class DeviceContextD3D11Impl : public DeviceContextBase<IDeviceContextD3D11>
42 {
43 public:
45 
46  DeviceContextD3D11Impl(IReferenceCounters *pRefCounters, IMemoryAllocator &Allocator, IRenderDevice *pDevice, ID3D11DeviceContext *pd3d11DeviceContext, const struct EngineD3D11Attribs &EngineAttribs, bool bIsDeferred);
47  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final;
48 
49  virtual void SetPipelineState(IPipelineState *pPipelineState)override final;
50 
51  virtual void TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding)override final;
52 
53  virtual void CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags)override final;
54 
55  virtual void SetStencilRef(Uint32 StencilRef)override final;
56 
57  virtual void SetBlendFactors(const float* pBlendFactors = nullptr)override final;
58 
59  virtual void SetVertexBuffers( Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags )override final;
60 
61  virtual void InvalidateState()override final;
62 
63  virtual void SetIndexBuffer( IBuffer *pIndexBuffer, Uint32 ByteOffset )override final;
64 
65  virtual void SetViewports( Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight )override final;
66 
67  virtual void SetScissorRects( Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight )override final;
68 
69  virtual void SetRenderTargets( Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil )override final;
70 
71  virtual void Draw( DrawAttribs &DrawAttribs )override final;
72 
73  virtual void DispatchCompute( const DispatchComputeAttribs &DispatchAttrs )override final;
74 
75  virtual void ClearDepthStencil( ITextureView *pView, Uint32 ClearFlags, float fDepth, Uint8 Stencil)override final;
76 
77  virtual void ClearRenderTarget( ITextureView *pView, const float *RGBA )override final;
78 
79  virtual void Flush()override final;
80 
81  void FinishCommandList(class ICommandList **ppCommandList)override final;
82 
83  virtual void ExecuteCommandList(class ICommandList *pCommandList)override final;
84 
85  ID3D11DeviceContext* GetD3D11DeviceContext(){ return m_pd3d11DeviceContext; }
86 
87  void CommitRenderTargets();
88 
96 
98  static constexpr int NumShaderTypes = 6;
99 
100 private:
101 
103  void CommitD3D11IndexBuffer(VALUE_TYPE IndexType);
104 
106  void CommitD3D11VertexBuffers(class PipelineStateD3D11Impl *pPipelineStateD3D11);
107 
109  template<typename TD3D11ResourceViewType,
110  typename TSetD3D11View,
111  size_t NumSlots>
112  void UnbindResourceView(TD3D11ResourceViewType CommittedD3D11ViewsArr[][NumSlots],
113  ID3D11Resource* CommittedD3D11ResourcesArr[][NumSlots],
114  Uint8 NumCommittedResourcesArr[],
115  IDeviceObject *pResToUnbind,
116  ID3D11Resource *pd3d11ResToUndind,
117  TSetD3D11View SetD3D11ViewMethods[]);
118 
122  void UnbindTextureFromInput(TextureBaseD3D11 *pTexture, ID3D11Resource *pd3d11Resource);
123 
128  void UnbindBufferFromInput(BufferD3D11Impl *pBuffer, ID3D11Resource *pd3d11Buffer);
129 
133  void UnbindResourceFromUAV(IDeviceObject *pResource, ID3D11Resource *pd3d11Resource);
134 
136  void UnbindTextureFromRenderTarget(TextureBaseD3D11 *pResource);
137 
139  void UnbindTextureFromDepthStencil(TextureBaseD3D11 *pTexD3D11);
140 
141  template<bool TransitionResources,
142  bool CommitResources>
143  void TransitionAndCommitShaderResources(IPipelineState *pPSO, IShaderResourceBinding *pShaderResourceBinding);
144 
145  void ClearStateCache();
146 
147  CComPtr<ID3D11DeviceContext> m_pd3d11DeviceContext;
148 
152  ID3D11Buffer* m_CommittedD3D11CBs [NumShaderTypes][D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT];
153 
157  ID3D11ShaderResourceView* m_CommittedD3D11SRVs [NumShaderTypes][D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT];
158 
162  ID3D11SamplerState* m_CommittedD3D11Samplers[NumShaderTypes][D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT];
163 
167  ID3D11UnorderedAccessView* m_CommittedD3D11UAVs [NumShaderTypes][D3D11_PS_CS_UAV_REGISTER_COUNT];
168 
172  ID3D11Resource* m_CommittedD3D11SRVResources [NumShaderTypes][D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT];
173 
177  ID3D11Resource* m_CommittedD3D11UAVResources [NumShaderTypes][D3D11_PS_CS_UAV_REGISTER_COUNT];
178 
179  Uint8 m_NumCommittedCBs[NumShaderTypes] = {};
180  Uint8 m_NumCommittedSRVs[NumShaderTypes]= {};
181  Uint8 m_NumCommittedSamplers[NumShaderTypes]= {};
182  Uint8 m_NumCommittedUAVs[NumShaderTypes]= {};
183 
188  ID3D11Buffer* m_CommittedD3D11VertexBuffers[MaxBufferSlots] = {};
190  UINT m_CommittedD3D11VBStrides[MaxBufferSlots];
192  UINT m_CommittedD3D11VBOffsets[MaxBufferSlots];
194  UINT m_NumCommittedD3D11VBs;
196  bool m_bCommittedD3D11VBsUpToDate = false;
197 
201  ID3D11InputLayout *m_CommittedD3D11InputLayout = nullptr;
202 
205  CComPtr<ID3D11Buffer> m_CommittedD3D11IndexBuffer;
207  VALUE_TYPE m_CommittedIBFormat;
209  Uint32 m_CommittedD3D11IndexDataStartOffset;
211  bool m_bCommittedD3D11IBUpToDate = false;
212 
213  D3D11_PRIMITIVE_TOPOLOGY m_CommittedD3D11PrimTopology = D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED;
214  PRIMITIVE_TOPOLOGY m_CommittedPrimitiveTopology = PRIMITIVE_TOPOLOGY_UNDEFINED;
215 
217  CComPtr<ID3D11DeviceChild> m_CommittedD3DShaders[NumShaderTypes];
218 
219  Uint32 m_DebugFlags;
220 
221  FixedBlockMemoryAllocator m_CmdListAllocator;
222 
223 #ifdef VERIFY_CONTEXT_BINDINGS
224  void dbgVerifyRenderTargetFormats();
226 
228  template<UINT MaxResources, typename TD3D11ResourceType, typename TGetD3D11ResourcesType>
229  void dbgVerifyCommittedResources(TD3D11ResourceType CommittedD3D11ResourcesArr[][MaxResources],
230  Uint8 NumCommittedResourcesArr[],
231  TGetD3D11ResourcesType GetD3D11ResMethods[],
232  const Char *ResourceName,
233  SHADER_TYPE ShaderType);
234 
236  template<UINT MaxResources, typename TD3D11ViewType>
237  void dbgVerifyViewConsistency(TD3D11ViewType CommittedD3D11ViewArr[][MaxResources],
238  ID3D11Resource* CommittedD3D11ResourcesArr[][MaxResources],
239  Uint8 NumCommittedResourcesArr[],
240  const Char *ResourceName,
241  SHADER_TYPE ShaderType);
242 
245  void dbgVerifyCommittedSRVs(SHADER_TYPE ShaderType = SHADER_TYPE_UNKNOWN);
246 
249  void dbgVerifyCommittedUAVs(SHADER_TYPE ShaderType = SHADER_TYPE_UNKNOWN);
250 
253  void dbgVerifyCommittedSamplers(SHADER_TYPE ShaderType = SHADER_TYPE_UNKNOWN);
254 
257  void dbgVerifyCommittedCBs(SHADER_TYPE ShaderType = SHADER_TYPE_UNKNOWN);
258 
262  void dbgVerifyCommittedIndexBuffer();
263 
267  void dbgVerifyCommittedVertexBuffers();
268 
272  void dbgVerifyCommittedShaders();
273 
274 #else
275  #define dbgVerifyRenderTargetFormats(...)
276  #define dbgVerifyCommittedSRVs(...)
277  #define dbgVerifyCommittedUAVs(...)
278  #define dbgVerifyCommittedSamplers(...)
279  #define dbgVerifyCommittedCBs(...)
280  #define dbgVerifyCommittedIndexBuffer(...)
281  #define dbgVerifyCommittedVertexBuffers(...)
282  #define dbgVerifyCommittedShaders(...)
283 
284 #endif
285 };
286 
287 }
static constexpr int NumShaderTypes
Number of different shader types (Vertex, Pixel, Geometry, Domain, Hull, Compute) ...
Definition: DeviceContextD3D11Impl.h:98
+
static constexpr Uint32 MaxBufferSlots
Maximum number of input buffer slots. D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT == 32...
Definition: Constants.h:33
+
Render device interface.
Definition: RenderDevice.h:55
+
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
PRIMITIVE_TOPOLOGY
Input primitive topology.
Definition: DeviceContext.h:56
+
Base implementation of the Diligent::ITextureD3D11 interface.
Definition: TextureBaseD3D11.h:50
+
virtual void SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight) override final
Sets an array of viewports.
Definition: DeviceContextD3D11Impl.cpp:864
+
virtual void Flush() override final
Flushes the command buffer.
Definition: DeviceContextD3D11Impl.cpp:847
+
virtual void SetVertexBuffers(Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags) override final
Base implementation of IDeviceContext::SetVertexBuffers(); validates parameters and caches references...
Definition: DeviceContextD3D11Impl.cpp:852
+
ID3D11DeviceContext * GetD3D11DeviceContext()
Returns a pointer to the ID3D11DeviceContext interface of the internal Direct3D11 object...
Definition: DeviceContextD3D11Impl.h:85
+
virtual void ClearDepthStencil(ITextureView *pView, Uint32 ClearFlags, float fDepth, Uint8 Stencil) override final
Clears a depth-stencil view.
Definition: DeviceContextD3D11Impl.cpp:779
+
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
virtual void Draw(DrawAttribs &DrawAttribs) override final
Executes a draw command.
Definition: DeviceContextD3D11Impl.cpp:660
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Base implementation of the device context.
Definition: DeviceContextBase.h:68
+
Describes the viewport.
Definition: DeviceContext.h:376
+
virtual void SetBlendFactors(const float *pBlendFactors=nullptr) override final
Definition: DeviceContextD3D11Impl.cpp:548
+
Shader resource binding interface.
Definition: ShaderResourceBinding.h:40
+
void FinishCommandList(class ICommandList **ppCommandList) override final
Finishes recording commands and generates a command list.
Definition: DeviceContextD3D11Impl.cpp:1243
+
Undefined topology.
Definition: DeviceContext.h:59
+
virtual void DispatchCompute(const DispatchComputeAttribs &DispatchAttrs) override final
Executes a dispatch compute command.
Definition: DeviceContextD3D11Impl.cpp:746
+
Describes dispatch command arguments.
Definition: DeviceContext.h:312
+
virtual void SetIndexBuffer(IBuffer *pIndexBuffer, Uint32 ByteOffset) override final
Base implementation of IDeviceContext::SetIndexBuffer(); caches the strong reference to the index buf...
Definition: DeviceContextD3D11Impl.cpp:858
+
virtual void SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight) override final
Sets active scissor rects.
Definition: DeviceContextD3D11Impl.cpp:888
+
Buffer interface.
Definition: Buffer.h:200
+
Implementation of the Diligent::IPipelineStateD3D11 interface.
Definition: PipelineStateD3D11Impl.h:40
+
virtual void SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil) override final
Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewp...
Definition: DeviceContextD3D11Impl.cpp:1158
+
virtual void ExecuteCommandList(class ICommandList *pCommandList) override final
Executes recorded commands in a command list.
Definition: DeviceContextD3D11Impl.cpp:1275
+
Texture view interface.
Definition: TextureView.h:163
+
VALUE_TYPE
Value type.
Definition: GraphicsTypes.h:39
+
Command list interface.
Definition: CommandList.h:42
+
Unknown shader type.
Definition: Shader.h:48
+
void ReleaseCommittedShaderResources()
Clears the committed shader resource cache. This function is called once per frame (before present) t...
Definition: DeviceContextD3D11Impl.cpp:1214
+
Definition: PipelineState.h:209
+
Defines the draw command attributes.
Definition: DeviceContext.h:212
+
virtual void SetStencilRef(Uint32 StencilRef) override final
Sets the stencil reference value.
Definition: DeviceContextD3D11Impl.cpp:538
+
Describes the rectangle.
Definition: DeviceContext.h:420
+
virtual void InvalidateState() override final
Invalidates the cached context state.
Definition: DeviceContextD3D11Impl.cpp:1351
+
virtual void ClearRenderTarget(ITextureView *pView, const float *RGBA) override final
Clears a render target view.
Definition: DeviceContextD3D11Impl.cpp:812
+
Implementation of the Diligent::IBufferD3D11 interface.
Definition: BufferD3D11Impl.h:51
+
virtual void CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags) override final
Commits shader resources to the device context.
Definition: DeviceContextD3D11Impl.cpp:527
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
Queries the specific interface, see IObject::QueryInterface() for details.
+
virtual void TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding) override final
Transitions shader resources to the require states.
Definition: DeviceContextD3D11Impl.cpp:522
+
Implementation of the Diligent::IDeviceContextD3D11 interface.
Definition: DeviceContextD3D11Impl.h:41
+
Attributes of the Direct3D11-based engine implementation.
Definition: EngineD3D11Attribs.h:51
+
virtual void SetPipelineState(IPipelineState *pPipelineState) override final
Base implementation of IDeviceContext::SetPipelineState(); caches references to the pipeline state ob...
Definition: DeviceContextD3D11Impl.cpp:73
+
+ + + + + diff --git a/doc/html/_device_context_d3_d12_8h_source.html b/doc/html/_device_context_d3_d12_8h_source.html new file mode 100644 index 00000000..bbd515af --- /dev/null +++ b/doc/html/_device_context_d3_d12_8h_source.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/interface/DeviceContextD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DeviceContextD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DeviceContext.h"
30 
31 namespace Diligent
32 {
33 
34 // {DDE9E3AB-5109-4026-92B7-F5E7EC83E21E}
35 static constexpr INTERFACE_ID IID_DeviceContextD3D12 =
36 { 0xdde9e3ab, 0x5109, 0x4026, { 0x92, 0xb7, 0xf5, 0xe7, 0xec, 0x83, 0xe2, 0x1e } };
37 
40 {
41 public:
42 
44 
47  virtual void TransitionTextureState(ITexture *pTexture, D3D12_RESOURCE_STATES State) = 0;
48 
50 
53  virtual void TransitionBufferState(IBuffer *pBuffer, D3D12_RESOURCE_STATES State) = 0;
54 };
55 
56 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual void TransitionBufferState(IBuffer *pBuffer, D3D12_RESOURCE_STATES State)=0
Transitions internal D3D12 buffer object to a specified state.
+
Buffer interface.
Definition: Buffer.h:200
+
Device context interface.
Definition: DeviceContext.h:443
+
virtual void TransitionTextureState(ITexture *pTexture, D3D12_RESOURCE_STATES State)=0
Transitions internal D3D12 texture object to a specified state.
+
Interface to the device context object implemented in D3D12.
Definition: DeviceContextD3D12.h:39
+
Texture inteface.
Definition: Texture.h:276
+
+ + + + + diff --git a/doc/html/_device_context_d3_d12_impl_8h_source.html b/doc/html/_device_context_d3_d12_impl_8h_source.html new file mode 100644 index 00000000..99f1fea2 --- /dev/null +++ b/doc/html/_device_context_d3_d12_impl_8h_source.html @@ -0,0 +1,127 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/DeviceContextD3D12Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DeviceContextD3D12Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DeviceContextD3D12.h"
30 #include "DeviceContextBase.h"
31 #include "GenerateMips.h"
32 
33 #ifdef _DEBUG
34 # define VERIFY_CONTEXT_BINDINGS
35 #endif
36 
37 namespace Diligent
38 {
39 
41 class DeviceContextD3D12Impl : public DeviceContextBase<IDeviceContextD3D12>
42 {
43 public:
45 
46  DeviceContextD3D12Impl(IReferenceCounters *pRefCounters, class RenderDeviceD3D12Impl *pDevice, bool bIsDeferred, const EngineD3D12Attribs &Attribs, Uint32 ContextId);
48 
49  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final;
50 
51  virtual void SetPipelineState(IPipelineState *pPipelineState)override final;
52 
53  virtual void TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding)override final;
54 
55  virtual void CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags)override final;
56 
57  virtual void SetStencilRef(Uint32 StencilRef)override final;
58 
59  virtual void SetBlendFactors(const float* pBlendFactors = nullptr)override final;
60 
61  virtual void SetVertexBuffers( Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags )override final;
62 
63  virtual void InvalidateState()override final;
64 
65  virtual void SetIndexBuffer( IBuffer *pIndexBuffer, Uint32 ByteOffset )override final;
66 
67  virtual void SetViewports( Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight )override final;
68 
69  virtual void SetScissorRects( Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight )override final;
70 
71  virtual void SetRenderTargets( Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil )override final;
72 
73  virtual void Draw( DrawAttribs &DrawAttribs )override final;
74 
75  virtual void DispatchCompute( const DispatchComputeAttribs &DispatchAttrs )override final;
76 
77  virtual void ClearDepthStencil( ITextureView *pView, Uint32 ClearFlags, float fDepth, Uint8 Stencil)override final;
78 
79  virtual void ClearRenderTarget( ITextureView *pView, const float *RGBA )override final;
80 
81  virtual void Flush()override final;
82 
83  virtual void FinishCommandList(class ICommandList **ppCommandList)override final;
84 
85  virtual void ExecuteCommandList(class ICommandList *pCommandList)override final;
86 
87  virtual void TransitionTextureState(ITexture *pTexture, D3D12_RESOURCE_STATES State)override final;
88 
89  virtual void TransitionBufferState(IBuffer *pBuffer, D3D12_RESOURCE_STATES State)override final;
90 
94  //void ClearShaderStateCache();
95 
97  //static constexpr int NumShaderTypes = 6;
98 
99  void UpdateBufferRegion(class BufferD3D12Impl *pBuffD3D12, struct DynamicAllocation& Allocation, Uint64 DstOffset, Uint64 NumBytes);
100  void UpdateBufferRegion(class BufferD3D12Impl *pBuffD3D12, const void *pData, Uint64 DstOffset, Uint64 NumBytes);
101  void CopyBufferRegion(class BufferD3D12Impl *pSrcBuffD3D12, class BufferD3D12Impl *pDstBuffD3D12, Uint64 SrcOffset, Uint64 DstOffset, Uint64 NumBytes);
102  void CopyTextureRegion(class TextureD3D12Impl *pSrcTexture, Uint32 SrcSubResIndex, const D3D12_BOX *pD3D12SrcBox,
103  class TextureD3D12Impl *pDstTexture, Uint32 DstSubResIndex, Uint32 DstX, Uint32 DstY, Uint32 DstZ);
104  void CopyTextureRegion(IBuffer *pSrcBuffer, Uint32 SrcStride, Uint32 SrcDepthStride, class TextureD3D12Impl *pTextureD3D12, Uint32 DstSubResIndex, const Box &DstBox);
105 
106  void GenerateMips(class TextureViewD3D12Impl *pTexView);
107 
108  struct DynamicAllocation AllocateDynamicSpace(size_t NumBytes);
109 
110  Uint32 GetContextId()const{return m_ContextId;}
111 
112  size_t GetNumCommandsInCtx()const { return m_NumCommandsInCurCtx; }
113 
114 private:
115  void CommitD3D12IndexBuffer(VALUE_TYPE IndexType);
116  void CommitD3D12VertexBuffers(class GraphicsContext &GraphCtx);
117  void TransitionD3D12VertexBuffers(class GraphicsContext &GraphCtx);
118  void CommitRenderTargets();
119  void CommitViewports();
120  void CommitScissorRects();
121  void Flush(bool RequestNewCmdCtx);
122 
123  friend class SwapChainD3D12Impl;
124  inline class CommandContext* RequestCmdContext()
125  {
126  // Make sure that the number of commands in the context is at least one,
127  // so that the context cannot be disposed by Flush()
128  m_NumCommandsInCurCtx = m_NumCommandsInCurCtx != 0 ? m_NumCommandsInCurCtx : 1;
129  return m_pCurrCmdCtx;
130  }
131  size_t m_NumCommandsInCurCtx = 0;
132  const Uint32 m_NumCommandsToFlush = 192;
133  CommandContext* m_pCurrCmdCtx = nullptr;
134 
135  CComPtr<ID3D12Resource> m_CommittedD3D12IndexBuffer;
136  VALUE_TYPE m_CommittedIBFormat = VT_UNDEFINED;
137  Uint32 m_CommittedD3D12IndexDataStartOffset = 0;
138 
139  CComPtr<ID3D12CommandSignature> m_pDrawIndirectSignature;
140  CComPtr<ID3D12CommandSignature> m_pDrawIndexedIndirectSignature;
141  CComPtr<ID3D12CommandSignature> m_pDispatchIndirectSignature;
142 
143  GenerateMipsHelper m_MipsGenerator;
144  class DynamicUploadHeap* m_pUploadHeap = nullptr;
145 
147  bool m_bCommittedD3D12VBsUpToDate = false;
148 
150  bool m_bCommittedD3D12IBUpToDate = false;
151 
152  class ShaderResourceCacheD3D12 *m_pCommittedResourceCache = nullptr;
153 
154  FixedBlockMemoryAllocator m_CmdListAllocator;
155  const Uint32 m_ContextId;
156 };
157 
158 }
virtual void ClearDepthStencil(ITextureView *pView, Uint32 ClearFlags, float fDepth, Uint8 Stencil) override final
Clears a depth-stencil view.
Definition: DeviceContextD3D12Impl.cpp:459
+
Implementation of the Diligent::IBufferD3D12 interface.
Definition: BufferD3D12Impl.h:42
+
virtual void SetVertexBuffers(Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags) override final
Base implementation of IDeviceContext::SetVertexBuffers(); validates parameters and caches references...
Definition: DeviceContextD3D12Impl.cpp:552
+
Undefined type.
Definition: GraphicsTypes.h:41
+
virtual void FinishCommandList(class ICommandList **ppCommandList) override final
Finishes recording commands and generates a command list.
Definition: DeviceContextD3D12Impl.cpp:809
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual void DispatchCompute(const DispatchComputeAttribs &DispatchAttrs) override final
Executes a dispatch compute command.
Definition: DeviceContextD3D12Impl.cpp:403
+
Base implementation of the device context.
Definition: DeviceContextBase.h:68
+
Implementation of the Diligent::IDeviceContext interface.
Definition: DeviceContextD3D12Impl.h:41
+
Implementation of the Diligent::ISwapChainD3D12 interface.
Definition: SwapChainD3D12Impl.h:39
+
Describes the viewport.
Definition: DeviceContext.h:376
+
virtual void CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags) override final
Commits shader resources to the device context.
Definition: DeviceContextD3D12Impl.cpp:182
+
virtual void TransitionTextureState(ITexture *pTexture, D3D12_RESOURCE_STATES State) override final
Transitions internal D3D12 texture object to a specified state.
Definition: DeviceContextD3D12Impl.cpp:836
+
virtual void ClearRenderTarget(ITextureView *pView, const float *RGBA) override final
Clears a render target view.
Definition: DeviceContextD3D12Impl.cpp:491
+
Shader resource binding interface.
Definition: ShaderResourceBinding.h:40
+
Describes dispatch command arguments.
Definition: DeviceContext.h:312
+
virtual void SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil) override final
Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewp...
Definition: DeviceContextD3D12Impl.cpp:666
+
Buffer interface.
Definition: Buffer.h:200
+
Box.
Definition: GraphicsTypes.h:1005
+
Texture view interface.
Definition: TextureView.h:163
+
VALUE_TYPE
Value type.
Definition: GraphicsTypes.h:39
+
Command list interface.
Definition: CommandList.h:42
+
virtual void TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding) override final
Transitions shader resources to the require states.
Definition: DeviceContextD3D12Impl.cpp:173
+
Memory allocator that allocates memory in a fixed-size chunks.
Definition: FixedBlockMemoryAllocator.h:50
+
virtual void SetPipelineState(IPipelineState *pPipelineState) override final
Base implementation of IDeviceContext::SetPipelineState(); caches references to the pipeline state ob...
Definition: DeviceContextD3D12Impl.cpp:117
+
virtual void ExecuteCommandList(class ICommandList *pCommandList) override final
Executes recorded commands in a command list.
Definition: DeviceContextD3D12Impl.cpp:820
+
Definition: PipelineState.h:209
+
virtual void SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight) override final
Sets an array of viewports.
Definition: DeviceContextD3D12Impl.cpp:596
+
Defines the draw command attributes.
Definition: DeviceContext.h:212
+
virtual void SetIndexBuffer(IBuffer *pIndexBuffer, Uint32 ByteOffset) override final
Base implementation of IDeviceContext::SetIndexBuffer(); caches the strong reference to the index buf...
Definition: DeviceContextD3D12Impl.cpp:571
+
virtual void SetBlendFactors(const float *pBlendFactors=nullptr) override final
Definition: DeviceContextD3D12Impl.cpp:206
+
virtual void Flush() override final
Flushes the command buffer.
Definition: DeviceContextD3D12Impl.cpp:546
+
Describes the rectangle.
Definition: DeviceContext.h:420
+
Implementation of the Diligent::ITextureViewD3D12 interface.
Definition: TextureViewD3D12Impl.h:39
+
Base implementation of the Diligent::ITextureD3D12 interface.
Definition: TextureD3D12Impl.h:42
+
virtual void Draw(DrawAttribs &DrawAttribs) override final
Executes a draw command.
Definition: DeviceContextD3D12Impl.cpp:318
+
virtual void TransitionBufferState(IBuffer *pBuffer, D3D12_RESOURCE_STATES State) override final
Transitions internal D3D12 buffer object to a specified state.
Definition: DeviceContextD3D12Impl.cpp:843
+
Attributes specific to D3D12 engine.
Definition: GraphicsTypes.h:965
+
virtual void InvalidateState() override final
Invalidates the cached context state.
Definition: DeviceContextD3D12Impl.cpp:558
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
Queries the specific interface, see IObject::QueryInterface() for details.
+
virtual void SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight) override final
Sets active scissor rects.
Definition: DeviceContextD3D12Impl.cpp:608
+
virtual void SetStencilRef(Uint32 StencilRef) override final
Sets the stencil reference value.
Definition: DeviceContextD3D12Impl.cpp:198
+
Texture inteface.
Definition: Texture.h:276
+
Implementation of the Diligent::IRenderDeviceD3D12 interface.
Definition: RenderDeviceD3D12Impl.h:43
+
+ + + + + diff --git a/doc/html/_device_context_g_l_8h_source.html b/doc/html/_device_context_g_l_8h_source.html new file mode 100644 index 00000000..3f1c3b39 --- /dev/null +++ b/doc/html/_device_context_g_l_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/interface/DeviceContextGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DeviceContextGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DeviceContext.h"
30 
31 namespace Diligent
32 {
33 
34 // {3464FDF1-C548-4935-96C3-B454C9DF6F6A}
35 static constexpr INTERFACE_ID IID_DeviceContextGL =
36 { 0x3464fdf1, 0xc548, 0x4935, { 0x96, 0xc3, 0xb4, 0x54, 0xc9, 0xdf, 0x6f, 0x6a } };
37 
40 {
41 public:
42 
44 
50  virtual bool UpdateCurrentGLContext() = 0;
51 };
52 
53 }
Interface to the device context object implemented in OpenGL.
Definition: DeviceContextGL.h:39
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Device context interface.
Definition: DeviceContext.h:443
+
virtual bool UpdateCurrentGLContext()=0
Attaches to the active GL context in the thread.
+
+ + + + + diff --git a/doc/html/_device_context_g_l_impl_8h_source.html b/doc/html/_device_context_g_l_impl_8h_source.html new file mode 100644 index 00000000..862b31b9 --- /dev/null +++ b/doc/html/_device_context_g_l_impl_8h_source.html @@ -0,0 +1,119 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/DeviceContextGLImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DeviceContextGLImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "DeviceContextGL.h"
27 #include "DeviceContextBase.h"
28 #include "BaseInterfacesGL.h"
29 #include "GLContextState.h"
30 
31 namespace Diligent
32 {
33 
35 class DeviceContextGLImpl : public DeviceContextBase<IDeviceContextGL>
36 {
37 public:
39 
40  DeviceContextGLImpl( IReferenceCounters *pRefCounters, class RenderDeviceGLImpl *pDeviceGL, bool bIsDeferred );
41 
43  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final;
44 
45  virtual void SetPipelineState(IPipelineState *pPipelineState)override final;
46 
47  virtual void TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding)override final;
48 
49  virtual void CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags)override final;
50 
51  virtual void SetStencilRef(Uint32 StencilRef)override final;
52 
53  virtual void SetBlendFactors(const float* pBlendFactors = nullptr)override final;
54 
55  virtual void SetVertexBuffers( Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags )override final;
56 
57  virtual void InvalidateState()override final;
58 
59  virtual void SetIndexBuffer( IBuffer *pIndexBuffer, Uint32 ByteOffset )override final;
60 
61  virtual void SetViewports( Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight )override final;
62 
63  virtual void SetScissorRects( Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight )override final;
64 
65  virtual void SetRenderTargets( Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil )override final;
66 
67  virtual void Draw( DrawAttribs &DrawAttribs )override final;
68 
69  virtual void DispatchCompute( const DispatchComputeAttribs &DispatchAttrs )override final;
70 
71  virtual void ClearDepthStencil( ITextureView *pView, Uint32 ClearFlags, float fDepth, Uint8 Stencil)override final;
72 
73  virtual void ClearRenderTarget( ITextureView *pView, const float *RGBA )override final;
74 
75  virtual void Flush()override final;
76 
77  virtual void FinishCommandList(class ICommandList **ppCommandList)override final;
78 
79  virtual void ExecuteCommandList(class ICommandList *pCommandList)override final;
80 
81  virtual bool UpdateCurrentGLContext()override final;
82 
83  void BindProgramResources( Uint32 &NewMemoryBarriers, IShaderResourceBinding *pResBinding );
84 
85  GLContextState &GetContextState(){return m_ContextState;}
86 
87  void CommitRenderTargets();
88 
89 protected:
90  friend class BufferGLImpl;
91  friend class TextureBaseGL;
92  friend class ShaderGLImpl;
93 
94  GLContextState m_ContextState;
95 
96 private:
97  Uint32 m_CommitedResourcesTentativeBarriers;
98 
99  std::vector<class TextureBaseGL*> m_BoundWritableTextures;
100  std::vector<class BufferGLImpl*> m_BoundWritableBuffers;
101 
102  bool m_bVAOIsUpToDate = false;
103 };
104 
105 }
Base implementation of the Diligent::ITextureGL interface.
Definition: TextureBaseGL.h:41
+
Implementation of the Diligent::IShaderGL interface.
Definition: ShaderGLImpl.h:67
+
virtual void InvalidateState() override final
Invalidates the cached context state.
Definition: DeviceContextGLImpl.cpp:167
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual void SetPipelineState(IPipelineState *pPipelineState) override final
Base implementation of IDeviceContext::SetPipelineState(); caches references to the pipeline state ob...
Definition: DeviceContextGLImpl.cpp:63
+
virtual bool UpdateCurrentGLContext() override final
Attaches to the active GL context in the thread.
Definition: DeviceContextGLImpl.cpp:959
+
virtual void SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight) override final
Sets an array of viewports.
Definition: DeviceContextGLImpl.cpp:183
+
Base implementation of the device context.
Definition: DeviceContextBase.h:68
+
Implementation of the Diligent::IDeviceContextGL interface.
Definition: DeviceContextGLImpl.h:35
+
Describes the viewport.
Definition: DeviceContext.h:376
+
virtual void SetBlendFactors(const float *pBlendFactors=nullptr) override final
Definition: DeviceContextGLImpl.cpp:153
+
virtual void FinishCommandList(class ICommandList **ppCommandList) override final
Finishes recording commands and generates a command list.
Definition: DeviceContextGLImpl.cpp:949
+
Shader resource binding interface.
Definition: ShaderResourceBinding.h:40
+
Implementation of the render device interface in OpenGL.
Definition: RenderDeviceGLImpl.h:53
+
virtual void ClearDepthStencil(ITextureView *pView, Uint32 ClearFlags, float fDepth, Uint8 Stencil) override final
Clears a depth-stencil view.
Definition: DeviceContextGLImpl.cpp:840
+
Describes dispatch command arguments.
Definition: DeviceContext.h:312
+
virtual void SetVertexBuffers(Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags) override final
Base implementation of IDeviceContext::SetVertexBuffers(); validates parameters and caches references...
Definition: DeviceContextGLImpl.cpp:161
+
virtual void Draw(DrawAttribs &DrawAttribs) override final
Executes a draw command.
Definition: DeviceContextGLImpl.cpp:639
+
virtual void Flush() override final
Flushes the command buffer.
Definition: DeviceContextGLImpl.cpp:944
+
virtual void SetIndexBuffer(IBuffer *pIndexBuffer, Uint32 ByteOffset) override final
Base implementation of IDeviceContext::SetIndexBuffer(); caches the strong reference to the index buf...
Definition: DeviceContextGLImpl.cpp:177
+
virtual void CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags) override final
Commits shader resources to the device context.
Definition: DeviceContextGLImpl.cpp:129
+
Buffer interface.
Definition: Buffer.h:200
+
virtual void SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight) override final
Sets active scissor rects.
Definition: DeviceContextGLImpl.cpp:242
+
virtual void SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil) override final
Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewp...
Definition: DeviceContextGLImpl.cpp:315
+
Texture view interface.
Definition: TextureView.h:163
+
Command list interface.
Definition: CommandList.h:42
+
Implementation of the Diligent::IBufferGL interface.
Definition: BufferGLImpl.h:40
+
virtual void ExecuteCommandList(class ICommandList *pCommandList) override final
Executes recorded commands in a command list.
Definition: DeviceContextGLImpl.cpp:954
+
Definition: PipelineState.h:209
+
Defines the draw command attributes.
Definition: DeviceContext.h:212
+
Describes the rectangle.
Definition: DeviceContext.h:420
+
virtual void ClearRenderTarget(ITextureView *pView, const float *RGBA) override final
Clears a render target view.
Definition: DeviceContextGLImpl.cpp:883
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
Queries the specific interface, see IObject::QueryInterface() for details.
+
virtual void SetStencilRef(Uint32 StencilRef) override final
Sets the stencil reference value.
Definition: DeviceContextGLImpl.cpp:144
+
virtual void DispatchCompute(const DispatchComputeAttribs &DispatchAttrs) override final
Executes a dispatch compute command.
Definition: DeviceContextGLImpl.cpp:804
+
virtual void TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding) override final
Transitions shader resources to the require states.
Definition: DeviceContextGLImpl.cpp:124
+
+ + + + + diff --git a/doc/html/_device_object_8h_source.html b/doc/html/_device_object_8h_source.html new file mode 100644 index 00000000..243fc29f --- /dev/null +++ b/doc/html/_device_object_8h_source.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/DeviceObject.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DeviceObject.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Object.h"
30 #include "GraphicsTypes.h"
31 
32 namespace Diligent
33 {
34 
35 // {5B4CCA0B-5075-4230-9759-F48769EE5502}
36 static constexpr INTERFACE_ID IID_DeviceObject =
37 { 0x5b4cca0b, 0x5075, 0x4230, { 0x97, 0x59, 0xf4, 0x87, 0x69, 0xee, 0x55, 0x2 } };
38 
40 class IDeviceObject : public IObject
41 {
42 public:
44  virtual void QueryInterface( const INTERFACE_ID &IID, IObject **ppInterface ) = 0;
45 
47  virtual const DeviceObjectAttribs& GetDesc()const = 0;
48 };
49 
50 }
virtual void QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0
Queries the specific interface, see IObject::QueryInterface() for details.
+
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Describes common device object attributes.
Definition: GraphicsTypes.h:900
+
virtual const DeviceObjectAttribs & GetDesc() const =0
Returns the buffer object description.
+
+ + + + + diff --git a/doc/html/_device_object_base_8h_source.html b/doc/html/_device_object_base_8h_source.html new file mode 100644 index 00000000..a1315478 --- /dev/null +++ b/doc/html/_device_object_base_8h_source.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/DeviceObjectBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DeviceObjectBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "ObjectBase.h"
30 #include "UniqueIdentifier.h"
31 
32 namespace Diligent
33 {
34 
35 template<typename BaseInterface>
37 
38 class IRenderDevice;
39 
41 template<class BaseInterface, typename ObjectDescType>
42 class DeviceObjectBase : public ObjectBase<BaseInterface>
43 {
44 public:
46 
52  DeviceObjectBase( IReferenceCounters *pRefCounters,
53  IRenderDevice *pDevice,
54  const ObjectDescType &ObjDesc,
55  bool bIsDeviceInternal = false) :
56  TBase(pRefCounters),
57  m_pDevice( pDevice ),
58  // Do not keep strong reference to the device if the object is an internal device object
59  m_spDevice( bIsDeviceInternal ? nullptr : pDevice ),
60  m_ObjectNameCopy(ObjDesc.Name ? ObjDesc.Name : ""),
61  m_Desc( ObjDesc )
62  {
63  m_Desc.Name = m_ObjectNameCopy.c_str();
64 
65  // !!!WARNING!!!
66  // We cannot add resource to the hash table from here, because the object
67  // has not been completely created yet and the reference counters object
68  // is not initialized!
69  //m_pDevice->AddResourceToHash( this ); - ERROR!
70  }
71 
72  DeviceObjectBase( const DeviceObjectBase& ) = delete;
73  DeviceObjectBase( DeviceObjectBase&& ) = delete;
74  DeviceObjectBase& operator = ( const DeviceObjectBase& ) = delete;
75  DeviceObjectBase& operator = ( DeviceObjectBase&& ) = delete;
76 
77  virtual ~DeviceObjectBase()
78  {
79  }
80 
81  inline virtual Atomics::Long Release()override final
82  {
83  // Render device owns allocators for all types of device objects,
84  // so it must be destroyed after all device objects are released.
85  // Consider the following scenario: an object A ownes last strong
86  // reference to the device:
87  //
88  // 1. A::~A() completes
89  // 2. A::~DeviceObjectBase() completes
90  // 3. A::m_spDevice is released
91  // Render device is destroyed, all allocators are invalid
92  // 4. RefCountersImpl::ObjectWrapperBase::DestroyObject() calls
93  // m_pAllocator->Free(m_pObject) - crash!
94 
95  // We must keep the device alive while the object is being destroyed
96  RefCntAutoPtr<IRenderDevice> pDevice(m_spDevice);
97  // Note that internal device object do not keep strong reference to the device
98  return TBase::Release();
99  }
100 
101  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_DeviceObject, TBase )
102 
103  virtual const ObjectDescType& GetDesc()const override final
104  {
105  return m_Desc;
106  }
107 
109  UniqueIdentifier GetUniqueID()const
110  {
116  return m_UniqueID.GetID();
117  }
118 
119  IRenderDevice *GetDevice()const{return m_pDevice;}
120 
121 private:
123  RefCntAutoPtr<IRenderDevice> m_spDevice;
124 
126  IRenderDevice *m_pDevice;
127 
128 protected:
129 
131 
135  const String m_ObjectNameCopy;
136 
138  ObjectDescType m_Desc;
139 
140  // Template argument is only used to separate counters for
141  // different groups of objects
142  UniqueIdHelper<BaseInterface> m_UniqueID;
143 };
144 
145 }
Render device interface.
Definition: RenderDevice.h:55
+
Template class implementing base functionality for an object.
Definition: ObjectBase.h:62
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ObjectDescType &ObjDesc, bool bIsDeviceInternal=false)
Definition: DeviceObjectBase.h:52
+
const String m_ObjectNameCopy
Copy of a device object name.
Definition: DeviceObjectBase.h:135
+
UniqueIdentifier GetUniqueID() const
Returns unique identifier.
Definition: DeviceObjectBase.h:109
+
Base implementation of a render device.
Definition: DeviceObjectBase.h:36
+
ObjectDescType m_Desc
Object description.
Definition: DeviceObjectBase.h:138
+
Template class implementing base functionality for a device object.
Definition: DeviceObjectBase.h:42
+
+ + + + + diff --git a/doc/html/_dynamic_upload_heap_8h_source.html b/doc/html/_dynamic_upload_heap_8h_source.html new file mode 100644 index 00000000..1949743f --- /dev/null +++ b/doc/html/_dynamic_upload_heap_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/DynamicUploadHeap.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
DynamicUploadHeap.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "RingBuffer.h"
27 
28 namespace Diligent
29 {
30 
31 // Constant blocks must be multiples of 16 constants @ 16 bytes each
32 #define DEFAULT_ALIGN 256
33 
34 struct DynamicAllocation
35 {
36  DynamicAllocation(ID3D12Resource *pBuff = nullptr, size_t ThisOffset = 0, size_t ThisSize = 0)
37  : pBuffer(pBuff), Offset(ThisOffset), Size(ThisSize) {}
38 
39  //CComPtr<ID3D12Resource> pBuffer; // The D3D buffer associated with this memory.
40  ID3D12Resource *pBuffer = nullptr; // The D3D buffer associated with this memory.
41  size_t Offset = 0; // Offset from start of buffer resource
42  size_t Size = 0; // Reserved size of this allocation
43  void* CPUAddress = 0; // The CPU-writeable address
44  D3D12_GPU_VIRTUAL_ADDRESS GPUAddress = 0; // The GPU-visible address
45 #ifdef _DEBUG
46  Uint64 FrameNum = static_cast<Uint64>(-1);
47 #endif
48 };
49 
50 class GPURingBuffer : public RingBuffer
51 {
52 public:
53  GPURingBuffer(size_t MaxSize, IMemoryAllocator &Allocator, ID3D12Device *pd3d12Device, bool AllowCPUAccess);
54 
55  GPURingBuffer(GPURingBuffer&& rhs) :
56  RingBuffer(std::move(rhs)),
57  m_CpuVirtualAddress(rhs.m_CpuVirtualAddress),
58  m_GpuVirtualAddress(rhs.m_GpuVirtualAddress),
59  m_pBuffer(std::move(rhs.m_pBuffer))
60  {
61  rhs.m_CpuVirtualAddress = nullptr;
62  rhs.m_GpuVirtualAddress = 0;
63  rhs.m_pBuffer.Release();
64  }
65 
66  GPURingBuffer& operator =(GPURingBuffer&& rhs)
67  {
68  Destroy();
69 
70  static_cast<RingBuffer&>(*this) = std::move(rhs);
71  m_CpuVirtualAddress = rhs.m_CpuVirtualAddress;
72  m_GpuVirtualAddress = rhs.m_GpuVirtualAddress;
73  m_pBuffer = std::move(rhs.m_pBuffer);
74  rhs.m_CpuVirtualAddress = 0;
75  rhs.m_GpuVirtualAddress = 0;
76 
77  return *this;
78  }
79 
80  ~GPURingBuffer();
81 
82  DynamicAllocation Allocate(size_t SizeInBytes)
83  {
84  auto Offset = RingBuffer::Allocate(SizeInBytes);
85  if (Offset != RingBuffer::InvalidOffset)
86  {
87  DynamicAllocation DynAlloc(m_pBuffer, Offset, SizeInBytes);
88  DynAlloc.GPUAddress = m_GpuVirtualAddress + Offset;
89  DynAlloc.CPUAddress = m_CpuVirtualAddress;
90  if(DynAlloc.CPUAddress)
91  DynAlloc.CPUAddress = reinterpret_cast<char*>(DynAlloc.CPUAddress) + Offset;
92  return DynAlloc;
93  }
94  else
95  {
96  return DynamicAllocation(nullptr, 0, 0);
97  }
98  }
99 
100  GPURingBuffer(const GPURingBuffer&) = delete;
101  GPURingBuffer& operator =(GPURingBuffer&) = delete;
102 
103 private:
104  void Destroy();
105 
106  void* m_CpuVirtualAddress;
107  D3D12_GPU_VIRTUAL_ADDRESS m_GpuVirtualAddress;
108  CComPtr<ID3D12Resource> m_pBuffer;
109 };
110 
111 class DynamicUploadHeap
112 {
113 public:
114 
115  DynamicUploadHeap(IMemoryAllocator &Allocator, bool bIsCPUAccessible, class RenderDeviceD3D12Impl* pDevice, size_t InitialSize);
116 
117  DynamicUploadHeap(const DynamicUploadHeap&)=delete;
118  DynamicUploadHeap(DynamicUploadHeap&&)=delete;
119  DynamicUploadHeap& operator=(const DynamicUploadHeap&)=delete;
120  DynamicUploadHeap& operator=(DynamicUploadHeap&&)=delete;
121 
122  DynamicAllocation Allocate( size_t SizeInBytes, size_t Alignment = DEFAULT_ALIGN );
123 
124  void FinishFrame(Uint64 FenceValue, Uint64 LastCompletedFenceValue);
125 
126 private:
127  const bool m_bIsCPUAccessible;
128  // When a chunk of dynamic memory is requested, the heap first tries to allocate the memory in the largest GPU buffer.
129  // If allocation fails, a new ring buffer is created that provides enough space and requests memory from that buffer.
130  // Only the largest buffer is used for allocation and all other buffers are released when GPU is done with corresponding frames
131  std::vector<GPURingBuffer, STDAllocatorRawMem<GPURingBuffer> > m_RingBuffers;
132  IMemoryAllocator &m_Allocator;
133  RenderDeviceD3D12Impl* m_pDeviceD3D12 = nullptr;
134  //std::mutex m_Mutex;
135 };
136 
137 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Definition: AdvancedMath.h:316
+
+ + + + + diff --git a/doc/html/_engine_d3_d11_attribs_8h_source.html b/doc/html/_engine_d3_d11_attribs_8h_source.html new file mode 100644 index 00000000..f3e33aef --- /dev/null +++ b/doc/html/_engine_d3_d11_attribs_8h_source.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/interface/EngineD3D11Attribs.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
EngineD3D11Attribs.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BasicTypes.h"
30 #include "GraphicsTypes.h"
31 
32 namespace Diligent
33 {
37  enum class EngineD3D11DebugFlags : Uint32
38  {
42 
48  };
49 
52  {
56  Uint32 DebugFlags;
57 
59  DebugFlags(0)
60  {
61  #ifdef _DEBUG
63  #endif
64  }
65  };
66 }
EngineD3D11DebugFlags
Debug flags that can be specified when creating Direct3D11-based engine implementation.
Definition: EngineD3D11Attribs.h:37
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Uint32 DebugFlags
Debug flags. See Diligent::EngineD3D11DebugFlags for a list of allowed values.
Definition: EngineD3D11Attribs.h:56
+
Engine creation attibutes.
Definition: GraphicsTypes.h:952
+
Verify that all committed cotext resources are relevant, i.e. they are consistent with the committed ...
+
Attributes of the Direct3D11-based engine implementation.
Definition: EngineD3D11Attribs.h:51
+
Before executing draw/dispatch command, verify that all required shader resources are bound to the de...
+
+ + + + + diff --git a/doc/html/_engine_d3_d11_defines_8h_source.html b/doc/html/_engine_d3_d11_defines_8h_source.html new file mode 100644 index 00000000..e7ca42ff --- /dev/null +++ b/doc/html/_engine_d3_d11_defines_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/EngineD3D11Defines.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
EngineD3D11Defines.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #ifdef _DEBUG
27 # define VERIFY_SHADER_BINDINGS
28 #endif
+ + + + + diff --git a/doc/html/_engine_memory_8h_source.html b/doc/html/_engine_memory_8h_source.html new file mode 100644 index 00000000..65a27c06 --- /dev/null +++ b/doc/html/_engine_memory_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/EngineMemory.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
EngineMemory.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "MemoryAllocator.h"
30 
31 namespace Diligent
32 {
35  void SetRawAllocator(IMemoryAllocator *pRawAllocator);
36 
38  IMemoryAllocator& GetRawAllocator();
39 
40 #define ALLOCATE(Allocator, Desc, Size) (Allocator).Allocate(Size, Desc, __FILE__, __LINE__)
41 #define FREE(Allocator, Ptr) Allocator.Free(Ptr)
42 
43 }
44 
45 
46 #if 0
47 inline void* operator new(size_t Size, const char* dbgDescription, const char* dbgFileName, const int dbgLineNumber)
48 {
49  return Diligent::GetRawAllocator().Allocate(Size, dbgDescription, dbgFileName, dbgLineNumber);
50 }
51 
52 inline void* operator new[](size_t Size, const char* dbgDescription, const char* dbgFileName, const int dbgLineNumber)
53 {
54  return Diligent::GetRawAllocator().Allocate(Size, dbgDescription, dbgFileName, dbgLineNumber);
55 }
56 
57 // Arguments of the delete operator must exactly match the arguments of new
58 inline void operator delete(void* Ptr, const char* dbgDescription, const char* dbgFileName, const int dbgLineNumber)
59 {
60  Diligent::GetRawAllocator().Free(Ptr);
61 }
62 
63 inline void operator delete[](void* Ptr, const char* dbgDescription, const char* dbgFileName, const int dbgLineNumber)
64 {
65  Diligent::GetRawAllocator().Free(Ptr);
66 }
67 
68 #define MemAlloc(Size, Desc) GetRawAllocator().Allocate(Size, Desc, __FILE__, __LINE__)
69 #define MemFree(Ptr) GetRawAllocator().Free(Ptr)
70 #define New(Desc) new(Desc, __FILE__, __LINE__)
71 #define Delete delete
72 
73 
74 #endif
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
IMemoryAllocator & GetRawAllocator()
Returns raw memory allocator.
Definition: EngineMemory.cpp:46
+
void SetRawAllocator(IMemoryAllocator *pRawAllocator)
Sets raw memory allocator. This function must be called before any memory allocation/deallocation fun...
Definition: EngineMemory.cpp:36
+
+ + + + + diff --git a/doc/html/_errors_8h_source.html b/doc/html/_errors_8h_source.html new file mode 100644 index 00000000..c14be07f --- /dev/null +++ b/doc/html/_errors_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Basic/interface/Errors.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Errors.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <stdexcept>
27 
28 #include "BasicPlatformDebug.h"
29 #include "FormatMessage.h"
30 #include "BasicFileSystem.h"
31 
32 template<bool>
33 void ThrowIf(std::string &&)
34 {
35 }
36 
37 template<>
38 inline void ThrowIf<true>(std::string &&msg)
39 {
40  throw std::runtime_error( std::move(msg) );
41 }
42 
43 template<bool bThrowException, typename FirstArgType, typename... RestArgsType>
44 void LogError( const char *strFunctionName, const char *strFullFilePath, int Line, const FirstArgType& first, const RestArgsType&... RestArgs )
45 {
46  std::string FileName;
47  BasicFileSystem::SplitFilePath( strFullFilePath, nullptr, &FileName );
48  Diligent::MsgStream ss;
49  ss << "The following error occured in the " << strFunctionName << "() function (" << FileName << ", line " << Line << "):\n";
50  Diligent::FormatMsg( ss, first, RestArgs... );
51  auto strFullMessage = ss.str();
52  OutputDebugMessage( bThrowException ? BasicPlatformDebug::DebugMessageSeverity::FatalError : BasicPlatformDebug::DebugMessageSeverity::Error, strFullMessage.c_str() );
53  ThrowIf<bThrowException>(std::move(strFullMessage));
54 }
55 
56 #define LOG_ERROR(...)\
57 do{ \
58  LogError<false>(__FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__); \
59 }while(false)
60 
61 #define LOG_ERROR_ONCE(...)\
62 do{ \
63  static bool IsFirstTime = true; \
64  if(IsFirstTime) \
65  { \
66  LogError<false>(__FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__); \
67  IsFirstTime = false; \
68  } \
69 }while(false)
70 
71 #define LOG_ERROR_AND_THROW(...)\
72 do{ \
73  LogError<true>(__FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__);\
74 }while(false)
75 
76 #define LOG_DEBUG_MESSAGE(Severity, ...)\
77 do{ \
78  Diligent::MsgStream ss; \
79  Diligent::FormatMsg( ss, ##__VA_ARGS__ );\
80  OutputDebugMessage( Severity, ss.str().c_str() );\
81 }while(false)
82 
83 #define LOG_ERROR_MESSAGE(...) LOG_DEBUG_MESSAGE(BasicPlatformDebug::DebugMessageSeverity::Error, ##__VA_ARGS__)
84 #define LOG_WARNING_MESSAGE(...) LOG_DEBUG_MESSAGE(BasicPlatformDebug::DebugMessageSeverity::Warning, ##__VA_ARGS__)
85 #define LOG_INFO_MESSAGE(...) LOG_DEBUG_MESSAGE(BasicPlatformDebug::DebugMessageSeverity::Info, ##__VA_ARGS__)
86 
87 #define LOG_DEBUG_MESSAGE_ONCE(Severity, ...)\
88 do{ \
89  static bool IsFirstTime = true; \
90  if(IsFirstTime) \
91  { \
92  LOG_DEBUG_MESSAGE(Severity, ##__VA_ARGS__);\
93  IsFirstTime = false; \
94  } \
95 }while(false)
96 
97 #define LOG_ERROR_MESSAGE_ONCE(...) LOG_DEBUG_MESSAGE_ONCE(BasicPlatformDebug::DebugMessageSeverity::Error, ##__VA_ARGS__)
98 #define LOG_WARNING_MESSAGE_ONCE(...) LOG_DEBUG_MESSAGE_ONCE(BasicPlatformDebug::DebugMessageSeverity::Warning, ##__VA_ARGS__)
99 #define LOG_INFO_MESSAGE_ONCE(...) LOG_DEBUG_MESSAGE_ONCE(BasicPlatformDebug::DebugMessageSeverity::Info, ##__VA_ARGS__)
+ + + + + diff --git a/doc/html/_external_2_android_2ndk__helper_2include_2_g_l_context_8h_source.html b/doc/html/_external_2_android_2ndk__helper_2include_2_g_l_context_8h_source.html new file mode 100644 index 00000000..8711fdf6 --- /dev/null +++ b/doc/html/_external_2_android_2ndk__helper_2include_2_g_l_context_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/ndk_helper/include/GLContext.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GLContext.h
+
+
+
1 /*
2  * Copyright 2013 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 //--------------------------------------------------------------------------------
18 // GLContext.h
19 //--------------------------------------------------------------------------------
20 #ifndef GLCONTEXT_H_
21 #define GLCONTEXT_H_
22 
23 #include <EGL/egl.h>
24 #include <GLES2/gl2.h>
25 #include <android/log.h>
26 
27 #include "JNIHelper.h"
28 
29 namespace ndk_helper {
30 
31 //--------------------------------------------------------------------------------
32 // Constants
33 //--------------------------------------------------------------------------------
34 
35 //--------------------------------------------------------------------------------
36 // Class
37 //--------------------------------------------------------------------------------
38 
39 /******************************************************************
40  * OpenGL context handler
41  * The class handles OpenGL and EGL context based on Android activity life cycle
42  * The caller needs to call corresponding methods for each activity life cycle
43  *events as it's done in sample codes.
44  *
45  * Also the class initializes OpenGL ES3 when the compatible driver is installed
46  *in the device.
47  * getGLVersion() returns 3.0~ when the device supports OpenGLES3.0
48  *
49  * Thread safety: OpenGL context is expecting used within dedicated single
50  *thread,
51  * thus GLContext class is not designed as a thread-safe
52  */
53 class GLContext {
54  private:
55  // EGL configurations
56  ANativeWindow* window_;
57  EGLDisplay display_;
58  EGLSurface surface_;
59  EGLContext context_;
60  EGLConfig config_;
61 
62  // Screen parameters
63  int32_t screen_width_;
64  int32_t screen_height_;
65  int32_t color_size_;
66  int32_t depth_size_;
67 
68  // Flags
69  bool gles_initialized_;
70  bool egl_context_initialized_;
71  bool es3_supported_;
72  float gl_version_;
73  bool context_valid_;
74 
75  void InitGLES();
76  void Terminate();
77  bool InitEGLSurface();
78  bool InitEGLContext();
79 
80  GLContext(GLContext const&);
81  void operator=(GLContext const&);
82  GLContext();
83  virtual ~GLContext();
84 
85  public:
86  static GLContext* GetInstance() {
87  // Singleton
88  static GLContext instance;
89 
90  return &instance;
91  }
92 
93  bool Init(ANativeWindow* window);
94  EGLint Swap();
95  bool Invalidate();
96 
97  void Suspend();
98  EGLint Resume(ANativeWindow* window);
99 
100  ANativeWindow* GetANativeWindow(void) const { return window_; };
101  int32_t GetScreenWidth() const { return screen_width_; }
102  int32_t GetScreenHeight() const { return screen_height_; }
103 
104  int32_t GetBufferColorSize() const { return color_size_; }
105  int32_t GetBufferDepthSize() const { return depth_size_; }
106  float GetGLVersion() const { return gl_version_; }
107  bool CheckExtension(const char* extension);
108 
109  EGLDisplay GetDisplay() const { return display_; }
110  EGLSurface GetSurface() const { return surface_; }
111 };
112 
113 } // namespace ndkHelper
114 
115 #endif /* GLCONTEXT_H_ */
Definition: gestureDetector.h:32
+
+ + + + + diff --git a/doc/html/_external_2_android_2ndk__helper_2include_2shader_8h_source.html b/doc/html/_external_2_android_2ndk__helper_2include_2shader_8h_source.html new file mode 100644 index 00000000..791d85f5 --- /dev/null +++ b/doc/html/_external_2_android_2ndk__helper_2include_2shader_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/ndk_helper/include/shader.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
shader.h
+
+
+
1 /*
2  * Copyright 2013 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef SHADER_H_
18 #define SHADER_H_
19 
20 #include <jni.h>
21 
22 #include <vector>
23 #include <map>
24 #include <string>
25 
26 #include <EGL/egl.h>
27 #include <GLES/gl.h>
28 
29 #include <android/log.h>
30 
31 #include "JNIHelper.h"
32 
33 namespace ndk_helper {
34 
35 namespace shader {
36 
37 /******************************************************************
38  * Shader compiler helper
39  * namespace: ndkHelper::shader
40  *
41  */
42 
43 /******************************************************************
44  * CompileShader() with vector
45  *
46  * arguments:
47  * out: shader, shader variable
48  * in: type, shader type (i.e. GL_VERTEX_SHADER/GL_FRAGMENT_SHADER)
49  * in: data, source vector
50  * return: true if a shader compilation succeeded, false if it failed
51  *
52  */
53 bool CompileShader(GLuint *shader, const GLenum type,
54  std::vector<uint8_t> &data);
55 
56 /******************************************************************
57  * CompileShader() with buffer
58  *
59  * arguments:
60  * out: shader, shader variable
61  * in: type, shader type (i.e. GL_VERTEX_SHADER/GL_FRAGMENT_SHADER)
62  * in: source, source buffer
63  * in: iSize, buffer size
64  * return: true if a shader compilation succeeded, false if it failed
65  *
66  */
67 bool CompileShader(GLuint *shader, const GLenum type, const GLchar *source,
68  const int32_t iSize);
69 
70 /******************************************************************
71  * CompileShader() with filename
72  *
73  * arguments:
74  * out: shader, shader variable
75  * in: type, shader type (i.e. GL_VERTEX_SHADER/GL_FRAGMENT_SHADER)
76  * in: strFilename, filename
77  * return: true if a shader compilation succeeded, false if it failed
78  *
79  */
80 bool CompileShader(GLuint *shader, const GLenum type, const char *strFileName);
81 
82 /******************************************************************
83  * CompileShader() with std::map helps patching on a shader on the fly.
84  *
85  * arguments:
86  * out: shader, shader variable
87  * in: type, shader type (i.e. GL_VERTEX_SHADER/GL_FRAGMENT_SHADER)
88  * in: mapParameters
89  * For a example,
90  * map : %KEY% -> %VALUE% replaces all %KEY% entries in the given shader
91  *code to %VALUE"
92  * return: true if a shader compilation succeeded, false if it failed
93  *
94  */
95 bool CompileShader(GLuint *shader, const GLenum type, const char *str_file_name,
96  const std::map<std::string, std::string> &map_parameters);
97 
98 /******************************************************************
99  * LinkProgram()
100  *
101  * arguments:
102  * in: program, program
103  * return: true if a shader linkage succeeded, false if it failed
104  *
105  */
106 bool LinkProgram(const GLuint prog);
107 
108 /******************************************************************
109  * validateProgram()
110  *
111  * arguments:
112  * in: program, program
113  * return: true if a shader validation succeeded, false if it failed
114  *
115  */
116 bool ValidateProgram(const GLuint prog);
117 } // namespace shader
118 
119 } // namespace ndkHelper
120 #endif /* SHADER_H_ */
Definition: gestureDetector.h:32
+
+ + + + + diff --git a/doc/html/_f_b_o_cache_8h_source.html b/doc/html/_f_b_o_cache_8h_source.html new file mode 100644 index 00000000..06a6cb48 --- /dev/null +++ b/doc/html/_f_b_o_cache_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/FBOCache.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
FBOCache.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "GraphicsTypes.h"
27 #include "TextureView.h"
28 #include "LockHelper.h"
29 #include "HashUtils.h"
30 #include "GLObjectWrapper.h"
31 
32 namespace Diligent
33 {
34 
35 class FBOCache
36 {
37 public:
38  FBOCache();
39  ~FBOCache();
40 
41  FBOCache(const FBOCache&) = delete;
42  FBOCache( FBOCache&&) = delete;
43  FBOCache& operator = (const FBOCache&) = delete;
44  FBOCache& operator = ( FBOCache&&) = delete;
45 
46  const GLObjectWrappers::GLFrameBufferObj& GetFBO( Uint32 NumRenderTargets,
47  ITextureView *ppRenderTargets[],
48  ITextureView *pDepthStencil,
49  class GLContextState &ContextState);
50  void OnReleaseTexture(ITexture *pTexture);
51 
52 private:
53  // This structure is used as the key to find FBO
54  struct FBOCacheKey
55  {
56  // Using pointers is not reliable!
57 
58  Uint32 NumRenderTargets;
59 
60  // Unique IDs of textures bound as render targets
61  Diligent::UniqueIdentifier RTIds[MaxRenderTargets];
62  TextureViewDesc RTVDescs[MaxRenderTargets];
63 
64  // Unique IDs of texture bound as depth stencil
65  Diligent::UniqueIdentifier DSId;
66  TextureViewDesc DSVDesc;
67 
68  mutable size_t Hash;
69 
70  bool operator == (const FBOCacheKey &Key)const;
71 
72  FBOCacheKey() :
73  NumRenderTargets( 0 ),
74  DSId(0),
75  Hash(0)
76  {
77  for( int rt = 0; rt < MaxRenderTargets; ++rt )
78  RTIds[rt] = 0;
79  }
80  };
81 
82  struct FBOCacheKeyHashFunc
83  {
84  std::size_t operator() ( const FBOCacheKey& Key )const;
85  };
86 
87 
88  friend class RenderDeviceGLImpl;
89  ThreadingTools::LockFlag m_CacheLockFlag;
90  std::unordered_map<FBOCacheKey, GLObjectWrappers::GLFrameBufferObj, FBOCacheKeyHashFunc> m_Cache;
91 
92  // Multimap that sets up correspondence between unique texture id and all
93  // FBOs it is used in
94  std::unordered_multimap<Diligent::UniqueIdentifier, FBOCacheKey> m_TexIdToKey;
95 };
96 
97 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
static constexpr Uint32 MaxRenderTargets
Maximum number of simultaneous render targets.
Definition: Constants.h:36
+
+ + + + + diff --git a/doc/html/_file_stream_8h_source.html b/doc/html/_file_stream_8h_source.html new file mode 100644 index 00000000..f6f2c880 --- /dev/null +++ b/doc/html/_file_stream_8h_source.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Primitives/interface/FileStream.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
FileStream.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Object.h"
30 #include "DataBlob.h"
31 
32 namespace Diligent
33 {
34 
36 // {E67F386C-6A5A-4A24-A0CE-C66435465D41}
37 static constexpr INTERFACE_ID IID_FileStream =
38 { 0xe67f386c, 0x6a5a, 0x4a24, { 0xa0, 0xce, 0xc6, 0x64, 0x35, 0x46, 0x5d, 0x41 } };
39 
41 class IFileStream : public IObject
42 {
43 public:
45  virtual bool Read( void *Data, size_t BufferSize ) = 0;
46 
47  virtual void Read( IDataBlob *pData ) = 0;
48 
50  virtual bool Write( const void *Data, size_t Size ) = 0;
51 
52  virtual size_t GetSize() = 0;
53 
54  virtual bool IsValid() = 0;
55 };
56 
57 }
virtual bool Read(void *Data, size_t BufferSize)=0
Reads data from the stream.
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Base interface for a file stream.
Definition: DataBlob.h:39
+
static constexpr INTERFACE_ID IID_FileStream
IFileStream interface unique identifier.
Definition: FileStream.h:37
+
virtual bool Write(const void *Data, size_t Size)=0
Writes data to the stream.
+
Base interface for a file stream.
Definition: FileStream.h:41
+
Base interface for all dynamic objects in the engine.
Definition: Object.h:36
+
Describes unique identifier.
Definition: InterfaceID.h:33
+
+ + + + + diff --git a/doc/html/_file_system_8h_source.html b/doc/html/_file_system_8h_source.html new file mode 100644 index 00000000..4d23001d --- /dev/null +++ b/doc/html/_file_system_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/interface/FileSystem.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
FileSystem.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "PlatformDefinitions.h"
27 
28 #if defined( PLATFORM_WIN32 )
29 
30  #include "Win32FileSystem.h"
31  typedef WindowsFileSystem FileSystem;
32  typedef WindowsFile CFile;
33 
34 #elif defined( PLATFORM_UNIVERSAL_WINDOWS )
35 
36  #include "UWPFileSystem.h"
37  typedef WindowsStoreFileSystem FileSystem;
38  typedef WindowsStoreFile CFile;
39 
40 #elif defined ( PLATFORM_ANDROID )
41 
42  #include "AndroidFileSystem.h"
43  typedef AndroidFileSystem FileSystem;
44  typedef AndroidFile CFile;
45 
46 #elif defined ( PLATFORM_LINUX )
47 
48  #include "LinuxFileSystem.h"
49  typedef LinuxFileSystem FileSystem;
50  typedef LinuxFile CFile;
51 
52 #elif
53  #error Unsupported platform
54 #endif
+ + + + + diff --git a/doc/html/_file_wrapper_8h_source.html b/doc/html/_file_wrapper_8h_source.html new file mode 100644 index 00000000..6b1c161f --- /dev/null +++ b/doc/html/_file_wrapper_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/FileWrapper.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
FileWrapper.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "FileSystem.h"
27 #include "Errors.h"
28 #include "DebugUtilities.h"
29 
30 namespace Diligent
31 {
32 
33 class FileWrapper
34 {
35 public:
36  FileWrapper( ) :
37  m_pFile(nullptr)
38  {}
39 
40  FileWrapper( const Diligent::Char *Path,
41  EFileAccessMode Access = EFileAccessMode::Read) :
42  m_pFile( nullptr )
43  {
44  FileOpenAttribs OpenAttribs(Path, Access);
45  Open(OpenAttribs);
46  }
47 
48  ~FileWrapper()
49  {
50  Close();
51  }
52 
53  void Open(const FileOpenAttribs& OpenAttribs)
54  {
55  VERIFY( !m_pFile, "Another file already attached" );
56  Close();
57  m_pFile = FileSystem::OpenFile( OpenAttribs );
58  }
59 
60  CFile *Detach()
61  {
62  CFile *pFile = m_pFile;
63  m_pFile = NULL;
64  return pFile;
65  }
66 
67  void Attach(CFile *pFile)
68  {
69  VERIFY(!m_pFile, "Another file already attached");
70  Close();
71  m_pFile = pFile;
72  }
73 
74  void Close()
75  {
76  if( m_pFile )
77  FileSystem::ReleaseFile(m_pFile);
78  m_pFile = nullptr;
79  }
80 
81  operator CFile*(){return m_pFile;}
82  CFile* operator->(){return m_pFile;}
83 
84 private:
85  FileWrapper(const FileWrapper&);
86  const FileWrapper& operator=(const FileWrapper&);
87 
88  CFile *m_pFile;
89 };
90 
91 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_fixed_block_memory_allocator_8h_source.html b/doc/html/_fixed_block_memory_allocator_8h_source.html new file mode 100644 index 00000000..560eee0a --- /dev/null +++ b/doc/html/_fixed_block_memory_allocator_8h_source.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/FixedBlockMemoryAllocator.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
FixedBlockMemoryAllocator.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include <unordered_map>
30 #include <mutex>
31 #include <unordered_set>
32 #include <vector>
33 #include "MemoryAllocator.h"
34 #include "STDAllocator.h"
35 #include "Errors.h"
36 
37 namespace Diligent
38 {
39 
40 #ifdef _DEBUG
41  inline void FillWithDebugPattern(void *ptr, Uint8 Pattern, size_t NumBytes)
42  {
43  memset(ptr, Pattern, NumBytes);
44  }
45 #else
46  #define FillWithDebugPattern(...)
47 #endif
48 
50 class FixedBlockMemoryAllocator : public IMemoryAllocator
51 {
52 public:
53  FixedBlockMemoryAllocator(IMemoryAllocator &RawMemoryAllocator, size_t BlockSize, Uint32 NumBlocksInPage);
55 
57  virtual void* Allocate( size_t Size, const Char* dbgDescription, const char* dbgFileName, const Int32 dbgLineNumber)override final;
58 
60  virtual void Free(void *Ptr)override final;
61 
62 private:
65  FixedBlockMemoryAllocator& operator = (const FixedBlockMemoryAllocator&) = delete;
67 
68  void CreateNewPage();
69 
70  // Memory page class is based on the fixed-size memory pool described in "Fast Efficient Fixed-Size Memory Pool"
71  // by Ben Kenwright
72  class MemoryPage
73  {
74  public:
75  static constexpr Uint8 NewPageMemPattern = 0xAA;
76  static constexpr Uint8 AllocatedBlockMemPattern = 0xAB;
77  static constexpr Uint8 DeallocatedBlockMemPattern = 0xDE;
78  static constexpr Uint8 InitializedBlockMemPattern = 0xCF;
79 
80  MemoryPage(FixedBlockMemoryAllocator &OwnerAllocator):
81  m_pOwnerAllocator(&OwnerAllocator),
82  m_NumFreeBlocks(OwnerAllocator.m_NumBlocksInPage),
83  m_NumInitializedBlocks(0)
84  {
85  auto PageSize = OwnerAllocator.m_BlockSize * OwnerAllocator.m_NumBlocksInPage;
86  m_pPageStart = reinterpret_cast<Uint8*>(
87  OwnerAllocator.m_RawMemoryAllocator.Allocate(PageSize, "FixedBlockMemoryAllocator page", __FILE__, __LINE__)
88  );
89  m_pNextFreeBlock = m_pPageStart;
90  FillWithDebugPattern(m_pPageStart, NewPageMemPattern, PageSize);
91  }
92 
93  MemoryPage(MemoryPage&& Page) :
94  m_NumFreeBlocks(Page.m_NumFreeBlocks),
95  m_NumInitializedBlocks(Page.m_NumInitializedBlocks),
96  m_pPageStart(Page.m_pPageStart),
97  m_pNextFreeBlock(Page.m_pNextFreeBlock),
98  m_pOwnerAllocator(Page.m_pOwnerAllocator)
99  {
100  Page.m_NumFreeBlocks = 0;
101  Page.m_NumInitializedBlocks = 0;
102  Page.m_pPageStart = nullptr;
103  Page.m_pNextFreeBlock = nullptr;
104  Page.m_pOwnerAllocator = nullptr;
105  }
106 
107  ~MemoryPage()
108  {
109  if(m_pOwnerAllocator)
110  m_pOwnerAllocator->m_RawMemoryAllocator.Free(m_pPageStart);
111  }
112 
113  void* GetBlockStartAddress(Uint32 BlockIndex) const
114  {
115  VERIFY_EXPR(m_pOwnerAllocator != nullptr);
116  VERIFY(BlockIndex >= 0 && BlockIndex < m_pOwnerAllocator->m_NumBlocksInPage, "Invalid block index" );
117  return reinterpret_cast<Uint8*>(m_pPageStart) + BlockIndex * m_pOwnerAllocator->m_BlockSize;
118  }
119 
120 #ifdef _DEBUG
121  void dbgVerifyAddress(const void* pBlockAddr)const
122  {
123  size_t Delta = reinterpret_cast<const Uint8*>(pBlockAddr) - reinterpret_cast<Uint8*>(m_pPageStart);
124  VERIFY(Delta % m_pOwnerAllocator->m_BlockSize == 0, "Invalid address");
125  Uint32 BlockIndex = static_cast<Uint32>(Delta / m_pOwnerAllocator->m_BlockSize);
126  VERIFY(BlockIndex >= 0 && BlockIndex < m_pOwnerAllocator->m_NumBlocksInPage, "Invalid block index" );
127  }
128 #else
129  #define dbgVerifyAddress(...)
130 #endif
131 
132  void* Allocate()
133  {
134  VERIFY_EXPR(m_pOwnerAllocator != nullptr);
135 
136  if (m_NumFreeBlocks == 0)
137  {
138  VERIFY_EXPR(m_NumInitializedBlocks == m_pOwnerAllocator->m_NumBlocksInPage);
139  return nullptr;
140  }
141 
142  // Initialize the next block
143  if (m_NumInitializedBlocks < m_pOwnerAllocator->m_NumBlocksInPage)
144  {
145  // Link next uninitialized block to the end of the list:
146 
147  //
148  // ___________ ___________
149  // | | | |
150  // | 0xcdcdcd | -->| 0xcdcdcd | m_NumInitializedBlocks
151  // |-----------| | |-----------|
152  // | | | | |
153  // m_NumInitializedBlocks | 0xcdcdcd | ==> ---| |
154  // |-----------| |-----------|
155  //
156  // ~ ~ ~ ~
157  // | | | |
158  // 0 | | | |
159  // ----------- -----------
160  //
161  auto *pUninitializedBlock = GetBlockStartAddress(m_NumInitializedBlocks);
162  FillWithDebugPattern(pUninitializedBlock, InitializedBlockMemPattern, m_pOwnerAllocator->m_BlockSize);
163  void** ppNextBlock = reinterpret_cast<void**>( pUninitializedBlock );
164  ++m_NumInitializedBlocks;
165  if( m_NumInitializedBlocks < m_pOwnerAllocator->m_NumBlocksInPage )
166  *ppNextBlock = GetBlockStartAddress(m_NumInitializedBlocks);
167  else
168  *ppNextBlock = nullptr;
169  }
170 
171  void* res = m_pNextFreeBlock;
172  dbgVerifyAddress(res);
173  // Move pointer to the next free block
174  m_pNextFreeBlock = *reinterpret_cast<void**>(m_pNextFreeBlock);
175  --m_NumFreeBlocks;
176  if(m_NumFreeBlocks != 0)
177  dbgVerifyAddress(m_pNextFreeBlock);
178  else
179  VERIFY_EXPR(m_pNextFreeBlock == nullptr);
180 
181  FillWithDebugPattern(res, AllocatedBlockMemPattern, m_pOwnerAllocator->m_BlockSize);
182  return res;
183  }
184 
185  void DeAllocate(void* p)
186  {
187  VERIFY_EXPR(m_pOwnerAllocator != nullptr);
188 
189  dbgVerifyAddress(p);
190  FillWithDebugPattern(p, DeallocatedBlockMemPattern, m_pOwnerAllocator->m_BlockSize);
191  // Add block to the beginning of the linked list
192  *reinterpret_cast<void**>(p) = m_pNextFreeBlock;
193  m_pNextFreeBlock = p;
194  ++m_NumFreeBlocks;
195  }
196 
197  bool HasSpace()const{return m_NumFreeBlocks>0;}
198  bool HasAllocations()const{return m_NumFreeBlocks<m_NumInitializedBlocks;}
199  private:
200 
201  MemoryPage(const MemoryPage&)=delete;
202  MemoryPage& operator = (const MemoryPage)=delete;
203  MemoryPage& operator = (MemoryPage&&)=delete;
204 
205  Uint32 m_NumFreeBlocks = 0; // Num of remaining blocks
206  Uint32 m_NumInitializedBlocks = 0; // Num of initialized blocks
207  void* m_pPageStart = nullptr; // Beginning of memory pool
208  void* m_pNextFreeBlock = nullptr; // Num of next free block
209  FixedBlockMemoryAllocator *m_pOwnerAllocator = nullptr;
210  };
211 
212  std::vector<MemoryPage, STDAllocatorRawMem<MemoryPage> > m_PagePool;
213  std::unordered_set<size_t, std::hash<size_t>, std::equal_to<size_t>, STDAllocatorRawMem<size_t> > m_AvailablePages;
214  typedef std::pair<void* const, size_t> AddrToPageIdMapElem;
215  std::unordered_map<void*, size_t, std::hash<void*>, std::equal_to<void*>, STDAllocatorRawMem<AddrToPageIdMapElem> > m_AddrToPageId;
216 
217  std::mutex m_Mutex;
218 
219  IMemoryAllocator &m_RawMemoryAllocator;
220  size_t m_BlockSize;
221  Uint32 m_NumBlocksInPage;
222 };
223 
224 IMemoryAllocator& GetRawAllocator();
225 
226 template<typename ObjectType>
227 class ObjectPool
228 {
229 public:
230  static void SetRawAllocator(IMemoryAllocator &Allocator)
231  {
232 #ifdef _DEBUG
233  if(m_bPoolInitialized && m_pRawAllocator != &Allocator)
234  {
235  LOG_WARNING_MESSAGE("Setting pool raw allocator after the pool has been initialized has no effect");
236  }
237 #endif
238  m_pRawAllocator = &Allocator;
239  }
240  static void SetPageSize(Uint32 NumAllocationsInPage)
241  {
242 #ifdef _DEBUG
243  if(m_bPoolInitialized && m_NumAllocationsInPage != NumAllocationsInPage)
244  {
245  LOG_WARNING_MESSAGE("Setting pool page size after the pool has been initialized has no effect");
246  }
247 #endif
248  m_NumAllocationsInPage = NumAllocationsInPage;
249  }
250  static ObjectPool& GetPool()
251  {
252  static ObjectPool ThePool;
253 #ifdef _DEBUG
254  m_bPoolInitialized = true;
255 #endif
256  return ThePool;
257  }
258 
259  template<typename ... CtorArgTypes>
260  ObjectType* NewObject(const Char* dbgDescription, const char* dbgFileName, const Int32 dbgLineNumber, CtorArgTypes&& ... CtorArgs)
261  {
262  void *pRawMem = m_FixedBlockAlloctor.Allocate(sizeof(ObjectType), dbgDescription, dbgFileName, dbgLineNumber);
263  try
264  {
265  return new(pRawMem) ObjectType(std::forward<CtorArgTypes>(CtorArgs)...);
266  }
267  catch (...)
268  {
269  m_FixedBlockAlloctor.Free(pRawMem);
270  return nullptr;
271  }
272  }
273 
274  void Destroy(ObjectType* pObj)
275  {
276  if(pObj != nullptr)
277  {
278  pObj->~ObjectType();
279  m_FixedBlockAlloctor.Free(pObj);
280  }
281  }
282 
283 private:
284  static Uint32 m_NumAllocationsInPage;
285  static IMemoryAllocator *m_pRawAllocator;
286 
287  ObjectPool() :
288  m_FixedBlockAlloctor(m_pRawAllocator ? *m_pRawAllocator : GetRawAllocator(), sizeof(ObjectType), m_NumAllocationsInPage)
289  {}
290 #ifdef _DEBUG
291  static bool m_bPoolInitialized;
292 #endif
293  FixedBlockMemoryAllocator m_FixedBlockAlloctor;
294 };
295 template<typename ObjectType>
296 Uint32 ObjectPool<ObjectType>::m_NumAllocationsInPage = 64;
297 
298 template<typename ObjectType>
299 IMemoryAllocator* ObjectPool<ObjectType>::m_pRawAllocator = nullptr;
300 
301 #ifdef _DEBUG
302 template<typename ObjectType>
303 bool ObjectPool<ObjectType>::m_bPoolInitialized = false;
304 #endif
305 
306 #define SET_POOL_RAW_ALLOCATOR(ObjectType, Allocator)ObjectPool<ObjectType>::SetRawAllocator(Allocator)
307 #define SET_POOL_PAGE_SIZE(ObjectType, NumAllocationsInPage)ObjectPool<ObjectType>::SetPageSize(NumAllocationsInPage)
308 #define NEW_POOL_OBJECT(ObjectType, Desc, ...)ObjectPool<ObjectType>::GetPool().NewObject(Desc, __FILE__, __LINE__, ##__VA_ARGS__)
309 #define DESTROY_POOL_OBJECT(pObject)ObjectPool< std::remove_reference<decltype(*pObject)>::type >::GetPool().Destroy(pObject)
310 
311 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual void * Allocate(size_t Size, const Char *dbgDescription, const char *dbgFileName, const Int32 dbgLineNumber) override final
Allocates block of memory.
Definition: FixedBlockMemoryAllocator.cpp:64
+
IMemoryAllocator & GetRawAllocator()
Returns raw memory allocator.
Definition: EngineMemory.cpp:46
+
void SetRawAllocator(IMemoryAllocator *pRawAllocator)
Sets raw memory allocator. This function must be called before any memory allocation/deallocation fun...
Definition: EngineMemory.cpp:36
+
Memory allocator that allocates memory in a fixed-size chunks.
Definition: FixedBlockMemoryAllocator.h:50
+
virtual void Free(void *Ptr) override final
Releases memory.
Definition: FixedBlockMemoryAllocator.cpp:91
+
+ + + + + diff --git a/doc/html/_format_message_8h_source.html b/doc/html/_format_message_8h_source.html new file mode 100644 index 00000000..8caf95db --- /dev/null +++ b/doc/html/_format_message_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Primitives/interface/FormatMessage.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
FormatMessage.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <sstream>
27 
28 namespace Diligent
29 {
30  typedef std::stringstream MsgStream;
31 
32  template<typename SSType, typename ArgType>
33  void FormatMsg( SSType &ss, const ArgType& Arg )
34  {
35  ss << Arg;
36  }
37 
38  template<typename SSType, typename FirstArgType, typename... RestArgsType>
39  void FormatMsg( SSType &ss, const FirstArgType& FirstArg, const RestArgsType&... RestArgs )
40  {
41  FormatMsg( ss, FirstArg );
42  FormatMsg( ss, RestArgs... ); // recursive call using pack expansion syntax
43  }
44 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
+ + + + + diff --git a/doc/html/_g_l_context_8h_source.html b/doc/html/_g_l_context_8h_source.html new file mode 100644 index 00000000..af57aeca --- /dev/null +++ b/doc/html/_g_l_context_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/GLContext.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GLContext.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #if defined(PLATFORM_WIN32)
27 # include "GLContextWindows.h"
28 #elif defined(PLATFORM_ANDROID)
29 # include "GLContextAndroid.h"
30 #elif defined(PLATFORM_LINUX)
31 # include "GLContextLinux.h"
32 #else
33 # error Unsupported platform
34 #endif
+ + + + + diff --git a/doc/html/_g_l_context_android_8h_source.html b/doc/html/_g_l_context_android_8h_source.html new file mode 100644 index 00000000..5ecf6b03 --- /dev/null +++ b/doc/html/_g_l_context_android_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/GLContextAndroid.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GLContextAndroid.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <EGL/egl.h>
27 #include <android/native_window.h>
28 
29 namespace Diligent
30 {
31  struct ContextInitInfo
32  {
33  SwapChainDesc SwapChainAttribs;
34  void *pNativeWndHandle = nullptr;
35  };
36 
37  class GLContext
38  {
39  public:
40  typedef EGLContext NativeGLContextType;
41 
42  GLContext( const ContextInitInfo &Info, DeviceCaps &DeviceCaps );
43  ~GLContext();
44 
45  bool Init( ANativeWindow* window );
46 
47  void SwapBuffers();
48 
49  bool Invalidate();
50 
51  void Suspend();
52  EGLint Resume( ANativeWindow* window );
53 
54  const SwapChainDesc& GetSwapChainDesc()const{ return SwapChainAttribs_; }
55 
56  NativeGLContextType GetCurrentNativeGLContext();
57 
58  private:
59  //EGL configurations
60  ANativeWindow* window_ = nullptr;
61  EGLDisplay display_ = EGL_NO_DISPLAY;
62  EGLSurface surface_ = EGL_NO_SURFACE;
63  EGLContext context_ = EGL_NO_CONTEXT;
64  EGLConfig config_;
65 
66  //Screen parameters
67  int32_t color_size_ = 0;
68  int32_t depth_size_ = 0;
69  int32_t major_version_ = 0;
70  int32_t minor_version_ = 0;
71 
72  //Flags
73  bool gles_initialized_ = false;
74  bool egl_context_initialized_ = false;
75  bool context_valid_ = false;
76 
77  SwapChainDesc SwapChainAttribs_;
78 
79  void InitGLES();
80  void Terminate();
81  bool InitEGLSurface();
82  bool InitEGLContext();
83  void AttachToCurrentEGLContext();
84  void FillDeviceCaps( DeviceCaps &DeviceCaps );
85  };
86 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_g_l_context_linux_8h_source.html b/doc/html/_g_l_context_linux_8h_source.html new file mode 100644 index 00000000..ce5f5904 --- /dev/null +++ b/doc/html/_g_l_context_linux_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/GLContextLinux.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GLContextLinux.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 namespace Diligent
27 {
28 
29  struct ContextInitInfo
30  {
31  SwapChainDesc SwapChainAttribs;
32  void *pNativeWndHandle = nullptr;
33  void *pDisplay = nullptr;
34  };
35 
36  class GLContext
37  {
38  public:
39  typedef GLXContext NativeGLContextType;
40 
41  GLContext(const ContextInitInfo &Info, struct DeviceCaps &DeviceCaps);
42  ~GLContext();
43  void SwapBuffers();
44 
45  const SwapChainDesc& GetSwapChainDesc()const{ return m_SwapChainAttribs; }
46 
47  NativeGLContextType GetCurrentNativeGLContext();
48 
49  private:
50  void *m_pNativeWindow = nullptr;
51  void *m_pDisplay = nullptr;
52  NativeGLContextType m_Context;
53  SwapChainDesc m_SwapChainAttribs;
54  };
55 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_g_l_context_state_8h_source.html b/doc/html/_g_l_context_state_8h_source.html new file mode 100644 index 00000000..fae6a3ed --- /dev/null +++ b/doc/html/_g_l_context_state_8h_source.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/GLContextState.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GLContextState.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "GraphicsTypes.h"
27 #include "GLObjectWrapper.h"
28 #include "UniqueIdentifier.h"
29 #include "GLContext.h"
30 
31 namespace Diligent
32 {
33 
34 class GLContextState
35 {
36 public:
37  GLContextState(class RenderDeviceGLImpl *pDeviceGL);
38 
39  void SetProgram( const GLObjectWrappers::GLProgramObj &GLProgram );
40  void SetPipeline( const GLObjectWrappers::GLPipelineObj &GLPipeline );
41  void BindVAO( const GLObjectWrappers::GLVertexArrayObj &VAO );
42  void BindFBO( const GLObjectWrappers::GLFrameBufferObj &FBO );
43  void SetActiveTexture( Int32 Index );
44  void BindTexture( Int32 Index, GLenum BindTarget, const GLObjectWrappers::GLTextureObj &Tex);
45  void BindSampler( Uint32 Index, const GLObjectWrappers::GLSamplerObj &GLSampler);
46  void BindImage( Uint32 Index, class TextureViewGLImpl *pTexView, GLint MipLevel, GLboolean IsLayered, GLint Layer, GLenum Access, GLenum Format );
47  void EnsureMemoryBarrier(Uint32 RequiredBarriers, class AsyncWritableResource *pRes = nullptr);
48  void SetPendingMemoryBarriers( Uint32 PendingBarriers );
49 
50  void EnableDepthTest( Bool bEnable );
51  void EnableDepthWrites( Bool bEnable );
52  void SetDepthFunc(COMPARISON_FUNCTION CmpFunc);
53  void EnableStencilTest( Bool bEnable );
54  void SetStencilWriteMask( Uint8 StencilWriteMask );
55  void SetStencilRef( GLenum Face, Int32 Ref );
56  void SetStencilFunc( GLenum Face, COMPARISON_FUNCTION Func, Int32 Ref, Uint32 Mask );
57  void SetStencilOp( GLenum Face, STENCIL_OP StencilFailOp, STENCIL_OP StencilDepthFailOp, STENCIL_OP StencilPassOp );
58 
59  void SetFillMode( FILL_MODE FillMode );
60  void SetCullMode( CULL_MODE CullMode );
61  void SetFrontFace( Bool FrontCounterClockwise );
62  void SetDepthBias( float DepthBias, float fSlopeScaledDepthBias );
63  void SetDepthClamp( Bool bEnableDepthClamp );
64  void EnableScissorTest( Bool bEnableScissorTest );
65 
66  void SetBlendFactors(const float *BlendFactors);
67  void SetBlendState(const BlendStateDesc &BSDsc, Uint32 SampleMask);
68 
69  Bool GetDepthWritesEnabled(){ return m_DSState.m_DepthWritesEnableState; }
70  Bool GetScissorTestEnabled(){ return m_RSState.ScissorTestEnable; }
71  void GetColorWriteMask( Uint32 RTIndex, Uint32 &WriteMask, Bool &bIsIndependent );
72  void SetColorWriteMask( Uint32 RTIndex, Uint32 WriteMask, Bool bIsIndependent );
73 
74  void SetNumPatchVertices( Int32 NumVertices);
75  void Invalidate();
76 
77  void SetCurrentGLContext(GLContext::NativeGLContextType Context) { m_CurrentGLContext = Context; }
78  GLContext::NativeGLContextType GetCurrentGLContext()const { return m_CurrentGLContext; }
79 
80 private:
81  // It is unsafe to use GL handle to keep track of bound objects
82  // When an object is released, GL is free to reuse its handle for
83  // the new created objects.
84  // Even using pointers is not safe as when an object is created,
85  // the system can reuse the same address
86  // The safest way is to keep global unique ID for all objects
87 
88  Diligent::UniqueIdentifier m_GLProgId = -1;
89  Diligent::UniqueIdentifier m_GLPipelineId = -1;
90  Diligent::UniqueIdentifier m_VAOId = -1;
91  Diligent::UniqueIdentifier m_FBOId = -1;
92  std::vector< Diligent::UniqueIdentifier > m_BoundTextures;
93  std::vector< Diligent::UniqueIdentifier > m_BoundSamplers;
94  struct BoundImageInfo
95  {
96  Diligent::UniqueIdentifier InterfaceID = -1;
97  GLint MipLevel = 0;
98  GLboolean IsLayered = 0;
99  GLint Layer = 0;
100  GLenum Access = 0;
101  GLenum Format = 0;
102 
103  BoundImageInfo() {};
104 
105  BoundImageInfo( Diligent::UniqueIdentifier _UniqueID,
106  GLint _MipLevel,
107  GLboolean _IsLayered,
108  GLint _Layer,
109  GLenum _Access,
110  GLenum _Format) :
111  InterfaceID (_UniqueID ),
112  MipLevel (_MipLevel ),
113  IsLayered (_IsLayered),
114  Layer (_Layer ),
115  Access (_Access ),
116  Format (_Format )
117  {}
118 
119  bool operator==(const BoundImageInfo &rhs)const
120  {
121  return InterfaceID == rhs.InterfaceID &&
122  MipLevel == rhs.MipLevel &&
123  IsLayered == rhs.IsLayered &&
124  Layer == rhs.Layer &&
125  Access == rhs.Access &&
126  Format == rhs.Format;
127  }
128  };
129  std::vector< BoundImageInfo > m_BoundImages;
130 
131  Uint32 m_PendingMemoryBarriers = 0;
132 
133  class EnableStateHelper
134  {
135  public:
136  enum class ENABLE_STATE : Int32
137  {
138  UNKNOWN,
139  ENABLED,
140  DISABLED
141  };
142 
143  bool operator == (bool bEnabled)const
144  {
145  return (bEnabled && m_EnableState == ENABLE_STATE::ENABLED) ||
146  (!bEnabled && m_EnableState == ENABLE_STATE::DISABLED);
147  }
148  bool operator != (bool bEnabled) const
149  {
150  return !(*this == bEnabled);
151  }
152 
153  const EnableStateHelper& operator = (bool bEnabled)
154  {
155  m_EnableState = bEnabled ? ENABLE_STATE::ENABLED : ENABLE_STATE::DISABLED;
156  return *this;
157  }
158 
159  operator bool()const
160  {
161  return m_EnableState == ENABLE_STATE::ENABLED;
162  }
163 
164  private:
165  ENABLE_STATE m_EnableState = ENABLE_STATE::UNKNOWN;
166  };
167 
168  struct DepthStencilGLState
169  {
170  EnableStateHelper m_DepthEnableState;
171  EnableStateHelper m_DepthWritesEnableState;
173  EnableStateHelper m_StencilTestEnableState;
174  Uint16 m_StencilReadMask = 0xFFFF;
175  Uint16 m_StencilWriteMask = 0xFFFF;
176  struct StencilOpState
177  {
179  STENCIL_OP StencilFailOp = STENCIL_OP_UNDEFINED;
180  STENCIL_OP StencilDepthFailOp = STENCIL_OP_UNDEFINED;
181  STENCIL_OP StencilPassOp = STENCIL_OP_UNDEFINED;
182  Int32 Ref = std::numeric_limits<Int32>::min();
183  Uint32 Mask = static_cast<Uint32>(-1);
184  }m_StencilOpState[2];
185  }m_DSState;
186 
187  struct RasterizerGLState
188  {
189  FILL_MODE FillMode = FILL_MODE_UNDEFINED;
190  CULL_MODE CullMode = CULL_MODE_UNDEFINED;
191  EnableStateHelper FrontCounterClockwise;
192  float fDepthBias = std::numeric_limits<float>::max();
193  float fSlopeScaledDepthBias = std::numeric_limits<float>::max();
194  EnableStateHelper DepthClampEnable;
195  EnableStateHelper ScissorTestEnable;
196  }m_RSState;
197 
198  struct ContextCaps
199  {
200  bool bFillModeSelectionSupported = True;
201  GLint m_iMaxCombinedTexUnits = 0;
202  }m_Caps;
203 
204  Uint32 m_ColorWriteMasks[MaxRenderTargets] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
205  EnableStateHelper m_bIndependentWriteMasks;
206  Int32 m_iActiveTexture = -1;
207  Int32 m_NumPatchVertices = -1;
208 
209  GLContext::NativeGLContextType m_CurrentGLContext = {};
210 };
211 
212 }
STENCIL_OP
Stencil operation.
Definition: DepthStencilState.h:42
+
Undefined fill mode.
Definition: RasterizerState.h:43
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
static constexpr Uint32 MaxRenderTargets
Maximum number of simultaneous render targets.
Definition: Constants.h:36
+
Undefined cull mode.
Definition: RasterizerState.h:66
+
Unknown comparison function.
Definition: GraphicsTypes.h:850
+
FILL_MODE
Fill mode.
Definition: RasterizerState.h:40
+
Undefined operation.
Definition: DepthStencilState.h:45
+
COMPARISON_FUNCTION
Comparison function.
Definition: GraphicsTypes.h:847
+
CULL_MODE
Cull mode.
Definition: RasterizerState.h:63
+
+ + + + + diff --git a/doc/html/_g_l_context_windows_8h_source.html b/doc/html/_g_l_context_windows_8h_source.html new file mode 100644 index 00000000..9a6e93cd --- /dev/null +++ b/doc/html/_g_l_context_windows_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/GLContextWindows.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GLContextWindows.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 namespace Diligent
27 {
28 
29  struct ContextInitInfo
30  {
31  SwapChainDesc SwapChainAttribs;
32  void *pNativeWndHandle = nullptr;
33  };
34 
35  class GLContext
36  {
37  public:
38  typedef HGLRC NativeGLContextType;
39 
40  GLContext( const ContextInitInfo &Info, struct DeviceCaps &DeviceCaps );
41  ~GLContext();
42  void SwapBuffers();
43 
44  const SwapChainDesc& GetSwapChainDesc()const{ return m_SwapChainAttribs; }
45 
46  NativeGLContextType GetCurrentNativeGLContext();
47 
48  private:
49  HGLRC m_Context;
50  HDC m_WindowHandleToDeviceContext;
51  SwapChainDesc m_SwapChainAttribs;
52  };
53 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_g_l_object_wrapper_8h_source.html b/doc/html/_g_l_object_wrapper_8h_source.html new file mode 100644 index 00000000..69c62057 --- /dev/null +++ b/doc/html/_g_l_object_wrapper_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/GLObjectWrapper.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GLObjectWrapper.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "UniqueIdentifier.h"
27 
28 namespace GLObjectWrappers
29 {
30 
31 template<class CreateReleaseHelperType>
32 class GLObjWrapper
33 {
34 public:
35  GLObjWrapper(bool CreateObject, CreateReleaseHelperType CreateReleaseHelper = CreateReleaseHelperType()) :
36  m_uiHandle(0),
37  m_CreateReleaseHelper(CreateReleaseHelper)
38  {
39  if( CreateObject )
40  {
41  Create();
42  if(!m_uiHandle)
43  {
44  LOG_ERROR_AND_THROW("Failed to create ", m_CreateReleaseHelper.Name, " GL object");
45  }
46  }
47  }
48 
49  ~GLObjWrapper()
50  {
51  Release();
52  }
53 
54  GLObjWrapper(GLObjWrapper&& Wrapper) :
55  m_uiHandle(Wrapper.m_uiHandle),
56  m_CreateReleaseHelper( std::move( Wrapper.m_CreateReleaseHelper ) ),
57  m_UniqueId( std::move(Wrapper.m_UniqueId) )
58  {
59  Wrapper.m_uiHandle = 0;
60  }
61 
62  GLObjWrapper& operator = (GLObjWrapper&& Wrapper)
63  {
64  Release();
65  m_uiHandle = Wrapper.m_uiHandle;
66  Wrapper.m_uiHandle = 0;
67  m_CreateReleaseHelper = std::move( Wrapper.m_CreateReleaseHelper );
68  m_UniqueId = std::move(Wrapper.m_UniqueId);
69  return *this;
70  }
71 
72  void Create()
73  {
74  VERIFY(m_uiHandle == 0, "GL object is already initialized");
75  Release();
76  m_CreateReleaseHelper.Create(m_uiHandle);
77  VERIFY(m_uiHandle, "Failed to initialize GL object" );
78  }
79 
80  void Release()
81  {
82  if( m_uiHandle )
83  {
84  m_CreateReleaseHelper.Release(m_uiHandle);
85  m_uiHandle = 0;
86  }
87  }
88 
89  Diligent::UniqueIdentifier GetUniqueID()const
90  {
91  // This unique ID is used to unambiguously identify the object for
92  // tracking purposes.
93  // Niether GL handle nor pointer could be safely used for this purpose
94  // as both GL reuses released handles and the OS reuses released pointers
95  return m_UniqueId.GetID();
96  }
97 
98  operator GLuint()const{return m_uiHandle;}
99 
100 private:
101  GLObjWrapper(const GLObjWrapper&);
102  GLObjWrapper& operator = (const GLObjWrapper&);
103 
104  GLuint m_uiHandle;
105  CreateReleaseHelperType m_CreateReleaseHelper;
106 
107  // Have separate counter for every type of wrappers
108  Diligent::UniqueIdHelper<CreateReleaseHelperType> m_UniqueId;
109 };
110 
111 class GLBufferObjCreateReleaseHelper
112 {
113 public:
114  explicit GLBufferObjCreateReleaseHelper(GLuint ExternalGLBufferHandle = 0) :
115  m_ExternalGLBufferHandle(ExternalGLBufferHandle)
116  {}
117 
118  void Create(GLuint &BuffObj)
119  {
120  if (m_ExternalGLBufferHandle != 0)
121  BuffObj = m_ExternalGLBufferHandle; // Attach to external GL buffer handle
122  else
123  glGenBuffers(1, &BuffObj);
124  }
125 
126  void Release(GLuint BuffObj)
127  {
128  if (m_ExternalGLBufferHandle != 0)
129  m_ExternalGLBufferHandle = 0; // Detach from external GL buffer. DO NOT delete the buffer
130  else
131  glDeleteBuffers(1, &BuffObj);
132  }
133  static const char *Name;
134 
135 private:
136  GLuint m_ExternalGLBufferHandle;
137 };
138 typedef GLObjWrapper<GLBufferObjCreateReleaseHelper> GLBufferObj;
139 
140 
141 class GLProgramObjCreateReleaseHelper
142 {
143 public:
144  static void Create(GLuint &ProgObj){ ProgObj = glCreateProgram(); }
145  static void Release(GLuint ProgObj){ glDeleteProgram(ProgObj); }
146  static const char *Name;
147 };
148 typedef GLObjWrapper<GLProgramObjCreateReleaseHelper> GLProgramObj;
149 
150 
151 class GLShaderObjCreateReleaseHelper
152 {
153 public:
154  GLShaderObjCreateReleaseHelper(GLenum ShaderType) : m_ShaderType(ShaderType){}
155  void Create(GLuint &ShaderObj){ ShaderObj = glCreateShader(m_ShaderType); }
156  void Release(GLuint ShaderObj){ glDeleteShader(ShaderObj); }
157  static const char *Name;
158 private:
159  GLenum m_ShaderType;
160 };
161 typedef GLObjWrapper<GLShaderObjCreateReleaseHelper> GLShaderObj;
162 
163 
164 class GLPipelineObjCreateReleaseHelper
165 {
166 public:
167  void Create(GLuint &Pipeline) { glGenProgramPipelines(1, &Pipeline); }
168  void Release(GLuint Pipeline) { glDeleteProgramPipelines(1, &Pipeline); }
169  static const char *Name;
170 };
171 typedef GLObjWrapper<GLPipelineObjCreateReleaseHelper> GLPipelineObj;
172 
173 
174 class GLVAOCreateReleaseHelper
175 {
176 public:
177  void Create(GLuint &VAO) { glGenVertexArrays(1, &VAO); }
178  void Release(GLuint VAO) { glDeleteVertexArrays(1, &VAO); }
179  static const char *Name;
180 };
181 typedef GLObjWrapper<GLVAOCreateReleaseHelper> GLVertexArrayObj;
182 
183 
184 class GLTextureCreateReleaseHelper
185 {
186 public:
187  explicit GLTextureCreateReleaseHelper(GLuint ExternalGLTextureHandle = 0) :
188  m_ExternalGLTextureHandle(ExternalGLTextureHandle)
189  {}
190 
191  void Create(GLuint &Tex)
192  {
193  if (m_ExternalGLTextureHandle != 0)
194  Tex = m_ExternalGLTextureHandle; // Attach to the external texture
195  else
196  glGenTextures(1, &Tex);
197  }
198 
199  void Release(GLuint Tex)
200  {
201  if (m_ExternalGLTextureHandle != 0)
202  m_ExternalGLTextureHandle = 0; // Detach from the external texture. DO NOT delete it!
203  else
204  glDeleteTextures(1, &Tex);
205  }
206 
207  static const char *Name;
208 
209 private:
210  GLuint m_ExternalGLTextureHandle;
211 };
212 typedef GLObjWrapper<GLTextureCreateReleaseHelper> GLTextureObj;
213 
214 class GLSamplerCreateReleaseHelper
215 {
216 public:
217  void Create(GLuint &Sampler) { glGenSamplers(1, &Sampler); }
218  void Release(GLuint Sampler) { glDeleteSamplers(1, &Sampler); }
219  static const char *Name;
220 };
221 typedef GLObjWrapper<GLSamplerCreateReleaseHelper> GLSamplerObj;
222 
223 
224 class GLFBOCreateReleaseHelper
225 {
226 public:
227  void Create(GLuint &FBO) { glGenFramebuffers(1, &FBO); }
228  void Release(GLuint FBO) { glDeleteFramebuffers(1, &FBO); }
229  static const char *Name;
230 };
231 typedef GLObjWrapper<GLFBOCreateReleaseHelper> GLFrameBufferObj;
232 
233 }
Definition: GLObjectWrapper.h:28
+
Definition: AdvancedMath.h:316
+
+ + + + + diff --git a/doc/html/_g_l_program_8h_source.html b/doc/html/_g_l_program_8h_source.html new file mode 100644 index 00000000..35a65b9c --- /dev/null +++ b/doc/html/_g_l_program_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/GLProgram.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GLProgram.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 #include "GLObjectWrapper.h"
26 #include "GLProgramResources.h"
27 
28 namespace Diligent
29 {
30  class GLProgram : public GLObjectWrappers::GLProgramObj
31  {
32  public:
33  GLProgram( bool CreateObject );
34  GLProgram( GLProgram&& Program );
35 
36  void InitResources(RenderDeviceGLImpl* pDeviceGLImpl,
37  SHADER_VARIABLE_TYPE DefaultVariableType,
38  const ShaderVariableDesc *VariableDesc,
39  Uint32 NumVars,
40  const StaticSamplerDesc *StaticSamplers,
41  Uint32 NumStaticSamplers,
42  IObject &Owner);
43 
44  void BindConstantResources(IResourceMapping *pResourceMapping, Uint32 Flags);
45 
46  const GLProgramResources& GetAllResources(){return m_AllResources;}
47  GLProgramResources& GetConstantResources(){return m_ConstantResources;}
48 
49 
50 #ifdef VERIFY_RESOURCE_BINDINGS
51  template<typename TResArrayType>
52  void dbgVerifyBindingCompletenessHelper(TResArrayType &ResArr, GLProgramResources *pDynamicResources);
53  void dbgVerifyBindingCompleteness(GLProgramResources *pDynamicResources, class PipelineStateGLImpl *pPSO);
54 #endif
55 
56  private:
57  GLProgram( const GLProgram& Program );
58  const GLProgram& operator = (const GLProgram& Program);
59 
60  GLProgramResources m_AllResources;
61  GLProgramResources m_ConstantResources;
62  // When adding new member DO NOT FORGET TO UPDATE GLProgram( GLProgram&& Program )!!!
63  };
64 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
SHADER_VARIABLE_TYPE
Describes shader variable type that is used by ShaderVariableDesc.
Definition: Shader.h:100
+
+ + + + + diff --git a/doc/html/_g_l_program_resources_8h_source.html b/doc/html/_g_l_program_resources_8h_source.html new file mode 100644 index 00000000..730d2233 --- /dev/null +++ b/doc/html/_g_l_program_resources_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/GLProgramResources.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GLProgramResources.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 #include "GLObjectWrapper.h"
26 #include "HashUtils.h"
27 #include "ShaderBase.h"
28 #include "SamplerGLImpl.h"
29 
30 #ifdef _DEBUG
31 # define VERIFY_RESOURCE_BINDINGS
32 #endif
33 
34 namespace Diligent
35 {
36  class GLProgramResources
37  {
38  public:
39  GLProgramResources();
40  GLProgramResources( GLProgramResources&& Program );
41 
42  void LoadUniforms(class RenderDeviceGLImpl *pDeviceGLImpl,
43  GLuint GLProgram,
44  const SHADER_VARIABLE_TYPE DefaultVariableType,
45  const ShaderVariableDesc *VariableDesc,
46  Uint32 NumVars,
47  const StaticSamplerDesc *StaticSamplers,
48  Uint32 NumStaticSamplers);
49 
50  void Clone(const GLProgramResources& SrcLayout,
51  SHADER_VARIABLE_TYPE *VarTypes,
52  Uint32 NumVarTypes,
53  IObject &Owner);
54 
55  struct GLProgramVariableBase
56  {
57  GLProgramVariableBase( const Char* _Name, size_t _ArraySize, SHADER_VARIABLE_TYPE _VarType) :
58  Name( _Name ),
59  VarType(_VarType),
60  pResources(_ArraySize)
61  {
62  VERIFY_EXPR(_ArraySize >= 1);
63  }
64 
65  String Name;
66  std::vector< RefCntAutoPtr<IDeviceObject> > pResources;
67  SHADER_VARIABLE_TYPE VarType;
68  };
69 
70  struct UniformBufferInfo : GLProgramVariableBase
71  {
72  UniformBufferInfo(const Char* _Name, size_t _ArraySize, SHADER_VARIABLE_TYPE _VarType, GLint _Index) :
73  GLProgramVariableBase(_Name, _ArraySize, _VarType),
74  Index(_Index)
75  {}
76 
77  GLuint Index;
78  };
79  std::vector<UniformBufferInfo>& GetUniformBlocks(){ return m_UniformBlocks; }
80 
81  struct SamplerInfo : GLProgramVariableBase
82  {
83  SamplerInfo(const Char* _Name, size_t _ArraySize, SHADER_VARIABLE_TYPE _VarType, GLint _Location, GLenum _Type, class SamplerGLImpl *_pStaticSampler) :
84  GLProgramVariableBase(_Name, _ArraySize, _VarType),
85  Location(_Location),
86  Type(_Type),
87  pStaticSampler(_pStaticSampler)
88  {}
89  GLint Location;
90  GLenum Type;
91  RefCntAutoPtr<class SamplerGLImpl> pStaticSampler;
92  };
93  std::vector<SamplerInfo>& GetSamplers(){ return m_Samplers; }
94 
95  struct ImageInfo : GLProgramVariableBase
96  {
97  ImageInfo(const Char* _Name, size_t _ArraySize, SHADER_VARIABLE_TYPE _VarType, GLint _BindingPoint, GLenum _Type) :
98  GLProgramVariableBase(_Name, _ArraySize, _VarType),
99  BindingPoint(_BindingPoint),
100  Type(_Type)
101  {}
102 
103  GLint BindingPoint;
104  GLenum Type;
105  };
106  std::vector<ImageInfo>& GetImages(){ return m_Images; }
107 
108  struct StorageBlockInfo : GLProgramVariableBase
109  {
110  StorageBlockInfo(const Char* _Name, size_t _ArraySize, SHADER_VARIABLE_TYPE _VarType, GLint _Binding) :
111  GLProgramVariableBase(_Name, _ArraySize, _VarType),
112  Binding(_Binding)
113  {}
114 
115  GLint Binding;
116  };
117  std::vector<StorageBlockInfo>& GetStorageBlocks(){ return m_StorageBlocks; }
118 
119 
120  struct CGLShaderVariable : ShaderVariableBase
121  {
122  CGLShaderVariable( IObject &Owner, GLProgramResources::GLProgramVariableBase &ProgVar ) :
123  ShaderVariableBase( Owner ),
124  ProgramVar(ProgVar)
125  {}
126 
127  virtual void Set( IDeviceObject *pObject )override final
128  {
129  ProgramVar.pResources[0] = pObject;
130  }
131 
132  virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements)override final
133  {
134  for(Uint32 i=0; i < NumElements; ++i)
135  ProgramVar.pResources[FirstElement + i] = ppObjects[i];
136  }
137 
138  private:
139  GLProgramVariableBase &ProgramVar;
140  };
141 
142  void BindResources(IResourceMapping *pResourceMapping, Uint32 Flags);
143 
144 #ifdef VERIFY_RESOURCE_BINDINGS
145  void dbgVerifyResourceBindings();
146 #endif
147 
148  IShaderVariable* GetShaderVariable( const Char* Name );
149 
150  const std::unordered_map<HashMapStringKey, CGLShaderVariable>& GetVariables(){return m_VariableHash;}
151 
152  private:
153  const GLProgramResources& operator = (const GLProgramResources& Program);
154 
155  void InitVariables(IObject &Owner);
156 
157  std::vector<UniformBufferInfo> m_UniformBlocks;
158  std::vector< SamplerInfo > m_Samplers;
159  std::vector< ImageInfo > m_Images;
160  std::vector< StorageBlockInfo > m_StorageBlocks;
161 
163  std::unordered_map<HashMapStringKey, CGLShaderVariable> m_VariableHash;
164  // When adding new member DO NOT FORGET TO UPDATE GLProgramResources( GLProgramResources&& ProgramResources )!!!
165  };
166 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
SHADER_VARIABLE_TYPE
Describes shader variable type that is used by ShaderVariableDesc.
Definition: Shader.h:100
+
+ + + + + diff --git a/doc/html/_g_l_s_l_definitions_8h_source.html b/doc/html/_g_l_s_l_definitions_8h_source.html new file mode 100644 index 00000000..68cf75ad --- /dev/null +++ b/doc/html/_g_l_s_l_definitions_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/HLSL2GLSLConverterLib/include/GLSLDefinitions.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GLSLDefinitions.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #ifndef _GLSL_DEFINITIONS_
25 #define _GLSL_DEFINITIONS_
26 
27 #define GLSL
28 
29 #define float4 vec4
30 #define float3 vec3
31 #define float2 vec2
32 
33 #define int4 ivec4
34 #define int3 ivec3
35 #define int2 ivec2
36 
37 #define uint4 uvec4
38 #define uint3 uvec3
39 #define uint2 uvec2
40 
41 #define bool4 bvec4
42 #define bool3 bvec3
43 #define bool2 bvec2
44 
45 // OpenGL matrices in GLSL are always as column-major
46 // (this is not related to how they are stored)
47 #define float2x2 mat2x2
48 #define float2x3 mat3x2
49 #define float2x4 mat4x2
50 
51 #define float3x2 mat2x3
52 #define float3x3 mat3x3
53 #define float3x4 mat4x3
54 
55 #define float4x2 mat2x4
56 #define float4x3 mat3x4
57 #define float4x4 mat4x4
58 #define matrix mat4x4
59 
60 #define static
61 
62 #define SamplerState int
63 #define SamplerComparisonState int
64 
65 // https://www.opengl.org/wiki/Memory_Model#Incoherent_memory_access
66 // Shared variable access uses the rules for incoherent memory access.
67 // This means that the user must perform certain synchronization in
68 // order to ensure that shared variables are visible.
69 // At the same time, shared variables are all implicitly declared coherent,
70 // so one don't need to (and can't) use that qualifier.
71 #define groupshared shared
72 
73 #ifdef FRAGMENT_SHADER
74 # define ddx dFdx
75 # define ddy dFdy
76 #else
77 # define ddx(x) (x) // GLSL compiler fails when it sees derivatives
78 # define ddy(x) (x) // in any shader but fragment
79 #endif
80 
81 #define ddx_coarse ddx
82 #define ddy_coarse ddy
83 #define ddx_fine ddx
84 #define ddy_fine ddy
85 
86 #define mul(a, b) ((a)*(b))
87 #define frac fract
88 #define atan2 atan
89 #define rsqrt inversesqrt
90 #define fmod mod
91 #define lerp mix
92 #define dst distance
93 #define countbits bitCount
94 #define firstbithigh findMSB
95 #define firstbitlow findLSB
96 #define reversebits bitfieldReverse
97 
98 float rcp( float x ){ return 1.0 / x; }
99 vec2 rcp( vec2 x ){ return vec2(1.0,1.0) / x; }
100 vec3 rcp( vec3 x ){ return vec3(1.0,1.0,1.0) / x; }
101 vec4 rcp( vec4 x ){ return vec4(1.0,1.0,1.0,1.0) / x; }
102 
103 float saturate( float x ){ return clamp( x, 0.0, 1.0 ); }
104 vec2 saturate( vec2 x ){ return clamp( x, vec2(0.0, 0.0), vec2(1.0, 1.0) ); }
105 vec3 saturate( vec3 x ){ return clamp( x, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0) ); }
106 vec4 saturate( vec4 x ){ return clamp( x, vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0, 1.0, 1.0, 1.0) ); }
107 
108 void sincos( float x, out float s, out float c ){ s = sin( x ); c = cos( x ); }
109 void sincos( vec2 x, out vec2 s, out vec2 c ){ s = sin( x ); c = cos( x ); }
110 void sincos( vec3 x, out vec3 s, out vec3 c ){ s = sin( x ); c = cos( x ); }
111 void sincos( vec4 x, out vec4 s, out vec4 c ){ s = sin( x ); c = cos( x ); }
112 
113 
114 // Bit conversion operations
115 
116 float asfloat( float x ){ return x; }
117 vec2 asfloat( vec2 x ){ return x; }
118 vec3 asfloat( vec3 x ){ return x; }
119 vec4 asfloat( vec4 x ){ return x; }
120 
121 float asfloat( int x ){ return intBitsToFloat(x); }
122 vec2 asfloat( ivec2 x ){ return intBitsToFloat(x); }
123 vec3 asfloat( ivec3 x ){ return intBitsToFloat(x); }
124 vec4 asfloat( ivec4 x ){ return intBitsToFloat(x); }
125 
126 float asfloat( uint x ){ return uintBitsToFloat(x); }
127 vec2 asfloat( uvec2 x ){ return uintBitsToFloat(x); }
128 vec3 asfloat( uvec3 x ){ return uintBitsToFloat(x); }
129 vec4 asfloat( uvec4 x ){ return uintBitsToFloat(x); }
130 
131 
132 int asint( int x ){ return x; }
133 ivec2 asint( ivec2 x ){ return x; }
134 ivec3 asint( ivec3 x ){ return x; }
135 ivec4 asint( ivec4 x ){ return x; }
136 
137 int asint( uint x ){ return int(x); }
138 ivec2 asint( uvec2 x ){ return ivec2(x); }
139 ivec3 asint( uvec3 x ){ return ivec3(x); }
140 ivec4 asint( uvec4 x ){ return ivec4(x); }
141 
142 int asint( float x ){ return floatBitsToInt(x); }
143 ivec2 asint( vec2 x ){ return floatBitsToInt(x); }
144 ivec3 asint( vec3 x ){ return floatBitsToInt(x); }
145 ivec4 asint( vec4 x ){ return floatBitsToInt(x); }
146 
147 
148 uint asuint( uint x ){ return x; }
149 uvec2 asuint( uvec2 x ){ return x; }
150 uvec3 asuint( uvec3 x ){ return x; }
151 uvec4 asuint( uvec4 x ){ return x; }
152 
153 uint asuint( int x ){ return uint(x); }
154 uvec2 asuint( ivec2 x ){ return uvec2(x); }
155 uvec3 asuint( ivec3 x ){ return uvec3(x); }
156 uvec4 asuint( ivec4 x ){ return uvec4(x); }
157 
158 uint asuint( float x ){ return floatBitsToUint(x); }
159 uvec2 asuint( vec2 x ){ return floatBitsToUint(x); }
160 uvec3 asuint( vec3 x ){ return floatBitsToUint(x); }
161 uvec4 asuint( vec4 x ){ return floatBitsToUint(x); }
162 
163 
164 float f16tof32( uint u1 )
165 {
166  return unpackHalf2x16( u1 ).x;
167 }
168 vec2 f16tof32( uvec2 u2 )
169 {
170  uint u2PackedHalf = (u2.x & 0x0ffffu) | ((u2.y & 0x0ffffu) << 16u);
171  return unpackHalf2x16( u2PackedHalf );
172 }
173 vec3 f16tof32( uvec3 u3 )
174 {
175  return vec3( f16tof32( u3.xy ), f16tof32( u3.z ) );
176 }
177 vec4 f16tof32( uvec4 u4 )
178 {
179  return vec4( f16tof32( u4.xy ), f16tof32( u4.zw ) );
180 }
181 float f16tof32( int i1 ){ return f16tof32( uint ( i1 ) ); }
182 vec2 f16tof32( ivec2 i2 ){ return f16tof32( uvec2( i2 ) ); }
183 vec3 f16tof32( ivec3 i3 ){ return f16tof32( uvec3( i3 ) ); }
184 vec4 f16tof32( ivec4 i4 ){ return f16tof32( uvec4( i4 ) ); }
185 
186 uint f32tof16( float f )
187 {
188  return packHalf2x16( vec2( f, 0.0 ) ) & 0x0ffffu;
189 }
190 uvec2 f32tof16( vec2 f2 )
191 {
192  uint u2PackedHalf = packHalf2x16( f2 );
193  return uvec2( u2PackedHalf & 0x0ffffu, u2PackedHalf >> 16u );
194 }
195 uvec3 f32tof16( vec3 f3 )
196 {
197  return uvec3( f32tof16( f3.xy ), f32tof16( f3.z ) );
198 }
199 uvec4 f32tof16( vec4 f4 )
200 {
201  return uvec4( f32tof16( f4.xy ), f32tof16( f4.zw ) );
202 }
203 
204 #ifndef GL_ES // double is not supported on GLES
205 double asdouble(uint lowbits, uint highbits)
206 {
207  return packDouble2x32( uvec2( lowbits, highbits ) );
208 }
209 #endif
210 
211 
212 // Floating point functions
213 
214 bool isfinite( float x )
215 {
216  return !isinf( x ) && !isnan( x );
217 }
218 
219 bool2 isfinite( vec2 f2 )
220 {
221  return bool2( isfinite( f2.x ), isfinite( f2.y ) );
222 }
223 
224 bool3 isfinite( vec3 f3 )
225 {
226  return bool3( isfinite( f3.xy ), isfinite( f3.z ) );
227 }
228 
229 bool4 isfinite( vec4 f4 )
230 {
231  return bool4( isfinite( f4.xyz ), isfinite( f4.w ) );
232 }
233 
234 #ifndef GL_ES
235  float noise( float x ){ return noise1( x ); }
236  vec2 noise( vec2 x ){ return noise2( x ); }
237  vec3 noise( vec3 x ){ return noise3( x ); }
238  vec4 noise( vec4 x ){ return noise4( x ); }
239 #else
240  float noise( float x ){ return 0.0; }
241  vec2 noise( vec2 x ){ return vec2(0.0, 0.0); }
242  vec3 noise( vec3 x ){ return vec3(0.0, 0.0, 0.0); }
243  vec4 noise( vec4 x ){ return vec4(0.0, 0.0, 0.0, 0.0); }
244 #endif
245 
246 float log10( float x )
247 {
248  return log( x ) / log( 10.0 );
249 }
250 vec2 log10( vec2 x )
251 {
252  float _lg10 = log( 10.0 );
253  return log( x ) / vec2(_lg10, _lg10);
254 }
255 vec3 log10( vec3 x )
256 {
257  float _lg10 = log( 10.0 );
258  return log( x ) / vec3(_lg10, _lg10, _lg10);
259 }
260 vec4 log10( vec4 x )
261 {
262  float _lg10 = log( 10.0 );
263  return log( x ) / vec4(_lg10, _lg10, _lg10, _lg10);
264 }
265 
266 
267 #ifdef GL_ES
268 # define mad(a,b,c) ((a)*(b)+(c))
269 #else
270 # define mad fma
271 #endif
272 
273 
274 // Relational and logical operators
275 #define Less lessThan
276 #define LessEqual lessThanEqual
277 #define Greater greaterThan
278 #define GreaterEqual greaterThanEqual
279 #define Equal equal
280 #define NotEqual notEqual
281 #define Not not
282 bool4 And(bool4 L, bool4 R)
283 {
284  return bool4(L.x && R.x,
285  L.y && R.y,
286  L.z && R.z,
287  L.w && R.w);
288 }
289 bool3 And(bool3 L, bool3 R)
290 {
291  return bool3(L.x && R.x,
292  L.y && R.y,
293  L.z && R.z);
294 }
295 bool2 And(bool2 L, bool2 R)
296 {
297  return bool2(L.x && R.x,
298  L.y && R.y);
299 }
300 bool And(bool L, bool R)
301 {
302  return (L && R);
303 }
304 
305 
306 bool4 Or(bool4 L, bool4 R)
307 {
308  return bool4(L.x || R.x,
309  L.y || R.y,
310  L.z || R.z,
311  L.w || R.w);
312 }
313 bool3 Or(bool3 L, bool3 R)
314 {
315  return bool3(L.x || R.x,
316  L.y || R.y,
317  L.z || R.z);
318 }
319 bool2 Or(bool2 L, bool2 R)
320 {
321  return bool2(L.x || R.x,
322  L.y || R.y);
323 }
324 bool Or(bool L, bool R)
325 {
326  return (L || R);
327 }
328 
329 float4 BoolToFloat( bool4 b4 )
330 {
331  return float4(b4.x ? 1.0 : 0.0,
332  b4.y ? 1.0 : 0.0,
333  b4.z ? 1.0 : 0.0,
334  b4.w ? 1.0 : 0.0);
335 }
336 float3 BoolToFloat( bool3 b3 )
337 {
338  return float3(b3.x ? 1.0 : 0.0,
339  b3.y ? 1.0 : 0.0,
340  b3.z ? 1.0 : 0.0);
341 }
342 float2 BoolToFloat( bool2 b2 )
343 {
344  return float2(b2.x ? 1.0 : 0.0,
345  b2.y ? 1.0 : 0.0);
346 }
347 float BoolToFloat( bool b )
348 {
349  return b ? 1.0 : 0.0;
350 }
351 
352 
353 // Synchronization functions
354 
355 #ifdef COMPUTE_SHADER
356 
357 // https://www.opengl.org/wiki/Memory_Model#Incoherent_memory_access
358 
359 // MSDN: GroupMemoryBarrier() blocks execution of all threads
360 // in a group until all group SHARED accesses have been completed.
361 void GroupMemoryBarrier()
362 {
363  // OpenGL.org: groupMemoryBarrier() waits on the completion of all memory accesses
364  // performed by an invocation of a compute shader relative to the same access performed
365  // by other invocations in the same work group and then returns with no other effect.
366 
367  // groupMemoryBarrier() acts like memoryBarrier(), ordering memory writes for all kinds
368  // of variables, but it only orders read/writes for the current work group.
369  groupMemoryBarrier();
370 
371  // OpenGL.org: memoryBarrierShared() waits on the completion of
372  // all memory accesses resulting from the use of SHARED variables
373  // and then returns with no other effect.
374  memoryBarrierShared();
375 }
376 
377 // MSDN: GroupMemoryBarrierWithGroupSync() blocks execution of all
378 // threads in a group until all memory accesses have been completed
379 // and all threads in the group have reached this call.
380 void GroupMemoryBarrierWithGroupSync()
381 {
382  // Issue memory barrier first!
383  GroupMemoryBarrier();
384  barrier();
385 }
386 
387 // MSDN: DeviceMemoryBarrier() blocks execution of all threads
388 // in a group until all device memory accesses have been completed.
389 void DeviceMemoryBarrier()
390 {
391  // Call all memory barriers except for shared memory
392 
393  // Do we need to call groupMemoryBarrier() ?????
394 
395  // OpenGL.org: memoryBarrierBuffer() waits on the completion of
396  // all memory accesses resulting from the use of BUFFER variables
397  // and then returns with no other effect
398  memoryBarrierBuffer();
399 
400  // OpenGL.org: memoryBarrierImage() waits on the completion of all
401  // memory accesses resulting from the use of IMAGE variables and then
402  // returns with no other effect.
403  memoryBarrierImage();
404 
405  // OpenGL.org: memoryBarrierAtomicCounter() waits on the completion of
406  // all accesses resulting from the use of ATOMIC COUNTERS and then returns
407  // with no other effect.
408  memoryBarrierAtomicCounter();
409 }
410 
411 // MSDN: DeviceMemoryBarrierWithGroupSync() blocks execution of
412 // all threads in a group until all device memory accesses have
413 // been completed and all threads in the group have reached this call.
414 void DeviceMemoryBarrierWithGroupSync()
415 {
416  DeviceMemoryBarrier();
417  barrier();
418 }
419 
420 // MSDN: AllMemoryBarrier() blocks execution of all threads in a
421 // group until all memory accesses have been completed.
422 void AllMemoryBarrier()
423 {
424  // OpenGL.org: memoryBarrier() waits on the completion of ALL
425  // memory accesses resulting from the use of IMAGE variables or
426  // ATOMIC COUNTERS and then returns with no other effect.
427  memoryBarrier();
428  // NOTE: nothing is said about buffer memory and shared memory,
429  // so call memoryBarrierBuffer() and memoryBarrierShared() for safety
430 
431  // OpenGL.org: memoryBarrierBuffer() waits on the completion of
432  // all memory accesses resulting from the use of BUFFER variables
433  // and then returns with no other effect
434  memoryBarrierBuffer();
435 
436  // OpenGL.org: memoryBarrierShared() waits on the completion of
437  // all memory accesses resulting from the use of SHARED variables
438  // and then returns with no other effect.
439  memoryBarrierShared();
440 
441  // Call all memory barrier functions. They should have no effect
442  // if everything is synchronized.
443 
444  // OpenGL.org: memoryBarrierImage() waits on the completion of all
445  // memory accesses resulting from the use of IMAGE variables and then
446  // returns with no other effect.
447  memoryBarrierImage();
448 
449  // OpenGL.org: memoryBarrierAtomicCounter() waits on the completion of
450  // all accesses resulting from the use of ATOMIC COUNTERS and then returns
451  // with no other effect.
452  memoryBarrierAtomicCounter();
453 
454  // groupMemoryBarrier waits on the completion of all memory accesses performed
455  // by an invocation of a compute shader relative to the same access performed by
456  // other invocations in the same work group and then returns with no other effect.
457  groupMemoryBarrier();
458 }
459 
460 // MSDN: AllMemoryBarrierWithGroupSync() blocks execution of all
461 // threads in a group until all memory accesses have been completed
462 // and all threads in the group have reached this call.
463 void AllMemoryBarrierWithGroupSync()
464 {
465  AllMemoryBarrier();
466  barrier();
467 }
468 
469 #else
470 
471 void AllMemoryBarrier(){}
472 void AllMemoryBarrierWithGroupSync(){}
473 void DeviceMemoryBarrier(){}
474 void DeviceMemoryBarrierWithGroupSync(){}
475 void GroupMemoryBarrier(){}
476 void GroupMemoryBarrierWithGroupSync(){}
477 
478 #endif
479 
480 
481 // Type conversion functions
482 
483 vec4 _ExpandVector( float x ){ return vec4( x, x, x, x ); }
484 vec4 _ExpandVector( vec2 f2 ){ return vec4( f2.x, f2.y, 0.0, 0.0 ); }
485 vec4 _ExpandVector( vec3 f3 ){ return vec4( f3.x, f3.y, f3.z, 0.0 ); }
486 vec4 _ExpandVector( vec4 f4 ){ return vec4( f4.x, f4.y, f4.z, f4.w ); }
487 
488 ivec4 _ExpandVector( int x ){ return ivec4( x, x, x, x ); }
489 ivec4 _ExpandVector( ivec2 i2 ){ return ivec4( i2.x, i2.y, 0, 0 ); }
490 ivec4 _ExpandVector( ivec3 i3 ){ return ivec4( i3.x, i3.y, i3.z, 0 ); }
491 ivec4 _ExpandVector( ivec4 i4 ){ return ivec4( i4.x, i4.y, i4.z, i4.w ); }
492 
493 uvec4 _ExpandVector( uint x ){ return uvec4( x, x, x, x ); }
494 uvec4 _ExpandVector( uvec2 u2 ){ return uvec4( u2.x, u2.y, 0u, 0u ); }
495 uvec4 _ExpandVector( uvec3 u3 ){ return uvec4( u3.x, u3.y, u3.z, 0u ); }
496 uvec4 _ExpandVector( uvec4 u4 ){ return uvec4( u4.x, u4.y, u4.z, u4.w ); }
497 
498 bvec4 _ExpandVector( bool x ){ return bvec4( x, x, x, x ); }
499 bvec4 _ExpandVector( bvec2 b2 ){ return bvec4( b2.x, b2.y, false, false ); }
500 bvec4 _ExpandVector( bvec3 b3 ){ return bvec4( b3.x, b3.y, b3.z, false ); }
501 bvec4 _ExpandVector( bvec4 b4 ){ return bvec4( b4.x, b4.y, b4.z, b4.w ); }
502 
503 void _ResizeVector(out vec4 outVec4, in vec4 inVec4){outVec4 = inVec4;}
504 void _ResizeVector(out vec3 outVec3, in vec4 inVec4){outVec3 = inVec4.xyz;}
505 void _ResizeVector(out vec2 outVec2, in vec4 inVec4){outVec2 = inVec4.xy;}
506 void _ResizeVector(out float outFlt, in vec4 inVec4){outFlt = inVec4.x;}
507 
508 void _ResizeVector(out vec4 outVec4, in vec3 inVec3){outVec4 = vec4(inVec3, 0.0);}
509 void _ResizeVector(out vec3 outVec3, in vec3 inVec3){outVec3 = inVec3;}
510 void _ResizeVector(out vec2 outVec2, in vec3 inVec3){outVec2 = inVec3.xy;}
511 void _ResizeVector(out float outFlt, in vec3 inVec3){outFlt = inVec3.x;}
512 
513 void _ResizeVector(out vec4 outVec4, in vec2 inVec2){outVec4 = vec4(inVec2, 0.0, 0.0);}
514 void _ResizeVector(out vec3 outVec3, in vec2 inVec2){outVec3 = vec3(inVec2, 0.0);}
515 void _ResizeVector(out vec2 outVec2, in vec2 inVec2){outVec2 = inVec2;}
516 void _ResizeVector(out float outFlt, in vec2 inVec2){outFlt = inVec2.x;}
517 
518 void _ResizeVector(out vec4 outVec4, in float v){outVec4 = vec4(v, 0.0, 0.0, 0.0);}
519 void _ResizeVector(out vec3 outVec3, in float v){outVec3 = vec3(v, 0.0, 0.0);}
520 void _ResizeVector(out vec2 outVec2, in float v){outVec2 = vec2(v, 0.0);}
521 void _ResizeVector(out float outFlt, in float v){outFlt = v;}
522 
523 
524 void _TypeConvertStore( out float Dst, in int Src ){ Dst = float( Src ); }
525 void _TypeConvertStore( out float Dst, in uint Src ){ Dst = float( Src ); }
526 void _TypeConvertStore( out float Dst, in float Src ){ Dst = float( Src ); }
527 void _TypeConvertStore( out uint Dst, in int Src ){ Dst = uint( Src ); }
528 void _TypeConvertStore( out uint Dst, in uint Src ){ Dst = uint( Src ); }
529 void _TypeConvertStore( out uint Dst, in float Src ){ Dst = uint( Src ); }
530 void _TypeConvertStore( out int Dst, in int Src ){ Dst = int( Src ); }
531 void _TypeConvertStore( out int Dst, in uint Src ){ Dst = int( Src ); }
532 void _TypeConvertStore( out int Dst, in float Src ){ Dst = int( Src ); }
533 
534 int _ToInt( int x ) { return int(x); }
535 int _ToInt( uint x ) { return int(x); }
536 int _ToInt( float x ){ return int(x); }
537 int _ToInt( bool x ) { return x ? 1 : 0; }
538 
539 float _ToFloat( int x ) { return float(x); }
540 float _ToFloat( uint x ) { return float(x); }
541 float _ToFloat( float x ){ return float(x); }
542 float _ToFloat( bool x ) { return x ? 1.0 : 0.0;}
543 
544 uint _ToUint( int x ) { return uint(x); }
545 uint _ToUint( uint x ) { return uint(x); }
546 uint _ToUint( float x ){ return uint(x); }
547 uint _ToUint( bool x ) { return x ? 1u : 0u; }
548 
549 bool _ToBool( int x ) { return x != 0 ? true : false; }
550 bool _ToBool( uint x ) { return x != 0u ? true : false; }
551 bool _ToBool( float x ){ return x != 0.0 ? true : false; }
552 bool _ToBool( bool x ) { return x; }
553 
554 #define _ToVec2(x,y) vec2(_ToFloat(x), _ToFloat(y))
555 #define _ToVec3(x,y,z) vec3(_ToFloat(x), _ToFloat(y), _ToFloat(z))
556 #define _ToVec4(x,y,z,w) vec4(_ToFloat(x), _ToFloat(y), _ToFloat(z), _ToFloat(w))
557 
558 #define _ToIvec2(x,y) ivec2(_ToInt(x), _ToInt(y))
559 #define _ToIvec3(x,y,z) ivec3(_ToInt(x), _ToInt(y), _ToInt(z))
560 #define _ToIvec4(x,y,z,w) ivec4(_ToInt(x), _ToInt(y), _ToInt(z), _ToInt(w))
561 
562 #define _ToUvec2(x,y) uvec2(_ToUint(x), _ToUint(y))
563 #define _ToUvec3(x,y,z) uvec3(_ToUint(x), _ToUint(y), _ToUint(z))
564 #define _ToUvec4(x,y,z,w) uvec4(_ToUint(x), _ToUint(y), _ToUint(z), _ToUint(w))
565 
566 #define _ToBvec2(x,y) bvec2(_ToBool(x), _ToBool(y))
567 #define _ToBvec3(x,y,z) bvec3(_ToBool(x), _ToBool(y), _ToBool(z))
568 #define _ToBvec4(x,y,z,w) bvec4(_ToBool(x), _ToBool(y), _ToBool(z), _ToBool(w))
569 
570 
571 int _ToIvec( uint u1 ){ return _ToInt( u1 ); }
572 ivec2 _ToIvec( uvec2 u2 ){ return _ToIvec2( u2.x, u2.y ); }
573 ivec3 _ToIvec( uvec3 u3 ){ return _ToIvec3( u3.x, u3.y, u3.z ); }
574 ivec4 _ToIvec( uvec4 u4 ){ return _ToIvec4( u4.x, u4.y, u4.z, u4.w ); }
575 
576 int _ToIvec( int i1 ){ return i1; }
577 ivec2 _ToIvec( ivec2 i2 ){ return i2; }
578 ivec3 _ToIvec( ivec3 i3 ){ return i3; }
579 ivec4 _ToIvec( ivec4 i4 ){ return i4; }
580 
581 int _ToIvec( float f1 ){ return _ToInt( f1 ); }
582 ivec2 _ToIvec( vec2 f2 ){ return _ToIvec2( f2.x, f2.y ); }
583 ivec3 _ToIvec( vec3 f3 ){ return _ToIvec3( f3.x, f3.y, f3.z ); }
584 ivec4 _ToIvec( vec4 f4 ){ return _ToIvec4( f4.x, f4.y, f4.z, f4.w ); }
585 
586 
587 float _ToVec( uint u1 ){ return _ToFloat(u1); }
588 vec2 _ToVec( uvec2 u2 ){ return _ToVec2( u2.x, u2.y ); }
589 vec3 _ToVec( uvec3 u3 ){ return _ToVec3( u3.x, u3.y, u3.z ); }
590 vec4 _ToVec( uvec4 u4 ){ return _ToVec4( u4.x, u4.y, u4.z, u4.w ); }
591 
592 float _ToVec( int i1 ){ return _ToFloat(i1); }
593 vec2 _ToVec( ivec2 i2 ){ return _ToVec2( i2.x, i2.y ); }
594 vec3 _ToVec( ivec3 i3 ){ return _ToVec3( i3.x, i3.y, i3.z ); }
595 vec4 _ToVec( ivec4 i4 ){ return _ToVec4( i4.x, i4.y, i4.z, i4.w ); }
596 
597 float _ToVec( float f1 ){ return f1; }
598 vec2 _ToVec( vec2 f2 ){ return f2; }
599 vec3 _ToVec( vec3 f3 ){ return f3; }
600 vec4 _ToVec( vec4 f4 ){ return f4; }
601 
602 
603 uint _ToUvec( uint u1 ){ return u1; }
604 uvec2 _ToUvec( uvec2 u2 ){ return u2; }
605 uvec3 _ToUvec( uvec3 u3 ){ return u3; }
606 uvec4 _ToUvec( uvec4 u4 ){ return u4; }
607 
608 uint _ToUvec( int i1 ){ return _ToUint( i1 ); }
609 uvec2 _ToUvec( ivec2 i2 ){ return _ToUvec2( i2.x, i2.y ); }
610 uvec3 _ToUvec( ivec3 i3 ){ return _ToUvec3( i3.x, i3.y, i3.z ); }
611 uvec4 _ToUvec( ivec4 i4 ){ return _ToUvec4( i4.x, i4.y, i4.z, i4.w ); }
612 
613 uint _ToUvec( float f1 ){ return _ToUint( f1 ); }
614 uvec2 _ToUvec( vec2 f2 ){ return _ToUvec2( f2.x, f2.y ); }
615 uvec3 _ToUvec( vec3 f3 ){ return _ToUvec3( f3.x, f3.y, f3.z ); }
616 uvec4 _ToUvec( vec4 f4 ){ return _ToUvec4( f4.x, f4.y, f4.z, f4.w ); }
617 
618 
619 // TEXTURE FUNCTION STUB MACROS
620 // https://www.opengl.org/wiki/Sampler_(GLSL)
621 
622 
623 // Texture size queries
624 // https://www.opengl.org/sdk/docs/man/html/textureSize.xhtml
625 // textureSize returns the dimensions of level lod (if present) of the texture bound to sampler.
626 // The components in the return value are filled in, in order, with the width, height and depth
627 // of the texture. For the array forms, the last component of the return value is the number of
628 // layers in the texture array.
629 
630 //#if !(defined(DESKTOP_GL) && __VERSION__ >= 430)
631 # define textureQueryLevels(x) 0 // Only supported on 4.3+
632 //#endif
633 
634 #define GetTex1DDimensions_1(Sampler, Width)\
635 { \
636  _TypeConvertStore( Width, textureSize(Sampler, 0) );\
637 }
638 
639 #define GetTex1DDimensions_3(Sampler, MipLevel, Width, NumberOfMipLevels)\
640 { \
641  _TypeConvertStore( Width, textureSize(Sampler, _ToInt(MipLevel)) ); \
642  _TypeConvertStore( NumberOfMipLevels, textureQueryLevels(Sampler) ); \
643 }
644 
645 #define GetTex1DArrDimensions_2(Sampler, Width, Elements)\
646 { \
647  ivec2 i2Size = textureSize(Sampler, 0); \
648  _TypeConvertStore( Width, i2Size.x );\
649  _TypeConvertStore( Elements, i2Size.y );\
650 }
651 
652 #define GetTex1DArrDimensions_4(Sampler, MipLevel, Width, Elements, NumberOfMipLevels)\
653 { \
654  ivec2 i2Size = textureSize(Sampler, _ToInt(MipLevel)); \
655  _TypeConvertStore( Width, i2Size.x ); \
656  _TypeConvertStore( Elements, i2Size.y ); \
657  _TypeConvertStore( NumberOfMipLevels, textureQueryLevels(Sampler) );\
658 }
659 
660 #define GetTex2DDimensions_2(Sampler, Width, Height)\
661 { \
662  ivec2 i2Size = textureSize(Sampler, 0); \
663  _TypeConvertStore( Width, i2Size.x ); \
664  _TypeConvertStore( Height, i2Size.y ); \
665 }
666 
667 #define GetTex2DDimensions_4(Sampler, MipLevel, Width, Height, NumberOfMipLevels)\
668 { \
669  ivec2 i2Size = textureSize(Sampler, _ToInt(MipLevel) ); \
670  _TypeConvertStore( Width, i2Size.x ); \
671  _TypeConvertStore( Height, i2Size.y ); \
672  _TypeConvertStore( NumberOfMipLevels, textureQueryLevels(Sampler) );\
673 }
674 
675 #define GetTex2DArrDimensions_3(Sampler, Width, Height, Elements)\
676 { \
677  ivec3 i3Size = textureSize(Sampler, 0); \
678  _TypeConvertStore( Width, i3Size.x ); \
679  _TypeConvertStore( Height, i3Size.y ); \
680  _TypeConvertStore( Elements,i3Size.z ); \
681 }
682 
683 #define GetTex2DArrDimensions_5(Sampler, MipLevel, Width, Height, Elements, NumberOfMipLevels)\
684 { \
685  ivec3 i3Size = textureSize(Sampler, _ToInt(MipLevel)); \
686  _TypeConvertStore( Width, i3Size.x ); \
687  _TypeConvertStore( Height, i3Size.y ); \
688  _TypeConvertStore( Elements, i3Size.z ); \
689  _TypeConvertStore( NumberOfMipLevels, textureQueryLevels(Sampler) );\
690 }
691 
692 #define GetTex3DDimensions_3(Sampler, Width, Height, Depth)\
693 { \
694  ivec3 i3Size = textureSize(Sampler, 0); \
695  _TypeConvertStore( Width, i3Size.x ); \
696  _TypeConvertStore( Height, i3Size.y ); \
697  _TypeConvertStore( Depth, i3Size.z ); \
698 }
699 
700 #define GetTex3DDimensions_5(Sampler, MipLevel, Width, Height, Depth, NumberOfMipLevels)\
701 { \
702  ivec3 i3Size = textureSize(Sampler, _ToInt(MipLevel)); \
703  _TypeConvertStore( Width, i3Size.x ); \
704  _TypeConvertStore( Height, i3Size.y ); \
705  _TypeConvertStore( Depth, i3Size.z ); \
706  _TypeConvertStore( NumberOfMipLevels, textureQueryLevels(Sampler) );\
707 }
708 
709 #define GetTex2DMSDimensions_3(Sampler, Width, Height, NumberOfSamples)\
710 { \
711  ivec2 i2Size = textureSize(Sampler); \
712  _TypeConvertStore( Width, i2Size.x ); \
713  _TypeConvertStore( Height, i2Size.y ); \
714  _TypeConvertStore( NumberOfSamples, 0 );\
715 }
716 
717 #define GetTex2DMSArrDimensions_4(Sampler, Width, Height, Elements, NumberOfSamples)\
718 { \
719  ivec3 i3Size = textureSize(Sampler); \
720  _TypeConvertStore( Width, i3Size.x );\
721  _TypeConvertStore( Height, i3Size.y );\
722  _TypeConvertStore( Elements, i3Size.z );\
723  _TypeConvertStore( NumberOfSamples, 0 );\
724 }
725 
726 
727 // https://www.opengl.org/sdk/docs/man/html/imageSize.xhtml
728 // imageSize returns the dimensions of the image bound to image. The components in the
729 // return value are filled in, in order, with the width, height and depth of the image.
730 // For the array forms, the last component of the return value is the number of layers
731 // in the texture array.
732 
733 #define GetRWTex1DDimensions_1(Tex, Width)\
734 { \
735  _TypeConvertStore( Width, imageSize(Tex) ); \
736 }
737 
738 #define GetRWTex1DArrDimensions_2(Tex, Width, Elements)\
739 { \
740  ivec2 i2Size = imageSize(Tex); \
741  _TypeConvertStore( Width, i2Size.x ); \
742  _TypeConvertStore( Elements, i2Size.y ); \
743 }
744 
745 #define GetRWTex2DDimensions_2(Tex, Width, Height)\
746 { \
747  ivec2 i2Size = imageSize(Tex); \
748  _TypeConvertStore( Width, i2Size.x ); \
749  _TypeConvertStore( Height, i2Size.y ); \
750 }
751 
752 #define GetRWTex2DArrDimensions_3(Tex, Width, Height, Elements)\
753 { \
754  ivec3 i3Size = imageSize(Tex); \
755  _TypeConvertStore( Width, i3Size.x );\
756  _TypeConvertStore( Height, i3Size.y );\
757  _TypeConvertStore( Elements, i3Size.z );\
758 }
759 
760 #define GetRWTex3DDimensions_3(Tex, Width, Height, Depth)\
761 { \
762  ivec3 i3Size = imageSize(Tex); \
763  _TypeConvertStore( Width, i3Size.x ); \
764  _TypeConvertStore( Height, i3Size.y ); \
765  _TypeConvertStore( Depth, i3Size.z ); \
766 }
767 
768 
769 
770 // Texture sampling operations
771 
772 
773 // IMPORTANT NOTE ABOUT OFFSET
774 // Offset parameter to all texture sampling functions must be a constant expression.
775 // If it is not, the shader will be successfully compiled, HOWEVER the value of Offset
776 // will silently be zero.
777 //
778 // A constant expression in GLSL is defined as follows:
779 // * A literal value.
780 // * A const-qualified variable with an explicit initializer (so not a function parameter).
781 // * The result of the length() function of an array, but only if the array has an explicit size.
782 // * The result of most operators, so long as all the operands are themselves constant expressions.
783 // The operators not on this list are any assignment operators (+= and so forth), and the comma operator.
784 // * The result of a constructor for a type, but only if all of the arguments to the constructor are
785 // themselves constant expressions.
786 // * The return value of any built-in function, but only if all of the arguments to the function are
787 // themselves constant expressions. Opaque Types are never constant expressions. Note that the
788 // functions dFdx, dFdy, and fwidth will return 0, when used in a context that requires a constant
789 // expression (such as a const variable initializer).
790 //
791 // The list above does not include return value of a function, even when the value is compile-time expression.
792 // As a result, we cannot use type conversion functions for Offset parameter.
793 
794 // In all texture sampling functions, the last component of Coords is used as Dsub and the array layer is specified
795 // in the second to last component of Coords. (The second component of Coords is unused for 1D shadow lookups.)
796 // For cube array textures, Dsub is specified as a separate parameter
797 // mip
798 #define SampleCmpLevel0Tex1D_3(Tex, Sampler, Coords, CompareValue) textureLod(Tex, _ToVec3((Coords).x, 0.0, CompareValue), 0.0)
799 #define SampleCmpLevel0Tex1DArr_3(Tex, Sampler, Coords, CompareValue) textureLod(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue), 0.0)
800 #define SampleCmpLevel0Tex2D_3(Tex, Sampler, Coords, CompareValue) textureLod(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue), 0.0)
801 #define SampleCmpLevel0Tex2DArr_3(Tex, Sampler, Coords, CompareValue) 0.0 // No textureLod for sampler2DArrayShadow
802 #define SampleCmpLevel0TexCube_3(Tex, Sampler, Coords, CompareValue) 0.0 // No textureLod for samplerCubeShadow
803 #define SampleCmpLevel0TexCubeArr_3(Tex, Sampler, Coords, CompareValue) 0.0 // No textureLod for samplerCubeArrayShadow
804 
805 // mip
806 #define SampleCmpLevel0Tex1D_4(Tex, Sampler, Coords, CompareValue, Offset) textureLodOffset(Tex, _ToVec3((Coords).x, 0.0, CompareValue), 0.0, int(Offset))
807 #define SampleCmpLevel0Tex1DArr_4(Tex, Sampler, Coords, CompareValue, Offset) textureLodOffset(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue), 0.0, int(Offset))
808 #define SampleCmpLevel0Tex2D_4(Tex, Sampler, Coords, CompareValue, Offset) textureLodOffset(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue), 0.0, ivec2((Offset).xy))
809 #define SampleCmpLevel0Tex2DArr_4(Tex, Sampler, Coords, CompareValue, Offset) 0.0 // No textureLodOffset for sampler2DArrayShadow
810 
811 
812 // https://www.opengl.org/sdk/docs/man/html/texture.xhtml - note: there are many mistakes on the page
813 #ifdef FRAGMENT_SHADER
814 
815 # define Sample_2(Tex, Sampler, Coords) texture (Tex, _ToVec(Coords))
816 # define Sample_3(Tex, Sampler, Coords, Offset) textureOffset(Tex, _ToVec(Coords), Offset)
817 # define SampleBias_3(Tex, Sampler, Coords, Bias) texture (Tex, _ToVec(Coords), _ToFloat(Bias))
818 # define SampleBias_4(Tex, Sampler, Coords, Bias, Offset) textureOffset(Tex, _ToVec(Coords), Offset, _ToFloat(Bias))
819 
820 # define SampleCmpTex1D_3(Tex, Sampler, Coords, CompareValue) texture(Tex, _ToVec3((Coords).x, 0.0, CompareValue))
821 # define SampleCmpTex1DArr_3(Tex, Sampler, Coords, CompareValue) texture(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue))
822 # define SampleCmpTex2D_3(Tex, Sampler, Coords, CompareValue) texture(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue))
823 # define SampleCmpTex2DArr_3(Tex, Sampler, Coords, CompareValue) texture(Tex, _ToVec4((Coords).x, (Coords).y, (Coords).z, CompareValue))
824 # define SampleCmpTexCube_3(Tex, Sampler, Coords, CompareValue) texture(Tex, _ToVec4((Coords).x, (Coords).y, (Coords).z, CompareValue))
825 # define SampleCmpTexCubeArr_3(Tex, Sampler, Coords, CompareValue) texture(Tex, _ToVec4((Coords).x, (Coords).y, (Coords).z, (Coords).w), _ToFloat(CompareValue))
826 
827 # define SampleCmpTex1D_4(Tex, Sampler, Coords, CompareValue, Offset) textureOffset(Tex, _ToVec3((Coords).x, 0.0, CompareValue), int(Offset))
828 # define SampleCmpTex1DArr_4(Tex, Sampler, Coords, CompareValue, Offset) textureOffset(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue), int(Offset))
829 # define SampleCmpTex2D_4(Tex, Sampler, Coords, CompareValue, Offset) textureOffset(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue), ivec2((Offset).xy))
830 # define SampleCmpTex2DArr_4(Tex, Sampler, Coords, CompareValue, Offset) textureOffset(Tex, _ToVec4((Coords).x, (Coords).y, (Coords).z, CompareValue), ivec2((Offset).xy))
831 
832 #else
833 
834 // Derivatives are only available in fragment shader. GLSL compiler fails when it
835 // encounters texture() or textureOffset() instructions in other types of shaders. So
836 // to let the shader be compiled and to have something meaningful, replace such operations
837 // with textureLod() and textureLodOffset()
838 
839 # define Sample_2(Tex, Sampler, Coords) textureLod (Tex, _ToVec(Coords), 0.0)
840 # define Sample_3(Tex, Sampler, Coords, Offset) textureLodOffset(Tex, _ToVec(Coords), 0.0, Offset)
841 # define SampleBias_3(Tex, Sampler, Coords, Bias) textureLod (Tex, _ToVec(Coords), 0.0 + _ToFloat(Bias))
842 # define SampleBias_4(Tex, Sampler, Coords, Bias, Offset) textureLodOffset(Tex, _ToVec(Coords), 0.0 + _ToFloat(Bias), Offset)
843 
844 # define SampleCmpTex1D_3 SampleCmpLevel0Tex1D_3
845 # define SampleCmpTex1DArr_3 SampleCmpLevel0Tex1DArr_3
846 # define SampleCmpTex2D_3 SampleCmpLevel0Tex2D_3
847 # define SampleCmpTex2DArr_3 SampleCmpLevel0Tex2DArr_3
848 # define SampleCmpTexCube_3 SampleCmpLevel0TexCube_3
849 # define SampleCmpTexCubeArr_3 SampleCmpLevel0TexCubeArr_3
850 
851 # define SampleCmpTex1D_4 SampleCmpLevel0Tex1D_4
852 # define SampleCmpTex1DArr_4 SampleCmpLevel0Tex1DArr_4
853 # define SampleCmpTex2D_4 SampleCmpLevel0Tex2D_4
854 # define SampleCmpTex2DArr_4 SampleCmpLevel0Tex2DArr_4
855 
856 #endif
857 
858 // https://www.opengl.org/sdk/docs/man/html/textureLod.xhtml
859 #define SampleLevel_3(Tex, Sampler, Coords, Level) textureLod (Tex, _ToVec(Coords), _ToFloat(Level))
860 #define SampleLevel_4(Tex, Sampler, Coords, Level, Offset) textureLodOffset(Tex, _ToVec(Coords), _ToFloat(Level), Offset)
861 
862 // https://www.opengl.org/sdk/docs/man/html/textureGrad.xhtml
863 #define SampleGrad_4(Tex, Sampler, Coords, DDX, DDY) textureGrad (Tex, _ToVec(Coords), _ToVec(DDX), _ToVec(DDY))
864 #define SampleGrad_5(Tex, Sampler, Coords, DDX, DDY, Offset) textureGradOffset(Tex, _ToVec(Coords), _ToVec(DDX), _ToVec(DDY), Offset)
865 
866 
867 // texelFetch performs a lookup of a single texel from texture coordinate P in the texture
868 // bound to sampler. The array layer is specified in the last component of P for array forms.
869 // The lod parameter (if present) specifies the level-of-detail from which the texel will be fetched.
870 // The sample specifies which sample within the texel will be returned when reading from a multi-sample texure.
871 
872 #define LoadTex1D_1(Tex, Location) texelFetch (Tex, _ToInt((Location).x), _ToInt((Location).y))
873 #define LoadTex1D_2(Tex, Location, Offset)texelFetchOffset(Tex, _ToInt((Location).x), _ToInt((Location).y), int(Offset))
874 #define LoadTex1DArr_1(Tex, Location) texelFetch (Tex, _ToIvec( (Location).xy), _ToInt((Location).z) )
875 #define LoadTex1DArr_2(Tex, Location, Offset)texelFetchOffset(Tex, _ToIvec( (Location).xy), _ToInt((Location).z), int(Offset))
876 #define LoadTex2D_1(Tex, Location) texelFetch (Tex, _ToIvec( (Location).xy), _ToInt((Location).z))
877 #define LoadTex2D_2(Tex, Location, Offset)texelFetchOffset(Tex, _ToIvec( (Location).xy), _ToInt((Location).z), ivec2( (Offset).xy) )
878 #define LoadTex2DArr_1(Tex, Location) texelFetch (Tex, _ToIvec( (Location).xyz), _ToInt((Location).w) )
879 #define LoadTex2DArr_2(Tex, Location, Offset)texelFetchOffset(Tex, _ToIvec( (Location).xyz), _ToInt((Location).w), ivec2( (Offset).xy))
880 #define LoadTex3D_1(Tex, Location) texelFetch (Tex, _ToIvec( (Location).xyz), _ToInt((Location).w))
881 #define LoadTex3D_2(Tex, Location, Offset)texelFetchOffset(Tex, _ToIvec( (Location).xyz), _ToInt((Location).w), ivec3( (Offset).xyz))
882 #define LoadTex2DMS_2(Tex, Location, Sample) texelFetch(Tex, _ToIvec( (Location).xy), _ToInt(Sample))
883 #define LoadTex2DMS_3(Tex, Location, Sample, Offset)texelFetch(Tex, _ToIvec2( (Location).x + (Offset).x, (Location).y + (Offset).y), int(Sample) ) // No texelFetchOffset for texture2DMS
884 #define LoadTex2DMSArr_2(Tex, Location, Sample) texelFetch(Tex, _ToIvec( (Location).xyz), _ToInt(Sample))
885 #define LoadTex2DMSArr_3(Tex, Location, Sample, Offset)texelFetch(Tex, _ToIvec3( (Location).x + (Offset).x, (Location).y + (Offset).y, (Location).z), int(Sample)) // No texelFetchOffset for texture2DMSArray
886 
887 //https://www.opengl.org/sdk/docs/man/html/imageLoad.xhtml
888 #define LoadRWTex1D_1(Tex, Location) imageLoad(Tex, _ToIvec((Location).x) )
889 #define LoadRWTex1DArr_1(Tex, Location) imageLoad(Tex, _ToIvec((Location).xy) )
890 #define LoadRWTex2D_1(Tex, Location) imageLoad(Tex, _ToIvec((Location).xy) )
891 #define LoadRWTex2DArr_1(Tex, Location) imageLoad(Tex, _ToIvec((Location).xyz) )
892 #define LoadRWTex3D_1(Tex, Location) imageLoad(Tex, _ToIvec((Location).xyz) )
893 
894 
895 #define Gather_2(Tex, Sampler, Location) textureGather (Tex, _ToVec(Location))
896 #define Gather_3(Tex, Sampler, Location, Offset)textureGatherOffset(Tex, _ToVec(Location), Offset)
897 
898 #define GatherCmp_3(Tex, Sampler, Location, CompareVal) textureGather (Tex, _ToVec(Location), _ToFloat(CompareVal))
899 #define GatherCmp_4(Tex, Sampler, Location, CompareVal, Offset)textureGatherOffset(Tex, _ToVec(Location), _ToFloat(CompareVal), Offset)
900 
901 // Atomic operations
902 #define InterlockedAddSharedVar_2(dest, value) atomicAdd(dest, value)
903 #define InterlockedAddSharedVar_3(dest, value, orig_val) orig_val = atomicAdd(dest, value)
904 #define InterlockedAddImage_2(img, coords, value) imageAtomicAdd(img, _ToIvec(coords), value)
905 #define InterlockedAddImage_3(img, coords, value, orig_val)orig_val = imageAtomicAdd(img, _ToIvec(coords), value)
906 
907 #define InterlockedAndSharedVar_2(dest, value) atomicAnd(dest, value)
908 #define InterlockedAndSharedVar_3(dest, value, orig_val) orig_val = atomicAnd(dest, value)
909 #define InterlockedAndImage_2(img, coords, value) imageAtomicAnd(img, _ToIvec(coords), value)
910 #define InterlockedAndImage_3(img, coords, value, orig_val)orig_val = imageAtomicAnd(img, _ToIvec(coords), value)
911 
912 #define InterlockedMaxSharedVar_2(dest, value) atomicMax(dest, value)
913 #define InterlockedMaxSharedVar_3(dest, value, orig_val) orig_val = atomicMax(dest, value)
914 #define InterlockedMaxImage_2(img, coords, value) imageAtomicMax(img, _ToIvec(coords), value)
915 #define InterlockedMaxImage_3(img, coords, value, orig_val)orig_val = imageAtomicMax(img, _ToIvec(coords), value)
916 
917 #define InterlockedMinSharedVar_2(dest, value) atomicMin(dest, value)
918 #define InterlockedMinSharedVar_3(dest, value, orig_val) orig_val = atomicMin(dest, value)
919 #define InterlockedMinImage_2(img, coords, value) imageAtomicMin(img, _ToIvec(coords), value)
920 #define InterlockedMinImage_3(img, coords, value, orig_val)orig_val = imageAtomicMin(img, _ToIvec(coords), value)
921 
922 #define InterlockedOrSharedVar_2(dest, value) atomicOr(dest, value)
923 #define InterlockedOrSharedVar_3(dest, value, orig_val) orig_val = atomicOr(dest, value)
924 #define InterlockedOrImage_2(img, coords, value) imageAtomicOr(img, _ToIvec(coords), value)
925 #define InterlockedOrImage_3(img, coords, value, orig_val)orig_val = imageAtomicOr(img, _ToIvec(coords), value)
926 
927 #define InterlockedXorSharedVar_2(dest, value) atomicXor(dest, value)
928 #define InterlockedXorSharedVar_3(dest, value, orig_val) orig_val = atomicXor(dest, value)
929 #define InterlockedXorImage_2(img, coords, value) imageAtomicXor(img, _ToIvec(coords), value)
930 #define InterlockedXorImage_3(img, coords, value, orig_val)orig_val = imageAtomicXor(img, _ToIvec(coords), value)
931 
932 // There is actually no InterlockedExchange() with 2 arguments
933 #define InterlockedExchangeSharedVar_2(dest, value) atomicExchange(dest, value)
934 #define InterlockedExchangeSharedVar_3(dest, value, orig_val) orig_val = atomicExchange(dest, value)
935 #define InterlockedExchangeImage_2(img, coords, value) imageAtomicExchange(img, _ToIvec(coords), value)
936 #define InterlockedExchangeImage_3(img, coords, value, orig_val)orig_val = imageAtomicExchange(img, _ToIvec(coords), value)
937 
938 //uint imageAtomicCompSwap( image img, IVec P, nint compare, nint data);
939 //void InterlockedCompareExchange( in R dest, in T compare_value, in T value, out T original_value);
940 #define InterlockedCompareExchangeSharedVar_4(dest, cmp_val, value, orig_val) orig_val = atomicCompSwap(dest, cmp_val, value)
941 #define InterlockedCompareExchangeImage_4(img, coords, cmp_val, value, orig_val) orig_val = imageAtomicCompSwap(img, _ToIvec(coords), cmp_val, value)
942 
943 #define InterlockedCompareStoreSharedVar_3(dest, cmp_val, value) atomicCompSwap(dest, cmp_val, value)
944 #define InterlockedCompareStoreImage_3(img, coords, cmp_val, value)imageAtomicCompSwap(img, _ToIvec(coords), cmp_val, value)
945 
946 
947 // Swizzling macros
948 #define _SWIZZLE0
949 #define _SWIZZLE1 .x
950 #define _SWIZZLE2 .xy
951 #define _SWIZZLE3 .xyz
952 #define _SWIZZLE4 .xyzw
953 
954 // Helper functions
955 
956 float2 NormalizedDeviceXYToTexUV( float2 f2ProjSpaceXY )
957 {
958  return float2(0.5,0.5) + float2(0.5,0.5) * f2ProjSpaceXY.xy;
959 }
960 
961 float NormalizedDeviceZToDepth(float fNDC_Z)
962 {
963  return fNDC_Z * 0.5 + 0.5; // [-1, +1] -> [0, 1]
964 }
965 
966 float DepthToNormalizedDeviceZ(float fDepth)
967 {
968  return fDepth * 2.0 - 1.0; // [0, 1] -> [-1, +1]
969 }
970 
971 #define F3NDC_XYZ_TO_UVD_SCALE float3(0.5, 0.5, 0.5)
972 
973 #define NDC_MIN_Z -1.0 // Minimal z in the normalized device space
974 
975 #define MATRIX_ELEMENT(mat, row, col) mat[col][row]
976 
977 // ---------------------------------- Vertex shader ----------------------------------
978 #ifdef VERTEX_SHADER
979 
980 #ifndef GL_ES
981 out gl_PerVertex
982 {
983  vec4 gl_Position;
984 };
985 #endif
986 
987 #define _GET_GL_VERTEX_ID(VertexId)_TypeConvertStore(VertexId, gl_VertexID)
988 #define _GET_GL_INSTANCE_ID(InstId)_TypeConvertStore(InstId, gl_InstanceID)
989 #define _SET_GL_POSITION(Pos)gl_Position=_ExpandVector(Pos)
990 
991 #endif
992 
993 
994 // --------------------------------- Fragment shader ---------------------------------
995 #ifdef FRAGMENT_SHADER
996 
997 #define _GET_GL_FRAG_COORD(FragCoord)_ResizeVector(FragCoord, gl_FragCoord)
998 #define _SET_GL_FRAG_DEPTH(Depth)_TypeConvertStore(gl_FragDepth, Depth)
999 
1000 #endif
1001 
1002 
1003 // --------------------------------- Geometry shader ---------------------------------
1004 #ifdef GEOMETRY_SHADER
1005 
1006 // ARB_separate_shader_objects requires built-in block gl_PerVertex to be redeclared before accessing its members
1007 // declaring gl_PointSize and gl_ClipDistance causes compilation error on Android
1008 in gl_PerVertex
1009 {
1010  vec4 gl_Position;
1011  //float gl_PointSize;
1012  //float gl_ClipDistance[];
1013 } gl_in[];
1014 
1015 out gl_PerVertex
1016 {
1017  vec4 gl_Position;
1018  //float gl_PointSize;
1019  //float gl_ClipDistance[];
1020 };
1021 
1022 #define _GET_GL_POSITION(Pos)_ResizeVector(Pos, gl_in[i].gl_Position)
1023 #define _GET_GL_PRIMITIVE_ID(PrimId)_TypeConvertStore(PrimId, gl_in[i].gl_PrimitiveIDIn)
1024 
1025 #define _SET_GL_POSITION(Pos)gl_Position=_ExpandVector(Pos)
1026 #define _SET_GL_LAYER(Layer)_TypeConvertStore(gl_Layer,Layer)
1027 
1028 #endif
1029 
1030 
1031 // --------------------------- Tessellation control shader ---------------------------
1032 #ifdef TESS_CONTROL_SHADER
1033 
1034 in gl_PerVertex
1035 {
1036  vec4 gl_Position;
1037  //float gl_PointSize;
1038  //float gl_ClipDistance[];
1039 } gl_in[gl_MaxPatchVertices];
1040 
1041 out gl_PerVertex
1042 {
1043  vec4 gl_Position;
1044  //float gl_PointSize;
1045  //float gl_ClipDistance[];
1046 } gl_out[];
1047 
1048 #define _GET_GL_INVOCATION_ID(InvocId)_TypeConvertStore(InvocId, gl_InvocationID)
1049 #define _GET_GL_PRIMITIVE_ID(PrimId)_TypeConvertStore(PrimId, gl_PrimitiveID)
1050 #define _GET_GL_POSITION(Pos)_ResizeVector(Pos, gl_in[i].gl_Position)
1051 
1052 #define _SET_GL_POSITION(Pos)gl_out[gl_InvocationID].gl_Position=_ExpandVector(Pos)
1053 #define _SET_GL_TESS_LEVEL_OUTER(OuterLevel)for(int i=0; i < OuterLevel.length(); ++i)gl_TessLevelOuter[i] = OuterLevel[i]
1054 
1055 void _SetGLTessLevelInner(float InnerLevel[2])
1056 {
1057  gl_TessLevelInner[0] = InnerLevel[0];
1058  gl_TessLevelInner[1] = InnerLevel[1];
1059 }
1060 void _SetGLTessLevelInner(float InnerLevel)
1061 {
1062  gl_TessLevelInner[0] = InnerLevel;
1063 }
1064 
1065 #endif
1066 
1067 
1068 // --------------------------- Tessellation evaluation shader ---------------------------
1069 #ifdef TESS_EVALUATION_SHADER
1070 
1071 in gl_PerVertex
1072 {
1073  vec4 gl_Position;
1074  //float gl_PointSize;
1075  //float gl_ClipDistance[];
1076 } gl_in[gl_MaxPatchVertices];
1077 
1078 out gl_PerVertex
1079 {
1080  vec4 gl_Position;
1081  //float gl_PointSize;
1082  //float gl_ClipDistance[];
1083 };
1084 
1085 #define _GET_GL_POSITION(Pos)_ResizeVector(Pos, gl_in[i].gl_Position)
1086 #define _GET_GL_TESS_LEVEL_OUTER(OuterLevel)for(int i=0; i < OuterLevel.length(); ++i)OuterLevel[i] = gl_TessLevelOuter[i]
1087 void _GetGLTessLevelInner(out float InnerLevel[2])
1088 {
1089  InnerLevel[0] = gl_TessLevelInner[0];
1090  InnerLevel[1] = gl_TessLevelInner[1];
1091 }
1092 void _GetGLTessLevelInner(out float InnerLevel)
1093 {
1094  InnerLevel = gl_TessLevelInner[0];
1095 }
1096 
1097 #define _GET_GL_TESS_COORD(TessCoord)_ResizeVector(TessCoord, gl_TessCoord)
1098 #define _GET_GL_PRIMITIVE_ID(PrimId)_TypeConvertStore(PrimId, gl_PrimitiveID)
1099 
1100 #define _SET_GL_POSITION(Pos)gl_Position=_ExpandVector(Pos)
1101 
1102 #endif
1103 
1104 
1105 // ---------------------------------- Compute shader ----------------------------------
1106 #ifdef COMPUTE_SHADER
1107 
1108 #define _GET_GL_GLOBAL_INVOCATION_ID(Type, InvocId)InvocId=Type(gl_GlobalInvocationID)
1109 #define _GET_GL_WORK_GROUP_ID(Type, GroupId)GroupId=Type(gl_WorkGroupID)
1110 #define _GET_GL_LOCAL_INVOCATION_ID(Type, InvocId)InvocId=Type(gl_LocalInvocationID)
1111 #define _GET_GL_LOCAL_INVOCATION_INDEX(Type, InvocInd)InvocInd=Type(gl_LocalInvocationIndex)
1112 
1113 #endif
1114 
1115 #endif // _GLSL_DEFINITIONS_
+ + + + + diff --git a/doc/html/_g_l_s_l_definitions__inc_8h_source.html b/doc/html/_g_l_s_l_definitions__inc_8h_source.html new file mode 100644 index 00000000..ac5f412d --- /dev/null +++ b/doc/html/_g_l_s_l_definitions__inc_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/HLSL2GLSLConverterLib/include/GLSLDefinitions_inc.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GLSLDefinitions_inc.h
+
+
+
1 "/* Copyright 2015-2017 Egor Yusov\n"
2 " * \n"
3 " * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
4 " * you may not use this file except in compliance with the License.\n"
5 " * You may obtain a copy of the License at\n"
6 " * \n"
7 " * http://www.apache.org/licenses/LICENSE-2.0\n"
8 " * \n"
9 " * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n"
10 " * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
11 " * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.\n"
12 " *\n"
13 " * In no event and under no legal theory, whether in tort (including negligence), \n"
14 " * contract, or otherwise, unless required by applicable law (such as deliberate \n"
15 " * and grossly negligent acts) or agreed to in writing, shall any Contributor be\n"
16 " * liable for any damages, including any direct, indirect, special, incidental, \n"
17 " * or consequential damages of any character arising as a result of this License or \n"
18 " * out of the use or inability to use the software (including but not limited to damages \n"
19 " * for loss of goodwill, work stoppage, computer failure or malfunction, or any and \n"
20 " * all other commercial damages or losses), even if such Contributor has been advised \n"
21 " * of the possibility of such damages.\n"
22 " */\n"
23 "\n"
24 "#ifndef _GLSL_DEFINITIONS_\n"
25 "#define _GLSL_DEFINITIONS_\n"
26 "\n"
27 "#define GLSL\n"
28 "\n"
29 "#define float4 vec4\n"
30 "#define float3 vec3\n"
31 "#define float2 vec2\n"
32 "\n"
33 "#define int4 ivec4\n"
34 "#define int3 ivec3\n"
35 "#define int2 ivec2\n"
36 "\n"
37 "#define uint4 uvec4\n"
38 "#define uint3 uvec3\n"
39 "#define uint2 uvec2\n"
40 "\n"
41 "#define bool4 bvec4\n"
42 "#define bool3 bvec3\n"
43 "#define bool2 bvec2\n"
44 "\n"
45 "// OpenGL matrices in GLSL are always as column-major \n"
46 "// (this is not related to how they are stored)\n"
47 "#define float2x2 mat2x2\n"
48 "#define float2x3 mat3x2\n"
49 "#define float2x4 mat4x2\n"
50 "\n"
51 "#define float3x2 mat2x3\n"
52 "#define float3x3 mat3x3\n"
53 "#define float3x4 mat4x3\n"
54 "\n"
55 "#define float4x2 mat2x4\n"
56 "#define float4x3 mat3x4\n"
57 "#define float4x4 mat4x4\n"
58 "#define matrix mat4x4\n"
59 "\n"
60 "#define static\n"
61 "\n"
62 "#define SamplerState int\n"
63 "#define SamplerComparisonState int\n"
64 "\n"
65 "// https://www.opengl.org/wiki/Memory_Model#Incoherent_memory_access\n"
66 "// Shared variable access uses the rules for incoherent memory access. \n"
67 "// This means that the user must perform certain synchronization in \n"
68 "// order to ensure that shared variables are visible.\n"
69 "// At the same time, shared variables are all implicitly declared coherent, \n"
70 "// so one don\'t need to (and can\'t) use that qualifier.\n"
71 "#define groupshared shared\n"
72 "\n"
73 "#ifdef FRAGMENT_SHADER\n"
74 "# define ddx dFdx\n"
75 "# define ddy dFdy\n"
76 "#else\n"
77 "# define ddx(x) (x) // GLSL compiler fails when it sees derivatives \n"
78 "# define ddy(x) (x) // in any shader but fragment\n"
79 "#endif\n"
80 "\n"
81 "#define ddx_coarse ddx\n"
82 "#define ddy_coarse ddy\n"
83 "#define ddx_fine ddx\n"
84 "#define ddy_fine ddy\n"
85 "\n"
86 "#define mul(a, b) ((a)*(b))\n"
87 "#define frac fract\n"
88 "#define atan2 atan\n"
89 "#define rsqrt inversesqrt\n"
90 "#define fmod mod\n"
91 "#define lerp mix\n"
92 "#define dst distance\n"
93 "#define countbits bitCount\n"
94 "#define firstbithigh findMSB\n"
95 "#define firstbitlow findLSB\n"
96 "#define reversebits bitfieldReverse\n"
97 "\n"
98 "float rcp( float x ){ return 1.0 / x; }\n"
99 "vec2 rcp( vec2 x ){ return vec2(1.0,1.0) / x; }\n"
100 "vec3 rcp( vec3 x ){ return vec3(1.0,1.0,1.0) / x; }\n"
101 "vec4 rcp( vec4 x ){ return vec4(1.0,1.0,1.0,1.0) / x; }\n"
102 "\n"
103 "float saturate( float x ){ return clamp( x, 0.0, 1.0 ); }\n"
104 "vec2 saturate( vec2 x ){ return clamp( x, vec2(0.0, 0.0), vec2(1.0, 1.0) ); }\n"
105 "vec3 saturate( vec3 x ){ return clamp( x, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0) ); }\n"
106 "vec4 saturate( vec4 x ){ return clamp( x, vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0, 1.0, 1.0, 1.0) ); }\n"
107 "\n"
108 "void sincos( float x, out float s, out float c ){ s = sin( x ); c = cos( x ); }\n"
109 "void sincos( vec2 x, out vec2 s, out vec2 c ){ s = sin( x ); c = cos( x ); }\n"
110 "void sincos( vec3 x, out vec3 s, out vec3 c ){ s = sin( x ); c = cos( x ); }\n"
111 "void sincos( vec4 x, out vec4 s, out vec4 c ){ s = sin( x ); c = cos( x ); }\n"
112 "\n"
113 "\n"
114 "// Bit conversion operations\n"
115 "\n"
116 "float asfloat( float x ){ return x; }\n"
117 "vec2 asfloat( vec2 x ){ return x; }\n"
118 "vec3 asfloat( vec3 x ){ return x; }\n"
119 "vec4 asfloat( vec4 x ){ return x; }\n"
120 "\n"
121 "float asfloat( int x ){ return intBitsToFloat(x); }\n"
122 "vec2 asfloat( ivec2 x ){ return intBitsToFloat(x); }\n"
123 "vec3 asfloat( ivec3 x ){ return intBitsToFloat(x); }\n"
124 "vec4 asfloat( ivec4 x ){ return intBitsToFloat(x); }\n"
125 "\n"
126 "float asfloat( uint x ){ return uintBitsToFloat(x); }\n"
127 "vec2 asfloat( uvec2 x ){ return uintBitsToFloat(x); }\n"
128 "vec3 asfloat( uvec3 x ){ return uintBitsToFloat(x); }\n"
129 "vec4 asfloat( uvec4 x ){ return uintBitsToFloat(x); }\n"
130 "\n"
131 "\n"
132 "int asint( int x ){ return x; }\n"
133 "ivec2 asint( ivec2 x ){ return x; }\n"
134 "ivec3 asint( ivec3 x ){ return x; }\n"
135 "ivec4 asint( ivec4 x ){ return x; }\n"
136 "\n"
137 "int asint( uint x ){ return int(x); }\n"
138 "ivec2 asint( uvec2 x ){ return ivec2(x); }\n"
139 "ivec3 asint( uvec3 x ){ return ivec3(x); }\n"
140 "ivec4 asint( uvec4 x ){ return ivec4(x); }\n"
141 "\n"
142 "int asint( float x ){ return floatBitsToInt(x); }\n"
143 "ivec2 asint( vec2 x ){ return floatBitsToInt(x); }\n"
144 "ivec3 asint( vec3 x ){ return floatBitsToInt(x); }\n"
145 "ivec4 asint( vec4 x ){ return floatBitsToInt(x); }\n"
146 "\n"
147 "\n"
148 "uint asuint( uint x ){ return x; }\n"
149 "uvec2 asuint( uvec2 x ){ return x; }\n"
150 "uvec3 asuint( uvec3 x ){ return x; }\n"
151 "uvec4 asuint( uvec4 x ){ return x; }\n"
152 "\n"
153 "uint asuint( int x ){ return uint(x); }\n"
154 "uvec2 asuint( ivec2 x ){ return uvec2(x); }\n"
155 "uvec3 asuint( ivec3 x ){ return uvec3(x); }\n"
156 "uvec4 asuint( ivec4 x ){ return uvec4(x); }\n"
157 "\n"
158 "uint asuint( float x ){ return floatBitsToUint(x); }\n"
159 "uvec2 asuint( vec2 x ){ return floatBitsToUint(x); }\n"
160 "uvec3 asuint( vec3 x ){ return floatBitsToUint(x); }\n"
161 "uvec4 asuint( vec4 x ){ return floatBitsToUint(x); }\n"
162 "\n"
163 "\n"
164 "float f16tof32( uint u1 )\n"
165 "{ \n"
166 " return unpackHalf2x16( u1 ).x; \n"
167 "}\n"
168 "vec2 f16tof32( uvec2 u2 )\n"
169 "{ \n"
170 " uint u2PackedHalf = (u2.x & 0x0ffffu) | ((u2.y & 0x0ffffu) << 16u);\n"
171 " return unpackHalf2x16( u2PackedHalf ); \n"
172 "}\n"
173 "vec3 f16tof32( uvec3 u3 )\n"
174 "{ \n"
175 " return vec3( f16tof32( u3.xy ), f16tof32( u3.z ) );\n"
176 "}\n"
177 "vec4 f16tof32( uvec4 u4 )\n"
178 "{ \n"
179 " return vec4( f16tof32( u4.xy ), f16tof32( u4.zw ) );\n"
180 "}\n"
181 "float f16tof32( int i1 ){ return f16tof32( uint ( i1 ) ); }\n"
182 "vec2 f16tof32( ivec2 i2 ){ return f16tof32( uvec2( i2 ) ); }\n"
183 "vec3 f16tof32( ivec3 i3 ){ return f16tof32( uvec3( i3 ) ); }\n"
184 "vec4 f16tof32( ivec4 i4 ){ return f16tof32( uvec4( i4 ) ); }\n"
185 "\n"
186 "uint f32tof16( float f )\n"
187 "{ \n"
188 " return packHalf2x16( vec2( f, 0.0 ) ) & 0x0ffffu; \n"
189 "}\n"
190 "uvec2 f32tof16( vec2 f2 )\n"
191 "{ \n"
192 " uint u2PackedHalf = packHalf2x16( f2 );\n"
193 " return uvec2( u2PackedHalf & 0x0ffffu, u2PackedHalf >> 16u );\n"
194 "}\n"
195 "uvec3 f32tof16( vec3 f3 )\n"
196 "{\n"
197 " return uvec3( f32tof16( f3.xy ), f32tof16( f3.z ) );\n"
198 "}\n"
199 "uvec4 f32tof16( vec4 f4 )\n"
200 "{\n"
201 " return uvec4( f32tof16( f4.xy ), f32tof16( f4.zw ) );\n"
202 "}\n"
203 "\n"
204 "#ifndef GL_ES // double is not supported on GLES\n"
205 "double asdouble(uint lowbits, uint highbits)\n"
206 "{\n"
207 " return packDouble2x32( uvec2( lowbits, highbits ) );\n"
208 "}\n"
209 "#endif\n"
210 "\n"
211 "\n"
212 "// Floating point functions\n"
213 "\n"
214 "bool isfinite( float x )\n"
215 "{\n"
216 " return !isinf( x ) && !isnan( x );\n"
217 "}\n"
218 "\n"
219 "bool2 isfinite( vec2 f2 )\n"
220 "{\n"
221 " return bool2( isfinite( f2.x ), isfinite( f2.y ) );\n"
222 "}\n"
223 "\n"
224 "bool3 isfinite( vec3 f3 )\n"
225 "{\n"
226 " return bool3( isfinite( f3.xy ), isfinite( f3.z ) );\n"
227 "}\n"
228 "\n"
229 "bool4 isfinite( vec4 f4 )\n"
230 "{\n"
231 " return bool4( isfinite( f4.xyz ), isfinite( f4.w ) );\n"
232 "}\n"
233 "\n"
234 "#ifndef GL_ES\n"
235 " float noise( float x ){ return noise1( x ); }\n"
236 " vec2 noise( vec2 x ){ return noise2( x ); }\n"
237 " vec3 noise( vec3 x ){ return noise3( x ); }\n"
238 " vec4 noise( vec4 x ){ return noise4( x ); }\n"
239 "#else\n"
240 " float noise( float x ){ return 0.0; }\n"
241 " vec2 noise( vec2 x ){ return vec2(0.0, 0.0); }\n"
242 " vec3 noise( vec3 x ){ return vec3(0.0, 0.0, 0.0); }\n"
243 " vec4 noise( vec4 x ){ return vec4(0.0, 0.0, 0.0, 0.0); }\n"
244 "#endif\n"
245 "\n"
246 "float log10( float x )\n"
247 "{\n"
248 " return log( x ) / log( 10.0 );\n"
249 "}\n"
250 "vec2 log10( vec2 x )\n"
251 "{\n"
252 " float _lg10 = log( 10.0 );\n"
253 " return log( x ) / vec2(_lg10, _lg10);\n"
254 "}\n"
255 "vec3 log10( vec3 x )\n"
256 "{\n"
257 " float _lg10 = log( 10.0 );\n"
258 " return log( x ) / vec3(_lg10, _lg10, _lg10);\n"
259 "}\n"
260 "vec4 log10( vec4 x )\n"
261 "{\n"
262 " float _lg10 = log( 10.0 );\n"
263 " return log( x ) / vec4(_lg10, _lg10, _lg10, _lg10);\n"
264 "}\n"
265 "\n"
266 "\n"
267 "#ifdef GL_ES\n"
268 "# define mad(a,b,c) ((a)*(b)+(c))\n"
269 "#else\n"
270 "# define mad fma\n"
271 "#endif\n"
272 "\n"
273 "\n"
274 "// Relational and logical operators\n"
275 "#define Less lessThan\n"
276 "#define LessEqual lessThanEqual\n"
277 "#define Greater greaterThan\n"
278 "#define GreaterEqual greaterThanEqual\n"
279 "#define Equal equal\n"
280 "#define NotEqual notEqual\n"
281 "#define Not not\n"
282 "bool4 And(bool4 L, bool4 R)\n"
283 "{\n"
284 " return bool4(L.x && R.x,\n"
285 " L.y && R.y,\n"
286 " L.z && R.z,\n"
287 " L.w && R.w);\n"
288 "}\n"
289 "bool3 And(bool3 L, bool3 R)\n"
290 "{\n"
291 " return bool3(L.x && R.x,\n"
292 " L.y && R.y,\n"
293 " L.z && R.z);\n"
294 "}\n"
295 "bool2 And(bool2 L, bool2 R)\n"
296 "{\n"
297 " return bool2(L.x && R.x,\n"
298 " L.y && R.y);\n"
299 "}\n"
300 "bool And(bool L, bool R)\n"
301 "{\n"
302 " return (L && R);\n"
303 "}\n"
304 "\n"
305 "\n"
306 "bool4 Or(bool4 L, bool4 R)\n"
307 "{\n"
308 " return bool4(L.x || R.x,\n"
309 " L.y || R.y,\n"
310 " L.z || R.z,\n"
311 " L.w || R.w);\n"
312 "}\n"
313 "bool3 Or(bool3 L, bool3 R)\n"
314 "{\n"
315 " return bool3(L.x || R.x,\n"
316 " L.y || R.y,\n"
317 " L.z || R.z);\n"
318 "}\n"
319 "bool2 Or(bool2 L, bool2 R)\n"
320 "{\n"
321 " return bool2(L.x || R.x,\n"
322 " L.y || R.y);\n"
323 "}\n"
324 "bool Or(bool L, bool R)\n"
325 "{\n"
326 " return (L || R);\n"
327 "}\n"
328 "\n"
329 "float4 BoolToFloat( bool4 b4 )\n"
330 "{\n"
331 " return float4(b4.x ? 1.0 : 0.0,\n"
332 " b4.y ? 1.0 : 0.0,\n"
333 " b4.z ? 1.0 : 0.0,\n"
334 " b4.w ? 1.0 : 0.0);\n"
335 "}\n"
336 "float3 BoolToFloat( bool3 b3 )\n"
337 "{\n"
338 " return float3(b3.x ? 1.0 : 0.0,\n"
339 " b3.y ? 1.0 : 0.0,\n"
340 " b3.z ? 1.0 : 0.0);\n"
341 "}\n"
342 "float2 BoolToFloat( bool2 b2 )\n"
343 "{\n"
344 " return float2(b2.x ? 1.0 : 0.0,\n"
345 " b2.y ? 1.0 : 0.0);\n"
346 "}\n"
347 "float BoolToFloat( bool b )\n"
348 "{\n"
349 " return b ? 1.0 : 0.0;\n"
350 "}\n"
351 "\n"
352 "\n"
353 "// Synchronization functions\n"
354 "\n"
355 "#ifdef COMPUTE_SHADER\n"
356 "\n"
357 "// https://www.opengl.org/wiki/Memory_Model#Incoherent_memory_access\n"
358 "\n"
359 "// MSDN: GroupMemoryBarrier() blocks execution of all threads \n"
360 "// in a group until all group SHARED accesses have been completed.\n"
361 "void GroupMemoryBarrier()\n"
362 "{\n"
363 " // OpenGL.org: groupMemoryBarrier() waits on the completion of all memory accesses \n"
364 " // performed by an invocation of a compute shader relative to the same access performed \n"
365 " // by other invocations in the same work group and then returns with no other effect.\n"
366 "\n"
367 " // groupMemoryBarrier() acts like memoryBarrier(), ordering memory writes for all kinds \n"
368 " // of variables, but it only orders read/writes for the current work group.\n"
369 " groupMemoryBarrier();\n"
370 "\n"
371 " // OpenGL.org: memoryBarrierShared() waits on the completion of \n"
372 " // all memory accesses resulting from the use of SHARED variables\n"
373 " // and then returns with no other effect. \n"
374 " memoryBarrierShared();\n"
375 "}\n"
376 "\n"
377 "// MSDN: GroupMemoryBarrierWithGroupSync() blocks execution of all \n"
378 "// threads in a group until all memory accesses have been completed \n"
379 "// and all threads in the group have reached this call.\n"
380 "void GroupMemoryBarrierWithGroupSync()\n"
381 "{\n"
382 " // Issue memory barrier first!\n"
383 " GroupMemoryBarrier();\n"
384 " barrier();\n"
385 "}\n"
386 "\n"
387 "// MSDN: DeviceMemoryBarrier() blocks execution of all threads \n"
388 "// in a group until all device memory accesses have been completed.\n"
389 "void DeviceMemoryBarrier()\n"
390 "{\n"
391 " // Call all memory barriers except for shared memory\n"
392 " \n"
393 " // Do we need to call groupMemoryBarrier() ????? \n"
394 "\n"
395 " // OpenGL.org: memoryBarrierBuffer() waits on the completion of \n"
396 " // all memory accesses resulting from the use of BUFFER variables \n"
397 " // and then returns with no other effect\n"
398 " memoryBarrierBuffer();\n"
399 "\n"
400 " // OpenGL.org: memoryBarrierImage() waits on the completion of all \n"
401 " // memory accesses resulting from the use of IMAGE variables and then \n"
402 " // returns with no other effect. \n"
403 " memoryBarrierImage();\n"
404 "\n"
405 " // OpenGL.org: memoryBarrierAtomicCounter() waits on the completion of \n"
406 " // all accesses resulting from the use of ATOMIC COUNTERS and then returns \n"
407 " // with no other effect. \n"
408 " memoryBarrierAtomicCounter();\n"
409 "}\n"
410 "\n"
411 "// MSDN: DeviceMemoryBarrierWithGroupSync() blocks execution of \n"
412 "// all threads in a group until all device memory accesses have \n"
413 "// been completed and all threads in the group have reached this call.\n"
414 "void DeviceMemoryBarrierWithGroupSync()\n"
415 "{\n"
416 " DeviceMemoryBarrier();\n"
417 " barrier();\n"
418 "}\n"
419 "\n"
420 "// MSDN: AllMemoryBarrier() blocks execution of all threads in a \n"
421 "// group until all memory accesses have been completed.\n"
422 "void AllMemoryBarrier()\n"
423 "{\n"
424 " // OpenGL.org: memoryBarrier() waits on the completion of ALL \n"
425 " // memory accesses resulting from the use of IMAGE variables or \n"
426 " // ATOMIC COUNTERS and then returns with no other effect.\n"
427 " memoryBarrier();\n"
428 " // NOTE: nothing is said about buffer memory and shared memory,\n"
429 " // so call memoryBarrierBuffer() and memoryBarrierShared() for safety\n"
430 "\n"
431 " // OpenGL.org: memoryBarrierBuffer() waits on the completion of \n"
432 " // all memory accesses resulting from the use of BUFFER variables \n"
433 " // and then returns with no other effect\n"
434 " memoryBarrierBuffer();\n"
435 "\n"
436 " // OpenGL.org: memoryBarrierShared() waits on the completion of \n"
437 " // all memory accesses resulting from the use of SHARED variables\n"
438 " // and then returns with no other effect. \n"
439 " memoryBarrierShared();\n"
440 "\n"
441 " // Call all memory barrier functions. They should have no effect\n"
442 " // if everything is synchronized.\n"
443 " \n"
444 " // OpenGL.org: memoryBarrierImage() waits on the completion of all \n"
445 " // memory accesses resulting from the use of IMAGE variables and then \n"
446 " // returns with no other effect. \n"
447 " memoryBarrierImage();\n"
448 "\n"
449 " // OpenGL.org: memoryBarrierAtomicCounter() waits on the completion of \n"
450 " // all accesses resulting from the use of ATOMIC COUNTERS and then returns \n"
451 " // with no other effect. \n"
452 " memoryBarrierAtomicCounter();\n"
453 "\n"
454 " // groupMemoryBarrier waits on the completion of all memory accesses performed \n"
455 " // by an invocation of a compute shader relative to the same access performed by \n"
456 " // other invocations in the same work group and then returns with no other effect.\n"
457 " groupMemoryBarrier();\n"
458 "}\n"
459 "\n"
460 "// MSDN: AllMemoryBarrierWithGroupSync() blocks execution of all \n"
461 "// threads in a group until all memory accesses have been completed \n"
462 "// and all threads in the group have reached this call.\n"
463 "void AllMemoryBarrierWithGroupSync()\n"
464 "{\n"
465 " AllMemoryBarrier();\n"
466 " barrier();\n"
467 "}\n"
468 "\n"
469 "#else\n"
470 "\n"
471 "void AllMemoryBarrier(){}\n"
472 "void AllMemoryBarrierWithGroupSync(){}\n"
473 "void DeviceMemoryBarrier(){}\n"
474 "void DeviceMemoryBarrierWithGroupSync(){}\n"
475 "void GroupMemoryBarrier(){}\n"
476 "void GroupMemoryBarrierWithGroupSync(){}\n"
477 "\n"
478 "#endif\n"
479 "\n"
480 "\n"
481 "// Type conversion functions\n"
482 "\n"
483 "vec4 _ExpandVector( float x ){ return vec4( x, x, x, x ); }\n"
484 "vec4 _ExpandVector( vec2 f2 ){ return vec4( f2.x, f2.y, 0.0, 0.0 ); }\n"
485 "vec4 _ExpandVector( vec3 f3 ){ return vec4( f3.x, f3.y, f3.z, 0.0 ); }\n"
486 "vec4 _ExpandVector( vec4 f4 ){ return vec4( f4.x, f4.y, f4.z, f4.w ); }\n"
487 "\n"
488 "ivec4 _ExpandVector( int x ){ return ivec4( x, x, x, x ); }\n"
489 "ivec4 _ExpandVector( ivec2 i2 ){ return ivec4( i2.x, i2.y, 0, 0 ); }\n"
490 "ivec4 _ExpandVector( ivec3 i3 ){ return ivec4( i3.x, i3.y, i3.z, 0 ); }\n"
491 "ivec4 _ExpandVector( ivec4 i4 ){ return ivec4( i4.x, i4.y, i4.z, i4.w ); }\n"
492 "\n"
493 "uvec4 _ExpandVector( uint x ){ return uvec4( x, x, x, x ); }\n"
494 "uvec4 _ExpandVector( uvec2 u2 ){ return uvec4( u2.x, u2.y, 0u, 0u ); }\n"
495 "uvec4 _ExpandVector( uvec3 u3 ){ return uvec4( u3.x, u3.y, u3.z, 0u ); }\n"
496 "uvec4 _ExpandVector( uvec4 u4 ){ return uvec4( u4.x, u4.y, u4.z, u4.w ); }\n"
497 "\n"
498 "bvec4 _ExpandVector( bool x ){ return bvec4( x, x, x, x ); }\n"
499 "bvec4 _ExpandVector( bvec2 b2 ){ return bvec4( b2.x, b2.y, false, false ); }\n"
500 "bvec4 _ExpandVector( bvec3 b3 ){ return bvec4( b3.x, b3.y, b3.z, false ); }\n"
501 "bvec4 _ExpandVector( bvec4 b4 ){ return bvec4( b4.x, b4.y, b4.z, b4.w ); }\n"
502 "\n"
503 "void _ResizeVector(out vec4 outVec4, in vec4 inVec4){outVec4 = inVec4;}\n"
504 "void _ResizeVector(out vec3 outVec3, in vec4 inVec4){outVec3 = inVec4.xyz;}\n"
505 "void _ResizeVector(out vec2 outVec2, in vec4 inVec4){outVec2 = inVec4.xy;}\n"
506 "void _ResizeVector(out float outFlt, in vec4 inVec4){outFlt = inVec4.x;}\n"
507 "\n"
508 "void _ResizeVector(out vec4 outVec4, in vec3 inVec3){outVec4 = vec4(inVec3, 0.0);}\n"
509 "void _ResizeVector(out vec3 outVec3, in vec3 inVec3){outVec3 = inVec3;}\n"
510 "void _ResizeVector(out vec2 outVec2, in vec3 inVec3){outVec2 = inVec3.xy;}\n"
511 "void _ResizeVector(out float outFlt, in vec3 inVec3){outFlt = inVec3.x;}\n"
512 "\n"
513 "void _ResizeVector(out vec4 outVec4, in vec2 inVec2){outVec4 = vec4(inVec2, 0.0, 0.0);}\n"
514 "void _ResizeVector(out vec3 outVec3, in vec2 inVec2){outVec3 = vec3(inVec2, 0.0);}\n"
515 "void _ResizeVector(out vec2 outVec2, in vec2 inVec2){outVec2 = inVec2;}\n"
516 "void _ResizeVector(out float outFlt, in vec2 inVec2){outFlt = inVec2.x;}\n"
517 "\n"
518 "void _ResizeVector(out vec4 outVec4, in float v){outVec4 = vec4(v, 0.0, 0.0, 0.0);}\n"
519 "void _ResizeVector(out vec3 outVec3, in float v){outVec3 = vec3(v, 0.0, 0.0);}\n"
520 "void _ResizeVector(out vec2 outVec2, in float v){outVec2 = vec2(v, 0.0);}\n"
521 "void _ResizeVector(out float outFlt, in float v){outFlt = v;}\n"
522 "\n"
523 "\n"
524 "void _TypeConvertStore( out float Dst, in int Src ){ Dst = float( Src ); }\n"
525 "void _TypeConvertStore( out float Dst, in uint Src ){ Dst = float( Src ); }\n"
526 "void _TypeConvertStore( out float Dst, in float Src ){ Dst = float( Src ); }\n"
527 "void _TypeConvertStore( out uint Dst, in int Src ){ Dst = uint( Src ); }\n"
528 "void _TypeConvertStore( out uint Dst, in uint Src ){ Dst = uint( Src ); }\n"
529 "void _TypeConvertStore( out uint Dst, in float Src ){ Dst = uint( Src ); }\n"
530 "void _TypeConvertStore( out int Dst, in int Src ){ Dst = int( Src ); }\n"
531 "void _TypeConvertStore( out int Dst, in uint Src ){ Dst = int( Src ); }\n"
532 "void _TypeConvertStore( out int Dst, in float Src ){ Dst = int( Src ); }\n"
533 "\n"
534 "int _ToInt( int x ) { return int(x); }\n"
535 "int _ToInt( uint x ) { return int(x); }\n"
536 "int _ToInt( float x ){ return int(x); }\n"
537 "int _ToInt( bool x ) { return x ? 1 : 0; }\n"
538 "\n"
539 "float _ToFloat( int x ) { return float(x); }\n"
540 "float _ToFloat( uint x ) { return float(x); }\n"
541 "float _ToFloat( float x ){ return float(x); }\n"
542 "float _ToFloat( bool x ) { return x ? 1.0 : 0.0;}\n"
543 "\n"
544 "uint _ToUint( int x ) { return uint(x); }\n"
545 "uint _ToUint( uint x ) { return uint(x); }\n"
546 "uint _ToUint( float x ){ return uint(x); }\n"
547 "uint _ToUint( bool x ) { return x ? 1u : 0u; }\n"
548 "\n"
549 "bool _ToBool( int x ) { return x != 0 ? true : false; }\n"
550 "bool _ToBool( uint x ) { return x != 0u ? true : false; }\n"
551 "bool _ToBool( float x ){ return x != 0.0 ? true : false; }\n"
552 "bool _ToBool( bool x ) { return x; }\n"
553 "\n"
554 "#define _ToVec2(x,y) vec2(_ToFloat(x), _ToFloat(y))\n"
555 "#define _ToVec3(x,y,z) vec3(_ToFloat(x), _ToFloat(y), _ToFloat(z))\n"
556 "#define _ToVec4(x,y,z,w) vec4(_ToFloat(x), _ToFloat(y), _ToFloat(z), _ToFloat(w))\n"
557 "\n"
558 "#define _ToIvec2(x,y) ivec2(_ToInt(x), _ToInt(y))\n"
559 "#define _ToIvec3(x,y,z) ivec3(_ToInt(x), _ToInt(y), _ToInt(z))\n"
560 "#define _ToIvec4(x,y,z,w) ivec4(_ToInt(x), _ToInt(y), _ToInt(z), _ToInt(w))\n"
561 "\n"
562 "#define _ToUvec2(x,y) uvec2(_ToUint(x), _ToUint(y))\n"
563 "#define _ToUvec3(x,y,z) uvec3(_ToUint(x), _ToUint(y), _ToUint(z))\n"
564 "#define _ToUvec4(x,y,z,w) uvec4(_ToUint(x), _ToUint(y), _ToUint(z), _ToUint(w))\n"
565 "\n"
566 "#define _ToBvec2(x,y) bvec2(_ToBool(x), _ToBool(y))\n"
567 "#define _ToBvec3(x,y,z) bvec3(_ToBool(x), _ToBool(y), _ToBool(z))\n"
568 "#define _ToBvec4(x,y,z,w) bvec4(_ToBool(x), _ToBool(y), _ToBool(z), _ToBool(w))\n"
569 "\n"
570 "\n"
571 "int _ToIvec( uint u1 ){ return _ToInt( u1 ); }\n"
572 "ivec2 _ToIvec( uvec2 u2 ){ return _ToIvec2( u2.x, u2.y ); }\n"
573 "ivec3 _ToIvec( uvec3 u3 ){ return _ToIvec3( u3.x, u3.y, u3.z ); }\n"
574 "ivec4 _ToIvec( uvec4 u4 ){ return _ToIvec4( u4.x, u4.y, u4.z, u4.w ); }\n"
575 "\n"
576 "int _ToIvec( int i1 ){ return i1; }\n"
577 "ivec2 _ToIvec( ivec2 i2 ){ return i2; }\n"
578 "ivec3 _ToIvec( ivec3 i3 ){ return i3; }\n"
579 "ivec4 _ToIvec( ivec4 i4 ){ return i4; }\n"
580 "\n"
581 "int _ToIvec( float f1 ){ return _ToInt( f1 ); }\n"
582 "ivec2 _ToIvec( vec2 f2 ){ return _ToIvec2( f2.x, f2.y ); }\n"
583 "ivec3 _ToIvec( vec3 f3 ){ return _ToIvec3( f3.x, f3.y, f3.z ); }\n"
584 "ivec4 _ToIvec( vec4 f4 ){ return _ToIvec4( f4.x, f4.y, f4.z, f4.w ); }\n"
585 "\n"
586 "\n"
587 "float _ToVec( uint u1 ){ return _ToFloat(u1); }\n"
588 "vec2 _ToVec( uvec2 u2 ){ return _ToVec2( u2.x, u2.y ); }\n"
589 "vec3 _ToVec( uvec3 u3 ){ return _ToVec3( u3.x, u3.y, u3.z ); }\n"
590 "vec4 _ToVec( uvec4 u4 ){ return _ToVec4( u4.x, u4.y, u4.z, u4.w ); }\n"
591 " \n"
592 "float _ToVec( int i1 ){ return _ToFloat(i1); }\n"
593 "vec2 _ToVec( ivec2 i2 ){ return _ToVec2( i2.x, i2.y ); }\n"
594 "vec3 _ToVec( ivec3 i3 ){ return _ToVec3( i3.x, i3.y, i3.z ); }\n"
595 "vec4 _ToVec( ivec4 i4 ){ return _ToVec4( i4.x, i4.y, i4.z, i4.w ); }\n"
596 " \n"
597 "float _ToVec( float f1 ){ return f1; }\n"
598 "vec2 _ToVec( vec2 f2 ){ return f2; }\n"
599 "vec3 _ToVec( vec3 f3 ){ return f3; }\n"
600 "vec4 _ToVec( vec4 f4 ){ return f4; }\n"
601 "\n"
602 "\n"
603 "uint _ToUvec( uint u1 ){ return u1; }\n"
604 "uvec2 _ToUvec( uvec2 u2 ){ return u2; }\n"
605 "uvec3 _ToUvec( uvec3 u3 ){ return u3; }\n"
606 "uvec4 _ToUvec( uvec4 u4 ){ return u4; }\n"
607 " \n"
608 "uint _ToUvec( int i1 ){ return _ToUint( i1 ); }\n"
609 "uvec2 _ToUvec( ivec2 i2 ){ return _ToUvec2( i2.x, i2.y ); }\n"
610 "uvec3 _ToUvec( ivec3 i3 ){ return _ToUvec3( i3.x, i3.y, i3.z ); }\n"
611 "uvec4 _ToUvec( ivec4 i4 ){ return _ToUvec4( i4.x, i4.y, i4.z, i4.w ); }\n"
612 " \n"
613 "uint _ToUvec( float f1 ){ return _ToUint( f1 ); }\n"
614 "uvec2 _ToUvec( vec2 f2 ){ return _ToUvec2( f2.x, f2.y ); }\n"
615 "uvec3 _ToUvec( vec3 f3 ){ return _ToUvec3( f3.x, f3.y, f3.z ); }\n"
616 "uvec4 _ToUvec( vec4 f4 ){ return _ToUvec4( f4.x, f4.y, f4.z, f4.w ); }\n"
617 "\n"
618 "\n"
619 "// TEXTURE FUNCTION STUB MACROS\n"
620 "// https://www.opengl.org/wiki/Sampler_(GLSL)\n"
621 "\n"
622 "\n"
623 "// Texture size queries\n"
624 "// https://www.opengl.org/sdk/docs/man/html/textureSize.xhtml\n"
625 "// textureSize returns the dimensions of level lod (if present) of the texture bound to sampler. \n"
626 "// The components in the return value are filled in, in order, with the width, height and depth \n"
627 "// of the texture. For the array forms, the last component of the return value is the number of \n"
628 "// layers in the texture array.\n"
629 "\n"
630 "//#if !(defined(DESKTOP_GL) && __VERSION__ >= 430)\n"
631 "# define textureQueryLevels(x) 0 // Only supported on 4.3+\n"
632 "//#endif\n"
633 "\n"
634 "#define GetTex1DDimensions_1(Sampler, Width)\\\n"
635 "{ \\\n"
636 " _TypeConvertStore( Width, textureSize(Sampler, 0) );\\\n"
637 "}\n"
638 "\n"
639 "#define GetTex1DDimensions_3(Sampler, MipLevel, Width, NumberOfMipLevels)\\\n"
640 "{ \\\n"
641 " _TypeConvertStore( Width, textureSize(Sampler, _ToInt(MipLevel)) ); \\\n"
642 " _TypeConvertStore( NumberOfMipLevels, textureQueryLevels(Sampler) ); \\\n"
643 "}\n"
644 "\n"
645 "#define GetTex1DArrDimensions_2(Sampler, Width, Elements)\\\n"
646 "{ \\\n"
647 " ivec2 i2Size = textureSize(Sampler, 0); \\\n"
648 " _TypeConvertStore( Width, i2Size.x );\\\n"
649 " _TypeConvertStore( Elements, i2Size.y );\\\n"
650 "}\n"
651 "\n"
652 "#define GetTex1DArrDimensions_4(Sampler, MipLevel, Width, Elements, NumberOfMipLevels)\\\n"
653 "{ \\\n"
654 " ivec2 i2Size = textureSize(Sampler, _ToInt(MipLevel)); \\\n"
655 " _TypeConvertStore( Width, i2Size.x ); \\\n"
656 " _TypeConvertStore( Elements, i2Size.y ); \\\n"
657 " _TypeConvertStore( NumberOfMipLevels, textureQueryLevels(Sampler) );\\\n"
658 "}\n"
659 "\n"
660 "#define GetTex2DDimensions_2(Sampler, Width, Height)\\\n"
661 "{ \\\n"
662 " ivec2 i2Size = textureSize(Sampler, 0); \\\n"
663 " _TypeConvertStore( Width, i2Size.x ); \\\n"
664 " _TypeConvertStore( Height, i2Size.y ); \\\n"
665 "}\n"
666 "\n"
667 "#define GetTex2DDimensions_4(Sampler, MipLevel, Width, Height, NumberOfMipLevels)\\\n"
668 "{ \\\n"
669 " ivec2 i2Size = textureSize(Sampler, _ToInt(MipLevel) ); \\\n"
670 " _TypeConvertStore( Width, i2Size.x ); \\\n"
671 " _TypeConvertStore( Height, i2Size.y ); \\\n"
672 " _TypeConvertStore( NumberOfMipLevels, textureQueryLevels(Sampler) );\\\n"
673 "}\n"
674 "\n"
675 "#define GetTex2DArrDimensions_3(Sampler, Width, Height, Elements)\\\n"
676 "{ \\\n"
677 " ivec3 i3Size = textureSize(Sampler, 0); \\\n"
678 " _TypeConvertStore( Width, i3Size.x ); \\\n"
679 " _TypeConvertStore( Height, i3Size.y ); \\\n"
680 " _TypeConvertStore( Elements,i3Size.z ); \\\n"
681 "}\n"
682 "\n"
683 "#define GetTex2DArrDimensions_5(Sampler, MipLevel, Width, Height, Elements, NumberOfMipLevels)\\\n"
684 "{ \\\n"
685 " ivec3 i3Size = textureSize(Sampler, _ToInt(MipLevel)); \\\n"
686 " _TypeConvertStore( Width, i3Size.x ); \\\n"
687 " _TypeConvertStore( Height, i3Size.y ); \\\n"
688 " _TypeConvertStore( Elements, i3Size.z ); \\\n"
689 " _TypeConvertStore( NumberOfMipLevels, textureQueryLevels(Sampler) );\\\n"
690 "}\n"
691 "\n"
692 "#define GetTex3DDimensions_3(Sampler, Width, Height, Depth)\\\n"
693 "{ \\\n"
694 " ivec3 i3Size = textureSize(Sampler, 0); \\\n"
695 " _TypeConvertStore( Width, i3Size.x ); \\\n"
696 " _TypeConvertStore( Height, i3Size.y ); \\\n"
697 " _TypeConvertStore( Depth, i3Size.z ); \\\n"
698 "}\n"
699 "\n"
700 "#define GetTex3DDimensions_5(Sampler, MipLevel, Width, Height, Depth, NumberOfMipLevels)\\\n"
701 "{ \\\n"
702 " ivec3 i3Size = textureSize(Sampler, _ToInt(MipLevel)); \\\n"
703 " _TypeConvertStore( Width, i3Size.x ); \\\n"
704 " _TypeConvertStore( Height, i3Size.y ); \\\n"
705 " _TypeConvertStore( Depth, i3Size.z ); \\\n"
706 " _TypeConvertStore( NumberOfMipLevels, textureQueryLevels(Sampler) );\\\n"
707 "}\n"
708 "\n"
709 "#define GetTex2DMSDimensions_3(Sampler, Width, Height, NumberOfSamples)\\\n"
710 "{ \\\n"
711 " ivec2 i2Size = textureSize(Sampler); \\\n"
712 " _TypeConvertStore( Width, i2Size.x ); \\\n"
713 " _TypeConvertStore( Height, i2Size.y ); \\\n"
714 " _TypeConvertStore( NumberOfSamples, 0 );\\\n"
715 "}\n"
716 "\n"
717 "#define GetTex2DMSArrDimensions_4(Sampler, Width, Height, Elements, NumberOfSamples)\\\n"
718 "{ \\\n"
719 " ivec3 i3Size = textureSize(Sampler); \\\n"
720 " _TypeConvertStore( Width, i3Size.x );\\\n"
721 " _TypeConvertStore( Height, i3Size.y );\\\n"
722 " _TypeConvertStore( Elements, i3Size.z );\\\n"
723 " _TypeConvertStore( NumberOfSamples, 0 );\\\n"
724 "}\n"
725 "\n"
726 "\n"
727 "// https://www.opengl.org/sdk/docs/man/html/imageSize.xhtml\n"
728 "// imageSize returns the dimensions of the image bound to image. The components in the \n"
729 "// return value are filled in, in order, with the width, height and depth of the image. \n"
730 "// For the array forms, the last component of the return value is the number of layers \n"
731 "// in the texture array.\n"
732 "\n"
733 "#define GetRWTex1DDimensions_1(Tex, Width)\\\n"
734 "{ \\\n"
735 " _TypeConvertStore( Width, imageSize(Tex) ); \\\n"
736 "}\n"
737 "\n"
738 "#define GetRWTex1DArrDimensions_2(Tex, Width, Elements)\\\n"
739 "{ \\\n"
740 " ivec2 i2Size = imageSize(Tex); \\\n"
741 " _TypeConvertStore( Width, i2Size.x ); \\\n"
742 " _TypeConvertStore( Elements, i2Size.y ); \\\n"
743 "}\n"
744 "\n"
745 "#define GetRWTex2DDimensions_2(Tex, Width, Height)\\\n"
746 "{ \\\n"
747 " ivec2 i2Size = imageSize(Tex); \\\n"
748 " _TypeConvertStore( Width, i2Size.x ); \\\n"
749 " _TypeConvertStore( Height, i2Size.y ); \\\n"
750 "}\n"
751 "\n"
752 "#define GetRWTex2DArrDimensions_3(Tex, Width, Height, Elements)\\\n"
753 "{ \\\n"
754 " ivec3 i3Size = imageSize(Tex); \\\n"
755 " _TypeConvertStore( Width, i3Size.x );\\\n"
756 " _TypeConvertStore( Height, i3Size.y );\\\n"
757 " _TypeConvertStore( Elements, i3Size.z );\\\n"
758 "}\n"
759 "\n"
760 "#define GetRWTex3DDimensions_3(Tex, Width, Height, Depth)\\\n"
761 "{ \\\n"
762 " ivec3 i3Size = imageSize(Tex); \\\n"
763 " _TypeConvertStore( Width, i3Size.x ); \\\n"
764 " _TypeConvertStore( Height, i3Size.y ); \\\n"
765 " _TypeConvertStore( Depth, i3Size.z ); \\\n"
766 "}\n"
767 "\n"
768 "\n"
769 "\n"
770 "// Texture sampling operations\n"
771 "\n"
772 "\n"
773 "// IMPORTANT NOTE ABOUT OFFSET\n"
774 "// Offset parameter to all texture sampling functions must be a constant expression.\n"
775 "// If it is not, the shader will be successfully compiled, HOWEVER the value of Offset \n"
776 "// will silently be zero. \n"
777 "//\n"
778 "// A constant expression in GLSL is defined as follows:\n"
779 "// * A literal value.\n"
780 "// * A const-qualified variable with an explicit initializer (so not a function parameter).\n"
781 "// * The result of the length() function of an array, but only if the array has an explicit size.\n"
782 "// * The result of most operators, so long as all the operands are themselves constant expressions. \n"
783 "// The operators not on this list are any assignment operators (+= and so forth), and the comma operator.\n"
784 "// * The result of a constructor for a type, but only if all of the arguments to the constructor are \n"
785 "// themselves constant expressions.\n"
786 "// * The return value of any built-in function, but only if all of the arguments to the function are \n"
787 "// themselves constant expressions. Opaque Types are never constant expressions. Note that the \n"
788 "// functions dFdx, dFdy, and fwidth will return 0, when used in a context that requires a constant \n"
789 "// expression (such as a const variable initializer).\n"
790 "// \n"
791 "// The list above does not include return value of a function, even when the value is compile-time expression.\n"
792 "// As a result, we cannot use type conversion functions for Offset parameter.\n"
793 "\n"
794 "// In all texture sampling functions, the last component of Coords is used as Dsub and the array layer is specified \n"
795 "// in the second to last component of Coords. (The second component of Coords is unused for 1D shadow lookups.)\n"
796 "// For cube array textures, Dsub is specified as a separate parameter\n"
797 "// mip\n"
798 "#define SampleCmpLevel0Tex1D_3(Tex, Sampler, Coords, CompareValue) textureLod(Tex, _ToVec3((Coords).x, 0.0, CompareValue), 0.0)\n"
799 "#define SampleCmpLevel0Tex1DArr_3(Tex, Sampler, Coords, CompareValue) textureLod(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue), 0.0)\n"
800 "#define SampleCmpLevel0Tex2D_3(Tex, Sampler, Coords, CompareValue) textureLod(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue), 0.0)\n"
801 "#define SampleCmpLevel0Tex2DArr_3(Tex, Sampler, Coords, CompareValue) 0.0 // No textureLod for sampler2DArrayShadow\n"
802 "#define SampleCmpLevel0TexCube_3(Tex, Sampler, Coords, CompareValue) 0.0 // No textureLod for samplerCubeShadow\n"
803 "#define SampleCmpLevel0TexCubeArr_3(Tex, Sampler, Coords, CompareValue) 0.0 // No textureLod for samplerCubeArrayShadow\n"
804 "\n"
805 "// mip\n"
806 "#define SampleCmpLevel0Tex1D_4(Tex, Sampler, Coords, CompareValue, Offset) textureLodOffset(Tex, _ToVec3((Coords).x, 0.0, CompareValue), 0.0, int(Offset))\n"
807 "#define SampleCmpLevel0Tex1DArr_4(Tex, Sampler, Coords, CompareValue, Offset) textureLodOffset(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue), 0.0, int(Offset))\n"
808 "#define SampleCmpLevel0Tex2D_4(Tex, Sampler, Coords, CompareValue, Offset) textureLodOffset(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue), 0.0, ivec2((Offset).xy))\n"
809 "#define SampleCmpLevel0Tex2DArr_4(Tex, Sampler, Coords, CompareValue, Offset) 0.0 // No textureLodOffset for sampler2DArrayShadow\n"
810 "\n"
811 "\n"
812 "// https://www.opengl.org/sdk/docs/man/html/texture.xhtml - note: there are many mistakes on the page\n"
813 "#ifdef FRAGMENT_SHADER\n"
814 "\n"
815 "# define Sample_2(Tex, Sampler, Coords) texture (Tex, _ToVec(Coords))\n"
816 "# define Sample_3(Tex, Sampler, Coords, Offset) textureOffset(Tex, _ToVec(Coords), Offset)\n"
817 "# define SampleBias_3(Tex, Sampler, Coords, Bias) texture (Tex, _ToVec(Coords), _ToFloat(Bias))\n"
818 "# define SampleBias_4(Tex, Sampler, Coords, Bias, Offset) textureOffset(Tex, _ToVec(Coords), Offset, _ToFloat(Bias))\n"
819 "\n"
820 "# define SampleCmpTex1D_3(Tex, Sampler, Coords, CompareValue) texture(Tex, _ToVec3((Coords).x, 0.0, CompareValue))\n"
821 "# define SampleCmpTex1DArr_3(Tex, Sampler, Coords, CompareValue) texture(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue))\n"
822 "# define SampleCmpTex2D_3(Tex, Sampler, Coords, CompareValue) texture(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue))\n"
823 "# define SampleCmpTex2DArr_3(Tex, Sampler, Coords, CompareValue) texture(Tex, _ToVec4((Coords).x, (Coords).y, (Coords).z, CompareValue))\n"
824 "# define SampleCmpTexCube_3(Tex, Sampler, Coords, CompareValue) texture(Tex, _ToVec4((Coords).x, (Coords).y, (Coords).z, CompareValue))\n"
825 "# define SampleCmpTexCubeArr_3(Tex, Sampler, Coords, CompareValue) texture(Tex, _ToVec4((Coords).x, (Coords).y, (Coords).z, (Coords).w), _ToFloat(CompareValue))\n"
826 "\n"
827 "# define SampleCmpTex1D_4(Tex, Sampler, Coords, CompareValue, Offset) textureOffset(Tex, _ToVec3((Coords).x, 0.0, CompareValue), int(Offset))\n"
828 "# define SampleCmpTex1DArr_4(Tex, Sampler, Coords, CompareValue, Offset) textureOffset(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue), int(Offset))\n"
829 "# define SampleCmpTex2D_4(Tex, Sampler, Coords, CompareValue, Offset) textureOffset(Tex, _ToVec3((Coords).x, (Coords).y, CompareValue), ivec2((Offset).xy))\n"
830 "# define SampleCmpTex2DArr_4(Tex, Sampler, Coords, CompareValue, Offset) textureOffset(Tex, _ToVec4((Coords).x, (Coords).y, (Coords).z, CompareValue), ivec2((Offset).xy))\n"
831 "\n"
832 "#else\n"
833 "\n"
834 "// Derivatives are only available in fragment shader. GLSL compiler fails when it\n"
835 "// encounters texture() or textureOffset() instructions in other types of shaders. So\n"
836 "// to let the shader be compiled and to have something meaningful, replace such operations\n"
837 "// with textureLod() and textureLodOffset()\n"
838 "\n"
839 "# define Sample_2(Tex, Sampler, Coords) textureLod (Tex, _ToVec(Coords), 0.0)\n"
840 "# define Sample_3(Tex, Sampler, Coords, Offset) textureLodOffset(Tex, _ToVec(Coords), 0.0, Offset)\n"
841 "# define SampleBias_3(Tex, Sampler, Coords, Bias) textureLod (Tex, _ToVec(Coords), 0.0 + _ToFloat(Bias))\n"
842 "# define SampleBias_4(Tex, Sampler, Coords, Bias, Offset) textureLodOffset(Tex, _ToVec(Coords), 0.0 + _ToFloat(Bias), Offset)\n"
843 "\n"
844 "# define SampleCmpTex1D_3 SampleCmpLevel0Tex1D_3\n"
845 "# define SampleCmpTex1DArr_3 SampleCmpLevel0Tex1DArr_3\n"
846 "# define SampleCmpTex2D_3 SampleCmpLevel0Tex2D_3\n"
847 "# define SampleCmpTex2DArr_3 SampleCmpLevel0Tex2DArr_3\n"
848 "# define SampleCmpTexCube_3 SampleCmpLevel0TexCube_3\n"
849 "# define SampleCmpTexCubeArr_3 SampleCmpLevel0TexCubeArr_3\n"
850 " \n"
851 "# define SampleCmpTex1D_4 SampleCmpLevel0Tex1D_4\n"
852 "# define SampleCmpTex1DArr_4 SampleCmpLevel0Tex1DArr_4\n"
853 "# define SampleCmpTex2D_4 SampleCmpLevel0Tex2D_4\n"
854 "# define SampleCmpTex2DArr_4 SampleCmpLevel0Tex2DArr_4\n"
855 "\n"
856 "#endif\n"
857 "\n"
858 "// https://www.opengl.org/sdk/docs/man/html/textureLod.xhtml\n"
859 "#define SampleLevel_3(Tex, Sampler, Coords, Level) textureLod (Tex, _ToVec(Coords), _ToFloat(Level))\n"
860 "#define SampleLevel_4(Tex, Sampler, Coords, Level, Offset) textureLodOffset(Tex, _ToVec(Coords), _ToFloat(Level), Offset)\n"
861 "\n"
862 "// https://www.opengl.org/sdk/docs/man/html/textureGrad.xhtml\n"
863 "#define SampleGrad_4(Tex, Sampler, Coords, DDX, DDY) textureGrad (Tex, _ToVec(Coords), _ToVec(DDX), _ToVec(DDY))\n"
864 "#define SampleGrad_5(Tex, Sampler, Coords, DDX, DDY, Offset) textureGradOffset(Tex, _ToVec(Coords), _ToVec(DDX), _ToVec(DDY), Offset)\n"
865 "\n"
866 "\n"
867 "// texelFetch performs a lookup of a single texel from texture coordinate P in the texture \n"
868 "// bound to sampler. The array layer is specified in the last component of P for array forms. \n"
869 "// The lod parameter (if present) specifies the level-of-detail from which the texel will be fetched. \n"
870 "// The sample specifies which sample within the texel will be returned when reading from a multi-sample texure.\n"
871 "\n"
872 "#define LoadTex1D_1(Tex, Location) texelFetch (Tex, _ToInt((Location).x), _ToInt((Location).y))\n"
873 "#define LoadTex1D_2(Tex, Location, Offset)texelFetchOffset(Tex, _ToInt((Location).x), _ToInt((Location).y), int(Offset))\n"
874 "#define LoadTex1DArr_1(Tex, Location) texelFetch (Tex, _ToIvec( (Location).xy), _ToInt((Location).z) )\n"
875 "#define LoadTex1DArr_2(Tex, Location, Offset)texelFetchOffset(Tex, _ToIvec( (Location).xy), _ToInt((Location).z), int(Offset))\n"
876 "#define LoadTex2D_1(Tex, Location) texelFetch (Tex, _ToIvec( (Location).xy), _ToInt((Location).z))\n"
877 "#define LoadTex2D_2(Tex, Location, Offset)texelFetchOffset(Tex, _ToIvec( (Location).xy), _ToInt((Location).z), ivec2( (Offset).xy) )\n"
878 "#define LoadTex2DArr_1(Tex, Location) texelFetch (Tex, _ToIvec( (Location).xyz), _ToInt((Location).w) )\n"
879 "#define LoadTex2DArr_2(Tex, Location, Offset)texelFetchOffset(Tex, _ToIvec( (Location).xyz), _ToInt((Location).w), ivec2( (Offset).xy))\n"
880 "#define LoadTex3D_1(Tex, Location) texelFetch (Tex, _ToIvec( (Location).xyz), _ToInt((Location).w))\n"
881 "#define LoadTex3D_2(Tex, Location, Offset)texelFetchOffset(Tex, _ToIvec( (Location).xyz), _ToInt((Location).w), ivec3( (Offset).xyz))\n"
882 "#define LoadTex2DMS_2(Tex, Location, Sample) texelFetch(Tex, _ToIvec( (Location).xy), _ToInt(Sample))\n"
883 "#define LoadTex2DMS_3(Tex, Location, Sample, Offset)texelFetch(Tex, _ToIvec2( (Location).x + (Offset).x, (Location).y + (Offset).y), int(Sample) ) // No texelFetchOffset for texture2DMS\n"
884 "#define LoadTex2DMSArr_2(Tex, Location, Sample) texelFetch(Tex, _ToIvec( (Location).xyz), _ToInt(Sample))\n"
885 "#define LoadTex2DMSArr_3(Tex, Location, Sample, Offset)texelFetch(Tex, _ToIvec3( (Location).x + (Offset).x, (Location).y + (Offset).y, (Location).z), int(Sample)) // No texelFetchOffset for texture2DMSArray\n"
886 "\n"
887 "//https://www.opengl.org/sdk/docs/man/html/imageLoad.xhtml\n"
888 "#define LoadRWTex1D_1(Tex, Location) imageLoad(Tex, _ToIvec((Location).x) )\n"
889 "#define LoadRWTex1DArr_1(Tex, Location) imageLoad(Tex, _ToIvec((Location).xy) )\n"
890 "#define LoadRWTex2D_1(Tex, Location) imageLoad(Tex, _ToIvec((Location).xy) )\n"
891 "#define LoadRWTex2DArr_1(Tex, Location) imageLoad(Tex, _ToIvec((Location).xyz) )\n"
892 "#define LoadRWTex3D_1(Tex, Location) imageLoad(Tex, _ToIvec((Location).xyz) )\n"
893 "\n"
894 "\n"
895 "#define Gather_2(Tex, Sampler, Location) textureGather (Tex, _ToVec(Location))\n"
896 "#define Gather_3(Tex, Sampler, Location, Offset)textureGatherOffset(Tex, _ToVec(Location), Offset)\n"
897 "\n"
898 "#define GatherCmp_3(Tex, Sampler, Location, CompareVal) textureGather (Tex, _ToVec(Location), _ToFloat(CompareVal))\n"
899 "#define GatherCmp_4(Tex, Sampler, Location, CompareVal, Offset)textureGatherOffset(Tex, _ToVec(Location), _ToFloat(CompareVal), Offset)\n"
900 "\n"
901 "// Atomic operations\n"
902 "#define InterlockedAddSharedVar_2(dest, value) atomicAdd(dest, value)\n"
903 "#define InterlockedAddSharedVar_3(dest, value, orig_val) orig_val = atomicAdd(dest, value)\n"
904 "#define InterlockedAddImage_2(img, coords, value) imageAtomicAdd(img, _ToIvec(coords), value)\n"
905 "#define InterlockedAddImage_3(img, coords, value, orig_val)orig_val = imageAtomicAdd(img, _ToIvec(coords), value)\n"
906 "\n"
907 "#define InterlockedAndSharedVar_2(dest, value) atomicAnd(dest, value)\n"
908 "#define InterlockedAndSharedVar_3(dest, value, orig_val) orig_val = atomicAnd(dest, value)\n"
909 "#define InterlockedAndImage_2(img, coords, value) imageAtomicAnd(img, _ToIvec(coords), value)\n"
910 "#define InterlockedAndImage_3(img, coords, value, orig_val)orig_val = imageAtomicAnd(img, _ToIvec(coords), value)\n"
911 "\n"
912 "#define InterlockedMaxSharedVar_2(dest, value) atomicMax(dest, value)\n"
913 "#define InterlockedMaxSharedVar_3(dest, value, orig_val) orig_val = atomicMax(dest, value)\n"
914 "#define InterlockedMaxImage_2(img, coords, value) imageAtomicMax(img, _ToIvec(coords), value)\n"
915 "#define InterlockedMaxImage_3(img, coords, value, orig_val)orig_val = imageAtomicMax(img, _ToIvec(coords), value)\n"
916 "\n"
917 "#define InterlockedMinSharedVar_2(dest, value) atomicMin(dest, value)\n"
918 "#define InterlockedMinSharedVar_3(dest, value, orig_val) orig_val = atomicMin(dest, value)\n"
919 "#define InterlockedMinImage_2(img, coords, value) imageAtomicMin(img, _ToIvec(coords), value)\n"
920 "#define InterlockedMinImage_3(img, coords, value, orig_val)orig_val = imageAtomicMin(img, _ToIvec(coords), value)\n"
921 "\n"
922 "#define InterlockedOrSharedVar_2(dest, value) atomicOr(dest, value)\n"
923 "#define InterlockedOrSharedVar_3(dest, value, orig_val) orig_val = atomicOr(dest, value)\n"
924 "#define InterlockedOrImage_2(img, coords, value) imageAtomicOr(img, _ToIvec(coords), value)\n"
925 "#define InterlockedOrImage_3(img, coords, value, orig_val)orig_val = imageAtomicOr(img, _ToIvec(coords), value)\n"
926 "\n"
927 "#define InterlockedXorSharedVar_2(dest, value) atomicXor(dest, value)\n"
928 "#define InterlockedXorSharedVar_3(dest, value, orig_val) orig_val = atomicXor(dest, value)\n"
929 "#define InterlockedXorImage_2(img, coords, value) imageAtomicXor(img, _ToIvec(coords), value)\n"
930 "#define InterlockedXorImage_3(img, coords, value, orig_val)orig_val = imageAtomicXor(img, _ToIvec(coords), value)\n"
931 "\n"
932 "// There is actually no InterlockedExchange() with 2 arguments\n"
933 "#define InterlockedExchangeSharedVar_2(dest, value) atomicExchange(dest, value)\n"
934 "#define InterlockedExchangeSharedVar_3(dest, value, orig_val) orig_val = atomicExchange(dest, value)\n"
935 "#define InterlockedExchangeImage_2(img, coords, value) imageAtomicExchange(img, _ToIvec(coords), value)\n"
936 "#define InterlockedExchangeImage_3(img, coords, value, orig_val)orig_val = imageAtomicExchange(img, _ToIvec(coords), value)\n"
937 "\n"
938 "//uint imageAtomicCompSwap( image img, IVec P, nint compare, nint data);\n"
939 "//void InterlockedCompareExchange( in R dest, in T compare_value, in T value, out T original_value);\n"
940 "#define InterlockedCompareExchangeSharedVar_4(dest, cmp_val, value, orig_val) orig_val = atomicCompSwap(dest, cmp_val, value)\n"
941 "#define InterlockedCompareExchangeImage_4(img, coords, cmp_val, value, orig_val) orig_val = imageAtomicCompSwap(img, _ToIvec(coords), cmp_val, value)\n"
942 "\n"
943 "#define InterlockedCompareStoreSharedVar_3(dest, cmp_val, value) atomicCompSwap(dest, cmp_val, value)\n"
944 "#define InterlockedCompareStoreImage_3(img, coords, cmp_val, value)imageAtomicCompSwap(img, _ToIvec(coords), cmp_val, value)\n"
945 "\n"
946 "\n"
947 "// Swizzling macros\n"
948 "#define _SWIZZLE0\n"
949 "#define _SWIZZLE1 .x\n"
950 "#define _SWIZZLE2 .xy\n"
951 "#define _SWIZZLE3 .xyz\n"
952 "#define _SWIZZLE4 .xyzw\n"
953 "\n"
954 "// Helper functions\n"
955 "\n"
956 "float2 NormalizedDeviceXYToTexUV( float2 f2ProjSpaceXY )\n"
957 "{\n"
958 " return float2(0.5,0.5) + float2(0.5,0.5) * f2ProjSpaceXY.xy;\n"
959 "}\n"
960 "\n"
961 "float NormalizedDeviceZToDepth(float fNDC_Z)\n"
962 "{\n"
963 " return fNDC_Z * 0.5 + 0.5; // [-1, +1] -> [0, 1]\n"
964 "}\n"
965 "\n"
966 "float DepthToNormalizedDeviceZ(float fDepth)\n"
967 "{\n"
968 " return fDepth * 2.0 - 1.0; // [0, 1] -> [-1, +1]\n"
969 "}\n"
970 "\n"
971 "#define F3NDC_XYZ_TO_UVD_SCALE float3(0.5, 0.5, 0.5)\n"
972 "\n"
973 "#define NDC_MIN_Z -1.0 // Minimal z in the normalized device space\n"
974 "\n"
975 "#define MATRIX_ELEMENT(mat, row, col) mat[col][row]\n"
976 "\n"
977 "// ---------------------------------- Vertex shader ----------------------------------\n"
978 "#ifdef VERTEX_SHADER\n"
979 "\n"
980 "#ifndef GL_ES\n"
981 "out gl_PerVertex\n"
982 "{\n"
983 " vec4 gl_Position;\n"
984 "};\n"
985 "#endif\n"
986 "\n"
987 "#define _GET_GL_VERTEX_ID(VertexId)_TypeConvertStore(VertexId, gl_VertexID)\n"
988 "#define _GET_GL_INSTANCE_ID(InstId)_TypeConvertStore(InstId, gl_InstanceID)\n"
989 "#define _SET_GL_POSITION(Pos)gl_Position=_ExpandVector(Pos)\n"
990 "\n"
991 "#endif\n"
992 "\n"
993 "\n"
994 "// --------------------------------- Fragment shader ---------------------------------\n"
995 "#ifdef FRAGMENT_SHADER\n"
996 "\n"
997 "#define _GET_GL_FRAG_COORD(FragCoord)_ResizeVector(FragCoord, gl_FragCoord)\n"
998 "#define _SET_GL_FRAG_DEPTH(Depth)_TypeConvertStore(gl_FragDepth, Depth)\n"
999 "\n"
1000 "#endif\n"
1001 "\n"
1002 "\n"
1003 "// --------------------------------- Geometry shader ---------------------------------\n"
1004 "#ifdef GEOMETRY_SHADER\n"
1005 "\n"
1006 "// ARB_separate_shader_objects requires built-in block gl_PerVertex to be redeclared before accessing its members\n"
1007 "// declaring gl_PointSize and gl_ClipDistance causes compilation error on Android\n"
1008 "in gl_PerVertex\n"
1009 "{\n"
1010 " vec4 gl_Position;\n"
1011 " //float gl_PointSize;\n"
1012 " //float gl_ClipDistance[];\n"
1013 "} gl_in[];\n"
1014 "\n"
1015 "out gl_PerVertex\n"
1016 "{\n"
1017 " vec4 gl_Position;\n"
1018 " //float gl_PointSize;\n"
1019 " //float gl_ClipDistance[];\n"
1020 "};\n"
1021 "\n"
1022 "#define _GET_GL_POSITION(Pos)_ResizeVector(Pos, gl_in[i].gl_Position)\n"
1023 "#define _GET_GL_PRIMITIVE_ID(PrimId)_TypeConvertStore(PrimId, gl_in[i].gl_PrimitiveIDIn)\n"
1024 "\n"
1025 "#define _SET_GL_POSITION(Pos)gl_Position=_ExpandVector(Pos)\n"
1026 "#define _SET_GL_LAYER(Layer)_TypeConvertStore(gl_Layer,Layer)\n"
1027 "\n"
1028 "#endif\n"
1029 "\n"
1030 "\n"
1031 "// --------------------------- Tessellation control shader ---------------------------\n"
1032 "#ifdef TESS_CONTROL_SHADER\n"
1033 "\n"
1034 "in gl_PerVertex\n"
1035 "{\n"
1036 " vec4 gl_Position;\n"
1037 " //float gl_PointSize;\n"
1038 " //float gl_ClipDistance[];\n"
1039 "} gl_in[gl_MaxPatchVertices];\n"
1040 "\n"
1041 "out gl_PerVertex\n"
1042 "{\n"
1043 " vec4 gl_Position;\n"
1044 " //float gl_PointSize;\n"
1045 " //float gl_ClipDistance[];\n"
1046 "} gl_out[];\n"
1047 "\n"
1048 "#define _GET_GL_INVOCATION_ID(InvocId)_TypeConvertStore(InvocId, gl_InvocationID)\n"
1049 "#define _GET_GL_PRIMITIVE_ID(PrimId)_TypeConvertStore(PrimId, gl_PrimitiveID)\n"
1050 "#define _GET_GL_POSITION(Pos)_ResizeVector(Pos, gl_in[i].gl_Position)\n"
1051 "\n"
1052 "#define _SET_GL_POSITION(Pos)gl_out[gl_InvocationID].gl_Position=_ExpandVector(Pos)\n"
1053 "#define _SET_GL_TESS_LEVEL_OUTER(OuterLevel)for(int i=0; i < OuterLevel.length(); ++i)gl_TessLevelOuter[i] = OuterLevel[i]\n"
1054 "\n"
1055 "void _SetGLTessLevelInner(float InnerLevel[2])\n"
1056 "{\n"
1057 " gl_TessLevelInner[0] = InnerLevel[0];\n"
1058 " gl_TessLevelInner[1] = InnerLevel[1];\n"
1059 "}\n"
1060 "void _SetGLTessLevelInner(float InnerLevel)\n"
1061 "{\n"
1062 " gl_TessLevelInner[0] = InnerLevel;\n"
1063 "}\n"
1064 "\n"
1065 "#endif\n"
1066 "\n"
1067 "\n"
1068 "// --------------------------- Tessellation evaluation shader ---------------------------\n"
1069 "#ifdef TESS_EVALUATION_SHADER\n"
1070 "\n"
1071 "in gl_PerVertex\n"
1072 "{\n"
1073 " vec4 gl_Position;\n"
1074 " //float gl_PointSize;\n"
1075 " //float gl_ClipDistance[];\n"
1076 "} gl_in[gl_MaxPatchVertices];\n"
1077 "\n"
1078 "out gl_PerVertex\n"
1079 "{\n"
1080 " vec4 gl_Position;\n"
1081 " //float gl_PointSize;\n"
1082 " //float gl_ClipDistance[];\n"
1083 "};\n"
1084 "\n"
1085 "#define _GET_GL_POSITION(Pos)_ResizeVector(Pos, gl_in[i].gl_Position)\n"
1086 "#define _GET_GL_TESS_LEVEL_OUTER(OuterLevel)for(int i=0; i < OuterLevel.length(); ++i)OuterLevel[i] = gl_TessLevelOuter[i]\n"
1087 "void _GetGLTessLevelInner(out float InnerLevel[2])\n"
1088 "{\n"
1089 " InnerLevel[0] = gl_TessLevelInner[0];\n"
1090 " InnerLevel[1] = gl_TessLevelInner[1];\n"
1091 "}\n"
1092 "void _GetGLTessLevelInner(out float InnerLevel)\n"
1093 "{\n"
1094 " InnerLevel = gl_TessLevelInner[0];\n"
1095 "}\n"
1096 "\n"
1097 "#define _GET_GL_TESS_COORD(TessCoord)_ResizeVector(TessCoord, gl_TessCoord)\n"
1098 "#define _GET_GL_PRIMITIVE_ID(PrimId)_TypeConvertStore(PrimId, gl_PrimitiveID)\n"
1099 "\n"
1100 "#define _SET_GL_POSITION(Pos)gl_Position=_ExpandVector(Pos)\n"
1101 "\n"
1102 "#endif\n"
1103 "\n"
1104 "\n"
1105 "// ---------------------------------- Compute shader ----------------------------------\n"
1106 "#ifdef COMPUTE_SHADER\n"
1107 "\n"
1108 "#define _GET_GL_GLOBAL_INVOCATION_ID(Type, InvocId)InvocId=Type(gl_GlobalInvocationID)\n"
1109 "#define _GET_GL_WORK_GROUP_ID(Type, GroupId)GroupId=Type(gl_WorkGroupID)\n"
1110 "#define _GET_GL_LOCAL_INVOCATION_ID(Type, InvocId)InvocId=Type(gl_LocalInvocationID)\n"
1111 "#define _GET_GL_LOCAL_INVOCATION_INDEX(Type, InvocInd)InvocInd=Type(gl_LocalInvocationIndex)\n"
1112 "\n"
1113 "#endif\n"
1114 "\n"
1115 "#endif // _GLSL_DEFINITIONS_\n"
+ + + + + diff --git a/doc/html/_g_l_stubs_8h_source.html b/doc/html/_g_l_stubs_8h_source.html new file mode 100644 index 00000000..1090961d --- /dev/null +++ b/doc/html/_g_l_stubs_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/GLStubs.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GLStubs.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 // Define unsupported formats for OpenGL ES
27 #ifndef GL_RGBA16
28 # define GL_RGBA16 0x805B
29 #endif
30 
31 #ifndef GL_RGBA16_SNORM
32 # define GL_RGBA16_SNORM 0x8F9B
33 #endif
34 
35 #ifndef GL_RG16
36 # define GL_RG16 0x822C
37 #endif
38 
39 #ifndef GL_RG16_SNORM
40 # define GL_RG16_SNORM 0x8F99
41 #endif
42 
43 #ifndef GL_R16
44 # define GL_R16 0x822A
45 #endif
46 
47 #ifndef GL_R16_SNORM
48 # define GL_R16_SNORM 0x8F98
49 #endif
50 
51 #ifndef GL_COMPRESSED_RGB_S3TC_DXT1_EXT
52 # define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
53 #endif
54 
55 #ifndef GL_COMPRESSED_SRGB_S3TC_DXT1_EXT
56 # define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
57 #endif
58 
59 #ifndef GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
60 # define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
61 #endif
62 
63 #ifndef GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
64 # define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
65 #endif
66 
67 #ifndef GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
68 # define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
69 #endif
70 
71 #ifndef GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
72 # define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
73 #endif
74 
75 #ifndef GL_COMPRESSED_RED_RGTC1
76 # define GL_COMPRESSED_RED_RGTC1 0x8DBB
77 #endif
78 
79 #ifndef GL_COMPRESSED_SIGNED_RED_RGTC1
80 # define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC
81 #endif
82 
83 #ifndef GL_COMPRESSED_RG_RGTC2
84 # define GL_COMPRESSED_RG_RGTC2 0x8DBD
85 #endif
86 
87 #ifndef GL_COMPRESSED_SIGNED_RG_RGTC2
88 # define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE
89 #endif
90 
91 #ifndef GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT
92 # define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F
93 #endif
94 
95 #ifndef GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT
96 # define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E
97 #endif
98 
99 #ifndef GL_COMPRESSED_RGBA_BPTC_UNORM
100 # define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C
101 #endif
102 
103 #ifndef GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM
104 # define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D
105 #endif
106 
107 #ifndef GL_UNSIGNED_SHORT_5_6_5_REV
108 # define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
109 #endif
110 
111 #ifndef GL_UNSIGNED_INT_10_10_10_2
112 # define GL_UNSIGNED_INT_10_10_10_2 0x8036
113 #endif
114 
115 #ifndef GL_UNSIGNED_SHORT_5_6_5_REV
116 # define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
117 #endif
118 
119 #ifndef GL_UNSIGNED_SHORT_1_5_5_5_REV
120 # define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
121 #endif
122 
123 // Define unsupported shaders
124 #ifndef GL_GEOMETRY_SHADER
125 # define GL_GEOMETRY_SHADER 0x8DD9
126 #endif
127 
128 #ifndef GL_TESS_CONTROL_SHADER
129 # define GL_TESS_CONTROL_SHADER 0x8E88
130 #endif
131 
132 #ifndef GL_TESS_EVALUATION_SHADER
133 # define GL_TESS_EVALUATION_SHADER 0x8E87
134 #endif
135 
136 // Define unsupported texture filtering modes
137 #ifndef GL_CLAMP_TO_BORDER
138 # define GL_CLAMP_TO_BORDER 0
139 #endif
140 
141 #ifndef GL_MIRROR_CLAMP_TO_EDGE
142 # define GL_MIRROR_CLAMP_TO_EDGE 0
143 #endif
144 
145 // Define unsupported bind points
146 #ifndef GL_DRAW_INDIRECT_BUFFER
147 # define GL_DRAW_INDIRECT_BUFFER 0x8F3F
148 #endif
149 
150 #ifndef GL_DISPATCH_INDIRECT_BUFFER
151 # define GL_DISPATCH_INDIRECT_BUFFER 0x90EE
152 #endif
153 
154 #ifndef GL_TEXTURE_1D_ARRAY
155 # define GL_TEXTURE_1D_ARRAY 0x8C18
156 #endif
157 
158 #ifndef GL_TEXTURE_BINDING_1D_ARRAY
159 # define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
160 #endif
161 
162 #ifndef GL_TEXTURE_1D
163 # define GL_TEXTURE_1D 0x0DE0
164 #endif
165 
166 #ifndef GL_TEXTURE_BINDING_1D
167 # define GL_TEXTURE_BINDING_1D 0x8068
168 #endif
169 
170 #ifndef GL_TEXTURE_2D_MULTISAMPLE
171 # define GL_TEXTURE_2D_MULTISAMPLE 0x9100
172 #endif
173 
174 #ifndef GL_TEXTURE_BINDING_2D_MULTISAMPLE
175 # define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
176 #endif
177 
178 #ifndef GL_TEXTURE_2D_MULTISAMPLE_ARRAY
179 # define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
180 #endif
181 
182 #ifndef GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
183 # define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
184 #endif
185 
186 #ifndef GL_TEXTURE_CUBE_MAP_ARRAY
187 # define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009
188 #endif
189 
190 #ifndef GL_TEXTURE_BINDING_CUBE_MAP_ARRAY
191 # define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A
192 #endif
193 
194 #ifndef GL_TEXTURE_BUFFER
195 # define GL_TEXTURE_BUFFER 0x8C2A
196 #endif
197 
198 // Define unsupported pipeline bind flags
199 #ifndef GL_VERTEX_SHADER_BIT
200 # define GL_VERTEX_SHADER_BIT 0x00000001
201 #endif
202 
203 #ifndef GL_FRAGMENT_SHADER_BIT
204 # define GL_FRAGMENT_SHADER_BIT 0x00000002
205 #endif
206 
207 #ifndef GL_GEOMETRY_SHADER_BIT
208 # define GL_GEOMETRY_SHADER_BIT 0x00000004
209 #endif
210 
211 #ifndef GL_TESS_CONTROL_SHADER_BIT
212 # define GL_TESS_CONTROL_SHADER_BIT 0x00000008
213 #endif
214 
215 #ifndef GL_TESS_EVALUATION_SHADER_BIT
216 # define GL_TESS_EVALUATION_SHADER_BIT 0x00000010
217 #endif
218 
219 #ifndef GL_COMPUTE_SHADER_BIT
220 # define GL_COMPUTE_SHADER_BIT 0x00000020
221 #endif
222 
223 // Define unsupported sampler attributes
224 #ifndef GL_TEXTURE_LOD_BIAS
225 # define GL_TEXTURE_LOD_BIAS 0
226 #endif
227 
228 #ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT
229 # define GL_TEXTURE_MAX_ANISOTROPY_EXT 0
230 #endif
231 
232 #ifndef GL_TEXTURE_BORDER_COLOR
233 # define GL_TEXTURE_BORDER_COLOR 0
234 #endif
235 
236 // Other unsupported attributes
237 #ifndef GL_PROGRAM_SEPARABLE
238 # define GL_PROGRAM_SEPARABLE 0x8258
239 #endif
240 
241 // Define unsupported uniform data types
242 #ifndef GL_SAMPLER_1D
243  #define GL_SAMPLER_1D 0x8B5D
244 #endif
245 
246 #ifndef GL_SAMPLER_1D_SHADOW
247  #define GL_SAMPLER_1D_SHADOW 0x8B61
248 #endif
249 
250 #ifndef GL_SAMPLER_1D_ARRAY
251  #define GL_SAMPLER_1D_ARRAY 0x8DC0
252 #endif
253 
254 #ifndef GL_SAMPLER_1D_ARRAY_SHADOW
255  #define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
256 #endif
257 
258 #ifndef GL_INT_SAMPLER_1D
259  #define GL_INT_SAMPLER_1D 0x8DC9
260 #endif
261 
262 #ifndef GL_INT_SAMPLER_1D_ARRAY
263  #define GL_INT_SAMPLER_1D_ARRAY 0x8DCE
264 #endif
265 
266 #ifndef GL_UNSIGNED_INT_SAMPLER_1D
267  #define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
268 #endif
269 
270 #ifndef GL_UNSIGNED_INT_SAMPLER_1D_ARRAY
271  #define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
272 #endif
273 
274 #ifndef GL_SAMPLER_CUBE_MAP_ARRAY
275  #define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C
276 #endif
277 
278 #ifndef GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW
279  #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D
280 #endif
281 
282 #ifndef GL_INT_SAMPLER_CUBE_MAP_ARRAY
283  #define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E
284 #endif
285 
286 #ifndef GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY
287  #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F
288 #endif
289 
290 #ifndef GL_SAMPLER_BUFFER
291  #define GL_SAMPLER_BUFFER 0x8DC2
292 #endif
293 
294 #ifndef GL_INT_SAMPLER_BUFFER
295  #define GL_INT_SAMPLER_BUFFER 0x8DD0
296 #endif
297 
298 #ifndef GL_UNSIGNED_INT_SAMPLER_BUFFER
299  #define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
300 #endif
301 
302 #ifndef GL_SAMPLER_2D_MULTISAMPLE
303  #define GL_SAMPLER_2D_MULTISAMPLE 0x9108
304 #endif
305 
306 #ifndef GL_INT_SAMPLER_2D_MULTISAMPLE
307  #define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
308 #endif
309 
310 #ifndef GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE
311  #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
312 #endif
313 
314 #ifndef GL_SAMPLER_2D_MULTISAMPLE_ARRAY
315  #define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
316 #endif
317 
318 #ifndef GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
319  #define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
320 #endif
321 
322 #ifndef GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
323  #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
324 #endif
325 
326 
327 #ifndef GL_IMAGE_1D
328  #define GL_IMAGE_1D 0x904C
329 #endif
330 
331 #ifndef GL_IMAGE_2D
332  #define GL_IMAGE_2D 0x904D
333 #endif
334 
335 #ifndef GL_IMAGE_3D
336  #define GL_IMAGE_3D 0x904E
337 #endif
338 
339 #ifndef GL_IMAGE_2D_RECT
340  #define GL_IMAGE_2D_RECT 0x904F
341 #endif
342 
343 #ifndef GL_IMAGE_CUBE
344  #define GL_IMAGE_CUBE 0x9050
345 #endif
346 
347 #ifndef GL_IMAGE_BUFFER
348  #define GL_IMAGE_BUFFER 0x9051
349 #endif
350 
351 #ifndef GL_IMAGE_1D_ARRAY
352  #define GL_IMAGE_1D_ARRAY 0x9052
353 #endif
354 
355 #ifndef GL_IMAGE_2D_ARRAY
356  #define GL_IMAGE_2D_ARRAY 0x9053
357 #endif
358 
359 #ifndef GL_IMAGE_CUBE_MAP_ARRAY
360  #define GL_IMAGE_CUBE_MAP_ARRAY 0x9054
361 #endif
362 
363 #ifndef GL_IMAGE_2D_MULTISAMPLE
364  #define GL_IMAGE_2D_MULTISAMPLE 0x9055
365 #endif
366 
367 #ifndef GL_IMAGE_2D_MULTISAMPLE_ARRAY
368  #define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056
369 #endif
370 
371 #ifndef GL_INT_IMAGE_1D
372  #define GL_INT_IMAGE_1D 0x9057
373 #endif
374 
375 #ifndef GL_INT_IMAGE_2D
376  #define GL_INT_IMAGE_2D 0x9058
377 #endif
378 
379 #ifndef GL_INT_IMAGE_3D
380  #define GL_INT_IMAGE_3D 0x9059
381 #endif
382 
383 #ifndef GL_INT_IMAGE_2D_RECT
384  #define GL_INT_IMAGE_2D_RECT 0x905A
385 #endif
386 
387 #ifndef GL_INT_IMAGE_CUBE
388  #define GL_INT_IMAGE_CUBE 0x905B
389 #endif
390 
391 #ifndef GL_INT_IMAGE_BUFFER
392  #define GL_INT_IMAGE_BUFFER 0x905C
393 #endif
394 
395 #ifndef GL_INT_IMAGE_1D_ARRAY
396  #define GL_INT_IMAGE_1D_ARRAY 0x905D
397 #endif
398 
399 #ifndef GL_INT_IMAGE_2D_ARRAY
400  #define GL_INT_IMAGE_2D_ARRAY 0x905E
401 #endif
402 
403 #ifndef GL_INT_IMAGE_CUBE_MAP_ARRAY
404  #define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F
405 #endif
406 
407 #ifndef GL_INT_IMAGE_2D_MULTISAMPLE
408  #define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060
409 #endif
410 
411 #ifndef GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY
412  #define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061
413 #endif
414 
415 #ifndef GL_UNSIGNED_INT_IMAGE_1D
416  #define GL_UNSIGNED_INT_IMAGE_1D 0x9062
417 #endif
418 
419 #ifndef GL_UNSIGNED_INT_IMAGE_2D
420  #define GL_UNSIGNED_INT_IMAGE_2D 0x9063
421 #endif
422 
423 #ifndef GL_UNSIGNED_INT_IMAGE_3D
424  #define GL_UNSIGNED_INT_IMAGE_3D 0x9064
425 #endif
426 
427 #ifndef GL_UNSIGNED_INT_IMAGE_2D_RECT
428  #define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065
429 #endif
430 
431 #ifndef GL_UNSIGNED_INT_IMAGE_CUBE
432  #define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066
433 #endif
434 
435 #ifndef GL_UNSIGNED_INT_IMAGE_BUFFER
436  #define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067
437 #endif
438 
439 #ifndef GL_UNSIGNED_INT_IMAGE_1D_ARRAY
440  #define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068
441 #endif
442 
443 #ifndef GL_UNSIGNED_INT_IMAGE_2D_ARRAY
444  #define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069
445 #endif
446 
447 #ifndef GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY
448  #define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A
449 #endif
450 
451 #ifndef GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE
452  #define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B
453 #endif
454 
455 #ifndef GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY
456  #define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C
457 #endif
458 
459 
460 // Compute shader stubs
461 #ifndef GL_READ_ONLY
462 # define GL_READ_ONLY 0x88B8
463 #endif
464 
465 #ifndef GL_WRITE_ONLY
466 # define GL_WRITE_ONLY 0x88B9
467 #endif
468 
469 #ifndef GL_READ_WRITE
470 # define GL_READ_WRITE 0x88BA
471 #endif
472 
473 #ifndef GL_COMPUTE_SHADER
474 # define GL_COMPUTE_SHADER 0x91B9
475 #endif
476 
477 #ifndef GL_ES_VERSION_3_1
478 #define LOAD_GL_BIND_IMAGE_TEXTURE
479 typedef void (GL_APIENTRY* PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
480 extern PFNGLBINDIMAGETEXTUREPROC glBindImageTexture;
481 
482 #define LOAD_GL_DISPATCH_COMPUTE
483 typedef void (GL_APIENTRY* PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
484 extern PFNGLDISPATCHCOMPUTEPROC glDispatchCompute;
485 
486 #define LOAD_GL_MEMORY_BARRIER
487 typedef void (GL_APIENTRY* PFNGLMEMORYBARRIERPROC) (GLbitfield barriers);
488 extern PFNGLMEMORYBARRIERPROC glMemoryBarrier;
489 #endif // GL_ES_VERSION_3_1
490 
491 #ifndef GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT
492 # define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001
493 #endif
494 #ifndef GL_ELEMENT_ARRAY_BARRIER_BIT
495 # define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002
496 #endif
497 #ifndef GL_UNIFORM_BARRIER_BIT
498 # define GL_UNIFORM_BARRIER_BIT 0x00000004
499 #endif
500 #ifndef GL_TEXTURE_FETCH_BARRIER_BIT
501 # define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008
502 #endif
503 #ifndef GL_SHADER_IMAGE_ACCESS_BARRIER_BIT
504 # define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020
505 #endif
506 #ifndef GL_COMMAND_BARRIER_BIT
507 # define GL_COMMAND_BARRIER_BIT 0x00000040
508 #endif
509 #ifndef GL_PIXEL_BUFFER_BARRIER_BIT
510 # define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080
511 #endif
512 #ifndef GL_TEXTURE_UPDATE_BARRIER_BIT
513 # define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100
514 #endif
515 #ifndef GL_BUFFER_UPDATE_BARRIER_BIT
516 # define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200
517 #endif
518 #ifndef GL_FRAMEBUFFER_BARRIER_BIT
519 # define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400
520 #endif
521 #ifndef GL_TRANSFORM_FEEDBACK_BARRIER_BIT
522 # define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800
523 #endif
524 #ifndef GL_ATOMIC_COUNTER_BARRIER_BIT
525 # define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000
526 #endif
527 #ifndef GL_SHADER_STORAGE_BARRIER_BIT
528 # define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000
529 #endif
530 #ifndef GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT
531 # define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000
532 #endif
533 #ifndef GL_QUERY_BUFFER_BARRIER_BIT
534 # define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000
535 #endif
536 #ifndef GL_ALL_BARRIER_BITS
537 # define GL_ALL_BARRIER_BITS 0xFFFFFFFF
538 #endif
539 
540 
541 //--------------------------- Texture queries -----------------------------
542 #ifndef GL_TEXTURE_WIDTH
543 # define GL_TEXTURE_WIDTH 0x1000
544 #endif
545 
546 #ifndef GL_TEXTURE_HEIGHT
547 # define GL_TEXTURE_HEIGHT 0x1001
548 #endif
549 
550 #ifndef GL_TEXTURE_DEPTH
551 # define GL_TEXTURE_DEPTH 0x8071
552 #endif
553 
554 #ifndef GL_TEXTURE_INTERNAL_FORMAT
555 # define GL_TEXTURE_INTERNAL_FORMAT 0x1003
556 #endif
557 
558 
559 //------------------------ Program interface query ------------------------
560 #ifndef GL_UNIFORM
561 # define GL_UNIFORM 0x92E1
562 #endif
563 
564 #ifndef GL_UNIFORM_BLOCK
565 # define GL_UNIFORM_BLOCK 0x92E2
566 #endif
567 
568 #ifndef GL_PROGRAM_INPUT
569 # define GL_PROGRAM_INPUT 0x92E3
570 #endif
571 
572 #ifndef GL_PROGRAM_OUTPUT
573 # define GL_PROGRAM_OUTPUT 0x92E4
574 #endif
575 
576 #ifndef GL_BUFFER_VARIABLE
577 # define GL_BUFFER_VARIABLE 0x92E5
578 #endif
579 
580 #ifndef GL_SHADER_STORAGE_BLOCK
581 # define GL_SHADER_STORAGE_BLOCK 0x92E6
582 #endif
583 
584 #ifndef GL_IS_PER_PATCH
585 # define GL_IS_PER_PATCH 0x92E7
586 #endif
587 
588 #ifndef GL_VERTEX_SUBROUTINE
589 # define GL_VERTEX_SUBROUTINE 0x92E8
590 #endif
591 
592 #ifndef GL_TESS_CONTROL_SUBROUTINE
593 # define GL_TESS_CONTROL_SUBROUTINE 0x92E9
594 #endif
595 
596 #ifndef GL_TESS_EVALUATION_SUBROUTINE
597 # define GL_TESS_EVALUATION_SUBROUTINE 0x92EA
598 #endif
599 
600 #ifndef GL_GEOMETRY_SUBROUTINE
601 # define GL_GEOMETRY_SUBROUTINE 0x92EB
602 #endif
603 
604 #ifndef GL_FRAGMENT_SUBROUTINE
605 # define GL_FRAGMENT_SUBROUTINE 0x92EC
606 #endif
607 
608 #ifndef GL_COMPUTE_SUBROUTINE
609 # define GL_COMPUTE_SUBROUTINE 0x92ED
610 #endif
611 
612 #ifndef GL_VERTEX_SUBROUTINE_UNIFORM
613 # define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE
614 #endif
615 
616 #ifndef GL_TESS_CONTROL_SUBROUTINE_UNIFORM
617 # define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF
618 #endif
619 
620 #ifndef GL_TESS_EVALUATION_SUBROUTINE_UNIFORM
621 # define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0
622 #endif
623 
624 #ifndef GL_GEOMETRY_SUBROUTINE_UNIFORM
625 # define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1
626 #endif
627 
628 #ifndef GL_FRAGMENT_SUBROUTINE_UNIFORM
629 # define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2
630 #endif
631 
632 #ifndef GL_COMPUTE_SUBROUTINE_UNIFORM
633 # define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3
634 #endif
635 
636 #ifndef GL_TRANSFORM_FEEDBACK_VARYING
637 # define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4
638 #endif
639 
640 #ifndef GL_ACTIVE_RESOURCES
641 # define GL_ACTIVE_RESOURCES 0x92F5
642 #endif
643 
644 #ifndef GL_MAX_NAME_LENGTH
645 # define GL_MAX_NAME_LENGTH 0x92F6
646 #endif
647 
648 #ifndef GL_MAX_NUM_ACTIVE_VARIABLES
649 # define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7
650 #endif
651 
652 #ifndef GL_MAX_NUM_COMPATIBLE_SUBROUTINES
653 # define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8
654 #endif
655 
656 #ifndef GL_NAME_LENGTH
657 # define GL_NAME_LENGTH 0x92F9
658 #endif
659 
660 #ifndef GL_TYPE
661 # define GL_TYPE 0x92FA
662 #endif
663 
664 #ifndef GL_ARRAY_SIZE
665 # define GL_ARRAY_SIZE 0x92FB
666 #endif
667 
668 #ifndef GL_OFFSET
669 # define GL_OFFSET 0x92FC
670 #endif
671 
672 #ifndef GL_BLOCK_INDEX
673 # define GL_BLOCK_INDEX 0x92FD
674 #endif
675 
676 #ifndef GL_ARRAY_STRIDE
677 # define GL_ARRAY_STRIDE 0x92FE
678 #endif
679 
680 #ifndef GL_MATRIX_STRIDE
681 # define GL_MATRIX_STRIDE 0x92FF
682 #endif
683 
684 #ifndef GL_IS_ROW_MAJOR
685 # define GL_IS_ROW_MAJOR 0x9300
686 #endif
687 
688 #ifndef GL_ATOMIC_COUNTER_BUFFER_INDEX
689 # define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301
690 #endif
691 
692 #ifndef GL_BUFFER_BINDING
693 # define GL_BUFFER_BINDING 0x9302
694 #endif
695 
696 #ifndef GL_BUFFER_DATA_SIZE
697 # define GL_BUFFER_DATA_SIZE 0x9303
698 #endif
699 
700 #ifndef GL_NUM_ACTIVE_VARIABLES
701 # define GL_NUM_ACTIVE_VARIABLES 0x9304
702 #endif
703 
704 #ifndef GL_ACTIVE_VARIABLES
705 # define GL_ACTIVE_VARIABLES 0x9305
706 #endif
707 
708 #ifndef GL_REFERENCED_BY_VERTEX_SHADER
709 # define GL_REFERENCED_BY_VERTEX_SHADER 0x9306
710 #endif
711 
712 #ifndef GL_REFERENCED_BY_TESS_CONTROL_SHADER
713 # define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307
714 #endif
715 
716 #ifndef GL_REFERENCED_BY_TESS_EVALUATION_SHADER
717 # define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308
718 #endif
719 
720 #ifndef GL_REFERENCED_BY_GEOMETRY_SHADER
721 # define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309
722 #endif
723 
724 #ifndef GL_REFERENCED_BY_FRAGMENT_SHADER
725 # define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A
726 #endif
727 
728 #ifndef GL_REFERENCED_BY_COMPUTE_SHADER
729 # define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B
730 #endif
731 
732 #ifndef GL_TOP_LEVEL_ARRAY_SIZE
733 # define GL_TOP_LEVEL_ARRAY_SIZE 0x930C
734 #endif
735 
736 #ifndef GL_TOP_LEVEL_ARRAY_STRIDE
737 # define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D
738 #endif
739 
740 #ifndef GL_LOCATION
741 # define GL_LOCATION 0x930E
742 #endif
743 
744 #ifndef GL_LOCATION_INDEX
745 # define GL_LOCATION_INDEX 0x930F
746 #endif
747 
748 
749 
750 // --------------------- Shader storage buffer -----------------------
751 
752 #ifndef GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES
753 # define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39
754 #endif
755 
756 #ifndef GL_SHADER_STORAGE_BUFFER
757 # define GL_SHADER_STORAGE_BUFFER 0x90D2
758 #endif
759 
760 #ifndef GL_SHADER_STORAGE_BUFFER_BINDING
761 # define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3
762 #endif
763 
764 #ifndef GL_SHADER_STORAGE_BUFFER_START
765 # define GL_SHADER_STORAGE_BUFFER_START 0x90D4
766 #endif
767 
768 #ifndef GL_SHADER_STORAGE_BUFFER_SIZE
769 # define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5
770 #endif
771 
772 #ifndef GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS
773 # define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6
774 #endif
775 
776 #ifndef GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS
777 # define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7
778 #endif
779 
780 #ifndef GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS
781 # define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8
782 #endif
783 
784 #ifndef GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS
785 # define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9
786 #endif
787 
788 #ifndef GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS
789 # define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA
790 #endif
791 
792 #ifndef GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS
793 # define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB
794 #endif
795 
796 #ifndef GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS
797 # define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC
798 #endif
799 
800 #ifndef GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS
801 # define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD
802 #endif
803 
804 #ifndef GL_MAX_SHADER_STORAGE_BLOCK_SIZE
805 # define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE
806 #endif
807 
808 #ifndef GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT
809 # define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF
810 #endif
811 
812 
813 // Polygon mode
814 #ifndef GL_POINT
815 # define GL_POINT 0x1B00
816 #endif
817 
818 #ifndef GL_LINE
819 # define GL_LINE 0x1B01
820 #endif
821 
822 #ifndef GL_FILL
823 # define GL_FILL 0x1B02
824 #endif
825 
826 
827 #ifndef GL_DEPTH_CLAMP
828 # define GL_DEPTH_CLAMP 0
829 #endif
830 
831 // Blend functions
832 #ifndef GL_SRC1_COLOR
833 # define GL_SRC1_COLOR 0x88F9
834 #endif
835 
836 #ifndef GL_ONE_MINUS_SRC1_COLOR
837 # define GL_ONE_MINUS_SRC1_COLOR 0x88FA
838 #endif
839 
840 #ifndef GL_SOURCE1_ALPHA
841 # define GL_SOURCE1_ALPHA 0x8589
842 #endif
843 
844 #ifndef GL_SRC1_ALPHA
845 # define GL_SRC1_ALPHA GL_SOURCE1_ALPHA
846 #endif
847 
848 #ifndef GL_ONE_MINUS_SRC1_ALPHA
849 # define GL_ONE_MINUS_SRC1_ALPHA 0x88FB
850 #endif
851 
852 /* ---------------------- GL_ARB_internalformat_query2 --------------------- */
853 
854 #ifndef GL_INTERNALFORMAT_SUPPORTED
855 # define GL_INTERNALFORMAT_SUPPORTED 0x826F
856 #endif
857 
858 // --------------------- Framebuffer SRGB -----------------------
859 #ifndef GL_FRAMEBUFFER_SRGB
860 # define GL_FRAMEBUFFER_SRGB 0x8DB9
861 #endif
862 
863 // -------------------- Incomplete FBO error codes ---------------
864 #ifndef GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS
865 # define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
866 #endif
867 
868 #ifndef GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
869 # define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
870 #endif
871 
872 #ifndef GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER
873 # define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
874 #endif
875 
876 /* ---------------------- ARB_tessellation_shader --------------------- */
877 #ifndef GL_PATCHES
878 # define GL_PATCHES 0xE
879 #endif
880 
881 #ifndef GL_PATCH_VERTICES
882 # define GL_PATCH_VERTICES 0x8E72
883 #endif
884 
885 
886 // Define unsupported GL function stubs
887 template<typename T>
888 void UnsupportedGLFunctionStub( const T &Name )
889 {
890  LOG_ERROR_MESSAGE( Name, "() is not supported in this API!\n" );
891 }
892 
893 #define glDrawElementsInstancedBaseVertexBaseInstance(...) UnsupportedGLFunctionStub("glDrawElementsInstancedBaseVertexBaseInstance")
894 #define glDrawElementsInstancedBaseVertex(...) UnsupportedGLFunctionStub("glDrawElementsInstancedBaseVertex")
895 #define glDrawElementsInstancedBaseInstance(...) UnsupportedGLFunctionStub("glDrawElementsInstancedBaseInstance")
896 #define glDrawArraysInstancedBaseInstance(...) UnsupportedGLFunctionStub("glDrawArraysInstancedBaseInstance")
897 #define glDrawElementsBaseVertex(...) UnsupportedGLFunctionStub("glDrawElementsBaseVertex")
898 #define glTextureView(...) UnsupportedGLFunctionStub("glTextureView")
899 #define glTexStorage1D(...) UnsupportedGLFunctionStub("glTexStorage1D")
900 #define glTexSubImage1D(...) UnsupportedGLFunctionStub("glTexSubImage1D")
901 #define glTexStorage3DMultisample(...) UnsupportedGLFunctionStub("glTexStorage3DMultisample")
902 
903 #ifndef GL_ES_VERSION_3_1
904 
905  #define LOAD_GEN_PROGRAM_PIPELINES
906  typedef void (GL_APIENTRY* PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines);
907  extern PFNGLGENPROGRAMPIPELINESPROC glGenProgramPipelines;
908 
909  #define LOAD_GL_DELETE_PROGRAM_PIPELINES
910  typedef void (GL_APIENTRY* PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint* pipelines);
911  extern PFNGLDELETEPROGRAMPIPELINESPROC glDeleteProgramPipelines;
912 
913  #define LOAD_GL_BIND_PROGRAM_PIPELINE
914  typedef void (GL_APIENTRY* PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline);
915  extern PFNGLBINDPROGRAMPIPELINEPROC glBindProgramPipeline;
916 
917  #define LOAD_DRAW_ELEMENTS_INDIRECT
918  typedef void (GL_APIENTRY* PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const GLvoid *indirect);
919  extern PFNGLDRAWELEMENTSINDIRECTPROC glDrawElementsIndirect;
920 
921  #define LOAD_DRAW_ARRAYS_INDIRECT
922  typedef void (GL_APIENTRY* PFNGLDRAWARRAYSINDIRECTPROC)( GLenum mode, const GLvoid *indirect );
923  extern PFNGLDRAWARRAYSINDIRECTPROC glDrawArraysIndirect;
924 
925  #define LOAD_DISPATCH_COMPUTE_INDIRECT
926  typedef void (GL_APIENTRY* PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect);
927  extern PFNGLDISPATCHCOMPUTEINDIRECTPROC glDispatchComputeIndirect;
928 
929  #define LOAD_GL_USE_PROGRAM_STAGES
930  typedef void (GL_APIENTRY* PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
931  extern PFNGLUSEPROGRAMSTAGESPROC glUseProgramStages;
932 
933  #define LOAD_GL_TEX_STORAGE_2D_MULTISAMPLE
934  typedef void (GL_APIENTRY* PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
935  extern PFNGLTEXSTORAGE2DMULTISAMPLEPROC glTexStorage2DMultisample;
936 
937  #define LOAD_GL_PROGRAM_UNIFORM_1I
938  typedef void (GL_APIENTRY* PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint x);
939  extern PFNGLPROGRAMUNIFORM1IPROC glProgramUniform1i;
940 
941  #define LOAD_GL_GET_PROGRAM_INTERFACEIV
942  typedef void (GL_APIENTRY* PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint* params);
943  extern PFNGLGETPROGRAMINTERFACEIVPROC glGetProgramInterfaceiv;
944 
945  #define LOAD_GL_GET_PROGRAM_RESOURCE_NAME
946  typedef void (GL_APIENTRY* PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar *name);
947  extern PFNGLGETPROGRAMRESOURCENAMEPROC glGetProgramResourceName;
948 
949  #define LOAD_GL_GET_PROGRAM_RESOURCEIV
950  typedef void (GL_APIENTRY* PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei *length, GLint *params);
951  extern PFNGLGETPROGRAMRESOURCEIVPROC glGetProgramResourceiv;
952 
953  #define LOAD_GET_TEX_LEVEL_PARAMETER_IV
954  typedef void (GL_APIENTRY* PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params);
955  extern PFNGLGETTEXLEVELPARAMETERIVPROC glGetTexLevelParameteriv;
956 
957 #endif //GL_ES_VERSION_3_1
958 
959 #define LOAD_GL_TEX_BUFFER
960 typedef void (GL_APIENTRY* PFNGLTEXBUFFERPROC) (GLenum, GLenum, GLuint);
961 extern PFNGLTEXBUFFERPROC glTexBuffer;
962 
963 #define LOAD_GL_VIEWPORT_INDEXEDF
964 typedef void (GL_APIENTRY* PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
965 extern PFNGLVIEWPORTINDEXEDFPROC glViewportIndexedf;
966 
967 #define LOAD_GL_SCISSOR_INDEXED
968 typedef void (GL_APIENTRY* PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
969 extern PFNGLSCISSORINDEXEDPROC glScissorIndexed;
970 
971 #define LOAD_GL_POLYGON_MODE
972 typedef void (GL_APIENTRY* PFNGLPOLYGONMODE) (GLenum face, GLenum mode);
973 extern PFNGLPOLYGONMODE glPolygonMode;
974 
975 #define LOAD_GL_ENABLEI
976 typedef void (GL_APIENTRY* PFNGLENABLEIPROC) (GLenum, GLuint);
977 extern PFNGLENABLEIPROC glEnablei;
978 
979 #define LOAD_GL_BLEND_FUNC_SEPARATEI
980 typedef void (GL_APIENTRY* PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
981 extern PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei;
982 
983 #define LOAD_GL_BLEND_EQUATION_SEPARATEI
984 typedef void (GL_APIENTRY* PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
985 extern PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei;
986 
987 #define LOAD_GL_DISABLEI
988 typedef void (GL_APIENTRY* PFNGLDISABLEIPROC) (GLenum, GLuint);
989 extern PFNGLDISABLEIPROC glDisablei;
990 
991 #define LOAD_GL_COLOR_MASKI
992 typedef void (GL_APIENTRY* PFNGLCOLORMASKIPROC) (GLuint, GLboolean, GLboolean, GLboolean, GLboolean);
993 extern PFNGLCOLORMASKIPROC glColorMaski;
994 
995 #define LOAD_GL_PATCH_PARAMTER_I
996 typedef void (GL_APIENTRY* PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value);
997 extern PFNGLPATCHPARAMETERIPROC glPatchParameteri;
998 
999 #define LOAD_GL_FRAMEBUFFER_TEXTURE
1000 typedef void (GL_APIENTRY* PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum, GLenum, GLuint, GLint);
1001 extern PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture;
1002 
1003 #define LOAD_GL_FRAMEBUFFER_TEXTURE_1D
1004 typedef void (GL_APIENTRY* PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
1005 extern PFNGLFRAMEBUFFERTEXTURE1DPROC glFramebufferTexture1D;
1006 
1007 #define LOAD_GL_FRAMEBUFFER_TEXTURE_3D
1008 typedef void (GL_APIENTRY* PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer);
1009 extern PFNGLFRAMEBUFFERTEXTURE3DPROC glFramebufferTexture3D;
1010 
1011 #define LOAD_GL_COPY_IMAGE_SUB_DATA
1012 typedef void (GL_APIENTRY* PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
1013 extern PFNGLCOPYIMAGESUBDATAPROC glCopyImageSubData;
1014 
1015 void LoadGLFunctions();
+ + + + + diff --git a/doc/html/_g_l_type_conversions_8h_source.html b/doc/html/_g_l_type_conversions_8h_source.html new file mode 100644 index 00000000..3cbe5702 --- /dev/null +++ b/doc/html/_g_l_type_conversions_8h_source.html @@ -0,0 +1,132 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/GLTypeConversions.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GLTypeConversions.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 namespace Diligent
27 {
28 
29 static const GLenum PrimTopologyToGLTopologyMap[] =
30 {
31  0, //PRIMITIVE_TOPOLOGY_UNDEFINED = 0
32  GL_TRIANGLES, //PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
33  GL_TRIANGLE_STRIP, //PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
34  GL_POINTS, //PRIMITIVE_TOPOLOGY_POINT_LIST
35  GL_LINES //PRIMITIVE_TOPOLOGY_LINE_LIST
36 };
37 
38 inline GLenum PrimitiveTopologyToGLTopology(PRIMITIVE_TOPOLOGY PrimTopology)
39 {
40  VERIFY_EXPR(PrimTopology < _countof(PrimTopologyToGLTopologyMap));
41  auto GLTopology = PrimTopologyToGLTopologyMap[PrimTopology];
42 #ifdef _DEBUG
43  switch(PrimTopology)
44  {
45  case PRIMITIVE_TOPOLOGY_UNDEFINED: VERIFY_EXPR(GLTopology == 0); break;
46  case PRIMITIVE_TOPOLOGY_TRIANGLE_LIST: VERIFY_EXPR(GLTopology == GL_TRIANGLES); break;
47  case PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP: VERIFY_EXPR(GLTopology == GL_TRIANGLE_STRIP); break;
48  case PRIMITIVE_TOPOLOGY_POINT_LIST: VERIFY_EXPR(GLTopology == GL_POINTS); break;
49  case PRIMITIVE_TOPOLOGY_LINE_LIST: VERIFY_EXPR(GLTopology == GL_LINES); break;
50  default: UNEXPECTED("Unexpected primitive topology");
51  }
52 #endif
53  return GLTopology;
54 }
55 
56 static const GLenum TypeToGLTypeMap[] =
57 {
58  0, //VT_UNDEFINED = 0
59  GL_BYTE, //VT_INT8
60  GL_SHORT, //VT_INT16
61  GL_INT, //VT_INT32
62  GL_UNSIGNED_BYTE, //VT_UINT8
63  GL_UNSIGNED_SHORT, //VT_UINT16
64  GL_UNSIGNED_INT, //VT_UINT32
65  0, //VT_FLOAT16
66  GL_FLOAT //VT_FLOAT32
67 };
68 
69 inline GLenum TypeToGLType(VALUE_TYPE Value)
70 {
71  VERIFY_EXPR(Value < _countof(TypeToGLTypeMap));
72  auto GLType = TypeToGLTypeMap[Value];
73 #ifdef _DEBUG
74  switch(Value)
75  {
76  case VT_INT8: VERIFY_EXPR(GLType == GL_BYTE); break;
77  case VT_INT16: VERIFY_EXPR(GLType == GL_SHORT); break;
78  case VT_INT32: VERIFY_EXPR(GLType == GL_INT); break;
79  case VT_UINT8: VERIFY_EXPR(GLType == GL_UNSIGNED_BYTE); break;
80  case VT_UINT16: VERIFY_EXPR(GLType == GL_UNSIGNED_SHORT); break;
81  case VT_UINT32: VERIFY_EXPR(GLType == GL_UNSIGNED_INT); break;
82  case VT_FLOAT32: VERIFY_EXPR(GLType == GL_FLOAT); break;
83  default: UNEXPECTED("Unexpected value type");
84  }
85 #endif
86  return GLType;
87 }
88 
89 inline GLenum UsageToGLUsage(USAGE Usage)
90 {
91  // http://www.informit.com/articles/article.aspx?p=2033340&seqNum=2
92  switch(Usage)
93  {
94  case USAGE_STATIC: return GL_STATIC_DRAW;
95  case USAGE_DEFAULT: return GL_DYNAMIC_DRAW;
96  case USAGE_DYNAMIC: return GL_STREAM_DRAW;
97  case USAGE_CPU_ACCESSIBLE: return GL_DYNAMIC_READ;
98  default: UNEXPECTED( "Unknow usage" ); return 0;
99  }
100 }
101 
102 inline void FilterTypeToGLFilterType(FILTER_TYPE Filter, GLenum &GLFilter, Bool &bIsAnisotropic, Bool &bIsComparison)
103 {
104  switch(Filter)
105  {
106  case FILTER_TYPE_UNKNOWN:
107  UNEXPECTED( "Unspecified filter type" );
108  bIsAnisotropic = false;
109  bIsComparison = false;
110  GLFilter = GL_NEAREST;
111  break;
112 
113  case FILTER_TYPE_POINT:
114  bIsAnisotropic = false;
115  bIsComparison = false;
116  GLFilter = GL_NEAREST;
117  break;
118 
119  case FILTER_TYPE_LINEAR:
120  bIsAnisotropic = false;
121  bIsComparison = false;
122  GLFilter = GL_LINEAR;
123  break;
124 
126  bIsAnisotropic = true;
127  bIsComparison = false;
128  GLFilter = GL_LINEAR;
129  break;
130 
132  bIsAnisotropic = false;
133  bIsComparison = true;
134  GLFilter = GL_NEAREST;
135  break;
136 
138  bIsAnisotropic = false;
139  bIsComparison = true;
140  GLFilter = GL_LINEAR;
141  break;
142 
144  bIsAnisotropic = true;
145  bIsComparison = true;
146  GLFilter = GL_LINEAR;
147  break;
148 
149  default:
150  bIsAnisotropic = false;
151  bIsComparison = false;
152  UNEXPECTED( "Unknown filter type" );
153  GLFilter = GL_NEAREST;
154  break;
155  }
156 }
157 
158 GLenum TexFormatToGLInternalTexFormat(TEXTURE_FORMAT TexFormat, Uint32 BindFlags = 0);
159 TEXTURE_FORMAT GLInternalTexFormatToTexFormat(GLenum GlFormat);
160 GLenum CorrectGLTexFormat(GLenum GLTexFormat, Uint32 BindFlags);
161 
162 inline GLenum TexAddressModeToGLAddressMode(TEXTURE_ADDRESS_MODE Mode)
163 {
164  switch(Mode)
165  {
166  case TEXTURE_ADDRESS_UNKNOWN: UNEXPECTED( "Texture address mode is not specified" ); return GL_CLAMP_TO_EDGE;
167  case TEXTURE_ADDRESS_WRAP: return GL_REPEAT;
168  case TEXTURE_ADDRESS_MIRROR: return GL_MIRRORED_REPEAT;
169  case TEXTURE_ADDRESS_CLAMP: return GL_CLAMP_TO_EDGE;
170  case TEXTURE_ADDRESS_BORDER: return GL_CLAMP_TO_BORDER;
171  case TEXTURE_ADDRESS_MIRROR_ONCE: return GL_MIRROR_CLAMP_TO_EDGE; // only available with OpenGL 4.4
172  // This mode seems to be different from D3D11_TEXTURE_ADDRESS_MIRROR_ONCE
173  // The texture coord is clamped to the [-1, 1] range, but mirrors the
174  // negative direction with the positive. Basically, it acts as
175  // GL_CLAMP_TO_EDGE except that it takes the absolute value of the texture
176  // coordinates before clamping.
177  default: UNEXPECTED( "Unknown texture address mode" ); return GL_CLAMP_TO_EDGE;
178  }
179 }
180 
181 inline GLenum CompareFuncToGLCompareFunc(COMPARISON_FUNCTION Func)
182 {
183  switch(Func)
184  {
185  case COMPARISON_FUNC_UNKNOWN: UNEXPECTED( "Comparison function is not specified" ); return GL_ALWAYS;
186  case COMPARISON_FUNC_NEVER: return GL_NEVER;
187  case COMPARISON_FUNC_LESS: return GL_LESS;
188  case COMPARISON_FUNC_EQUAL: return GL_EQUAL;
189  case COMPARISON_FUNC_LESS_EQUAL: return GL_LEQUAL;
190  case COMPARISON_FUNC_GREATER: return GL_GREATER;
191  case COMPARISON_FUNC_NOT_EQUAL: return GL_NOTEQUAL;
192  case COMPARISON_FUNC_GREATER_EQUAL: return GL_GEQUAL;
193  case COMPARISON_FUNC_ALWAYS: return GL_ALWAYS;
194  default: UNEXPECTED( "Unknown comparison func" ); return GL_ALWAYS;
195  }
196 }
197 
198 struct NativePixelAttribs
199 {
200  GLenum PixelFormat;
201  GLenum DataType;
202  Bool IsCompressed;
203  explicit NativePixelAttribs(GLenum _PixelFormat = 0, GLenum _DataType = 0, Bool _IsCompressed = False) :
204  PixelFormat(_PixelFormat),
205  DataType(_DataType),
206  IsCompressed(_IsCompressed)
207  {}
208 };
209 
210 inline Uint32 GetNumPixelFormatComponents(GLenum Format)
211 {
212  switch(Format)
213  {
214  case GL_RGBA:
215  case GL_RGBA_INTEGER:
216  return 4;
217 
218  case GL_RGB:
219  case GL_RGB_INTEGER:
220  return 3;
221 
222  case GL_RG:
223  case GL_RG_INTEGER:
224  return 2;
225 
226  case GL_RED:
227  case GL_RED_INTEGER:
228  case GL_DEPTH_COMPONENT:
229  case GL_DEPTH_STENCIL:
230  return 1;
231 
232  default: UNEXPECTED( "Unknonw pixel format" ); return 0;
233  };
234 }
235 
236 inline Uint32 GetPixelTypeSize(GLenum Type)
237 {
238  switch(Type)
239  {
240  case GL_FLOAT: return sizeof(GLfloat);
241 
242  case GL_UNSIGNED_INT_10_10_10_2:
243  case GL_UNSIGNED_INT_2_10_10_10_REV:
244  case GL_UNSIGNED_INT_10F_11F_11F_REV:
245  case GL_UNSIGNED_INT_24_8:
246  case GL_UNSIGNED_INT_5_9_9_9_REV:
247  case GL_UNSIGNED_INT: return sizeof(GLuint);
248 
249  case GL_INT: return sizeof(GLint);
250  case GL_HALF_FLOAT: return sizeof(GLhalf);
251 
252  case GL_UNSIGNED_SHORT_5_6_5:
253  case GL_UNSIGNED_SHORT_5_6_5_REV:
254  case GL_UNSIGNED_SHORT_5_5_5_1:
255  case GL_UNSIGNED_SHORT_1_5_5_5_REV:
256  case GL_UNSIGNED_SHORT: return sizeof(GLushort);
257 
258  case GL_SHORT: return sizeof(GLshort);
259  case GL_UNSIGNED_BYTE: return sizeof(GLubyte);
260  case GL_BYTE: return sizeof(GLbyte);
261 
262  case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:return sizeof(GLfloat) + sizeof(GLuint);
263 
264  default: UNEXPECTED( "Unknonw pixel type" ); return 0;
265  }
266 }
267 
268 NativePixelAttribs GetNativePixelTransferAttribs(TEXTURE_FORMAT TexFormat);
269 GLenum AccessFlags2GLAccess( Uint32 UAVAccessFlags );
270 GLenum TypeToGLTexFormat( VALUE_TYPE ValType, Uint32 NumComponents, Bool bIsNormalized );
271 GLenum StencilOp2GlStencilOp( STENCIL_OP StencilOp );
272 GLenum BlendFactor2GLBlend( BLEND_FACTOR bf );
273 GLenum BlendOperation2GLBlendOp( BLEND_OPERATION BlendOp );
274 
275 }
Interpret the vertex data as a list of points. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_POINTLIST. OpenGL counterpart: GL_POINTS.
Definition: DeviceContext.h:71
+
Comparison passes if the source data is less than or equal to the destination data. Direct3D counterpart: D3D11_COMPARISON_LESS_EQUAL/D3D12_COMPARISON_FUNC_LESS_EQUAL. OpenGL counterpart: GL_LEQUAL.
Definition: GraphicsTypes.h:866
+
BLEND_OPERATION
Blending operation.
Definition: BlendState.h:130
+
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
+
Unsigned 8-bit integer.
Definition: GraphicsTypes.h:45
+
Signed 8-bit integer.
Definition: GraphicsTypes.h:42
+
Comparison always passes. Direct3D counterpart: D3D11_COMPARISON_ALWAYS/D3D12_COMPARISON_FUNC_ALWAY...
Definition: GraphicsTypes.h:882
+
PRIMITIVE_TOPOLOGY
Input primitive topology.
Definition: DeviceContext.h:56
+
STENCIL_OP
Stencil operation.
Definition: DepthStencilState.h:42
+
Comparison passes if the source data is equal to the destination data. Direct3D counterpart: D3D11_C...
Definition: GraphicsTypes.h:862
+
Texture coordinates outside the range [0.0, 1.0] are set to the texture color at 0.0 or 1.0, respectively. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_CLAMP/D3D12_TEXTURE_ADDRESS_MODE_CLAMP. OpenGL counterpart: GL_CLAMP_TO_EDGE.
Definition: GraphicsTypes.h:821
+
Comparison never passes. Direct3D counterpart: D3D11_COMPARISON_NEVER/D3D12_COMPARISON_FUNC_NEVER. OpenGL counterpart: GL_NEVER.
Definition: GraphicsTypes.h:854
+
Comparison-anisotropic filtering.
Definition: GraphicsTypes.h:788
+
Unsigned 16-bit integer.
Definition: GraphicsTypes.h:46
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Comparison-point filtering.
Definition: GraphicsTypes.h:786
+
Comparison passes if the source data is greater than the destination data. Direct3D counterpart: 3D1...
Definition: GraphicsTypes.h:870
+
TEXTURE_ADDRESS_MODE
Texture address mode.
Definition: GraphicsTypes.h:805
+
Undefined topology.
Definition: DeviceContext.h:59
+
Signed 32-bit integer.
Definition: GraphicsTypes.h:44
+
Comparison-linear filtering.
Definition: GraphicsTypes.h:787
+
Comparison passes if the source data is less than the destination data. Direct3D counterpart: D3D11_...
Definition: GraphicsTypes.h:858
+
Interpret the vertex data as a list of lines. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_LINELIST. OpenGL counterpart: GL_LINES.
Definition: DeviceContext.h:75
+
Tile the texture at every integer junction. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_WRAP/D3D12_...
Definition: GraphicsTypes.h:812
+
Unknown filter type.
Definition: GraphicsTypes.h:782
+
Comparison passes if the source data is not equal to the destination data. Direct3D counterpart: D3D...
Definition: GraphicsTypes.h:874
+
A resource that requires read and write access by the GPU and can also be occasionally written by the...
Definition: GraphicsTypes.h:95
+
Signed 16-bit integer.
Definition: GraphicsTypes.h:43
+
Comparison passes if the source data is greater than or equal to the destination data. Direct3D counterpart: D3D11_COMPARISON_GREATER_EQUAL/D3D12_COMPARISON_FUNC_GREATER_EQUAL. OpenGL counterpart: GL_GEQUAL.
Definition: GraphicsTypes.h:878
+
A resource that can only be read by the GPU. It cannot be written by the GPU, and cannot be accessed ...
Definition: GraphicsTypes.h:90
+
VALUE_TYPE
Value type.
Definition: GraphicsTypes.h:39
+
Texture coordinates outside the range [0.0, 1.0] are set to the border color specified specified in S...
Definition: GraphicsTypes.h:826
+
Unknown comparison function.
Definition: GraphicsTypes.h:850
+
A resource that facilitates transferring data from GPU to CPU. D3D11 Counterpart: D3D11_USAGE_STAGI...
Definition: GraphicsTypes.h:103
+
Point filtering.
Definition: GraphicsTypes.h:783
+
USAGE
Resource usage.
Definition: GraphicsTypes.h:84
+
Unknown mode.
Definition: GraphicsTypes.h:808
+
Full-precision 32-bit floating point.
Definition: GraphicsTypes.h:49
+
FILTER_TYPE
Filter type.
Definition: GraphicsTypes.h:780
+
Interpret the vertex data as a triangle strip. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP...
Definition: DeviceContext.h:67
+
Unsigned 32-bit integer.
Definition: GraphicsTypes.h:47
+
BLEND_FACTOR
Blend factors.
Definition: BlendState.h:43
+
Interpret the vertex data as a list of triangles. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_TRIANGLELI...
Definition: DeviceContext.h:63
+
COMPARISON_FUNCTION
Comparison function.
Definition: GraphicsTypes.h:847
+
Flip the texture at every integer junction. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_MIRROR/D3D1...
Definition: GraphicsTypes.h:816
+
A resource that can be read by the GPU and written at least once per frame by the CPU...
Definition: GraphicsTypes.h:99
+
Anisotropic filtering.
Definition: GraphicsTypes.h:785
+
Linear filtering.
Definition: GraphicsTypes.h:784
+
Similar to TEXTURE_ADDRESS_MIRROR and TEXTURE_ADDRESS_CLAMP. Takes the absolute value of the texture ...
Definition: GraphicsTypes.h:833
+
+ + + + + diff --git a/doc/html/_generate_mips_8h_source.html b/doc/html/_generate_mips_8h_source.html new file mode 100644 index 00000000..3bf0917e --- /dev/null +++ b/doc/html/_generate_mips_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/GenerateMips.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GenerateMips.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 
25 // The source code in this file is derived from ColorBuffer.h and GraphicsCore.h developed by Minigraph
26 // Original source files header:
27 
28 //
29 // Copyright (c) Microsoft. All rights reserved.
30 // This code is licensed under the MIT License (MIT).
31 // THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
32 // ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
33 // IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
34 // PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
35 //
36 // Developed by Minigraph
37 //
38 // Author: James Stanard
39 //
40 
41 
42 #pragma once
43 
46 
47 
48 namespace Diligent
49 {
50  class GenerateMipsHelper
51  {
52  public:
53  GenerateMipsHelper(ID3D12Device *pd3d12Device);
54 
55  void GenerateMips(class RenderDeviceD3D12Impl *pRenderDeviceD3D12, class TextureViewD3D12Impl *pTexView, class CommandContext &Ctx);
56 
57  private:
58  CComPtr<ID3D12RootSignature> m_pGenerateMipsRS;
59  CComPtr<ID3D12PipelineState> m_pGenerateMipsLinearPSO[4];
60  CComPtr<ID3D12PipelineState> m_pGenerateMipsGammaPSO[4];
61  };
62 
63 
64 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_graphics_2_graphics_engine_2include_2pch_8h_source.html b/doc/html/_graphics_2_graphics_engine_2include_2pch_8h_source.html new file mode 100644 index 00000000..0fb3b1ac --- /dev/null +++ b/doc/html/_graphics_2_graphics_engine_2include_2pch_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/pch.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
pch.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
26 
27 #pragma once
28 
29 #include <vector>
30 #include <list>
31 #include <set>
32 #include <map>
33 #include <unordered_map>
34 #include <memory>
35 #include <algorithm>
36 #include "GraphicsTypes.h"
37 #include "RefCntAutoPtr.h"
38 #include "Errors.h"
39 #include "DebugUtilities.h"
40 #include "RenderDeviceBase.h"
41 #include "DeviceContextBase.h"
+ + + + + diff --git a/doc/html/_graphics_2_graphics_engine_2interface_2shader_8h_source.html b/doc/html/_graphics_2_graphics_engine_2interface_2shader_8h_source.html new file mode 100644 index 00000000..94ca1b62 --- /dev/null +++ b/doc/html/_graphics_2_graphics_engine_2interface_2shader_8h_source.html @@ -0,0 +1,148 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/Shader.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Shader.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DeviceObject.h"
30 #include "ResourceMapping.h"
31 #include "FileStream.h"
32 #include "Sampler.h"
33 
34 namespace Diligent
35 {
36 
37 // {2989B45C-143D-4886-B89C-C3271C2DCC5D}
38 static constexpr INTERFACE_ID IID_Shader =
39 { 0x2989b45c, 0x143d, 0x4886, { 0xb8, 0x9c, 0xc3, 0x27, 0x1c, 0x2d, 0xcc, 0x5d } };
40 
41 // {0D57DF3F-977D-4C8F-B64C-6675814BC80C}
42 static constexpr INTERFACE_ID IID_ShaderVariable =
43 { 0xd57df3f, 0x977d, 0x4c8f, { 0xb6, 0x4c, 0x66, 0x75, 0x81, 0x4b, 0xc8, 0xc } };
44 
47 {
52  SHADER_TYPE_HULL = 0x008,
55 };
56 
57 enum SHADER_PROFILE : Int32
58 {
59  SHADER_PROFILE_DEFAULT = 0,
60  SHADER_PROFILE_DX_4_0,
61  SHADER_PROFILE_DX_5_0,
62  SHADER_PROFILE_DX_5_1,
63  SHADER_PROFILE_GL_4_2
64 };
65 
68 {
71 
74 
77 };
78 
82 {
86 
92 
97 };
98 
101 {
106 
111 
115 
118 };
119 
122 {
124  const Char *Name;
125 
128  ShaderVariableDesc(const Char *_Name = nullptr, SHADER_VARIABLE_TYPE _Type = SHADER_VARIABLE_TYPE_STATIC) :
129  Name(_Name),
130  Type(_Type)
131  {}
132 };
133 
134 
137 {
139  const Char* TextureName = nullptr;
140 
143 
144  StaticSamplerDesc(){};
145  StaticSamplerDesc(const Char* _TexName, const SamplerDesc &_Desc) :
146  TextureName(_TexName),
147  Desc(_Desc)
148  {}
149 };
150 
153 {
156 
157  Bool bCacheCompiledShader;
158  SHADER_PROFILE TargetProfile;
159 
164 
167 
170 
173 
176 
177  ShaderDesc() :
179  bCacheCompiledShader(False),
180  TargetProfile(SHADER_PROFILE_DEFAULT),
182  VariableDesc(nullptr),
183  NumVariables(0),
185  StaticSamplers(nullptr)
186  {}
187 };
188 
191 {
192 public:
193  virtual void CreateInputStream(const Diligent::Char *Name, IFileStream **ppStream) = 0;
194 };
195 
196 struct ShaderMacro
197 {
198  const Char* Name;
199  const Char* Definition;
200  ShaderMacro(const Char* _Name, const Char* _Def) : Name( _Name ), Definition( _Def ) {}
201 };
202 
205 {
207 
209  const Char* FilePath = nullptr;
210 
212 
216 
218 
228  class IHLSL2GLSLConversionStream **ppConversionStream = nullptr;
229 
231 
233  const Char* Source = nullptr;
234 
236 
239  const void *ByteCode = nullptr;
240 
242 
244  size_t ByteCodeSize = 0;
245 
247 
249  const Char* EntryPoint = "main";
250 
252 
254  const ShaderMacro *Macros = nullptr;
255 
258 
261 };
262 
263 
265 class IShaderVariable : public IObject
266 {
267 public:
269 
273  virtual void Set(IDeviceObject *pObject) = 0;
274 
276 
284  virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements) = 0;
285 };
286 
288 class IShader : public IDeviceObject
289 {
290 public:
292  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface ) = 0;
293 
295  virtual const ShaderDesc &GetDesc()const = 0;
296 
303  virtual void BindResources( IResourceMapping* pResourceMapping, Uint32 Flags ) = 0;
304 
307 
311  virtual IShaderVariable* GetShaderVariable(const Char* Name) = 0;
312 };
313 
314 }
const Char * Source
Shader source.
Definition: Shader.h:233
+
Shader source stream factory interface.
Definition: Shader.h:190
+
const Char * EntryPoint
Shader entry point.
Definition: Shader.h:249
+
Shader interface.
Definition: Shader.h:288
+
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
Shader resource variable.
Definition: Shader.h:265
+
const StaticSamplerDesc * StaticSamplers
Array of static sampler descriptions.
Definition: Shader.h:175
+
If this flag is specified, only unresolved bindings will be updated. All resolved bindings will keep ...
Definition: Shader.h:91
+
Shader description.
Definition: Shader.h:152
+
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
SHADER_TYPE ShaderType
Shader type. See Diligent::SHADER_TYPE.
Definition: Shader.h:155
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
If this flag is specified, all shader bindings are expected to be resolved after the call...
Definition: Shader.h:96
+
SHADER_VARIABLE_TYPE Type
Shader variable type. See Diligent::SHADER_VARIABLE_TYPE for a list of allowed types.
Definition: Shader.h:127
+
SHADER_VARIABLE_TYPE DefaultVariableType
Default shader variable type. This type will be used if shader variable description is not found in a...
Definition: Shader.h:163
+
Pixel (fragment) shader.
Definition: Shader.h:50
+
IShaderSourceInputStreamFactory * pShaderSourceStreamFactory
Pointer to the shader source input stream factory.
Definition: Shader.h:215
+
Static sampler description.
Definition: Shader.h:136
+
Hull (tessellation control) shader.
Definition: Shader.h:52
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
Domain (tessellation evaluation) shader.
Definition: Shader.h:53
+
The source language is GLSL.
Definition: Shader.h:76
+
Reset all bindings. If this flag is specified, all existing bindings will be broken. By default all existing bindings are preserved.
Definition: Shader.h:85
+
const Char * Name
Shader variable name.
Definition: Shader.h:124
+
class IHLSL2GLSLConversionStream ** ppConversionStream
HLSL->GLSL conversion stream.
Definition: Shader.h:228
+
Default language (GLSL for OpenGL/OpenGLES devices, HLSL for Direct3D11/Direct3D12 devices) ...
Definition: Shader.h:70
+
Sampler description.
Definition: Sampler.h:52
+
Describes shader variable.
Definition: Shader.h:121
+
virtual const ShaderDesc & GetDesc() const =0
Returns the shader description.
+
SHADER_VARIABLE_TYPE
Describes shader variable type that is used by ShaderVariableDesc.
Definition: Shader.h:100
+
bool Bool
Boolean.
Definition: BasicTypes.h:46
+
SamplerDesc Desc
Sampler description.
Definition: Shader.h:142
+
Vertex shader.
Definition: Shader.h:49
+
The source language is HLSL.
Definition: Shader.h:73
+
const Char * FilePath
Source file path.
Definition: Shader.h:209
+
virtual IShaderVariable * GetShaderVariable(const Char *Name)=0
Returns an interface to a shader variable. If the shader variable is not found, an interface to a dum...
+
SHADER_SOURCE_LANGUAGE SourceLanguage
Shader source language. See Diligent::SHADER_SOURCE_LANGUAGE.
Definition: Shader.h:260
+
Base interface for a file stream.
Definition: FileStream.h:41
+
Unknown shader type.
Definition: Shader.h:48
+
Base interface for all dynamic objects in the engine.
Definition: Object.h:36
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
Queries the specific interface, see IObject::QueryInterface() for details.
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
Describes common device object attributes.
Definition: GraphicsTypes.h:900
+
virtual void Set(IDeviceObject *pObject)=0
Sets the variable to the given value.
+
Shader variable is constant across all shader instances. It must be set once directly through IShader...
Definition: Shader.h:105
+
const ShaderVariableDesc * VariableDesc
Array of shader variable descriptions.
Definition: Shader.h:166
+
virtual void BindResources(IResourceMapping *pResourceMapping, Uint32 Flags)=0
Binds shader resources.
+
Shader variable is dynamic. It can be set multiple times for every instance of shader resource bindin...
Definition: Shader.h:114
+
Describes unique identifier.
Definition: InterfaceID.h:33
+
const ShaderMacro * Macros
Shader macros.
Definition: Shader.h:254
+
Shader variable is constant across shader resource bindings instance (see IShaderResourceBinding). It must be set once through IShaderResourceBinding::BindResources() or through the shader variable. It cannot be set through IShader interface.
Definition: Shader.h:110
+
Total number of shader variable types.
Definition: Shader.h:117
+
int32_t Int32
32-bit signed integer
Definition: BasicTypes.h:34
+
Uint32 NumVariables
Number of elements in VariableDesc array.
Definition: Shader.h:169
+
Compute shader.
Definition: Shader.h:54
+
virtual void SetArray(IDeviceObject *const *ppObjects, Uint32 FirstElement, Uint32 NumElements)=0
Sets the variable array.
+
ShaderDesc Desc
Shader description. See Diligent::ShaderDesc.
Definition: Shader.h:257
+
Uint32 NumStaticSamplers
Number of static samplers in StaticSamplers array.
Definition: Shader.h:172
+
const Char * TextureName
Name of the texture variable that static sampler will be assigned to.
Definition: Shader.h:139
+
const void * ByteCode
Compiled shader bytecode.
Definition: Shader.h:239
+
Shader creation attributes.
Definition: Shader.h:204
+
Geometry shader.
Definition: Shader.h:51
+
size_t ByteCodeSize
Size of the compiled shader bytecode.
Definition: Shader.h:244
+
SHADER_SOURCE_LANGUAGE
Describes shader source code language.
Definition: Shader.h:67
+
BIND_SHADER_RESOURCES_FLAGS
Describes flags that can be supplied to IShader::BindResources() and IDeviceContext::BindShaderResour...
Definition: Shader.h:81
+
+ + + + + diff --git a/doc/html/_graphics_2_graphics_engine_d3_d11_2include_2pch_8h_source.html b/doc/html/_graphics_2_graphics_engine_d3_d11_2include_2pch_8h_source.html new file mode 100644 index 00000000..ae0fa6b4 --- /dev/null +++ b/doc/html/_graphics_2_graphics_engine_d3_d11_2include_2pch_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/pch.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
pch.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 // stdafx.h : include file for standard system include files,
25 // or project specific include files that are used frequently, but
26 // are changed infrequently
27 //
28 
29 #pragma once
30 
31 #include "targetver.h"
32 
33 #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
34 #define NOMINMAX
35 
36 #include "PlatformDefinitions.h"
37 
38 #include <vector>
39 #include <exception>
40 #include <algorithm>
41 #if defined(PLATFORM_WIN32)
42  #include <d3d11.h>
43 #elif defined(PLATFORM_UNIVERSAL_WINDOWS)
44  #include <d3d11_2.h>
45 #endif
46 
47 #include "EngineD3D11Defines.h"
48 #include "Errors.h"
49 #include "RefCntAutoPtr.h"
50 #include "DebugUtilities.h"
51 #include "D3DErrors.h"
52 #include "RenderDeviceBase.h"
53 #include "D3D11TypeConversions.h"
54 #include "ValidatedCast.h"
55 #include <atlcomcli.h>
+ + + + + diff --git a/doc/html/_graphics_2_graphics_engine_d3_d12_2include_2pch_8h_source.html b/doc/html/_graphics_2_graphics_engine_d3_d12_2include_2pch_8h_source.html new file mode 100644 index 00000000..c8cdbe30 --- /dev/null +++ b/doc/html/_graphics_2_graphics_engine_d3_d12_2include_2pch_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/pch.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
pch.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 // stdafx.h : include file for standard system include files,
25 // or project specific include files that are used frequently, but
26 // are changed infrequently
27 //
28 
29 #pragma once
30 
31 #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
32 #define NOMINMAX
33 
34 
35 #include <vector>
36 #include <exception>
37 #include <algorithm>
38 #include <d3d12.h>
39 
40 #include "PlatformDefinitions.h"
41 #include "Errors.h"
42 #include "RefCntAutoPtr.h"
43 #include "DebugUtilities.h"
44 #include "D3DErrors.h"
45 #include "RenderDeviceBase.h"
46 #include "ValidatedCast.h"
47 #include <atlcomcli.h>
+ + + + + diff --git a/doc/html/_graphics_2_graphics_engine_open_g_l_2include_2_g_l_context_8h_source.html b/doc/html/_graphics_2_graphics_engine_open_g_l_2include_2_g_l_context_8h_source.html new file mode 100644 index 00000000..9f8157d7 --- /dev/null +++ b/doc/html/_graphics_2_graphics_engine_open_g_l_2include_2_g_l_context_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/GLContext.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GLContext.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #if defined(PLATFORM_WIN32)
27 # include "GLContextWindows.h"
28 #elif defined(PLATFORM_ANDROID)
29 # include "GLContextAndroid.h"
30 #elif defined(PLATFORM_LINUX)
31 # include "GLContextLinux.h"
32 #else
33 # error Unsupported platform
34 #endif
+ + + + + diff --git a/doc/html/_graphics_2_graphics_engine_open_g_l_2include_2pch_8h_source.html b/doc/html/_graphics_2_graphics_engine_open_g_l_2include_2pch_8h_source.html new file mode 100644 index 00000000..de1a5afc --- /dev/null +++ b/doc/html/_graphics_2_graphics_engine_open_g_l_2include_2pch_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/pch.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
pch.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 // stdafx.h : include file for standard system include files,
25 // or project specific include files that are used frequently, but
26 // are changed infrequently
27 //
28 
29 #pragma once
30 
31 #include <vector>
32 
33 #include <map>
34 #include <unordered_map>
35 #include <unordered_set>
36 #include <algorithm>
37 
38 #if defined(PLATFORM_WIN32)
39 
40 # ifndef GLEW_STATIC
41 # define GLEW_STATIC // Must be defined to use static version of glew
42 # endif
43 # include "GL/glew.h"
44  // Glew includes <windows.h>
45 # define NOMINMAX
46 # include "GL/wglew.h"
47 # include <GL/GL.h>
48 
49 #elif defined(PLATFORM_LINUX)
50 
51 # ifndef GLEW_STATIC
52 # define GLEW_STATIC // Must be defined to use static version of glew
53 # endif
54 # ifndef GLEW_NO_GLU
55 # define GLEW_NO_GLU
56 # endif
57 
58 # include "GL/glew.h"
59 # include <GL/glx.h>
60 
61 // Undefine beautiful defines from GL/glx.h -> X11/Xlib.h
62 # ifdef Bool
63 # undef Bool
64 # endif
65 # ifdef True
66 # undef True
67 # endif
68 # ifdef False
69 # undef False
70 # endif
71 # ifdef Status
72 # undef Status
73 # endif
74 # ifdef Success
75 # undef Success
76 # endif
77 
78 # elif defined(PLATFORM_ANDROID)
79 
80 # ifndef USE_GL3_STUB
81 # define USE_GL3_STUB 0
82 # endif
83 # if USE_GL3_STUB
84 # include "gl3stub.h"
85 # include <GLES2/gl2platform.h>
86 # else
87 # include <GLES3/gl3.h>
88 # include <GLES3/gl3ext.h>
89 # endif
90 
91 #else
92 # error Unsupported platform
93 #endif
94 
95 #include "Errors.h"
96 
97 #ifdef PLATFORM_ANDROID
98  // GLStubs must be included after GLFeatures!
99  #include "GLStubs.h"
100 #endif
101 
102 #include "PlatformDefinitions.h"
103 #include "RefCntAutoPtr.h"
104 #include "DebugUtilities.h"
105 #include "GLObjectWrapper.h"
106 #include "ValidatedCast.h"
107 #include "RenderDevice.h"
108 #include "BaseInterfacesGL.h"
109 
110 #define CHECK_GL_ERROR(...)\
111 { \
112  auto err = glGetError(); \
113  if( err != GL_NO_ERROR ) \
114  { \
115  LogError<false>(__FUNCTION__, __FILE__, __LINE__, __VA_ARGS__, "\nGL Error Code: ", err); \
116  UNEXPECTED("Error"); \
117  } \
118 }
119 
120 #define CHECK_GL_ERROR_AND_THROW(...)\
121 { \
122  auto err = glGetError(); \
123  if( err != GL_NO_ERROR ) \
124  LogError<true>(__FUNCTION__, __FILE__, __LINE__, __VA_ARGS__, "\nGL Error Code: ", err); \
125 }
+ + + + + diff --git a/doc/html/_graphics_2_graphics_tools_2include_2pch_8h_source.html b/doc/html/_graphics_2_graphics_tools_2include_2pch_8h_source.html new file mode 100644 index 00000000..2d65de14 --- /dev/null +++ b/doc/html/_graphics_2_graphics_tools_2include_2pch_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsTools/include/pch.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
pch.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 
+ + + + + diff --git a/doc/html/_graphics_2_h_l_s_l2_g_l_s_l_converter_lib_2include_2pch_8h_source.html b/doc/html/_graphics_2_h_l_s_l2_g_l_s_l_converter_lib_2include_2pch_8h_source.html new file mode 100644 index 00000000..cb347d39 --- /dev/null +++ b/doc/html/_graphics_2_h_l_s_l2_g_l_s_l_converter_lib_2include_2pch_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/HLSL2GLSLConverterLib/include/pch.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
pch.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 // stdafx.h : include file for standard system include files,
25 // or project specific include files that are used frequently, but
26 // are changed infrequently
27 //
28 
29 #pragma once
30 
31 #include <vector>
32 
33 #include <map>
34 #include <unordered_map>
35 #include <unordered_set>
36 #include <algorithm>
37 
38 #include "Errors.h"
39 #include "PlatformDefinitions.h"
40 #include "RefCntAutoPtr.h"
41 #include "DebugUtilities.h"
42 #include "ValidatedCast.h"
43 #include "RenderDevice.h"
44 
45 using namespace Diligent;
46 using namespace std;
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Definition: AdvancedMath.h:316
+
+ + + + + diff --git a/doc/html/_graphics_accessories_8h_source.html b/doc/html/_graphics_accessories_8h_source.html new file mode 100644 index 00000000..4a2ffb8e --- /dev/null +++ b/doc/html/_graphics_accessories_8h_source.html @@ -0,0 +1,134 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsAccessories/interface/GraphicsAccessories.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GraphicsAccessories.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "GraphicsTypes.h"
30 #include "Shader.h"
31 #include "Texture.h"
32 #include "Buffer.h"
33 #include "RenderDevice.h"
34 #include "DebugUtilities.h"
35 
36 namespace Diligent
37 {
38 
40 template<VALUE_TYPE ValType>
42 {};
43 
45 
49 template<>struct VALUE_TYPE2CType<VT_INT8> { typedef Int8 CType; };
50 
52 
56 template<>struct VALUE_TYPE2CType<VT_INT16> { typedef Int16 CType; };
57 
59 
63 template<>struct VALUE_TYPE2CType<VT_INT32> { typedef Int32 CType; };
64 
66 
70 template<>struct VALUE_TYPE2CType<VT_UINT8> { typedef Uint8 CType; };
71 
73 
77 template<>struct VALUE_TYPE2CType<VT_UINT16>{ typedef Uint16 CType; };
78 
80 
84 template<>struct VALUE_TYPE2CType<VT_UINT32>{ typedef Uint32 CType; };
85 
87 
93 template<>struct VALUE_TYPE2CType<VT_FLOAT16>{ typedef Uint16 CType; };
94 
96 
100 template<>struct VALUE_TYPE2CType<VT_FLOAT32>{ typedef Float32 CType; };
101 
102 
103 static const Uint32 ValueTypeToSizeMap[] =
104 {
105  0,
106  sizeof(VALUE_TYPE2CType<VT_INT8> :: CType),
108  sizeof(VALUE_TYPE2CType<VT_INT32> :: CType),
110  sizeof(VALUE_TYPE2CType<VT_UINT16> :: CType),
112  sizeof(VALUE_TYPE2CType<VT_FLOAT16> :: CType),
114 };
115 static_assert(VT_NUM_TYPES == VT_FLOAT32 + 1, "Not all value type sizes initialized.");
116 
119 {
120  VERIFY_EXPR(Val < _countof(ValueTypeToSizeMap));
121  return ValueTypeToSizeMap[Val];
122 }
123 
125 const Char* GetValueTypeString( VALUE_TYPE Val );
126 
128 
132 const TextureFormatAttribs& GetTextureFormatAttribs(TEXTURE_FORMAT Format);
133 
135 
154 
156 
161 {
162  return GetDefaultTextureViewFormat(TexDesc.Format, ViewType, TexDesc.BindFlags);
163 }
164 
167 
170 const Char *GetTexViewTypeLiteralName(TEXTURE_VIEW_TYPE ViewType);
171 
174 
177 const Char *GetBufferViewTypeLiteralName(BUFFER_VIEW_TYPE ViewType);
178 
181 
184 const Char *GetShaderTypeLiteralName(SHADER_TYPE ShaderType);
185 
186 
190 
194 const Char *GetShaderVariableTypeLiteralName(SHADER_VARIABLE_TYPE VarType, bool bGetFullName = false);
195 
198 inline const Char* GetViewTypeLiteralName(TEXTURE_VIEW_TYPE TexViewType)
199 {
200  return GetTexViewTypeLiteralName( TexViewType );
201 }
202 
205 inline const Char* GetViewTypeLiteralName(BUFFER_VIEW_TYPE BuffViewType)
206 {
207  return GetBufferViewTypeLiteralName( BuffViewType );
208 }
209 
211 const Char* GetUsageString(USAGE Usage);
212 
214 const Char* GetResourceDimString( RESOURCE_DIMENSION TexType );
215 
217 String GetBindFlagsString( Uint32 BindFlags );
218 
220 String GetCPUAccessFlagsString( Uint32 CpuAccessFlags );
221 
223 String GetTextureDescString(const TextureDesc &Desc);
224 
226 String GetBufferDescString(const BufferDesc &Desc);
227 
228 
230 template<typename TObjectDescType>
231 String GetObjectDescString( const TObjectDescType& )
232 {
233  return "";
234 }
235 
237 template<>
238 inline String GetObjectDescString( const TextureDesc& TexDesc )
239 {
240  String Str( "Tex desc: " );
241  Str += GetTextureDescString( TexDesc );
242  return Str;
243 }
244 
246 template<>
247 inline String GetObjectDescString( const BufferDesc& BuffDesc )
248 {
249  String Str( "Buff desc: " );
250  Str += GetBufferDescString( BuffDesc );
251  return Str;
252 }
253 
254 Uint32 ComputeMipLevelsCount( Uint32 Width );
255 Uint32 ComputeMipLevelsCount( Uint32 Width, Uint32 Height );
256 Uint32 ComputeMipLevelsCount( Uint32 Width, Uint32 Height, Uint32 Depth );
257 }
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
+
Unsigned 8-bit integer.
Definition: GraphicsTypes.h:45
+
Signed 8-bit integer.
Definition: GraphicsTypes.h:42
+
Texture description.
Definition: Texture.h:82
+
int8_t Int8
8-bit signed integer
Definition: BasicTypes.h:36
+
TEXTURE_VIEW_TYPE
Texture view type.
Definition: GraphicsTypes.h:190
+
const Char * GetUsageString(USAGE Usage)
Returns the string containing the usage.
Definition: GraphicsAccessories.cpp:506
+
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
Unsigned 16-bit integer.
Definition: GraphicsTypes.h:46
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
VALUE_TYPE2CType<> template specialization for 8-bit integer value type.
Definition: GraphicsAccessories.h:49
+
const Char * GetShaderTypeLiteralName(SHADER_TYPE ShaderType)
Returns the literal name of a shader type. For instance, for a pixel shader, "SHADER_TYPE_PIXEL" will...
Definition: GraphicsAccessories.cpp:458
+
TEXTURE_FORMAT Format
Texture format, see Diligent::TEXTURE_FORMAT.
Definition: Texture.h:102
+
VALUE_TYPE2CType<> template specialization for 16-bit unsigned-integer value type.
Definition: GraphicsAccessories.h:77
+
const Char * GetViewTypeLiteralName(TEXTURE_VIEW_TYPE TexViewType)
Overloaded function that returns the literal name of a texture view type. see GetTexViewTypeLiteralNa...
Definition: GraphicsAccessories.h:198
+
VALUE_TYPE2CType<> template specialization for 32-bit integer value type.
Definition: GraphicsAccessories.h:63
+
String GetCPUAccessFlagsString(Uint32 CpuAccessFlags)
Returns the string containing the CPU access flags.
Definition: GraphicsAccessories.cpp:610
+
Signed 32-bit integer.
Definition: GraphicsTypes.h:44
+
const TextureFormatAttribs & GetTextureFormatAttribs(TEXTURE_FORMAT Format)
Returns invariant texture format attributes, see TextureFormatAttribs for details.
Definition: GraphicsAccessories.cpp:238
+
String GetBindFlagsString(Uint32 BindFlags)
Returns the string containing the bind flags.
Definition: GraphicsAccessories.cpp:577
+
uint8_t Uint8
8-bit unsigned integer
Definition: BasicTypes.h:41
+
const Char * GetResourceDimString(RESOURCE_DIMENSION TexType)
Returns the string containing the texture type.
Definition: GraphicsAccessories.cpp:529
+
const Char * GetValueTypeString(VALUE_TYPE Val)
Returns the string representing the specified value type.
Definition: GraphicsAccessories.cpp:31
+
SHADER_VARIABLE_TYPE
Describes shader variable type that is used by ShaderVariableDesc.
Definition: Shader.h:100
+
std::basic_string< Char > String
String variable.
Definition: BasicTypes.h:51
+
Signed 16-bit integer.
Definition: GraphicsTypes.h:43
+
Buffer description.
Definition: Buffer.h:57
+
float Float32
32-bit float
Definition: BasicTypes.h:31
+
VALUE_TYPE
Value type.
Definition: GraphicsTypes.h:39
+
int16_t Int16
16-bit signed integer
Definition: BasicTypes.h:35
+
Template structure to convert VALUE_TYPE enumeration into C-type.
Definition: GraphicsAccessories.h:41
+
Half-precision 16-bit floating point.
Definition: GraphicsTypes.h:48
+
USAGE
Resource usage.
Definition: GraphicsTypes.h:84
+
uint16_t Uint16
16-bit unsigned integer
Definition: BasicTypes.h:40
+
Helper value storing total number of types in the enumeration.
Definition: GraphicsTypes.h:50
+
String GetBufferDescString(const BufferDesc &Desc)
Returns the string containing the buffer description.
Definition: GraphicsAccessories.cpp:708
+
RESOURCE_DIMENSION
Describes resource dimension.
Definition: GraphicsTypes.h:172
+
Full-precision 32-bit floating point.
Definition: GraphicsTypes.h:49
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
Uint32 GetValueSize(VALUE_TYPE Val)
Returns the size of the specified value type.
Definition: GraphicsAccessories.h:118
+
Unsigned 32-bit integer.
Definition: GraphicsTypes.h:47
+
const Char * GetBufferViewTypeLiteralName(BUFFER_VIEW_TYPE ViewType)
Returns the literal name of a buffer view type. For instance, for an unordered access view...
Definition: GraphicsAccessories.cpp:427
+
const Char * GetShaderVariableTypeLiteralName(SHADER_VARIABLE_TYPE VarType, bool bGetFullName=false)
Returns the literal name of a shader variable type. For instance, for SHADER_VARIABLE_TYPE_STATIC, if bGetFullName == true, "SHADER_VARIABLE_TYPE_STATIC" will be returned; if bGetFullName == false, "static" will be returned.
Definition: GraphicsAccessories.cpp:478
+
int32_t Int32
32-bit signed integer
Definition: BasicTypes.h:34
+
const Char * GetTexViewTypeLiteralName(TEXTURE_VIEW_TYPE ViewType)
Returns the literal name of a texture view type. For instance, for a shader resource view...
Definition: GraphicsAccessories.cpp:394
+
VALUE_TYPE2CType<> template specialization for half-precision 16-bit floating-point value type...
Definition: GraphicsAccessories.h:93
+
Uint32 BindFlags
Bind flags, see Diligent::BIND_FLAGS for details. The following bind flags are allowed: Diligent::BI...
Definition: Texture.h:120
+
BUFFER_VIEW_TYPE
Buffer view type.
Definition: GraphicsTypes.h:219
+
String GetTextureDescString(const TextureDesc &Desc)
Returns the string containing the texture description.
Definition: GraphicsAccessories.cpp:639
+
TEXTURE_FORMAT GetDefaultTextureViewFormat(TEXTURE_FORMAT TextureFormat, TEXTURE_VIEW_TYPE ViewType, Uint32 BindFlags)
Returns the default format for a specified texture view type.
Definition: GraphicsAccessories.cpp:232
+
String GetObjectDescString(const TObjectDescType &)
Helper template function that converts object description into a string.
Definition: GraphicsAccessories.h:231
+
+ + + + + diff --git a/doc/html/_graphics_types_8h_source.html b/doc/html/_graphics_types_8h_source.html new file mode 100644 index 00000000..8a1cd072 --- /dev/null +++ b/doc/html/_graphics_types_8h_source.html @@ -0,0 +1,344 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/GraphicsTypes.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GraphicsTypes.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BasicTypes.h"
30 
32 namespace Diligent
33 {
35 
39  enum VALUE_TYPE : Int32
40  {
51  };
52 
54 
61  enum BIND_FLAGS : Int32
62  {
63  BIND_NONE = 0x0L,
67  BIND_SHADER_RESOURCE = 0x8L,
69  BIND_STREAM_OUTPUT = 0x10L,
75  };
76 
78 
84  enum USAGE : Int32
85  {
91 
96 
100 
104  };
105 
107 
112  enum CPU_ACCESS_FLAG : Int32
113  {
116  };
117 
119 
125  enum MAP_TYPE : Int32
126  {
129  MAP_READ = 0x01,
130 
133  MAP_WRITE = 0x02,
134 
138  };
139 
141 
146  enum MAP_FLAGS : Int32
147  {
154 
159 
165  };
166 
168 
172  enum RESOURCE_DIMENSION : Int32
173  {
184  };
185 
187 
190  enum TEXTURE_VIEW_TYPE : Int32
191  {
194 
198 
202 
206 
210 
213  };
214 
216 
219  enum BUFFER_VIEW_TYPE : Int32
220  {
223 
227 
231 
234  };
235 
237 
244  enum TEXTURE_FORMAT : Int32
245  {
248 
252 
256 
260 
264 
269 
274 
279 
284 
288 
292 
298 
302 
309 
313 
317 
321 
325 
329 
333 
337 
341 
346 
350 
354 
358 
362 
366 
370 
374 
378 
382 
386 
390 
394 
400 
404 
410 
414 
418 
422 
426 
430 
434 
438 
442 
446 
451 
455 
459 
463 
467 
471 
475 
479 
483 
489 
493 
499 
503 
507 
511 
515 
519 
523 
528 
533 
537 
542 
547 
555 
564 
573 
581 
590 
599 
607 
616 
625 
633 
642 
651 
659 
668 
677 
682 
687 
692 
697 
702 
707 
712 
717 
722 
730 
738 
746 
754 
762 
770 
773  };
774 
776 
780  enum FILTER_TYPE : Int32
781  {
796  };
797 
799 
805  enum TEXTURE_ADDRESS_MODE : Int32
806  {
809 
813 
817 
822 
827 
834 
837  };
838 
840 
847  enum COMPARISON_FUNCTION : Int32
848  {
851 
855 
859 
863 
867 
871 
875 
879 
883 
886  };
887 
889 
892  {
894 
897  };
898 
901  {
903  const Char* Name;
904 
907  Name(nullptr)
908  {}
909  };
910 
913  {
915  Uint32 Width;
916 
918  Uint32 Height;
919 
922 
925 
927  Uint32 SamplesCount;
928 
930  Uint32 BufferCount;
931 
934 
937 
940  Width(0),
941  Height(0),
944  SamplesCount( 1 ),
945  BufferCount( 2 ),
946  DefaultDepthValue(1.f),
948  {}
949  };
950 
953  {
954  const Char* strShaderCachePath;
957  class IMemoryAllocator *pRawMemAllocator;
959  strShaderCachePath(nullptr),
960  pRawMemAllocator(nullptr)
961  {}
962  };
963 
966  {
969  {
970  1024, // D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV
971  256, // D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER
972  128, // D3D12_DESCRIPTOR_HEAP_TYPE_RTV
973  64 // D3D12_DESCRIPTOR_HEAP_TYPE_DSV
974  };
975 
978  {
979  16384, // D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV
980  1024 // D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER
981  };
982 
985  {
986  4096, // D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV
987  1024 // D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER
988  };
989 
993  {
994  128, // D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV
995  16 // D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER
996  };
997 
1002  };
1003 
1005  struct Box
1006  {
1007  Uint32 MinX;
1008  Uint32 MaxX;
1009  Uint32 MinY;
1010  Uint32 MaxY;
1011  Uint32 MinZ;
1012  Uint32 MaxZ;
1013 
1015  Box(Uint32 _MinX = 0, Uint32 _MaxX = 0,
1016  Uint32 _MinY = 0, Uint32 _MaxY = 0,
1017  Uint32 _MinZ = 0, Uint32 _MaxZ = 1) :
1018  MinX(_MinX), MaxX(_MaxX),
1019  MinY(_MinY), MaxY(_MaxY),
1020  MinZ(_MinZ), MaxZ(_MaxZ)
1021  {}
1022  };
1023 
1024 
1026  enum COMPONENT_TYPE : Int32
1027  {
1030 
1033 
1036 
1039 
1042 
1045 
1048 
1051 
1054 
1057 
1060  };
1061 
1066  {
1069 
1072  const Char *Name;
1073 
1077 
1080 
1083 
1086  const Char *_Name = "TEX_FORMAT_UNKNOWN",
1087  Uint32 _ComponentSize = 0,
1088  Uint32 _NumComponents = 0,
1089  COMPONENT_TYPE _ComponentType = COMPONENT_TYPE_UNDEFINED ) :
1090  Format(_Format),
1091  Name(_Name),
1092  ComponentSize(_ComponentSize),
1093  NumComponents(_NumComponents),
1094  ComponentType(_ComponentType)
1095  {}
1096  };
1097 
1099 
1102  {
1105 
1107  explicit TextureFormatInfo() :
1108  Supported(false)
1109  {}
1110  };
1111 
1113 
1116  {
1119 
1122 
1125 
1127  bool Tex1DFmt;
1128 
1130  bool Tex2DFmt;
1131 
1133  bool Tex3DFmt;
1134 
1137 
1140 
1142  explicit TextureFormatInfoExt() :
1143  Filterable(false),
1144  ColorRenderable(false),
1145  DepthRenderable(false),
1146  Tex1DFmt(false),
1147  Tex2DFmt(false),
1148  Tex3DFmt(false),
1149  TexCubeFmt(false),
1150  SupportsMS(false)
1151  {}
1152  };
1153 }
Comparison passes if the source data is less than or equal to the destination data. Direct3D counterpart: D3D11_COMPARISON_LESS_EQUAL/D3D12_COMPARISON_FUNC_LESS_EQUAL. OpenGL counterpart: GL_LEQUAL.
Definition: GraphicsTypes.h:866
+
bool Tex2DFmt
Indicates if the format can be used to create a 2D texture.
Definition: GraphicsTypes.h:1130
+
Buffer.
Definition: GraphicsTypes.h:175
+
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
+
Two-component typeless block-compression format with 1:2 compression ratio. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:658
+
Unsigned 8-bit integer.
Definition: GraphicsTypes.h:45
+
Swap chain description.
Definition: GraphicsTypes.h:912
+
Signed 8-bit integer.
Definition: GraphicsTypes.h:42
+
Unsigned-integer component type.
Definition: GraphicsTypes.h:1047
+
Uint8 DefaultStencilValue
Default stencil value, which is used as optimized stencil clear value in D3D12.
Definition: GraphicsTypes.h:936
+
Cube-map texture.
Definition: GraphicsTypes.h:181
+
Comparison always passes. Direct3D counterpart: D3D11_COMPARISON_ALWAYS/D3D12_COMPARISON_FUNC_ALWAY...
Definition: GraphicsTypes.h:882
+
Two-dimensional texture.
Definition: GraphicsTypes.h:178
+
A texture can be bound as a render target.
Definition: GraphicsTypes.h:71
+
Uint32 GPUDescriptorHeapDynamicSize[2]
Size of the dynamic GPU descriptor heap region for different heap types.
Definition: GraphicsTypes.h:984
+
One-dimensional texture.
Definition: GraphicsTypes.h:176
+
Four-component 64-bit unsigned-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R1...
Definition: GraphicsTypes.h:301
+
TEXTURE_VIEW_TYPE
Texture view type.
Definition: GraphicsTypes.h:190
+
Four-component unsigned-normalized-integer block-compression format with 5 bits for R...
Definition: GraphicsTypes.h:615
+
Uint32 MinZ
Minimal Z coordinate. Default value is 0.
Definition: GraphicsTypes.h:1011
+
Maximum-linear filtering (DX12 only)
Definition: GraphicsTypes.h:793
+
Two-component 64-bit unsigned-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32...
Definition: GraphicsTypes.h:324
+
Two-component 32-bit typeless format with 24 bits for R and 8 bits for G channel. D3D counterpart: ...
Definition: GraphicsTypes.h:437
+
Four-component 128-bit unsigned-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R...
Definition: GraphicsTypes.h:259
+
Single-component 8-bit unsigned-normalized-integer format. D3D counterpart: DXGI_FORMAT_R8_UNORM. OpenGL counterpart: GL_R8.
Definition: GraphicsTypes.h:510
+
Unknown format.
Definition: GraphicsTypes.h:247
+
Undefined view type.
Definition: GraphicsTypes.h:222
+
Two-component 32-bit signed-normalized-integer format with 16-bit channels. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:409
+
Undefined type.
Definition: GraphicsTypes.h:41
+
Two-component unsigned-normalized-integer block-compression format with 8 bits for R and 8 bits for G...
Definition: GraphicsTypes.h:667
+
Four-component unsigned-normalized-integer block-compression format with 5 bits for R...
Definition: GraphicsTypes.h:563
+
Single-component 32-bit signed-integer format. D3D counterpart: DXGI_FORMAT_R32_SINT. OpenGL counterpart: GL_R32I.
Definition: GraphicsTypes.h:433
+
Uint32 GPUDescriptorHeapSize[2]
Size of the GPU descriptor heap allocations for different heap types.
Definition: GraphicsTypes.h:977
+
Comparison passes if the source data is equal to the destination data. Direct3D counterpart: D3D11_C...
Definition: GraphicsTypes.h:862
+
Uint32 CPUDescriptorHeapAllocationSize[4]
Size of the CPU descriptor heap allocations for different heap types.
Definition: GraphicsTypes.h:968
+
TEXTURE_FORMAT Format
Texture format, see Diligent::TEXTURE_FORMAT for a list of supported texture formats.
Definition: GraphicsTypes.h:1068
+
Four-component 32-bit unsigned-normalized sRGB format with 8 bits for each color channel, and 8 bits are unused. D3D counterpart: DXGI_FORMAT_B8G8R8X8_UNORM_SRGB.
Definition: GraphicsTypes.h:721
+
Cube-map array texture.
Definition: GraphicsTypes.h:182
+
Helper value that stores that total number of texture views.
Definition: GraphicsTypes.h:212
+
A buffer or a texture can be bound as a shader resource.
Definition: GraphicsTypes.h:68
+
bool SupportsMS
Indicates if the format can be used to create a multisampled 2D texture.
Definition: GraphicsTypes.h:1139
+
Texture coordinates outside the range [0.0, 1.0] are set to the texture color at 0.0 or 1.0, respectively. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_CLAMP/D3D12_TEXTURE_ADDRESS_MODE_CLAMP. OpenGL counterpart: GL_CLAMP_TO_EDGE.
Definition: GraphicsTypes.h:821
+
Comparison never passes. Direct3D counterpart: D3D11_COMPARISON_NEVER/D3D12_COMPARISON_FUNC_NEVER. OpenGL counterpart: GL_NEVER.
Definition: GraphicsTypes.h:854
+
Comparison-anisotropic filtering.
Definition: GraphicsTypes.h:788
+
Uint32 ComponentSize
Size of one component in bytes (for instance, for TEX_FORMAT_RGBA8_UNORM format, this will be 1) For ...
Definition: GraphicsTypes.h:1076
+
Single-component 32-bit floating-point format. D3D counterpart: DXGI_FORMAT_R32_FLOAT. OpenGL counterpart: GL_R32F.
Definition: GraphicsTypes.h:425
+
bool TexCubeFmt
Indicates if the format can be used to create a cube texture.
Definition: GraphicsTypes.h:1136
+
Four-component typeless block-compression format with 1:4 compression ratio. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:606
+
Unsigned 16-bit integer.
Definition: GraphicsTypes.h:46
+
Two-component 16-bit signed-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8_S...
Definition: GraphicsTypes.h:470
+
Four component typeless block-compression format with 1:4 compression ratio. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:580
+
const Char * Name
Literal texture format name (for instance, for TEX_FORMAT_RGBA8_UNORM format, this will be "TEX_FORMA...
Definition: GraphicsTypes.h:1072
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Four-component 32-bit unsigned-normalized-integer format with 8 bits for each channel. D3D counterpart: DXGI_FORMAT_B8G8R8A8_UNORM.
Definition: GraphicsTypes.h:691
+
A buffer view will define an unordered access view that will be used for unordered read/write operati...
Definition: GraphicsTypes.h:230
+
Comparison-point filtering.
Definition: GraphicsTypes.h:786
+
Two-component 16-bit unsigned-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8...
Definition: GraphicsTypes.h:462
+
TextureFormatAttribs(TEXTURE_FORMAT _Format=TEX_FORMAT_UNKNOWN, const Char *_Name="TEX_FORMAT_UNKNOWN", Uint32 _ComponentSize=0, Uint32 _NumComponents=0, COMPONENT_TYPE _ComponentType=COMPONENT_TYPE_UNDEFINED)
Initializes the structure.
Definition: GraphicsTypes.h:1085
+
Signed-integer component type.
Definition: GraphicsTypes.h:1044
+
Two-component 32-bit format with 24 bits of unreferenced data and 8 bits of unsigned-integer data...
Definition: GraphicsTypes.h:450
+
bool Filterable
Indicates if the format can be filtered.
Definition: GraphicsTypes.h:1118
+
Undefined view type.
Definition: GraphicsTypes.h:193
+
Signed-normalized-integer component type.
Definition: GraphicsTypes.h:1035
+
Floating point component type.
Definition: GraphicsTypes.h:1032
+
Four-component 16-bit unsigned-normalized-integer format with 5 bits for each color channel and 1-bit...
Definition: GraphicsTypes.h:686
+
Uint32 BufferCount
Number of buffers int the swap chain.
Definition: GraphicsTypes.h:930
+
A buffer can be bound as an index buffer.
Definition: GraphicsTypes.h:65
+
Three-component 96-bit typeless format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32B32...
Definition: GraphicsTypes.h:268
+
Depth component type.
Definition: GraphicsTypes.h:1050
+
Comparison passes if the source data is greater than the destination data. Direct3D counterpart: 3D1...
Definition: GraphicsTypes.h:870
+
Two-component 16-bit unsigned-normalized-integer format with 8-bit channels. D3D counterpart: DXGI_...
Definition: GraphicsTypes.h:458
+
Uint32 MaxY
Maximal Y coordinate. Default value is 0.
Definition: GraphicsTypes.h:1010
+
Four-component 64-bit unsigned-normalized-integer format with 16-bit channels. D3D counterpart: DXG...
Definition: GraphicsTypes.h:297
+
Four-component 32-bit unsigned-integer format with 10 bits for each color and 2 bits for alpha channe...
Definition: GraphicsTypes.h:357
+
TEXTURE_ADDRESS_MODE
Texture address mode.
Definition: GraphicsTypes.h:805
+
Single-component 32-bit unsigned-integer format. D3D counterpart: DXGI_FORMAT_R32_UINT. OpenGL counterpart: GL_R32UI.
Definition: GraphicsTypes.h:429
+
Single-component 16-bit unsigned-integer format. D3D counterpart: DXGI_FORMAT_R16_UINT. OpenGL counterpart: GL_R16UI.
Definition: GraphicsTypes.h:492
+
Four-component 64-bit typeless format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16B16A...
Definition: GraphicsTypes.h:287
+
One-component unsigned-normalized-integer block-compression format with 8 bits for R channel...
Definition: GraphicsTypes.h:641
+
Single-component 16-bit unsigned-normalized-integer format. D3D counterpart: DXGI_FORMAT_R16_UNORM...
Definition: GraphicsTypes.h:488
+
BIND_FLAGS
Resource binding flags.
Definition: GraphicsTypes.h:61
+
Box(Uint32 _MinX=0, Uint32 _MaxX=0, Uint32 _MinY=0, Uint32 _MaxY=0, Uint32 _MinZ=0, Uint32 _MaxZ=1)
Constructor intializes the structure.
Definition: GraphicsTypes.h:1015
+
Four-component 32-bit unsigned-normalized-integer format with 10 bits for each color and 2 bits for a...
Definition: GraphicsTypes.h:353
+
Undefined component type.
Definition: GraphicsTypes.h:1029
+
Previous contents of the resource will be undefined. This flag is only compatible with MAP_WRITE D3D...
Definition: GraphicsTypes.h:158
+
Two-component 32-bit half-precision floating-point format with 16-bit channels. D3D counterpart: DX...
Definition: GraphicsTypes.h:393
+
Minimum-linear filtering (DX12 only)
Definition: GraphicsTypes.h:790
+
Single-component 32-bit floating-point depth format. D3D counterpart: DXGI_FORMAT_D32_FLOAT. OpenGL counterpart: GL_DEPTH_COMPONENT32F.
Definition: GraphicsTypes.h:421
+
Single-component 16-bit unsigned-normalized-integer depth format. D3D counterpart: DXGI_FORMAT_D16_...
Definition: GraphicsTypes.h:482
+
Four-component 32-bit signed-normalized-integer format with 8-bit channels. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:381
+
Single-component 8-bit unsigned-normalized-integer format for alpha only. D3D counterpart: DXGI_FOR...
Definition: GraphicsTypes.h:527
+
Signed 32-bit integer.
Definition: GraphicsTypes.h:44
+
Three-component 16-bit unsigned-normalized-integer format with 5 bits for blue, 6 bits for green...
Definition: GraphicsTypes.h:681
+
Three-component typeless block-compression format. D3D counterpart: DXGI_FORMAT_BC6H_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT is used. OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1.
Definition: GraphicsTypes.h:729
+
Comparison-linear filtering.
Definition: GraphicsTypes.h:787
+
Four-component 64-bit signed-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G...
Definition: GraphicsTypes.h:312
+
Comparison passes if the source data is less than the destination data. Direct3D counterpart: D3D11_...
Definition: GraphicsTypes.h:858
+
Single-component 1-bit format. D3D counterpart: DXGI_FORMAT_R1_UNORM.
Definition: GraphicsTypes.h:532
+
One-component typeless block-compression format with 1:2 compression ratio. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:632
+
COMPONENT_TYPE
Describes texture format component type.
Definition: GraphicsTypes.h:1026
+
DeviceObjectAttribs()
Constructor intializes the structure members with default values.
Definition: GraphicsTypes.h:906
+
Three-component unsigned half-precision floating-point format with 16 bits for each channel...
Definition: GraphicsTypes.h:737
+
Two-component 64-bit signed-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G3...
Definition: GraphicsTypes.h:328
+
Two-component 16-bit typeless format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8_TYPELES...
Definition: GraphicsTypes.h:454
+
Four-component 32-bit unsigned-normalized-integer format with 8-bit channels. D3D counterpart: DXGI...
Definition: GraphicsTypes.h:369
+
Two-component 64-bit typeless format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32_TYPE...
Definition: GraphicsTypes.h:316
+
Three-component 32-bit format encoding three partial precision channels using 11 bits for red and gre...
Definition: GraphicsTypes.h:361
+
bool Supported
Indicates if the format is supported by the device.
Definition: GraphicsTypes.h:1104
+
A buffer can be bound as a vertex buffer.
Definition: GraphicsTypes.h:64
+
Four-component unsigned-normalized integer format analogous to UYVY encoding. D3D counterpart: DXGI...
Definition: GraphicsTypes.h:541
+
Uint32 NumCommandsToFlushCmdList
Number of commands to flush the command list. Only draw/dispatch commands count towards the limit...
Definition: GraphicsTypes.h:1001
+
Four-component 32-bit unsigned-normalized-integer format with 8 bits for each color channel and 8 bit...
Definition: GraphicsTypes.h:696
+
Single-component 16-bit half-precisoin floating-point format. D3D counterpart: DXGI_FORMAT_R16_FLOA...
Definition: GraphicsTypes.h:478
+
Three-component 96-bit floating-point format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32...
Definition: GraphicsTypes.h:273
+
Four-component unsigned-normalized-integer block-compression format with 5 bits for R...
Definition: GraphicsTypes.h:589
+
Tile the texture at every integer junction. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_WRAP/D3D12_...
Definition: GraphicsTypes.h:812
+
Maximum-anisotropic filtering (DX12 only)
Definition: GraphicsTypes.h:794
+
bool Tex3DFmt
Indicates if the format can be used to create a 3D texture.
Definition: GraphicsTypes.h:1133
+
A buffer can be bound as the source buffer for indirect draw commands.
Definition: GraphicsTypes.h:74
+
Four-component 32-bit signed-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8B...
Definition: GraphicsTypes.h:385
+
Unknown filter type.
Definition: GraphicsTypes.h:782
+
Comparison passes if the source data is not equal to the destination data. Direct3D counterpart: D3D...
Definition: GraphicsTypes.h:874
+
Four-component typeless block-compression format with 1:8 compression ratio. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:554
+
A resource can be mapped for reading.
Definition: GraphicsTypes.h:114
+
A texture can be bound as a depth-stencil target.
Definition: GraphicsTypes.h:72
+
Compound component type (example texture formats: TEX_FORMAT_R11G11B10_FLOAT or TEX_FORMAT_RGB9E5_SHA...
Definition: GraphicsTypes.h:1056
+
Four-component unsigned-normalized-integer block-compression sRGB format with 5 bits for R...
Definition: GraphicsTypes.h:572
+
bool ColorRenderable
Indicates if the format can be used as a render target format.
Definition: GraphicsTypes.h:1121
+
Box.
Definition: GraphicsTypes.h:1005
+
A texture view will define a depth stencil view that will be used as the target for rendering operati...
Definition: GraphicsTypes.h:205
+
A resource that requires read and write access by the GPU and can also be occasionally written by the...
Definition: GraphicsTypes.h:95
+
Single-component 16-bit signed-integer format. D3D counterpart: DXGI_FORMAT_R16_SINT. OpenGL counterpart: GL_R16I.
Definition: GraphicsTypes.h:502
+
Unsigned-normalized-integer sRGB component type.
Definition: GraphicsTypes.h:1041
+
Signed 16-bit integer.
Definition: GraphicsTypes.h:43
+
Comparison passes if the source data is greater than or equal to the destination data. Direct3D counterpart: D3D11_COMPARISON_GREATER_EQUAL/D3D12_COMPARISON_FUNC_GREATER_EQUAL. OpenGL counterpart: GL_GEQUAL.
Definition: GraphicsTypes.h:878
+
Two-component 32-bit format with 24 bits for unsigned-normalized-integer data and 8 bits of unreferen...
Definition: GraphicsTypes.h:445
+
The system will not synchronize pending operations before mapping the buffer. It is responsibility of...
Definition: GraphicsTypes.h:164
+
Two-component 64-bit floating-point format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G3...
Definition: GraphicsTypes.h:320
+
Maximum-point filtering (DX12 only)
Definition: GraphicsTypes.h:792
+
Helper value that stores the total number of texture address modes in the enumeration.
Definition: GraphicsTypes.h:836
+
MISC_TEXTURE_FLAG
Miscellaneous texture flags.
Definition: GraphicsTypes.h:891
+
A resource that can only be read by the GPU. It cannot be written by the GPU, and cannot be accessed ...
Definition: GraphicsTypes.h:90
+
Two-component 32-bit signed-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G1...
Definition: GraphicsTypes.h:413
+
Four-component 64-bit signed-normalized-integer format with 16-bit channels. D3D counterpart: DXGI_...
Definition: GraphicsTypes.h:308
+
VALUE_TYPE
Value type.
Definition: GraphicsTypes.h:39
+
Uint32 MinX
Minimal X coordinate. Default value is 0.
Definition: GraphicsTypes.h:1007
+
CPU_ACCESS_FLAG
Allowed CPU access mode flags when mapping a resource.
Definition: GraphicsTypes.h:112
+
Four-component unsigned-normalized-integer block-compression sRGB format with 5 bits for R...
Definition: GraphicsTypes.h:624
+
One-component signed-normalized-integer block-compression format with 8 bits for R channel...
Definition: GraphicsTypes.h:650
+
Engine creation attibutes.
Definition: GraphicsTypes.h:952
+
Texture coordinates outside the range [0.0, 1.0] are set to the border color specified specified in S...
Definition: GraphicsTypes.h:826
+
Describes invariant texture format attributes. These attributes are intrinsic to the texture format i...
Definition: GraphicsTypes.h:1065
+
Float32 DefaultDepthValue
Default depth value, which is used as optimized depth clear value in D3D12.
Definition: GraphicsTypes.h:933
+
const Char * Name
Object name.
Definition: GraphicsTypes.h:903
+
Unknown comparison function.
Definition: GraphicsTypes.h:850
+
SwapChainDesc()
Constructor intializes the structure members with default values.
Definition: GraphicsTypes.h:939
+
Specifies that map operation should not wait until previous command that using the same resource comp...
Definition: GraphicsTypes.h:153
+
Compressed component type.
Definition: GraphicsTypes.h:1059
+
TextureFormatInfo()
Initializes the structure with default values.
Definition: GraphicsTypes.h:1107
+
Resource is mapped for writing. D3D11 counterpart: D3D11_MAP_WRITE. OpenGL counterpart: GL_MAP_WRIT...
Definition: GraphicsTypes.h:133
+
Unsigned-normalized-integer component type.
Definition: GraphicsTypes.h:1038
+
COMPONENT_TYPE ComponentType
Component type, see Diligent::COMPONENT_TYPE for details.
Definition: GraphicsTypes.h:1082
+
Two-component signed-normalized-integer block-compression format with 8 bits for R and 8 bits for G c...
Definition: GraphicsTypes.h:676
+
Uint32 MaxZ
Maximal Z coordinate. Default value is 1.
Definition: GraphicsTypes.h:1012
+
A resource that facilitates transferring data from GPU to CPU. D3D11 Counterpart: D3D11_USAGE_STAGI...
Definition: GraphicsTypes.h:103
+
Three partial-precision floating pointer numbers sharing single exponent encoded into a 32-bit value...
Definition: GraphicsTypes.h:536
+
Resource is mapped for reading. D3D11 counterpart: D3D11_MAP_READ. OpenGL counterpart: GL_MAP_READ_...
Definition: GraphicsTypes.h:129
+
Two-component 32-bit unsigned-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16...
Definition: GraphicsTypes.h:403
+
Four-component unsigned-normalized integer format analogous to YUY2 encoding. D3D counterpart: DXGI...
Definition: GraphicsTypes.h:546
+
One-dimensional texture array.
Definition: GraphicsTypes.h:177
+
Three-component 96-bit signed-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32...
Definition: GraphicsTypes.h:283
+
Three-component typeless block-compression format. D3D counterpart: DXGI_FORMAT_BC7_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RGBA_BPTC_UNORM is used. OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1.
Definition: GraphicsTypes.h:753
+
Point filtering.
Definition: GraphicsTypes.h:783
+
Two-component 64-bit format with 32-bit floating-point depth channel and 8-bit stencil channel...
Definition: GraphicsTypes.h:336
+
Four-component 32-bit unsigned-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G...
Definition: GraphicsTypes.h:377
+
Half-precision 16-bit floating point.
Definition: GraphicsTypes.h:48
+
USAGE
Resource usage.
Definition: GraphicsTypes.h:84
+
Four-component 32-bit typeless format that with 8 bits for each color channel, and 8 bits are unused...
Definition: GraphicsTypes.h:716
+
Helper value that stores that total number of buffer views.
Definition: GraphicsTypes.h:233
+
Allow automatic mipmap generation with ITextureView::GenerateMips()
Definition: GraphicsTypes.h:896
+
Uint32 NumComponents
Number of components.
Definition: GraphicsTypes.h:1079
+
A buffer or a texture can be bound as an unordered access view.
Definition: GraphicsTypes.h:73
+
Unknown mode.
Definition: GraphicsTypes.h:808
+
Uint32 MaxX
Maximal X coordinate. Default value is 0.
Definition: GraphicsTypes.h:1008
+
Helper value storing total number of types in the enumeration.
Definition: GraphicsTypes.h:50
+
Three-channel signed half-precision floating-point format with 16 bits per each channel. D3D counterpart: DXGI_FORMAT_BC6H_SF16. OpenGL counterpart: GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT. OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1.
Definition: GraphicsTypes.h:745
+
Single-component 8-bit signed-normalized-integer format. D3D counterpart: DXGI_FORMAT_R8_SNORM. OpenGL counterpart: GL_R8_SNORM.
Definition: GraphicsTypes.h:518
+
RESOURCE_DIMENSION
Describes resource dimension.
Definition: GraphicsTypes.h:172
+
Depth-stencil component type.
Definition: GraphicsTypes.h:1053
+
Three-component block-compression unsigned-normalized-integer format with 4 to 7 bits per color chann...
Definition: GraphicsTypes.h:761
+
Extended texture format description.
Definition: GraphicsTypes.h:1115
+
Helper value that stores the total number of filter types in the enumeration.
Definition: GraphicsTypes.h:795
+
Full-precision 32-bit floating point.
Definition: GraphicsTypes.h:49
+
Minimum-anisotropic filtering (DX12 only)
Definition: GraphicsTypes.h:791
+
A buffer can be bound as a target for stream output stage.
Definition: GraphicsTypes.h:70
+
A buffer view will define a shader resource view that will be used as the source for the shader read ...
Definition: GraphicsTypes.h:226
+
Four-component 32-bit unsigned-normalized-integer sRGB format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8B8A8_UNORM_SRGB. OpenGL counterpart: GL_SRGB8_ALPHA8.
Definition: GraphicsTypes.h:373
+
A buffer can be bound as a uniform buffer.
Definition: GraphicsTypes.h:66
+
Describes common device object attributes.
Definition: GraphicsTypes.h:900
+
Single-component 8-bit typeless format. D3D counterpart: DXGI_FORMAT_R8_TYPELESS. OpenGL does not have direct counterpart, GL_R8 is used.
Definition: GraphicsTypes.h:506
+
Helper member containing the total number of texture formats in the enumeration.
Definition: GraphicsTypes.h:772
+
A texture view will define an unordered access view that will be used for unordered read/write operat...
Definition: GraphicsTypes.h:209
+
FILTER_TYPE
Filter type.
Definition: GraphicsTypes.h:780
+
Three-dimensional texture.
Definition: GraphicsTypes.h:180
+
TEXTURE_FORMAT DepthBufferFormat
Depth buffer format. Default value is TEX_FORMAT_D32_FLOAT.
Definition: GraphicsTypes.h:924
+
Three-component 96-bit unsigned-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R...
Definition: GraphicsTypes.h:278
+
Helper value that stores the total number of texture types in the enumeration.
Definition: GraphicsTypes.h:183
+
Two-component 32-bit typeless format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16_TYPE...
Definition: GraphicsTypes.h:389
+
A resource can be mapped for writing.
Definition: GraphicsTypes.h:115
+
Two-component 64-bit format with 32-bit typeless data and 8-bit G channel. D3D counterpart: DXGI_FO...
Definition: GraphicsTypes.h:345
+
Unsigned 32-bit integer.
Definition: GraphicsTypes.h:47
+
TextureFormatInfoExt()
Initializes the structure with default values.
Definition: GraphicsTypes.h:1142
+
Three-component block-compression unsigned-normalized-integer sRGB format with 4 to 7 bits per color ...
Definition: GraphicsTypes.h:769
+
Two-component 32-bit format with 24 bits for unsigned-normalized-integer depth and 8 bits for stencil...
Definition: GraphicsTypes.h:441
+
class IMemoryAllocator * pRawMemAllocator
Pointer to the raw memory allocator that will be used for all memory allocation/deallocation operatio...
Definition: GraphicsTypes.h:957
+
Uint32 SamplesCount
Sample count. Default value is 1.
Definition: GraphicsTypes.h:927
+
bool Tex1DFmt
Indicates if the format can be used to create a 1D texture.
Definition: GraphicsTypes.h:1127
+
Four-component 32-bit typeless format with 10 bits for RGB and 2 bits for alpha channel. D3D counterpart: DXGI_FORMAT_R10G10B10A2_TYPELESS. OpenGL does not have direct counterpart, GL_RGB10_A2 is used.
Definition: GraphicsTypes.h:349
+
Four-component 128-bit floating-point format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32...
Definition: GraphicsTypes.h:255
+
Uint32 DynamicDescriptorAllocationChunkSize[2]
This is the size of the chunk that dynamic descriptor allocations manager request from the main GPU d...
Definition: GraphicsTypes.h:992
+
Four-component 128-bit signed-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32...
Definition: GraphicsTypes.h:263
+
Four-component 32-bit unsigned-normalized sRGB format with 8 bits for each channel. D3D counterpart: DXGI_FORMAT_B8G8R8A8_UNORM_SRGB.
Definition: GraphicsTypes.h:711
+
Two-component 16-bit signed-normalized-integer format with 8-bit channels. D3D counterpart: DXGI_FO...
Definition: GraphicsTypes.h:466
+
Texture type undefined.
Definition: GraphicsTypes.h:174
+
Four-component signed-normalized-integer block-compression sRGB format with 5 bits for R...
Definition: GraphicsTypes.h:598
+
COMPARISON_FUNCTION
Comparison function.
Definition: GraphicsTypes.h:847
+
Two-component 64-bit typeless format with 32-bits for R channel and 8 bits for G channel. D3D counterpart: DXGI_FORMAT_R32G8X24_TYPELESS. OpenGL does not have direct counterpart, GL_DEPTH32F_STENCIL8 is used.
Definition: GraphicsTypes.h:332
+
A texture view will define a shader resource view that will be used as the source for the shader read...
Definition: GraphicsTypes.h:197
+
Two-component 32-bit unsigned-normalized-integer format with 16-bit channels. D3D counterpart: DXGI...
Definition: GraphicsTypes.h:399
+
MAP_FLAGS
Special map flags.
Definition: GraphicsTypes.h:146
+
Resource is mapped for reading and writing. D3D11 counterpart: D3D11_MAP_READ_WRITE. OpenGL counterpart: GL_MAP_WRITE_BIT | GL_MAP_READ_BIT.
Definition: GraphicsTypes.h:137
+
Uint32 MinY
Minimal Y coordinate. Default value is 0.
Definition: GraphicsTypes.h:1009
+
Two-component 64-bit format with 32-bit floating-point R channel and 8+24-bits of typeless data...
Definition: GraphicsTypes.h:340
+
bool DepthRenderable
Indicates if the format can be used as a depth format.
Definition: GraphicsTypes.h:1124
+
Four-component 32-bit typeless format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8B8A8_TY...
Definition: GraphicsTypes.h:365
+
Flip the texture at every integer junction. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_MIRROR/D3D1...
Definition: GraphicsTypes.h:816
+
TEXTURE_FORMAT ColorBufferFormat
Back buffer format. Default value is TEX_FORMAT_RGBA8_UNORM_SRGB.
Definition: GraphicsTypes.h:921
+
Attributes specific to D3D12 engine.
Definition: GraphicsTypes.h:965
+
Four-component 64-bit half-precision floating-point format with 16-bit channels. D3D counterpart: D...
Definition: GraphicsTypes.h:291
+
Uint32 Height
The swap chain height. Default value is 0.
Definition: GraphicsTypes.h:918
+
Four-component 32-bit 2.8-biased fixed-point format with 10 bits for each color channel and 2-bit alp...
Definition: GraphicsTypes.h:701
+
Four-component 128-bit typeless format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32B32...
Definition: GraphicsTypes.h:251
+
Single-component 8-bit unsigned-integer format. D3D counterpart: DXGI_FORMAT_R8_UINT. OpenGL counterpart: GL_R8UI.
Definition: GraphicsTypes.h:514
+
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:125
+
Uint32 Width
The swap chain width. Default value is 0.
Definition: GraphicsTypes.h:915
+
Helper value that stores the total number of comparison functions in the enumeration.
Definition: GraphicsTypes.h:885
+
Single-component 8-bit signed-integer format. D3D counterpart: DXGI_FORMAT_R8_SINT. OpenGL counterpart: GL_R8I.
Definition: GraphicsTypes.h:522
+
Four-component 32-bit typeless format with 8 bits for each channel. D3D counterpart: DXGI_FORMAT_B8...
Definition: GraphicsTypes.h:706
+
Single-component 16-bit signed-normalized-integer format. D3D counterpart: DXGI_FORMAT_R16_SNORM. OpenGL counterpart: GL_R16_SNORM. OpenGLES: GL_EXT_texture_norm16 extension is required.
Definition: GraphicsTypes.h:498
+
A texture view will define a render target view that will be used as the target for rendering operati...
Definition: GraphicsTypes.h:201
+
A resource that can be read by the GPU and written at least once per frame by the CPU...
Definition: GraphicsTypes.h:99
+
Two-dimensional texture array.
Definition: GraphicsTypes.h:179
+
Anisotropic filtering.
Definition: GraphicsTypes.h:785
+
BUFFER_VIEW_TYPE
Buffer view type.
Definition: GraphicsTypes.h:219
+
Minimum-point filtering (DX12 only)
Definition: GraphicsTypes.h:789
+
Basic texture format description.
Definition: GraphicsTypes.h:1101
+
Single-component 16-bit typeless format. D3D counterpart: DXGI_FORMAT_R16_TYPELESS. OpenGL does not have direct counterpart, GL_R16F is used.
Definition: GraphicsTypes.h:474
+
Single-component 32-bit typeless format. D3D counterpart: DXGI_FORMAT_R32_TYPELESS. OpenGL does not have direct counterpart, GL_R32F is used.
Definition: GraphicsTypes.h:417
+
Linear filtering.
Definition: GraphicsTypes.h:784
+
Similar to TEXTURE_ADDRESS_MIRROR and TEXTURE_ADDRESS_CLAMP. Takes the absolute value of the texture ...
Definition: GraphicsTypes.h:833
+
Undefined binding.
Definition: GraphicsTypes.h:63
+
+ + + + + diff --git a/doc/html/_graphics_utilities_8h_source.html b/doc/html/_graphics_utilities_8h_source.html new file mode 100644 index 00000000..e2e33db3 --- /dev/null +++ b/doc/html/_graphics_utilities_8h_source.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsTools/include/GraphicsUtilities.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GraphicsUtilities.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Texture.h"
30 #include "Buffer.h"
31 #include "RenderDevice.h"
32 
33 namespace Diligent
34 {
35 void CreateUniformBuffer( IRenderDevice *pDevice, Uint32 Size, const Char *Name, IBuffer **ppBuffer, USAGE Usage = USAGE_DYNAMIC, Uint32 BindFlag = BIND_UNIFORM_BUFFER, Uint32 CPUAccessFlags = CPU_ACCESS_WRITE );
36 void GenerateCheckerBoardPattern(Uint32 Width, Uint32 Height, TEXTURE_FORMAT Fmt, Uint32 HorzCells, Uint32 VertCells, Uint8 *pData, Uint32 StrideInBytes );
37 }
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
uint8_t Uint8
8-bit unsigned integer
Definition: BasicTypes.h:41
+
USAGE
Resource usage.
Definition: GraphicsTypes.h:84
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
A buffer can be bound as a uniform buffer.
Definition: GraphicsTypes.h:66
+
A resource can be mapped for writing.
Definition: GraphicsTypes.h:115
+
A resource that can be read by the GPU and written at least once per frame by the CPU...
Definition: GraphicsTypes.h:99
+
+ + + + + diff --git a/doc/html/_h_l_s_l2_g_l_s_l_converter_8h_source.html b/doc/html/_h_l_s_l2_g_l_s_l_converter_8h_source.html new file mode 100644 index 00000000..036acd84 --- /dev/null +++ b/doc/html/_h_l_s_l2_g_l_s_l_converter_8h_source.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/HLSL2GLSLConverterLib/interface/HLSL2GLSLConverter.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
HLSL2GLSLConverter.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Shader.h"
30 #include "DataBlob.h"
31 
32 namespace Diligent
33 {
34 
35 // {1FDE020A-9C73-4A76-8AEF-C2C6C2CF0EA5}
36 static constexpr INTERFACE_ID IID_HLSL2GLSLConversionStream =
37 { 0x1fde020a, 0x9c73, 0x4a76, { 0x8a, 0xef, 0xc2, 0xc6, 0xc2, 0xcf, 0xe, 0xa5 } };
38 
39 class IHLSL2GLSLConversionStream : public IObject
40 {
41 public:
42  virtual void Convert(const Char* EntryPoint, SHADER_TYPE ShaderType, bool IncludeDefintions, IDataBlob **ppGLSLSource) = 0;
43 };
44 
45 
46 // {44A21160-77E0-4DDC-A57E-B8B8B65B5342}
47 static constexpr INTERFACE_ID IID_HLSL2GLSLConverter =
48 { 0x44a21160, 0x77e0, 0x4ddc, { 0xa5, 0x7e, 0xb8, 0xb8, 0xb6, 0x5b, 0x53, 0x42 } };
49 
52 {
53 public:
54  virtual void CreateStream(const Char* InputFileName,
55  IShaderSourceInputStreamFactory *pSourceStreamFactory,
56  const Char* HLSLSource,
57  size_t NumSymbols,
58  IHLSL2GLSLConversionStream **ppStream)const = 0;
59 };
60 
61 }
Shader source stream factory interface.
Definition: Shader.h:190
+
Interface to the buffer object implemented in OpenGL.
Definition: HLSL2GLSLConverter.h:51
+
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Base interface for all dynamic objects in the engine.
Definition: Object.h:36
+
+ + + + + diff --git a/doc/html/_h_l_s_l2_g_l_s_l_converter_impl_8h_source.html b/doc/html/_h_l_s_l2_g_l_s_l_converter_impl_8h_source.html new file mode 100644 index 00000000..6655f505 --- /dev/null +++ b/doc/html/_h_l_s_l2_g_l_s_l_converter_impl_8h_source.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/HLSL2GLSLConverterLib/include/HLSL2GLSLConverterImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
HLSL2GLSLConverterImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <list>
27 #include <unordered_set>
28 #include <unordered_map>
29 
30 #include "HLSL2GLSLConverter.h"
31 #include "ObjectBase.h"
32 #include "HLSLKeywords.h"
33 #include "Shader.h"
34 #include "HashUtils.h"
35 #include "HLSLKeywords.h"
36 
37 namespace Diligent
38 {
39  struct FunctionStubHashKey
40  {
41  FunctionStubHashKey(const String& _Obj, const String& _Func, Uint32 _NumArgs) :
42  Object(_Obj),
43  Function(_Func),
44  NumArguments(_NumArgs)
45  {
46  }
47 
48  FunctionStubHashKey(const Char* _Obj, const Char* _Func, Uint32 _NumArgs) :
49  Object(_Obj),
50  Function(_Func),
51  NumArguments(_NumArgs)
52  {
53  }
54 
55  FunctionStubHashKey( FunctionStubHashKey && Key ) :
56  Object(std::move(Key.Object)),
57  Function(std::move(Key.Function)),
58  NumArguments(Key.NumArguments)
59  {
60  }
61 
62  bool operator==(const FunctionStubHashKey& rhs)const
63  {
64  return Object == rhs.Object &&
65  Function == rhs.Function &&
66  NumArguments == rhs.NumArguments;
67  }
68 
69  HashMapStringKey Object;
70  HashMapStringKey Function;
71  Uint32 NumArguments;
72  };
73 }
74 
75 namespace std
76 {
77  template<>struct hash < Diligent::FunctionStubHashKey >
78  {
79  size_t operator()( const Diligent::FunctionStubHashKey &Key ) const
80  {
81  return ComputeHash(Key.Object, Key.Function, Key.NumArguments);
82  }
83  };
84 }
85 
86 namespace Diligent
87 {
88  class HLSL2GLSLConverterImpl
89  {
90  public:
91  static const HLSL2GLSLConverterImpl& GetInstance();
92  struct ConversionAttribs
93  {
94  IShaderSourceInputStreamFactory *pSourceStreamFactory = nullptr;
95  IHLSL2GLSLConversionStream **ppConversionStream = nullptr;
96  const Char* HLSLSource = nullptr;
97  size_t NumSymbols = 0;
98  const Char* EntryPoint = nullptr;
99  SHADER_TYPE ShaderType = SHADER_TYPE_UNKNOWN;
100  bool IncludeDefinitions = false;
101  const Char* InputFileName = nullptr;
102  };
103 
104  String Convert(ConversionAttribs &Attribs)const;
105  void CreateStream(const Char* InputFileName,
106  IShaderSourceInputStreamFactory *pSourceStreamFactory,
107  const Char* HLSLSource,
108  size_t NumSymbols,
109  IHLSL2GLSLConversionStream **ppStream)const;
110 
111  private:
112  HLSL2GLSLConverterImpl();
113 
114  struct HLSLObjectInfo
115  {
116  String GLSLType; // sampler2D, sampler2DShadow, image2D, etc.
117  Uint32 NumComponents; // 0,1,2,3 or 4
118  // Texture2D<float4> -> 4
119  // Texture2D<uint> -> 1
120  // Texture2D -> 0
121  HLSLObjectInfo( const String& Type, Uint32 NComp ) :
122  GLSLType( Type ),
123  NumComponents( NComp )
124  {}
125  };
126  struct ObjectsTypeHashType
127  {
128  // This is only required to make the code compile on paranoid MSVC 2017 compiler (19.10.25017):
129  // https://stackoverflow.com/questions/47604029/move-constructors-of-stl-containers-in-msvc-2017-are-not-marked-as-noexcept
130  ObjectsTypeHashType()noexcept {}
131  ObjectsTypeHashType(ObjectsTypeHashType&& rhs)noexcept :
132  m(std::move(rhs.m))
133  {}
134  ObjectsTypeHashType& operator = (ObjectsTypeHashType&&) = delete;
135  ObjectsTypeHashType(ObjectsTypeHashType&) = delete;
136  ObjectsTypeHashType& operator = (ObjectsTypeHashType&) = delete;
137 
138  std::unordered_map<HashMapStringKey, HLSLObjectInfo> m;
139  };
140 
141  struct GLSLStubInfo
142  {
143  String Name;
144  String Swizzle;
145  GLSLStubInfo( const String& _Name, const char* _Swizzle ) :
146  Name( _Name ),
147  Swizzle( _Swizzle )
148  {}
149  };
150  // Hash map that maps GLSL object, method and number of arguments
151  // passed to the original function, to the GLSL stub function
152  // Example: {"sampler2D", "Sample", 2} -> {"Sample_2", "_SWIZZLE"}
153  std::unordered_map<FunctionStubHashKey, GLSLStubInfo> m_GLSLStubs;
154 
155  enum class TokenType
156  {
157  Undefined,
158 #define ADD_KEYWORD(keyword)kw_##keyword,
159  ITERATE_KEYWORDS(ADD_KEYWORD)
160 #undef ADD_KEYWORD
161  PreprocessorDirective,
162  Operator,
163  OpenBrace,
164  ClosingBrace,
165  OpenBracket,
166  ClosingBracket,
167  OpenStaple,
168  ClosingStaple,
169  OpenAngleBracket,
170  ClosingAngleBracket,
171  Identifier,
172  NumericConstant,
173  SrtingConstant,
174  Semicolon,
175  Comma,
176  TextBlock,
177  Assignment,
178  ComparisonOp,
179  BooleanOp,
180  BitwiseOp,
181  IncDecOp,
182  MathOp
183  };
184 
185  struct TokenInfo
186  {
187  TokenType Type;
188  String Literal;
189  String Delimiter;
190  bool IsBuiltInType()const
191  {
192  static_assert( static_cast<int>(TokenType::kw_bool) == 1 && static_cast<int>(TokenType::kw_void) == 191,
193  "If you updated built-in types, double check that all types are defined between bool and void");
194  return Type >= TokenType::kw_bool && Type <= TokenType::kw_void;
195  }
196  bool IsFlowControl()const
197  {
198  static_assert( static_cast<int>(TokenType::kw_break) == 192 && static_cast<int>(TokenType::kw_while) == 202,
199  "If you updated control flow keywords, double check that all keywords are defined between break and while");
200  return Type >= TokenType::kw_break && Type <= TokenType::kw_while;
201  }
202  TokenInfo( TokenType _Type = TokenType :: Undefined,
203  const Char* _Literal = "",
204  const Char* _Delimiter = "" ) :
205  Type( _Type ),
206  Literal( _Literal ),
207  Delimiter(_Delimiter)
208  {}
209  };
210  typedef std::list<TokenInfo> TokenListType;
211 
212 
213  class ConversionStream : public ObjectBase<IHLSL2GLSLConversionStream>
214  {
215  public:
216  typedef ObjectBase<IHLSL2GLSLConversionStream> TBase;
217  ConversionStream(IReferenceCounters *pRefCounters,
218  const HLSL2GLSLConverterImpl &Converter,
219  const char* InputFileName,
220  IShaderSourceInputStreamFactory* pInputStreamFactory,
221  const Char* HLSLSource,
222  size_t NumSymbols,
223  bool bPreserveTokens);
224 
225  String Convert(const Char* EntryPoint, SHADER_TYPE ShaderType, bool IncludeDefintions);
226  virtual void Convert(const Char* EntryPoint, SHADER_TYPE ShaderType, bool IncludeDefintions, IDataBlob **ppGLSLSource)override;
227 
228  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_HLSL2GLSLConversionStream, TBase )
229 
230  const String& GetInputFileName()const{ return m_InputFileName; }
231  private:
232  void InsertIncludes(String &GLSLSource, IShaderSourceInputStreamFactory* pSourceStreamFactory);
233  void Tokenize(const String &Source);
234 
235  typedef std::unordered_map<String, bool> SamplerHashType;
236 
237  const HLSLObjectInfo *FindHLSLObject(const String &Name );
238 
239  void ProcessShaderDeclaration(TokenListType::iterator EntryPointToken, SHADER_TYPE ShaderType);
240 
241  void ProcessObjectMethods(const TokenListType::iterator &ScopeStart, const TokenListType::iterator &ScopeEnd);
242 
243  void ProcessRWTextures(const TokenListType::iterator &ScopeStart, const TokenListType::iterator &ScopeEnd);
244 
245  void ProcessAtomics(const TokenListType::iterator &ScopeStart,
246  const TokenListType::iterator &ScopeEnd);
247 
248  void RegisterStruct(TokenListType::iterator &Token);
249 
250  void ProcessConstantBuffer(TokenListType::iterator &Token);
251  void ProcessStructuredBuffer(TokenListType::iterator &Token);
252  void ParseSamplers(TokenListType::iterator &ScopeStart, SamplerHashType &SamplersHash);
253  void ProcessTextureDeclaration(TokenListType::iterator &Token, const std::vector<SamplerHashType> &SamplersHash, ObjectsTypeHashType &Objects);
254  bool ProcessObjectMethod(TokenListType::iterator &Token, const TokenListType::iterator &ScopeStart, const TokenListType::iterator &ScopeEnd);
255  Uint32 CountFunctionArguments(TokenListType::iterator &Token, const TokenListType::iterator &ScopeEnd);
256  bool ProcessRWTextureStore(TokenListType::iterator &Token, const TokenListType::iterator &ScopeEnd);
257  void RemoveFlowControlAttribute(TokenListType::iterator &Token);
258  void RemoveSemantics();
259  void RemoveSpecialShaderAttributes();
260  void RemoveSemanticsFromBlock(TokenListType::iterator &Token, TokenType OpenBracketType, TokenType ClosingBracketType);
261 
262  // IteratorType may be String::iterator or String::const_iterator.
263  // While iterator is convertible to const_iterator,
264  // iterator& cannot be converted to const_iterator& (Microsoft compiler allows
265  // such conversion, while gcc does not)
266  template<typename IteratorType>
267  String PrintTokenContext(IteratorType &TargetToken, Int32 NumAdjacentLines);
268 
269  struct ShaderParameterInfo
270  {
271  enum class StorageQualifier : Int8
272  {
273  Unknown = 0,
274  In = 1,
275  Out = 2,
276  InOut = 3,
277  Ret = 4
278  }storageQualifier;
279 
280  struct GSAttributes
281  {
282  enum class PrimitiveType : Int8
283  {
284  Undefined = 0,
285  Point = 1,
286  Line = 2,
287  Triangle = 3,
288  LineAdj = 4,
289  TriangleAdj = 5
290  };
291  enum class StreamType : Int8
292  {
293  Undefined = 0,
294  Point = 1,
295  Line = 2,
296  Triangle = 3
297  };
298  PrimitiveType PrimType;
299  StreamType Stream;
300  GSAttributes() :
301  PrimType(PrimitiveType::Undefined),
302  Stream(StreamType::Undefined)
303  {}
304  }GSAttribs;
305 
306  struct HSAttributes
307  {
308  enum class InOutPatchType : Int8
309  {
310  Undefined = 0,
311  InputPatch = 1,
312  OutputPatch = 2
313  }PatchType;
314  HSAttributes() :
315  PatchType(InOutPatchType::Undefined)
316  {}
317  }HSAttribs;
318 
319  String ArraySize;
320  String Type;
321  String Name;
322  String Semantic;
323  std::vector<ShaderParameterInfo> members;
324 
325  ShaderParameterInfo() :
326  storageQualifier(StorageQualifier::Unknown)
327  {}
328  };
329  void ParseShaderParameter(TokenListType::iterator &Token, ShaderParameterInfo &ParamInfo);
330  void ProcessFunctionParameters( TokenListType::iterator &Token, std::vector<ShaderParameterInfo>& Params, bool &bIsVoid );
331  String AddFlatQualifier(const String& Type);
332  void ProcessFragmentShaderArguments( std::vector<ShaderParameterInfo>& Params,
333  String &GlobalVariables,
334  std::stringstream &ReturnHandlerSS,
335  String &Prologue );
336 
337  String BuildParameterName(const std::vector<const ShaderParameterInfo*>& MemberStack, Char Separator, const Char* Prefix = "", const Char *SubstituteInstName = "", const Char *Index = "");
338 
339  template<typename THandler>
340  void ProcessScope(TokenListType::iterator &Token, TokenListType::iterator ScopeEnd, TokenType OpenParenType, TokenType ClosingParenType, THandler Handler);
341 
342  template<typename TArgHandler>
343  void ProcessShaderArgument( const ShaderParameterInfo &Param,
344  int ShaderInd,
345  int IsOutVar,
346  std::stringstream &PrologueSS,
347  TArgHandler ArgHandler);
348 
349  void ProcessVertexShaderArguments( std::vector<ShaderParameterInfo>& Params,
350  String &Globals,
351  std::stringstream &ReturnHandlerSS,
352  String &Prologue );
353 
354  void ProcessGeometryShaderArguments( TokenListType::iterator &TypeToken,
355  std::vector<ShaderParameterInfo>& Params,
356  String &Globals,
357  String &Prologue );
358 
359  void ProcessHullShaderConstantFunction( const Char *FuncName, bool &bTakesInputPatch );
360 
361  void ProcessShaderAttributes( TokenListType::iterator &TypeToken,
362  std::unordered_map<HashMapStringKey, String>& Attributes);
363 
364  void ProcessHullShaderArguments( TokenListType::iterator &TypeToken,
365  std::vector<ShaderParameterInfo>& Params,
366  String &Globals,
367  std::stringstream &ReturnHandlerSS,
368  String &Prologue );
369  void ProcessDomainShaderArguments( TokenListType::iterator &TypeToken,
370  std::vector<ShaderParameterInfo>& Params,
371  String &Globals,
372  std::stringstream &ReturnHandlerSS,
373  String &Prologue );
374  void ProcessComputeShaderArguments( TokenListType::iterator &TypeToken,
375  std::vector<ShaderParameterInfo>& Params,
376  String &Globals,
377  String &Prologue );
378 
379  void FindClosingBracket( TokenListType::iterator &Token, const TokenListType::iterator &ScopeEnd, TokenType OpenBracketType, TokenType ClosingBracketType );
380 
381  void ProcessReturnStatements( TokenListType::iterator &Token, bool IsVoid, const Char *EntryPoint, const Char *MacroName );
382 
383  void ProcessGSOutStreamOperations( TokenListType::iterator &Token, const String &OutStreamName, const char *EntryPoint );
384 
385  String BuildGLSLSource();
386 
387  // Tokenized source code
388  TokenListType m_Tokens;
389 
390  // List of tokens defining structs
391  std::unordered_map<HashMapStringKey, TokenListType::iterator> m_StructDefinitions;
392 
393  // Stack of parsed objects, for every scope level.
394  // There are currently only two levels:
395  // level 0 - global scope, contains all global objects
396  // (textures, buffers)
397  // level 1 - function body, contains all objects
398  // defined as function arguments
399  std::vector< ObjectsTypeHashType > m_Objects;
400 
401  const bool m_bPreserveTokens;
402  const HLSL2GLSLConverterImpl &m_Converter;
403 
404  // This member is only used to compare input name
405  // when subsequent shaders are converted from already tokenized source
406  const String m_InputFileName;
407  };
408 
409  // HLSL keyword->token info hash map
410  // Example: "Texture2D" -> TokenInfo(TokenType::Texture2D, "Texture2D")
411  std::unordered_map<HashMapStringKey, TokenInfo> m_HLSLKeywords;
412 
413  // Set of all GLSL image types (image1D, uimage1D, iimage1D, image2D, ... )
414  std::unordered_set<HashMapStringKey> m_ImageTypes;
415 
416  // Set of all HLSL atomic operations (InterlockedAdd, InterlockedOr, ...)
417  std::unordered_set<HashMapStringKey> m_AtomicOperations;
418 
419  // HLSL semantic -> glsl variable, for every shader stage and input/output type (in == 0, out == 1)
420  // Example: [vertex, output] SV_Position -> gl_Position
421  // [fragment, input] SV_Position -> gl_FragCoord
422  static constexpr int InVar = 0;
423  static constexpr int OutVar = 1;
424  std::unordered_map<HashMapStringKey, String> m_HLSLSemanticToGLSLVar[6][2];
425  };
426 }
427 
428 // Intro
429 // DirectX and OpenGL use different shading languages. While mostly being very similar,
430 // the language syntax differs substantially sometimes. Having two versions of each
431 // shader is clearly not an option for real projects. Maintaining intermediate representation
432 // that translates to both languages is one solution, but it might complicate shader development
433 // and debugging.
434 //
435 // HLSL converter allows HLSL shader files to be converted into GLSL source.
436 // The entire shader development can thus be performed using HLSL tools. Since no intermediate
437 // representation is used, shader files can be directly compiled by the HLSL compiler.
438 // All tools available for HLSL shader devlopment, analysis and optimization can be
439 // used. The source can then be transaprently converted to GLSL.
440 //
441 //
442 // Using HLSL Converter
443 // * The following rules are used to convert HLSL texture declaration into GLSL sampler:
444 // - HLSL texture dimension defines GLSL sampler dimension:
445 // - Texture2D -> sampler2D
446 // - TextureCube -> samplerCube
447 // - HLSL texture component type defines GLSL sampler type. If no type is specified, float4 is assumed:
448 // - Texture2D<float> -> sampler2D
449 // - Texture3D<uint4> -> usampler3D
450 // - Texture2DArray<int2> -> isampler2DArray
451 // - Texture2D -> sampler2D
452 // - To distinguish if sampler should be shadow or not, the converter tries to find <Texture Name>_sampler
453 // among samplers (global variables and function arguments). If the sampler type is comparison,
454 // the texture is converted to shadow sampler. If sampler state is either not comparison or not found,
455 // regular sampler is used.
456 // Examples:
457 // - Texture2D g_ShadowMap; -> sampler2DShadow g_ShadowMap;
458 // SamplerComparisonState g_ShadowMap_sampler;
459 // - Texture2D g_Tex2D; -> sampler2D g_Tex2D;
460 // SamplerState g_Tex2D_sampler;
461 // Texture3D g_Tex3D; -> sampler3D g_Tex3D;
462 //
463 // * GLSL requires format to be specified for all images allowing writes. HLSL converter allows GLSL image
464 // format specification inside the special comment block:
465 // Example:
466 // RWTexture2D<float /* format=r32f */ > Tex2D;
467 // * In OpenGL tessellation, domain, partitioning, and topology are properties of tessellation evaluation
468 // shader rather than tessellation control shader. The following specially formatted comment should be placed
469 // on top of domain shader declararion to specify the attributes
470 // /* partitioning = {integer|fractional_even|fractional_odd}, outputtopology = {triangle_cw|triangle_ccw} */
471 // Example:
472 // /* partitioning = fractional_even, outputtopology = triangle_cw */
473 
474 
475 // Requirements:
476 // * GLSL allows samplers to be declared as global variables or function arguments only.
477 // It does not allow local variables of sampler type.
478 //
479 // Important notes/known issues:
480 //
481 // * GLSL compiler does not handle float3 structure members correctly. It is
482 // strongly suggested not to use this type in structure definitions
483 //
484 // * At least NVidia GLSL compiler does not apply layout(row_major) to
485 // structure members. By default, all matrices in both HLSL and GLSL
486 // are column major
487 //
488 // * GLSL compiler does not properly handle structs passed as function arguments!!!!
489 // struct MyStruct
490 // {
491 // matrix Matr;
492 // }
493 // void Func(in MyStruct S)
494 // {
495 // ...
496 // mul(f4PosWS, S.Matr); <--- This will not work!!!
497 // }
498 // DO NOT pass structs to functions, use only built-in types!!!
499 //
500 // * GLSL does not support most of the implicit type conversions. The following are some
501 // examples of required modifications to HLSL code:
502 // ** float4 vec = 0; -> float4 vec = float4(0.0, 0.0, 0.0, 0.0);
503 // ** float x = 0; -> float x = 0.0;
504 // ** uint x = 0; -> uint x = 0u;
505 // ** GLES is immensely strict about type conversions. For instance,
506 // this code will produce compiler error: float4(0, 0, 0, 0)
507 // It must be written as float4(0.0, 0.0, 0.0, 0.0)
508 // * GLSL does not support relational and boolean operations on vector types:
509 // ** float2 p = float2(1.0,2.0), q = float2(3.0,4.0);
510 // bool2 b = x < y; -> Error
511 // all(p<q) -> Error
512 // ** To facilitate relational and boolean operations on vector types, the following
513 // functions are predefined:
514 // - Less
515 // - LessEqual
516 // - Greater
517 // - GreaterEqual
518 // - Equal
519 // - NotEqual
520 // - Not
521 // - And
522 // - Or
523 // - BoolToFloat
524 // ** Examples:
525 // bool2 b = x < y; -> bool2 b = Less(x, y);
526 // all(p>=q) -> all( GreaterEqual(p,q) )
527 //
528 // * When accessing elements of an HLSL matrix, the first index is always row:
529 // mat[row][column]
530 // In GLSL, the first index is always column:
531 // mat[column][row]
532 // MATRIX_ELEMENT(mat, row, col) macros is provided to facilitate matrix element retrieval
533 
534 // * The following functions do not have counterparts in GLSL and should be avoided:
535 // ** Texture2DArray.SampleCmpLevelZero()
536 // ** TextureCube.SampleCmpLevelZero()
537 // ** TextureCubeArray.SampleCmpLevelZero()
538 
539 
540 // * Input variables to a shader stage must be listed in exact same order as outputs from
541 // the previous stage. Function return value counts as the first output argument.
int8_t Int8
8-bit signed integer
Definition: BasicTypes.h:36
+ +
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Definition: AdvancedMath.h:316
+
std::basic_string< Char > String
String variable.
Definition: BasicTypes.h:51
+
Unknown shader type.
Definition: Shader.h:48
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
int32_t Int32
32-bit signed integer
Definition: BasicTypes.h:34
+
+ + + + + diff --git a/doc/html/_h_l_s_l2_g_l_s_l_converter_object_8h_source.html b/doc/html/_h_l_s_l2_g_l_s_l_converter_object_8h_source.html new file mode 100644 index 00000000..b031f270 --- /dev/null +++ b/doc/html/_h_l_s_l2_g_l_s_l_converter_object_8h_source.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/HLSL2GLSLConverterLib/include/HLSL2GLSLConverterObject.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
HLSL2GLSLConverterObject.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "ObjectBase.h"
27 #include "HLSL2GLSLConverter.h"
28 
29 namespace Diligent
30 {
31 
33 class HLSL2GLSLConverterObject : public ObjectBase<IHLSL2GLSLConverter>
34 {
35 public:
37 
39  TBase(pRefCounters)
40  {}
41 
42  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_HLSL2GLSLConverter, TBase )
43 
44  virtual void CreateStream(const Char* InputFileName,
45  IShaderSourceInputStreamFactory *pSourceStreamFactory,
46  const Char* HLSLSource,
47  size_t NumSymbols,
48  IHLSL2GLSLConversionStream **ppStream)const override;
49 };
50 
51 }
Shader source stream factory interface.
Definition: Shader.h:190
+
Template class implementing base functionality for an object.
Definition: ObjectBase.h:62
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Base interface for a reference counter object that stores the number of strong and weak references an...
Definition: ReferenceCounters.h:37
+
Implementation of the Diligent::IHLSL2GLSLConverter interface.
Definition: HLSL2GLSLConverterObject.h:33
+
+ + + + + diff --git a/doc/html/_h_l_s_l_keywords_8h_source.html b/doc/html/_h_l_s_l_keywords_8h_source.html new file mode 100644 index 00000000..7e79ea06 --- /dev/null +++ b/doc/html/_h_l_s_l_keywords_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/HLSL2GLSLConverterLib/include/HLSLKeywords.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
HLSLKeywords.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #define LIST_VECTOR_AND_MATRIX_EXPANSIONS(KEYWORD_HANDLER, type)\
27 KEYWORD_HANDLER(type)\
28 KEYWORD_HANDLER(type##1)\
29 KEYWORD_HANDLER(type##2)\
30 KEYWORD_HANDLER(type##3)\
31 KEYWORD_HANDLER(type##4)\
32 KEYWORD_HANDLER(type##1x1)\
33 KEYWORD_HANDLER(type##1x2)\
34 KEYWORD_HANDLER(type##1x3)\
35 KEYWORD_HANDLER(type##1x4)\
36 KEYWORD_HANDLER(type##2x1)\
37 KEYWORD_HANDLER(type##2x2)\
38 KEYWORD_HANDLER(type##2x3)\
39 KEYWORD_HANDLER(type##2x4)\
40 KEYWORD_HANDLER(type##3x1)\
41 KEYWORD_HANDLER(type##3x2)\
42 KEYWORD_HANDLER(type##3x3)\
43 KEYWORD_HANDLER(type##3x4)\
44 KEYWORD_HANDLER(type##4x1)\
45 KEYWORD_HANDLER(type##4x2)\
46 KEYWORD_HANDLER(type##4x3)\
47 KEYWORD_HANDLER(type##4x4)
48 
49 #define ITERATE_KEYWORDS(KEYWORD_HANDLER)\
50 /*All built-in types must be defined consecutively between bool and void*/\
51 LIST_VECTOR_AND_MATRIX_EXPANSIONS(KEYWORD_HANDLER, bool)\
52 LIST_VECTOR_AND_MATRIX_EXPANSIONS(KEYWORD_HANDLER, float)\
53 LIST_VECTOR_AND_MATRIX_EXPANSIONS(KEYWORD_HANDLER, int)\
54 LIST_VECTOR_AND_MATRIX_EXPANSIONS(KEYWORD_HANDLER, uint)\
55 LIST_VECTOR_AND_MATRIX_EXPANSIONS(KEYWORD_HANDLER, min16float)\
56 LIST_VECTOR_AND_MATRIX_EXPANSIONS(KEYWORD_HANDLER, min10float)\
57 LIST_VECTOR_AND_MATRIX_EXPANSIONS(KEYWORD_HANDLER, min16int)\
58 LIST_VECTOR_AND_MATRIX_EXPANSIONS(KEYWORD_HANDLER, min12int)\
59 LIST_VECTOR_AND_MATRIX_EXPANSIONS(KEYWORD_HANDLER, min16uint)\
60 KEYWORD_HANDLER(matrix)\
61 KEYWORD_HANDLER(void)\
62 /*All flow control keywords must be defined consecutively between break and while*/\
63 KEYWORD_HANDLER(break)\
64 KEYWORD_HANDLER(case)\
65 KEYWORD_HANDLER(continue)\
66 KEYWORD_HANDLER(default)\
67 KEYWORD_HANDLER(do)\
68 KEYWORD_HANDLER(else)\
69 KEYWORD_HANDLER(for)\
70 KEYWORD_HANDLER(if)\
71 KEYWORD_HANDLER(return)\
72 KEYWORD_HANDLER(switch)\
73 KEYWORD_HANDLER(while)\
74 KEYWORD_HANDLER(AppendStructuredBuffer)\
75 KEYWORD_HANDLER(asm)\
76 KEYWORD_HANDLER(asm_fragment)\
77 KEYWORD_HANDLER(BlendState)\
78 KEYWORD_HANDLER(Buffer)\
79 KEYWORD_HANDLER(ByteAddressBuffer)\
80 KEYWORD_HANDLER(cbuffer)\
81 KEYWORD_HANDLER(centroid)\
82 KEYWORD_HANDLER(class)\
83 KEYWORD_HANDLER(column_major)\
84 KEYWORD_HANDLER(compile)\
85 KEYWORD_HANDLER(compile_fragment)\
86 KEYWORD_HANDLER(CompileShader)\
87 KEYWORD_HANDLER(const)\
88 KEYWORD_HANDLER(ComputeShader)\
89 KEYWORD_HANDLER(ConsumeStructuredBuffer)\
90 KEYWORD_HANDLER(DepthStencilState)\
91 KEYWORD_HANDLER(DepthStencilView)\
92 KEYWORD_HANDLER(discard)\
93 KEYWORD_HANDLER(double)\
94 KEYWORD_HANDLER(DomainShader)\
95 KEYWORD_HANDLER(dword)\
96 KEYWORD_HANDLER(export)\
97 KEYWORD_HANDLER(extern)\
98 KEYWORD_HANDLER(false)\
99 KEYWORD_HANDLER(fxgroup)\
100 KEYWORD_HANDLER(GeometryShader)\
101 KEYWORD_HANDLER(groupshared)\
102 KEYWORD_HANDLER(half)\
103 KEYWORD_HANDLER(Hullshader)\
104 KEYWORD_HANDLER(in)\
105 KEYWORD_HANDLER(inline)\
106 KEYWORD_HANDLER(inout)\
107 KEYWORD_HANDLER(InputPatch)\
108 KEYWORD_HANDLER(interface)\
109 KEYWORD_HANDLER(line)\
110 KEYWORD_HANDLER(lineadj)\
111 KEYWORD_HANDLER(linear)\
112 KEYWORD_HANDLER(LineStream)\
113 KEYWORD_HANDLER(namespace)\
114 KEYWORD_HANDLER(nointerpolation)\
115 KEYWORD_HANDLER(noperspective)\
116 KEYWORD_HANDLER(NULL)\
117 KEYWORD_HANDLER(out)\
118 KEYWORD_HANDLER(OutputPatch)\
119 KEYWORD_HANDLER(packoffset)\
120 KEYWORD_HANDLER(pass)\
121 KEYWORD_HANDLER(pixelfragment)\
122 KEYWORD_HANDLER(PixelShader)\
123 KEYWORD_HANDLER(point)\
124 KEYWORD_HANDLER(PointStream)\
125 KEYWORD_HANDLER(precise)\
126 KEYWORD_HANDLER(RasterizerState)\
127 KEYWORD_HANDLER(RenderTargetView)\
128 KEYWORD_HANDLER(register)\
129 KEYWORD_HANDLER(row_major)\
130 KEYWORD_HANDLER(RWBuffer)\
131 KEYWORD_HANDLER(RWByteAddressBuffer)\
132 KEYWORD_HANDLER(RWStructuredBuffer)\
133 KEYWORD_HANDLER(RWTexture1D)\
134 KEYWORD_HANDLER(RWTexture1DArray)\
135 KEYWORD_HANDLER(RWTexture2D)\
136 KEYWORD_HANDLER(RWTexture2DArray)\
137 KEYWORD_HANDLER(RWTexture3D)\
138 KEYWORD_HANDLER(sample)\
139 KEYWORD_HANDLER(sampler)\
140 KEYWORD_HANDLER(SamplerState)\
141 KEYWORD_HANDLER(SamplerComparisonState)\
142 KEYWORD_HANDLER(shared)\
143 KEYWORD_HANDLER(snorm)\
144 KEYWORD_HANDLER(stateblock)\
145 KEYWORD_HANDLER(stateblock_state)\
146 KEYWORD_HANDLER(static)\
147 KEYWORD_HANDLER(string)\
148 KEYWORD_HANDLER(struct)\
149 KEYWORD_HANDLER(StructuredBuffer)\
150 KEYWORD_HANDLER(tbuffer)\
151 KEYWORD_HANDLER(technique)\
152 KEYWORD_HANDLER(technique10)\
153 KEYWORD_HANDLER(technique11)\
154 KEYWORD_HANDLER(texture)\
155 KEYWORD_HANDLER(Texture1D)\
156 KEYWORD_HANDLER(Texture1DArray)\
157 KEYWORD_HANDLER(Texture2D)\
158 KEYWORD_HANDLER(Texture2DArray)\
159 KEYWORD_HANDLER(Texture2DMS)\
160 KEYWORD_HANDLER(Texture2DMSArray)\
161 KEYWORD_HANDLER(Texture3D)\
162 KEYWORD_HANDLER(TextureCube)\
163 KEYWORD_HANDLER(TextureCubeArray)\
164 KEYWORD_HANDLER(true)\
165 KEYWORD_HANDLER(typedef)\
166 KEYWORD_HANDLER(triangle)\
167 KEYWORD_HANDLER(triangleadj)\
168 KEYWORD_HANDLER(TriangleStream)\
169 KEYWORD_HANDLER(uniform)\
170 KEYWORD_HANDLER(unorm)\
171 KEYWORD_HANDLER(unsigned)\
172 KEYWORD_HANDLER(vector)\
173 KEYWORD_HANDLER(vertexfragment)\
174 KEYWORD_HANDLER(VertexShader)\
175 KEYWORD_HANDLER(volatile)
+ + + + + diff --git a/doc/html/_hash_utils_8h_source.html b/doc/html/_hash_utils_8h_source.html new file mode 100644 index 00000000..50de538d --- /dev/null +++ b/doc/html/_hash_utils_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/HashUtils.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
HashUtils.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <functional>
27 #include <memory>
28 
29 #include "Errors.h"
30 
31 #define LOG_HASH_CONFLICTS 1
32 
33 namespace Diligent
34 {
35  // http://www.boost.org/doc/libs/1_35_0/doc/html/hash/combine.html
36  template<typename T>
37  void HashCombine(std::size_t &Seed, const T& Val)
38  {
39  Seed ^= std::hash<T>()(Val) + 0x9e3779b9 + (Seed << 6) + (Seed >> 2);
40  }
41 
42  template<typename FirstArgType, typename... RestArgsType>
43  void HashCombine( std::size_t &Seed, const FirstArgType& FirstArg, const RestArgsType&... RestArgs )
44  {
45  HashCombine( Seed, FirstArg );
46  HashCombine( Seed, RestArgs... ); // recursive call using pack expansion syntax
47  }
48 
49  template<typename... ArgsType>
50  std::size_t ComputeHash( const ArgsType&... Args )
51  {
52  std::size_t Seed = 0;
53  HashCombine( Seed, Args... );
54  return Seed;
55  }
56 
57  template<typename CharType>
58  struct CStringHash
59  {
60  size_t operator()( const CharType *str ) const
61  {
62  // http://www.cse.yorku.ca/~oz/hash.html
63  std::size_t Seed = 0;
64  while( size_t Ch = *(str++) )
65  Seed = Seed * 65599 + Ch;
66  return Seed;
67  }
68  };
69 
70  template<typename CharType>
71  struct CStringCompare
72  {
73  bool operator()( const CharType *str1, const CharType *str2 )const
74  {
75  UNSUPPORTED( "Template specialization is not implemented" );
76  return false;
77  }
78  };
79 
80  template<>
81  struct CStringCompare<Char>
82  {
83  bool operator()( const Char *str1, const Char *str2 )const
84  {
85  return strcmp( str1, str2 ) == 0;
86  }
87  };
88 
94  {
95  public:
96  // This constructor can perform implicit const Char* -> HashMapStringKey
97  // conversion without copying the string
98  HashMapStringKey(const Char* Str, bool bMakeCopy = false) :
99  StrPtr(nullptr),
100  Hash(0)
101  {
102  VERIFY( Str, "String pointer cannot be null" );
103  if( bMakeCopy )
104  {
105  MakeCopy( Str );
106  }
107  else
108  {
109  StrPtr = Str;
110  }
111  }
112 
113  explicit // Make this constructor explicit to avoid unintentional string copies
114  HashMapStringKey(const String &Str) :
115  StrPtr( nullptr ),
116  Hash(0)
117  {
118  MakeCopy( Str.c_str() );
119  }
120 
122  StringBuff( std::move(Key.StringBuff) ),
123  StrPtr( std::move(Key.StrPtr) ),
124  Hash(0)
125  {
126  Key.StrPtr = nullptr;
127  Key.Hash = 0;
128  }
129 
130  // Disable copy constuctor and assignments. The struct is designed
131  // to be initialized at creation time only
132  HashMapStringKey( const HashMapStringKey& ) = delete;
133  HashMapStringKey& operator = ( const HashMapStringKey& ) = delete;
134  HashMapStringKey& operator = ( HashMapStringKey&& ) = delete;
135 
136  // Comparison operator
137  bool operator == (const HashMapStringKey& RHS)const
138  {
139  if( StrPtr == RHS.StrPtr )
140  return true;
141 
142  // Hash member might not have been initialized
143  if( (Hash != 0 && RHS.Hash !=0 && Hash != RHS.Hash) || StrPtr == nullptr || RHS.StrPtr == nullptr )
144  return false;
145 
146  bool IsEqual = strcmp( StrPtr, RHS.StrPtr ) == 0;
147 
148 #if LOG_HASH_CONFLICTS
149  if( Hash != 0 && RHS.Hash !=0 && Hash == RHS.Hash && !IsEqual )
150  {
151  LOG_WARNING_MESSAGE("Unequal strings \"", StrPtr, "\" and \"", RHS.StrPtr, "\" hashed to the same bucket. "
152  "You may want to use better hash function. You may disable this warning by defining LOG_HASH_CONFLICTS to 0");
153  }
154 #endif
155  return IsEqual;
156  }
157 
158  size_t GetHash()const
159  {
160  if( Hash == 0 )
161  Hash = CStringHash<Char>()(StrPtr);
162 
163  return Hash;
164  }
165 
166  const Char* GetStr()const{ return StrPtr; }
167 
168  private:
169  void MakeCopy( const Char* Str )
170  {
171  auto LenWithZeroTerm = strlen( Str ) + 1;
172  StringBuff.reset( new char[ LenWithZeroTerm ] );
173  memcpy( StringBuff.get(), Str, LenWithZeroTerm );
174  StrPtr = StringBuff.get();
175  }
176 
177  // !!! WARNING !!!
178  // We can't use String to store the buffer, because String default
179  // constructor always allocates memory even when the string is empty,
180  // nor can we use vector for the same reason
181  std::unique_ptr< Char[] > StringBuff; // Must be declared first
182  const Char* StrPtr;// Must be declared after StringBuff
183  mutable size_t Hash;
184  };
185 }
186 
187 namespace std
188 {
189  template<>
190  struct hash<Diligent::HashMapStringKey>
191  {
192  size_t operator()( const Diligent::HashMapStringKey &Key ) const
193  {
194  return Key.GetHash();
195  }
196  };
197 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Definition: AdvancedMath.h:316
+
This helper structure is intended to facilitate using strings as a hash table key. It provides constructors that can make a copy of the source string or just keep pointer to it, which enables searching in the hash using raw const Char* pointers.
Definition: HashUtils.h:93
+
+ + + + + diff --git a/doc/html/_input_layout_8h_source.html b/doc/html/_input_layout_8h_source.html new file mode 100644 index 00000000..8efb0e4a --- /dev/null +++ b/doc/html/_input_layout_8h_source.html @@ -0,0 +1,103 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/InputLayout.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
InputLayout.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BasicTypes.h"
30 
31 namespace Diligent
32 {
33 
34 static constexpr Uint32 iMaxLayoutElements = 16;
35 
38 {
40  Uint32 InputIndex;
41 
43  Uint32 BufferSlot;
44 
46  Uint32 NumComponents;
47 
50 
57 
63 
65  enum FREQUENCY : Int32
66  {
69 
72 
75 
78  }Frequency;
79 
83 
85  LayoutElement(Uint32 _InputIndex = 0,
86  Uint32 _BufferSlot = 0,
87  Uint32 _NumComponents = 0,
88  VALUE_TYPE _ValueType = VT_FLOAT32,
89  Bool _IsNormalized = True,
90  Uint32 _RelativeOffset = 0,
91  FREQUENCY _Frequency = FREQUENCY_PER_VERTEX,
92  Uint32 _InstanceDataStepRate = 1) :
93  InputIndex(_InputIndex),
94  BufferSlot(_BufferSlot),
95  NumComponents(_NumComponents),
96  ValueType(_ValueType),
97  IsNormalized(_IsNormalized),
98  RelativeOffset(_RelativeOffset),
99  Frequency(_Frequency),
100  InstanceDataStepRate(_InstanceDataStepRate)
101  {}
102 };
103 
105 
108 {
112  Uint32 NumElements;
113  InputLayoutDesc() :
114  LayoutElements(nullptr),
115  NumElements(0)
116  {}
117 };
118 
119 }
Uint32 NumComponents
Number of components in the element. Allowed values are 1, 2, 3, and 4.
Definition: InputLayout.h:46
+
Uint32 NumElements
Number of layout elements.
Definition: InputLayout.h:112
+
Bool IsNormalized
For signed and unsigned integer value types (VT_INT8, VT_INT16, VT_INT32, VT_UINT8, VT_UINT16, VT_UINT32) indicates if the value should be normalized to [-1,+1] or [0, 1] range respectively. For floating point types (VT_FLOAT16 and VT_FLOAT32), this member is ignored.
Definition: InputLayout.h:56
+
Uint32 InputIndex
Input index of the element, which is specified in the vertex shader.
Definition: InputLayout.h:40
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Uint32 RelativeOffset
Relative offset, in bytes, to the element bits. If this value is zero, the offset will be computed au...
Definition: InputLayout.h:62
+
Uint32 InstanceDataStepRate
The number of instances to draw using the same per-instance data before advancing in the buffer by on...
Definition: InputLayout.h:82
+
const LayoutElement * LayoutElements
Array of layout elements.
Definition: InputLayout.h:110
+
Description of a single element of the input layout.
Definition: InputLayout.h:37
+
Layout description.
Definition: InputLayout.h:107
+
FREQUENCY
Input frequency.
Definition: InputLayout.h:65
+
VALUE_TYPE
Value type.
Definition: GraphicsTypes.h:39
+
Frequency is undefined.
Definition: InputLayout.h:68
+
Uint32 BufferSlot
Buffer slot index that this element is read from.
Definition: InputLayout.h:43
+
Input data is per-instance data.
Definition: InputLayout.h:74
+
Full-precision 32-bit floating point.
Definition: GraphicsTypes.h:49
+
LayoutElement(Uint32 _InputIndex=0, Uint32 _BufferSlot=0, Uint32 _NumComponents=0, VALUE_TYPE _ValueType=VT_FLOAT32, Bool _IsNormalized=True, Uint32 _RelativeOffset=0, FREQUENCY _Frequency=FREQUENCY_PER_VERTEX, Uint32 _InstanceDataStepRate=1)
Initializes the structure.
Definition: InputLayout.h:85
+
Input data is per-vertex data.
Definition: InputLayout.h:71
+
VALUE_TYPE ValueType
Type of the element components, see Diligent::VALUE_TYPE for details.
Definition: InputLayout.h:49
+
Helper value that stores the total number of frequencies in the enumeration.
Definition: InputLayout.h:77
+
+ + + + + diff --git a/doc/html/_interface_i_d_8h_source.html b/doc/html/_interface_i_d_8h_source.html new file mode 100644 index 00000000..897c9925 --- /dev/null +++ b/doc/html/_interface_i_d_8h_source.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Primitives/interface/InterfaceID.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
InterfaceID.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <cstring>
27 #include "BasicTypes.h"
28 
30 namespace Diligent
31 {
33  struct INTERFACE_ID
34  {
35  Uint32 Data1;
36  Uint16 Data2;
37  Uint16 Data3;
38  Uint8 Data4[8];
39 
40  bool operator == (const INTERFACE_ID& rhs)const
41  {
42  return Data1 == rhs.Data1 &&
43  Data2 == rhs.Data2 &&
44  Data3 == rhs.Data3 &&
45  std::memcmp(Data4, rhs.Data4, sizeof(Data4)) == 0;
46  }
47  };
48 
50  static constexpr INTERFACE_ID IID_Unknown = { 0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } };
51 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
uint8_t Uint8
8-bit unsigned integer
Definition: BasicTypes.h:41
+
uint16_t Uint16
16-bit unsigned integer
Definition: BasicTypes.h:40
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
static constexpr INTERFACE_ID IID_Unknown
Unknown interface.
Definition: InterfaceID.h:50
+
Describes unique identifier.
Definition: InterfaceID.h:33
+
+ + + + + diff --git a/doc/html/_j_n_i_helper_8h_source.html b/doc/html/_j_n_i_helper_8h_source.html new file mode 100644 index 00000000..cfd8725e --- /dev/null +++ b/doc/html/_j_n_i_helper_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/ndk_helper/include/JNIHelper.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
JNIHelper.h
+
+
+
1 /*
2  * Copyright 2013 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #pragma once
18 
19 #include <jni.h>
20 #include <vector>
21 #include <string>
22 #include <functional>
23 #include <assert.h>
24 #include <mutex>
25 #include <pthread.h>
26 
27 #include <android/log.h>
28 #include <android_native_app_glue.h>
29 
30 #define LOGI(...) \
31  ((void)__android_log_print( \
32  ANDROID_LOG_INFO, ndk_helper::JNIHelper::GetInstance()->GetAppName(), \
33  __VA_ARGS__))
34 #define LOGW(...) \
35  ((void)__android_log_print( \
36  ANDROID_LOG_WARN, ndk_helper::JNIHelper::GetInstance()->GetAppName(), \
37  __VA_ARGS__))
38 #define LOGE(...) \
39  ((void)__android_log_print( \
40  ANDROID_LOG_ERROR, ndk_helper::JNIHelper::GetInstance()->GetAppName(), \
41  __VA_ARGS__))
42 
43 namespace ndk_helper {
44 
45 class JUIView;
46 
47 /******************************************************************
48  * Helper functions for JNI calls
49  * This class wraps JNI calls and provides handy interface calling commonly used
50  *features
51  * in Java SDK.
52  * Such as
53  * - loading graphics files (e.g. PNG, JPG)
54  * - character code conversion
55  * - retrieving system properties which only supported in Java SDK
56  *
57  * NOTE: To use this class, add NDKHelper.java as a corresponding helpers in
58  *Java code
59  */
60 class JNIHelper {
61  private:
62  std::string app_name_;
63 
64  ANativeActivity* activity_;
65  jobject jni_helper_java_ref_;
66  jclass jni_helper_java_class_;
67 
68  jstring GetExternalFilesDirJString(JNIEnv* env);
69  jclass RetrieveClass(JNIEnv* jni, const char* class_name);
70 
71  JNIHelper();
72  ~JNIHelper();
73  JNIHelper(const JNIHelper& rhs);
74  JNIHelper& operator=(const JNIHelper& rhs);
75 
76  std::string app_label_;
77 
78  // mutex for synchronization
79  // This class uses singleton pattern and can be invoked from multiple threads,
80  // each methods locks the mutex for a thread safety
81  mutable std::mutex mutex_;
82 
83  /*
84  * Call method in JNIHelper class
85  */
86  jobject CallObjectMethod(const char* strMethodName, const char* strSignature,
87  ...);
88  void CallVoidMethod(const char* strMethodName, const char* strSignature, ...);
89 
90  /*
91  * Unregister this thread from the VM
92  */
93  static void DetachCurrentThreadDtor(void* p) {
94  LOGI("detached current thread");
95  ANativeActivity* activity = (ANativeActivity*)p;
96  activity->vm->DetachCurrentThread();
97  }
98 
99  public:
100  /*
101  * To load your own Java classes, JNIHelper requires to be initialized with a
102  *ANativeActivity handle.
103  * This methods need to be called before any call to the helper class.
104  * Static member of the class
105  *
106  * arguments:
107  * in: activity, pointer to ANativeActivity. Used internally to set up JNI
108  *environment
109  * in: helper_class_name, pointer to Java side helper class name. (e.g.
110  *"com/sample/helper/NDKHelper" in samples )
111  */
112  static void Init(ANativeActivity* activity, const char* helper_class_name);
113 
114  /*
115  * Init() that accept so name.
116  * When using a JUI helper class, Java side requires SO name to initialize JNI
117  * calls to invoke native callbacks.
118  * Use this version when using JUI helper.
119  *
120  * arguments:
121  * in: activity, pointer to ANativeActivity. Used internally to set up JNI
122  * environment
123  * in: helper_class_name, pointer to Java side helper class name. (e.g.
124  * "com/sample/helper/NDKHelper" in samples )
125  * in: native_soname, pointer to soname of native library. (e.g.
126  * "NativeActivity" for "libNativeActivity.so" )
127  */
128  static void Init(ANativeActivity* activity, const char* helper_class_name,
129  const char* native_soname);
130 
131  /*
132  * Retrieve the singleton object of the helper.
133  * Static member of the class
134 
135  * Methods in the class are designed as thread safe.
136  */
137  static JNIHelper* GetInstance();
138 
139  /*
140  * Read a file from a strorage.
141  * First, the method tries to read the file from an external storage.
142  * If it fails to read, it falls back to use assset manager and try to read
143  * the file from APK asset.
144  *
145  * arguments:
146  * in: file_name, file name to read
147  * out: buffer_ref, pointer to a vector buffer to read a file.
148  * when the call succeeded, the buffer includes contents of specified
149  *file
150  * when the call failed, contents of the buffer remains same
151  * return:
152  * true when file read succeeded
153  * false when it failed to read the file
154  */
155  bool ReadFile(const char* file_name, std::vector<uint8_t>* buffer_ref);
156 
157  /*
158  * Load and create OpenGL texture from given file name.
159  * The method invokes BitmapFactory in Java so it can read jpeg/png formatted
160  * files
161  *
162  * The methods creates mip-map and set texture parameters like this,
163  * glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
164  * GL_LINEAR_MIPMAP_NEAREST );
165  * glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
166  * glGenerateMipmap( GL_TEXTURE_2D );
167  *
168  * arguments:
169  * in: file_name, file name to read, PNG&JPG is supported
170  * outWidth(Optional) pointer to retrieve original bitmap width
171  * outHeight(Optional) pointer to retrieve original bitmap height
172  * return:
173  * OpenGL texture name when the call succeeded
174  * When it failed to load the texture, it returns -1
175  */
176  uint32_t LoadTexture(const char* file_name, int32_t* outWidth = nullptr,
177  int32_t* outHeight = nullptr, bool* hasAlpha = nullptr);
178 
179  /*
180  * Load and create OpenGL cubemap texture from given file name
181  * into specified cubemap face & miplevel
182  * The method invokes BitmapFactory in Java so it can read jpeg/png formatted
183  * files
184  *
185  * arguments:
186  * in: file_name, file name to read, PNG&JPG is supported
187  * outWidth(Optional) pointer to retrieve original bitmap width
188  * outHeight(Optional) pointer to retrieve original bitmap height
189  * return:
190  * OpenGL texture name when the call succeeded
191  * When it failed to load the texture, it returns -1
192  */
193  uint32_t LoadCubemapTexture(const char* file_name, const int32_t face,
194  const int32_t miplevel, const bool sRGB,
195  int32_t* outWidth = nullptr,
196  int32_t* outHeight = nullptr,
197  bool* hasAlpha = nullptr);
198 
199  /*
200  * Load and create image and return it as a byte array.
201  * The method invokes BitmapFactory in Java so it can read jpeg/png formatted
202  * files
203  *
204  * arguments:
205  * in: file_name, file name to read, PNG&JPG is supported
206  * outWidth(Optional) pointer to retrieve original bitmap width
207  * outHeight(Optional) pointer to retrieve original bitmap height
208  * return:
209  * Java ByteBuffer object containing image data converted to RGBA values.
210  */
211  jobject LoadImage(const char* file_name, int32_t* outWidth = nullptr,
212  int32_t* outHeight = nullptr, bool* hasAlpha = nullptr);
213 
214  /*
215  * Convert string from character code other than UTF-8
216  *
217  * arguments:
218  * in: str, pointer to a string which is encoded other than UTF-8
219  * in: encoding, pointer to a character encoding string.
220  * The encoding string can be any valid java.nio.charset.Charset name
221  * e.g. "UTF-16", "Shift_JIS"
222  * return: converted input string as an UTF-8 std::string
223  */
224  std::string ConvertString(const char* str, const char* encode);
225  /*
226  * Retrieve external file directory through JNI call
227  *
228  * return: std::string containing external file diretory
229  */
230  std::string GetExternalFilesDir();
231 
232  /*
233  * Retrieve string resource with a given name
234  * arguments:
235  * in: resourceName, name of string resource to retrieve
236  * return: string resource value, returns "" when there is no string resource
237  * with given name
238  */
239  std::string GetStringResource(const std::string& resourceName);
240 
241  /*
242  * Audio helper
243  * Retrieves native audio buffer size which is required to achieve low latency
244  * audio
245  *
246  * return: Native audio buffer size which is a hint to achieve low latency
247  * audio
248  * If the API is not supported (API level < 17), it returns 0
249  */
250  int32_t GetNativeAudioBufferSize();
251 
252  /*
253  * Audio helper
254  * Retrieves native audio sample rate which is required to achieve low latency
255  * audio
256  *
257  * return: Native audio sample rate which is a hint to achieve low latency
258  * audio
259  */
260  int32_t GetNativeAudioSampleRate();
261 
262  /*
263  * Retrieves application bundle name
264  *
265  * return: pointer to an app name string
266  *
267  */
268  const char* GetAppName() const { return app_name_.c_str(); }
269 
270  /*
271  * Retrieves application label
272  *
273  * return: pointer to an app label string
274  *
275  */
276  const char* GetAppLabel() const { return app_label_.c_str(); }
277 
278  /*
279  * Execute given function in Java UIThread.
280  *
281  * arguments:
282  * in: pFunction, a pointer to a function to be executed in Java UI Thread.
283  * Note that the helper function returns immediately without synchronizing a
284  * function completion.
285  */
286  void RunOnUiThread(std::function<void()> callback);
287 
288  /*
289  * Attach current thread
290  * In Android, the thread doesn't have to be 'Detach' current thread
291  * as application process is only killed and VM does not shut down
292  */
293  JNIEnv* AttachCurrentThread() {
294  JNIEnv* env;
295  if (activity_->vm->GetEnv((void**)&env, JNI_VERSION_1_4) == JNI_OK)
296  return env;
297  activity_->vm->AttachCurrentThread(&env, NULL);
298  pthread_key_create((int32_t*)activity_, DetachCurrentThreadDtor);
299  return env;
300  }
301 
302  void DetachCurrentThread() {
303  activity_->vm->DetachCurrentThread();
304  return;
305  }
306 
307  /*
308  * Decrement a global reference to the object
309  * arguments:
310  * in: obj, obj to decrement a global reference
311  */
312  void DeleteObject(jobject obj);
313 
314  /*
315  * Helper methods to call a method in given object
316  */
317  jobject CreateObject(const char* class_name);
318  jobject CallObjectMethod(jobject object, const char* strMethodName,
319  const char* strSignature, ...);
320  void CallVoidMethod(jobject object, const char* strMethodName,
321  const char* strSignature, ...);
322  float CallFloatMethod(jobject object, const char* strMethodName,
323  const char* strSignature, ...);
324  int32_t CallIntMethod(jobject object, const char* strMethodName,
325  const char* strSignature, ...);
326  bool CallBooleanMethod(jobject object, const char* strMethodName,
327  const char* strSignature, ...);
328 };
329 
330 } // namespace ndkHelper
Definition: gestureDetector.h:32
+
+ + + + + diff --git a/doc/html/_linux_debug_8h_source.html b/doc/html/_linux_debug_8h_source.html new file mode 100644 index 00000000..1d71c91a --- /dev/null +++ b/doc/html/_linux_debug_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Linux/include/LinuxDebug.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
LinuxDebug.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BasicPlatformDebug.h"
27 
28 struct LinuxDebug : public BasicPlatformDebug
29 {
30  static void AssertionFailed( const Diligent::Char *Message, const char *Function, const char *File, int Line );
31  static void OutputDebugMessage( DebugMessageSeverity Severity, const Diligent::Char *Message );
32 };
+ + + + + diff --git a/doc/html/_linux_file_system_8h_source.html b/doc/html/_linux_file_system_8h_source.html new file mode 100644 index 00000000..12db6534 --- /dev/null +++ b/doc/html/_linux_file_system_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Linux/include/LinuxFileSystem.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
LinuxFileSystem.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BasicFileSystem.h"
27 #include "StandardFile.h"
28 
29 #include <memory>
30 #include <vector>
31 
32 using LinuxFile = StandardFile;
33 
34 struct LinuxFileSystem : public BasicFileSystem
35 {
36 public:
37  static LinuxFile* OpenFile( const FileOpenAttribs &OpenAttribs );
38  static inline Diligent::Char GetSlashSymbol(){ return '/'; }
39 
40  static bool FileExists( const Diligent::Char *strFilePath );
41  static bool PathExists( const Diligent::Char *strPath );
42 
43  static bool CreateDirectory( const Diligent::Char *strPath );
44  static void ClearDirectory( const Diligent::Char *strPath );
45  static void DeleteFile( const Diligent::Char *strPath );
46  static std::vector<std::unique_ptr<FindFileData>> Search(const Diligent::Char *SearchPattern);
47 };
+ + + + + diff --git a/doc/html/_linux_platform_definitions_8h_source.html b/doc/html/_linux_platform_definitions_8h_source.html new file mode 100644 index 00000000..ee3fb658 --- /dev/null +++ b/doc/html/_linux_platform_definitions_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Linux/include/LinuxPlatformDefinitions.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
LinuxPlatformDefinitions.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <cstddef>
27 
28 template <typename _CountofType, std::size_t _SizeOfArray>
29 char (*__countof_helper(_CountofType (&_Array)[_SizeOfArray]))[_SizeOfArray];
30 #define _countof(_Array) (sizeof(*__countof_helper(_Array)) + 0)
+ + + + + diff --git a/doc/html/_linux_platform_misc_8h_source.html b/doc/html/_linux_platform_misc_8h_source.html new file mode 100644 index 00000000..7534ef0b --- /dev/null +++ b/doc/html/_linux_platform_misc_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Linux/include/LinuxPlatformMisc.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
LinuxPlatformMisc.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BasicPlatformMisc.h"
27 #include "DebugUtilities.h"
28 
29 struct LinuxMisc : public BasicPlatformMisc
30 {
31  static Diligent::Uint32 GetMSB(Diligent::Uint32 Val)
32  {
33  if( Val == 0 )return 32;
34 
35  // Returns the number of leading 0-bits in x, starting at the
36  // most significant bit position. If x is 0, the result is undefined.
37  auto LeadingZeros = __builtin_clz(Val);
38  auto MSB = 31 - LeadingZeros;
39  VERIFY_EXPR(MSB == BasicPlatformMisc::GetMSB(Val));
40 
41  return MSB;
42  }
43 };
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
+ + + + + diff --git a/doc/html/_lock_helper_8h_source.html b/doc/html/_lock_helper_8h_source.html new file mode 100644 index 00000000..a27c7b5a --- /dev/null +++ b/doc/html/_lock_helper_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/LockHelper.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
LockHelper.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <thread>
27 #include <mutex>
28 #include <condition_variable>
29 
30 #include "Atomics.h"
31 
32 namespace ThreadingTools
33 {
34 
35 class LockFlag
36 {
37 public:
38  enum {LOCK_FLAG_UNLOCKED = 0, LOCK_FLAG_LOCKED = 1};
39  LockFlag(Atomics::Long InitFlag = LOCK_FLAG_UNLOCKED)
40  {
41  //m_Flag.store(InitFlag);
42  m_Flag = InitFlag;
43  }
44 
45  operator Atomics::Long()const{return m_Flag;}
46 
47 private:
48  friend class LockHelper;
49  Atomics::AtomicLong m_Flag;
50 };
51 
52 class LockHelper
53 {
54 public:
55 
56  LockHelper() :
57  m_pLockFlag(nullptr)
58  {
59  }
60  LockHelper(LockFlag &LockFlag) :
61  m_pLockFlag(nullptr)
62  {
63  Lock(LockFlag);
64  }
65 
66  LockHelper( LockHelper &&LockHelper ) :
67  m_pLockFlag( std::move(LockHelper.m_pLockFlag) )
68  {
69  LockHelper.m_pLockFlag = nullptr;
70  }
71 
72  const LockHelper& operator = (LockHelper &&LockHelper)
73  {
74  m_pLockFlag = std::move( LockHelper.m_pLockFlag );
75  LockHelper.m_pLockFlag = nullptr;
76  return *this;
77  }
78 
79  ~LockHelper()
80  {
81  Unlock();
82  }
83 
84  static bool UnsafeTryLock(LockFlag &LockFlag)
85  {
86  return Atomics::AtomicCompareExchange( LockFlag.m_Flag,
87  static_cast<Atomics::Long>( LockFlag::LOCK_FLAG_LOCKED ),
88  static_cast<Atomics::Long>( LockFlag::LOCK_FLAG_UNLOCKED) ) == LockFlag::LOCK_FLAG_UNLOCKED;
89  }
90 
91  bool TryLock(LockFlag &LockFlag)
92  {
93  if( UnsafeTryLock( LockFlag) )
94  {
95  m_pLockFlag = &LockFlag;
96  return true;
97  }
98  else
99  return false;
100  }
101 
102  static void UnsafeLock(LockFlag &LockFlag)
103  {
104  while( !UnsafeTryLock( LockFlag ) )
105  std::this_thread::yield();
106  }
107 
108  void Lock(LockFlag &LockFlag)
109  {
110  VERIFY( m_pLockFlag == NULL, "Object already locked" );
111  // Wait for the flag to become unlocked and lock it
112  while( !TryLock( LockFlag ) )
113  std::this_thread::yield();
114  }
115 
116  static void UnsafeUnlock(LockFlag &LockFlag)
117  {
118  LockFlag.m_Flag = LockFlag::LOCK_FLAG_UNLOCKED;
119  }
120 
121  void Unlock()
122  {
123  if( m_pLockFlag )
124  UnsafeUnlock(*m_pLockFlag);
125  m_pLockFlag = NULL;
126  }
127 
128 private:
129  LockFlag *m_pLockFlag;
130  LockHelper( const LockHelper &LockHelper );
131  const LockHelper& operator = ( const LockHelper &LockHelper );
132 };
133 
134 class Signal
135 {
136 public:
137  Signal() {}
138 
139  // http://en.cppreference.com/w/cpp/thread/condition_variable
140  void Trigger()
141  {
142  // The thread that intends to modify the variable has to
143  // * acquire a std::mutex (typically via std::lock_guard)
144  // * perform the modification while the lock is held
145  // * execute notify_one or notify_all on the std::condition_variable (the lock does not need to be held for notification)
146  {
147  // std::condition_variable works only with std::unique_lock<std::mutex>
148  std::lock_guard<std::mutex> Lock(m_Mutex);
149  m_bIsTriggered = true;
150  }
151  // Unlocking is done before notifying, to avoid waking up the waiting
152  // thread only to block again (see notify_one for details)
153  m_CondVar.notify_one();
154  }
155 
156  void Wait()
157  {
158  // Any thread that intends to wait on std::condition_variable has to
159  // * acquire a std::unique_lock<std::mutex>, on the SAME MUTEX as used to protect the shared variable
160  // * execute wait, wait_for, or wait_until. The wait operations atomically release the mutex
161  // and suspend the execution of the thread.
162  // * When the condition variable is notified, a timeout expires, or a spurious wakeup occurs,
163  // the thread is awakened, and the mutex is atomically reacquired:
164  // - The thread should then check the condition and resume waiting if the wake up was spurious.
165  std::unique_lock<std::mutex> Lock(m_Mutex);
166  if (!m_bIsTriggered)
167  {
168  m_CondVar.wait(Lock, [&] {return m_bIsTriggered; });
169  }
170  }
171 
172  void Reset()
173  {
174  std::lock_guard<std::mutex> Lock(m_Mutex);
175  m_bIsTriggered = false;
176  }
177 
178  volatile bool IsTriggered()const { return m_bIsTriggered; }
179 
180 private:
181 
182  std::mutex m_Mutex;
183  std::condition_variable m_CondVar;
184  volatile bool m_bIsTriggered = false;
185 
186  Signal(const Signal&) = delete;
187  Signal& operator = (const Signal&) = delete;
188 };
189 
190 }
Definition: AdvancedMath.h:316
+
Definition: LockHelper.h:32
+
+ + + + + diff --git a/doc/html/_map_helper_8h_source.html b/doc/html/_map_helper_8h_source.html new file mode 100644 index 00000000..69583a5e --- /dev/null +++ b/doc/html/_map_helper_8h_source.html @@ -0,0 +1,99 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/MapHelper.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
MapHelper.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DebugUtilities.h"
30 
31 namespace Diligent
32 {
33 
35 
46 template<typename DataType, bool KeepStrongReferences = false>
47 class MapHelper
48 {
49 public:
50 
52  MapHelper() :
53  m_pMappedData(nullptr),
54  m_pBuffer(nullptr),
55  m_pContext(nullptr),
56  m_MapType(static_cast<MAP_TYPE>(-1)),
57  m_MapFlags(static_cast<Uint32>(-1))
58  {
59  }
60 
63  MapHelper( IDeviceContext *pContext, IBuffer *pBuffer, MAP_TYPE MapType, Uint32 MapFlags ) :
64  MapHelper()
65  {
66  Map(pContext, pBuffer, MapType, MapFlags);
67  }
68 
70  MapHelper(MapHelper&& Helper) :
71  m_pBuffer( std::move(Helper.m_pBuffer) ),
72  m_pMappedData( std::move(Helper.m_pMappedData) ),
73  m_pContext( std::move(Helper.m_pContext) ),
74  m_MapType( std::move(Helper.m_MapType) ),
75  m_MapFlags( std::move(Helper.m_MapFlags) )
76  {
77  Helper.m_pBuffer = nullptr;
78  Helper.m_pContext = nullptr;
79  Helper.m_pMappedData = nullptr;
80  Helper.m_MapType = static_cast<MAP_TYPE>(-1);
81  Helper.m_MapFlags = static_cast<Uint32>(-1);
82  }
83 
86  {
87  m_pBuffer = std::move(Helper.m_pBuffer);
88  m_pMappedData = std::move(Helper.m_pMappedData);
89  m_pContext = std::move( Helper.m_pContext );
90  m_MapType = std::move(Helper.m_MapType);
91  m_MapFlags = std::move(Helper.m_MapFlags);
92  Helper.m_pBuffer = nullptr;
93  Helper.m_pContext = nullptr;
94  Helper.m_pMappedData = nullptr;
95  Helper.m_MapType = static_cast<MAP_TYPE>(-1);
96  Helper.m_MapFlags = static_cast<Uint32>(-1);
97  return *this;
98  }
99 
101 
106  void Map( IDeviceContext *pContext, IBuffer *pBuffer, MAP_TYPE MapType, Uint32 MapFlags )
107  {
108  VERIFY(!m_pBuffer && !m_pMappedData && !m_pContext, "Object already mapped");
109  Unmap();
110 #ifdef _DEBUG
111  auto &BuffDesc = pBuffer->GetDesc();
112  VERIFY(sizeof(DataType) <= BuffDesc.uiSizeInBytes, "Data type size exceeds buffer size");
113 #endif
114  m_pContext = pContext;
115  m_pBuffer = pBuffer;
116  m_MapType = MapType;
117  m_MapFlags = MapFlags;
118  m_pBuffer->Map(m_pContext, MapType, MapFlags, (PVoid&)m_pMappedData);
119  VERIFY( m_pMappedData, "Map failed" );
120  }
121 
123  void Unmap()
124  {
125  if( m_pBuffer )
126  {
127  m_pBuffer->Unmap(m_pContext, m_MapType, m_MapFlags);
128  m_pBuffer = nullptr;
129  m_MapType = static_cast<MAP_TYPE>(-1);
130  m_MapFlags = static_cast<Uint32>(-1);
131  }
132  m_pContext = nullptr;
133  m_pMappedData = nullptr;
134  }
135 
137  operator DataType* (){return m_pMappedData;}
138 
140  operator const DataType* ()const{return m_pMappedData;}
141 
143  DataType* operator->() {return m_pMappedData;}
144 
146  const DataType* operator->() const{return m_pMappedData;}
147 
150  {
151  Unmap();
152  }
153 
154 private:
155  MapHelper(const MapHelper&);
156  MapHelper& operator=(const MapHelper&);
157 
158  template<typename PtrType, bool UseStrongReference>
159  struct PtrTypeSelector{};
160 
161  template<typename PtrType>
162  struct PtrTypeSelector<PtrType, true>
163  {
164  typedef RefCntAutoPtr<PtrType> Type;
165  };
166 
167  template<typename PtrType>
168  struct PtrTypeSelector<PtrType, false>
169  {
170  typedef PtrType* Type;
171  };
172 
174  typename PtrTypeSelector<IBuffer, KeepStrongReferences>::Type m_pBuffer;
175 
177  typename PtrTypeSelector<IDeviceContext, KeepStrongReferences>::Type m_pContext;
178 
180  DataType *m_pMappedData;
181 
182  MAP_TYPE m_MapType;
183 
184  Uint32 m_MapFlags;
185 };
186 
187 }
const DataType * operator->() const
Operator const ->
Definition: MapHelper.h:146
+
Facilitates resource mapping.
Definition: MapHelper.h:47
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
void Unmap()
Unamps the resource and resets the object state to default.
Definition: MapHelper.h:123
+
Definition: AdvancedMath.h:316
+
MapHelper(MapHelper &&Helper)
Move constructor: takes over resource ownership from Helper.
Definition: MapHelper.h:70
+
MapHelper()
Initializes the class member with null values.
Definition: MapHelper.h:52
+
MapHelper(IDeviceContext *pContext, IBuffer *pBuffer, MAP_TYPE MapType, Uint32 MapFlags)
Initializes the object and maps the provided resource. See Map() for details.
Definition: MapHelper.h:63
+
Buffer interface.
Definition: Buffer.h:200
+
Device context interface.
Definition: DeviceContext.h:443
+
DataType * operator->()
Operator ->
Definition: MapHelper.h:143
+
~MapHelper()
Unamps the resource.
Definition: MapHelper.h:149
+
void Map(IDeviceContext *pContext, IBuffer *pBuffer, MAP_TYPE MapType, Uint32 MapFlags)
Maps the provided resource.
Definition: MapHelper.h:106
+
MapHelper & operator=(MapHelper &&Helper)
Move-assignement operator: takes over resource ownership from Helper.
Definition: MapHelper.h:85
+
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:125
+
virtual const BufferDesc & GetDesc() const =0
Returns the buffer description used to create the object.
+
+ + + + + diff --git a/doc/html/_memory_allocator_8h_source.html b/doc/html/_memory_allocator_8h_source.html new file mode 100644 index 00000000..c03f4d1b --- /dev/null +++ b/doc/html/_memory_allocator_8h_source.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Primitives/interface/MemoryAllocator.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
MemoryAllocator.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BasicTypes.h"
30 
31 namespace Diligent
32 {
33 
36 {
37 public:
39  virtual void* Allocate( size_t Size, const Char* dbgDescription, const char* dbgFileName, const Int32 dbgLineNumber) = 0;
40 
42  virtual void Free(void *Ptr) = 0;
43 };
44 
45 }
virtual void * Allocate(size_t Size, const Char *dbgDescription, const char *dbgFileName, const Int32 dbgLineNumber)=0
Allocates block of memory.
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Base interface for a raw memory allocator.
Definition: MemoryAllocator.h:35
+
virtual void Free(void *Ptr)=0
Releases memory.
+
int32_t Int32
32-bit signed integer
Definition: BasicTypes.h:34
+
+ + + + + diff --git a/doc/html/_n_d_k_helper_8h_source.html b/doc/html/_n_d_k_helper_8h_source.html new file mode 100644 index 00000000..40d44805 --- /dev/null +++ b/doc/html/_n_d_k_helper_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/ndk_helper/include/NDKHelper.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
NDKHelper.h
+
+
+
1 /*
2  * Copyright 2013 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef _NDKSUPPORT_H
18 #define _NDKSUPPORT_H
19 
20 #define NDK_HELPER_VERSION "0.90"
21 
22 /******************************************************************
23  * NDK support helpers
24  * Utility module to provide misc functionalities that is used widely in native
25  * applications,
26  * such as gesture detection, jni bridge, openGL context etc.
27  *
28  * The purpose of this module is,
29  * - Provide best practices using NDK
30  * - Provide handy utility functions for NDK development
31  * - Make NDK samples more simpler and readable
32  */
33 #include "gl3stub.h" // GLES3 stubs
34 #include "GLContext.h" // EGL & OpenGL manager
35 #include "shader.h" // Shader compiler support
36 #include "vecmath.h" // Vector math support, C++ implementation n current version
37 #include "tapCamera.h" // Tap/Pinch camera control
38 #include "JNIHelper.h" // JNI support
39 #include "gestureDetector.h" // Tap/Doubletap/Pinch detector
40 #include "perfMonitor.h" // FPS counter
41 #include "sensorManager.h" // SensorManager
42 #include "interpolator.h" // Interpolator
43 #endif
+ + + + + diff --git a/doc/html/_object_8h_source.html b/doc/html/_object_8h_source.html new file mode 100644 index 00000000..52fc9092 --- /dev/null +++ b/doc/html/_object_8h_source.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Primitives/interface/Object.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Object.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "InterfaceID.h"
30 #include "ReferenceCounters.h"
31 
32 namespace Diligent
33 {
34 
36 class IObject
37 {
38 public:
39  using CounterValueType = IReferenceCounters::CounterValueType;
40 
42 
48  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface ) = 0;
49 
50 
52 
58  virtual CounterValueType AddRef() = 0;
59 
60 
63 
71  virtual CounterValueType Release() = 0;
72 
73 
77  virtual IReferenceCounters* GetReferenceCounters()const = 0;
78 };
79 
80 }
virtual CounterValueType AddRef()=0
Increments the number of strong references by 1.
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
virtual IReferenceCounters * GetReferenceCounters() const =0
Returns the pointer to IReferenceCounters interface of the associated reference counters object...
+
Base interface for a reference counter object that stores the number of strong and weak references an...
Definition: ReferenceCounters.h:37
+
Base interface for all dynamic objects in the engine.
Definition: Object.h:36
+
Describes unique identifier.
Definition: InterfaceID.h:33
+
virtual CounterValueType Release()=0
Decrements the number of strong references by 1 and destroys the object when the counter reaches zero...
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
Queries the specific interface.
+
+ + + + + diff --git a/doc/html/_object_base_8h_source.html b/doc/html/_object_base_8h_source.html new file mode 100644 index 00000000..b7836868 --- /dev/null +++ b/doc/html/_object_base_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/ObjectBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ObjectBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Object.h"
30 #include "RefCountedObjectImpl.h"
31 
32 namespace Diligent
33 {
34 
35 
36 #define IMPLEMENT_QUERY_INTERFACE_BODY(InterfaceID, ParentClassName) \
37 { \
38  if( ppInterface == nullptr ) \
39  return; \
40  if( IID == InterfaceID ) \
41  { \
42  *ppInterface = this; \
43  (*ppInterface)->AddRef(); \
44  } \
45  else \
46  { \
47  ParentClassName::QueryInterface( IID, ppInterface ); \
48  } \
49 }
50 
51 #define IMPLEMENT_QUERY_INTERFACE(ClassName, InterfaceID, ParentClassName) \
52  void ClassName :: QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) \
53  IMPLEMENT_QUERY_INTERFACE_BODY(InterfaceID, ParentClassName)
54 
55 #define IMPLEMENT_QUERY_INTERFACE_IN_PLACE(InterfaceID, ParentClassName) \
56  virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)override \
57  IMPLEMENT_QUERY_INTERFACE_BODY(InterfaceID, ParentClassName)
58 
59 
61 template<typename BaseInterface>
62 class ObjectBase : public RefCountedObject<BaseInterface>
63 {
64 public:
65  ObjectBase(IReferenceCounters *pRefCounters) :
66  RefCountedObject<BaseInterface>( pRefCounters )
67  {}
68 
69  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )
70  {
71  if( ppInterface == nullptr )
72  return;
73 
74  *ppInterface = nullptr;
75  if( IID == Diligent::IID_Unknown )
76  {
77  *ppInterface = this;
78  (*ppInterface)->AddRef();
79  }
80  }
81 };
82 
83 }
Template class implementing base functionality for an object.
Definition: ObjectBase.h:62
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Base class for all reference counting objects.
Definition: RefCountedObjectImpl.h:470
+
+ + + + + diff --git a/doc/html/_pipeline_state_8h_source.html b/doc/html/_pipeline_state_8h_source.html new file mode 100644 index 00000000..61652813 --- /dev/null +++ b/doc/html/_pipeline_state_8h_source.html @@ -0,0 +1,134 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/PipelineState.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PipelineState.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "GraphicsTypes.h"
30 #include "Object.h"
31 #include "BlendState.h"
32 #include "RasterizerState.h"
33 #include "DepthStencilState.h"
34 #include "InputLayout.h"
35 #include "ShaderResourceBinding.h"
36 #include "PlatformDefinitions.h"
37 
38 namespace Diligent
39 {
40 
42 
48 {
51 
54 
57 
60 
63 
66 };
67 
69 
71 struct SampleDesc
72 {
74  Uint32 Count;
75 
77  Uint32 Quality;
78 
79  SampleDesc() :
80  Count(1),
81  Quality(0)
82  {}
83 };
84 
85 
87 
90 {
93 
96 
99 
102 
105 
106  //D3D12_STREAM_OUTPUT_DESC StreamOutput;
107 
110 
115  Uint32 SampleMask;
116 
119 
122 
125  //D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
126 
129 
132 
135 
138 
141 
143  Uint32 NodeMask;
144 
145  //D3D12_CACHED_PIPELINE_STATE CachedPSO;
146  //D3D12_PIPELINE_STATE_FLAGS Flags;
147 
149  pVS(nullptr),
150  pPS(nullptr),
151  pDS(nullptr),
152  pHS(nullptr),
153  pGS(nullptr),
155  SampleMask(0xFFFFFFFF),
156  NumRenderTargets(0),
157  NodeMask(0)
158  {
159  for(size_t rt = 0; rt < _countof(RTVFormats); ++rt)
162  };
163 };
164 
165 
167 
170 {
174  pCS(nullptr)
175  {}
176 };
177 
180 {
183 
186 
189 
191 
195 
196  PipelineStateDesc() :
197  IsComputePipeline(false),
199  {}
200 };
201 
202 // {06084AE5-6A71-4FE8-84B9-395DD489A28C}
203 static constexpr INTERFACE_ID IID_PipelineState =
204 { 0x6084ae5, 0x6a71, 0x4fe8, { 0x84, 0xb9, 0x39, 0x5d, 0xd4, 0x89, 0xa2, 0x8c } };
205 
210 {
211 public:
213  virtual void QueryInterface( const INTERFACE_ID &IID, IObject **ppInterface ) = 0;
214 
216  virtual const PipelineStateDesc& GetDesc()const = 0;
217 
219 
225  virtual void BindShaderResources( IResourceMapping *pResourceMapping, Uint32 Flags ) = 0;
226 
228 
231  virtual void CreateShaderResourceBinding( IShaderResourceBinding **ppShaderResourceBinding ) = 0;
232 };
233 
234 }
DepthStencilStateDesc DepthStencilDesc
Depth-stencil state description.
Definition: PipelineState.h:121
+
IShader * pVS
Vertex shader to be used with the pipeline.
Definition: PipelineState.h:92
+
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
+
Shader interface.
Definition: Shader.h:288
+
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
Unknown format.
Definition: GraphicsTypes.h:247
+
Interpret the input primitive as a line.
Definition: PipelineState.h:56
+
PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType
Primitive topology type.
Definition: PipelineState.h:128
+
Uint32 SampleMask
32-bit sample mask that determines which samples get updated in all the active render targets...
Definition: PipelineState.h:115
+
virtual void CreateShaderResourceBinding(IShaderResourceBinding **ppShaderResourceBinding)=0
Creates a shader resource binding object.
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Interpret the input primitive as a triangle.
Definition: PipelineState.h:59
+
Graphics pipeline state description.
Definition: PipelineState.h:89
+
Sample description.
Definition: PipelineState.h:71
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
Shader resource binding interface.
Definition: ShaderResourceBinding.h:40
+
IShader * pHS
Hull shader to be used with the pipeline.
Definition: PipelineState.h:101
+
IShader * pGS
Geometry shader to be used with the pipeline.
Definition: PipelineState.h:104
+
Interpret the input primitive as a control point patch.
Definition: PipelineState.h:62
+
TEXTURE_FORMAT RTVFormats[8]
Render target formats.
Definition: PipelineState.h:134
+
Uint32 Quality
Quality.
Definition: PipelineState.h:77
+
Interpret the input primitive as a point.
Definition: PipelineState.h:53
+
Blend state description.
Definition: BlendState.h:351
+
IShader * pPS
Pixel shader to be used with the pipeline.
Definition: PipelineState.h:95
+
Layout description.
Definition: InputLayout.h:107
+
virtual void BindShaderResources(IResourceMapping *pResourceMapping, Uint32 Flags)=0
Binds resources for all shaders in the pipeline state.
+
Uint32 NodeMask
Node mask.
Definition: PipelineState.h:143
+
Total number of topology types.
Definition: PipelineState.h:65
+
Rasterizer state description.
Definition: RasterizerState.h:90
+
Uint32 Count
Sample count.
Definition: PipelineState.h:74
+
RasterizerStateDesc RasterizerDesc
Rasterizer state description.
Definition: PipelineState.h:118
+
IShader * pDS
Domain shader to be used with the pipeline.
Definition: PipelineState.h:98
+
Definition: PipelineState.h:209
+
virtual void QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0
Queries the specific interface, see IObject::QueryInterface() for details.
+
Depth stencil state description.
Definition: DepthStencilState.h:145
+
ComputePipelineDesc ComputePipeline
Compute pipeline state description. This memeber is ignored if IsComputePipeline == False...
Definition: PipelineState.h:188
+
InputLayoutDesc InputLayout
Input layout.
Definition: PipelineState.h:124
+
Describes common device object attributes.
Definition: GraphicsTypes.h:900
+
Topology is not defined.
Definition: PipelineState.h:50
+
SampleDesc SmplDesc
Multisampling parameters.
Definition: PipelineState.h:140
+
Compute pipeline state description.
Definition: PipelineState.h:169
+
TEXTURE_FORMAT DSVFormat
Depth-stencil format.
Definition: PipelineState.h:137
+
virtual const PipelineStateDesc & GetDesc() const =0
Returns the blend state description used to create the object.
+
bool IsComputePipeline
Flag indicating if pipeline state is a compute pipeline state.
Definition: PipelineState.h:182
+
GraphicsPipelineDesc GraphicsPipeline
Graphics pipeline state description. This memeber is ignored if IsComputePipeline == True...
Definition: PipelineState.h:185
+
Uint32 SRBAllocationGranularity
Shader resource binding allocation granularity.
Definition: PipelineState.h:194
+
BlendStateDesc BlendDesc
Blend state description.
Definition: PipelineState.h:109
+
Pipeline state description.
Definition: PipelineState.h:179
+
PRIMITIVE_TOPOLOGY_TYPE
Primitive topology type.
Definition: PipelineState.h:47
+
Uint32 NumRenderTargets
Number of render targets in the RTVFormats member.
Definition: PipelineState.h:131
+
IShader * pCS
Compute shader to be used with the pipeline.
Definition: PipelineState.h:172
+
+ + + + + diff --git a/doc/html/_pipeline_state_base_8h_source.html b/doc/html/_pipeline_state_base_8h_source.html new file mode 100644 index 00000000..14cf1128 --- /dev/null +++ b/doc/html/_pipeline_state_base_8h_source.html @@ -0,0 +1,116 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/PipelineStateBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PipelineStateBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "PipelineState.h"
30 #include "DeviceObjectBase.h"
31 #include "STDAllocator.h"
32 #include "EngineMemory.h"
33 #include "GraphicsAccessories.h"
34 
35 namespace Diligent
36 {
37 
39 
45 template<class BaseInterface, class RenderDeviceBaseInterface>
46 class PipelineStateBase : public DeviceObjectBase<BaseInterface, PipelineStateDesc>
47 {
48 public:
51 
57  PipelineStateBase( IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc& PSODesc, bool bIsDeviceInternal = false ) :
58  TDeviceObjectBase( pRefCounters, pDevice, PSODesc, bIsDeviceInternal ),
59  m_LayoutElements( PSODesc.GraphicsPipeline.InputLayout.NumElements, LayoutElement(), STD_ALLOCATOR_RAW_MEM(LayoutElement, GetRawAllocator(), "Allocator for vector<LayoutElement>" ) ),
60  m_NumShaders(0)
61  {
62  memset(m_ppShaders, 0, sizeof(m_ppShaders));
63 
64  if (this->m_Desc.IsComputePipeline)
65  {
66  const auto &ComputePipeline = PSODesc.ComputePipeline;
67  if (ComputePipeline.pCS == nullptr)
68  {
69  LOG_ERROR_AND_THROW( "Compute shader is not provided" );
70  }
71 
72 #define VALIDATE_SHADER_TYPE(Shader, ExpectedType, ShaderName)\
73  if (Shader && Shader->GetDesc().ShaderType != ExpectedType) \
74  { \
75  LOG_ERROR_AND_THROW( GetShaderTypeLiteralName(Shader->GetDesc().ShaderType), " is not valid type for ", ShaderName, " shader" );\
76  }
77  VALIDATE_SHADER_TYPE(ComputePipeline.pCS, SHADER_TYPE_COMPUTE, "compute")
78 
79  m_pCS = ComputePipeline.pCS;
80  m_ppShaders[0] = ComputePipeline.pCS;
81  m_NumShaders = 1;
82  }
83  else
84  {
85  const auto &GraphicsPipeline = PSODesc.GraphicsPipeline;
86 
87  VALIDATE_SHADER_TYPE(GraphicsPipeline.pVS, SHADER_TYPE_VERTEX, "vertex")
88  VALIDATE_SHADER_TYPE(GraphicsPipeline.pPS, SHADER_TYPE_PIXEL, "pixel")
89  VALIDATE_SHADER_TYPE(GraphicsPipeline.pGS, SHADER_TYPE_GEOMETRY, "geometry")
90  VALIDATE_SHADER_TYPE(GraphicsPipeline.pHS, SHADER_TYPE_HULL, "hull")
91  VALIDATE_SHADER_TYPE(GraphicsPipeline.pDS, SHADER_TYPE_DOMAIN, "domain")
92 #undef VALIDATE_SHADER_TYPE
93 
94  m_pVS = GraphicsPipeline.pVS;
95  m_pPS = GraphicsPipeline.pPS;
96  m_pGS = GraphicsPipeline.pGS;
97  m_pDS = GraphicsPipeline.pDS;
98  m_pHS = GraphicsPipeline.pHS;
99 
100  if( GraphicsPipeline.pVS )m_ppShaders[m_NumShaders++] = GraphicsPipeline.pVS;
101  if( GraphicsPipeline.pPS )m_ppShaders[m_NumShaders++] = GraphicsPipeline.pPS;
102  if( GraphicsPipeline.pGS )m_ppShaders[m_NumShaders++] = GraphicsPipeline.pGS;
103  if( GraphicsPipeline.pHS )m_ppShaders[m_NumShaders++] = GraphicsPipeline.pHS;
104  if( GraphicsPipeline.pDS )m_ppShaders[m_NumShaders++] = GraphicsPipeline.pDS;
105  }
106 
107  const auto &InputLayout = PSODesc.GraphicsPipeline.InputLayout;
108  for( size_t Elem = 0; Elem < InputLayout.NumElements; ++Elem )
109  m_LayoutElements[Elem] = InputLayout.LayoutElements[Elem];
110  this->m_Desc.GraphicsPipeline.InputLayout.LayoutElements = m_LayoutElements.data();
111 
112  // Correct description and compute offsets and tight strides
113  for( auto It = m_LayoutElements.begin(); It != m_LayoutElements.end(); ++It )
114  {
115  if( It->ValueType == VT_FLOAT32 || It->ValueType == VT_FLOAT16 )
116  It->IsNormalized = false; // Floating point values cannot be normalized
117 
118  auto BuffSlot = It->BufferSlot;
119  if( BuffSlot >= _countof(m_TightStrides) )
120  {
121  UNEXPECTED("Buffer slot (", BuffSlot, ") exceeds the limit (", _countof(m_TightStrides), ")");
122  continue;
123  }
124 
125  auto &CurrStride = m_TightStrides[BuffSlot];
126  if( It->RelativeOffset < CurrStride )
127  {
128  if( It->RelativeOffset == 0 )
129  It->RelativeOffset = CurrStride;
130  else
131  UNEXPECTED( "Overlapping layout elements" );
132  }
133 
134  CurrStride += It->NumComponents * GetValueSize( It->ValueType );
135  }
136  }
137 
139  {
140  /*
148  auto &PipelineStateRegistry = static_cast<TRenderDeviceBase*>(this->GetDevice())->GetBSRegistry();
149  auto &RasterizerStateRegistry = static_cast<TRenderDeviceBase*>(this->GetDevice())->GetRSRegistry();
150  auto &DSSRegistry = static_cast<TRenderDeviceBase*>(this->GetDevice())->GetDSSRegistry();
151  // StateObjectsRegistry::ReportDeletedObject() does not lock the registry, but only
152  // atomically increments the outstanding deleted objects counter.
153  PipelineStateRegistry.ReportDeletedObject();
154  RasterizerStateRegistry.ReportDeletedObject();
155  DSSRegistry.ReportDeletedObject();
156  */
157  }
158 
159  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_PipelineState, TDeviceObjectBase )
160 
161  virtual const Uint32* GetTightStrides()const
162  {
163  return m_TightStrides;
164  }
165 
166  IShader* GetVS(){return m_pVS;}
167  IShader* GetPS(){return m_pPS;}
168  IShader* GetGS(){return m_pGS;}
169  IShader* GetDS(){return m_pDS;}
170  IShader* GetHS(){return m_pHS;}
171  IShader* GetCS(){return m_pCS;}
172 
173  IShader* const* GetShaders()const{return m_ppShaders;}
174  Uint32 GetNumShaders()const{return m_NumShaders;}
175 
176 protected:
177  std::vector<LayoutElement, STDAllocatorRawMem<LayoutElement> > m_LayoutElements;
178 
179  // The size of this array must be equal to the
180  // maximum number of buffer slots, because a layout
181  // element can refer to any input slot
182  Uint32 m_TightStrides[MaxBufferSlots] = {};
183 
191  Uint32 m_NumShaders;
192 };
193 
194 }
static constexpr Uint32 MaxBufferSlots
Maximum number of input buffer slots. D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT == 32...
Definition: Constants.h:33
+
RefCntAutoPtr< IShader > m_pDS
Strong reference to the domain shader.
Definition: PipelineStateBase.h:187
+
Render device interface.
Definition: RenderDevice.h:55
+
Shader interface.
Definition: Shader.h:288
+
RefCntAutoPtr< IShader > m_pCS
Strong reference to the compute shader.
Definition: PipelineStateBase.h:189
+
Template class implementing base functionality for a pipeline state object.
Definition: PipelineStateBase.h:46
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Pixel (fragment) shader.
Definition: Shader.h:50
+
RefCntAutoPtr< IShader > m_pVS
Strong reference to the vertex shader.
Definition: PipelineStateBase.h:184
+
IMemoryAllocator & GetRawAllocator()
Returns raw memory allocator.
Definition: EngineMemory.cpp:46
+
Hull (tessellation control) shader.
Definition: Shader.h:52
+
Domain (tessellation evaluation) shader.
Definition: Shader.h:53
+
PipelineStateBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &PSODesc, bool bIsDeviceInternal=false)
Definition: PipelineStateBase.h:57
+
Description of a single element of the input layout.
Definition: InputLayout.h:37
+
Base implementation of a render device.
Definition: DeviceObjectBase.h:36
+
Vertex shader.
Definition: Shader.h:49
+
Uint32 m_NumShaders
Number of shaders that this PSO uses.
Definition: PipelineStateBase.h:191
+
PipelineStateDesc m_Desc
Object description.
Definition: DeviceObjectBase.h:138
+
RefCntAutoPtr< IShader > m_pGS
Strong reference to the geometry shader.
Definition: PipelineStateBase.h:186
+
Half-precision 16-bit floating point.
Definition: GraphicsTypes.h:48
+
Full-precision 32-bit floating point.
Definition: GraphicsTypes.h:49
+
ComputePipelineDesc ComputePipeline
Compute pipeline state description. This memeber is ignored if IsComputePipeline == False...
Definition: PipelineState.h:188
+
InputLayoutDesc InputLayout
Input layout.
Definition: PipelineState.h:124
+
IShader * m_ppShaders[5]
Array of pointers to shaders that this PSO uses.
Definition: PipelineStateBase.h:190
+
RefCntAutoPtr< IShader > m_pHS
Strong reference to the hull shader.
Definition: PipelineStateBase.h:188
+
Template class that implements reference counting.
Definition: RefCntAutoPtr.h:71
+
bool IsComputePipeline
Flag indicating if pipeline state is a compute pipeline state.
Definition: PipelineState.h:182
+
GraphicsPipelineDesc GraphicsPipeline
Graphics pipeline state description. This memeber is ignored if IsComputePipeline == True...
Definition: PipelineState.h:185
+
RefCntAutoPtr< IShader > m_pPS
Strong reference to the pixel shader.
Definition: PipelineStateBase.h:185
+
Template class implementing base functionality for a device object.
Definition: DeviceObjectBase.h:42
+
Pipeline state description.
Definition: PipelineState.h:179
+
Compute shader.
Definition: Shader.h:54
+
Geometry shader.
Definition: Shader.h:51
+
+ + + + + diff --git a/doc/html/_pipeline_state_d3_d11_8h_source.html b/doc/html/_pipeline_state_d3_d11_8h_source.html new file mode 100644 index 00000000..182eb6bf --- /dev/null +++ b/doc/html/_pipeline_state_d3_d11_8h_source.html @@ -0,0 +1,96 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/interface/PipelineStateD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PipelineStateD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "PipelineState.h"
30 
31 namespace Diligent
32 {
33 
34 // {3EA6E3F4-9966-47FC-8CE8-0EB3E2273061}
35 static constexpr INTERFACE_ID IID_PipelineStateD3D11 =
36 { 0x3ea6e3f4, 0x9966, 0x47fc, { 0x8c, 0xe8, 0xe, 0xb3, 0xe2, 0x27, 0x30, 0x61 } };
37 
40 {
41 public:
42 
44 
47  virtual ID3D11BlendState* GetD3D11BlendState() = 0;
48 
49 
51 
54  virtual ID3D11RasterizerState* GetD3D11RasterizerState() = 0;
55 
56 
58 
61  virtual ID3D11DepthStencilState* GetD3D11DepthStencilState() = 0;
62 
64 
67  virtual ID3D11InputLayout* GetD3D11InputLayout() = 0;
68 
70 
73  virtual ID3D11VertexShader* GetD3D11VertexShader() = 0;
74 
76 
79  virtual ID3D11PixelShader* GetD3D11PixelShader() = 0;
80 
81 
83 
86  virtual ID3D11GeometryShader* GetD3D11GeometryShader() = 0;
87 
89 
92  virtual ID3D11DomainShader* GetD3D11DomainShader() = 0;
93 
95 
98  virtual ID3D11HullShader* GetD3D11HullShader() = 0;
99 
101 
104  virtual ID3D11ComputeShader* GetD3D11ComputeShader() = 0;
105 };
106 
107 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual ID3D11PixelShader * GetD3D11PixelShader()=0
Returns a pointer to the ID3D11PixelShader interface of the internal pixel shader object...
+
virtual ID3D11RasterizerState * GetD3D11RasterizerState()=0
Returns a pointer to the ID3D11RasterizerState interface of the internal Direct3D11 object...
+
virtual ID3D11InputLayout * GetD3D11InputLayout()=0
Returns a pointer to the ID3D11InputLayout interface of the internal Direct3D11 object.
+
virtual ID3D11BlendState * GetD3D11BlendState()=0
Returns a pointer to the ID3D11BlendState interface of the internal Direct3D11 object.
+
virtual ID3D11GeometryShader * GetD3D11GeometryShader()=0
Returns a pointer to the ID3D11GeometryShader interface of the internal geometry shader object...
+
Definition: PipelineState.h:209
+
virtual ID3D11ComputeShader * GetD3D11ComputeShader()=0
Returns a pointer to the ID3D11ComputeShader interface of the internal compute shader object...
+
virtual ID3D11DepthStencilState * GetD3D11DepthStencilState()=0
Returns a pointer to the ID3D11DepthStencilState interface of the internal Direct3D11 object...
+
virtual ID3D11DomainShader * GetD3D11DomainShader()=0
Returns a pointer to the ID3D11DomainShader interface of the internal domain shader object...
+
virtual ID3D11VertexShader * GetD3D11VertexShader()=0
Returns a pointer to the ID3D11VertexShader interface of the internal vertex shader object...
+
Interface to the blend state object implemented in D3D11.
Definition: PipelineStateD3D11.h:39
+
virtual ID3D11HullShader * GetD3D11HullShader()=0
Returns a pointer to the ID3D11HullShader interface of the internal hull shader object.
+
+ + + + + diff --git a/doc/html/_pipeline_state_d3_d11_impl_8h_source.html b/doc/html/_pipeline_state_d3_d11_impl_8h_source.html new file mode 100644 index 00000000..a03e9e78 --- /dev/null +++ b/doc/html/_pipeline_state_d3_d11_impl_8h_source.html @@ -0,0 +1,107 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/PipelineStateD3D11Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PipelineStateD3D11Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "PipelineStateD3D11.h"
30 #include "RenderDeviceD3D11.h"
31 #include "PipelineStateBase.h"
32 #include "ShaderD3D11Impl.h"
33 #include "AdaptiveFixedBlockAllocator.h"
34 
35 namespace Diligent
36 {
37 
38 class FixedBlockMemoryAllocator;
40 class PipelineStateD3D11Impl : public PipelineStateBase<IPipelineStateD3D11, IRenderDeviceD3D11>
41 {
42 public:
44 
45  PipelineStateD3D11Impl(IReferenceCounters *pRefCounters, class RenderDeviceD3D11Impl *pDeviceD3D11, const PipelineStateDesc& PipelineDesc);
47 
48  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final;
49 
51  virtual ID3D11BlendState* GetD3D11BlendState()override final;
52 
54  virtual ID3D11RasterizerState* GetD3D11RasterizerState()override final;
55 
57  virtual ID3D11DepthStencilState* GetD3D11DepthStencilState()override final;
58 
59  virtual ID3D11InputLayout* GetD3D11InputLayout()override final;
60 
61  virtual ID3D11VertexShader* GetD3D11VertexShader()override final;
62  virtual ID3D11PixelShader* GetD3D11PixelShader()override final;
63  virtual ID3D11GeometryShader* GetD3D11GeometryShader()override final;
64  virtual ID3D11DomainShader* GetD3D11DomainShader()override final;
65  virtual ID3D11HullShader* GetD3D11HullShader()override final;
66  virtual ID3D11ComputeShader* GetD3D11ComputeShader()override final;
67 
68  virtual void BindShaderResources( IResourceMapping *pResourceMapping, Uint32 Flags )override final;
69 
70  virtual void CreateShaderResourceBinding( IShaderResourceBinding **ppShaderResourceBinding )override final;
71 
72  class ShaderResourceBindingD3D11Impl* GetDefaultResourceBinding(){return m_pDefaultShaderResBinding.get();}
73  IMemoryAllocator &GetResourceCacheDataAllocator(Uint32 ActiveShaderInd)
74  {
75  VERIFY_EXPR(ActiveShaderInd < m_NumShaders);
76  auto *pAllocator = m_Allocators.GetResourceCacheDataAllocator(ActiveShaderInd);
77  return pAllocator != nullptr ? *pAllocator : GetRawAllocator();
78  }
79  IMemoryAllocator &GetShaderResLayoutDataAllocators(Uint32 ActiveShaderInd)
80  {
81  VERIFY_EXPR(ActiveShaderInd < m_NumShaders);
82  auto *pAllocator = m_Allocators.GetShaderResLayoutDataAllocator(ActiveShaderInd);
83  return pAllocator != nullptr ? *pAllocator : GetRawAllocator();
84  }
85  IShaderVariable* GetDummyShaderVariable(){return &m_DummyShaderVar;}
86 
87 private:
88  CComPtr<ID3D11BlendState> m_pd3d11BlendState;
89  CComPtr<ID3D11RasterizerState> m_pd3d11RasterizerState;
90  CComPtr<ID3D11DepthStencilState> m_pd3d11DepthStencilState;
91  CComPtr<ID3D11InputLayout> m_pd3d11InputLayout;
92 
93  class DataAllocators
94  {
95  public:
96  ~DataAllocators();
97  void Init(size_t NumActiveShaders, Uint32 SRBAllocationGranularity);
98  AdaptiveFixedBlockAllocator* GetShaderResLayoutDataAllocator(Uint32 Ind)
99  {
100  VERIFY_EXPR(Ind < _countof(m_pShaderResLayoutDataAllocators));
101  return m_pShaderResLayoutDataAllocators[Ind];
102  }
103  AdaptiveFixedBlockAllocator* GetResourceCacheDataAllocator(Uint32 Ind)
104  {
105  VERIFY_EXPR(Ind < _countof(m_pResourceCacheDataAllocators));
106  return m_pResourceCacheDataAllocators[Ind];
107  }
108  private:
109  AdaptiveFixedBlockAllocator* m_pShaderResLayoutDataAllocators[5] = {}; // Use separate allocator for every shader stage
110  AdaptiveFixedBlockAllocator* m_pResourceCacheDataAllocators[5] = {}; // Use separate allocator for every shader stage
111  }m_Allocators; // Allocators must be defined before the default shader res binding
112 
113  // Do not use strong reference to avoid cyclic references
114  // Must be declared after the data allocators
115  std::unique_ptr<class ShaderResourceBindingD3D11Impl, STDDeleter<ShaderResourceBindingD3D11Impl, FixedBlockMemoryAllocator> > m_pDefaultShaderResBinding;
116 
117  DummyShaderVariable m_DummyShaderVar;
118 };
119 
120 }
Shader resource variable.
Definition: Shader.h:265
+
Template class implementing base functionality for a pipeline state object.
Definition: PipelineStateBase.h:46
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual ID3D11BlendState * GetD3D11BlendState() override final
Implementation of the IPipelineStateD3D11::GetD3D11BlendState() method.
Definition: PipelineStateD3D11Impl.cpp:145
+
virtual ID3D11GeometryShader * GetD3D11GeometryShader() override final
Returns a pointer to the ID3D11GeometryShader interface of the internal geometry shader object...
Definition: PipelineStateD3D11Impl.cpp:204
+
virtual ID3D11InputLayout * GetD3D11InputLayout() override final
Returns a pointer to the ID3D11InputLayout interface of the internal Direct3D11 object.
Definition: PipelineStateD3D11Impl.cpp:160
+
IMemoryAllocator & GetRawAllocator()
Returns raw memory allocator.
Definition: EngineMemory.cpp:46
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
Shader resource binding interface.
Definition: ShaderResourceBinding.h:40
+
virtual ID3D11DepthStencilState * GetD3D11DepthStencilState() override final
Implementation of the IPipelineStateD3D11::GetD3D11DepthStencilState() method.
Definition: PipelineStateD3D11Impl.cpp:155
+
Implementation of a dummy shader variable that silently ignores all operations.
Definition: ShaderBase.h:146
+
Implementation of the Diligent::IShaderResourceBindingD3D11 interface.
Definition: ShaderResourceBindingD3D11Impl.h:41
+
virtual ID3D11RasterizerState * GetD3D11RasterizerState() override final
Implementation of the IPipelineStateD3D11::GetD3D11RasterizerState() method.
Definition: PipelineStateD3D11Impl.cpp:150
+
Implementation of the Diligent::IPipelineStateD3D11 interface.
Definition: PipelineStateD3D11Impl.h:40
+
Uint32 m_NumShaders
Number of shaders that this PSO uses.
Definition: PipelineStateBase.h:191
+
virtual void CreateShaderResourceBinding(IShaderResourceBinding **ppShaderResourceBinding) override final
Creates a shader resource binding object.
Definition: PipelineStateD3D11Impl.cpp:181
+
Implementation of the Diligent::IRenderDeviceD3D11 interface.
Definition: RenderDeviceD3D11Impl.h:38
+
virtual ID3D11DomainShader * GetD3D11DomainShader() override final
Returns a pointer to the ID3D11DomainShader interface of the internal domain shader object...
Definition: PipelineStateD3D11Impl.cpp:211
+
virtual void BindShaderResources(IResourceMapping *pResourceMapping, Uint32 Flags) override final
Binds resources for all shaders in the pipeline state.
Definition: PipelineStateD3D11Impl.cpp:165
+
virtual ID3D11ComputeShader * GetD3D11ComputeShader() override final
Returns a pointer to the ID3D11ComputeShader interface of the internal compute shader object...
Definition: PipelineStateD3D11Impl.cpp:225
+
virtual ID3D11HullShader * GetD3D11HullShader() override final
Returns a pointer to the ID3D11HullShader interface of the internal hull shader object.
Definition: PipelineStateD3D11Impl.cpp:218
+
virtual ID3D11PixelShader * GetD3D11PixelShader() override final
Returns a pointer to the ID3D11PixelShader interface of the internal pixel shader object...
Definition: PipelineStateD3D11Impl.cpp:197
+
Pipeline state description.
Definition: PipelineState.h:179
+
virtual ID3D11VertexShader * GetD3D11VertexShader() override final
Returns a pointer to the ID3D11VertexShader interface of the internal vertex shader object...
Definition: PipelineStateD3D11Impl.cpp:190
+
+ + + + + diff --git a/doc/html/_pipeline_state_d3_d12_8h_source.html b/doc/html/_pipeline_state_d3_d12_8h_source.html new file mode 100644 index 00000000..ddf18330 --- /dev/null +++ b/doc/html/_pipeline_state_d3_d12_8h_source.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/interface/PipelineStateD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PipelineStateD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "PipelineState.h"
30 
31 namespace Diligent
32 {
33 
34 // {33C9BE4B-6F23-4F83-A665-5AC1836DF35A}
35 static constexpr INTERFACE_ID IID_PipelineStateD3D12 =
36 { 0x33c9be4b, 0x6f23, 0x4f83, { 0xa6, 0x65, 0x5a, 0xc1, 0x83, 0x6d, 0xf3, 0x5a } };
37 
38 
41 {
42 public:
43 
45 
48  virtual ID3D12PipelineState* GetD3D12PipelineState()const = 0;
49 
51 
54  virtual ID3D12RootSignature* GetD3D12RootSignature()const = 0;
55 };
56 
57 }
Interface to the blend state object implemented in D3D12.
Definition: PipelineStateD3D12.h:40
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual ID3D12PipelineState * GetD3D12PipelineState() const =0
Returns ID3D12PipelineState interface of the internal D3D12 pipeline state object object...
+
Definition: PipelineState.h:209
+
virtual ID3D12RootSignature * GetD3D12RootSignature() const =0
Returns a pointer to the root signature object associated with this pipeline state.
+
+ + + + + diff --git a/doc/html/_pipeline_state_d3_d12_impl_8h_source.html b/doc/html/_pipeline_state_d3_d12_impl_8h_source.html new file mode 100644 index 00000000..214bbbde --- /dev/null +++ b/doc/html/_pipeline_state_d3_d12_impl_8h_source.html @@ -0,0 +1,98 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/PipelineStateD3D12Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PipelineStateD3D12Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "RenderDeviceD3D12.h"
30 #include "PipelineStateD3D12.h"
31 #include "PipelineStateBase.h"
32 #include "RootSignature.h"
33 #include "ShaderResourceLayoutD3D12.h"
34 #include "AdaptiveFixedBlockAllocator.h"
35 
37 namespace Diligent
38 {
39 
40 class FixedBlockMemoryAllocator;
42 class PipelineStateD3D12Impl : public PipelineStateBase<IPipelineStateD3D12, IRenderDeviceD3D12>
43 {
44 public:
46 
47  PipelineStateD3D12Impl( IReferenceCounters *pRefCounters, class RenderDeviceD3D12Impl *pDeviceD3D12, const PipelineStateDesc &PipelineDesc );
49 
50  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface );
51 
52  virtual ID3D12PipelineState *GetD3D12PipelineState()const override final{return m_pd3d12PSO;}
53 
54  virtual void BindShaderResources( IResourceMapping *pResourceMapping, Uint32 Flags )override;
55 
56  virtual void CreateShaderResourceBinding( IShaderResourceBinding **ppShaderResourceBinding )override;
57 
58  virtual ID3D12RootSignature *GetD3D12RootSignature()const override final{return m_RootSig.GetD3D12RootSignature(); }
59 
60  ShaderResourceCacheD3D12* CommitAndTransitionShaderResources(IShaderResourceBinding *pShaderResourceBinding,
61  class CommandContext &Ctx,
62  bool CommitResources,
63  bool TransitionResources)const;
64 
65  const RootSignature& GetRootSignature()const{return m_RootSig;}
66 
67  const ShaderResourceLayoutD3D12& GetShaderResLayout(SHADER_TYPE ShaderType)const;
68 
69  bool dbgContainsShaderResources()const;
70 
71  IMemoryAllocator &GetResourceCacheDataAllocator(){return m_ResourceCacheDataAllocator;}
72  IMemoryAllocator &GetShaderResourceLayoutDataAllocator(Uint32 ActiveShaderInd)
73  {
74  VERIFY_EXPR(ActiveShaderInd < m_NumShaders);
75  auto *pAllocator = m_ResLayoutDataAllocators.GetAllocator(ActiveShaderInd);
76  return pAllocator != nullptr ? *pAllocator : GetRawAllocator();
77  }
78 
79  IShaderVariable *GetDummyShaderVar(){return &m_DummyVar;}
80 
81 private:
82 
83  void ParseShaderResourceLayout(IShader *pShader);
84 
86  CComPtr<ID3D12PipelineState> m_pd3d12PSO;
87  RootSignature m_RootSig;
88  DummyShaderVariable m_DummyVar;
89 
90  // Looks like there may be a bug in msvc: when allocators are declared as
91  // an array and if an exception is thrown from constructor, the app crashes
92  class ResLayoutDataAllocators
93  {
94  public:
95  ~ResLayoutDataAllocators()
96  {
97  for(size_t i=0; i < _countof(m_pAllocators); ++i)
98  if(m_pAllocators[i] != nullptr)
99  DESTROY_POOL_OBJECT(m_pAllocators[i]);
100  }
101  void Init(Uint32 NumActiveShaders, Uint32 SRBAllocationGranularity)
102  {
103  VERIFY_EXPR(NumActiveShaders <= _countof(m_pAllocators) );
104  for(Uint32 i=0; i < NumActiveShaders; ++i)
105  m_pAllocators[i] = NEW_POOL_OBJECT(AdaptiveFixedBlockAllocator, "Shader resource layout data allocator", GetRawAllocator(), SRBAllocationGranularity);
106  }
107  AdaptiveFixedBlockAllocator *GetAllocator(Uint32 ActiveShaderInd)
108  {
109  VERIFY_EXPR(ActiveShaderInd < _countof(m_pAllocators) );
110  return m_pAllocators[ActiveShaderInd];
111  }
112  private:
113  AdaptiveFixedBlockAllocator *m_pAllocators[5] = {};
114  }m_ResLayoutDataAllocators; // Allocators must be defined before default SRB
115 
116  ShaderResourceLayoutD3D12* m_pShaderResourceLayouts[6] = {};
117  AdaptiveFixedBlockAllocator m_ResourceCacheDataAllocator; // Use separate allocator for every shader stage
118 
119  // Do not use strong reference to avoid cyclic references
120  // Default SRB must be defined after allocators
121  std::unique_ptr<class ShaderResourceBindingD3D12Impl, STDDeleter<ShaderResourceBindingD3D12Impl, FixedBlockMemoryAllocator> > m_pDefaultShaderResBinding;
122 };
123 
124 }
Template class implementing base functionality for a pipeline state object.
Definition: PipelineStateBase.h:46
+
virtual void CreateShaderResourceBinding(IShaderResourceBinding **ppShaderResourceBinding) override
Creates a shader resource binding object.
Definition: PipelineStateD3D12Impl.cpp:260
+
virtual ID3D12PipelineState * GetD3D12PipelineState() const override final
Returns ID3D12PipelineState interface of the internal D3D12 pipeline state object object...
Definition: PipelineStateD3D12Impl.h:52
+
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
Implementation of the Diligent::RootSignature class.
Definition: RootSignature.h:161
+
virtual void BindShaderResources(IResourceMapping *pResourceMapping, Uint32 Flags) override
Binds resources for all shaders in the pipeline state.
Definition: PipelineStateD3D12Impl.cpp:244
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
IMemoryAllocator & GetRawAllocator()
Returns raw memory allocator.
Definition: EngineMemory.cpp:46
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
Shader resource binding interface.
Definition: ShaderResourceBinding.h:40
+
Implementation of the Diligent::IRenderDeviceD3D12 interface.
Definition: PipelineStateD3D12Impl.h:42
+
Uint32 m_NumShaders
Number of shaders that this PSO uses.
Definition: PipelineStateBase.h:191
+
virtual ID3D12RootSignature * GetD3D12RootSignature() const override final
Returns a pointer to the root signature object associated with this pipeline state.
Definition: PipelineStateD3D12Impl.h:58
+
Pipeline state description.
Definition: PipelineState.h:179
+
Implementation of the Diligent::IRenderDeviceD3D12 interface.
Definition: RenderDeviceD3D12Impl.h:43
+
+ + + + + diff --git a/doc/html/_pipeline_state_g_l_8h_source.html b/doc/html/_pipeline_state_g_l_8h_source.html new file mode 100644 index 00000000..67d353f6 --- /dev/null +++ b/doc/html/_pipeline_state_g_l_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/interface/PipelineStateGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PipelineStateGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "PipelineState.h"
30 
31 namespace Diligent
32 {
33 
34 // {80666BE3-318A-4403-AEE1-6E61A5B7A0F9}
35 static constexpr INTERFACE_ID IID_PipelineStateGL =
36 { 0x80666be3, 0x318a, 0x4403, { 0xae, 0xe1, 0x6e, 0x61, 0xa5, 0xb7, 0xa0, 0xf9 } };
37 
38 
41 {
42 
43 };
44 
45 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Interface to the PipelineState object implemented in OpenGL.
Definition: PipelineStateGL.h:40
+
Definition: PipelineState.h:209
+
+ + + + + diff --git a/doc/html/_pipeline_state_g_l_impl_8h_source.html b/doc/html/_pipeline_state_g_l_impl_8h_source.html new file mode 100644 index 00000000..bdd02adc --- /dev/null +++ b/doc/html/_pipeline_state_g_l_impl_8h_source.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/PipelineStateGLImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PipelineStateGLImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "PipelineStateGL.h"
27 #include "PipelineStateBase.h"
28 #include "RenderDevice.h"
29 #include "GLProgram.h"
30 #include "GLObjectWrapper.h"
31 #include "GLContext.h"
32 
33 namespace Diligent
34 {
35 
36 class FixedBlockMemoryAllocator;
37 
39 class PipelineStateGLImpl : public PipelineStateBase<IPipelineStateGL, IGLDeviceBaseInterface>
40 {
41 public:
43 
44  PipelineStateGLImpl(IReferenceCounters *pRefCounters, class RenderDeviceGLImpl *pDeviceGL, const PipelineStateDesc& PipelineDesc, bool IsDeviceInternal = false);
46 
48  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override;
49 
50  virtual void BindShaderResources( IResourceMapping *pResourceMapping, Uint32 Flags )override;
51 
52  virtual void CreateShaderResourceBinding( IShaderResourceBinding **ppShaderResourceBinding )override;
53 
54  GLProgram &GetGLProgram(){return m_GLProgram;}
55  GLObjectWrappers::GLPipelineObj &GetGLProgramPipeline(GLContext::NativeGLContextType Context);
56 
57 private:
58  void LinkGLProgram(bool bIsProgramPipelineSupported);
59 
60  GLProgram m_GLProgram;
61  ThreadingTools::LockFlag m_ProgPipelineLockFlag;
62  std::unordered_map<GLContext::NativeGLContextType, GLObjectWrappers::GLPipelineObj> m_GLProgPipelines;
63 };
64 
65 }
Template class implementing base functionality for a pipeline state object.
Definition: PipelineStateBase.h:46
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
Shader resource binding interface.
Definition: ShaderResourceBinding.h:40
+
Implementation of the render device interface in OpenGL.
Definition: RenderDeviceGLImpl.h:53
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
Queries the specific interface, see IObject::QueryInterface() for details.
+
Implementation of the Diligent::IPipelineStateGL interface.
Definition: PipelineStateGLImpl.h:39
+
virtual void CreateShaderResourceBinding(IShaderResourceBinding **ppShaderResourceBinding) override
Creates a shader resource binding object.
Definition: PipelineStateGLImpl.cpp:150
+
virtual void BindShaderResources(IResourceMapping *pResourceMapping, Uint32 Flags) override
Binds resources for all shaders in the pipeline state.
Definition: PipelineStateGLImpl.cpp:134
+
Pipeline state description.
Definition: PipelineState.h:179
+
+ + + + + diff --git a/doc/html/_platform_debug_8h_source.html b/doc/html/_platform_debug_8h_source.html new file mode 100644 index 00000000..e2311e66 --- /dev/null +++ b/doc/html/_platform_debug_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/interface/PlatformDebug.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PlatformDebug.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "PlatformDefinitions.h"
27 
28 #if defined( PLATFORM_WIN32 )
29  #include "Win32Debug.h"
30  typedef WindowsDebug PlatformDebug;
31 
32 #elif defined( PLATFORM_UNIVERSAL_WINDOWS )
33  #include "UWPDebug.h"
34  typedef WindowsStoreDebug PlatformDebug;
35 
36 #elif defined ( PLATFORM_ANDROID )
37  #include "AndroidDebug.h"
38  typedef AndroidDebug PlatformDebug;
39 
40 #elif defined ( PLATFORM_LINUX )
41  #include "LinuxDebug.h"
42  typedef LinuxDebug PlatformDebug;
43 
44 #else
45  #error Unsupported platform
46 #endif
+ + + + + diff --git a/doc/html/_platform_definitions_8h_source.html b/doc/html/_platform_definitions_8h_source.html new file mode 100644 index 00000000..9b2a6da5 --- /dev/null +++ b/doc/html/_platform_definitions_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/interface/PlatformDefinitions.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PlatformDefinitions.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #if defined(ANDROID)
27 # ifndef PLATFORM_ANDROID
28 # define PLATFORM_ANDROID
29 # endif
30 #endif
31 
32 #if !defined(PLATFORM_WIN32) && !defined(PLATFORM_UNIVERSAL_WINDOWS) && !defined(PLATFORM_ANDROID) && !defined(PLATFORM_LINUX)
33  #error Platform is not defined
34 #endif
35 
36 #if defined( PLATFORM_WIN32 )
37 
38 # if defined(PLATFORM_UNIVERSAL_WINDOWS) || defined(PLATFORM_ANDROID) || defined(PLATFORM_LINUX)
39 # error Conflicting platform macros
40 # endif
41 
42 # include "Win32PlatformDefinitions.h"
43 
44 # define OPENGL_SUPPORTED 1
45 # define D3D11_SUPPORTED 1
46 # define D3D12_SUPPORTED 1
47 
48 #elif defined( PLATFORM_UNIVERSAL_WINDOWS )
49 
50 # if defined(PLATFORM_WIN32) || defined(PLATFORM_ANDROID) || defined(PLATFORM_LINUX)
51 # error Conflicting platform macros
52 # endif
53 
54 # include "UWPDefinitions.h"
55 
56 # define OPENGL_SUPPORTED 0
57 # define D3D11_SUPPORTED 1
58 # define D3D12_SUPPORTED 1
59 
60 #elif defined( PLATFORM_ANDROID )
61 
62 # if defined (PLATFORM_WIN32) || defined(PLATFORM_UNIVERSAL_WINDOWS) || defined (PLATFORM_LINUX)
63 # error Conflicting platform macros
64 # endif
65 
66 # include "AndroidPlatformDefinitions.h"
67 
68 # define OPENGL_SUPPORTED 1
69 # define D3D11_SUPPORTED 0
70 # define D3D12_SUPPORTED 0
71 
72 #elif defined( PLATFORM_LINUX )
73 
74 # if defined(PLATFORM_WIN32) || defined(PLATFORM_UNIVERSAL_WINDOWS) || defined(PLATFORM_ANDROID)
75 # error Conflicting platform macros
76 # endif
77 
78 # include "LinuxPlatformDefinitions.h"
79 
80 # define OPENGL_SUPPORTED 1
81 # define D3D11_SUPPORTED 0
82 # define D3D12_SUPPORTED 0
83 
84 #else
85 
86 # error Unsupported platform
87 
88 #endif
+ + + + + diff --git a/doc/html/_platform_misc_8h_source.html b/doc/html/_platform_misc_8h_source.html new file mode 100644 index 00000000..9b606139 --- /dev/null +++ b/doc/html/_platform_misc_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/interface/PlatformMisc.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PlatformMisc.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "PlatformDefinitions.h"
27 
28 #if defined( PLATFORM_WIN32 ) || defined( PLATFORM_UNIVERSAL_WINDOWS )
29  #include "Win32PlatformMisc.h"
30  typedef WindowsMisc PlatformMisc;
31 
32 #elif defined ( PLATFORM_ANDROID )
33  #include "AndroidPlatformMisc.h"
34  typedef AndroidMisc PlatformMisc;
35 
36 #elif defined ( PLATFORM_LINUX )
37  #include "LinuxPlatformMisc.h"
38  typedef LinuxMisc PlatformMisc;
39 #else
40  #error Unsupported platform
41 #endif
+ + + + + diff --git a/doc/html/_platforms_2_u_w_p_2include_2pch_8h_source.html b/doc/html/_platforms_2_u_w_p_2include_2pch_8h_source.html new file mode 100644 index 00000000..73dff1ac --- /dev/null +++ b/doc/html/_platforms_2_u_w_p_2include_2pch_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/UWP/include/pch.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
pch.h
+
+
+
1 /* Copyright 2015-2016 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <cassert>
27 
28 // Do not include windows headers here because they mess up DeleteFile() and CreateDirectory()
29 // #include <wrl.h>
+ + + + + diff --git a/doc/html/_platforms_2_win32_2include_2pch_8h_source.html b/doc/html/_platforms_2_win32_2include_2pch_8h_source.html new file mode 100644 index 00000000..2b09b494 --- /dev/null +++ b/doc/html/_platforms_2_win32_2include_2pch_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Win32/include/pch.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
pch.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 // Do not include <Windows.h> here as this will
27 // mess up names in file system implementation!
28 #include "PlatformDefinitions.h"
29 #include "DebugUtilities.h"
+ + + + + diff --git a/doc/html/_rasterizer_state_8h_source.html b/doc/html/_rasterizer_state_8h_source.html new file mode 100644 index 00000000..e227d0e7 --- /dev/null +++ b/doc/html/_rasterizer_state_8h_source.html @@ -0,0 +1,107 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/RasterizerState.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RasterizerState.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "BasicTypes.h"
30 
31 namespace Diligent
32 {
33 
35 
40 enum FILL_MODE : Int32
41 {
44 
48 
52 
55 };
56 
58 
63 enum CULL_MODE : Int32
64 {
67 
71 
76 
81 
84 };
85 
86 
88 
91 {
94 
97 
103 
105  Int32 DepthBias;
106 
109  Float32 DepthBiasClamp;
110 
113 
118 
121 
124 
126 
139  CULL_MODE _CullMode = CULL_MODE_BACK,
140  Bool _FrontCounterClockwise = False,
141  Int32 _DepthBias = 0,
142  Float32 _DepthBiasClamp = 0.f,
143  Float32 _SlopeScaledDepthBias = 0.f,
144  Bool _DepthClipEnable = True,
145  Bool _ScissorEnable = False,
146  Bool _AntialiasedLineEnable = False) :
147  FillMode ( _FillMode ),
148  CullMode ( _CullMode ),
149  FrontCounterClockwise( _FrontCounterClockwise ),
150  DepthBias ( _DepthBias ),
151  DepthBiasClamp ( _DepthBiasClamp ),
152  SlopeScaledDepthBias ( _SlopeScaledDepthBias ),
153  DepthClipEnable ( _DepthClipEnable ),
154  ScissorEnable ( _ScissorEnable ),
155  AntialiasedLineEnable( _AntialiasedLineEnable )
156  {
157  }
158 
159 
161 
166  bool operator == (const RasterizerStateDesc& RHS)const
167  {
168  return FillMode == RHS.FillMode &&
169  CullMode == RHS.CullMode &&
171  DepthBias == RHS.DepthBias &&
175  ScissorEnable == RHS.ScissorEnable &&
177  }
178 };
179 
180 }
Rasterize triangles using wireframe fill. Direct3D counterpart: D3D11_FILL_WIREFRAME/D3D12_FILL_MOD...
Definition: RasterizerState.h:47
+
bool operator==(const RasterizerStateDesc &RHS) const
Tests if two structures are equivalent.
Definition: RasterizerState.h:166
+
Int32 DepthBias
Constant value added to the depth of a given pixel.
Definition: RasterizerState.h:105
+
Helper value that stores the total number of fill modes in the enumeration.
Definition: RasterizerState.h:54
+
Undefined fill mode.
Definition: RasterizerState.h:43
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
FILL_MODE FillMode
Determines traingle fill mode, see Diligent::FILL_MODE for details.
Definition: RasterizerState.h:93
+
Bool DepthClipEnable
Enable clipping based on distance.
Definition: RasterizerState.h:117
+
Bool FrontCounterClockwise
Determines if a triangle is front- or back-facing. If this parameter is True, a triangle will be cons...
Definition: RasterizerState.h:102
+
Rasterize triangles using solid fill. Direct3D counterpart: D3D11_FILL_SOLID/D3D12_FILL_MODE_SOLID...
Definition: RasterizerState.h:51
+
Bool ScissorEnable
Enable scissor-rectangle culling. All pixels outside an active scissor rectangle are culled...
Definition: RasterizerState.h:120
+
Undefined cull mode.
Definition: RasterizerState.h:66
+
CULL_MODE CullMode
Determines traingle cull mode, see Diligent::CULL_MODE for details.
Definition: RasterizerState.h:96
+
Float32 SlopeScaledDepthBias
Scalar that scales the given pixel&#39;s slope before adding to the pixel&#39;s depth.
Definition: RasterizerState.h:112
+
Rasterizer state description.
Definition: RasterizerState.h:90
+
RasterizerStateDesc(FILL_MODE _FillMode=FILL_MODE_SOLID, CULL_MODE _CullMode=CULL_MODE_BACK, Bool _FrontCounterClockwise=False, Int32 _DepthBias=0, Float32 _DepthBiasClamp=0.f, Float32 _SlopeScaledDepthBias=0.f, Bool _DepthClipEnable=True, Bool _ScissorEnable=False, Bool _AntialiasedLineEnable=False)
Initializes the structure members.
Definition: RasterizerState.h:138
+
Draw all triangles. Direct3D counterpart: D3D11_CULL_NONE/D3D12_CULL_MODE_NONE. OpenGL counterpart:...
Definition: RasterizerState.h:70
+
FILL_MODE
Fill mode.
Definition: RasterizerState.h:40
+
Helper value that stores the total number of cull modes in the enumeration.
Definition: RasterizerState.h:83
+
Do not draw triangles that are front-facing. Front- and back-facing triangles are determined by the R...
Definition: RasterizerState.h:75
+
Float32 DepthBiasClamp
Maximum depth bias of a pixel.
Definition: RasterizerState.h:109
+
Do not draw triangles that are back-facing. Front- and back-facing triangles are determined by the Ra...
Definition: RasterizerState.h:80
+
CULL_MODE
Cull mode.
Definition: RasterizerState.h:63
+
Bool AntialiasedLineEnable
Specifies whether to enable line antialiasing.
Definition: RasterizerState.h:123
+
+ + + + + diff --git a/doc/html/_ref_cnt_auto_ptr_8h_source.html b/doc/html/_ref_cnt_auto_ptr_8h_source.html new file mode 100644 index 00000000..5472fd5e --- /dev/null +++ b/doc/html/_ref_cnt_auto_ptr_8h_source.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/RefCntAutoPtr.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RefCntAutoPtr.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "DebugUtilities.h"
27 #include "LockHelper.h"
28 #include "Atomics.h"
29 #include "ValidatedCast.h"
30 #include "RefCountedObjectImpl.h"
31 #include "Object.h"
32 
33 namespace Diligent
34 {
35 
36 
37 template <typename T>
39 
40 // The main advantage of RefCntAutoPtr over the std::shared_ptr is that you can
41 // attach the same raw pointer to different smart pointers.
42 //
43 // For instance, the following code will crash since p will be released twice:
44 //
45 // auto *p = new char;
46 // std::shared_ptr<char> pTmp1(p);
47 // std::shared_ptr<char> pTmp2(p);
48 // ...
49 
50 // This code, in contrast, works perfectly fine:
51 //
52 // ObjectBase *pRawPtr(new ObjectBase);
53 // RefCntAutoPtr<ObjectBase> pSmartPtr1(pRawPtr);
54 // RefCntAutoPtr<ObjectBase> pSmartPtr2(pRawPtr);
55 // ...
56 
57 // Other advantage is that weak pointers remain valid until the
58 // object is alive, even if all smart pointers were destroyed:
59 //
60 // RefCntWeakPtr<ObjectBase> pWeakPtr(pSmartPtr1);
61 // pSmartPtr1.Release();
62 // auto pSmartPtr3 = pWeakPtr.Lock();
63 // ..
64 
65 // Weak pointers can also be attached directly to the object:
66 // RefCntWeakPtr<ObjectBase> pWeakPtr(pRawPtr);
67 //
68 
70 template <typename T>
72 {
73 public:
74  explicit RefCntAutoPtr(T *pObj = nullptr) :
75  m_pObject(pObj)
76  {
77  if( m_pObject )
78  m_pObject->AddRef();
79  }
80 
81  RefCntAutoPtr(IObject *pObj, const INTERFACE_ID &IID) :
82  m_pObject(nullptr)
83  {
84  if(pObj)
85  pObj->QueryInterface( IID, reinterpret_cast<IObject**>(&m_pObject) );
86  }
87 
88  RefCntAutoPtr(const RefCntAutoPtr &AutoPtr) :
89  m_pObject(AutoPtr.m_pObject)
90  {
91  if(m_pObject)
92  m_pObject->AddRef();
93  }
94 
95  RefCntAutoPtr(RefCntAutoPtr &&AutoPtr) :
96  m_pObject(std::move(AutoPtr.m_pObject))
97  {
98  //Make sure original pointer has no references to the object
99  AutoPtr.m_pObject = nullptr;
100  }
101 
102  ~RefCntAutoPtr()
103  {
104  Release();
105  }
106 
107  void swap(RefCntAutoPtr &AutoPtr)
108  {
109  std::swap(m_pObject, AutoPtr.m_pObject);
110  }
111 
112  void Attach(T *pObj)
113  {
114  Release();
115  m_pObject = pObj;
116  }
117 
118  T* Detach()
119  {
120  T* pObj = m_pObject;
121  m_pObject = nullptr;
122  return pObj;
123  }
124 
125  void Release()
126  {
127  if( m_pObject )
128  {
129  m_pObject->Release();
130  m_pObject = nullptr;
131  }
132  }
133 
134  RefCntAutoPtr& operator = (T *pObj)
135  {
136  if( static_cast<T*>(*this) == pObj )
137  return *this;
138 
139  return operator= (RefCntAutoPtr(pObj));
140  }
141 
142  RefCntAutoPtr& operator = (const RefCntAutoPtr &AutoPtr)
143  {
144  if( *this == AutoPtr )
145  return *this;
146 
147  Release();
148  m_pObject = AutoPtr.m_pObject;
149  if(m_pObject)
150  m_pObject->AddRef();
151 
152  return *this;
153  }
154 
155  RefCntAutoPtr& operator = (RefCntAutoPtr &&AutoPtr)
156  {
157  if( *this == AutoPtr )
158  return *this;
159 
160  Release();
161  m_pObject = std::move( AutoPtr.m_pObject );
162  //Make sure original pointer has no references to the object
163  AutoPtr.m_pObject = nullptr;
164  return *this;
165  }
166 
167  // All the access functions do not require locking reference counters pointer because if it is valid,
168  // the smart pointer holds strong reference to the object and it thus cannot be released by
169  // ohter thread
170  bool operator ! () const{return m_pObject == nullptr;}
171  operator bool () const{return m_pObject != nullptr;}
172  bool operator == (const RefCntAutoPtr& Ptr)const{return m_pObject == Ptr.m_pObject;}
173  bool operator != (const RefCntAutoPtr& Ptr)const{return m_pObject != Ptr.m_pObject;}
174  bool operator < (const RefCntAutoPtr& Ptr)const{return static_cast<const T*>(*this) < static_cast<const T*>(Ptr);}
175 
176  T& operator * () { return *m_pObject; }
177  const T& operator * ()const { return *m_pObject; }
178 
179  T* RawPtr() { return m_pObject; }
180  const T* RawPtr()const{ return m_pObject; }
181 
182  operator T* () { return RawPtr(); }
183  operator const T* ()const { return RawPtr(); }
184 
185  T* operator -> () { return m_pObject; }
186  const T* operator -> ()const{ return m_pObject; }
187 
188 private:
189  // Note that the DoublePtrHelper is a private class, and can be created only by RefCntWeakPtr
190  // Thus if no special effort is made, the lifetime of the instances of this class cannot be
191  // longer than the lifetime of the creating object
192  class DoublePtrHelper
193  {
194  public:
195  DoublePtrHelper(RefCntAutoPtr &AutoPtr) :
196  NewRawPtr( static_cast<T*>(AutoPtr) ),
197  m_pAutoPtr( std::addressof(AutoPtr) )
198  {
199  }
200 
201  DoublePtrHelper(DoublePtrHelper&& Helper) :
202  NewRawPtr(Helper.NewRawPtr),
203  m_pAutoPtr(Helper.m_pAutoPtr)
204  {
205  Helper.m_pAutoPtr = nullptr;
206  Helper.NewRawPtr = nullptr;
207  }
208 
209  ~DoublePtrHelper()
210  {
211  if( m_pAutoPtr && static_cast<T*>(*m_pAutoPtr) != NewRawPtr )
212  {
213  m_pAutoPtr->Attach(NewRawPtr);
214  }
215  }
216 
217  T*& operator*(){return NewRawPtr;}
218  const T* operator*()const{return NewRawPtr;}
219 
220  operator T**(){return &NewRawPtr;}
221  operator const T**()const{return &NewRawPtr;}
222  private:
223  T *NewRawPtr;
224  RefCntAutoPtr *m_pAutoPtr;
225  DoublePtrHelper(const DoublePtrHelper&);
226  DoublePtrHelper& operator = (const DoublePtrHelper&);
227  DoublePtrHelper& operator = (DoublePtrHelper&&);
228  };
229 
230 public:
231  DoublePtrHelper operator& ()
232  {
233  return DoublePtrHelper(*this);
234  }
235 
236  const DoublePtrHelper operator& ()const
237  {
238  return DoublePtrHelper(*this);
239  }
240 
241  T** GetRawDblPtr() {return &m_pObject;}
242  const T** GetRawDblPtr()const{return &m_pObject;}
243 
244 private:
245  T *m_pObject;
246 };
247 
249 template <typename T>
250 class RefCntWeakPtr
251 {
252 public:
253  explicit RefCntWeakPtr(T *pObj = nullptr) :
254  m_pObject(pObj),
255  m_pRefCounters(nullptr)
256  {
257  if( m_pObject )
258  {
259  m_pRefCounters = ValidatedCast<RefCountersImpl>( m_pObject->GetReferenceCounters() );
260  m_pRefCounters->AddWeakRef();
261  }
262  }
263 
264  ~RefCntWeakPtr()
265  {
266  Release();
267  }
268 
269  RefCntWeakPtr(const RefCntWeakPtr& WeakPtr) :
270  m_pObject(WeakPtr.m_pObject),
271  m_pRefCounters(WeakPtr.m_pRefCounters)
272  {
273  if( m_pRefCounters )
274  m_pRefCounters->AddWeakRef();
275  }
276 
277  RefCntWeakPtr(RefCntWeakPtr&& WeakPtr) :
278  m_pObject(std::move(WeakPtr.m_pObject)),
279  m_pRefCounters(std::move(WeakPtr.m_pRefCounters))
280  {
281  WeakPtr.m_pRefCounters = nullptr;
282  WeakPtr.m_pObject = nullptr;
283  }
284 
285  explicit RefCntWeakPtr(RefCntAutoPtr<T>& AutoPtr) :
286  m_pObject( static_cast<T*>(AutoPtr) ),
287  m_pRefCounters(AutoPtr ? ValidatedCast<RefCountersImpl>( AutoPtr->GetReferenceCounters() ) : nullptr)
288  {
289  if( m_pRefCounters )
290  m_pRefCounters->AddWeakRef();
291  }
292 
293  RefCntWeakPtr& operator = (const RefCntWeakPtr& WeakPtr)
294  {
295  if( *this == WeakPtr )
296  return *this;
297 
298  Release();
299  m_pObject = WeakPtr.m_pObject;
300  m_pRefCounters = WeakPtr.m_pRefCounters;
301  if( m_pRefCounters )
302  m_pRefCounters->AddWeakRef();
303  return *this;
304  }
305 
306  RefCntWeakPtr& operator = (T *pObj)
307  {
308  return operator= (RefCntWeakPtr(pObj));
309  }
310 
311  RefCntWeakPtr& operator = (RefCntWeakPtr&& WeakPtr)
312  {
313  if( *this == WeakPtr )
314  return *this;
315 
316  Release();
317  m_pObject = std::move(WeakPtr.m_pObject);
318  m_pRefCounters = std::move(WeakPtr.m_pRefCounters);
319  WeakPtr.m_pRefCounters = nullptr;
320  WeakPtr.m_pObject = nullptr;
321  return *this;
322  }
323 
324  RefCntWeakPtr& operator = (RefCntAutoPtr<T>& AutoPtr)
325  {
326  Release();
327  m_pObject = static_cast<T*>( AutoPtr );
328  m_pRefCounters = m_pObject ? ValidatedCast<RefCountersImpl>( m_pObject->GetReferenceCounters() ) : nullptr;
329  if( m_pRefCounters )
330  m_pRefCounters->AddWeakRef();
331  return *this;
332  }
333 
334  void Release()
335  {
336  if( m_pRefCounters )
337  m_pRefCounters->ReleaseWeakRef();
338  m_pRefCounters = nullptr;
339  m_pObject = nullptr;
340  }
341 
345  bool IsValid()
346  {
347  return m_pObject != nullptr && m_pRefCounters != nullptr && m_pRefCounters->GetNumStrongRefs() > 0;
348  }
349 
352  {
353  RefCntAutoPtr<T> spObj;
354  if( m_pRefCounters )
355  {
356  // Try to obtain pointer to the owner object.
357  // spOwner is only used to keep the object
358  // alive while obtaining strong reference from
359  // the raw pointer m_pObject
361  m_pRefCounters->GetObject( &spOwner );
362  if( spOwner )
363  {
364  // If owner is alive, we can use our RAW pointer to
365  // create strong reference
366  spObj = m_pObject;
367  }
368  else
369  {
370  // Owner object has been destroyed. There is no reason
371  // to keep this weak reference anymore
372  Release();
373  }
374  }
375  return spObj;
376  }
377 
378  bool operator == (const RefCntWeakPtr& Ptr)const{return m_pRefCounters == Ptr.m_pRefCounters;}
379  bool operator != (const RefCntWeakPtr& Ptr)const{return m_pRefCounters != Ptr.m_pRefCounters;}
380 
381 protected:
382  RefCountersImpl *m_pRefCounters;
383  // We need to store raw pointer to object itself,
384  // because if the object is owned by another object,
385  // m_pRefCounters->GetObject( &pObj ) will return
386  // pointer to owner, which is not what we need.
387  T *m_pObject;
388 };
389 
390 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Definition: AdvancedMath.h:316
+
RefCntAutoPtr< T > Lock()
Obtains a strong reference to the object.
Definition: RefCntAutoPtr.h:351
+
Implementation of weak pointers.
Definition: RefCntAutoPtr.h:38
+
Template class that implements reference counting.
Definition: RefCntAutoPtr.h:71
+
bool IsValid()
Definition: RefCntAutoPtr.h:345
+
+ + + + + diff --git a/doc/html/_ref_counted_object_impl_8h_source.html b/doc/html/_ref_counted_object_impl_8h_source.html new file mode 100644 index 00000000..80d85439 --- /dev/null +++ b/doc/html/_ref_counted_object_impl_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/RefCountedObjectImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RefCountedObjectImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Object.h"
30 #include "Atomics.h"
31 #include "DebugUtilities.h"
32 #include "LockHelper.h"
33 #include "ValidatedCast.h"
34 #include "MemoryAllocator.h"
35 
36 namespace Diligent
37 {
38 
39 // This class controls the lifetime of a refcounted object
40 class RefCountersImpl : public IReferenceCounters
41 {
42 public:
43  inline virtual CounterValueType AddStrongRef()override final
44  {
45  VERIFY( m_ObjectState == ObjectState::Alive, "Attempting to increment strong reference counter for a destroyed or not itialized object!" );
46  VERIFY( m_ObjectWrapperBuffer[0] != 0 && m_ObjectWrapperBuffer[1] != 0, "Object wrapper is not initialized");
47  return Atomics::AtomicIncrement(m_lNumStrongReferences);
48  }
49 
50  inline virtual CounterValueType ReleaseStrongRef()override final
51  {
52  VERIFY( m_ObjectState == ObjectState::Alive, "Attempting to decrement strong reference counter for an object that is not alive" );
53  VERIFY( m_ObjectWrapperBuffer[0] != 0 && m_ObjectWrapperBuffer[1] != 0, "Object wrapper is not initialized");
54 
55  // Decrement strong reference counter without acquiring the lock.
56  auto RefCount = Atomics::AtomicDecrement(m_lNumStrongReferences);
57  VERIFY( RefCount >= 0, "Inconsistent call to ReleaseStrongRef()" );
58  if( RefCount == 0 )
59  {
60  // Since RefCount==0, there are no more strong references and the only place
61  // where strong ref counter can be incremented is from GetObject().
62 
63  // If several threads were allowed to get to this point, there would
64  // be serious risk that <this> had already been destroyed and m_LockFlag expired.
65  // Consider the following scenario:
66  // |
67  // This thread | Another thread
68  // |
69  // m_lNumStrongReferences == 1
70  // m_lNumWeakReferences == 1
71  // |
72  // 1. Decrement m_lNumStrongReferences |
73  // Read RefCount==0, no lock acquired|
74  // | 1. Run GetObject()
75  // | - acquire the lock
76  // | - increment m_lNumStrongReferences
77  // | - release the lock
78  // |
79  // | 2. Run ReleaseWeakRef()
80  // | - decrement m_lNumWeakReferences
81  // |
82  // | 3. Run ReleaseStrongRef()
83  // | - decrement m_lNumStrongReferences
84  // | - read RefCount==0
85  //
86  // Both threads will get to this point. The first one will destroy <this>
87  // The second one will read expired m_LockFlag
88 
89  // IT IS CRUCIALLY IMPORTANT TO ASSURE THAT ONLY ONE THREAD WILL EVER
90  // EXECUTE THIS CODE
91 
92  // The sloution is to atomically increment strong ref counter in GetObject().
93  // There are two possible scenarios depending on who first increments the counter:
94 
95 
96  // Scenario I
97  //
98  // This thread | Another thread - GetObject() | One more thread - GetObject()
99  // | |
100  // m_lNumStrongReferences == 1 |
101  // | |
102  // | 1. Acquire the lock |
103  // 1. Decrement m_lNumStrongReferences | | 1. Wait for the lock
104  // 2. Read RefCount==0 | 2. Increment m_lNumStrongReferences |
105  // 3. Start destroying the object | 3. Read StrongRefCnt == 1 |
106  // 4. Wait for the lock | 4. DO NOT return the reference |
107  // | to the object |
108  // | 5. Decrement m_lNumStrongReferences |
109  // _ _ _ _ _ _ _ _ _ _ _ _ _| 6. Release the lock _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _
110  // | | 2. Acquire the lock
111  // | | 3. Increment m_lNumStrongReferences
112  // | | 4. Read StrongRefCnt == 1
113  // | | 5. DO NOT return the reference
114  // | | to the object
115  // | | 6. Decrement m_lNumStrongReferences
116  // _ _ _ _ _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ _ _ _ _ _ _ | _ 7. Release the lock _ _ _ _ _ _
117  // 5. Acquire the lock | |
118  // - m_lNumStrongReferences==0 | |
119  // 6. DESTROY the object | |
120  // | |
121 
122  // GetObject() MUST BE SERIALIZED for this to work properly!
123 
124 
125  // Scenario II
126  //
127  // This thread | Another thread - GetObject()
128  // |
129  // m_lNumStrongReferences == 1
130  // |
131  // | 1. Acquire the lock
132  // | 2. Increment m_lNumStrongReferences
133  // 1. Decrement m_lNumStrongReferences |
134  // 2. Read RefCount>0 |
135  // 3. DO NOT destroy the object | 3. Read StrongRefCnt > 1 (while m_lNumStrongReferences == 1)
136  // | 4. Return the reference to the object
137  // | - Increment m_lNumStrongReferences
138  // | 5. Decrement m_lNumStrongReferences
139 
140 #ifdef _DEBUG
141  Atomics::Long NumStrongRefs = m_lNumStrongReferences;
142  VERIFY( NumStrongRefs == 0 || NumStrongRefs == 1, "Num strong references (", NumStrongRefs, ") is expected to be 0 or 1" );
143 #endif
144 
145  // Acquire the lock.
146  ThreadingTools::LockHelper Lock(m_LockFlag);
147 
148  // GetObject() first acquires the lock, and only then increments and
149  // decrements the ref counter. If it reads 1 after incremeting the counter,
150  // it does not return the reference to the object and decrements the counter.
151  // If we acquired the lock, GetObject() will not start until we are done
152  VERIFY_EXPR( m_lNumStrongReferences == 0 && m_ObjectState == ObjectState::Alive );
153 
154  // Extra caution
155  if(m_lNumStrongReferences == 0 && m_ObjectState == ObjectState::Alive)
156  {
157  VERIFY(m_ObjectWrapperBuffer[0] != 0 && m_ObjectWrapperBuffer[1] != 0, "Object wrapper is not initialized");
158  // We cannot destroy the object while reference counters are locked as this will
159  // cause a deadlock in cases like this:
160  //
161  // A ==sp==> B ---wp---> A
162  //
163  // RefCounters_A.Lock();
164  // delete A{
165  // A.~dtor(){
166  // B.~dtor(){
167  // wpA.ReleaseWeakRef(){
168  // RefCounters_A.Lock(); // Deadlock
169  //
170 
171  // So we copy the object wrapper and destroy the object after unlocking the
172  // reference counters
173  size_t ObjectWrapperBufferCopy[ObjectWrapperBufferSize];
174  for(size_t i=0; i < ObjectWrapperBufferSize; ++i)
175  ObjectWrapperBufferCopy[i] = m_ObjectWrapperBuffer[i];
176 #ifdef _DEBUG
177  memset(m_ObjectWrapperBuffer, 0, sizeof(m_ObjectWrapperBuffer));
178 #endif
179  auto *pWrapper = reinterpret_cast<ObjectWrapperBase*>(ObjectWrapperBufferCopy);
180 
181  // In a multithreaded environment, reference counters object may
182  // be destroyed at any time while m_pObject->~dtor() is running.
183  // NOTE: m_pObject may not be the only object referencing m_pRefCounters.
184  // All objects that are owned by m_pObject will point to the same
185  // reference counters object.
186 
187  // Note that this is the only place where m_ObjectState is
188  // modified after the ref counters object has been created
189  m_ObjectState = ObjectState::Destroyed;
190  // The object is now detached from the reference counters and it is if
191  // it was destroyed since no one can obtain access to it.
192 
193 
194  // It is essentially important to check the number of weak references
195  // while the object is locked. Otherwise reference counters object
196  // may be destroyed twice if ReleaseWeakRef() is executed by other thread:
197  //
198  // This thread | Another thread - ReleaseWeakRef()
199  // |
200  // 1. Decrement m_lNumStrongReferences,|
201  // m_lNumStrongReferences==0, |
202  // acquire the lock, destroy |
203  // the obj, release the lock |
204  // m_lNumWeakReferences == 1 |
205  // | 1. Aacquire the lock,
206  // | decrement m_lNumWeakReferences,
207  // | m_lNumWeakReferences == 0,
208  // | m_ObjectState == ObjectState::Destroyed
209  // |
210  // 2. Read m_lNumWeakReferences == 0 |
211  // 3. Destroy the ref counters obj | 2. Destroy the ref counters obj
212  //
213  bool bDestroyThis = m_lNumWeakReferences == 0;
214  // ReleaseWeakRef() decrements m_lNumWeakReferences, and checks it for
215  // zero only after acquiring the lock. So if m_lNumWeakReferences==0, no
216  // weak reference-related code may be running
217 
218 
219  // We must explicitly unlock the object now to avoid deadlocks. Also,
220  // if this is deleted, this->m_LockFlag will expire, which will cause
221  // Lock.~LockHelper() to crash
222  Lock.Unlock();
223 
224  // Destroy referenced object
225  pWrapper->DestroyObject();
226 
227  // Note that <this> may be destroyed here already,
228  // see comments in ~ControlledObjectType()
229  if( bDestroyThis )
230  SelfDestroy();
231  }
232  }
233 
234  return RefCount;
235  }
236 
237  inline virtual CounterValueType AddWeakRef()override final
238  {
239  return Atomics::AtomicIncrement(m_lNumWeakReferences);
240  }
241 
242  inline virtual CounterValueType ReleaseWeakRef()override final
243  {
244  // The method must be serialized!
245  ThreadingTools::LockHelper Lock(m_LockFlag);
246  // It is essentially important to check the number of weak references
247  // while holding the lock. Otherwise reference counters object
248  // may be destroyed twice if ReleaseStrongRef() is executed by other
249  // thread.
250  auto NumWeakReferences = Atomics::AtomicDecrement(m_lNumWeakReferences);
251  VERIFY( NumWeakReferences >= 0, "Inconsistent call to ReleaseWeakRef()" );
252 
253  // There are two special case when we must not destroy the ref counters object even
254  // when NumWeakReferences == 0 && m_lNumStrongReferences == 0 :
255  //
256  // This thread | Another thread - ReleaseStrongRef()
257  // |
258  // 1. Lock the object |
259  // |
260  // 2. Decrement m_lNumWeakReferences, | 1. Decrement m_lNumStrongReferences,
261  // m_lNumWeakReferences==0 | RefCount == 0
262  // |
263  // | 2. Start waiting for the lock to destroy
264  // | the object, m_ObjectState != ObjectState::Destroyed
265  // 3. Do not destroy reference |
266  // counters, unlock |
267  // | 3. Acquire the lock,
268  // | destroy the object,
269  // | read m_lNumWeakReferences==0
270  // | destroy the reference counters
271  //
272 
273  // If an exception is thrown during the object construction and there is a weak pointer to the object itself,
274  // we may get to this point, but should not destroy the reference counters, because it will be destroyed by MakeNewRCObj
275  // Consider this example:
276  //
277  // A ==sp==> B ---wp---> A
278  //
279  // MakeNewRCObj::operator()
280  // try
281  // {
282  // A.ctor()
283  // B.ctor()
284  // wp.ctor m_lNumWeakReferences==1
285  // throw
286  // wp.dtor m_lNumWeakReferences==0, destroy this
287  // }
288  // catch(...)
289  // {
290  // Destory ref counters second time
291  // }
292  //
293  if( NumWeakReferences == 0 && /*m_lNumStrongReferences == 0 &&*/ m_ObjectState == ObjectState::Destroyed )
294  {
295  VERIFY_EXPR(m_lNumStrongReferences == 0);
296  VERIFY( m_ObjectWrapperBuffer[0] == 0 && m_ObjectWrapperBuffer[1] == 0, "Object wrapper must be null");
297  // m_ObjectState is set to ObjectState::Destroyed under the lock. If the state is not Destroyed,
298  // ReleaseStrongRef() will take care of it.
299  // Access to Object wrapper and decrementing m_lNumWeakReferences is atomic. Since we acquired the lock,
300  // no other thread can access either of them.
301  // Access to m_lNumStrongReferences is NOT PROTECTED by lock.
302 
303  // There are no more references to the ref counters object and the object itself
304  // is already destroyed.
305  // We can safely unlock it and destroy.
306  // If we do not unlock it, this->m_LockFlag will expire,
307  // which will cause Lock.~LockHelper() to crash.
308  Lock.Unlock();
309  SelfDestroy();
310  }
311  return NumWeakReferences;
312  }
313 
314  inline virtual void GetObject( class IObject **ppObject )override final
315  {
316  if( m_ObjectState != ObjectState::Alive)
317  return; // Early exit
318 
319  // It is essential to INCREMENT REF COUNTER while HOLDING THE LOCK to make sure that
320  // StrongRefCnt > 1 guarantees that the object is alive.
321 
322  // If other thread started deleting the object in ReleaseStrongRef(), then m_lNumStrongReferences==0
323  // We must make sure only one thread is allowed to increment the counter to guarantee that if StrongRefCnt > 1,
324  // there is at least one real strong reference left. Otherwise the following scenario may occur:
325  //
326  // m_lNumStrongReferences == 1
327  //
328  // Thread 1 - ReleaseStrongRef() | Thread 2 - GetObject() | Thread 3 - GetObject()
329  // | |
330  // - Decrement m_lNumStrongReferences | -Increment m_lNumStrongReferences | -Increment m_lNumStrongReferences
331  // - Read RefCount == 0 | -Read StrongRefCnt==1 | -Read StrongRefCnt==2
332  // Destroy the object | | -Return reference to the soon
333  // | | to expire object
334  //
335  ThreadingTools::LockHelper Lock(m_LockFlag);
336 
337  auto StrongRefCnt = Atomics::AtomicIncrement(m_lNumStrongReferences);
338 
339  // Checking if m_ObjectState == ObjectState::Alive only is not reliable:
340  //
341  // This thread | Another thread
342  // |
343  // 1. Acquire the lock |
344  // | 1. Decrement m_lNumStrongReferences
345  // 2. Increment m_lNumStrongReferences | 2. Test RefCount==0
346  // 3. Read StrongRefCnt == 1 | 3. Start destroying the object
347  // m_ObjectState == ObjectState::Alive |
348  // 4. DO NOT return the reference to | 4. Wait for the lock, m_ObjectState == ObjectState::Alive
349  // the object |
350  // 5. Decrement m_lNumStrongReferences |
351  // | 5. Destroy the object
352 
353  if( m_ObjectState == ObjectState::Alive && StrongRefCnt > 1 )
354  {
355  VERIFY( m_ObjectWrapperBuffer[0] != 0 && m_ObjectWrapperBuffer[1] != 0, "Object wrapper is not initialized");
356  // QueryInterface() must not lock the object, or a deadlock happens.
357  // The only other two methods that lock the object are ReleaseStrongRef()
358  // and ReleaseWeakRef(), which are never called by QueryInterface()
359  auto *pWrapper = reinterpret_cast<ObjectWrapperBase*>(m_ObjectWrapperBuffer);
360  pWrapper->QueryInterface(Diligent::IID_Unknown, ppObject);
361  }
362  Atomics::AtomicDecrement(m_lNumStrongReferences);
363  }
364 
365  inline virtual CounterValueType GetNumStrongRefs()const override final
366  {
367  return m_lNumStrongReferences;
368  }
369 
370  inline virtual CounterValueType GetNumWeakRefs()const override final
371  {
372  return m_lNumWeakReferences;
373  }
374 
375 private:
376  template<typename AllocatorType, typename ObjectType>
377  friend class MakeNewRCObj;
378 
379  RefCountersImpl()noexcept
380  {
381  m_lNumStrongReferences = 0;
382  m_lNumWeakReferences = 0;
383 #ifdef _DEBUG
384  memset(m_ObjectWrapperBuffer, 0, sizeof(m_ObjectWrapperBuffer));
385 #endif
386  }
387 
388  class ObjectWrapperBase
389  {
390  public:
391  virtual void DestroyObject() = 0;
392  virtual void QueryInterface( const Diligent::INTERFACE_ID &iid, IObject **ppInterface )=0;
393  };
394 
395  template<typename ObjectType, typename AllocatorType>
396  class ObjectWrapper : public ObjectWrapperBase
397  {
398  public:
399  ObjectWrapper(ObjectType *pObject, AllocatorType *pAllocator)noexcept :
400  m_pObject(pObject),
401  m_pAllocator(pAllocator)
402  {}
403  virtual void DestroyObject()override final
404  {
405  if (m_pAllocator)
406  {
407  m_pObject->~ObjectType();
408  m_pAllocator->Free(m_pObject);
409  }
410  else
411  {
412  delete m_pObject;
413  }
414  }
415  virtual void QueryInterface( const Diligent::INTERFACE_ID &iid, IObject **ppInterface )override final
416  {
417  return m_pObject->QueryInterface(iid, ppInterface);
418  }
419  private:
420  // It is crucially important that the type of the pointer
421  // is ObjectType and not IObject, since the latter
422  // does not have virtual dtor.
423  ObjectType* const m_pObject;
424  AllocatorType * const m_pAllocator;
425  };
426 
427  template<typename ObjectType, typename AllocatorType>
428  void Attach(ObjectType *pObject, AllocatorType *pAllocator)
429  {
430  VERIFY(m_ObjectState == ObjectState::NotInitialized, "Object has already been attached");
431  static_assert(sizeof(ObjectWrapper<ObjectType, AllocatorType>) == sizeof(m_ObjectWrapperBuffer), "Unexpected object wrapper size");
432  new(m_ObjectWrapperBuffer) ObjectWrapper<ObjectType, AllocatorType>(pObject, pAllocator);
433  m_ObjectState = ObjectState::Alive;
434  }
435 
436  void SelfDestroy()
437  {
438  delete this;
439  }
440 
441  ~RefCountersImpl()
442  {
443  VERIFY( m_lNumStrongReferences == 0 && m_lNumWeakReferences == 0,
444  "There exist outstanding references to the object being destroyed" );
445  }
446 
447  // No copies/moves
448  RefCountersImpl(const RefCountersImpl&) = delete;
449  RefCountersImpl(RefCountersImpl&&) = delete;
450  RefCountersImpl& operator = (const RefCountersImpl&) = delete;
451  RefCountersImpl& operator = (RefCountersImpl&&) = delete;
452 
453  static constexpr size_t ObjectWrapperBufferSize = sizeof(ObjectWrapper<IObject, IMemoryAllocator>) / sizeof(size_t);
454  size_t m_ObjectWrapperBuffer[ObjectWrapperBufferSize];
455  Atomics::AtomicLong m_lNumStrongReferences;
456  Atomics::AtomicLong m_lNumWeakReferences;
457  ThreadingTools::LockFlag m_LockFlag;
458  enum class ObjectState : Int32
459  {
460  NotInitialized,
461  Alive,
462  Destroyed
463  };
464  volatile ObjectState m_ObjectState = ObjectState::NotInitialized;
465 };
466 
467 
469 template<typename Base>
470 class RefCountedObject : public Base
471 {
472 public:
473  using CounterValueType = IReferenceCounters::CounterValueType;
474 
475  RefCountedObject(IReferenceCounters *pRefCounters)noexcept :
476  m_pRefCounters( ValidatedCast<RefCountersImpl>(pRefCounters) )
477  {
478  // If object is allocated on stack, ref counters will be null
479  //VERIFY(pRefCounters != nullptr, "Reference counters must not be null")
480  }
481 
482  // Virtual destructor makes sure all derived classes can be destroyed
483  // through the pointer to the base class
484  virtual ~RefCountedObject()
485  {
486  // WARNING! m_pRefCounters may be expired in scenarios like this:
487  //
488  // A ==sp==> B ---wp---> A
489  //
490  // RefCounters_A.ReleaseStrongRef(){ // NumStrongRef == 0, NumWeakRef == 1
491  // bDestroyThis = (m_lNumWeakReferences == 0) == false;
492  // delete A{
493  // A.~dtor(){
494  // B.~dtor(){
495  // wpA.ReleaseWeakRef(){ // NumStrongRef == 0, NumWeakRef == 0, m_pObject==nullptr
496  // delete RefCounters_A;
497  // ...
498  // VERIFY( m_pRefCounters->GetNumStrongRefs() == 0 // Access violation!
499 
500  // This also may happen if one thread is executing ReleaseStrongRef(), while
501  // another one is simultaneously running ReleaseWeakRef().
502 
503  //VERIFY( m_pRefCounters->GetNumStrongRefs() == 0,
504  // "There remain strong references to the object being destroyed" );
505  }
506 
507  inline virtual IReferenceCounters* GetReferenceCounters()const override final
508  {
509  VERIFY_EXPR(m_pRefCounters != nullptr);
510  return m_pRefCounters;
511  }
512 
513  inline virtual CounterValueType AddRef()override final
514  {
515  VERIFY_EXPR(m_pRefCounters != nullptr);
516  // Since type of m_pRefCounters is RefCountersImpl,
517  // this call will not be virtual and should be inlined
518  return m_pRefCounters->AddStrongRef();
519  }
520 
521  inline virtual CounterValueType Release()override
522  {
523  VERIFY_EXPR(m_pRefCounters != nullptr);
524  // Since type of m_pRefCounters is RefCountersImpl,
525  // this call will not be virtual and should be inlined
526  return m_pRefCounters->ReleaseStrongRef();
527  }
528 
529 protected:
530  template<typename AllocatorType, typename ObjectType>
531  friend class MakeNewRCObj;
532 
533  friend class RefCountersImpl;
534 
535 
536  // Operator delete can only be called from MakeNewRCObj if an exception is thrown,
537  // or from RefCountersImpl when object is destroyed
538  // It needs to be protected (not private!) to allow generation of destructors in derived classes
539 
540  void operator delete(void *ptr)
541  {
542  delete[] reinterpret_cast<Uint8*>(ptr);
543  }
544 
545  template<typename ObjectAllocatorType>
546  void operator delete(void *ptr, ObjectAllocatorType &Allocator, const Char* dbgDescription, const char* dbgFileName, const Int32 dbgLineNumber)
547  {
548  return Allocator.Free(ptr);
549  }
550 
551 private:
552  // Operator new is private, and can only be called by MakeNewRCObj
553 
554  void* operator new(size_t Size)
555  {
556  return new Uint8[Size];
557  }
558 
559  template<typename ObjectAllocatorType>
560  void* operator new(size_t Size, ObjectAllocatorType &Allocator, const Char* dbgDescription, const char* dbgFileName, const Int32 dbgLineNumber)
561  {
562  return Allocator.Allocate(Size, dbgDescription, dbgFileName, dbgLineNumber);
563  }
564 
565 
566  // Note that the type of the reference counters is RefCountersImpl,
567  // not IReferenceCounters. This avoids virtual calls from
568  // AddRef() and Release() methods
569  RefCountersImpl *const m_pRefCounters;
570 };
571 
572 
573 template<typename ObjectType, typename AllocatorType = IMemoryAllocator>
574 class MakeNewRCObj
575 {
576 public:
577  MakeNewRCObj(AllocatorType &Allocator, const Char* dbgDescription, const char* dbgFileName, const Int32 dbgLineNumber, IObject* pOwner = nullptr)noexcept :
578  m_pAllocator(&Allocator),
579  m_pOwner(pOwner),
580  m_dbgDescription(dbgDescription),
581  m_dbgFileName(dbgFileName),
582  m_dbgLineNumber(dbgLineNumber)
583  {
584  }
585 
586  MakeNewRCObj(IObject* pOwner = nullptr)noexcept :
587  m_pAllocator(nullptr),
588  m_pOwner(pOwner),
589  m_dbgDescription(nullptr),
590  m_dbgFileName(nullptr),
591  m_dbgLineNumber(0)
592  {}
593 
594  MakeNewRCObj(const MakeNewRCObj&) = delete;
595  MakeNewRCObj(MakeNewRCObj&&) = delete;
596  MakeNewRCObj& operator=(const MakeNewRCObj&) = delete;
597  MakeNewRCObj& operator=(MakeNewRCObj&&) = delete;
598 
599  template<typename ... CtorArgTypes>
600  ObjectType* operator() (CtorArgTypes&& ... CtorArgs)
601  {
602  RefCountersImpl *pNewRefCounters = nullptr;
603  IReferenceCounters *pRefCounters = nullptr;
604  if(m_pOwner != nullptr)
605  pRefCounters = m_pOwner->GetReferenceCounters();
606  else
607  {
608  // Constructor of RefCountersImpl class is private and only accessible
609  // by methods of MakeNewRCObj
610  pNewRefCounters = new RefCountersImpl();
611  pRefCounters = pNewRefCounters;
612  }
613  ObjectType *pObj = nullptr;
614  try
615  {
616  // Operators new and delete of RefCountedObject are private and only accessible
617  // by methods of MakeNewRCObj
618  if(m_pAllocator)
619  pObj = new(*m_pAllocator, m_dbgDescription, m_dbgFileName, m_dbgLineNumber) ObjectType(pRefCounters, std::forward<CtorArgTypes>(CtorArgs)... );
620  else
621  pObj = new ObjectType( pRefCounters, std::forward<CtorArgTypes>(CtorArgs)... );
622  if(pNewRefCounters != nullptr)
623  pNewRefCounters->Attach<ObjectType, AllocatorType>(pObj, m_pAllocator);
624  }
625  catch (...)
626  {
627  if(pNewRefCounters != nullptr)
628  pNewRefCounters->SelfDestroy();
629  throw;
630  }
631  return pObj;
632  }
633 
634 private:
635  AllocatorType* const m_pAllocator;
636  IObject* const m_pOwner;
637  const Char* const m_dbgDescription;
638  const char* const m_dbgFileName;
639  const Int32 m_dbgLineNumber;
640 };
641 
642 #define NEW_RC_OBJ(Allocator, Desc, Type, ...) MakeNewRCObj<Type, typename std::remove_reference<decltype(Allocator)>::type>(Allocator, Desc, __FILE__, __LINE__, ##__VA_ARGS__)
643 
644 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Base class for all reference counting objects.
Definition: RefCountedObjectImpl.h:470
+
+ + + + + diff --git a/doc/html/_reference_counters_8h_source.html b/doc/html/_reference_counters_8h_source.html new file mode 100644 index 00000000..e1f1aeb3 --- /dev/null +++ b/doc/html/_reference_counters_8h_source.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Primitives/interface/ReferenceCounters.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ReferenceCounters.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "InterfaceID.h"
30 
31 namespace Diligent
32 {
33 
38 {
39 public:
40  using CounterValueType = long;
41 
43 
48  virtual CounterValueType AddStrongRef() = 0;
49 
50 
54 
64  virtual CounterValueType ReleaseStrongRef() = 0;
65 
66 
68 
73  virtual CounterValueType AddWeakRef() = 0;
74 
75 
78 
83  virtual CounterValueType ReleaseWeakRef() = 0;
84 
85 
87 
95  virtual void GetObject(class IObject **ppObject) = 0;
96 
97 
99 
105  virtual CounterValueType GetNumStrongRefs()const = 0;
106 
107 
109 
113  virtual CounterValueType GetNumWeakRefs()const = 0;
114 };
115 
116 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
virtual CounterValueType AddWeakRef()=0
Increments the number of weak references by 1.
+
virtual CounterValueType GetNumStrongRefs() const =0
Returns the number of outstanding strong references.
+
virtual CounterValueType ReleaseWeakRef()=0
Decrements the number of weak references by 1. If there are no more strong and weak references...
+
virtual void GetObject(class IObject **ppObject)=0
Gets the pointer to the IUnknown interface of the referenced object.
+
Base interface for a reference counter object that stores the number of strong and weak references an...
Definition: ReferenceCounters.h:37
+
Base interface for all dynamic objects in the engine.
Definition: Object.h:36
+
virtual CounterValueType AddStrongRef()=0
Increments the number of strong references by 1.
+
virtual CounterValueType ReleaseStrongRef()=0
Decrements the number of strong references by 1 and destroys the referenced object when the counter r...
+
virtual CounterValueType GetNumWeakRefs() const =0
Returns the number of outstanding weak references.
+
+ + + + + diff --git a/doc/html/_render_device_8h_source.html b/doc/html/_render_device_8h_source.html new file mode 100644 index 00000000..e0bf9713 --- /dev/null +++ b/doc/html/_render_device_8h_source.html @@ -0,0 +1,113 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/RenderDevice.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderDevice.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "GraphicsTypes.h"
30 #include "Object.h"
31 #include "DeviceCaps.h"
32 #include "Constants.h"
33 #include "Buffer.h"
34 #include "InputLayout.h"
35 #include "Shader.h"
36 #include "Texture.h"
37 #include "Sampler.h"
38 #include "ResourceMapping.h"
39 #include "TextureView.h"
40 #include "BufferView.h"
41 #include "PipelineState.h"
42 
43 #include "DepthStencilState.h"
44 #include "RasterizerState.h"
45 #include "BlendState.h"
46 
47 namespace Diligent
48 {
49 
50 // {F0E9B607-AE33-4B2B-B1AF-A8B2C3104022}
51 static constexpr INTERFACE_ID IID_RenderDevice =
52 { 0xf0e9b607, 0xae33, 0x4b2b, { 0xb1, 0xaf, 0xa8, 0xb2, 0xc3, 0x10, 0x40, 0x22 } };
53 
55 class IRenderDevice : public IObject
56 {
57 public:
59  virtual void QueryInterface( const INTERFACE_ID &IID, IObject **ppInterface ) = 0;
60 
62 
77  virtual void CreateBuffer(const BufferDesc& BuffDesc,
78  const BufferData& BuffData,
79  IBuffer **ppBuffer) = 0;
80 
82 
89  virtual void CreateShader(const ShaderCreationAttribs &CreationAttribs,
90  IShader **ppShader) = 0;
91 
93 
114  virtual void CreateTexture(const TextureDesc& TexDesc,
115  const TextureData &Data,
116  ITexture **ppTexture) = 0;
117 
119 
128  virtual void CreateSampler(const SamplerDesc& SamDesc,
129  ISampler **ppSampler) = 0;
130 
132 
138  virtual void CreateResourceMapping( const ResourceMappingDesc &MappingDesc,
139  IResourceMapping **ppMapping ) = 0;
140 
142 
148  virtual void CreatePipelineState( const PipelineStateDesc &PipelineDesc,
149  IPipelineState **ppPipelineState ) = 0;
150 
151 
153  virtual const DeviceCaps& GetDeviceCaps()const = 0;
154 
156 
161  virtual const TextureFormatInfo &GetTextureFormatInfo( TEXTURE_FORMAT TexFormat ) = 0;
162 
163 
165 
173  virtual const TextureFormatInfoExt &GetTextureFormatInfoExt( TEXTURE_FORMAT TexFormat ) = 0;
174 };
175 
176 }
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
+
virtual const TextureFormatInfo & GetTextureFormatInfo(TEXTURE_FORMAT TexFormat)=0
Returns the basic texture format information.
+
Texture description.
Definition: Texture.h:82
+
Render device interface.
Definition: RenderDevice.h:55
+
Shader interface.
Definition: Shader.h:288
+
Describes the buffer initial data.
Definition: Buffer.h:176
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual void CreateBuffer(const BufferDesc &BuffDesc, const BufferData &BuffData, IBuffer **ppBuffer)=0
Creates a new buffer object.
+
virtual void CreateShader(const ShaderCreationAttribs &CreationAttribs, IShader **ppShader)=0
Creates a new shader object.
+
virtual void CreateResourceMapping(const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping)=0
Creates a new resource mapping.
+
Device capabilities.
Definition: DeviceCaps.h:96
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
Describes the initial data to store in the texture.
Definition: Texture.h:243
+
Sampler description.
Definition: Sampler.h:52
+
Buffer interface.
Definition: Buffer.h:200
+
Resource mapping description.
Definition: ResourceMapping.h:60
+
virtual void CreateTexture(const TextureDesc &TexDesc, const TextureData &Data, ITexture **ppTexture)=0
Creates a new texture object.
+
virtual void CreateSampler(const SamplerDesc &SamDesc, ISampler **ppSampler)=0
Creates a new sampler object.
+
Buffer description.
Definition: Buffer.h:57
+
virtual void CreatePipelineState(const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState)=0
Creates a new pipeline state object.
+
Definition: PipelineState.h:209
+
Extended texture format description.
Definition: GraphicsTypes.h:1115
+
Texture sampler interface.
Definition: Sampler.h:180
+
virtual void QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0
Queries the specific interface, see IObject::QueryInterface() for details.
+
virtual const DeviceCaps & GetDeviceCaps() const =0
Gets the device capabilities, see Diligent::DeviceCaps for details.
+
Pipeline state description.
Definition: PipelineState.h:179
+
Shader creation attributes.
Definition: Shader.h:204
+
Texture inteface.
Definition: Texture.h:276
+
Basic texture format description.
Definition: GraphicsTypes.h:1101
+
virtual const TextureFormatInfoExt & GetTextureFormatInfoExt(TEXTURE_FORMAT TexFormat)=0
Returns the extended texture format information.
+
+ + + + + diff --git a/doc/html/_render_device_base_8h_source.html b/doc/html/_render_device_base_8h_source.html new file mode 100644 index 00000000..25562fec --- /dev/null +++ b/doc/html/_render_device_base_8h_source.html @@ -0,0 +1,214 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/RenderDeviceBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderDeviceBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "RenderDevice.h"
30 #include "DeviceObjectBase.h"
31 #include "Defines.h"
32 #include "ResourceMappingImpl.h"
33 #include "StateObjectsRegistry.h"
34 #include "HashUtils.h"
35 #include "ObjectBase.h"
36 #include "DeviceContext.h"
37 #include "SwapChain.h"
38 #include "GraphicsAccessories.h"
39 #include "FixedBlockMemoryAllocator.h"
40 #include "EngineMemory.h"
41 #include "STDAllocator.h"
42 
43 namespace std
44 {
46  template<>
47  struct hash<Diligent::SamplerDesc>
48  {
49  size_t operator()( const Diligent::SamplerDesc &SamDesc ) const
50  {
51  // Sampler name is ignored in comparison operator
52  // and should not be hashed
53  return Diligent::ComputeHash( // SamDesc.Name,
54  static_cast<int>(SamDesc.MinFilter),
55  static_cast<int>(SamDesc.MagFilter),
56  static_cast<int>(SamDesc.MipFilter),
57  static_cast<int>(SamDesc.AddressU),
58  static_cast<int>(SamDesc.AddressV),
59  static_cast<int>(SamDesc.AddressW),
60  SamDesc.MipLODBias,
61  SamDesc.MaxAnisotropy,
62  static_cast<int>(SamDesc.ComparisonFunc),
63  SamDesc.BorderColor[0],
64  SamDesc.BorderColor[1],
65  SamDesc.BorderColor[2],
66  SamDesc.BorderColor[3],
67  SamDesc.MinLOD, SamDesc.MaxLOD );
68  }
69  };
70 
72  template<>
73  struct hash<Diligent::StencilOpDesc>
74  {
75  size_t operator()( const Diligent::StencilOpDesc &StOpDesc ) const
76  {
77  return Diligent::ComputeHash( static_cast<int>( StOpDesc.StencilFailOp ),
78  static_cast<int>( StOpDesc.StencilDepthFailOp ),
79  static_cast<int>( StOpDesc.StencilPassOp ),
80  static_cast<int>( StOpDesc.StencilFunc ) );
81  }
82  };
83 
85  template<>
86  struct hash<Diligent::DepthStencilStateDesc>
87  {
88  size_t operator()( const Diligent::DepthStencilStateDesc &DepthStencilDesc ) const
89  {
90  return Diligent::ComputeHash( DepthStencilDesc.DepthEnable,
91  DepthStencilDesc.DepthWriteEnable,
92  static_cast<int>(DepthStencilDesc.DepthFunc),
93  DepthStencilDesc.StencilEnable,
94  DepthStencilDesc.StencilReadMask,
95  DepthStencilDesc.StencilWriteMask,
96  DepthStencilDesc.FrontFace,
97  DepthStencilDesc.BackFace );
98  }
99  };
100 
102  template<>
103  struct hash<Diligent::RasterizerStateDesc>
104  {
105  size_t operator()( const Diligent::RasterizerStateDesc &RasterizerDesc ) const
106  {
107  return Diligent::ComputeHash( static_cast<int>( RasterizerDesc.FillMode ),
108  static_cast<int>( RasterizerDesc.CullMode ),
109  RasterizerDesc.FrontCounterClockwise,
110  RasterizerDesc.DepthBias,
111  RasterizerDesc.DepthBiasClamp,
112  RasterizerDesc.SlopeScaledDepthBias,
113  RasterizerDesc.DepthClipEnable,
114  RasterizerDesc.ScissorEnable,
115  RasterizerDesc.AntialiasedLineEnable );
116  }
117  };
118 
120  template<>
121  struct hash<Diligent::BlendStateDesc>
122  {
123  size_t operator()( const Diligent::BlendStateDesc &BSDesc ) const
124  {
125  std::size_t Seed = 0;
126  for( int i = 0; i < Diligent::BlendStateDesc::MaxRenderTargets; ++i )
127  {
128  const auto& rt = BSDesc.RenderTargets[i];
129  Diligent::HashCombine( Seed,
130  rt.BlendEnable,
131  static_cast<int>( rt.SrcBlend ),
132  static_cast<int>( rt.DestBlend ),
133  static_cast<int>( rt.BlendOp ),
134  static_cast<int>( rt.SrcBlendAlpha ),
135  static_cast<int>( rt.DestBlendAlpha ),
136  static_cast<int>( rt.BlendOpAlpha ),
137  rt.RenderTargetWriteMask );
138  }
139  Diligent::HashCombine( Seed,
140  BSDesc.AlphaToCoverageEnable,
141  BSDesc.IndependentBlendEnable );
142  return Seed;
143  }
144  };
145 
146 
148  template<>
149  struct hash<Diligent::TextureViewDesc>
150  {
151  size_t operator()( const Diligent::TextureViewDesc &TexViewDesc ) const
152  {
153  std::size_t Seed = 0;
154  Diligent::HashCombine( Seed,
155  static_cast<Diligent::Int32>(TexViewDesc.ViewType),
156  static_cast<Diligent::Int32>(TexViewDesc.TextureDim),
157  static_cast<Diligent::Int32>(TexViewDesc.Format),
158  TexViewDesc.MostDetailedMip,
159  TexViewDesc.NumMipLevels,
160  TexViewDesc.FirstArraySlice,
161  TexViewDesc.NumArraySlices,
162  TexViewDesc.AccessFlags );
163  return Seed;
164  }
165  };
166 }
167 
168 namespace Diligent
169 {
170 
172 
180 template<typename BaseInterface>
181 class RenderDeviceBase : public ObjectBase<BaseInterface>
182 {
183 public:
184 
185  typedef ObjectBase<BaseInterface> TObjectBase;
186 
200  RenderDeviceBase(IReferenceCounters *pRefCounters,
201  IMemoryAllocator &RawMemAllocator,
202  Uint32 NumDeferredContexts,
203  size_t TextureObjSize,
204  size_t TexViewObjSize,
205  size_t BufferObjSize,
206  size_t BuffViewObjSize,
207  size_t ShaderObjSize,
208  size_t SamplerObjSize,
209  size_t PSOSize,
210  size_t SRBSize) :
211  TObjectBase(pRefCounters),
212  m_TextureFormatsInfo( TEX_FORMAT_NUM_FORMATS, TextureFormatInfoExt(), STD_ALLOCATOR_RAW_MEM(TextureFormatInfoExt, RawMemAllocator, "Allocator for vector<TextureFormatInfoExt>") ),
213  m_TexFmtInfoInitFlags( TEX_FORMAT_NUM_FORMATS, false, STD_ALLOCATOR_RAW_MEM(bool, RawMemAllocator, "Allocator for vector<bool>") ),
214  m_wpDeferredContexts(NumDeferredContexts, RefCntWeakPtr<IDeviceContext>(), STD_ALLOCATOR_RAW_MEM(RefCntWeakPtr<IDeviceContext>, RawMemAllocator, "Allocator for vector< RefCntWeakPtr<IDeviceContext> >")),
215  m_SamplersRegistry(RawMemAllocator, "sampler"),
216  m_TexObjAllocator(RawMemAllocator, TextureObjSize, 64),
217  m_TexViewObjAllocator(RawMemAllocator, TexViewObjSize, 64),
218  m_BufObjAllocator(RawMemAllocator, BufferObjSize, 128),
219  m_BuffViewObjAllocator(RawMemAllocator, BuffViewObjSize, 128),
220  m_ShaderObjAllocator(RawMemAllocator, ShaderObjSize, 32),
221  m_SamplerObjAllocator(RawMemAllocator, SamplerObjSize, 32),
222  m_PSOAllocator(RawMemAllocator, PSOSize, 128),
223  m_SRBAllocator(RawMemAllocator, SRBSize, 1024),
224  m_ResMappingAllocator(RawMemAllocator, sizeof(ResourceMappingImpl), 16)
225  {
226  // Initialize texture format info
227  for( Uint32 Fmt = TEX_FORMAT_UNKNOWN; Fmt < TEX_FORMAT_NUM_FORMATS; ++Fmt )
228  static_cast<TextureFormatAttribs&>(m_TextureFormatsInfo[Fmt]) = GetTextureFormatAttribs( static_cast<TEXTURE_FORMAT>(Fmt) );
229 
230  // https://msdn.microsoft.com/en-us/library/windows/desktop/ff471325(v=vs.85).aspx
231  TEXTURE_FORMAT FilterableFormats[] =
232  {
233  TEX_FORMAT_RGBA32_FLOAT, // OpenGL ES3.1 does not require this format to be filterable
237  TEX_FORMAT_RG32_FLOAT, // OpenGL ES3.1 does not require this format to be filterable
239  //TEX_FORMAT_R10G10B10A2_UNORM,
247  TEX_FORMAT_R32_FLOAT, // OpenGL ES3.1 does not require this format to be filterable
271  };
272  for( Uint32 fmt = 0; fmt < _countof(FilterableFormats); ++fmt )
273  m_TextureFormatsInfo[ FilterableFormats[fmt] ].Filterable = true;
274  }
275 
277  {
278  }
279 
280  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_RenderDevice, ObjectBase<BaseInterface> )
281 
282 
283  virtual void CreateResourceMapping( const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping )override final;
284 
286  virtual const DeviceCaps& GetDeviceCaps()const override final
287  {
288  return m_DeviceCaps;
289  }
290 
292  virtual const TextureFormatInfo &GetTextureFormatInfo(TEXTURE_FORMAT TexFormat)override final
293  {
294  VERIFY( TexFormat >= TEX_FORMAT_UNKNOWN && TexFormat < TEX_FORMAT_NUM_FORMATS, "Texture format out of range" );
295  const auto& TexFmtInfo = m_TextureFormatsInfo[TexFormat];
296  VERIFY( TexFmtInfo.Format == TexFormat, "Sanity check failed" );
297  return TexFmtInfo;
298  }
299 
301  virtual const TextureFormatInfoExt &GetTextureFormatInfoExt( TEXTURE_FORMAT TexFormat )override final
302  {
303  VERIFY( TexFormat >= TEX_FORMAT_UNKNOWN && TexFormat < TEX_FORMAT_NUM_FORMATS, "Texture format out of range" );
304  const auto& TexFmtInfo = m_TextureFormatsInfo[TexFormat];
305  VERIFY( TexFmtInfo.Format == TexFormat, "Sanity check failed" );
306  if( !m_TexFmtInfoInitFlags[TexFormat] )
307  {
308  if( TexFmtInfo.Supported )
309  TestTextureFormat(TexFormat);
310  m_TexFmtInfoInitFlags[TexFormat] = true;
311  }
312  return TexFmtInfo;
313  }
314 
315  void OnCreateDeviceObject( IDeviceObject *pNewObject )
316  {
317  }
318 
319  StateObjectsRegistry<SamplerDesc> &GetSamplerRegistry(){ return m_SamplersRegistry; }
320 
322  void SetImmediateContext(IDeviceContext *pImmediateContext)
323  {
324  VERIFY( m_wpImmediateContext.Lock() == nullptr, "Immediate context has already been set" );
325  m_wpImmediateContext = pImmediateContext;
326  }
327 
329  void SetDeferredContext(size_t Ctx, IDeviceContext *pDeferredCtx)
330  {
331  VERIFY( m_wpDeferredContexts[Ctx].Lock() == nullptr, "Deferred context has already been set" );
332  m_wpDeferredContexts[Ctx] = pDeferredCtx;
333  }
334 
337  {
338  return m_wpDeferredContexts.size();
339  }
340 
341  RefCntAutoPtr<IDeviceContext> GetImmediateContext(){ return m_wpImmediateContext.Lock(); }
342  RefCntAutoPtr<IDeviceContext> GetDeferredContext(size_t Ctx){ return m_wpDeferredContexts[Ctx].Lock(); }
343 
344  FixedBlockMemoryAllocator& GetTexViewObjAllocator(){return m_TexViewObjAllocator;}
345  FixedBlockMemoryAllocator& GetBuffViewObjAllocator(){return m_BuffViewObjAllocator;}
346  FixedBlockMemoryAllocator& GetSRBAllocator(){return m_SRBAllocator;}
347 
348 protected:
349 
350  virtual void TestTextureFormat(TEXTURE_FORMAT TexFormat) = 0;
351 
353  template<typename TObjectType, typename TObjectDescType, typename TObjectConstructor>
354  void CreateDeviceObject( const Char *ObjectTypeName, const TObjectDescType &Desc, TObjectType **ppObject, TObjectConstructor ConstructObject );
355 
356  DeviceCaps m_DeviceCaps;
357 
358  // All state object registries hold raw pointers.
359  // This is safe because every object unregisters itself
360  // when it is deleted.
362  std::vector<TextureFormatInfoExt, STDAllocatorRawMem<TextureFormatInfoExt> > m_TextureFormatsInfo;
363  std::vector<bool, STDAllocatorRawMem<bool> > m_TexFmtInfoInitFlags;
364 
368 
370  std::vector< RefCntWeakPtr<IDeviceContext>, STDAllocatorRawMem<RefCntWeakPtr<IDeviceContext> > > m_wpDeferredContexts;
371 
381 };
382 
383 
384 template<typename BaseInterface>
386 {
387  VERIFY( ppMapping != nullptr, "Null pointer provided" );
388  if( ppMapping == nullptr )
389  return;
390  VERIFY( *ppMapping == nullptr, "Overwriting reference to existing object may cause memory leaks" );
391 
392  auto *pResourceMapping( NEW_RC_OBJ(m_ResMappingAllocator, "ResourceMappingImpl instance", ResourceMappingImpl)(GetRawAllocator()) );
393  pResourceMapping->QueryInterface( IID_ResourceMapping, reinterpret_cast<IObject**>(ppMapping) );
394  if( MappingDesc.pEntries )
395  {
396  for( auto *pEntry = MappingDesc.pEntries; pEntry->Name && pEntry->pObject; ++pEntry )
397  {
398  (*ppMapping)->AddResourceArray( pEntry->Name, pEntry->ArrayIndex, &pEntry->pObject, 1, true );
399  }
400  }
401 }
402 
403 
411 template<typename BaseInterface>
412 template<typename TObjectType, typename TObjectDescType, typename TObjectConstructor>
413 void RenderDeviceBase<BaseInterface> :: CreateDeviceObject( const Char *ObjectTypeName, const TObjectDescType &Desc, TObjectType **ppObject, TObjectConstructor ConstructObject )
414 {
415  VERIFY( ppObject != nullptr, "Null pointer provided" );
416  if(!ppObject)
417  return;
418 
419  VERIFY( *ppObject == nullptr, "Overwriting reference to existing object may cause memory leaks" );
420  // Do not release *ppObject here!
421  // Should this happen, RefCntAutoPtr<> will take care of this!
422  //if( *ppObject )
423  //{
424  // (*ppObject)->Release();
425  // *ppObject = nullptr;
426  //}
427 
428  *ppObject = nullptr;
429 
430  try
431  {
432  ConstructObject();
433  }
434  catch( const std::runtime_error & )
435  {
436  VERIFY( *ppObject == nullptr, "Object was created despite error" );
437  if( *ppObject )
438  {
439  (*ppObject)->Release();
440  *ppObject = nullptr;
441  }
442  auto ObjectDescString = GetObjectDescString( Desc );
443  if( ObjectDescString.length() )
444  {
445  LOG_ERROR( "Failed to create ", ObjectTypeName, " object \"", Desc.Name ? Desc.Name : "", "\"\n", ObjectDescString );
446  }
447  else
448  {
449  LOG_ERROR( "Failed to create ", ObjectTypeName, " object \"", Desc.Name ? Desc.Name : "", "\"" );
450  }
451  }
452 }
453 
454 }
STENCIL_OP StencilPassOp
The stencil operation to perform when stencil testing and depth testing both pass.
Definition: DepthStencilState.h:101
+
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
+
FixedBlockMemoryAllocator m_ResMappingAllocator
Allocator for resource mapping objects.
Definition: RenderDeviceBase.h:380
+
COMPARISON_FUNCTION StencilFunc
A function that compares stencil data against existing stencil data. See Diligent::COMPARISON_FUNCTIO...
Definition: DepthStencilState.h:105
+
RESOURCE_DIMENSION TextureDim
View interpretation of the original texture. For instance, one slice of a 2D texture array can be vie...
Definition: TextureView.h:65
+
void SetDeferredContext(size_t Ctx, IDeviceContext *pDeferredCtx)
Set weak reference to the deferred context.
Definition: RenderDeviceBase.h:329
+
virtual void CreateResourceMapping(const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping) override final
Implementation of IRenderDevice::CreateResourceMapping().
Definition: RenderDeviceBase.h:385
+
Four-component unsigned-normalized-integer block-compression format with 5 bits for R...
Definition: GraphicsTypes.h:615
+
Int32 DepthBias
Constant value added to the depth of a given pixel.
Definition: RasterizerState.h:105
+
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
Single-component 8-bit unsigned-normalized-integer format. D3D counterpart: DXGI_FORMAT_R8_UNORM. OpenGL counterpart: GL_R8.
Definition: GraphicsTypes.h:510
+
Unknown format.
Definition: GraphicsTypes.h:247
+ +
FixedBlockMemoryAllocator m_TexObjAllocator
Allocator for texture objects.
Definition: RenderDeviceBase.h:372
+
ResourceMappingEntry * pEntries
Pointer to the array of resource mapping entries. The last element in the array must be default value...
Definition: ResourceMapping.h:65
+
Two-component 32-bit signed-normalized-integer format with 16-bit channels. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:409
+
Two-component unsigned-normalized-integer block-compression format with 8 bits for R and 8 bits for G...
Definition: GraphicsTypes.h:667
+
float MaxLOD
Specifies the maximum value that LOD is clamped to before accessing the texture MIP levels...
Definition: Sampler.h:95
+
Four-component unsigned-normalized-integer block-compression format with 5 bits for R...
Definition: GraphicsTypes.h:563
+
Uint8 StencilWriteMask
Identify which bits of the depth-stencil buffer are accessed when writing stencil data...
Definition: DepthStencilState.h:166
+
RefCntWeakPtr< IDeviceContext > m_wpImmediateContext
Weak reference to the immediate context. Immediate context holds strong reference to the device...
Definition: RenderDeviceBase.h:367
+
Single-component 32-bit floating-point format. D3D counterpart: DXGI_FORMAT_R32_FLOAT. OpenGL counterpart: GL_R32F.
Definition: GraphicsTypes.h:425
+
StateObjectsRegistry< SamplerDesc > m_SamplersRegistry
Sampler state registry.
Definition: RenderDeviceBase.h:361
+
Bool AlphaToCoverageEnable
Specifies whether to use alpha-to-coverage as a multisampling technique when setting a pixel to a ren...
Definition: BlendState.h:355
+
Bool DepthEnable
Enable depth-stencil operations. When it is set to False, depth test always passes, depth writes are disabled, and no stencil operations are performed.
Definition: DepthStencilState.h:150
+
Uint8 StencilReadMask
Identify which bits of the depth-stencil buffer are accessed when reading stencil data...
Definition: DepthStencilState.h:163
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
void SetImmediateContext(IDeviceContext *pImmediateContext)
Set weak reference to the immediate context.
Definition: RenderDeviceBase.h:322
+
FILL_MODE FillMode
Determines traingle fill mode, see Diligent::FILL_MODE for details.
Definition: RasterizerState.h:93
+
Definition: AdvancedMath.h:316
+
Bool DepthClipEnable
Enable clipping based on distance.
Definition: RasterizerState.h:117
+
Bool FrontCounterClockwise
Determines if a triangle is front- or back-facing. If this parameter is True, a triangle will be cons...
Definition: RasterizerState.h:102
+
TEXTURE_ADDRESS_MODE AddressV
Texture address mode for V coordinate, see Diligent::TEXTURE_ADDRESS_MODE for details.
Definition: Sampler.h:69
+
Device capabilities.
Definition: DeviceCaps.h:96
+
FixedBlockMemoryAllocator m_TexViewObjAllocator
Allocator for texture view objects.
Definition: RenderDeviceBase.h:373
+
Two-component 16-bit unsigned-normalized-integer format with 8-bit channels. D3D counterpart: DXGI_...
Definition: GraphicsTypes.h:458
+
Four-component 64-bit unsigned-normalized-integer format with 16-bit channels. D3D counterpart: DXG...
Definition: GraphicsTypes.h:297
+
StencilOpDesc FrontFace
Identify stencil operations for the front-facing triangles, see Diligent::StencilOpDesc.
Definition: DepthStencilState.h:169
+
IMemoryAllocator & GetRawAllocator()
Returns raw memory allocator.
Definition: EngineMemory.cpp:46
+
One-component unsigned-normalized-integer block-compression format with 8 bits for R channel...
Definition: GraphicsTypes.h:641
+
Single-component 16-bit unsigned-normalized-integer format. D3D counterpart: DXGI_FORMAT_R16_UNORM...
Definition: GraphicsTypes.h:488
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
Two-component 32-bit half-precision floating-point format with 16-bit channels. D3D counterpart: DX...
Definition: GraphicsTypes.h:393
+
Uint32 MostDetailedMip
Most detailed mip level to use.
Definition: TextureView.h:72
+
virtual const TextureFormatInfo & GetTextureFormatInfo(TEXTURE_FORMAT TexFormat) override final
Implementation of IRenderDevice::GetTextureFormatInfo().
Definition: RenderDeviceBase.h:292
+
Four-component 32-bit signed-normalized-integer format with 8-bit channels. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:381
+
STENCIL_OP StencilFailOp
The stencil operation to perform when stencil testing fails.
Definition: DepthStencilState.h:95
+
Single-component 8-bit unsigned-normalized-integer format for alpha only. D3D counterpart: DXGI_FOR...
Definition: GraphicsTypes.h:527
+
Three-component 16-bit unsigned-normalized-integer format with 5 bits for blue, 6 bits for green...
Definition: GraphicsTypes.h:681
+
std::vector< RefCntWeakPtr< IDeviceContext >, STDAllocatorRawMem< RefCntWeakPtr< IDeviceContext > > > m_wpDeferredContexts
Weak references to deferred contexts.
Definition: RenderDeviceBase.h:370
+
Describes stencil operations that are performed based on the results of depth test.
Definition: DepthStencilState.h:92
+
Four-component 32-bit unsigned-normalized-integer format with 8-bit channels. D3D counterpart: DXGI...
Definition: GraphicsTypes.h:369
+
TEXTURE_ADDRESS_MODE AddressU
Texture address mode for U coordinate, see Diligent::TEXTURE_ADDRESS_MODE for details.
Definition: Sampler.h:66
+
FixedBlockMemoryAllocator m_PSOAllocator
Allocator for pipeline state objects.
Definition: RenderDeviceBase.h:378
+
TEXTURE_ADDRESS_MODE AddressW
Texture address mode for W coordinate, see Diligent::TEXTURE_ADDRESS_MODE for details.
Definition: Sampler.h:72
+
Three-component 32-bit format encoding three partial precision channels using 11 bits for red and gre...
Definition: GraphicsTypes.h:361
+
Sampler description.
Definition: Sampler.h:52
+
Blend state description.
Definition: BlendState.h:351
+
Four-component unsigned-normalized integer format analogous to UYVY encoding. D3D counterpart: DXGI...
Definition: GraphicsTypes.h:541
+
Float32 MipLODBias
Offset from the calculated mipmap level. For example, if a sampler calculates that a texture should b...
Definition: Sampler.h:77
+
Single-component 16-bit half-precisoin floating-point format. D3D counterpart: DXGI_FORMAT_R16_FLOA...
Definition: GraphicsTypes.h:478
+
Bool ScissorEnable
Enable scissor-rectangle culling. All pixels outside an active scissor rectangle are culled...
Definition: RasterizerState.h:120
+
Four-component unsigned-normalized-integer block-compression format with 5 bits for R...
Definition: GraphicsTypes.h:589
+
COMPARISON_FUNCTION ComparisonFunc
A function that compares sampled data against existing sampled data when comparsion filter is used...
Definition: Sampler.h:84
+
float MinLOD
Specifies the minimum value that LOD is clamped to before accessing the texture MIP levels...
Definition: Sampler.h:91
+
FixedBlockMemoryAllocator m_BufObjAllocator
Allocator for buffer objects.
Definition: RenderDeviceBase.h:374
+
Device context interface.
Definition: DeviceContext.h:443
+
Template class implementing state object registry.
Definition: StateObjectsRegistry.h:58
+
Resource mapping description.
Definition: ResourceMapping.h:60
+
size_t GetNumDeferredContexts() const
Returns number of deferred contexts.
Definition: RenderDeviceBase.h:336
+
Four-component unsigned-normalized-integer block-compression sRGB format with 5 bits for R...
Definition: GraphicsTypes.h:572
+
FixedBlockMemoryAllocator m_BuffViewObjAllocator
Allocator for buffer view objects.
Definition: RenderDeviceBase.h:375
+
Base implementation of a render device.
Definition: DeviceObjectBase.h:36
+
STENCIL_OP StencilDepthFailOp
The stencil operation to perform when stencil testing passes and depth testing fails.
Definition: DepthStencilState.h:98
+
Implementation of weak pointers.
Definition: RefCntAutoPtr.h:38
+
Two-component 32-bit format with 24 bits for unsigned-normalized-integer data and 8 bits of unreferen...
Definition: GraphicsTypes.h:445
+
Two-component 64-bit floating-point format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G3...
Definition: GraphicsTypes.h:320
+
Bool DepthWriteEnable
Enable or disable writes to a depth buffer.
Definition: DepthStencilState.h:153
+
CULL_MODE CullMode
Determines traingle cull mode, see Diligent::CULL_MODE for details.
Definition: RasterizerState.h:96
+
Four-component 64-bit signed-normalized-integer format with 16-bit channels. D3D counterpart: DXGI_...
Definition: GraphicsTypes.h:308
+
Float32 SlopeScaledDepthBias
Scalar that scales the given pixel&#39;s slope before adding to the pixel&#39;s depth.
Definition: RasterizerState.h:112
+
StencilOpDesc BackFace
Identify stencil operations for the back-facing triangles, see Diligent::StencilOpDesc.
Definition: DepthStencilState.h:172
+
Rasterizer state description.
Definition: RasterizerState.h:90
+
Memory allocator that allocates memory in a fixed-size chunks.
Definition: FixedBlockMemoryAllocator.h:50
+
Four-component unsigned-normalized-integer block-compression sRGB format with 5 bits for R...
Definition: GraphicsTypes.h:624
+
One-component signed-normalized-integer block-compression format with 8 bits for R channel...
Definition: GraphicsTypes.h:650
+
virtual const DeviceCaps & GetDeviceCaps() const override final
Implementation of IRenderDevice::GetDeviceCaps().
Definition: RenderDeviceBase.h:286
+
Texture view description.
Definition: TextureView.h:55
+
TEXTURE_VIEW_TYPE ViewType
Describes the texture view type, see Diligent::TEXTURE_VIEW_TYPE for details.
Definition: TextureView.h:58
+
Two-component signed-normalized-integer block-compression format with 8 bits for R and 8 bits for G c...
Definition: GraphicsTypes.h:676
+
Three partial-precision floating pointer numbers sharing single exponent encoded into a 32-bit value...
Definition: GraphicsTypes.h:536
+
Four-component unsigned-normalized integer format analogous to YUY2 encoding. D3D counterpart: DXGI...
Definition: GraphicsTypes.h:546
+
Bool IndependentBlendEnable
Specifies whether to enable independent blending in simultaneous render targets. If set to False...
Definition: BlendState.h:359
+
void CreateDeviceObject(const Char *ObjectTypeName, const TObjectDescType &Desc, TObjectType **ppObject, TObjectConstructor ConstructObject)
Helper template function to facilitate device object creation.
Definition: RenderDeviceBase.h:413
+
Bool StencilEnable
Enable stencil opertaions.
Definition: DepthStencilState.h:160
+
const Char * Name
Object name.
Definition: ResourceMapping.h:41
+
Depth stencil state description.
Definition: DepthStencilState.h:145
+
Single-component 8-bit signed-normalized-integer format. D3D counterpart: DXGI_FORMAT_R8_SNORM. OpenGL counterpart: GL_R8_SNORM.
Definition: GraphicsTypes.h:518
+
Extended texture format description.
Definition: GraphicsTypes.h:1115
+
static constexpr int MaxRenderTargets
Constant member defining the maximum number of render targets.
Definition: BlendState.h:362
+
Four-component 32-bit unsigned-normalized-integer sRGB format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8B8A8_UNORM_SRGB. OpenGL counterpart: GL_SRGB8_ALPHA8.
Definition: GraphicsTypes.h:373
+
Float32 DepthBiasClamp
Maximum depth bias of a pixel.
Definition: RasterizerState.h:109
+
FixedBlockMemoryAllocator m_SRBAllocator
Allocator for shader resource binding objects.
Definition: RenderDeviceBase.h:379
+
Helper member containing the total number of texture formats in the enumeration.
Definition: GraphicsTypes.h:772
+
Uint32 NumMipLevels
Total number of mip levels for the view of the texture. Render target and depth stencil views can add...
Definition: TextureView.h:79
+
FILTER_TYPE MipFilter
Mip filter, see Diligent::FILTER_TYPE for details. Only FILTER_TYPE_POINT, FILTER_TYPE_LINEAR, FILTER_TYPE_ANISOTROPIC, and FILTER_TYPE_COMPARISON_ANISOTROPIC are allowed.
Definition: Sampler.h:63
+
RenderDeviceBase(IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator, Uint32 NumDeferredContexts, size_t TextureObjSize, size_t TexViewObjSize, size_t BufferObjSize, size_t BuffViewObjSize, size_t ShaderObjSize, size_t SamplerObjSize, size_t PSOSize, size_t SRBSize)
Definition: RenderDeviceBase.h:200
+
Template class that implements reference counting.
Definition: RefCntAutoPtr.h:71
+
Float32 BorderColor[4]
Border color to use if TEXTURE_ADDRESS_BORDER is specified for AddressU, AddressV, or AddressW.
Definition: Sampler.h:87
+
Uint32 MaxAnisotropy
Maximum anisotropy level for the anisotropic filter.
Definition: Sampler.h:80
+
FILTER_TYPE MinFilter
Texture minification filter, see Diligent::FILTER_TYPE for details.
Definition: Sampler.h:55
+
Four-component 128-bit floating-point format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32...
Definition: GraphicsTypes.h:255
+
FixedBlockMemoryAllocator m_SamplerObjAllocator
Allocator for sampler objects.
Definition: RenderDeviceBase.h:377
+
Two-component 16-bit signed-normalized-integer format with 8-bit channels. D3D counterpart: DXGI_FO...
Definition: GraphicsTypes.h:466
+
Implementation of the resource mapping.
Definition: ResourceMappingImpl.h:93
+
Four-component signed-normalized-integer block-compression sRGB format with 5 bits for R...
Definition: GraphicsTypes.h:598
+
Uint32 NumArraySlices
For a texture array, number of array slices to address in the view. Set to 0 to address all array sli...
Definition: TextureView.h:94
+
FILTER_TYPE MagFilter
Texture magnification filter, see Diligent::FILTER_TYPE for details.
Definition: Sampler.h:58
+
TEXTURE_FORMAT Format
View format. If default value Diligent::TEX_FORMAT_UNKNOWN is provided, the view format will match th...
Definition: TextureView.h:69
+
Two-component 32-bit unsigned-normalized-integer format with 16-bit channels. D3D counterpart: DXGI...
Definition: GraphicsTypes.h:399
+
Two-component 64-bit format with 32-bit floating-point R channel and 8+24-bits of typeless data...
Definition: GraphicsTypes.h:340
+
Uint32 AccessFlags
For an unordered access view, allowed access flags. See Diligent::UAV_ACCESS_FLAG for details...
Definition: TextureView.h:103
+
Four-component 64-bit half-precision floating-point format with 16-bit channels. D3D counterpart: D...
Definition: GraphicsTypes.h:291
+
COMPARISON_FUNCTION DepthFunc
A function that compares depth data against existing depth data. See Diligent::COMPARISON_FUNCTION fo...
Definition: DepthStencilState.h:157
+
RenderTargetBlendDesc RenderTargets[MaxRenderTargets]
An array of RenderTargetBlendDesc structures that describe the blend states for render targets...
Definition: BlendState.h:366
+
FixedBlockMemoryAllocator m_ShaderObjAllocator
Allocator for shader objects.
Definition: RenderDeviceBase.h:376
+
Bool AntialiasedLineEnable
Specifies whether to enable line antialiasing.
Definition: RasterizerState.h:123
+
virtual const TextureFormatInfoExt & GetTextureFormatInfoExt(TEXTURE_FORMAT TexFormat) override final
Implementation of IRenderDevice::GetTextureFormatInfoExt().
Definition: RenderDeviceBase.h:301
+
Single-component 16-bit signed-normalized-integer format. D3D counterpart: DXGI_FORMAT_R16_SNORM. OpenGL counterpart: GL_R16_SNORM. OpenGLES: GL_EXT_texture_norm16 extension is required.
Definition: GraphicsTypes.h:498
+
Basic texture format description.
Definition: GraphicsTypes.h:1101
+
Uint32 FirstArraySlice
For a texture array, first array slice to address in the view.
Definition: TextureView.h:84
+
+ + + + + diff --git a/doc/html/_render_device_d3_d11_8h_source.html b/doc/html/_render_device_d3_d11_8h_source.html new file mode 100644 index 00000000..cc0a7aa1 --- /dev/null +++ b/doc/html/_render_device_d3_d11_8h_source.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/interface/RenderDeviceD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderDeviceD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "RenderDevice.h"
30 
31 namespace Diligent
32 {
33 
34 // {05B1CBB8-FCAD-49EE-BADA-7801223EC3FE}
35 static constexpr INTERFACE_ID IID_RenderDeviceD3D11 =
36 { 0x5b1cbb8, 0xfcad, 0x49ee, { 0xba, 0xda, 0x78, 0x1, 0x22, 0x3e, 0xc3, 0xfe } };
37 
40 {
41 public:
42 
44 
47  virtual ID3D11Device* GetD3D11Device() = 0;
48 
50 
60  virtual void CreateBufferFromD3DResource(ID3D11Buffer *pd3d11Buffer, const BufferDesc& BuffDesc, IBuffer **ppBuffer) = 0;
61 
63 
69  virtual void CreateTextureFromD3DResource(ID3D11Texture1D *pd3d11Texture, ITexture **ppTexture) = 0;
70 
72 
78  virtual void CreateTextureFromD3DResource(ID3D11Texture2D *pd3d11Texture, ITexture **ppTexture) = 0;
79 
81 
87  virtual void CreateTextureFromD3DResource(ID3D11Texture3D *pd3d11Texture, ITexture **ppTexture) = 0;
88 
89 };
90 
91 }
Render device interface.
Definition: RenderDevice.h:55
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Buffer interface.
Definition: Buffer.h:200
+
Buffer description.
Definition: Buffer.h:57
+
Interface to the render device object implemented in D3D11.
Definition: RenderDeviceD3D11.h:39
+
virtual void CreateBufferFromD3DResource(ID3D11Buffer *pd3d11Buffer, const BufferDesc &BuffDesc, IBuffer **ppBuffer)=0
Creates a buffer object from native d3d11 buffer.
+
virtual void CreateTextureFromD3DResource(ID3D11Texture1D *pd3d11Texture, ITexture **ppTexture)=0
Creates a texture object from native d3d11 1D texture.
+
virtual ID3D11Device * GetD3D11Device()=0
Returns a pointer to the ID3D11Device interface of the internal Direct3D11 object.
+
Texture inteface.
Definition: Texture.h:276
+
+ + + + + diff --git a/doc/html/_render_device_d3_d11_impl_8h_source.html b/doc/html/_render_device_d3_d11_impl_8h_source.html new file mode 100644 index 00000000..ba6d9de8 --- /dev/null +++ b/doc/html/_render_device_d3_d11_impl_8h_source.html @@ -0,0 +1,99 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/RenderDeviceD3D11Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderDeviceD3D11Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "RenderDeviceD3D11.h"
30 #include "RenderDeviceD3DBase.h"
31 #include "DeviceContextD3D11.h"
32 #include "EngineD3D11Attribs.h"
33 
34 namespace Diligent
35 {
36 
38 class RenderDeviceD3D11Impl : public RenderDeviceD3DBase<IRenderDeviceD3D11>
39 {
40 public:
41  typedef RenderDeviceD3DBase<IRenderDeviceD3D11> TRenderDeviceBase;
42 
43  RenderDeviceD3D11Impl( IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator, const EngineD3D11Attribs& EngineAttribs, ID3D11Device *pd3d11Device, Uint32 NumDeferredContexts );
44  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final;
45 
46  virtual void CreateBuffer(const BufferDesc& BuffDesc, const BufferData &BuffData, IBuffer **ppBuffer)override final;
47 
48  virtual void CreateShader(const ShaderCreationAttribs &ShaderCreationAttribs, IShader **ppShader)override final;
49 
50  virtual void CreateTexture(const TextureDesc& TexDesc, const TextureData &Data, ITexture **ppTexture)override final;
51 
52  virtual void CreateSampler(const SamplerDesc& SamplerDesc, ISampler **ppSampler)override final;
53 
54  virtual void CreatePipelineState( const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState )override final;
55 
56  ID3D11Device* GetD3D11Device()override final{return m_pd3d11Device;}
57 
58  virtual void CreateBufferFromD3DResource(ID3D11Buffer *pd3d11Buffer, const BufferDesc& BuffDesc, IBuffer **ppBuffer)override final;
59  virtual void CreateTextureFromD3DResource(ID3D11Texture1D *pd3d11Texture, ITexture **ppTexture)override final;
60  virtual void CreateTextureFromD3DResource(ID3D11Texture2D *pd3d11Texture, ITexture **ppTexture)override final;
61  virtual void CreateTextureFromD3DResource(ID3D11Texture3D *pd3d11Texture, ITexture **ppTexture)override final;
62 
63 private:
64  virtual void TestTextureFormat( TEXTURE_FORMAT TexFormat );
65 
66  EngineD3D11Attribs m_EngineAttribs;
67 
69  CComPtr<ID3D11Device> m_pd3d11Device;
70 };
71 
72 }
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
+
Texture description.
Definition: Texture.h:82
+
Shader interface.
Definition: Shader.h:288
+
Describes the buffer initial data.
Definition: Buffer.h:176
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Describes the initial data to store in the texture.
Definition: Texture.h:243
+
Sampler description.
Definition: Sampler.h:52
+
Buffer interface.
Definition: Buffer.h:200
+
Buffer description.
Definition: Buffer.h:57
+
Implementation of the Diligent::IRenderDeviceD3D11 interface.
Definition: RenderDeviceD3D11Impl.h:38
+
Definition: PipelineState.h:209
+
Texture sampler interface.
Definition: Sampler.h:180
+
Attributes of the Direct3D11-based engine implementation.
Definition: EngineD3D11Attribs.h:51
+
Pipeline state description.
Definition: PipelineState.h:179
+
Shader creation attributes.
Definition: Shader.h:204
+
Texture inteface.
Definition: Texture.h:276
+
+ + + + + diff --git a/doc/html/_render_device_d3_d12_8h_source.html b/doc/html/_render_device_d3_d12_8h_source.html new file mode 100644 index 00000000..051abee7 --- /dev/null +++ b/doc/html/_render_device_d3_d12_8h_source.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/interface/RenderDeviceD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderDeviceD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "RenderDevice.h"
30 
31 namespace Diligent
32 {
33 // {C7987C98-87FE-4309-AE88-E98F044B00F6}
34 static constexpr INTERFACE_ID IID_RenderDeviceD3D12 =
35 { 0xc7987c98, 0x87fe, 0x4309, { 0xae, 0x88, 0xe9, 0x8f, 0x4, 0x4b, 0x0, 0xf6 } };
36 
39 {
40 public:
41 
43 
46  virtual ID3D12Device* GetD3D12Device() = 0;
47 
49  virtual Uint64 GetNextFenceValue() = 0;
50 
53  virtual Bool IsFenceSignaled(Uint64 FenceValue) = 0;
54 
57  virtual void FinishFrame() = 0;
58 
60 
66  virtual void CreateTextureFromD3DResource(ID3D12Resource *pd3d12Texture, ITexture **ppTexture) = 0;
67 
69 
78  virtual void CreateBufferFromD3DResource(ID3D12Resource *pd3d12Buffer, const BufferDesc& BuffDesc, IBuffer **ppBuffer) = 0;
79 };
80 
81 }
Render device interface.
Definition: RenderDevice.h:55
+
virtual Bool IsFenceSignaled(Uint64 FenceValue)=0
Checks if the fence value has been signaled by the GPU. True means that all associated work has been ...
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Buffer interface.
Definition: Buffer.h:200
+
Interface to the render device object implemented in D3D12.
Definition: RenderDeviceD3D12.h:38
+
Buffer description.
Definition: Buffer.h:57
+
virtual ID3D12Device * GetD3D12Device()=0
Returns ID3D12Device interface of the internal Direct3D12 device object.
+
virtual Uint64 GetNextFenceValue()=0
Returns the fence value that will be signaled by the GPU command queue next.
+
virtual void CreateBufferFromD3DResource(ID3D12Resource *pd3d12Buffer, const BufferDesc &BuffDesc, IBuffer **ppBuffer)=0
Creates a buffer object from native d3d12 resoruce.
+
virtual void CreateTextureFromD3DResource(ID3D12Resource *pd3d12Texture, ITexture **ppTexture)=0
Creates a texture object from native d3d12 resource.
+
virtual void FinishFrame()=0
Should be called at the end of the frame when attached to existing D3D12 device Otherwise the method ...
+
Texture inteface.
Definition: Texture.h:276
+
+ + + + + diff --git a/doc/html/_render_device_d3_d12_impl_8h_source.html b/doc/html/_render_device_d3_d12_impl_8h_source.html new file mode 100644 index 00000000..b1653098 --- /dev/null +++ b/doc/html/_render_device_d3_d12_impl_8h_source.html @@ -0,0 +1,102 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/RenderDeviceD3D12Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderDeviceD3D12Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "RenderDeviceD3D12.h"
30 #include "RenderDeviceD3DBase.h"
31 #include "DescriptorHeap.h"
32 #include "CommandListManager.h"
33 #include "CommandContext.h"
34 #include "DynamicUploadHeap.h"
35 #include "Atomics.h"
36 #include "CommandQueueD3D12.h"
37 
39 namespace Diligent
40 {
41 
43 class RenderDeviceD3D12Impl : public RenderDeviceD3DBase<IRenderDeviceD3D12>
44 {
45 public:
46  typedef RenderDeviceD3DBase<IRenderDeviceD3D12> TRenderDeviceBase;
47 
48  RenderDeviceD3D12Impl( IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator, const EngineD3D12Attribs &CreationAttribs, ID3D12Device *pD3D12Device, ICommandQueueD3D12 *pCmdQueue, Uint32 NumDeferredContexts );
50 
51  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final;
52 
53  virtual void CreatePipelineState( const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState )override final;
54 
55  virtual void CreateBuffer(const BufferDesc& BuffDesc, const BufferData &BuffData, IBuffer **ppBuffer)override final;
56 
57  virtual void CreateShader(const ShaderCreationAttribs &ShaderCreationAttribs, IShader **ppShader)override final;
58 
59  virtual void CreateTexture(const TextureDesc& TexDesc, const TextureData &Data, ITexture **ppTexture)override final;
60 
61  void CreateTexture(const TextureDesc& TexDesc, ID3D12Resource *pd3d12Texture, class TextureD3D12Impl **ppTexture);
62 
63  virtual void CreateSampler(const SamplerDesc& SamplerDesc, ISampler **ppSampler)override final;
64 
65  virtual ID3D12Device* GetD3D12Device()override final{return m_pd3d12Device;}
66 
67  virtual void CreateTextureFromD3DResource(ID3D12Resource *pd3d12Texture, ITexture **ppTexture)override final;
68 
69  virtual void CreateBufferFromD3DResource(ID3D12Resource *pd3d12Buffer, const BufferDesc& BuffDesc, IBuffer **ppBuffer)override final;
70 
71  DescriptorHeapAllocation AllocateDescriptor( D3D12_DESCRIPTOR_HEAP_TYPE Type, UINT Count = 1 );
72  DescriptorHeapAllocation AllocateGPUDescriptors( D3D12_DESCRIPTOR_HEAP_TYPE Type, UINT Count = 1 );
73 
74  Uint64 GetCompletedFenceValue();
75  virtual Uint64 GetNextFenceValue() override final
76  {
77  return m_pCommandQueue->GetNextFenceValue();
78  }
79 
80  Uint64 GetCurrentFrameNumber()const {return static_cast<Uint64>(m_FrameNumber);}
81  virtual Bool IsFenceSignaled(Uint64 FenceValue) override final;
82 
83  ICommandQueueD3D12 *GetCmdQueue(){return m_pCommandQueue;}
84 
85  void IdleGPU(bool ReleaseStaleObjects);
86  CommandContext* AllocateCommandContext(const Char *ID = "");
87  void CloseAndExecuteCommandContext(CommandContext *pCtx, bool DiscardStaleObjects);
88  void DisposeCommandContext(CommandContext*);
89 
90  void SafeReleaseD3D12Object(ID3D12Object* pObj);
91  void FinishFrame(bool ReleaseAllResources);
92  virtual void FinishFrame()override final { FinishFrame(false); }
93 
94  DynamicUploadHeap* RequestUploadHeap();
95  void ReleaseUploadHeap(DynamicUploadHeap* pUploadHeap);
96 
97 private:
98  virtual void TestTextureFormat( TEXTURE_FORMAT TexFormat );
99  void ProcessReleaseQueue(Uint64 CompletedFenceValue);
100  void DiscardStaleD3D12Objects(Uint64 CmdListNumber, Uint64 FenceValue);
101 
103  CComPtr<ID3D12Device> m_pd3d12Device;
104  RefCntAutoPtr<ICommandQueueD3D12> m_pCommandQueue;
105 
106  EngineD3D12Attribs m_EngineAttribs;
107 
108  CPUDescriptorHeap m_CPUDescriptorHeaps[D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES];
109  GPUDescriptorHeap m_GPUDescriptorHeaps[2]; // D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV == 0
110  // D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER == 1
111 
112  const Uint32 m_DynamicDescriptorAllocationChunkSize[2];
113 
114  std::mutex m_CmdQueueMutex;
115 
116  Atomics::AtomicInt64 m_FrameNumber;
117  Atomics::AtomicInt64 m_NextCmdListNumber;
118 
119  // The following basic requirement guarantees correctness of resource deallocation:
120  //
121  // A resource is never released before the last draw command referencing it is invoked on the immediate context
122  //
123  // See http://diligentgraphics.com/diligent-engine/architecture/d3d12/managing-resource-lifetimes/
124 
125  //
126  // CPU
127  // Last Reference
128  // of resource X
129  // |
130  // | Submit Cmd Submit Cmd Submit Cmd
131  // | List N List N+1 List N+2
132  // V | | |
133  // NextFenceValue | * N | N+1 | N+2 |
134  //
135  //
136  // CompletedFenceValue | N-3 | N-2 | N-1 | N |
137  // . . . . .
138  // -----------------------------.--------------.---------------.-------------------.----------------.-------------
139  // . . . . .
140  //
141  // GPU | Cmd List N-2 | Cmd List N-1 | Cmd List N | Cmd List N+1 |
142  // |
143  // |
144  // Resource X can
145  // be released
146 
147  CommandListManager m_CmdListManager;
148 
149  typedef std::unique_ptr<CommandContext, STDDeleterRawMem<CommandContext> > ContextPoolElemType;
150  std::vector< ContextPoolElemType, STDAllocatorRawMem<ContextPoolElemType> > m_ContextPool;
151 
152  std::deque<CommandContext*, STDAllocatorRawMem<CommandContext*> > m_AvailableContexts;
153  std::mutex m_ContextAllocationMutex;
154 
155  std::mutex m_ReleaseQueueMutex;
156  typedef std::pair<Uint64, CComPtr<ID3D12Object> > ReleaseQueueElemType;
157  std::deque< ReleaseQueueElemType, STDAllocatorRawMem<ReleaseQueueElemType> > m_D3D12ObjReleaseQueue;
158 
159  std::mutex m_StaleObjectsMutex;
160  std::deque< ReleaseQueueElemType, STDAllocatorRawMem<ReleaseQueueElemType> > m_StaleD3D12Objects;
161 
162  std::mutex m_UploadHeapMutex;
163  typedef std::unique_ptr<DynamicUploadHeap, STDDeleterRawMem<DynamicUploadHeap> > UploadHeapPoolElemType;
164  std::vector< UploadHeapPoolElemType, STDAllocatorRawMem<UploadHeapPoolElemType> > m_UploadHeaps;
165 };
166 
167 }
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
+
Texture description.
Definition: Texture.h:82
+
Shader interface.
Definition: Shader.h:288
+
Describes the buffer initial data.
Definition: Buffer.h:176
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Describes the initial data to store in the texture.
Definition: Texture.h:243
+
Sampler description.
Definition: Sampler.h:52
+
Buffer interface.
Definition: Buffer.h:200
+
Buffer description.
Definition: Buffer.h:57
+
Command queue interface.
Definition: CommandQueueD3D12.h:37
+
Definition: PipelineState.h:209
+
Template class that implements reference counting.
Definition: RefCntAutoPtr.h:71
+
Texture sampler interface.
Definition: Sampler.h:180
+
Base implementation of the Diligent::ITextureD3D12 interface.
Definition: TextureD3D12Impl.h:42
+
Attributes specific to D3D12 engine.
Definition: GraphicsTypes.h:965
+
Pipeline state description.
Definition: PipelineState.h:179
+
Shader creation attributes.
Definition: Shader.h:204
+
Texture inteface.
Definition: Texture.h:276
+
Implementation of the Diligent::IRenderDeviceD3D12 interface.
Definition: RenderDeviceD3D12Impl.h:43
+
+ + + + + diff --git a/doc/html/_render_device_d3_d_base_8h_source.html b/doc/html/_render_device_d3_d_base_8h_source.html new file mode 100644 index 00000000..64df288c --- /dev/null +++ b/doc/html/_render_device_d3_d_base_8h_source.html @@ -0,0 +1,188 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3DBase/include/RenderDeviceD3DBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderDeviceD3DBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "RenderDeviceBase.h"
30 
31 namespace Diligent
32 {
33 
35 
36 template<typename BaseInterface>
37 class RenderDeviceD3DBase : public RenderDeviceBase<BaseInterface>
38 {
39 public:
41  IMemoryAllocator &RawMemAllocator,
42  Uint32 NumDeferredContexts,
43  size_t TextureObjSize,
44  size_t TexViewObjSize,
45  size_t BufferObjSize,
46  size_t BuffViewObjSize,
47  size_t ShaderObjSize,
48  size_t SamplerObjSize,
49  size_t PSOSize,
50  size_t SRBSize) :
51  RenderDeviceBase<BaseInterface>(pRefCounters, RawMemAllocator, NumDeferredContexts, TextureObjSize, TexViewObjSize, BufferObjSize, BuffViewObjSize, ShaderObjSize, SamplerObjSize, PSOSize, SRBSize)
52  {
53  // Flag texture formats always supported in D3D11 and D3D12
54 
55 #define FLAG_FORMAT(Fmt, IsSupported) m_TextureFormatsInfo[Fmt].Supported=IsSupported
56 
57  FLAG_FORMAT(TEX_FORMAT_RGBA32_TYPELESS, true);
58  FLAG_FORMAT(TEX_FORMAT_RGBA32_FLOAT, true);
59  FLAG_FORMAT(TEX_FORMAT_RGBA32_UINT, true);
60  FLAG_FORMAT(TEX_FORMAT_RGBA32_SINT, true);
61  FLAG_FORMAT(TEX_FORMAT_RGB32_TYPELESS, true);
62  FLAG_FORMAT(TEX_FORMAT_RGB32_FLOAT, true);
63  FLAG_FORMAT(TEX_FORMAT_RGB32_UINT, true);
64  FLAG_FORMAT(TEX_FORMAT_RGB32_SINT, true);
65  FLAG_FORMAT(TEX_FORMAT_RGBA16_TYPELESS, true);
66  FLAG_FORMAT(TEX_FORMAT_RGBA16_FLOAT, true);
67  FLAG_FORMAT(TEX_FORMAT_RGBA16_UNORM, true);
68  FLAG_FORMAT(TEX_FORMAT_RGBA16_UINT, true);
69  FLAG_FORMAT(TEX_FORMAT_RGBA16_SNORM, true);
70  FLAG_FORMAT(TEX_FORMAT_RGBA16_SINT, true);
71  FLAG_FORMAT(TEX_FORMAT_RG32_TYPELESS, true);
72  FLAG_FORMAT(TEX_FORMAT_RG32_FLOAT, true);
73  FLAG_FORMAT(TEX_FORMAT_RG32_UINT, true);
74  FLAG_FORMAT(TEX_FORMAT_RG32_SINT, true);
75  FLAG_FORMAT(TEX_FORMAT_R32G8X24_TYPELESS, true);
76  FLAG_FORMAT(TEX_FORMAT_D32_FLOAT_S8X24_UINT, true);
77  FLAG_FORMAT(TEX_FORMAT_R32_FLOAT_X8X24_TYPELESS, true);
78  FLAG_FORMAT(TEX_FORMAT_X32_TYPELESS_G8X24_UINT, true);
79  FLAG_FORMAT(TEX_FORMAT_RGB10A2_TYPELESS, true);
80  FLAG_FORMAT(TEX_FORMAT_RGB10A2_UNORM, true);
81  FLAG_FORMAT(TEX_FORMAT_RGB10A2_UINT, true);
82  FLAG_FORMAT(TEX_FORMAT_R11G11B10_FLOAT, true);
83  FLAG_FORMAT(TEX_FORMAT_RGBA8_TYPELESS, true);
84  FLAG_FORMAT(TEX_FORMAT_RGBA8_UNORM, true);
85  FLAG_FORMAT(TEX_FORMAT_RGBA8_UNORM_SRGB, true);
86  FLAG_FORMAT(TEX_FORMAT_RGBA8_UINT, true);
87  FLAG_FORMAT(TEX_FORMAT_RGBA8_SNORM, true);
88  FLAG_FORMAT(TEX_FORMAT_RGBA8_SINT, true);
89  FLAG_FORMAT(TEX_FORMAT_RG16_TYPELESS, true);
90  FLAG_FORMAT(TEX_FORMAT_RG16_FLOAT, true);
91  FLAG_FORMAT(TEX_FORMAT_RG16_UNORM, true);
92  FLAG_FORMAT(TEX_FORMAT_RG16_UINT, true);
93  FLAG_FORMAT(TEX_FORMAT_RG16_SNORM, true);
94  FLAG_FORMAT(TEX_FORMAT_RG16_SINT, true);
95  FLAG_FORMAT(TEX_FORMAT_R32_TYPELESS, true);
96  FLAG_FORMAT(TEX_FORMAT_D32_FLOAT, true);
97  FLAG_FORMAT(TEX_FORMAT_R32_FLOAT, true);
98  FLAG_FORMAT(TEX_FORMAT_R32_UINT, true);
99  FLAG_FORMAT(TEX_FORMAT_R32_SINT, true);
100  FLAG_FORMAT(TEX_FORMAT_R24G8_TYPELESS, true);
101  FLAG_FORMAT(TEX_FORMAT_D24_UNORM_S8_UINT, true);
102  FLAG_FORMAT(TEX_FORMAT_R24_UNORM_X8_TYPELESS, true);
103  FLAG_FORMAT(TEX_FORMAT_X24_TYPELESS_G8_UINT, true);
104  FLAG_FORMAT(TEX_FORMAT_RG8_TYPELESS, true);
105  FLAG_FORMAT(TEX_FORMAT_RG8_UNORM, true);
106  FLAG_FORMAT(TEX_FORMAT_RG8_UINT, true);
107  FLAG_FORMAT(TEX_FORMAT_RG8_SNORM, true);
108  FLAG_FORMAT(TEX_FORMAT_RG8_SINT, true);
109  FLAG_FORMAT(TEX_FORMAT_R16_TYPELESS, true);
110  FLAG_FORMAT(TEX_FORMAT_R16_FLOAT, true);
111  FLAG_FORMAT(TEX_FORMAT_D16_UNORM, true);
112  FLAG_FORMAT(TEX_FORMAT_R16_UNORM, true);
113  FLAG_FORMAT(TEX_FORMAT_R16_UINT, true);
114  FLAG_FORMAT(TEX_FORMAT_R16_SNORM, true);
115  FLAG_FORMAT(TEX_FORMAT_R16_SINT, true);
116  FLAG_FORMAT(TEX_FORMAT_R8_TYPELESS, true);
117  FLAG_FORMAT(TEX_FORMAT_R8_UNORM, true);
118  FLAG_FORMAT(TEX_FORMAT_R8_UINT, true);
119  FLAG_FORMAT(TEX_FORMAT_R8_SNORM, true);
120  FLAG_FORMAT(TEX_FORMAT_R8_SINT, true);
121  FLAG_FORMAT(TEX_FORMAT_A8_UNORM, true);
122  FLAG_FORMAT(TEX_FORMAT_R1_UNORM, true);
123  FLAG_FORMAT(TEX_FORMAT_RGB9E5_SHAREDEXP, true);
124  FLAG_FORMAT(TEX_FORMAT_RG8_B8G8_UNORM, true);
125  FLAG_FORMAT(TEX_FORMAT_G8R8_G8B8_UNORM, true);
126  FLAG_FORMAT(TEX_FORMAT_BC1_TYPELESS, true);
127  FLAG_FORMAT(TEX_FORMAT_BC1_UNORM, true);
128  FLAG_FORMAT(TEX_FORMAT_BC1_UNORM_SRGB, true);
129  FLAG_FORMAT(TEX_FORMAT_BC2_TYPELESS, true);
130  FLAG_FORMAT(TEX_FORMAT_BC2_UNORM, true);
131  FLAG_FORMAT(TEX_FORMAT_BC2_UNORM_SRGB, true);
132  FLAG_FORMAT(TEX_FORMAT_BC3_TYPELESS, true);
133  FLAG_FORMAT(TEX_FORMAT_BC3_UNORM, true);
134  FLAG_FORMAT(TEX_FORMAT_BC3_UNORM_SRGB, true);
135  FLAG_FORMAT(TEX_FORMAT_BC4_TYPELESS, true);
136  FLAG_FORMAT(TEX_FORMAT_BC4_UNORM, true);
137  FLAG_FORMAT(TEX_FORMAT_BC4_SNORM, true);
138  FLAG_FORMAT(TEX_FORMAT_BC5_TYPELESS, true);
139  FLAG_FORMAT(TEX_FORMAT_BC5_UNORM, true);
140  FLAG_FORMAT(TEX_FORMAT_BC5_SNORM, true);
141  FLAG_FORMAT(TEX_FORMAT_B5G6R5_UNORM, true);
142  FLAG_FORMAT(TEX_FORMAT_B5G5R5A1_UNORM, true);
143  FLAG_FORMAT(TEX_FORMAT_BGRA8_UNORM, true);
144  FLAG_FORMAT(TEX_FORMAT_BGRX8_UNORM, true);
145  FLAG_FORMAT(TEX_FORMAT_R10G10B10_XR_BIAS_A2_UNORM, true);
146  FLAG_FORMAT(TEX_FORMAT_BGRA8_TYPELESS, true);
147  FLAG_FORMAT(TEX_FORMAT_BGRA8_UNORM_SRGB, true);
148  FLAG_FORMAT(TEX_FORMAT_BGRX8_TYPELESS, true);
149  FLAG_FORMAT(TEX_FORMAT_BGRX8_UNORM_SRGB, true);
150  FLAG_FORMAT(TEX_FORMAT_BC6H_TYPELESS, true);
151  FLAG_FORMAT(TEX_FORMAT_BC6H_UF16, true);
152  FLAG_FORMAT(TEX_FORMAT_BC6H_SF16, true);
153  FLAG_FORMAT(TEX_FORMAT_BC7_TYPELESS, true);
154  FLAG_FORMAT(TEX_FORMAT_BC7_UNORM, true);
155  FLAG_FORMAT(TEX_FORMAT_BC7_UNORM_SRGB, true);
156 #undef FLAG_FORMAT
157  }
158 };
159 
160 }
Two-component typeless block-compression format with 1:2 compression ratio. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:658
+
Four-component 64-bit unsigned-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R1...
Definition: GraphicsTypes.h:301
+
Four-component unsigned-normalized-integer block-compression format with 5 bits for R...
Definition: GraphicsTypes.h:615
+
Two-component 64-bit unsigned-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32...
Definition: GraphicsTypes.h:324
+
Two-component 32-bit typeless format with 24 bits for R and 8 bits for G channel. D3D counterpart: ...
Definition: GraphicsTypes.h:437
+
Four-component 128-bit unsigned-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R...
Definition: GraphicsTypes.h:259
+
Single-component 8-bit unsigned-normalized-integer format. D3D counterpart: DXGI_FORMAT_R8_UNORM. OpenGL counterpart: GL_R8.
Definition: GraphicsTypes.h:510
+
Two-component 32-bit signed-normalized-integer format with 16-bit channels. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:409
+
Two-component unsigned-normalized-integer block-compression format with 8 bits for R and 8 bits for G...
Definition: GraphicsTypes.h:667
+
Four-component unsigned-normalized-integer block-compression format with 5 bits for R...
Definition: GraphicsTypes.h:563
+
Single-component 32-bit signed-integer format. D3D counterpart: DXGI_FORMAT_R32_SINT. OpenGL counterpart: GL_R32I.
Definition: GraphicsTypes.h:433
+
Four-component 32-bit unsigned-normalized sRGB format with 8 bits for each color channel, and 8 bits are unused. D3D counterpart: DXGI_FORMAT_B8G8R8X8_UNORM_SRGB.
Definition: GraphicsTypes.h:721
+
Single-component 32-bit floating-point format. D3D counterpart: DXGI_FORMAT_R32_FLOAT. OpenGL counterpart: GL_R32F.
Definition: GraphicsTypes.h:425
+
Four-component typeless block-compression format with 1:4 compression ratio. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:606
+
Two-component 16-bit signed-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8_S...
Definition: GraphicsTypes.h:470
+
Four component typeless block-compression format with 1:4 compression ratio. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:580
+
Base implementation of a D3D render device.
Definition: RenderDeviceD3DBase.h:37
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Four-component 32-bit unsigned-normalized-integer format with 8 bits for each channel. D3D counterpart: DXGI_FORMAT_B8G8R8A8_UNORM.
Definition: GraphicsTypes.h:691
+
Two-component 16-bit unsigned-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8...
Definition: GraphicsTypes.h:462
+
Two-component 32-bit format with 24 bits of unreferenced data and 8 bits of unsigned-integer data...
Definition: GraphicsTypes.h:450
+
Four-component 16-bit unsigned-normalized-integer format with 5 bits for each color channel and 1-bit...
Definition: GraphicsTypes.h:686
+
Three-component 96-bit typeless format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32B32...
Definition: GraphicsTypes.h:268
+
Two-component 16-bit unsigned-normalized-integer format with 8-bit channels. D3D counterpart: DXGI_...
Definition: GraphicsTypes.h:458
+
Four-component 64-bit unsigned-normalized-integer format with 16-bit channels. D3D counterpart: DXG...
Definition: GraphicsTypes.h:297
+
Four-component 32-bit unsigned-integer format with 10 bits for each color and 2 bits for alpha channe...
Definition: GraphicsTypes.h:357
+
Single-component 32-bit unsigned-integer format. D3D counterpart: DXGI_FORMAT_R32_UINT. OpenGL counterpart: GL_R32UI.
Definition: GraphicsTypes.h:429
+
Single-component 16-bit unsigned-integer format. D3D counterpart: DXGI_FORMAT_R16_UINT. OpenGL counterpart: GL_R16UI.
Definition: GraphicsTypes.h:492
+
Four-component 64-bit typeless format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16B16A...
Definition: GraphicsTypes.h:287
+
One-component unsigned-normalized-integer block-compression format with 8 bits for R channel...
Definition: GraphicsTypes.h:641
+
Single-component 16-bit unsigned-normalized-integer format. D3D counterpart: DXGI_FORMAT_R16_UNORM...
Definition: GraphicsTypes.h:488
+
Four-component 32-bit unsigned-normalized-integer format with 10 bits for each color and 2 bits for a...
Definition: GraphicsTypes.h:353
+
Two-component 32-bit half-precision floating-point format with 16-bit channels. D3D counterpart: DX...
Definition: GraphicsTypes.h:393
+
Single-component 32-bit floating-point depth format. D3D counterpart: DXGI_FORMAT_D32_FLOAT. OpenGL counterpart: GL_DEPTH_COMPONENT32F.
Definition: GraphicsTypes.h:421
+
Single-component 16-bit unsigned-normalized-integer depth format. D3D counterpart: DXGI_FORMAT_D16_...
Definition: GraphicsTypes.h:482
+
Four-component 32-bit signed-normalized-integer format with 8-bit channels. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:381
+
Single-component 8-bit unsigned-normalized-integer format for alpha only. D3D counterpart: DXGI_FOR...
Definition: GraphicsTypes.h:527
+
Three-component 16-bit unsigned-normalized-integer format with 5 bits for blue, 6 bits for green...
Definition: GraphicsTypes.h:681
+
Three-component typeless block-compression format. D3D counterpart: DXGI_FORMAT_BC6H_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT is used. OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1.
Definition: GraphicsTypes.h:729
+
Four-component 64-bit signed-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G...
Definition: GraphicsTypes.h:312
+
Single-component 1-bit format. D3D counterpart: DXGI_FORMAT_R1_UNORM.
Definition: GraphicsTypes.h:532
+
One-component typeless block-compression format with 1:2 compression ratio. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:632
+
Three-component unsigned half-precision floating-point format with 16 bits for each channel...
Definition: GraphicsTypes.h:737
+
Two-component 64-bit signed-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G3...
Definition: GraphicsTypes.h:328
+
Two-component 16-bit typeless format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8_TYPELES...
Definition: GraphicsTypes.h:454
+
Four-component 32-bit unsigned-normalized-integer format with 8-bit channels. D3D counterpart: DXGI...
Definition: GraphicsTypes.h:369
+
Two-component 64-bit typeless format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32_TYPE...
Definition: GraphicsTypes.h:316
+
Three-component 32-bit format encoding three partial precision channels using 11 bits for red and gre...
Definition: GraphicsTypes.h:361
+
Four-component unsigned-normalized integer format analogous to UYVY encoding. D3D counterpart: DXGI...
Definition: GraphicsTypes.h:541
+
Base interface for a raw memory allocator.
Definition: MemoryAllocator.h:35
+
Four-component 32-bit unsigned-normalized-integer format with 8 bits for each color channel and 8 bit...
Definition: GraphicsTypes.h:696
+
Single-component 16-bit half-precisoin floating-point format. D3D counterpart: DXGI_FORMAT_R16_FLOA...
Definition: GraphicsTypes.h:478
+
Three-component 96-bit floating-point format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32...
Definition: GraphicsTypes.h:273
+
Four-component unsigned-normalized-integer block-compression format with 5 bits for R...
Definition: GraphicsTypes.h:589
+
Four-component 32-bit signed-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8B...
Definition: GraphicsTypes.h:385
+
Four-component typeless block-compression format with 1:8 compression ratio. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:554
+
Four-component unsigned-normalized-integer block-compression sRGB format with 5 bits for R...
Definition: GraphicsTypes.h:572
+
Base implementation of a render device.
Definition: DeviceObjectBase.h:36
+
Single-component 16-bit signed-integer format. D3D counterpart: DXGI_FORMAT_R16_SINT. OpenGL counterpart: GL_R16I.
Definition: GraphicsTypes.h:502
+
Two-component 32-bit format with 24 bits for unsigned-normalized-integer data and 8 bits of unreferen...
Definition: GraphicsTypes.h:445
+
Two-component 64-bit floating-point format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G3...
Definition: GraphicsTypes.h:320
+
Two-component 32-bit signed-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G1...
Definition: GraphicsTypes.h:413
+
Four-component 64-bit signed-normalized-integer format with 16-bit channels. D3D counterpart: DXGI_...
Definition: GraphicsTypes.h:308
+
Four-component unsigned-normalized-integer block-compression sRGB format with 5 bits for R...
Definition: GraphicsTypes.h:624
+
One-component signed-normalized-integer block-compression format with 8 bits for R channel...
Definition: GraphicsTypes.h:650
+
Two-component signed-normalized-integer block-compression format with 8 bits for R and 8 bits for G c...
Definition: GraphicsTypes.h:676
+
Three partial-precision floating pointer numbers sharing single exponent encoded into a 32-bit value...
Definition: GraphicsTypes.h:536
+
Two-component 32-bit unsigned-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16...
Definition: GraphicsTypes.h:403
+
Base interface for a reference counter object that stores the number of strong and weak references an...
Definition: ReferenceCounters.h:37
+
Four-component unsigned-normalized integer format analogous to YUY2 encoding. D3D counterpart: DXGI...
Definition: GraphicsTypes.h:546
+
Three-component 96-bit signed-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32...
Definition: GraphicsTypes.h:283
+
Three-component typeless block-compression format. D3D counterpart: DXGI_FORMAT_BC7_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RGBA_BPTC_UNORM is used. OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1.
Definition: GraphicsTypes.h:753
+
Two-component 64-bit format with 32-bit floating-point depth channel and 8-bit stencil channel...
Definition: GraphicsTypes.h:336
+
Four-component 32-bit unsigned-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G...
Definition: GraphicsTypes.h:377
+
Four-component 32-bit typeless format that with 8 bits for each color channel, and 8 bits are unused...
Definition: GraphicsTypes.h:716
+
Three-channel signed half-precision floating-point format with 16 bits per each channel. D3D counterpart: DXGI_FORMAT_BC6H_SF16. OpenGL counterpart: GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT. OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1.
Definition: GraphicsTypes.h:745
+
Single-component 8-bit signed-normalized-integer format. D3D counterpart: DXGI_FORMAT_R8_SNORM. OpenGL counterpart: GL_R8_SNORM.
Definition: GraphicsTypes.h:518
+
Three-component block-compression unsigned-normalized-integer format with 4 to 7 bits per color chann...
Definition: GraphicsTypes.h:761
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
Four-component 32-bit unsigned-normalized-integer sRGB format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8B8A8_UNORM_SRGB. OpenGL counterpart: GL_SRGB8_ALPHA8.
Definition: GraphicsTypes.h:373
+
Single-component 8-bit typeless format. D3D counterpart: DXGI_FORMAT_R8_TYPELESS. OpenGL does not have direct counterpart, GL_R8 is used.
Definition: GraphicsTypes.h:506
+
Three-component 96-bit unsigned-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R...
Definition: GraphicsTypes.h:278
+
Two-component 32-bit typeless format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16_TYPE...
Definition: GraphicsTypes.h:389
+
Two-component 64-bit format with 32-bit typeless data and 8-bit G channel. D3D counterpart: DXGI_FO...
Definition: GraphicsTypes.h:345
+
Three-component block-compression unsigned-normalized-integer sRGB format with 4 to 7 bits per color ...
Definition: GraphicsTypes.h:769
+
Two-component 32-bit format with 24 bits for unsigned-normalized-integer depth and 8 bits for stencil...
Definition: GraphicsTypes.h:441
+
Four-component 32-bit typeless format with 10 bits for RGB and 2 bits for alpha channel. D3D counterpart: DXGI_FORMAT_R10G10B10A2_TYPELESS. OpenGL does not have direct counterpart, GL_RGB10_A2 is used.
Definition: GraphicsTypes.h:349
+
Four-component 128-bit floating-point format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32...
Definition: GraphicsTypes.h:255
+
Four-component 128-bit signed-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32...
Definition: GraphicsTypes.h:263
+
Four-component 32-bit unsigned-normalized sRGB format with 8 bits for each channel. D3D counterpart: DXGI_FORMAT_B8G8R8A8_UNORM_SRGB.
Definition: GraphicsTypes.h:711
+
Two-component 16-bit signed-normalized-integer format with 8-bit channels. D3D counterpart: DXGI_FO...
Definition: GraphicsTypes.h:466
+
Four-component signed-normalized-integer block-compression sRGB format with 5 bits for R...
Definition: GraphicsTypes.h:598
+
Two-component 64-bit typeless format with 32-bits for R channel and 8 bits for G channel. D3D counterpart: DXGI_FORMAT_R32G8X24_TYPELESS. OpenGL does not have direct counterpart, GL_DEPTH32F_STENCIL8 is used.
Definition: GraphicsTypes.h:332
+
Two-component 32-bit unsigned-normalized-integer format with 16-bit channels. D3D counterpart: DXGI...
Definition: GraphicsTypes.h:399
+
Two-component 64-bit format with 32-bit floating-point R channel and 8+24-bits of typeless data...
Definition: GraphicsTypes.h:340
+
Four-component 32-bit typeless format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8B8A8_TY...
Definition: GraphicsTypes.h:365
+
Four-component 64-bit half-precision floating-point format with 16-bit channels. D3D counterpart: D...
Definition: GraphicsTypes.h:291
+
Four-component 32-bit 2.8-biased fixed-point format with 10 bits for each color channel and 2-bit alp...
Definition: GraphicsTypes.h:701
+
Four-component 128-bit typeless format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32B32...
Definition: GraphicsTypes.h:251
+
Single-component 8-bit unsigned-integer format. D3D counterpart: DXGI_FORMAT_R8_UINT. OpenGL counterpart: GL_R8UI.
Definition: GraphicsTypes.h:514
+
Single-component 8-bit signed-integer format. D3D counterpart: DXGI_FORMAT_R8_SINT. OpenGL counterpart: GL_R8I.
Definition: GraphicsTypes.h:522
+
Four-component 32-bit typeless format with 8 bits for each channel. D3D counterpart: DXGI_FORMAT_B8...
Definition: GraphicsTypes.h:706
+
Single-component 16-bit signed-normalized-integer format. D3D counterpart: DXGI_FORMAT_R16_SNORM. OpenGL counterpart: GL_R16_SNORM. OpenGLES: GL_EXT_texture_norm16 extension is required.
Definition: GraphicsTypes.h:498
+
Single-component 16-bit typeless format. D3D counterpart: DXGI_FORMAT_R16_TYPELESS. OpenGL does not have direct counterpart, GL_R16F is used.
Definition: GraphicsTypes.h:474
+
Single-component 32-bit typeless format. D3D counterpart: DXGI_FORMAT_R32_TYPELESS. OpenGL does not have direct counterpart, GL_R32F is used.
Definition: GraphicsTypes.h:417
+
+ + + + + diff --git a/doc/html/_render_device_factory_d3_d11_8h_source.html b/doc/html/_render_device_factory_d3_d11_8h_source.html new file mode 100644 index 00000000..df3c239d --- /dev/null +++ b/doc/html/_render_device_factory_d3_d11_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/interface/RenderDeviceFactoryD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderDeviceFactoryD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Errors.h"
30 #include "EngineD3D11Attribs.h"
31 #include "RenderDevice.h"
32 #include "DeviceContext.h"
33 #include "SwapChain.h"
34 
35 #if PLATFORM_UNIVERSAL_WINDOWS && defined(ENGINE_DLL)
36 # include "StringTools.h"
37 #endif
38 
39 namespace Diligent
40 {
41 
42 class IEngineFactoryD3D11
43 {
44 public:
45  virtual void CreateDeviceAndContextsD3D11( const EngineD3D11Attribs& EngineAttribs,
46  IRenderDevice **ppDevice,
47  IDeviceContext **ppContexts,
48  Uint32 NumDeferredContexts ) = 0;
49 
50  virtual void CreateSwapChainD3D11( IRenderDevice *pDevice,
51  IDeviceContext *pImmediateContext,
52  const SwapChainDesc& SCDesc,
53  void* pNativeWndHandle,
54  ISwapChain **ppSwapChain ) = 0;
55 
56  virtual void AttachToD3D11Device(void *pd3d11NativeDevice,
57  void *pd3d11ImmediateContext,
58  const EngineD3D11Attribs& EngineAttribs,
59  IRenderDevice **ppDevice,
60  IDeviceContext **ppContexts,
61  Uint32 NumDeferredContexts) = 0;
62 };
63 
64 }
65 
66 extern "C"
67 {
68 #ifdef ENGINE_DLL
69 
70  typedef Diligent::IEngineFactoryD3D11* (*GetEngineFactoryD3D11Type)();
71 
72  static bool LoadGraphicsEngineD3D11(GetEngineFactoryD3D11Type &GetFactoryFunc)
73  {
74  GetFactoryFunc = nullptr;
75  std::string LibName = "GraphicsEngineD3D11_";
76 
77 #if _WIN64
78  LibName += "64";
79 #else
80  LibName += "32";
81 #endif
82 
83 #ifdef _DEBUG
84  LibName += "d";
85 #else
86  LibName += "r";
87 #endif
88 
89  LibName += ".dll";
90 #if PLATFORM_WIN32
91  auto hModule = LoadLibraryA( LibName.c_str() );
92 #elif PLATFORM_UNIVERSAL_WINDOWS
93  auto hModule = LoadPackagedLibrary(Diligent::WidenString(LibName).c_str(), 0);
94 #else
95 # error Unexpected platform
96 #endif
97  if( hModule == NULL )
98  {
99  LOG_ERROR_MESSAGE( "Failed to load ", LibName, " library." );
100  return false;
101  }
102 
103  GetFactoryFunc = reinterpret_cast<GetEngineFactoryD3D11Type>( GetProcAddress(hModule, "GetEngineFactoryD3D11") );
104  if( GetFactoryFunc == NULL )
105  {
106  LOG_ERROR_MESSAGE( "Failed to load GetEngineFactoryD3D11() from ", LibName, " library." );
107  FreeLibrary( hModule );
108  return false;
109  }
110 
111  return true;
112  }
113 #else
114 
115  Diligent::IEngineFactoryD3D11* GetEngineFactoryD3D11();
116 
117 #endif
118 }
void LoadGraphicsEngineD3D11(GetEngineFactoryD3D11Type &GetFactoryFunc)
Loads Direct3D11-based engine implementation and exports factory functions.
Definition: RenderDeviceFactoryD3D11.cpp:339
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_render_device_factory_d3_d12_8h_source.html b/doc/html/_render_device_factory_d3_d12_8h_source.html new file mode 100644 index 00000000..c14e47e9 --- /dev/null +++ b/doc/html/_render_device_factory_d3_d12_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/interface/RenderDeviceFactoryD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderDeviceFactoryD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Errors.h"
30 #include "RenderDevice.h"
31 #include "DeviceContext.h"
32 #include "SwapChain.h"
33 
34 #if PLATFORM_UNIVERSAL_WINDOWS && defined(ENGINE_DLL)
35 # include "StringTools.h"
36 #endif
37 
38 namespace Diligent
39 {
40 
41 class IEngineFactoryD3D12
42 {
43 public:
44  virtual void CreateDeviceAndContextsD3D12( const EngineD3D12Attribs& CreationAttribs,
45  IRenderDevice **ppDevice,
46  IDeviceContext **ppContexts,
47  Uint32 NumDeferredContexts) = 0;
48 
49  virtual void AttachToD3D12Device(void *pd3d12NativeDevice,
50  class ICommandQueueD3D12 *pCommandQueue,
51  const EngineD3D12Attribs& EngineAttribs,
52  IRenderDevice **ppDevice,
53  IDeviceContext **ppContexts,
54  Uint32 NumDeferredContexts) = 0;
55 
56  virtual void CreateSwapChainD3D12( IRenderDevice *pDevice,
57  IDeviceContext *pImmediateContext,
58  const SwapChainDesc& SwapChainDesc,
59  void* pNativeWndHandle,
60  ISwapChain **ppSwapChain ) = 0;
61 
62 };
63 
64 }
65 
66 extern "C"
67 {
68 #ifdef ENGINE_DLL
69 
70  typedef Diligent::IEngineFactoryD3D12* (*GetEngineFactoryD3D12Type)();
71 
72  static bool LoadGraphicsEngineD3D12(GetEngineFactoryD3D12Type &GetFactoryFunc)
73  {
74  GetFactoryFunc = nullptr;
75  std::string LibName = "GraphicsEngineD3D12_";
76 
77 #if _WIN64
78  LibName += "64";
79 #else
80  LibName += "32";
81 #endif
82 
83 #ifdef _DEBUG
84  LibName += "d";
85 #else
86  LibName += "r";
87 #endif
88 
89  LibName += ".dll";
90 #if PLATFORM_WIN32
91  auto hModule = LoadLibraryA(LibName.c_str());
92 #elif PLATFORM_UNIVERSAL_WINDOWS
93  auto hModule = LoadPackagedLibrary(Diligent::WidenString(LibName).c_str(), 0);
94 #else
95 # error Unexpected platform
96 #endif
97 
98  if( hModule == NULL )
99  {
100  LOG_ERROR_MESSAGE( "Failed to load ", LibName, " library." );
101  return false;
102  }
103 
104  GetFactoryFunc = reinterpret_cast<GetEngineFactoryD3D12Type>( GetProcAddress(hModule, "GetEngineFactoryD3D12") );
105  if( GetFactoryFunc == NULL )
106  {
107  LOG_ERROR_MESSAGE( "Failed to load GetEngineFactoryD3D12() from ", LibName, " library." );
108  FreeLibrary( hModule );
109  return false;
110  }
111 
112  return true;
113  }
114 #else
115 
116  Diligent::IEngineFactoryD3D12* GetEngineFactoryD3D12();
117 
118 #endif
119 }
void LoadGraphicsEngineD3D12(GetEngineFactoryD3D12Type &GetFactoryFunc)
Loads Direct3D12-based engine implementation and exports factory functions.
Definition: RenderDeviceFactoryD3D12.cpp:393
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_render_device_factory_open_g_l_8h_source.html b/doc/html/_render_device_factory_open_g_l_8h_source.html new file mode 100644 index 00000000..e0cb35a5 --- /dev/null +++ b/doc/html/_render_device_factory_open_g_l_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceFactoryOpenGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderDeviceFactoryOpenGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "RenderDevice.h"
30 #include "DeviceContext.h"
31 #include "SwapChain.h"
32 #include "HLSL2GLSLConverter.h"
33 
34 #if defined(PLATFORM_WIN32) || defined(PLATFORM_UNIVERSAL_WINDOWS)
35 
36 # define API_QUALIFIER
37 
38 #elif defined(PLATFORM_ANDROID) || defined(PLATFORM_LINUX)
39 
40 # ifdef ENGINE_DLL
41 # ifdef BUILDING_DLL
42  // https://gcc.gnu.org/wiki/Visibility
43 # define API_QUALIFIER __attribute__((visibility("default")))
44 # else
45 # define API_QUALIFIER __attribute__((visibility("default")))
46 # endif
47 # else
48 # define API_QUALIFIER
49 # endif
50 
51 #endif
52 
53 namespace Diligent
54 {
55 
56 class IEngineFactoryOpenGL
57 {
58 public:
59  virtual void CreateDeviceAndSwapChainGL(const EngineCreationAttribs& CreationAttribs,
60  IRenderDevice **ppDevice,
61  IDeviceContext **ppImmediateContext,
62  const SwapChainDesc& SCDesc,
63  void *pNativeWndHandle,
64  #if PLATFORM_LINUX
65  void *pDisplay,
66  #endif
67  ISwapChain **ppSwapChain ) = 0;
68  virtual void CreateHLSL2GLSLConverter(IHLSL2GLSLConverter **ppConverter) = 0;
69 
70  virtual void AttachToActiveGLContext( const EngineCreationAttribs& CreationAttribs,
71  IRenderDevice **ppDevice,
72  IDeviceContext **ppImmediateContext ) = 0;
73 };
74 
75 }
76 
77 extern "C"
78 {
79 
80 #if defined(ENGINE_DLL) && (defined(PLATFORM_WIN32) || defined(PLATFORM_UNIVERSAL_WINDOWS))
81 
82  typedef Diligent::IEngineFactoryOpenGL* (*GetEngineFactoryOpenGLType)();
83 
84  static bool LoadGraphicsEngineOpenGL(GetEngineFactoryOpenGLType &GetFactoryFunc)
85  {
86  GetFactoryFunc = nullptr;
87  std::string LibName = "GraphicsEngineOpenGL_";
88 
89 #if _WIN64
90  LibName += "64";
91 #else
92  LibName += "32";
93 #endif
94 
95 #ifdef _DEBUG
96  LibName += "d";
97 #else
98  LibName += "r";
99 #endif
100 
101  LibName += ".dll";
102  auto hModule = LoadLibraryA( LibName.c_str() );
103  if( hModule == NULL )
104  {
105  LOG_ERROR_MESSAGE( "Failed to load ", LibName, " library." );
106  return false;
107  }
108 
109  GetFactoryFunc = reinterpret_cast<GetEngineFactoryOpenGLType>( GetProcAddress(hModule, "GetEngineFactoryOpenGL") );
110  if( GetFactoryFunc == NULL )
111  {
112  LOG_ERROR_MESSAGE( "Failed to load GetEngineFactoryOpenGL() from ", LibName, " library." );
113  FreeLibrary( hModule );
114  return false;
115  }
116  return true;
117  }
118 
119 #else
120 
121  // Do not forget to call System.loadLibrary("GraphicsEngineOpenGL") in Java on Android!
122  API_QUALIFIER
123  Diligent::IEngineFactoryOpenGL* GetEngineFactoryOpenGL();
124 #endif
125 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
void LoadGraphicsEngineOpenGL(GetEngineFactoryOpenGLType &GetFactoryFunc)
Loads OpenGL-based engine implementation and exports factory functions.
Definition: RenderDeviceFactoryOpenGL.cpp:230
+
+ + + + + diff --git a/doc/html/_render_device_g_l_8h_source.html b/doc/html/_render_device_g_l_8h_source.html new file mode 100644 index 00000000..4f41fedb --- /dev/null +++ b/doc/html/_render_device_g_l_8h_source.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderDeviceGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "RenderDevice.h"
30 #include "HLSL2GLSLConverter.h"
31 
33 namespace Diligent
34 {
35 
36 // {B4B395B9-AC99-4E8A-B7E1-9DCA0D485618}
37 static constexpr INTERFACE_ID IID_RenderDeviceGL =
38 { 0xb4b395b9, 0xac99, 0x4e8a, { 0xb7, 0xe1, 0x9d, 0xca, 0xd, 0x48, 0x56, 0x18 } };
39 
42 {
43 public:
44 
46 
57  virtual void CreateTextureFromGLHandle(Uint32 GLHandle, const TextureDesc &TexDesc, ITexture **ppTexture) = 0;
58 
60 
71  virtual void CreateBufferFromGLHandle(Uint32 GLHandle, const BufferDesc &BuffDesc, IBuffer **ppBuffer) = 0;
72 };
73 
74 }
virtual void CreateTextureFromGLHandle(Uint32 GLHandle, const TextureDesc &TexDesc, ITexture **ppTexture)=0
Creates a texture from OpenGL handle.
+
Texture description.
Definition: Texture.h:82
+
Render device interface.
Definition: RenderDevice.h:55
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Buffer interface.
Definition: Buffer.h:200
+
Buffer description.
Definition: Buffer.h:57
+
virtual void CreateBufferFromGLHandle(Uint32 GLHandle, const BufferDesc &BuffDesc, IBuffer **ppBuffer)=0
Creates a buffer from OpenGL handle.
+
Interface to the render device object implemented in OpenGL.
Definition: RenderDeviceGL.h:41
+
Texture inteface.
Definition: Texture.h:276
+
+ + + + + diff --git a/doc/html/_render_device_g_l_e_s_8h_source.html b/doc/html/_render_device_g_l_e_s_8h_source.html new file mode 100644 index 00000000..adfc0293 --- /dev/null +++ b/doc/html/_render_device_g_l_e_s_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceGLES.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderDeviceGLES.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "RenderDeviceGL.h"
30 #include <android/native_window.h>
31 #include <EGL/egl.h>
32 
33 namespace Diligent
34 {
35 
36 // {F705A0D9-2023-4DE1-8B3C-C56E4CEB8DB7}
37 static const Diligent::INTERFACE_ID IID_RenderDeviceGLES =
38 { 0xf705a0d9, 0x2023, 0x4de1, { 0x8b, 0x3c, 0xc5, 0x6e, 0x4c, 0xeb, 0x8d, 0xb7 } };
39 
42 {
43 public:
44  virtual bool Invalidate() = 0;
45 
46  virtual void Suspend() = 0;
47 
48  virtual EGLint Resume( ANativeWindow* window ) = 0;
49 };
50 
51 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Interface to the render device object implemented in OpenGLES.
Definition: RenderDeviceGLES.h:41
+
Interface to the render device object implemented in OpenGL.
Definition: RenderDeviceGL.h:41
+
+ + + + + diff --git a/doc/html/_render_device_g_l_e_s_impl_8h_source.html b/doc/html/_render_device_g_l_e_s_impl_8h_source.html new file mode 100644 index 00000000..15b431cb --- /dev/null +++ b/doc/html/_render_device_g_l_e_s_impl_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLESImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderDeviceGLESImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "RenderDeviceGLImpl.h"
27 
28 namespace Diligent
29 {
30 
31 class RenderDeviceGLESImpl : public RenderDeviceGLImpl
32 {
33 public:
34  RenderDeviceGLESImpl( IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator, const ContextInitInfo &InitInfo );
35 
36  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface );
37 
38  virtual bool Invalidate();
39 
40  virtual void Suspend();
41 
42  virtual EGLint Resume( ANativeWindow* window );
43 };
44 
45 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_render_device_g_l_impl_8h_source.html b/doc/html/_render_device_g_l_impl_8h_source.html new file mode 100644 index 00000000..710c98e1 --- /dev/null +++ b/doc/html/_render_device_g_l_impl_8h_source.html @@ -0,0 +1,106 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RenderDeviceGLImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "RenderDeviceBase.h"
27 #include "GLContext.h"
28 #include "VAOCache.h"
29 #include "BaseInterfacesGL.h"
30 #include "FBOCache.h"
31 #include "TexRegionRender.h"
32 
33 enum class GPU_VENDOR
34 {
35  UNKNOWN,
36  INTEL,
37  ATI,
38  NVIDIA
39 };
40 
41 struct GPUInfo
42 {
43  GPU_VENDOR Vendor;
44  GPUInfo() :
45  Vendor( GPU_VENDOR::UNKNOWN )
46  {}
47 };
48 
49 namespace Diligent
50 {
51 
53 class RenderDeviceGLImpl : public RenderDeviceBase<IGLDeviceBaseInterface>
54 {
55 public:
57 
58  RenderDeviceGLImpl( IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator, const ContextInitInfo &InitInfo );
60  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override;
61 
62  void CreateBuffer(const BufferDesc& BuffDesc, const BufferData &BuffData, IBuffer **ppBufferLayout, bool bIsDeviceInternal);
63  virtual void CreateBuffer(const BufferDesc& BuffDesc, const BufferData &BuffData, IBuffer **ppBufferLayout)override final;
64 
65  void CreateShader(const ShaderCreationAttribs &ShaderCreationAttribs, IShader **ppShader, bool bIsDeviceInternal );
66  virtual void CreateShader(const ShaderCreationAttribs &ShaderCreationAttribs, IShader **ppShader)override final;
67 
68  void CreateTexture(const TextureDesc& TexDesc, const TextureData &Data, ITexture **ppTexture, bool bIsDeviceInternal);
69  virtual void CreateTexture(const TextureDesc& TexDesc, const TextureData &Data, ITexture **ppTexture)override final;
70 
71  void CreateSampler(const SamplerDesc& SamplerDesc, ISampler **ppSampler, bool bIsDeviceInternal);
72  virtual void CreateSampler(const SamplerDesc& SamplerDesc, ISampler **ppSampler)override final;
73 
74  void CreatePipelineState( const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState, bool bIsDeviceInternal);
75  virtual void CreatePipelineState( const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState )override final;
76 
77  virtual void CreateTextureFromGLHandle(Uint32 GLHandle, const TextureDesc &TexDesc, ITexture **ppTexture)override final;
78 
79  virtual void CreateBufferFromGLHandle(Uint32 GLHandle, const BufferDesc &BuffDesc, IBuffer **ppBuffer)override final;
80 
81  const GPUInfo& GetGPUInfo(){ return m_GPUInfo; }
82 
83  FBOCache& GetFBOCache(GLContext::NativeGLContextType Context);
84  void OnReleaseTexture(ITexture *pTexture);
85 
86  VAOCache& GetVAOCache(GLContext::NativeGLContextType Context);
87  void OnDestroyPSO(IPipelineState *pPSO);
88  void OnDestroyBuffer(IBuffer *pBuffer);
89 
90 protected:
91  friend class DeviceContextGLImpl;
92  friend class TextureBaseGL;
93  friend class PipelineStateGLImpl;
94  friend class ShaderGLImpl;
95  friend class BufferGLImpl;
96  friend class TextureViewGLImpl;
97  friend class SwapChainGLImpl;
98  friend class GLContextState;
99 
100  // Must be the first member because its constructor initializes OpenGL
101  GLContext m_GLContext;
102 
103  std::unordered_set<String> m_ExtensionStrings;
104 
105  ThreadingTools::LockFlag m_VAOCacheLockFlag;
106  std::unordered_map<GLContext::NativeGLContextType, VAOCache> m_VAOCache;
107 
108  ThreadingTools::LockFlag m_FBOCacheLockFlag;
109  std::unordered_map<GLContext::NativeGLContextType, FBOCache> m_FBOCache;
110 
111  GPUInfo m_GPUInfo;
112 
113  TexRegionRender m_TexRegionRender;
114 
115 private:
116  virtual void TestTextureFormat( TEXTURE_FORMAT TexFormat )override;
117  bool CheckExtension(const Char *ExtensionString);
118  void FlagSupportedTexFormats();
119  void QueryDeviceCaps();
120 };
121 
122 }
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
+
Base implementation of the Diligent::ITextureGL interface.
Definition: TextureBaseGL.h:41
+
Texture description.
Definition: Texture.h:82
+
Implementation of the Diligent::IShaderGL interface.
Definition: ShaderGLImpl.h:67
+
Shader interface.
Definition: Shader.h:288
+
Describes the buffer initial data.
Definition: Buffer.h:176
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Implementation of the Diligent::IDeviceContextGL interface.
Definition: DeviceContextGLImpl.h:35
+
Implementation of the Diligent::ITextureViewGL interface.
Definition: TextureViewGLImpl.h:37
+
Implementation of the render device interface in OpenGL.
Definition: RenderDeviceGLImpl.h:53
+
Implementation of the Diligent::IPipelineStateGL interface.
Definition: PipelineStateGLImpl.h:39
+
Describes the initial data to store in the texture.
Definition: Texture.h:243
+
Sampler description.
Definition: Sampler.h:52
+
Buffer interface.
Definition: Buffer.h:200
+
Base implementation of a render device.
Definition: DeviceObjectBase.h:36
+
Buffer description.
Definition: Buffer.h:57
+
Implementation of the Diligent::IBufferGL interface.
Definition: BufferGLImpl.h:40
+
Definition: PipelineState.h:209
+
Texture sampler interface.
Definition: Sampler.h:180
+
Pipeline state description.
Definition: PipelineState.h:179
+
Implementation of the Diligent::ISwapChainGL interface.
Definition: SwapChainGLImpl.h:34
+
Shader creation attributes.
Definition: Shader.h:204
+
Texture inteface.
Definition: Texture.h:276
+
+ + + + + diff --git a/doc/html/_resource_mapping_8h_source.html b/doc/html/_resource_mapping_8h_source.html new file mode 100644 index 00000000..75846c48 --- /dev/null +++ b/doc/html/_resource_mapping_8h_source.html @@ -0,0 +1,99 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/ResourceMapping.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ResourceMapping.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DeviceObject.h"
30 
31 namespace Diligent
32 {
33  // {6C1AC7A6-B429-4139-9433-9E54E93E384A}
34  static constexpr INTERFACE_ID IID_ResourceMapping =
35  { 0x6c1ac7a6, 0xb429, 0x4139, { 0x94, 0x33, 0x9e, 0x54, 0xe9, 0x3e, 0x38, 0x4a } };
36 
39  {
41  const Char* Name;
42 
45 
46  Uint32 ArrayIndex;
48 
52  ResourceMappingEntry( const Char* _Name = nullptr, IDeviceObject *_pObject = nullptr, Uint32 _ArrayIndex = 0) :
53  Name( _Name ),
54  pObject( _pObject ),
55  ArrayIndex(_ArrayIndex)
56  {}
57  };
58 
61  {
66 
68 
72  ResourceMappingDesc() : pEntries( nullptr ){}
73  };
74 
76 
80  class IResourceMapping : public IObject
81  {
82  public:
84  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface ) = 0;
85 
87 
96  virtual void AddResource( const Char *Name, IDeviceObject *pObject, bool bIsUnique ) = 0;
97 
98 
100 
111  virtual void AddResourceArray( const Char *Name, Uint32 StartIndex, IDeviceObject* const* ppObjects, Uint32 NumElements, bool bIsUnique ) = 0;
112 
113 
115 
118  virtual void RemoveResourceByName( const Char *Name, Uint32 ArrayIndex = 0 ) = 0;
119 
121 
129  virtual void GetResource( const Char *Name, IDeviceObject **ppResource, Uint32 ArrayIndex = 0 ) = 0;
130 
132  virtual size_t GetSize() = 0;
133  };
134 }
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
ResourceMappingEntry * pEntries
Pointer to the array of resource mapping entries. The last element in the array must be default value...
Definition: ResourceMapping.h:65
+
virtual size_t GetSize()=0
Returns the size of the resource mapping, i.e. the number of objects.
+
virtual void AddResourceArray(const Char *Name, Uint32 StartIndex, IDeviceObject *const *ppObjects, Uint32 NumElements, bool bIsUnique)=0
Adds resource array to the mapping.
+
ResourceMappingEntry(const Char *_Name=nullptr, IDeviceObject *_pObject=nullptr, Uint32 _ArrayIndex=0)
Initializes the structure members.
Definition: ResourceMapping.h:52
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
ResourceMappingDesc()
Initializes the structure members with default values.
Definition: ResourceMapping.h:72
+
virtual void RemoveResourceByName(const Char *Name, Uint32 ArrayIndex=0)=0
Removes a resource from the mapping using its literal name.
+
Resource mapping description.
Definition: ResourceMapping.h:60
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
Queries the specific interface, see IObject::QueryInterface() for details.
+
virtual void GetResource(const Char *Name, IDeviceObject **ppResource, Uint32 ArrayIndex=0)=0
Finds a resource in the mapping.
+
const Char * Name
Object name.
Definition: ResourceMapping.h:41
+
virtual void AddResource(const Char *Name, IDeviceObject *pObject, bool bIsUnique)=0
Adds a resource to the mapping.
+
Describes the resourse mapping object entry.
Definition: ResourceMapping.h:38
+
IDeviceObject * pObject
Pointer to the object&#39;s interface.
Definition: ResourceMapping.h:44
+
+ + + + + diff --git a/doc/html/_resource_mapping_impl_8h_source.html b/doc/html/_resource_mapping_impl_8h_source.html new file mode 100644 index 00000000..34e0e8e2 --- /dev/null +++ b/doc/html/_resource_mapping_impl_8h_source.html @@ -0,0 +1,97 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/ResourceMappingImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ResourceMappingImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "ResourceMapping.h"
30 #include "ObjectBase.h"
31 #include <unordered_map>
32 #include "HashUtils.h"
33 #include "STDAllocator.h"
34 
35 namespace Diligent
36 {
37  struct ResMappingHashKey
38  {
39  ResMappingHashKey(const Char* Str, bool bMakeCopy, Uint32 ArrInd):
40  StrKey(Str, bMakeCopy),
41  ArrayIndex(ArrInd)
42  {
43  }
44 
45  ResMappingHashKey(ResMappingHashKey &&rhs) :
46  StrKey(std::move(rhs.StrKey)),
47  ArrayIndex(rhs.ArrayIndex)
48  {}
49 
50  bool operator == (const ResMappingHashKey& RHS)const
51  {
52  return StrKey == RHS.StrKey && ArrayIndex == RHS.ArrayIndex;
53  }
54 
55  size_t GetHash()const
56  {
57  if( Hash == 0 )
58  {
59  Hash = ComputeHash( StrKey, ArrayIndex );
60  }
61 
62  return Hash;
63  }
64 
65 
66  ResMappingHashKey( const ResMappingHashKey& ) = delete;
67  ResMappingHashKey& operator = ( const ResMappingHashKey& ) = delete;
68  ResMappingHashKey& operator = ( ResMappingHashKey&& ) = delete;
69 
70  HashMapStringKey StrKey;
71  Uint32 ArrayIndex;
72  mutable size_t Hash = 0;
73  };
74 }
75 
76 namespace std
77 {
78  template<>
79  struct hash<Diligent::ResMappingHashKey>
80  {
81  size_t operator()( const Diligent::ResMappingHashKey &Key ) const
82  {
83  return Key.GetHash();
84  }
85  };
86 }
87 
88 namespace Diligent
89 {
90  class FixedBlockMemoryAllocator;
91 
93  class ResourceMappingImpl : public ObjectBase<IResourceMapping>
94  {
95  public:
97 
100  ResourceMappingImpl(IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator) :
101  TObjectBase(pRefCounters),
102  m_HashTable(STD_ALLOCATOR_RAW_MEM(HashTableElem, RawMemAllocator, "Allocator for unordered_map< ResMappingHashKey, RefCntAutoPtr<IDeviceObject> >") )
103  {}
104 
106 
107  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final;
108 
110  virtual void AddResource( const Char *Name, IDeviceObject *pObject, bool bIsUnique )override final;
111 
113  virtual void AddResourceArray( const Char *Name, Uint32 StartIndex, IDeviceObject * const* ppObjects, Uint32 NumElements, bool bIsUnique )override final;
114 
116  virtual void RemoveResourceByName( const Char *Name, Uint32 ArrayIndex )override final;
117 
119  virtual void GetResource( const Char *Name, IDeviceObject **ppResource, Uint32 ArrayIndex )override final;
120 
122  virtual size_t GetSize()override final;
123 
124  private:
125 
126  ThreadingTools::LockHelper Lock();
127 
128  ThreadingTools::LockFlag m_LockFlag;
129  typedef std::pair<const ResMappingHashKey, RefCntAutoPtr<IDeviceObject> > HashTableElem;
130  std::unordered_map< ResMappingHashKey, RefCntAutoPtr<IDeviceObject>, std::hash<ResMappingHashKey>, std::equal_to<ResMappingHashKey>, STDAllocatorRawMem<HashTableElem> > m_HashTable;
131  };
132 }
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
Template class implementing base functionality for an object.
Definition: ObjectBase.h:62
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Definition: AdvancedMath.h:316
+
ResourceMappingImpl(IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator)
Definition: ResourceMappingImpl.h:100
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
Queries the specific interface, see IObject::QueryInterface() for details.
+
virtual size_t GetSize() override final
Returns number of resources in the resource mapping.
Definition: ResourceMapping.cpp:117
+
virtual void RemoveResourceByName(const Char *Name, Uint32 ArrayIndex) override final
Implementation of IResourceMapping::RemoveResourceByName()
Definition: ResourceMapping.cpp:80
+
virtual void AddResource(const Char *Name, IDeviceObject *pObject, bool bIsUnique) override final
Implementation of IResourceMapping::AddResource()
Definition: ResourceMapping.cpp:75
+
Template class that implements reference counting.
Definition: RefCntAutoPtr.h:71
+
virtual void GetResource(const Char *Name, IDeviceObject **ppResource, Uint32 ArrayIndex) override final
Implementation of IResourceMapping::GetResource()
Definition: ResourceMapping.cpp:91
+
Implementation of the resource mapping.
Definition: ResourceMappingImpl.h:93
+
virtual void AddResourceArray(const Char *Name, Uint32 StartIndex, IDeviceObject *const *ppObjects, Uint32 NumElements, bool bIsUnique) override final
Implementation of IResourceMapping::AddResourceArray()
Definition: ResourceMapping.cpp:43
+
Definition: LockHelper.h:32
+
+ + + + + diff --git a/doc/html/_ring_buffer_8h_source.html b/doc/html/_ring_buffer_8h_source.html new file mode 100644 index 00000000..0edabc61 --- /dev/null +++ b/doc/html/_ring_buffer_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsAccessories/interface/RingBuffer.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RingBuffer.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 
30 #include <deque>
31 #include "MemoryAllocator.h"
32 #include "STDAllocator.h"
33 #include "DebugUtilities.h"
34 
35 namespace Diligent
36 {
38  class RingBuffer
39  {
40  public:
41  typedef size_t OffsetType;
42  struct FrameTailAttribs
43  {
44  FrameTailAttribs(Uint64 fv, OffsetType off, OffsetType sz) :
45  FenceValue(fv),
46  Offset(off),
47  Size(sz)
48  {}
49 
50  // Fence value associated with the command list in which
51  // the allocation could have been referenced last time
52  Uint64 FenceValue;
53  OffsetType Offset;
54  OffsetType Size;
55  };
56  static const OffsetType InvalidOffset = static_cast<OffsetType>(-1);
57 
58  RingBuffer(OffsetType MaxSize, IMemoryAllocator &Allocator)noexcept :
59  m_CompletedFrameTails(0, FrameTailAttribs(0,0,0), STD_ALLOCATOR_RAW_MEM(FrameTailAttribs, Allocator, "Allocator for vector<FrameNumOffsetPair>" )),
60  m_MaxSize(MaxSize)
61  {}
62 
63  RingBuffer(RingBuffer&& rhs)noexcept :
64  m_CompletedFrameTails(std::move(rhs.m_CompletedFrameTails)),
65  m_Head(rhs.m_Head),
66  m_Tail(rhs.m_Tail),
67  m_MaxSize(rhs.m_MaxSize),
68  m_UsedSize(rhs.m_UsedSize),
69  m_CurrFrameSize(rhs.m_CurrFrameSize)
70  {
71  rhs.m_Head = 0;
72  rhs.m_Tail = 0;
73  rhs.m_MaxSize = 0;
74  rhs.m_UsedSize = 0;
75  rhs.m_CurrFrameSize = 0;
76  }
77 
78  RingBuffer& operator = (RingBuffer&& rhs)noexcept
79  {
80  m_CompletedFrameTails = std::move(rhs.m_CompletedFrameTails);
81  m_Head = rhs.m_Head;
82  m_Tail = rhs.m_Tail;
83  m_MaxSize = rhs.m_MaxSize;
84  m_UsedSize = rhs.m_UsedSize;
85  m_CurrFrameSize = rhs.m_CurrFrameSize;
86 
87  rhs.m_MaxSize = 0;
88  rhs.m_Head = 0;
89  rhs.m_Tail = 0;
90  rhs.m_UsedSize = 0;
91  rhs.m_CurrFrameSize = 0;
92 
93  return *this;
94  }
95 
96  RingBuffer(const RingBuffer&) = delete;
97  RingBuffer& operator = (const RingBuffer&) = delete;
98 
99  ~RingBuffer()
100  {
101  VERIFY(m_UsedSize==0, "All space in the ring buffer must be released");
102  }
103 
104  OffsetType Allocate(OffsetType Size)
105  {
106  if(IsFull())
107  {
108  return InvalidOffset;
109  }
110 
111  if (m_Tail >= m_Head )
112  {
113  // Head Tail MaxSize
114  // | | |
115  // [ xxxxxxxxxxxxxxxxx ]
116  //
117  //
118  if (m_Tail + Size <= m_MaxSize)
119  {
120  auto Offset = m_Tail;
121  m_Tail += Size;
122  m_UsedSize += Size;
123  m_CurrFrameSize += Size;
124  return Offset;
125  }
126  else if(Size <= m_Head)
127  {
128  // Allocate from the beginning of the buffer
129  OffsetType AddSize = (m_MaxSize - m_Tail) + Size;
130  m_UsedSize += AddSize;
131  m_CurrFrameSize += AddSize;
132  m_Tail = Size;
133  return 0;
134  }
135  }
136  else if (m_Tail + Size <= m_Head )
137  {
138  //
139  // Tail Head
140  // | |
141  // [xxxx xxxxxxxxxxxxxxxxxxxxxxxxxx]
142  //
143  auto Offset = m_Tail;
144  m_Tail += Size;
145  m_UsedSize += Size;
146  m_CurrFrameSize += Size;
147  return Offset;
148  }
149 
150  return InvalidOffset;
151  }
152 
153  // FenceValue is the fence value associated with the command list in which the tail
154  // could have been referenced last time
155  // See http://diligentgraphics.com/diligent-engine/architecture/d3d12/managing-resource-lifetimes/
156  void FinishCurrentFrame(Uint64 FenceValue)
157  {
158  m_CompletedFrameTails.emplace_back(FenceValue, m_Tail, m_CurrFrameSize);
159  m_CurrFrameSize = 0;
160  }
161 
162  // CompletedFenceValue indicates GPU progress
163  // See http://diligentgraphics.com/diligent-engine/architecture/d3d12/managing-resource-lifetimes/
164  void ReleaseCompletedFrames(Uint64 CompletedFenceValue)
165  {
166  // We can release all tails whose associated fence value is less than or equal to CompletedFenceValue
167  while(!m_CompletedFrameTails.empty() && m_CompletedFrameTails.front().FenceValue <= CompletedFenceValue)
168  {
169  const auto &OldestFrameTail = m_CompletedFrameTails.front();
170  VERIFY_EXPR(OldestFrameTail.Size <= m_UsedSize);
171  m_UsedSize -= OldestFrameTail.Size;
172  m_Head = OldestFrameTail.Offset;
173  m_CompletedFrameTails.pop_front();
174  }
175  }
176 
177  OffsetType GetMaxSize()const{return m_MaxSize;}
178  bool IsFull()const{ return m_UsedSize==m_MaxSize; };
179  bool IsEmpty()const{ return m_UsedSize==0; };
180  OffsetType GetUsedSize()const{return m_UsedSize;}
181 
182  private:
183  // Consider the following scenario for a 1024-byte buffer:
184  // Allocate(512)
185  //
186  // h t m
187  // |xxxxx| |
188 
189  // FinishCurrentFrame(0)
190  //
191  // t0
192  // h t m
193  // |xxxxx| |
194 
195  // ReleaseCompletedFrames(1)
196  //
197  // h
198  // t m
199  // | | |
200 
201  // FinishCurrentFrame(1)
202  //
203  // t1
204  // h
205  // t m
206  // | | |
207 
208  // Allocate(512)
209  //
210  // t1 t
211  // h m
212  // | |xxxxx|
213 
214  // Allocate(512)
215  //
216  // t
217  // t1
218  // h m
219  // |xxxxx|xxxxx|
220 
221  // FinishCurrentFrame(2)
222  //
223  // t
224  // t1
225  // t2
226  // h m
227  // |xxxxx|xxxxx|
228 
229  // At this point there will be two tails in the queue, both at 512. m_UsedSize will be 0. When
230  // ReleaseCompletedFrames(2) is called, there wil be no way to find out if the current frame is 0
231  // or the entire buffer if we don't store the frame size
232 
233  std::deque< FrameTailAttribs, STDAllocatorRawMem<FrameTailAttribs> > m_CompletedFrameTails;
234  OffsetType m_Head = 0;
235  OffsetType m_Tail = 0;
236  OffsetType m_MaxSize = 0;
237  OffsetType m_UsedSize = 0;
238  OffsetType m_CurrFrameSize = 0;
239  };
240 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
uint64_t Uint64
64-bit unsigned integer
Definition: BasicTypes.h:38
+
Base interface for a raw memory allocator.
Definition: MemoryAllocator.h:35
+
Implementation of a ring buffer. The class is not thread-safe.
Definition: RingBuffer.h:38
+
+ + + + + diff --git a/doc/html/_root_signature_8h_source.html b/doc/html/_root_signature_8h_source.html new file mode 100644 index 00000000..f7d9c363 --- /dev/null +++ b/doc/html/_root_signature_8h_source.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/RootSignature.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
RootSignature.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 #include "ShaderD3DBase.h"
29 #include "ShaderResourceLayoutD3D12.h"
30 
31 namespace Diligent
32 {
33 
34 SHADER_TYPE ShaderTypeFromShaderVisibility(D3D12_SHADER_VISIBILITY ShaderVisibility);
35 D3D12_SHADER_VISIBILITY GetShaderVisibility(SHADER_TYPE ShaderType);
36 D3D12_DESCRIPTOR_HEAP_TYPE dbgHeapTypeFromRangeType(D3D12_DESCRIPTOR_RANGE_TYPE RangeType);
37 
38 class RootParameter
39 {
40 public:
41 
42  RootParameter(D3D12_ROOT_PARAMETER_TYPE ParameterType, Uint32 RootIndex, UINT Register, UINT RegisterSpace, D3D12_SHADER_VISIBILITY Visibility, SHADER_VARIABLE_TYPE VarType) :
43  m_RootIndex(RootIndex),
44  m_ShaderVarType(VarType)
45  {
46  VERIFY(ParameterType == D3D12_ROOT_PARAMETER_TYPE_CBV || ParameterType == D3D12_ROOT_PARAMETER_TYPE_SRV || ParameterType == D3D12_ROOT_PARAMETER_TYPE_UAV, "Unexpected parameter type - verify argument list");
47  m_RootParam.ParameterType = ParameterType;
48  m_RootParam.ShaderVisibility = Visibility;
49  m_RootParam.Descriptor.ShaderRegister = Register;
50  m_RootParam.Descriptor.RegisterSpace = RegisterSpace;
51  }
52 
53  RootParameter( D3D12_ROOT_PARAMETER_TYPE ParameterType, Uint32 RootIndex, UINT Register, UINT RegisterSpace, UINT NumDwords, D3D12_SHADER_VISIBILITY Visibility, SHADER_VARIABLE_TYPE VarType) :
54  m_RootIndex(RootIndex),
55  m_ShaderVarType(VarType)
56  {
57  VERIFY(ParameterType == D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS, "Unexpected parameter type - verify argument list");
58  m_RootParam.ParameterType = ParameterType;
59  m_RootParam.ShaderVisibility = Visibility;
60  m_RootParam.Constants.Num32BitValues = NumDwords;
61  m_RootParam.Constants.ShaderRegister = Register;
62  m_RootParam.Constants.RegisterSpace = RegisterSpace;
63  }
64 
65  RootParameter( D3D12_ROOT_PARAMETER_TYPE ParameterType, Uint32 RootIndex, UINT NumRanges, D3D12_DESCRIPTOR_RANGE *pRanges, D3D12_SHADER_VISIBILITY Visibility, SHADER_VARIABLE_TYPE VarType) :
66  m_RootIndex(RootIndex),
67  m_ShaderVarType(VarType)
68  {
69  VERIFY(ParameterType == D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE, "Unexpected parameter type - verify argument list");
70  VERIFY_EXPR(pRanges != nullptr);
71  m_RootParam.ParameterType = ParameterType;
72  m_RootParam.ShaderVisibility = Visibility;
73  m_RootParam.DescriptorTable.NumDescriptorRanges = NumRanges;
74  m_RootParam.DescriptorTable.pDescriptorRanges = pRanges;
75 #ifdef _DEBUG
76  for(Uint32 r=0; r < NumRanges; ++r)
77  pRanges[r].RangeType = static_cast<D3D12_DESCRIPTOR_RANGE_TYPE>(-1);
78 #endif
79  }
80 
81  RootParameter(const RootParameter &RP):
82  m_RootParam( RP.m_RootParam),
83  m_DescriptorTableSize(RP.m_DescriptorTableSize),
84  m_ShaderVarType(RP.m_ShaderVarType),
85  m_RootIndex(RP.m_RootIndex)
86  {
87  VERIFY(m_RootParam.ParameterType != D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE, "Use another constructor to copy descriptor table");
88  }
89 
90  RootParameter(const RootParameter &RP, UINT NumRanges, D3D12_DESCRIPTOR_RANGE *pRanges):
91  m_RootParam( RP.m_RootParam),
92  m_DescriptorTableSize(RP.m_DescriptorTableSize),
93  m_ShaderVarType(RP.m_ShaderVarType),
94  m_RootIndex(RP.m_RootIndex)
95  {
96  VERIFY(m_RootParam.ParameterType == D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE, "Root parameter is expected to be a descriptor table");
97  VERIFY(NumRanges >= m_RootParam.DescriptorTable.NumDescriptorRanges, "New table must be larger than source one");
98  auto &DstTbl = m_RootParam.DescriptorTable;
99  DstTbl.NumDescriptorRanges = NumRanges;
100  DstTbl.pDescriptorRanges = pRanges;
101  const auto &SrcTbl = RP.m_RootParam.DescriptorTable;
102  memcpy(pRanges, SrcTbl.pDescriptorRanges, SrcTbl.NumDescriptorRanges * sizeof(D3D12_DESCRIPTOR_RANGE));
103 #ifdef _DEBUG
104  {
105  Uint32 dbgTableSize = 0;
106  for (Uint32 r = 0; r < SrcTbl.NumDescriptorRanges; ++r)
107  {
108  const auto &Range = SrcTbl.pDescriptorRanges[r];
109  dbgTableSize = std::max(dbgTableSize, Range.OffsetInDescriptorsFromTableStart + Range.NumDescriptors);
110  }
111  VERIFY(dbgTableSize == m_DescriptorTableSize, "Incorrect descriptor table size");
112 
113  for (Uint32 r = SrcTbl.NumDescriptorRanges; r < DstTbl.NumDescriptorRanges; ++r)
114  pRanges[r].RangeType = static_cast<D3D12_DESCRIPTOR_RANGE_TYPE>(-1);
115  }
116 #endif
117  }
118 
119  RootParameter& operator = (const RootParameter &RP) = delete;
120  RootParameter& operator = (RootParameter &&RP) = delete;
121 
122  void SetDescriptorRange( UINT RangeIndex, D3D12_DESCRIPTOR_RANGE_TYPE Type, UINT Register, UINT Count, UINT Space = 0, UINT OffsetFromTableStart = D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND)
123  {
124  VERIFY(m_RootParam.ParameterType == D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE, "Incorrect parameter table: descriptor table is expected");
125  auto &Tbl = m_RootParam.DescriptorTable;
126  VERIFY(RangeIndex < Tbl.NumDescriptorRanges, "Invalid descriptor range index");
127  D3D12_DESCRIPTOR_RANGE &range = const_cast<D3D12_DESCRIPTOR_RANGE &>(Tbl.pDescriptorRanges[RangeIndex]);
128  VERIFY(range.RangeType == static_cast<D3D12_DESCRIPTOR_RANGE_TYPE>(-1), "Descriptor range has already been initialized. m_DescriptorTableSize may be updated incorrectly");
129  range.RangeType = Type;
130  range.NumDescriptors = Count;
131  range.BaseShaderRegister = Register;
132  range.RegisterSpace = Space;
133  range.OffsetInDescriptorsFromTableStart = OffsetFromTableStart;
134  m_DescriptorTableSize = std::max(m_DescriptorTableSize, OffsetFromTableStart + Count);
135  }
136 
137  SHADER_VARIABLE_TYPE GetShaderVariableType()const{ return m_ShaderVarType; }
138  Uint32 GetDescriptorTableSize()const
139  {
140  VERIFY(m_RootParam.ParameterType == D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE, "Incorrect parameter table: descriptor table is expected");
141  return m_DescriptorTableSize;
142  }
143  D3D12_SHADER_VISIBILITY GetShaderVisibility()const{return m_RootParam.ShaderVisibility;}
144  D3D12_ROOT_PARAMETER_TYPE GetParameterType()const{return m_RootParam.ParameterType;}
145 
146  Uint32 GetRootIndex()const{return m_RootIndex;}
147 
148  operator const D3D12_ROOT_PARAMETER&()const{return m_RootParam;}
149 
150 private:
151 
152  SHADER_VARIABLE_TYPE m_ShaderVarType = static_cast<SHADER_VARIABLE_TYPE>(-1);
153  D3D12_ROOT_PARAMETER m_RootParam = {};
154  Uint32 m_DescriptorTableSize = 0;
155  Uint32 m_RootIndex = static_cast<Uint32>(-1);
156 };
157 
158 
159 
162 {
163 public:
164  RootSignature();
165 
166  void AllocateStaticSamplers(IShader* const *ppShaders, Uint32 NumShaders);
167 
168  void Finalize(ID3D12Device *pd3d12Device);
169 
170  ID3D12RootSignature* GetD3D12RootSignature()const{return m_pd3d12RootSignature;}
171  void InitResourceCache(class RenderDeviceD3D12Impl *pDeviceD3D12Impl, class ShaderResourceCacheD3D12& ResourceCache, IMemoryAllocator &CacheMemAllocator)const;
172 
173  void InitStaticSampler(SHADER_TYPE ShaderType, const String &TextureName, const D3DShaderResourceAttribs &ShaderResAttribs);
174 
175  void AllocateResourceSlot(SHADER_TYPE ShaderType, const D3DShaderResourceAttribs &ShaderResAttribs, D3D12_DESCRIPTOR_RANGE_TYPE RangeType, Uint32 &RootIndex, Uint32 &OffsetFromTableStart);
176 
177  // This method should be thread-safe as it does not modify any object state
178  void (RootSignature::*CommitDescriptorHandles)(class RenderDeviceD3D12Impl *pRenderDeviceD3D12,
179  ShaderResourceCacheD3D12& ResourceCache,
180  class CommandContext &Ctx,
181  bool IsCompute)const = nullptr;
182 
183  void (RootSignature::*TransitionAndCommitDescriptorHandles)(class RenderDeviceD3D12Impl *pRenderDeviceD3D12,
184  ShaderResourceCacheD3D12& ResourceCache,
185  class CommandContext &Ctx,
186  bool IsCompute)const = nullptr;
187 
188  void TransitionResources(ShaderResourceCacheD3D12& ResourceCache,
189  class CommandContext &Ctx)const;
190 
191  void CommitRootViews(ShaderResourceCacheD3D12& ResourceCache,
192  class CommandContext &Ctx,
193  bool IsCompute,
194  Uint32 ContextId)const;
195 
196  Uint32 GetTotalSrvCbvUavSlots(SHADER_VARIABLE_TYPE VarType)const
197  {
198  VERIFY_EXPR(VarType >= 0 && VarType < SHADER_VARIABLE_TYPE_NUM_TYPES);
199  return m_TotalSrvCbvUavSlots[VarType];
200  }
201  Uint32 GetTotalSamplerSlots(SHADER_VARIABLE_TYPE VarType)const
202  {
203  VERIFY_EXPR(VarType >= 0 && VarType < SHADER_VARIABLE_TYPE_NUM_TYPES);
204  return m_TotalSamplerSlots[VarType];
205  }
206 
207 private:
208 #ifdef _DEBUG
209  void dbgVerifyRootParameters()const;
210 #endif
211 
212  Uint32 m_TotalSrvCbvUavSlots[SHADER_VARIABLE_TYPE_NUM_TYPES];
213  Uint32 m_TotalSamplerSlots[SHADER_VARIABLE_TYPE_NUM_TYPES];
214 
215  CComPtr<ID3D12RootSignature> m_pd3d12RootSignature;
216 
217  class RootParamsManager
218  {
219  public:
220  RootParamsManager(IMemoryAllocator &MemAllocator);
221 
222  RootParamsManager(const RootParamsManager&) = delete;
223  RootParamsManager& operator= (const RootParamsManager&) = delete;
224  RootParamsManager(RootParamsManager&&) = delete;
225  RootParamsManager& operator= (RootParamsManager&&) = delete;
226 
227  Uint32 GetNumRootTables()const{return m_NumRootTables;}
228  Uint32 GetNumRootViews()const{return m_NumRootViews;}
229 
230  const RootParameter& GetRootTable(Uint32 TableInd)const
231  {
232  VERIFY_EXPR(TableInd < m_NumRootTables);
233  return m_pRootTables[TableInd];
234  }
235 
236  RootParameter& GetRootTable(Uint32 TableInd)
237  {
238  VERIFY_EXPR(TableInd < m_NumRootTables);
239  return m_pRootTables[TableInd];
240  }
241 
242  const RootParameter& GetRootView(Uint32 ViewInd)const
243  {
244  VERIFY_EXPR(ViewInd < m_NumRootViews);
245  return m_pRootViews[ViewInd];
246  }
247 
248  RootParameter& GetRootView(Uint32 ViewInd)
249  {
250  VERIFY_EXPR(ViewInd < m_NumRootViews);
251  return m_pRootViews[ViewInd];
252  }
253 
254  void AddRootView(D3D12_ROOT_PARAMETER_TYPE ParameterType, Uint32 RootIndex, UINT Register, D3D12_SHADER_VISIBILITY Visibility, SHADER_VARIABLE_TYPE VarType);
255  void AddRootTable(Uint32 RootIndex, D3D12_SHADER_VISIBILITY Visibility, SHADER_VARIABLE_TYPE VarType, Uint32 NumRangesInNewTable = 1);
256  void AddDescriptorRanges(Uint32 RootTableInd, Uint32 NumExtraRanges = 1);
257 
258  template<class TOperation>
259  void ProcessRootTables(TOperation)const;
260 
261  private:
262  size_t GetRequiredMemorySize(Uint32 NumExtraRootTables, Uint32 NumExtraRootViews, Uint32 NumExtraDescriptorRanges)const;
263  D3D12_DESCRIPTOR_RANGE* Extend(Uint32 NumExtraRootTables, Uint32 NumExtraRootViews, Uint32 NumExtraDescriptorRanges, Uint32 RootTableToAddRanges = static_cast<Uint32>(-1));
264 
265  IMemoryAllocator &m_MemAllocator;
266  std::unique_ptr<void, STDDeleter<void, IMemoryAllocator>> m_pMemory;
267  Uint32 m_NumRootTables = 0;
268  Uint32 m_NumRootViews = 0;
269  Uint32 m_TotalDescriptorRanges = 0;
270  RootParameter *m_pRootTables = nullptr;
271  RootParameter *m_pRootViews = nullptr;
272  };
273 
274  static constexpr Uint8 InvalidRootTableIndex = static_cast<Uint8>(-1);
275 
276  // The array below contains array index of a CBV/SRV/UAV root table
277  // in m_RootParams (NOT the Root Index!), for every variable type
278  // (static, mutable, dynamic) and every shader type,
279  // or -1, if the table is not yet assigned to the combination
280  Uint8 m_SrvCbvUavRootTablesMap[SHADER_VARIABLE_TYPE_NUM_TYPES * 6];
281  // This array contains the same data for Sampler root table
282  Uint8 m_SamplerRootTablesMap[SHADER_VARIABLE_TYPE_NUM_TYPES * 6];
283 
284  RootParamsManager m_RootParams;
285 
286  struct StaticSamplerAttribs
287  {
289  UINT ShaderRegister = static_cast<UINT>(-1);
290  UINT ArraySize = 0;
291  UINT RegisterSpace = 0;
292  D3D12_SHADER_VISIBILITY ShaderVisibility = static_cast<D3D12_SHADER_VISIBILITY>(-1);
293 
294  StaticSamplerAttribs(){}
295  StaticSamplerAttribs(const StaticSamplerDesc& SamDesc, D3D12_SHADER_VISIBILITY Visibility) :
296  SamplerDesc(SamDesc),
297  ShaderVisibility(Visibility)
298  {}
299  };
300  // Note: sizeof(m_StaticSamplers) == 56 (MS compiler, release x64)
301  std::vector<StaticSamplerAttribs, STDAllocatorRawMem<StaticSamplerAttribs> > m_StaticSamplers;
302 
303  IMemoryAllocator &m_MemAllocator;
304 
305  // Commits descriptor handles for static and mutable variables
306  template<bool PerformResourceTransitions>
307  void CommitDescriptorHandlesInternal_SM(class RenderDeviceD3D12Impl *pRenderDeviceD3D12,
308  ShaderResourceCacheD3D12& ResourceCache,
309  class CommandContext &Ctx,
310  bool IsCompute)const;
311  template<bool PerformResourceTransitions>
312  // Commits descriptor handles for static, mutable, and dynamic variables
313  void CommitDescriptorHandlesInternal_SMD(class RenderDeviceD3D12Impl *pRenderDeviceD3D12,
314  ShaderResourceCacheD3D12& ResourceCache,
315  class CommandContext &Ctx,
316  bool IsCompute)const;
317 };
318 
319 }
Shader interface.
Definition: Shader.h:288
+
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
Implementation of the Diligent::RootSignature class.
Definition: RootSignature.h:161
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Static sampler description.
Definition: Shader.h:136
+
Sampler description.
Definition: Sampler.h:52
+
SHADER_VARIABLE_TYPE
Describes shader variable type that is used by ShaderVariableDesc.
Definition: Shader.h:100
+
Total number of shader variable types.
Definition: Shader.h:117
+
Implementation of the Diligent::IRenderDeviceD3D12 interface.
Definition: RenderDeviceD3D12Impl.h:43
+
+ + + + + diff --git a/doc/html/_s_t_d_allocator_8h_source.html b/doc/html/_s_t_d_allocator_8h_source.html new file mode 100644 index 00000000..31e55ea4 --- /dev/null +++ b/doc/html/_s_t_d_allocator_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/STDAllocator.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
STDAllocator.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 #include <limits>
29 
30 #include "BasicTypes.h"
31 #include "MemoryAllocator.h"
32 #include "DebugUtilities.h"
33 
34 namespace Diligent
35 {
36 
37 template <typename T, typename AllocatorType>
38 struct STDAllocator
39 {
40  typedef T value_type;
41  typedef value_type* pointer;
42  typedef const value_type* const_pointer;
43  typedef value_type& reference;
44  typedef const value_type& const_reference;
45  typedef std::size_t size_type;
46  typedef std::ptrdiff_t difference_type;
47 
48  STDAllocator(AllocatorType& Allocator, const Char* dbgDescription, const Char* dbgFileName, const Int32 dbgLineNumber)noexcept :
49  m_Allocator(Allocator),
50  m_dbgDescription(dbgDescription),
51  m_dbgFileName(dbgFileName),
52  m_dbgLineNumber(dbgLineNumber)
53  {
54  }
55 
56  template <class U>
57  STDAllocator(const STDAllocator<U, AllocatorType>& other)noexcept :
58  m_Allocator(other.m_Allocator),
59  m_dbgDescription(other.m_dbgDescription),
60  m_dbgFileName(other.m_dbgFileName),
61  m_dbgLineNumber(other.m_dbgLineNumber)
62  {
63  }
64 
65  template <class U>
66  STDAllocator(STDAllocator<U, AllocatorType>&& other)noexcept :
67  m_Allocator(other.m_Allocator),
68  m_dbgDescription(other.m_dbgDescription),
69  m_dbgFileName(other.m_dbgFileName),
70  m_dbgLineNumber(other.m_dbgLineNumber)
71  {
72  }
73 
74  template <class U>
75  STDAllocator& operator = (STDAllocator<U, AllocatorType>&& other)noexcept
76  {
77  // Android build requires this operator to be defined - I have no idea why
78  VERIFY_EXPR(&m_Allocator == &other.m_Allocator);
79  m_dbgDescription = other.m_dbgDescription;
80  m_dbgFileName = other.m_dbgFileName;
81  m_dbgLineNumber = other.m_dbgLineNumber;
82  return *this;
83  }
84 
85  template< class U > struct rebind
86  {
87  typedef STDAllocator<U, AllocatorType> other;
88  };
89 
90  T* allocate(std::size_t count)
91  {
92  return reinterpret_cast<T*>( m_Allocator.Allocate(count * sizeof(T), m_dbgDescription, m_dbgFileName, m_dbgLineNumber ) );
93  }
94 
95  void deallocate(T* p, std::size_t count)
96  {
97  m_Allocator.Free(p);
98  }
99 
100  inline size_type max_size() const
101  {
102  return std::numeric_limits<size_type>::max() / sizeof(T);
103  }
104 
105  // construction/destruction
106  template< class U, class... Args >
107  void construct( U* p, Args&&... args )
108  {
109  ::new(p) U(std::forward<Args>(args)...);
110  }
111 
112  inline void destroy(pointer p)
113  {
114  p->~T();
115  }
116 
117  AllocatorType &m_Allocator;
118  const Char* m_dbgDescription;
119  const Char* m_dbgFileName;
120  Int32 m_dbgLineNumber;
121 };
122 
123 #define STD_ALLOCATOR(Type, AllocatorType, Allocator, Description) STDAllocator<Type, AllocatorType>(Allocator, Description, __FILE__, __LINE__)
124 
125 template <class T, class U, class A>
126 bool operator==(const STDAllocator<T, A>&left, const STDAllocator<U, A>&right)
127 {
128  return &left.m_Allocator == &right.m_Allocator;
129 }
130 
131 template <class T, class U, class A>
132 bool operator!=(const STDAllocator<T, A> &left, const STDAllocator<U, A> &right)
133 {
134  return !(left == right);
135 }
136 
137 template<class T> using STDAllocatorRawMem = STDAllocator<T, IMemoryAllocator>;
138 #define STD_ALLOCATOR_RAW_MEM(Type, Allocator, Description) STDAllocatorRawMem<Type>(Allocator, Description, __FILE__, __LINE__)
139 
140 template< class T, typename AllocatorType >
141 struct STDDeleter
142 {
143  STDDeleter(AllocatorType &Allocator) :
144  m_Allocator(Allocator)
145  {}
146 
147  void operator()(T *ptr)
148  {
149  ptr->~T();
150  m_Allocator.Free(ptr);
151  }
152 
153  AllocatorType &m_Allocator;
154 };
155 template<class T> using STDDeleterRawMem = STDDeleter<T, IMemoryAllocator>;
156 
157 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_sampler_8h_source.html b/doc/html/_sampler_8h_source.html new file mode 100644 index 00000000..125116e4 --- /dev/null +++ b/doc/html/_sampler_8h_source.html @@ -0,0 +1,110 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/Sampler.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Sampler.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include <cfloat>
30 #include "DeviceObject.h"
31 
32 namespace Diligent
33 {
34 
35 // {595A59BF-FA81-4855-BC5E-C0E048745A95}
36 static constexpr INTERFACE_ID IID_Sampler =
37 { 0x595a59bf, 0xfa81, 0x4855, { 0xbc, 0x5e, 0xc0, 0xe0, 0x48, 0x74, 0x5a, 0x95 } };
38 
40 
53 {
56 
59 
64 
67 
70 
73 
77  Float32 MipLODBias;
78 
80  Uint32 MaxAnisotropy;
81 
85 
87  Float32 BorderColor[4];
88 
91  float MinLOD;
92 
95  float MaxLOD;
96 
98 
114  FILTER_TYPE _MagFilter = FILTER_TYPE_LINEAR,
115  FILTER_TYPE _MipFilter = FILTER_TYPE_LINEAR,
119  Float32 _MipLODBias = 0,
120  Uint32 _MaxAnisotropy = 0,
121  COMPARISON_FUNCTION _ComparisonFunc = COMPARISON_FUNC_NEVER,
122  float _MinLOD = 0,
123  float _MaxLOD = +FLT_MAX) :
124  MinFilter(_MinFilter),
125  MagFilter(_MagFilter),
126  MipFilter(_MipFilter),
127  AddressU(_AddressU),
128  AddressV(_AddressV),
129  AddressW(_AddressW),
130  MipLODBias(_MipLODBias),
131  MaxAnisotropy(_MaxAnisotropy),
132  ComparisonFunc(_ComparisonFunc),
133  MinLOD(_MinLOD),
134  MaxLOD(_MaxLOD)
135  {
136  BorderColor[0] = BorderColor[1] = BorderColor[2] = BorderColor[3] = 0;
137  }
138 
139  SamplerDesc(const SamplerDesc&) = default;
140  SamplerDesc(SamplerDesc&&) = default;
141  SamplerDesc& operator = (const SamplerDesc&) = default;
142  SamplerDesc& operator = (SamplerDesc&&) = default;
143 
145 
152  bool operator ==(const SamplerDesc& RHS)const
153  {
154  // Name is primarily used for debug purposes and does not affect the state.
155  // It is ignored in comparison operation.
156  return // strcmp(Name, RHS.Name) == 0 &&
157  MinFilter == RHS.MinFilter &&
158  MagFilter == RHS.MagFilter &&
159  MipFilter == RHS.MipFilter &&
160  AddressU == RHS.AddressU &&
161  AddressV == RHS.AddressV &&
162  AddressW == RHS.AddressW &&
163  MipLODBias == RHS.MipLODBias &&
164  MaxAnisotropy == RHS.MaxAnisotropy &&
165  ComparisonFunc == RHS.ComparisonFunc &&
166  BorderColor[0] == RHS.BorderColor[0] &&
167  BorderColor[1] == RHS.BorderColor[1] &&
168  BorderColor[2] == RHS.BorderColor[2] &&
169  BorderColor[3] == RHS.BorderColor[3] &&
170  MinLOD == RHS.MinLOD &&
171  MaxLOD == RHS.MaxLOD;
172  }
173 };
174 
176 
180 class ISampler : public IDeviceObject
181 {
182 public:
184  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface ) = 0;
185 
187  virtual const SamplerDesc& GetDesc()const = 0;
188 };
189 
190 }
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
float MaxLOD
Specifies the maximum value that LOD is clamped to before accessing the texture MIP levels...
Definition: Sampler.h:95
+
Texture coordinates outside the range [0.0, 1.0] are set to the texture color at 0.0 or 1.0, respectively. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_CLAMP/D3D12_TEXTURE_ADDRESS_MODE_CLAMP. OpenGL counterpart: GL_CLAMP_TO_EDGE.
Definition: GraphicsTypes.h:821
+
Comparison never passes. Direct3D counterpart: D3D11_COMPARISON_NEVER/D3D12_COMPARISON_FUNC_NEVER. OpenGL counterpart: GL_NEVER.
Definition: GraphicsTypes.h:854
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
TEXTURE_ADDRESS_MODE AddressV
Texture address mode for V coordinate, see Diligent::TEXTURE_ADDRESS_MODE for details.
Definition: Sampler.h:69
+
TEXTURE_ADDRESS_MODE
Texture address mode.
Definition: GraphicsTypes.h:805
+
virtual const SamplerDesc & GetDesc() const =0
Returns the sampler description used to create the object.
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
Queries the specific interface, see IObject::QueryInterface() for details.
+
TEXTURE_ADDRESS_MODE AddressU
Texture address mode for U coordinate, see Diligent::TEXTURE_ADDRESS_MODE for details.
Definition: Sampler.h:66
+
TEXTURE_ADDRESS_MODE AddressW
Texture address mode for W coordinate, see Diligent::TEXTURE_ADDRESS_MODE for details.
Definition: Sampler.h:72
+
Sampler description.
Definition: Sampler.h:52
+
Float32 MipLODBias
Offset from the calculated mipmap level. For example, if a sampler calculates that a texture should b...
Definition: Sampler.h:77
+
COMPARISON_FUNCTION ComparisonFunc
A function that compares sampled data against existing sampled data when comparsion filter is used...
Definition: Sampler.h:84
+
float MinLOD
Specifies the minimum value that LOD is clamped to before accessing the texture MIP levels...
Definition: Sampler.h:91
+
SamplerDesc(FILTER_TYPE _MinFilter=FILTER_TYPE_LINEAR, FILTER_TYPE _MagFilter=FILTER_TYPE_LINEAR, FILTER_TYPE _MipFilter=FILTER_TYPE_LINEAR, TEXTURE_ADDRESS_MODE _AddressU=TEXTURE_ADDRESS_CLAMP, TEXTURE_ADDRESS_MODE _AddressV=TEXTURE_ADDRESS_CLAMP, TEXTURE_ADDRESS_MODE _AddressW=TEXTURE_ADDRESS_CLAMP, Float32 _MipLODBias=0, Uint32 _MaxAnisotropy=0, COMPARISON_FUNCTION _ComparisonFunc=COMPARISON_FUNC_NEVER, float _MinLOD=0, float _MaxLOD=+FLT_MAX)
Initializes the structure members.
Definition: Sampler.h:113
+
Describes common device object attributes.
Definition: GraphicsTypes.h:900
+
FILTER_TYPE
Filter type.
Definition: GraphicsTypes.h:780
+
FILTER_TYPE MipFilter
Mip filter, see Diligent::FILTER_TYPE for details. Only FILTER_TYPE_POINT, FILTER_TYPE_LINEAR, FILTER_TYPE_ANISOTROPIC, and FILTER_TYPE_COMPARISON_ANISOTROPIC are allowed.
Definition: Sampler.h:63
+
Float32 BorderColor[4]
Border color to use if TEXTURE_ADDRESS_BORDER is specified for AddressU, AddressV, or AddressW.
Definition: Sampler.h:87
+
Uint32 MaxAnisotropy
Maximum anisotropy level for the anisotropic filter.
Definition: Sampler.h:80
+
Texture sampler interface.
Definition: Sampler.h:180
+
FILTER_TYPE MinFilter
Texture minification filter, see Diligent::FILTER_TYPE for details.
Definition: Sampler.h:55
+
COMPARISON_FUNCTION
Comparison function.
Definition: GraphicsTypes.h:847
+
FILTER_TYPE MagFilter
Texture magnification filter, see Diligent::FILTER_TYPE for details.
Definition: Sampler.h:58
+
bool operator==(const SamplerDesc &RHS) const
Tests if two structures are equivalent.
Definition: Sampler.h:152
+
Linear filtering.
Definition: GraphicsTypes.h:784
+
+ + + + + diff --git a/doc/html/_sampler_base_8h_source.html b/doc/html/_sampler_base_8h_source.html new file mode 100644 index 00000000..49a573ec --- /dev/null +++ b/doc/html/_sampler_base_8h_source.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/SamplerBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
SamplerBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Sampler.h"
30 #include "DeviceObjectBase.h"
31 #include "RenderDeviceBase.h"
32 
33 namespace Diligent
34 {
35 
37 
42 template<class BaseInterface, class RenderDeviceBaseInterface>
43 class SamplerBase : public DeviceObjectBase<BaseInterface, SamplerDesc>
44 {
45 public:
48 
54  SamplerBase( IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc& SamDesc, bool bIsDeviceInternal = false ) :
55  TDeviceObjectBase( pRefCounters, pDevice, SamDesc, bIsDeviceInternal )
56  {}
57 
59  {
62  auto &SamplerRegistry = static_cast<TRenderDeviceBase *>(this->GetDevice())->GetSamplerRegistry();
63  SamplerRegistry.ReportDeletedObject();
64  }
65 
66  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_Sampler, TDeviceObjectBase )
67 };
68 
69 }
Render device interface.
Definition: RenderDevice.h:55
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Sampler description.
Definition: Sampler.h:52
+
Base implementation of a render device.
Definition: DeviceObjectBase.h:36
+
Template class implementing base functionality for a sampler object.
Definition: SamplerBase.h:43
+
SamplerBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &SamDesc, bool bIsDeviceInternal=false)
Definition: SamplerBase.h:54
+
~SamplerBase()
Definition: SamplerBase.h:58
+
Template class implementing base functionality for a device object.
Definition: DeviceObjectBase.h:42
+
+ + + + + diff --git a/doc/html/_sampler_d3_d11_8h_source.html b/doc/html/_sampler_d3_d11_8h_source.html new file mode 100644 index 00000000..8f82b788 --- /dev/null +++ b/doc/html/_sampler_d3_d11_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/interface/SamplerD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
SamplerD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Sampler.h"
30 
31 namespace Diligent
32 {
33 
34 // {31A3BFAF-738E-4D8C-AD18-B021C5D948DD}
35 static constexpr INTERFACE_ID IID_SamplerD3D11 =
36 { 0x31a3bfaf, 0x738e, 0x4d8c, { 0xad, 0x18, 0xb0, 0x21, 0xc5, 0xd9, 0x48, 0xdd } };
37 
39 class ISamplerD3D11 : public ISampler
40 {
41 public:
42 
44 
47  virtual ID3D11SamplerState* GetD3D11SamplerState() = 0;
48 };
49 
50 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Interface to the sampler object implemented in D3D11.
Definition: SamplerD3D11.h:39
+
virtual ID3D11SamplerState * GetD3D11SamplerState()=0
Returns a pointer to the ID3D11SamplerState interface of the internal Direct3D11 object.
+
Texture sampler interface.
Definition: Sampler.h:180
+
+ + + + + diff --git a/doc/html/_sampler_d3_d11_impl_8h_source.html b/doc/html/_sampler_d3_d11_impl_8h_source.html new file mode 100644 index 00000000..40a38f8b --- /dev/null +++ b/doc/html/_sampler_d3_d11_impl_8h_source.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/SamplerD3D11Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
SamplerD3D11Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "SamplerD3D11.h"
30 #include "RenderDeviceD3D11.h"
31 #include "SamplerBase.h"
32 
33 namespace Diligent
34 {
35 
36 class FixedBlockMemoryAllocator;
38 class SamplerD3D11Impl : public SamplerBase<ISamplerD3D11, IRenderDeviceD3D11>
39 {
40 public:
42 
43  SamplerD3D11Impl(IReferenceCounters *pRefCounters, class RenderDeviceD3D11Impl *pRenderDeviceD3D11, const SamplerDesc& SamplerDesc);
45 
46  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface ) final;
47 
48  virtual ID3D11SamplerState* GetD3D11SamplerState()override final{ return m_pd3dSampler; }
49 
50 private:
52  CComPtr<ID3D11SamplerState> m_pd3dSampler;
53 };
54 
55 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Sampler description.
Definition: Sampler.h:52
+
Template class implementing base functionality for a sampler object.
Definition: SamplerBase.h:43
+
Implementation of the Diligent::IRenderDeviceD3D11 interface.
Definition: RenderDeviceD3D11Impl.h:38
+
Implementation of the Diligent::ISamplerD3D11 interface.
Definition: SamplerD3D11Impl.h:38
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) final
Queries the specific interface, see IObject::QueryInterface() for details.
+
virtual ID3D11SamplerState * GetD3D11SamplerState() override final
Returns a pointer to the ID3D11SamplerState interface of the internal Direct3D11 object.
Definition: SamplerD3D11Impl.h:48
+
+ + + + + diff --git a/doc/html/_sampler_d3_d12_8h_source.html b/doc/html/_sampler_d3_d12_8h_source.html new file mode 100644 index 00000000..0cf368c9 --- /dev/null +++ b/doc/html/_sampler_d3_d12_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/interface/SamplerD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
SamplerD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Sampler.h"
30 
31 namespace Diligent
32 {
33 
34 // {31A3BFAF-738E-4D8C-AD18-B021C5D948DD}
35 static constexpr INTERFACE_ID IID_SamplerD3D12 =
36 { 0x31a3bfaf, 0x738e, 0x4d8c, { 0xad, 0x18, 0xb0, 0x21, 0xc5, 0xd9, 0x48, 0xdd } };
37 
39 class ISamplerD3D12 : public ISampler
40 {
41 public:
42 
44 
47  virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle() = 0;
48 };
49 
50 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Interface to the sampler object implemented in D3D12.
Definition: SamplerD3D12.h:39
+
Texture sampler interface.
Definition: Sampler.h:180
+
virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle()=0
Returns a CPU descriptor handle of the D3D12 sampler object.
+
+ + + + + diff --git a/doc/html/_sampler_d3_d12_impl_8h_source.html b/doc/html/_sampler_d3_d12_impl_8h_source.html new file mode 100644 index 00000000..ebb3725f --- /dev/null +++ b/doc/html/_sampler_d3_d12_impl_8h_source.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/SamplerD3D12Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
SamplerD3D12Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "SamplerD3D12.h"
30 #include "RenderDeviceD3D12.h"
31 #include "SamplerBase.h"
32 #include "DescriptorHeap.h"
33 
34 namespace Diligent
35 {
36 
37 class FixedBlockMemoryAllocator;
39 class SamplerD3D12Impl : public SamplerBase<ISamplerD3D12, IRenderDeviceD3D12>
40 {
41 public:
43 
44  SamplerD3D12Impl(IReferenceCounters *pRefCounters, class RenderDeviceD3D12Impl *pRenderDeviceD3D12, const SamplerDesc& SamplerDesc);
46 
47  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override;
48 
49  virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle()override{ return m_Descriptor.GetCpuHandle(); }
50 
51 private:
52  friend class ShaderD3D12Impl;
54  DescriptorHeapAllocation m_Descriptor;
55 };
56 
57 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Implementation of the Diligent::ISamplerD3D12 interface.
Definition: SamplerD3D12Impl.h:39
+
Sampler description.
Definition: Sampler.h:52
+
Template class implementing base functionality for a sampler object.
Definition: SamplerBase.h:43
+
virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle() override
Returns a CPU descriptor handle of the D3D12 sampler object.
Definition: SamplerD3D12Impl.h:49
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
Queries the specific interface, see IObject::QueryInterface() for details.
+
Implementation of the Diligent::IShaderD3D12 interface.
Definition: ShaderD3D12Impl.h:46
+
Implementation of the Diligent::IRenderDeviceD3D12 interface.
Definition: RenderDeviceD3D12Impl.h:43
+
+ + + + + diff --git a/doc/html/_sampler_g_l_8h_source.html b/doc/html/_sampler_g_l_8h_source.html new file mode 100644 index 00000000..a31c01a5 --- /dev/null +++ b/doc/html/_sampler_g_l_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/interface/SamplerGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
SamplerGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Sampler.h"
30 
31 namespace Diligent
32 {
33 
34 // {3E9EB89E-E955-447A-9D13-92C10541F727}
35 static constexpr INTERFACE_ID IID_SamplerGL =
36 { 0x3e9eb89e, 0xe955, 0x447a, { 0x9d, 0x13, 0x92, 0xc1, 0x5, 0x41, 0xf7, 0x27 } };
37 
39 class ISamplerGL : public ISampler
40 {
41 public:
42  //const GLObjectWrappers::GLSamplerObj& GetHandle(){ return m_GlSampler; }
43 };
44 
45 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Interface to the sampler object object implemented in OpenGL.
Definition: SamplerGL.h:39
+
Texture sampler interface.
Definition: Sampler.h:180
+
+ + + + + diff --git a/doc/html/_sampler_g_l_impl_8h_source.html b/doc/html/_sampler_g_l_impl_8h_source.html new file mode 100644 index 00000000..a111d07a --- /dev/null +++ b/doc/html/_sampler_g_l_impl_8h_source.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/SamplerGLImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
SamplerGLImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BaseInterfacesGL.h"
27 #include "SamplerGL.h"
28 #include "SamplerBase.h"
29 #include "RenderDevice.h"
30 #include "GLObjectWrapper.h"
31 
32 namespace Diligent
33 {
34 
35 class FixedBlockMemoryAllocator;
37 class SamplerGLImpl : public SamplerBase<ISamplerGL, IGLDeviceBaseInterface>
38 {
39 public:
41 
42  SamplerGLImpl( IReferenceCounters *pRefCounters, class RenderDeviceGLImpl *pDeviceGL, const SamplerDesc& SamplerDesc, bool bIsDeviceInternal = false );
43  ~SamplerGLImpl();
44 
45  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface );
46 
47  const GLObjectWrappers::GLSamplerObj& GetHandle(){ return m_GlSampler; }
48 
49 private:
50  GLObjectWrappers::GLSamplerObj m_GlSampler;
51 };
52 
53 }
Implementation of the Diligent::ISamplerGL interface.
Definition: SamplerGLImpl.h:37
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Implementation of the render device interface in OpenGL.
Definition: RenderDeviceGLImpl.h:53
+
Sampler description.
Definition: Sampler.h:52
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)
Queries the specific interface, see IObject::QueryInterface() for details.
+
Template class implementing base functionality for a sampler object.
Definition: SamplerBase.h:43
+
+ + + + + diff --git a/doc/html/_shader_8h_source.html b/doc/html/_shader_8h_source.html new file mode 100644 index 00000000..5258c186 --- /dev/null +++ b/doc/html/_shader_8h_source.html @@ -0,0 +1,142 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/Shader.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Shader.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DeviceObject.h"
30 #include "ResourceMapping.h"
31 #include "FileStream.h"
32 #include "Sampler.h"
33 
34 namespace Diligent
35 {
36 
37 // {2989B45C-143D-4886-B89C-C3271C2DCC5D}
38 static constexpr INTERFACE_ID IID_Shader =
39 { 0x2989b45c, 0x143d, 0x4886, { 0xb8, 0x9c, 0xc3, 0x27, 0x1c, 0x2d, 0xcc, 0x5d } };
40 
41 // {0D57DF3F-977D-4C8F-B64C-6675814BC80C}
42 static constexpr INTERFACE_ID IID_ShaderVariable =
43 { 0xd57df3f, 0x977d, 0x4c8f, { 0xb6, 0x4c, 0x66, 0x75, 0x81, 0x4b, 0xc8, 0xc } };
44 
46 enum SHADER_TYPE : Int32
47 {
52  SHADER_TYPE_HULL = 0x008,
55 };
56 
57 enum SHADER_PROFILE : Int32
58 {
59  SHADER_PROFILE_DEFAULT = 0,
60  SHADER_PROFILE_DX_4_0,
61  SHADER_PROFILE_DX_5_0,
62  SHADER_PROFILE_DX_5_1,
63  SHADER_PROFILE_GL_4_2
64 };
65 
68 {
71 
74 
77 };
78 
82 {
86 
92 
97 };
98 
101 {
106 
111 
115 
118 };
119 
122 {
124  const Char *Name;
125 
128  ShaderVariableDesc(const Char *_Name = nullptr, SHADER_VARIABLE_TYPE _Type = SHADER_VARIABLE_TYPE_STATIC) :
129  Name(_Name),
130  Type(_Type)
131  {}
132 };
133 
134 
137 {
139  const Char* TextureName = nullptr;
140 
143 
144  StaticSamplerDesc(){};
145  StaticSamplerDesc(const Char* _TexName, const SamplerDesc &_Desc) :
146  TextureName(_TexName),
147  Desc(_Desc)
148  {}
149 };
150 
153 {
156 
157  Bool bCacheCompiledShader;
158  SHADER_PROFILE TargetProfile;
159 
164 
167 
169  Uint32 NumVariables;
170 
173 
176 
177  ShaderDesc() :
179  bCacheCompiledShader(False),
180  TargetProfile(SHADER_PROFILE_DEFAULT),
182  VariableDesc(nullptr),
183  NumVariables(0),
185  StaticSamplers(nullptr)
186  {}
187 };
188 
191 {
192 public:
193  virtual void CreateInputStream(const Diligent::Char *Name, IFileStream **ppStream) = 0;
194 };
195 
196 struct ShaderMacro
197 {
198  const Char* Name;
199  const Char* Definition;
200  ShaderMacro(const Char* _Name, const Char* _Def) : Name( _Name ), Definition( _Def ) {}
201 };
202 
205 {
207 
209  const Char* FilePath = nullptr;
210 
212 
216 
218 
228  class IHLSL2GLSLConversionStream **ppConversionStream = nullptr;
229 
231 
233  const Char* Source = nullptr;
234 
236 
239  const void *ByteCode = nullptr;
240 
242 
244  size_t ByteCodeSize = 0;
245 
247 
249  const Char* EntryPoint = "main";
250 
252 
254  const ShaderMacro *Macros = nullptr;
255 
258 
261 };
262 
263 
265 class IShaderVariable : public IObject
266 {
267 public:
269 
273  virtual void Set(IDeviceObject *pObject) = 0;
274 
276 
284  virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements) = 0;
285 };
286 
288 class IShader : public IDeviceObject
289 {
290 public:
292  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface ) = 0;
293 
295  virtual const ShaderDesc &GetDesc()const = 0;
296 
303  virtual void BindResources( IResourceMapping* pResourceMapping, Uint32 Flags ) = 0;
304 
307 
311  virtual IShaderVariable* GetShaderVariable(const Char* Name) = 0;
312 };
313 
314 }
const Char * Source
Shader source.
Definition: Shader.h:233
+
Shader source stream factory interface.
Definition: Shader.h:190
+
const Char * EntryPoint
Shader entry point.
Definition: Shader.h:249
+
Shader interface.
Definition: Shader.h:288
+
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
Shader resource variable.
Definition: Shader.h:265
+
const StaticSamplerDesc * StaticSamplers
Array of static sampler descriptions.
Definition: Shader.h:175
+
If this flag is specified, only unresolved bindings will be updated. All resolved bindings will keep ...
Definition: Shader.h:91
+
Shader description.
Definition: Shader.h:152
+
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
SHADER_TYPE ShaderType
Shader type. See Diligent::SHADER_TYPE.
Definition: Shader.h:155
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
If this flag is specified, all shader bindings are expected to be resolved after the call...
Definition: Shader.h:96
+
SHADER_VARIABLE_TYPE Type
Shader variable type. See Diligent::SHADER_VARIABLE_TYPE for a list of allowed types.
Definition: Shader.h:127
+
SHADER_VARIABLE_TYPE DefaultVariableType
Default shader variable type. This type will be used if shader variable description is not found in a...
Definition: Shader.h:163
+
Pixel (fragment) shader.
Definition: Shader.h:50
+
IShaderSourceInputStreamFactory * pShaderSourceStreamFactory
Pointer to the shader source input stream factory.
Definition: Shader.h:215
+
Static sampler description.
Definition: Shader.h:136
+
Hull (tessellation control) shader.
Definition: Shader.h:52
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
Domain (tessellation evaluation) shader.
Definition: Shader.h:53
+
The source language is GLSL.
Definition: Shader.h:76
+
Reset all bindings. If this flag is specified, all existing bindings will be broken. By default all existing bindings are preserved.
Definition: Shader.h:85
+
const Char * Name
Shader variable name.
Definition: Shader.h:124
+
class IHLSL2GLSLConversionStream ** ppConversionStream
HLSL->GLSL conversion stream.
Definition: Shader.h:228
+
Default language (GLSL for OpenGL/OpenGLES devices, HLSL for Direct3D11/Direct3D12 devices) ...
Definition: Shader.h:70
+
Sampler description.
Definition: Sampler.h:52
+
Describes shader variable.
Definition: Shader.h:121
+
virtual const ShaderDesc & GetDesc() const =0
Returns the shader description.
+
SHADER_VARIABLE_TYPE
Describes shader variable type that is used by ShaderVariableDesc.
Definition: Shader.h:100
+
SamplerDesc Desc
Sampler description.
Definition: Shader.h:142
+
Vertex shader.
Definition: Shader.h:49
+
The source language is HLSL.
Definition: Shader.h:73
+
const Char * FilePath
Source file path.
Definition: Shader.h:209
+
virtual IShaderVariable * GetShaderVariable(const Char *Name)=0
Returns an interface to a shader variable. If the shader variable is not found, an interface to a dum...
+
SHADER_SOURCE_LANGUAGE SourceLanguage
Shader source language. See Diligent::SHADER_SOURCE_LANGUAGE.
Definition: Shader.h:260
+
Unknown shader type.
Definition: Shader.h:48
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
Queries the specific interface, see IObject::QueryInterface() for details.
+
Describes common device object attributes.
Definition: GraphicsTypes.h:900
+
virtual void Set(IDeviceObject *pObject)=0
Sets the variable to the given value.
+
Shader variable is constant across all shader instances. It must be set once directly through IShader...
Definition: Shader.h:105
+
const ShaderVariableDesc * VariableDesc
Array of shader variable descriptions.
Definition: Shader.h:166
+
virtual void BindResources(IResourceMapping *pResourceMapping, Uint32 Flags)=0
Binds shader resources.
+
Shader variable is dynamic. It can be set multiple times for every instance of shader resource bindin...
Definition: Shader.h:114
+
const ShaderMacro * Macros
Shader macros.
Definition: Shader.h:254
+
Shader variable is constant across shader resource bindings instance (see IShaderResourceBinding). It must be set once through IShaderResourceBinding::BindResources() or through the shader variable. It cannot be set through IShader interface.
Definition: Shader.h:110
+
Total number of shader variable types.
Definition: Shader.h:117
+
Uint32 NumVariables
Number of elements in VariableDesc array.
Definition: Shader.h:169
+
Compute shader.
Definition: Shader.h:54
+
virtual void SetArray(IDeviceObject *const *ppObjects, Uint32 FirstElement, Uint32 NumElements)=0
Sets the variable array.
+
ShaderDesc Desc
Shader description. See Diligent::ShaderDesc.
Definition: Shader.h:257
+
Uint32 NumStaticSamplers
Number of static samplers in StaticSamplers array.
Definition: Shader.h:172
+
const Char * TextureName
Name of the texture variable that static sampler will be assigned to.
Definition: Shader.h:139
+
const void * ByteCode
Compiled shader bytecode.
Definition: Shader.h:239
+
Shader creation attributes.
Definition: Shader.h:204
+
Geometry shader.
Definition: Shader.h:51
+
size_t ByteCodeSize
Size of the compiled shader bytecode.
Definition: Shader.h:244
+
SHADER_SOURCE_LANGUAGE
Describes shader source code language.
Definition: Shader.h:67
+
BIND_SHADER_RESOURCES_FLAGS
Describes flags that can be supplied to IShader::BindResources() and IDeviceContext::BindShaderResour...
Definition: Shader.h:81
+
+ + + + + diff --git a/doc/html/_shader_base_8h_source.html b/doc/html/_shader_base_8h_source.html new file mode 100644 index 00000000..d62aeefd --- /dev/null +++ b/doc/html/_shader_base_8h_source.html @@ -0,0 +1,116 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/ShaderBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Shader.h"
30 #include "DeviceObjectBase.h"
31 #include "STDAllocator.h"
32 #include "PlatformMisc.h"
33 #include "EngineMemory.h"
34 
35 namespace Diligent
36 {
37 
38 inline SHADER_TYPE GetShaderTypeFromIndex( Int32 Index )
39 {
40  return static_cast<SHADER_TYPE>(1 << Index);
41 }
42 
43 inline Int32 GetShaderTypeIndex( SHADER_TYPE Type )
44 {
45  Int32 ShaderIndex = PlatformMisc::GetLSB(Type);
46 
47 #ifdef _DEBUG
48  switch( Type )
49  {
50  case SHADER_TYPE_UNKNOWN: VERIFY_EXPR(ShaderIndex == -1); break;
51  case SHADER_TYPE_VERTEX: VERIFY_EXPR(ShaderIndex == 0); break;
52  case SHADER_TYPE_PIXEL: VERIFY_EXPR(ShaderIndex == 1); break;
53  case SHADER_TYPE_GEOMETRY:VERIFY_EXPR(ShaderIndex == 2); break;
54  case SHADER_TYPE_HULL: VERIFY_EXPR(ShaderIndex == 3); break;
55  case SHADER_TYPE_DOMAIN: VERIFY_EXPR(ShaderIndex == 4); break;
56  case SHADER_TYPE_COMPUTE: VERIFY_EXPR(ShaderIndex == 5); break;
57  default: UNEXPECTED( "Unexpected shader type (", Type, ")" ); break;
58  }
59  VERIFY( Type == GetShaderTypeFromIndex(ShaderIndex), "Incorrect shader type index" );
60 #endif
61  return ShaderIndex;
62 }
63 
64 static const int VSInd = GetShaderTypeIndex(SHADER_TYPE_VERTEX);
65 static const int PSInd = GetShaderTypeIndex(SHADER_TYPE_PIXEL);
66 static const int GSInd = GetShaderTypeIndex(SHADER_TYPE_GEOMETRY);
67 static const int HSInd = GetShaderTypeIndex(SHADER_TYPE_HULL);
68 static const int DSInd = GetShaderTypeIndex(SHADER_TYPE_DOMAIN);
69 static const int CSInd = GetShaderTypeIndex(SHADER_TYPE_COMPUTE);
70 
71 template<typename TNameCompare>
72 SHADER_VARIABLE_TYPE GetShaderVariableType(SHADER_VARIABLE_TYPE DefaultVariableType, const ShaderVariableDesc *VariableDesc, Uint32 NumVars, TNameCompare NameCompare)
73 {
74  for (Uint32 v = 0; v < NumVars; ++v)
75  {
76  const auto &CurrVarDesc = VariableDesc[v];
77  if ( NameCompare(CurrVarDesc.Name) )
78  {
79  return CurrVarDesc.Type;
80  }
81  }
82  return DefaultVariableType;
83 }
84 
85 inline SHADER_VARIABLE_TYPE GetShaderVariableType(const Char* Name, SHADER_VARIABLE_TYPE DefaultVariableType, const ShaderVariableDesc *VariableDesc, Uint32 NumVars)
86 {
87  return GetShaderVariableType(DefaultVariableType, VariableDesc, NumVars,
88  [&](const char *VarName)
89  {
90  return strcmp(VarName, Name) == 0;
91  }
92  );
93 }
94 
95 
97 
99 {
100  ShaderVariableBase(IObject &Owner) :
101  // Shader variables are always created as part of the shader, or
102  // shader resource binding, so we must provide owner pointer to
103  // the base class constructor
104  m_Owner(Owner)
105  {
106  }
107 
108  IObject& GetOwner()
109  {
110  return m_Owner;
111  }
112 
113  virtual IReferenceCounters* GetReferenceCounters()const override final
114  {
115  return m_Owner.GetReferenceCounters();
116  }
117 
118  virtual Atomics::Long AddRef()override final
119  {
120  return m_Owner.AddRef();
121  }
122 
123  virtual Atomics::Long Release()override final
124  {
125  return m_Owner.Release();
126  }
127 
128  virtual void QueryInterface( const INTERFACE_ID &IID, IObject **ppInterface )override final
129  {
130  if( ppInterface == nullptr )
131  return;
132 
133  *ppInterface = nullptr;
134  if( IID == IID_ShaderVariable || IID == IID_Unknown )
135  {
136  *ppInterface = this;
137  (*ppInterface)->AddRef();
138  }
139  }
140 
141 protected:
142  IObject &m_Owner;
143 };
144 
147 {
148  DummyShaderVariable(IObject &Owner) :
149  ShaderVariableBase(Owner)
150  {}
151 
152  virtual void Set( IDeviceObject *pObject )override final
153  {
154  // Ignore operation
155  // Probably output warning
156  }
157 
158  virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements)override final
159  {
160  // Ignore operation
161  // Probably output warning
162  }
163 };
164 
166 
171 template<class BaseInterface, class RenderDeviceBaseInterface>
172 class ShaderBase : public DeviceObjectBase<BaseInterface, ShaderDesc>
173 {
174 public:
176 
182  ShaderBase( IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc& ShdrDesc, bool bIsDeviceInternal = false ) :
183  TDeviceObjectBase( pRefCounters, pDevice, ShdrDesc, bIsDeviceInternal ),
184  m_DummyShaderVar(*this),
185  m_VariablesDesc(ShdrDesc.NumVariables, ShaderVariableDesc(), STD_ALLOCATOR_RAW_MEM(ShaderVariableDesc, GetRawAllocator(), "Allocator for vector<ShaderVariableDesc>") ),
186  m_StringPool(ShdrDesc.NumVariables + ShdrDesc.NumStaticSamplers, String(), STD_ALLOCATOR_RAW_MEM(String, GetRawAllocator(), "Allocator for vector<String>")),
187  m_StaticSamplers(ShdrDesc.NumStaticSamplers, StaticSamplerDesc(), STD_ALLOCATOR_RAW_MEM(StaticSamplerDesc, GetRawAllocator(), "Allocator for vector<StaticSamplerDesc>") )
188  {
189  auto Str = m_StringPool.begin();
190  if(this->m_Desc.VariableDesc)
191  {
192  for (Uint32 v = 0; v < this->m_Desc.NumVariables; ++v, ++Str)
193  {
194  m_VariablesDesc[v] = this->m_Desc.VariableDesc[v];
195  VERIFY(m_VariablesDesc[v].Name != nullptr, "Variable name not provided");
196  *Str = m_VariablesDesc[v].Name;
197  m_VariablesDesc[v].Name = Str->c_str();
198  }
199  this->m_Desc.VariableDesc = m_VariablesDesc.data();
200  }
201  if(this->m_Desc.StaticSamplers)
202  {
203  for (Uint32 s = 0; s < this->m_Desc.NumStaticSamplers; ++s, ++Str)
204  {
205  m_StaticSamplers[s] = this->m_Desc.StaticSamplers[s];
206  VERIFY(m_StaticSamplers[s].TextureName != nullptr, "Static sampler texture name not provided");
207  *Str = m_StaticSamplers[s].TextureName;
208  m_StaticSamplers[s].TextureName = Str->c_str();
209 #ifdef _DEBUG
210  const auto &BorderColor = m_StaticSamplers[s].Desc.BorderColor;
211  if( !( (BorderColor[0] == 0 && BorderColor[1] == 0 && BorderColor[2] == 0 && BorderColor[3] == 0) ||
212  (BorderColor[0] == 0 && BorderColor[1] == 0 && BorderColor[2] == 0 && BorderColor[3] == 1) ||
213  (BorderColor[0] == 1 && BorderColor[1] == 1 && BorderColor[2] == 1 && BorderColor[3] == 0) ) )
214  {
215  LOG_WARNING_MESSAGE("Static sampler for variable \"", *Str , "\" specifies border color (", BorderColor[0], ", ", BorderColor[1], ", ", BorderColor[2], ", ", BorderColor[3], "). D3D12 static samplers only allow transparent black (0,0,0,1), opaque black (0,0,0,0) or opaque white (1,1,1,0) as border colors");
216  }
217 #endif
218  }
219  this->m_Desc.StaticSamplers = m_StaticSamplers.data();
220  }
221 
222  VERIFY_EXPR(Str == m_StringPool.end());
223  }
224 
225  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_Shader, TDeviceObjectBase )
226 
227 protected:
229 
231  std::vector<ShaderVariableDesc, STDAllocatorRawMem<ShaderVariableDesc> > m_VariablesDesc;
233  std::vector<String, STDAllocatorRawMem<String> > m_StringPool;
235  std::vector<StaticSamplerDesc, STDAllocatorRawMem<StaticSamplerDesc> > m_StaticSamplers;
236 };
237 
238 }
Render device interface.
Definition: RenderDevice.h:55
+
virtual void SetArray(IDeviceObject *const *ppObjects, Uint32 FirstElement, Uint32 NumElements) override final
Sets the variable array.
Definition: ShaderBase.h:158
+
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
Shader resource variable.
Definition: Shader.h:265
+
const StaticSamplerDesc * StaticSamplers
Array of static sampler descriptions.
Definition: Shader.h:175
+
Shader description.
Definition: Shader.h:152
+
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Pixel (fragment) shader.
Definition: Shader.h:50
+
Static sampler description.
Definition: Shader.h:136
+
Template class implementing base functionality for a shader object.
Definition: ShaderBase.h:172
+
IMemoryAllocator & GetRawAllocator()
Returns raw memory allocator.
Definition: EngineMemory.cpp:46
+
Hull (tessellation control) shader.
Definition: Shader.h:52
+
Domain (tessellation evaluation) shader.
Definition: Shader.h:53
+
std::vector< ShaderVariableDesc, STDAllocatorRawMem< ShaderVariableDesc > > m_VariablesDesc
Shader variable descriptions.
Definition: ShaderBase.h:231
+
Implementation of a dummy shader variable that silently ignores all operations.
Definition: ShaderBase.h:146
+
Describes shader variable.
Definition: Shader.h:121
+
SHADER_VARIABLE_TYPE
Describes shader variable type that is used by ShaderVariableDesc.
Definition: Shader.h:100
+
Vertex shader.
Definition: Shader.h:49
+
Unknown shader type.
Definition: Shader.h:48
+
ShaderDesc m_Desc
Object description.
Definition: DeviceObjectBase.h:138
+
ShaderBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ShdrDesc, bool bIsDeviceInternal=false)
Definition: ShaderBase.h:182
+
std::vector< StaticSamplerDesc, STDAllocatorRawMem< StaticSamplerDesc > > m_StaticSamplers
Static sampler descriptions.
Definition: ShaderBase.h:235
+
const ShaderVariableDesc * VariableDesc
Array of shader variable descriptions.
Definition: Shader.h:166
+
Base implementation of a shader variable.
Definition: ShaderBase.h:98
+
Template class implementing base functionality for a device object.
Definition: DeviceObjectBase.h:42
+
Uint32 NumVariables
Number of elements in VariableDesc array.
Definition: Shader.h:169
+
virtual void Set(IDeviceObject *pObject) override final
Sets the variable to the given value.
Definition: ShaderBase.h:152
+
DummyShaderVariable m_DummyShaderVar
Dummy shader variable.
Definition: ShaderBase.h:228
+
Compute shader.
Definition: Shader.h:54
+
std::vector< String, STDAllocatorRawMem< String > > m_StringPool
String pool that is used to hold copies of variable names and static sampler names.
Definition: ShaderBase.h:233
+
Uint32 NumStaticSamplers
Number of static samplers in StaticSamplers array.
Definition: Shader.h:172
+
Geometry shader.
Definition: Shader.h:51
+
+ + + + + diff --git a/doc/html/_shader_d3_d11_8h_source.html b/doc/html/_shader_d3_d11_8h_source.html new file mode 100644 index 00000000..2c2c3c7c --- /dev/null +++ b/doc/html/_shader_d3_d11_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/interface/ShaderD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Shader.h"
30 
31 namespace Diligent
32 {
33 
34 // {C513E83E-B037-405B-8B49-BF8F5C220DEE}
35 static constexpr INTERFACE_ID IID_ShaderD3D11 =
36 { 0xc513e83e, 0xb037, 0x405b, { 0x8b, 0x49, 0xbf, 0x8f, 0x5c, 0x22, 0xd, 0xee } };
37 
39 class IShaderD3D11 : public IShader
40 {
41 public:
42 
44 
47  virtual ID3D11DeviceChild* GetD3D11Shader() = 0;
48 };
49 
50 }
Shader interface.
Definition: Shader.h:288
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Interface to the shader object implemented in D3D11.
Definition: ShaderD3D11.h:39
+
virtual ID3D11DeviceChild * GetD3D11Shader()=0
Returns a pointer to the ID3D11DeviceChild interface of the internal Direct3D11 object.
+
+ + + + + diff --git a/doc/html/_shader_d3_d11_impl_8h_source.html b/doc/html/_shader_d3_d11_impl_8h_source.html new file mode 100644 index 00000000..3a1c8bce --- /dev/null +++ b/doc/html/_shader_d3_d11_impl_8h_source.html @@ -0,0 +1,94 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/ShaderD3D11Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderD3D11Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "ShaderD3D11.h"
30 #include "RenderDeviceD3D11.h"
31 #include "ShaderBase.h"
32 #include "ShaderD3DBase.h"
33 #include "ShaderResourceLayoutD3D11.h"
34 #include "ShaderResourceCacheD3D11.h"
35 #include "EngineD3D11Defines.h"
36 #include "ShaderResourcesD3D11.h"
37 
38 namespace Diligent
39 {
40 
41 class FixedBlockMemoryAllocator;
42 class ResourceMapping;
43 
45 class ShaderD3D11Impl : public ShaderBase<IShaderD3D11, IRenderDeviceD3D11>, public ShaderD3DBase
46 {
47 public:
49 
50  ShaderD3D11Impl(IReferenceCounters *pRefCounters, class RenderDeviceD3D11Impl *pRenderDeviceD3D11, const ShaderCreationAttribs &CreationAttribs);
51  ~ShaderD3D11Impl();
52 
53  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final;
54 
55  virtual void BindResources( IResourceMapping* pResourceMapping, Uint32 Flags )override final;
56 
57  virtual IShaderVariable* GetShaderVariable( const Char* Name )override final;
58 
59  virtual ID3D11DeviceChild* GetD3D11Shader()override final{ return m_pShader; }
60 
61  ID3DBlob* GetBytecode(){return m_pShaderByteCode;}
62 
63  ShaderResourceLayoutD3D11& GetStaticResourceLayout(){return m_StaticResLayout;}
64  const std::shared_ptr<const ShaderResourcesD3D11>& GetResources(){return m_pShaderResources;}
65  Uint32 GetShaderTypeIndex(){return m_ShaderTypeIndex;}
66 
67 private:
68 
69  DummyShaderVariable m_DummyShaderVar;
70 
72  CComPtr<ID3D11DeviceChild> m_pShader;
73 
74  // ShaderResources class instance must be referenced through the shared pointer, because
75  // it is referenced by ShaderResourceLayoutD3D11 class instances
76  std::shared_ptr<const ShaderResourcesD3D11> m_pShaderResources;
77 
78  ShaderResourceCacheD3D11 m_StaticResCache;
79  ShaderResourceLayoutD3D11 m_StaticResLayout;
80  Uint32 m_ShaderTypeIndex; // VS == 0, PS == 1, GS == 2, HS == 3, DS == 4, CS == 5
81 };
82 
83 }
Shader resource variable.
Definition: Shader.h:265
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Template class implementing base functionality for a shader object.
Definition: ShaderBase.h:172
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
virtual ID3D11DeviceChild * GetD3D11Shader() override final
Returns a pointer to the ID3D11DeviceChild interface of the internal Direct3D11 object.
Definition: ShaderD3D11Impl.h:59
+
virtual void BindResources(IResourceMapping *pResourceMapping, Uint32 Flags) override final
Binds shader resources.
Definition: ShaderD3D11Impl.cpp:105
+
Implementation of the Diligent::IRenderDeviceD3D11 interface.
Definition: RenderDeviceD3D11Impl.h:38
+
Implementation of the Diligent::IShaderD3D11 interface.
Definition: ShaderD3D11Impl.h:45
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
Queries the specific interface, see IObject::QueryInterface() for details.
+
virtual IShaderVariable * GetShaderVariable(const Char *Name) override final
Returns an interface to a shader variable. If the shader variable is not found, an interface to a dum...
Definition: ShaderD3D11Impl.cpp:97
+
Shader creation attributes.
Definition: Shader.h:204
+
+ + + + + diff --git a/doc/html/_shader_d3_d12_8h_source.html b/doc/html/_shader_d3_d12_8h_source.html new file mode 100644 index 00000000..fd4f3ab9 --- /dev/null +++ b/doc/html/_shader_d3_d12_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/interface/ShaderD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Shader.h"
30 
31 namespace Diligent
32 {
33 
34 // {C059B160-7F31-4029-943D-0996B98EE79A}
35 static constexpr INTERFACE_ID IID_ShaderD3D12 =
36 { 0xc059b160, 0x7f31, 0x4029, { 0x94, 0x3d, 0x9, 0x96, 0xb9, 0x8e, 0xe7, 0x9a } };
37 
39 class IShaderD3D12 : public IShader
40 {
41 public:
42 
44 
47  //virtual ID3D12DeviceChild* GetD3D12Shader() = 0;
48 };
49 
50 }
Interface to the shader object implemented in D3D12.
Definition: ShaderD3D12.h:39
+
Shader interface.
Definition: Shader.h:288
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_shader_d3_d12_impl_8h_source.html b/doc/html/_shader_d3_d12_impl_8h_source.html new file mode 100644 index 00000000..4275b38e --- /dev/null +++ b/doc/html/_shader_d3_d12_impl_8h_source.html @@ -0,0 +1,94 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/ShaderD3D12Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderD3D12Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "RenderDeviceD3D12.h"
30 #include "ShaderD3D12.h"
31 #include "ShaderBase.h"
32 #include "ShaderD3DBase.h"
33 #include "ShaderResourceLayoutD3D12.h"
34 
35 #ifdef _DEBUG
36 # define VERIFY_SHADER_BINDINGS
37 #endif
38 
39 namespace Diligent
40 {
41 
42 class ResourceMapping;
43 class FixedBlockMemoryAllocator;
44 
46 class ShaderD3D12Impl : public ShaderBase<IShaderD3D12, IRenderDeviceD3D12>, public ShaderD3DBase
47 {
48 public:
50 
51  ShaderD3D12Impl(IReferenceCounters *pRefCounters, class RenderDeviceD3D12Impl *pRenderDeviceD3D12, const ShaderCreationAttribs &ShaderCreationAttribs);
52  ~ShaderD3D12Impl();
53 
54  //virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override;
55 
56  virtual void BindResources( IResourceMapping* pResourceMapping, Uint32 Flags )override;
57 
58  virtual IShaderVariable* GetShaderVariable(const Char* Name)override;
59 
60  ID3DBlob* GetShaderByteCode(){return m_pShaderByteCode;}
61  const std::shared_ptr<const ShaderResourcesD3D12>& GetShaderResources()const{return m_pShaderResources;}
62  const ShaderResourceLayoutD3D12& GetConstResLayout()const{return m_StaticResLayout;}
63 
64 #ifdef VERIFY_SHADER_BINDINGS
65  void DbgVerifyStaticResourceBindings();
66 #endif
67 
68 private:
69 
70  DummyShaderVariable m_DummyShaderVar;
71 
72  // ShaderResources class instance must be referenced through the shared pointer, because
73  // it is referenced by ShaderResourceLayoutD3D12 class instances
74  std::shared_ptr<const ShaderResourcesD3D12> m_pShaderResources;
75  ShaderResourceLayoutD3D12 m_StaticResLayout;
76  ShaderResourceCacheD3D12 m_ConstResCache;
77 };
78 
79 }
virtual void BindResources(IResourceMapping *pResourceMapping, Uint32 Flags) override
Binds shader resources.
Definition: ShaderD3D12Impl.cpp:62
+
Shader resource variable.
Definition: Shader.h:265
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Template class implementing base functionality for a shader object.
Definition: ShaderBase.h:172
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
Implementation of a dummy shader variable that silently ignores all operations.
Definition: ShaderBase.h:146
+
virtual IShaderVariable * GetShaderVariable(const Char *Name) override
Returns an interface to a shader variable. If the shader variable is not found, an interface to a dum...
Definition: ShaderD3D12Impl.cpp:67
+
Diligent::ShaderResourceLayoutD3D12 class.
Definition: ShaderResourceLayoutD3D12.h:125
+
Implementation of the Diligent::IShaderD3D12 interface.
Definition: ShaderD3D12Impl.h:46
+
Shader creation attributes.
Definition: Shader.h:204
+
Implementation of the Diligent::IRenderDeviceD3D12 interface.
Definition: RenderDeviceD3D12Impl.h:43
+
+ + + + + diff --git a/doc/html/_shader_d3_d_base_8h_source.html b/doc/html/_shader_d3_d_base_8h_source.html new file mode 100644 index 00000000..107d757e --- /dev/null +++ b/doc/html/_shader_d3_d_base_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3DBase/include/ShaderD3DBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderD3DBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <d3dcommon.h>
27 
28 #include "Shader.h"
29 
32 
33 namespace Diligent
34 {
37  {
38  public:
39  ShaderD3DBase(const ShaderCreationAttribs &CreationAttribs);
40 
41  protected:
42 
43  CComPtr<ID3DBlob> m_pShaderByteCode;
44  };
45 }
Base implementation of a D3D shader.
Definition: ShaderD3DBase.h:36
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Shader creation attributes.
Definition: Shader.h:204
+
+ + + + + diff --git a/doc/html/_shader_g_l_8h_source.html b/doc/html/_shader_g_l_8h_source.html new file mode 100644 index 00000000..efb74259 --- /dev/null +++ b/doc/html/_shader_g_l_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/interface/ShaderGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Shader.h"
30 
31 namespace Diligent
32 {
33 
34 // {2FF3C191-285B-4E6C-BD0B-D084DDEA6FCC}
35 static constexpr INTERFACE_ID IID_ShaderGL =
36 { 0x2ff3c191, 0x285b, 0x4e6c, { 0xbd, 0xb, 0xd0, 0x84, 0xdd, 0xea, 0x6f, 0xcc } };
37 
39 class IShaderGL : public IShader
40 {
41 public:
42 
43 };
44 
45 }
Shader interface.
Definition: Shader.h:288
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Interface to the shader object implemented in OpenGL.
Definition: ShaderGL.h:39
+
+ + + + + diff --git a/doc/html/_shader_g_l_impl_8h_source.html b/doc/html/_shader_g_l_impl_8h_source.html new file mode 100644 index 00000000..859da594 --- /dev/null +++ b/doc/html/_shader_g_l_impl_8h_source.html @@ -0,0 +1,102 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/ShaderGLImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderGLImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BaseInterfacesGL.h"
27 #include "ShaderGL.h"
28 #include "ShaderBase.h"
29 #include "RenderDevice.h"
30 #include "GLObjectWrapper.h"
31 #include "GLProgram.h"
32 
33 namespace Diligent
34 {
35 
36 class FixedBlockMemoryAllocator;
37 
38 inline GLenum GetGLShaderType(SHADER_TYPE ShaderType)
39 {
40  switch(ShaderType)
41  {
42  case SHADER_TYPE_VERTEX: return GL_VERTEX_SHADER; break;
43  case SHADER_TYPE_PIXEL: return GL_FRAGMENT_SHADER; break;
44  case SHADER_TYPE_GEOMETRY: return GL_GEOMETRY_SHADER; break;
45  case SHADER_TYPE_HULL: return GL_TESS_CONTROL_SHADER; break;
46  case SHADER_TYPE_DOMAIN: return GL_TESS_EVALUATION_SHADER; break;
47  case SHADER_TYPE_COMPUTE: return GL_COMPUTE_SHADER; break;
48  default: return 0;
49  }
50 }
51 
52 inline GLenum ShaderTypeToGLShaderBit(SHADER_TYPE ShaderType)
53 {
54  switch(ShaderType)
55  {
56  case SHADER_TYPE_VERTEX: return GL_VERTEX_SHADER_BIT; break;
57  case SHADER_TYPE_PIXEL: return GL_FRAGMENT_SHADER_BIT; break;
58  case SHADER_TYPE_GEOMETRY: return GL_GEOMETRY_SHADER_BIT; break;
59  case SHADER_TYPE_HULL: return GL_TESS_CONTROL_SHADER_BIT; break;
60  case SHADER_TYPE_DOMAIN: return GL_TESS_EVALUATION_SHADER_BIT; break;
61  case SHADER_TYPE_COMPUTE: return GL_COMPUTE_SHADER_BIT; break;
62  default: return 0;
63  }
64 }
65 
67 class ShaderGLImpl : public ShaderBase<IShaderGL, IGLDeviceBaseInterface>
68 {
69 public:
71 
72  ShaderGLImpl( IReferenceCounters *pRefCounters, class RenderDeviceGLImpl *pDeviceGL, const ShaderCreationAttribs &ShaderCreationAttribs, bool bIsDeviceInternal = false );
73  ~ShaderGLImpl();
74 
75  virtual void BindResources( IResourceMapping* pResourceMapping, Uint32 Flags )override;
76 
77  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override;
78 
79  virtual IShaderVariable* GetShaderVariable( const Char* Name )override;
80 
81  GLProgram& GetGlProgram(){return m_GlProgObj;}
82 
83 private:
84 
85  friend class PipelineStateGLImpl;
86  friend class DeviceContextGLImpl;
87 
88  GLProgram m_GlProgObj; // Used if program pipeline supported
89  GLObjectWrappers::GLShaderObj m_GLShaderObj; // Used if program pipelines are not supported
90 };
91 
92 }
Implementation of the Diligent::IShaderGL interface.
Definition: ShaderGLImpl.h:67
+
Shader resource variable.
Definition: Shader.h:265
+
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Implementation of the Diligent::IDeviceContextGL interface.
Definition: DeviceContextGLImpl.h:35
+
Pixel (fragment) shader.
Definition: Shader.h:50
+
Template class implementing base functionality for a shader object.
Definition: ShaderBase.h:172
+
Hull (tessellation control) shader.
Definition: Shader.h:52
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
Domain (tessellation evaluation) shader.
Definition: Shader.h:53
+
Implementation of the render device interface in OpenGL.
Definition: RenderDeviceGLImpl.h:53
+
Implementation of the Diligent::IPipelineStateGL interface.
Definition: PipelineStateGLImpl.h:39
+
Vertex shader.
Definition: Shader.h:49
+
virtual void BindResources(IResourceMapping *pResourceMapping, Uint32 Flags) override
Binds shader resources.
Definition: ShaderGLImpl.cpp:317
+
virtual IShaderVariable * GetShaderVariable(const Char *Name) override
Returns an interface to a shader variable. If the shader variable is not found, an interface to a dum...
Definition: ShaderGLImpl.cpp:334
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
Queries the specific interface, see IObject::QueryInterface() for details.
+
Compute shader.
Definition: Shader.h:54
+
Shader creation attributes.
Definition: Shader.h:204
+
Geometry shader.
Definition: Shader.h:51
+
+ + + + + diff --git a/doc/html/_shader_macro_helper_8h_source.html b/doc/html/_shader_macro_helper_8h_source.html new file mode 100644 index 00000000..2d972e5d --- /dev/null +++ b/doc/html/_shader_macro_helper_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsTools/include/ShaderMacroHelper.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderMacroHelper.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 //--------------------------------------------------------------------------------------
25 // Copyright 2013 Intel Corporation
26 // All Rights Reserved
27 //
28 // Permission is granted to use, copy, distribute and prepare derivative works of this
29 // software for any purpose and without fee, provided, that the above copyright notice
30 // and this statement appear in all copies. Intel makes no representations about the
31 // suitability of this software for any purpose. THIS SOFTWARE IS PROVIDED "AS IS."
32 // INTEL SPECIFICALLY DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, AND ALL LIABILITY,
33 // INCLUDING CONSEQUENTIAL AND OTHER INDIRECT DAMAGES, FOR THE USE OF THIS SOFTWARE,
34 // INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PROPRIETARY RIGHTS, AND INCLUDING THE
35 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Intel does not
36 // assume any responsibility for any errors which may appear in this software nor any
37 // responsibility to update it.
38 //--------------------------------------------------------------------------------------
39 #pragma once
40 
41 #include <set>
42 #include <vector>
43 #include <sstream>
44 #include <iomanip>
45 #include "BasicTypes.h"
46 #include "DebugUtilities.h"
47 #include "Shader.h"
48 
49 namespace Diligent
50 {
51 
52 class ShaderMacroHelper
53 {
54 public:
55 
56  template<typename DefintionType>
57  void AddShaderMacro( const Diligent::Char* Name, DefintionType Definition )
58  {
59  std::ostringstream ss;
60  ss << Definition;
61  AddShaderMacro<const Diligent::Char*>( Name, ss.str().c_str() );
62  }
63 
64  void Finalize()
65  {
66  if (!m_bIsFinalized)
67  {
68  m_Macros.emplace_back(nullptr, nullptr);
69  m_bIsFinalized = true;
70  }
71  }
72 
73  void Reopen()
74  {
75  if (m_bIsFinalized)
76  {
77  VERIFY_EXPR(m_Macros.size() > 0 && m_Macros.back().Name == nullptr && m_Macros.back().Definition == nullptr);
78  m_Macros.pop_back();
79  m_bIsFinalized = false;
80  }
81  }
82 
83  void Clear()
84  {
85  m_Macros.clear();
86  m_DefinitionsPool.clear();
87  m_bIsFinalized = false;
88  }
89 
90  operator const ShaderMacro* ()
91  {
92  if (m_Macros.size() > 0 && !m_bIsFinalized)
93  Finalize();
94  return m_Macros.size() ? m_Macros.data() : nullptr;
95  }
96 
97 private:
98 
99  std::vector< ShaderMacro > m_Macros;
100  std::set< std::string > m_DefinitionsPool;
101  bool m_bIsFinalized = false;
102 };
103 
104 template<>
105 inline void ShaderMacroHelper::AddShaderMacro( const Diligent::Char* Name, const Diligent::Char* Definition )
106 {
107  Reopen();
108  auto *PooledDefinition = m_DefinitionsPool.insert(Definition).first->c_str();
109  m_Macros.emplace_back(Name, PooledDefinition);
110 }
111 
112 template<>
113 inline void ShaderMacroHelper::AddShaderMacro( const Diligent::Char* Name, bool Definition )
114 {
115  AddShaderMacro( Name, Definition ? "1" : "0");
116 }
117 
118 template<>
119 inline void ShaderMacroHelper::AddShaderMacro( const Diligent::Char* Name, float Definition )
120 {
121  std::ostringstream ss;
122 
123  // Make sure that when floating point represents integer, it is still
124  // written as float: 1024.0, but not 1024. This is essnetial to
125  // avoid type conversion issues in GLES.
126  if( Definition == static_cast<float>(static_cast<int>(Definition)) )
127  ss << std::fixed << std::setprecision( 1 );
128 
129  ss << Definition;
130  AddShaderMacro<const Diligent::Char*>( Name, ss.str().c_str() );
131 }
132 
133 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
+ + + + + diff --git a/doc/html/_shader_resource_binding_8h_source.html b/doc/html/_shader_resource_binding_8h_source.html new file mode 100644 index 00000000..4c37dad3 --- /dev/null +++ b/doc/html/_shader_resource_binding_8h_source.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/ShaderResourceBinding.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderResourceBinding.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Object.h"
30 
31 namespace Diligent
32 {
33 
34 // {061F8774-9A09-48E8-8411-B5BD20560104}
35 static constexpr INTERFACE_ID IID_ShaderResourceBinding =
36 { 0x61f8774, 0x9a09, 0x48e8, { 0x84, 0x11, 0xb5, 0xbd, 0x20, 0x56, 0x1, 0x4 } };
37 
38 
40 class IShaderResourceBinding : public IObject
41 {
42 public:
44  virtual void QueryInterface( const INTERFACE_ID &IID, IObject **ppInterface ) = 0;
45 
47 
50  virtual class IPipelineState* GetPipelineState() = 0;
51 
53 
58  virtual void BindResources(Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags) = 0;
59 
61 
65  virtual IShaderVariable *GetVariable(SHADER_TYPE ShaderType, const char *Name) = 0;
66 };
67 
68 }
Shader resource variable.
Definition: Shader.h:265
+
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual IShaderVariable * GetVariable(SHADER_TYPE ShaderType, const char *Name)=0
Returns variable.
+
virtual void BindResources(Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags)=0
Binds all resource using the resource mapping.
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
Shader resource binding interface.
Definition: ShaderResourceBinding.h:40
+
Definition: PipelineState.h:209
+
virtual void QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0
Queries the specific interface, see IObject::QueryInterface() for details.
+
virtual class IPipelineState * GetPipelineState()=0
Returns pointer to the referenced buffer object.
+
+ + + + + diff --git a/doc/html/_shader_resource_binding_base_8h_source.html b/doc/html/_shader_resource_binding_base_8h_source.html new file mode 100644 index 00000000..f4d0fb83 --- /dev/null +++ b/doc/html/_shader_resource_binding_base_8h_source.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/ShaderResourceBindingBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderResourceBindingBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "ShaderResourceBinding.h"
30 #include "ObjectBase.h"
31 #include "GraphicsTypes.h"
32 #include "RefCntAutoPtr.h"
33 
34 namespace Diligent
35 {
36 
38 
41 template<class BaseInterface>
42 class ShaderResourceBindingBase : public ObjectBase<BaseInterface>
43 {
44 public:
46 
51  ShaderResourceBindingBase( IReferenceCounters *pRefCounters, IPipelineState *pPSO, bool IsInternal = false ) :
52  TObjectBase( pRefCounters ),
53  m_pPSO( pPSO ),
54  m_spPSO( IsInternal ? nullptr : pPSO )
55  {}
56 
57  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_ShaderResourceBinding, TObjectBase )
58 
59 
60  virtual IPipelineState* GetPipelineState()override final
61  {
62  return m_pPSO;
63  }
64 
65 protected:
66 
71  IPipelineState *m_pPSO;
72 };
73 
74 }
virtual IPipelineState * GetPipelineState() override final
Implementation of IShaderResourceBinding::GetPipelineState().
Definition: ShaderResourceBindingBase.h:60
+
Template class implementing base functionality for an object.
Definition: ObjectBase.h:62
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
RefCntAutoPtr< IPipelineState > m_spPSO
Strong reference to PSO. We must use strong reference, because shader resource binding uses PSO&#39;s mem...
Definition: ShaderResourceBindingBase.h:70
+
ShaderResourceBindingBase(IReferenceCounters *pRefCounters, IPipelineState *pPSO, bool IsInternal=false)
Definition: ShaderResourceBindingBase.h:51
+
Template class implementing base functionality for a shader resource binding.
Definition: ShaderResourceBindingBase.h:42
+
Definition: PipelineState.h:209
+
Template class that implements reference counting.
Definition: RefCntAutoPtr.h:71
+
+ + + + + diff --git a/doc/html/_shader_resource_binding_d3_d11_8h_source.html b/doc/html/_shader_resource_binding_d3_d11_8h_source.html new file mode 100644 index 00000000..f9fad888 --- /dev/null +++ b/doc/html/_shader_resource_binding_d3_d11_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/interface/ShaderResourceBindingD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderResourceBindingD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "ShaderResourceBinding.h"
30 
31 namespace Diligent
32 {
33 
34 // {97A6D4AC-D4AF-4AA9-B46C-67417B89026A}
35 static constexpr INTERFACE_ID IID_ShaderResourceBindingD3D11 =
36 { 0x97a6d4ac, 0xd4af, 0x4aa9, { 0xb4, 0x6c, 0x67, 0x41, 0x7b, 0x89, 0x2, 0x6a } };
37 
40 {
41 public:
42 
43 };
44 
45 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Shader resource binding interface.
Definition: ShaderResourceBinding.h:40
+
Shader resource binding interface.
Definition: ShaderResourceBindingD3D11.h:39
+
+ + + + + diff --git a/doc/html/_shader_resource_binding_d3_d11_impl_8h_source.html b/doc/html/_shader_resource_binding_d3_d11_impl_8h_source.html new file mode 100644 index 00000000..57a39b57 --- /dev/null +++ b/doc/html/_shader_resource_binding_d3_d11_impl_8h_source.html @@ -0,0 +1,94 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/ShaderResourceBindingD3D11Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderResourceBindingD3D11Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "ShaderResourceBindingD3D11.h"
30 #include "RenderDeviceD3D11.h"
31 #include "ShaderResourceBindingBase.h"
32 #include "ShaderResourceCacheD3D11.h"
33 #include "ShaderResourceLayoutD3D11.h"
34 #include "STDAllocator.h"
35 
36 namespace Diligent
37 {
38 
39 class FixedBlockMemoryAllocator;
41 class ShaderResourceBindingD3D11Impl : public ShaderResourceBindingBase<IShaderResourceBindingD3D11>
42 {
43 public:
45  ShaderResourceBindingD3D11Impl(IReferenceCounters *pRefCounters, class PipelineStateD3D11Impl *pPSO, bool IsInternal);
47 
48  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final;
49 
50  virtual void BindResources(Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags)override final;
51 
52  virtual IShaderVariable *GetVariable(SHADER_TYPE ShaderType, const char *Name)override final;
53 
54  ShaderResourceCacheD3D11 &GetResourceCache(Uint32 Ind){VERIFY_EXPR(Ind < m_NumActiveShaders); return m_pBoundResourceCaches[Ind];}
55  ShaderResourceLayoutD3D11 &GetResourceLayout(Uint32 Ind){VERIFY_EXPR(Ind < m_NumActiveShaders); return m_pResourceLayouts[Ind];}
56 
57  void BindStaticShaderResources();
58  inline bool IsStaticResourcesBound(){return m_bIsStaticResourcesBound;}
59 
60  Uint32 GetNumActiveShaders()
61  {
62  return static_cast<Uint32>(m_NumActiveShaders);
63  }
64 
65  Int32 GetActiveShaderTypeIndex(Uint32 s){return m_ShaderTypeIndex[s];}
66 
67 private:
68  // The caches are indexed by the shader order in the PSO, not shader index
69  ShaderResourceCacheD3D11* m_pBoundResourceCaches = nullptr;
70  ShaderResourceLayoutD3D11* m_pResourceLayouts = nullptr;
71 
72  Int8 m_ShaderTypeIndex[6] = {};
73 
74  // Resource layout index in m_ResourceLayouts[] array for every shader stage
75  Int8 m_ResourceLayoutIndex[6];
76  Uint8 m_NumActiveShaders = 0;
77 
78  bool m_bIsStaticResourcesBound = false;
79 };
80 
81 }
Shader resource variable.
Definition: Shader.h:265
+
The class implements a cache that holds resources bound to a specific shader stage.
Definition: ShaderResourceCacheD3D11.h:46
+
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
virtual void BindResources(Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags) override final
Binds all resource using the resource mapping.
Definition: ShaderResourceBindingD3D11Impl.cpp:103
+
Implementation of the Diligent::IShaderResourceBindingD3D11 interface.
Definition: ShaderResourceBindingD3D11Impl.h:41
+
Template class implementing base functionality for a shader resource binding.
Definition: ShaderResourceBindingBase.h:42
+
Implementation of the Diligent::IPipelineStateD3D11 interface.
Definition: PipelineStateD3D11Impl.h:40
+
Diligent::ShaderResourceLayoutD3D11 class http://diligentgraphics.com/diligent-engine/architecture/d3...
Definition: ShaderResourceLayoutD3D11.h:49
+
virtual IShaderVariable * GetVariable(SHADER_TYPE ShaderType, const char *Name) override final
Returns variable.
Definition: ShaderResourceBindingD3D11Impl.cpp:146
+
+ + + + + diff --git a/doc/html/_shader_resource_binding_d3_d12_8h_source.html b/doc/html/_shader_resource_binding_d3_d12_8h_source.html new file mode 100644 index 00000000..c8ea9169 --- /dev/null +++ b/doc/html/_shader_resource_binding_d3_d12_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/interface/ShaderResourceBindingD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderResourceBindingD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "ShaderResourceBinding.h"
30 
31 namespace Diligent
32 {
33 
34 // {70DD5C7C-81FA-4D9A-942F-D1B91423FAAC}
35 static constexpr INTERFACE_ID IID_ShaderResourceBindingD3D12 =
36 { 0x70dd5c7c, 0x81fa, 0x4d9a, { 0x94, 0x2f, 0xd1, 0xb9, 0x14, 0x23, 0xfa, 0xac } };
37 
40 {
41 public:
42 
43 };
44 
45 }
Shader resource binding interface.
Definition: ShaderResourceBindingD3D12.h:39
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Shader resource binding interface.
Definition: ShaderResourceBinding.h:40
+
+ + + + + diff --git a/doc/html/_shader_resource_binding_d3_d12_impl_8h_source.html b/doc/html/_shader_resource_binding_d3_d12_impl_8h_source.html new file mode 100644 index 00000000..162e2196 --- /dev/null +++ b/doc/html/_shader_resource_binding_d3_d12_impl_8h_source.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/ShaderResourceBindingD3D12Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderResourceBindingD3D12Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "ShaderResourceBindingD3D12.h"
30 #include "RenderDeviceD3D12.h"
31 #include "ShaderResourceBindingBase.h"
32 #include "ShaderBase.h"
33 #include "ShaderResourceCacheD3D12.h"
34 #include "ShaderResourceLayoutD3D12.h"
35 
36 namespace Diligent
37 {
38 
39 class FixedBlockMemoryAllocator;
41 class ShaderResourceBindingD3D12Impl : public ShaderResourceBindingBase<IShaderResourceBindingD3D12>
42 {
43 public:
45  ShaderResourceBindingD3D12Impl(IReferenceCounters *pRefCounters, class PipelineStateD3D12Impl *pPSO, bool IsPSOInternal);
47 
48  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override;
49 
50  virtual void BindResources(Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags)override;
51 
52  virtual IShaderVariable *GetVariable(SHADER_TYPE ShaderType, const char *Name)override;
53 
54  ShaderResourceLayoutD3D12& GetResourceLayout(SHADER_TYPE ResType)
55  {
56  auto ShaderInd = GetShaderTypeIndex(ResType);
57  auto ResLayoutInd = m_ResourceLayoutIndex[ShaderInd];
58  VERIFY(ResLayoutInd >= 0, "Shader resource layout is not initialized");
59  VERIFY_EXPR(ResLayoutInd < (Int32)m_NumShaders);
60  return m_pResourceLayouts[ResLayoutInd];
61  }
62  ShaderResourceCacheD3D12& GetResourceCache(){return m_ShaderResourceCache;}
63 
64 #ifdef VERIFY_SHADER_BINDINGS
65  void dbgVerifyResourceBindings(const PipelineStateD3D12Impl *pPSO);
66 #endif
67 
68  bool StaticResourcesInitialized()const{return m_bStaticResourcesInitialized;}
69  void InitializeStaticResources(const PipelineStateD3D12Impl *pPSO);
70 
71 private:
72 
73  ShaderResourceCacheD3D12 m_ShaderResourceCache;
74  ShaderResourceLayoutD3D12* m_pResourceLayouts = nullptr;
75  // Resource layout index in m_ResourceLayouts[] array for every shader stage
76  Int8 m_ResourceLayoutIndex[6] = {-1, -1, -1, -1, -1, -1};
77  bool m_bStaticResourcesInitialized = false;
78  Uint32 m_NumShaders = 0;
79 };
80 
81 }
virtual void BindResources(Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags) override
Binds all resource using the resource mapping.
Definition: ShaderResourceBindingD3D12Impl.cpp:73
+
Implementation of the Diligent::IShaderResourceBindingD3D12 interface.
Definition: ShaderResourceBindingD3D12Impl.h:41
+
Shader resource variable.
Definition: Shader.h:265
+
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
Implementation of the Diligent::IRenderDeviceD3D12 interface.
Definition: PipelineStateD3D12Impl.h:42
+
Template class implementing base functionality for a shader resource binding.
Definition: ShaderResourceBindingBase.h:42
+
virtual IShaderVariable * GetVariable(SHADER_TYPE ShaderType, const char *Name) override
Returns variable.
Definition: ShaderResourceBindingD3D12Impl.cpp:88
+
Diligent::ShaderResourceLayoutD3D12 class.
Definition: ShaderResourceLayoutD3D12.h:125
+
+ + + + + diff --git a/doc/html/_shader_resource_binding_g_l_8h_source.html b/doc/html/_shader_resource_binding_g_l_8h_source.html new file mode 100644 index 00000000..ed5e07fb --- /dev/null +++ b/doc/html/_shader_resource_binding_g_l_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/interface/ShaderResourceBindingGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderResourceBindingGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "ShaderResourceBinding.h"
30 
31 namespace Diligent
32 {
33 
34 // {41DB0329-B6D2-4470-9A58-D44CF4695FC6}
35 static constexpr INTERFACE_ID IID_ShaderResourceBindingGL =
36 { 0x41db0329, 0xb6d2, 0x4470, { 0x9a, 0x58, 0xd4, 0x4c, 0xf4, 0x69, 0x5f, 0xc6 } };
37 
39 
41 {
42 public:
43 
44 };
45 
46 }
Shader resource binding interface.
Definition: ShaderResourceBindingGL.h:40
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Shader resource binding interface.
Definition: ShaderResourceBinding.h:40
+
+ + + + + diff --git a/doc/html/_shader_resource_binding_g_l_impl_8h_source.html b/doc/html/_shader_resource_binding_g_l_impl_8h_source.html new file mode 100644 index 00000000..b9b3d1da --- /dev/null +++ b/doc/html/_shader_resource_binding_g_l_impl_8h_source.html @@ -0,0 +1,94 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/ShaderResourceBindingGLImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderResourceBindingGLImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "ShaderResourceBindingGL.h"
30 #include "RenderDeviceGL.h"
31 #include "ShaderResourceBindingBase.h"
32 #include "GLProgramResources.h"
33 #include "ShaderBase.h"
34 
35 namespace Diligent
36 {
37 
38 class FixedBlockMemoryAllocator;
40 class ShaderResourceBindingGLImpl : public ShaderResourceBindingBase<IShaderResourceBindingGL>
41 {
42 public:
44  ShaderResourceBindingGLImpl(IReferenceCounters *pRefCounters, class PipelineStateGLImpl *pPSO);
46 
47  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override;
48 
49  virtual void BindResources(Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags)override;
50 
51  virtual IShaderVariable *GetVariable(SHADER_TYPE ShaderType, const char *Name)override;
52 
53  GLProgramResources &GetProgramResources(SHADER_TYPE ShaderType, PipelineStateGLImpl *pdbgPSO);
54 
55 private:
56  GLProgramResources m_DynamicProgResources[6];
57  DummyShaderVariable m_DummyShaderVar;
59 };
60 
61 }
virtual IShaderVariable * GetVariable(SHADER_TYPE ShaderType, const char *Name) override
Returns variable.
Definition: ShaderResourceBindingGLImpl.cpp:85
+
Shader resource variable.
Definition: Shader.h:265
+
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Implementation of the Diligent::IShaderResourceBindingGL interface.
Definition: ShaderResourceBindingGLImpl.h:40
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
virtual void BindResources(Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags) override
Binds all resource using the resource mapping.
Definition: ShaderResourceBindingGLImpl.cpp:69
+
Implementation of a dummy shader variable that silently ignores all operations.
Definition: ShaderBase.h:146
+
Implementation of the Diligent::IPipelineStateGL interface.
Definition: PipelineStateGLImpl.h:39
+
Template class implementing base functionality for a shader resource binding.
Definition: ShaderResourceBindingBase.h:42
+
Implementation of weak pointers.
Definition: RefCntAutoPtr.h:38
+
+ + + + + diff --git a/doc/html/_shader_resource_cache_d3_d11_8h_source.html b/doc/html/_shader_resource_cache_d3_d11_8h_source.html new file mode 100644 index 00000000..301aca8f --- /dev/null +++ b/doc/html/_shader_resource_cache_d3_d11_8h_source.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/ShaderResourceCacheD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderResourceCacheD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "TextureBaseD3D11.h"
30 #include "BufferD3D11Impl.h"
31 #include "SamplerD3D11Impl.h"
32 
33 namespace Diligent
34 {
35 
37 // All resources are stored in the continuous memory using the following layout:
38 //
39 // | CachedCB | ID3D11Buffer* || CachedResource | ID3D11ShaderResourceView* || CachedSampler | ID3D11SamplerState* || CachedResource | ID3D11UnorderedAccessView*||
40 // |---------------------------------------------------||--------------------------|---------------------------||------------------------------|-----------------------------||-------------------------|---------------------------||
41 // | 0 | 1 | ... | CBCount-1 | 0 | 1 | ...| CBCount-1 || 0 | 1 | ... | SRVCount-1 | 0 | 1 | ... | SRVCount-1 || 0 | 1 | ... | SamplerCount-1 | 0 | 1 | ...| SamplerCount-1 ||0 | 1 | ... | UAVCount-1 | 0 | 1 | ... | UAVCount-1 ||
42 // --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
43 //
44 //
45 // http://diligentgraphics.com/diligent-engine/architecture/d3d11/shader-resource-cache/
47 {
48 public:
50  {}
51 
53 
54 
56  ShaderResourceCacheD3D11& operator = (const ShaderResourceCacheD3D11&) = delete;
58  ShaderResourceCacheD3D11& operator = (ShaderResourceCacheD3D11&&) = delete;
59 
61  struct CachedCB
62  {
65  __forceinline void Set(RefCntAutoPtr<BufferD3D11Impl> &&_pBuff)
66  {
67  pBuff = std::move(_pBuff);
68  }
69  };
70 
73  {
76  __forceinline void Set(SamplerD3D11Impl *pSam)
77  {
78  pSampler = pSam;
79  }
80  };
81 
84  {
91  TextureBaseD3D11* pTexture;
92  BufferD3D11Impl* pBuffer;
93  // There is no need to keep strong reference to D3D11 resource as
94  // it is already kept by either pTexture or pBuffer
95  ID3D11Resource *pd3d11Resource;
96  CachedResource() : pTexture(nullptr), pBuffer(nullptr), pd3d11Resource(nullptr)
97  {}
98 
99  __forceinline void Set(RefCntAutoPtr<TextureViewD3D11Impl>&& pTexView)
100  {
101  pBuffer = nullptr;
102  // Avoid unnecessary virtual function calls
103  pTexture = pTexView ? ValidatedCast<TextureBaseD3D11>(pTexView->TextureViewD3D11Impl::GetTexture()) : nullptr;
104  pView.Attach(pTexView.Detach());
105  pd3d11Resource = pTexture ? pTexture->TextureBaseD3D11::GetD3D11Texture() : nullptr;
106  }
107 
108  __forceinline void Set(RefCntAutoPtr<BufferViewD3D11Impl>&& pBufView)
109  {
110  pTexture = nullptr;
111  // Avoid unnecessary virtual function calls
112  pBuffer = pBufView ? ValidatedCast<BufferD3D11Impl>(pBufView->BufferViewD3D11Impl::GetBuffer()) : nullptr;
113  pView.Attach(pBufView.Detach());
114  pd3d11Resource = pBuffer ? pBuffer->BufferD3D11Impl::GetD3D11Buffer() : nullptr;
115  }
116  };
117 
118  void Initialize(Int32 CBCount, Int32 SRVCount, Int32 SamplerCount, Int32 UAVCount, class IMemoryAllocator &MemAllocator);
119  void Destroy(class IMemoryAllocator &MemAllocator);
120 
121 
122  __forceinline void SetCB(Uint32 Slot, RefCntAutoPtr<BufferD3D11Impl> &&pBuffD3D11Impl)
123  {
124  auto *pd3d11Buff = pBuffD3D11Impl ? pBuffD3D11Impl->BufferD3D11Impl::GetD3D11Buffer() : nullptr;
125  SetD3D11ResourceInternal<CachedCB>(Slot, GetCBCount(), &ShaderResourceCacheD3D11::GetCBArrays, std::move(pBuffD3D11Impl), pd3d11Buff);
126  }
127 
128  __forceinline void SetTexSRV(Uint32 Slot, RefCntAutoPtr<TextureViewD3D11Impl>&& pTexView)
129  {
130  auto pd3d11SRV = pTexView ? static_cast<ID3D11ShaderResourceView*>(pTexView->TextureViewD3D11Impl::GetD3D11View()) : nullptr;
131  SetD3D11ResourceInternal<CachedResource>(Slot, GetSRVCount(), &ShaderResourceCacheD3D11::GetSRVArrays, std::move(pTexView), pd3d11SRV);
132  }
133 
134  __forceinline void SetBufSRV(Uint32 Slot, RefCntAutoPtr<BufferViewD3D11Impl> &&pBuffView)
135  {
136  auto pd3d11SRV = pBuffView ? static_cast<ID3D11ShaderResourceView*>(pBuffView->BufferViewD3D11Impl::GetD3D11View()) : nullptr;
137  SetD3D11ResourceInternal<CachedResource>(Slot, GetSRVCount(), &ShaderResourceCacheD3D11::GetSRVArrays, std::move(pBuffView), pd3d11SRV);
138  }
139 
140  __forceinline void SetTexUAV(Uint32 Slot, RefCntAutoPtr<TextureViewD3D11Impl>&& pTexView)
141  {
142  auto pd3d11UAV = pTexView ? static_cast<ID3D11UnorderedAccessView*>(pTexView->TextureViewD3D11Impl::GetD3D11View()) : nullptr;
143  SetD3D11ResourceInternal<CachedResource>(Slot, GetUAVCount(), &ShaderResourceCacheD3D11::GetUAVArrays, std::move(pTexView), pd3d11UAV);
144  }
145 
146  __forceinline void SetBufUAV(Uint32 Slot, RefCntAutoPtr<BufferViewD3D11Impl> &&pBuffView)
147  {
148  auto pd3d11UAV = pBuffView ? static_cast<ID3D11UnorderedAccessView*>(pBuffView->BufferViewD3D11Impl::GetD3D11View()) : nullptr;
149  SetD3D11ResourceInternal<CachedResource>(Slot, GetUAVCount(), &ShaderResourceCacheD3D11::GetUAVArrays, std::move(pBuffView), pd3d11UAV);
150  }
151 
152  __forceinline void SetSampler(Uint32 Slot, SamplerD3D11Impl *pSampler)
153  {
154  auto *pd3d11Sampler = pSampler ? pSampler->SamplerD3D11Impl::GetD3D11SamplerState() : nullptr;
155  SetD3D11ResourceInternal<CachedSampler>(Slot, GetSamplerCount(), &ShaderResourceCacheD3D11::GetSamplerArrays, pSampler, pd3d11Sampler);
156  }
157 
158 
159 
160  __forceinline CachedCB& GetCB(Uint32 Slot)
161  {
162  VERIFY(Slot < GetCBCount(), "CB slot is out of range" );
163  ShaderResourceCacheD3D11::CachedCB *CBs;
164  ID3D11Buffer **pd3d11CBs;
165  GetCBArrays(CBs, pd3d11CBs);
166  return CBs[Slot];
167  }
168 
169  __forceinline CachedResource& GetSRV(Uint32 Slot)
170  {
171  VERIFY(Slot < GetSRVCount(), "SRV slot is out of range" );
172  ShaderResourceCacheD3D11::CachedResource *SRVResources;
173  ID3D11ShaderResourceView **pd3d11SRVs;
174  GetSRVArrays(SRVResources, pd3d11SRVs);
175  return SRVResources[Slot];
176  }
177 
178  __forceinline CachedResource& GetUAV(Uint32 Slot)
179  {
180  VERIFY(Slot < GetUAVCount(), "UAV slot is out of range" );
181  ShaderResourceCacheD3D11::CachedResource *UAVResources;
182  ID3D11UnorderedAccessView **pd3d11UAVs;
183  GetUAVArrays(UAVResources, pd3d11UAVs);
184  return UAVResources[Slot];
185  }
186 
187  __forceinline CachedSampler& GetSampler(Uint32 Slot)
188  {
189  VERIFY(Slot < GetSamplerCount(), "Sampler slot is out of range" );
190  ShaderResourceCacheD3D11::CachedSampler *Samplers;
191  ID3D11SamplerState **pd3d11Samplers;
192  GetSamplerArrays(Samplers, pd3d11Samplers);
193  return Samplers[Slot];
194  }
195 
196 
197  __forceinline bool IsCBBound(Uint32 Slot)const
198  {
199  CachedCB* CBs = nullptr;
200  ID3D11Buffer** d3d11CBs = nullptr;
201  const_cast<ShaderResourceCacheD3D11*>(this)->GetCBArrays(CBs, d3d11CBs);
202  if( Slot < GetCBCount() && d3d11CBs[Slot] != nullptr )
203  {
204  VERIFY(CBs[Slot].pBuff != nullptr, "No relevant buffer resource");
205  return true;
206  }
207  return false;
208  }
209 
210  __forceinline bool IsSRVBound(Uint32 Slot, bool dbgIsTextureView)const
211  {
212  CachedResource* SRVResources = nullptr;
213  ID3D11ShaderResourceView** d3d11SRVs = nullptr;
214  const_cast<ShaderResourceCacheD3D11*>(this)->GetSRVArrays(SRVResources, d3d11SRVs);
215  if( Slot < GetSRVCount() && d3d11SRVs[Slot] != nullptr )
216  {
217  VERIFY( ( dbgIsTextureView && SRVResources[Slot].pTexture != nullptr) ||
218  (!dbgIsTextureView && SRVResources[Slot].pBuffer != nullptr), "No relevant resource");
219  return true;
220  }
221  return false;
222  }
223 
224  __forceinline bool IsUAVBound(Uint32 Slot, bool dbgIsTextureView)const
225  {
226  CachedResource* UAVResources = nullptr;
227  ID3D11UnorderedAccessView** d3d11UAVs = nullptr;
228  const_cast<ShaderResourceCacheD3D11*>(this)->GetUAVArrays(UAVResources, d3d11UAVs);
229  if( Slot < GetUAVCount() && d3d11UAVs[Slot] != nullptr )
230  {
231  VERIFY( ( dbgIsTextureView && UAVResources[Slot].pTexture != nullptr) ||
232  (!dbgIsTextureView && UAVResources[Slot].pBuffer != nullptr), "No relevant resource");
233  return true;
234  }
235  return false;
236  }
237 
238  __forceinline bool IsSamplerBound(Uint32 Slot)const
239  {
240  CachedSampler* Samplers = nullptr;
241  ID3D11SamplerState** d3d11Samplers = nullptr;
242  const_cast<ShaderResourceCacheD3D11*>(this)->GetSamplerArrays(Samplers, d3d11Samplers);
243  if( Slot < GetSamplerCount() && d3d11Samplers[Slot] != nullptr )
244  {
245  VERIFY(Samplers[Slot].pSampler != nullptr, "No relevant sampler");
246  return true;
247  }
248  return false;
249  }
250 
251  void dbgVerifyCacheConsistency();
252 
253 
254  static __forceinline Uint32 PackResourceCounts(Uint32 CBCount, Uint32 SRVCount, Uint32 SamplerCount, Uint32 UAVCount)
255  {
256  VERIFY_EXPR(CBCount <= D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT );
257  VERIFY_EXPR(SRVCount <= D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT);
258  VERIFY_EXPR(SamplerCount <= D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT);
259  VERIFY_EXPR(UAVCount <= D3D11_PS_CS_UAV_REGISTER_COUNT);
260  return (CBCount & 0xFF) | ((SRVCount & 0xFF) << 8) | ((SamplerCount & 0xFF) << 16) | ((UAVCount & 0xFF) << 24);
261  }
262 
263  static __forceinline Uint32 UnpackCBCount (Uint32 PackedCounts) {return (PackedCounts >> 0) & 0xFF; }
264  static __forceinline Uint32 UnpackSRVCount (Uint32 PackedCounts) {return (PackedCounts >> 8) & 0xFF; }
265  static __forceinline Uint32 UnpackSamplerCount (Uint32 PackedCounts) {return (PackedCounts >> 16) & 0xFF; }
266  static __forceinline Uint32 UnpackUAVCount (Uint32 PackedCounts) {return (PackedCounts >> 24) & 0xFF; }
267 
268  __forceinline Uint32 GetCBCount() const{ return UnpackCBCount (m_ResourceCounts);}
269  __forceinline Uint32 GetSRVCount() const{ return UnpackSRVCount (m_ResourceCounts);}
270  __forceinline Uint32 GetSamplerCount()const{ return UnpackSamplerCount(m_ResourceCounts);}
271  __forceinline Uint32 GetUAVCount() const{ return UnpackUAVCount (m_ResourceCounts);}
272  __forceinline Uint32 GetPackedCounts()const{ return m_ResourceCounts;}
273 
274  __forceinline void GetResourceArrays(CachedCB* &CBs, ID3D11Buffer** &pd3d11CBs,
275  CachedResource* &SRVResources, ID3D11ShaderResourceView** &d3d11SRVs,
276  CachedSampler* &Samplers, ID3D11SamplerState** &pd3d11Samplers,
277  CachedResource* &UAVResources, ID3D11UnorderedAccessView** &pd3d11UAVs)
278  {
279  VERIFY_EXPR(IsInitialized());
280  CBs = reinterpret_cast<CachedCB*>( m_pResourceData );
281  pd3d11CBs = reinterpret_cast<ID3D11Buffer**>( CBs + GetCBCount() );
282  SRVResources = reinterpret_cast<CachedResource*>( pd3d11CBs + GetCBCount() );
283  d3d11SRVs = reinterpret_cast<ID3D11ShaderResourceView**>( SRVResources + GetSRVCount() );
284  Samplers = reinterpret_cast<CachedSampler*>( d3d11SRVs + GetSRVCount() );
285  pd3d11Samplers = reinterpret_cast<ID3D11SamplerState**>( Samplers + GetSamplerCount() );
286  UAVResources = reinterpret_cast<CachedResource*>( pd3d11Samplers + GetSamplerCount() );
287  pd3d11UAVs = reinterpret_cast<ID3D11UnorderedAccessView**>( UAVResources + GetUAVCount() );
288  }
289 
290  __forceinline void GetCBArrays(CachedCB* &CBs, ID3D11Buffer** &pd3d11CBs)
291  {
292  CBs = reinterpret_cast<CachedCB*>( m_pResourceData );
293  pd3d11CBs = reinterpret_cast<ID3D11Buffer**>( CBs + GetCBCount() );
294  }
295 
296  __forceinline void GetSRVArrays(CachedResource* &SRVResources, ID3D11ShaderResourceView** &d3d11SRVs)
297  {
298  SRVResources = reinterpret_cast<CachedResource*>( m_pResourceData + (sizeof(CachedCB) + sizeof(ID3D11Buffer*)) * GetCBCount() );
299  d3d11SRVs = reinterpret_cast<ID3D11ShaderResourceView**>( SRVResources + GetSRVCount() );
300  }
301 
302  __forceinline void GetSamplerArrays(CachedSampler* &Samplers, ID3D11SamplerState** &pd3d11Samplers)
303  {
304  Samplers = reinterpret_cast<CachedSampler*>( m_pResourceData +
305  (sizeof(CachedCB) + sizeof(ID3D11Buffer*)) * GetCBCount() +
306  (sizeof(CachedResource) + sizeof(ID3D11ShaderResourceView*)) * GetSRVCount() );
307  pd3d11Samplers = reinterpret_cast<ID3D11SamplerState**>( Samplers + GetSamplerCount() );
308  }
309 
310  __forceinline void GetUAVArrays(CachedResource* &UAVResources, ID3D11UnorderedAccessView** &pd3d11UAVs)
311  {
312  UAVResources = reinterpret_cast<CachedResource*>( m_pResourceData +
313  (sizeof(CachedCB) + sizeof(ID3D11Buffer*)) * GetCBCount() +
314  (sizeof(CachedResource) + sizeof(ID3D11ShaderResourceView*)) * GetSRVCount() +
315  (sizeof(CachedSampler) + sizeof(ID3D11SamplerState*)) * GetSamplerCount() );
316  pd3d11UAVs = reinterpret_cast<ID3D11UnorderedAccessView**>( UAVResources + GetUAVCount() );
317  }
318 
319  __forceinline bool IsInitialized()const{return m_ResourceCounts != InvalidResourceCounts;}
320 
321 private:
322 
323  template<typename TCachedResourceType, typename TGetResourceArraysFunc, typename TSrcResourceType, typename TD3D11ResourceType>
324  __forceinline void SetD3D11ResourceInternal(Uint32 Slot, Uint32 Size,
325  TGetResourceArraysFunc GetArrays,
326  TSrcResourceType &&pResource,
327  TD3D11ResourceType *pd3d11Resource)
328  {
329  VERIFY(Slot < Size, "Resource cache is not big enough" );
330  VERIFY(pResource != nullptr && pd3d11Resource != nullptr || pResource == nullptr && pd3d11Resource == nullptr,
331  "Resource and D3D11 resource must be set/unset atomically");
332  TCachedResourceType* Resources;
333  TD3D11ResourceType** d3d11ResArr;
334  (this->*GetArrays)(Resources, d3d11ResArr);
335  Resources[Slot].Set(std::forward<TSrcResourceType>(pResource));
336  d3d11ResArr[Slot] = pd3d11Resource;
337  }
338 
339  static constexpr Uint32 InvalidResourceCounts = 0xFFFFFFFF;
340  // Resource limits in D3D11:
341  // Max CB count: 14
342  // Max SRV count: 128
343  // Max Sampler count: 16
344  // Max UAV count: 8
345  Uint32 m_ResourceCounts = InvalidResourceCounts; // CBCount == (m_ResourceCounts >> 0) & 0xFF
346  // SRVCount == (m_ResourceCounts >> 8) & 0xFF
347  // SamplerCount == (m_ResourceCounts >> 16) & 0xFF
348  // UAVCount == (m_ResourceCounts >> 24) & 0xFF
349  Uint8 *m_pResourceData = nullptr;
350 
351 #ifdef _DEBUG
352  IMemoryAllocator *m_pdbgMemoryAllocator = nullptr;
353 #endif
354 };
355 
356 }
Base implementation of the Diligent::ITextureD3D11 interface.
Definition: TextureBaseD3D11.h:50
+
The class implements a cache that holds resources bound to a specific shader stage.
Definition: ShaderResourceCacheD3D11.h:46
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
RefCntAutoPtr< class SamplerD3D11Impl > pSampler
Strong reference to the sampler.
Definition: ShaderResourceCacheD3D11.h:75
+
Describes resources associated with the cached SRV or UAV.
Definition: ShaderResourceCacheD3D11.h:83
+
Describes resources associated with the cached constant buffer.
Definition: ShaderResourceCacheD3D11.h:61
+
Implementation of the Diligent::ISamplerD3D11 interface.
Definition: SamplerD3D11Impl.h:38
+
RefCntAutoPtr< IDeviceObject > pView
Wee keep strong reference to the view instead of the reference to the texture or buffer because this ...
Definition: ShaderResourceCacheD3D11.h:90
+
Template class that implements reference counting.
Definition: RefCntAutoPtr.h:71
+
RefCntAutoPtr< BufferD3D11Impl > pBuff
Strong reference to the buffer.
Definition: ShaderResourceCacheD3D11.h:64
+
Describes resources associated with the cached sampler.
Definition: ShaderResourceCacheD3D11.h:72
+
Implementation of the Diligent::IBufferD3D11 interface.
Definition: BufferD3D11Impl.h:51
+
+ + + + + diff --git a/doc/html/_shader_resource_cache_d3_d12_8h_source.html b/doc/html/_shader_resource_cache_d3_d12_8h_source.html new file mode 100644 index 00000000..828b4690 --- /dev/null +++ b/doc/html/_shader_resource_cache_d3_d12_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/ShaderResourceCacheD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderResourceCacheD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 // http://diligentgraphics.com/diligent-engine/architecture/d3d12/shader-resource-cache/
30 
31 // Shader resource cache stores D3D12 resources in a continuous chunk of memory:
32 //
33 //
34 // __________________________________________________________
35 // m_pMemory | m_pResources, m_NumResources |
36 // | | |
37 // V | V
38 // | RootTable[0] | .... | RootTable[Nrt-1] | Res[0] | ... | Res[n-1] | .... | Res[0] | ... | Res[m-1] |
39 // | A \
40 // | | \
41 // |________________________________________________| \RefCntAutoPtr
42 // m_pResources, m_NumResources \_________
43 // | Object |
44 // ---------
45 //
46 // Nrt = m_NumTables
47 //
48 //
49 // The cache is also assigned decriptor heap space to store shader visible descriptor handles (for non-dynamic resources).
50 //
51 //
52 // DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV
53 // | DescrptHndl[0] ... DescrptHndl[n-1] | DescrptHndl[0] ... DescrptHndl[m-1] |
54 // A A
55 // | |
56 // | TableStartOffset | TableStartOffset
57 // | |
58 // | RootTable[0] | RootTable[1] | RootTable[2] | .... | RootTable[Nrt] |
59 // | |
60 // | TableStartOffset | InvalidDescriptorOffset
61 // | |
62 // V V
63 // | DescrptHndl[0] ... DescrptHndl[n-1] | X
64 // DESCRIPTOR_HEAP_TYPE_SAMPLER
65 //
66 //
67 //
68 // The allocation is inexed by the offset from the beginning of the root table
69 // Each root table is assigned the space to store exactly m_NumResources resources
70 // Dynamic resources are not assigned space in the descriptor heap allocation.
71 //
72 //
73 //
74 // | RootTable[i] | Res[0] ... Res[n-1] |
75 // \
76 // TableStartOffset\____
77 // \
78 // V
79 // ..... | DescrptHndl[0] ... DescrptHndl[n-1] | ....
80 //
81 
82 #include "DescriptorHeap.h"
83 
84 namespace Diligent
85 {
86 
87 enum class CachedResourceType : Int32
88 {
89  Unknown = -1,
90  CBV = 0,
91  TexSRV,
92  BufSRV,
93  TexUAV,
94  BufUAV,
95  Sampler,
96  NumTypes
97 };
98 
99 class ShaderResourceCacheD3D12
100 {
101 public:
102  // This enum is used for debug purposes only
103  enum DbgCacheContentType
104  {
105  StaticShaderResources,
106  SRBResources
107  };
108 
109  ShaderResourceCacheD3D12(DbgCacheContentType dbgContentType)
110 #ifdef _DEBUG
111  : m_DbgContentType(dbgContentType)
112 #endif
113  {
114  }
115 
116  ~ShaderResourceCacheD3D12();
117 
118  void Initialize(IMemoryAllocator &MemAllocator, Uint32 NumTables, Uint32 TableSizes[]);
119 
120  static constexpr Uint32 InvalidDescriptorOffset = static_cast<Uint32>(-1);
121 
122  //http://diligentgraphics.com/diligent-engine/architecture/d3d12/shader-resource-cache#Cache-Structure
123  struct Resource
124  {
125  CachedResourceType Type = CachedResourceType::Unknown;
126  // CPU descriptor handle of a cached resource in CPU-only descriptor heap
127  // Note that for dynamic resources, this is the only available CPU descriptor handle
128  D3D12_CPU_DESCRIPTOR_HANDLE CPUDescriptorHandle = {0};
129  RefCntAutoPtr<IDeviceObject> pObject;
130  };
131 
132  class RootTable
133  {
134  public:
135  RootTable(Uint32 NumResources, Resource *pResources) :
136  m_NumResources(NumResources),
137  m_pResources(pResources)
138  {}
139 
140  inline Resource& GetResource(Uint32 OffsetFromTableStart,
141  const D3D12_DESCRIPTOR_HEAP_TYPE dbgDescriptorHeapType,
142  const SHADER_TYPE dbgRefShaderType)
143  {
144  VERIFY(m_dbgHeapType == dbgDescriptorHeapType, "Incosistent descriptor heap type" );
145  VERIFY(m_dbgShaderType == dbgRefShaderType, "Incosistent shader type" );
146 
147  VERIFY(OffsetFromTableStart < m_NumResources, "Root table at index is not large enough to store descriptor at offset ", OffsetFromTableStart );
148  return m_pResources[OffsetFromTableStart];
149  }
150 
151  inline Uint32 GetSize()const{return m_NumResources; }
152 
153  // Offset from the start of the descriptor heap allocation to the start of the table
154  Uint32 m_TableStartOffset = InvalidDescriptorOffset;
155 
156 #ifdef _DEBUG
157  void SetDebugAttribs(Uint32 MaxOffset,
158  const D3D12_DESCRIPTOR_HEAP_TYPE dbgDescriptorHeapType,
159  const SHADER_TYPE dbgRefShaderType)
160  {
161  VERIFY_EXPR(m_NumResources == MaxOffset);
162  m_dbgHeapType = dbgDescriptorHeapType;
163  m_dbgShaderType = dbgRefShaderType;
164  }
165 
166  D3D12_DESCRIPTOR_HEAP_TYPE DbgGetHeapType()const{return m_dbgHeapType;}
167 #endif
168 
169  const Uint32 m_NumResources = 0;
170  private:
171 
172 #ifdef _DEBUG
173  D3D12_DESCRIPTOR_HEAP_TYPE m_dbgHeapType = D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES;
174  SHADER_TYPE m_dbgShaderType = SHADER_TYPE_UNKNOWN;
175 #endif
176 
177  Resource* const m_pResources = nullptr;
178  };
179 
180  inline RootTable& GetRootTable(Uint32 RootIndex)
181  {
182  VERIFY_EXPR(RootIndex < m_NumTables);
183  return reinterpret_cast<RootTable*>(m_pMemory)[RootIndex];
184  }
185 
186  inline Uint32 GetNumRootTables()const{return m_NumTables; }
187 
188  void SetDescriptorHeapSpace(DescriptorHeapAllocation &&CbcSrvUavHeapSpace, DescriptorHeapAllocation &&SamplerHeapSpace)
189  {
190  VERIFY(m_SamplerHeapSpace.GetCpuHandle().ptr == 0 && m_CbvSrvUavHeapSpace.GetCpuHandle().ptr == 0, "Space has already been allocated in GPU descriptor heaps");
191 #ifdef _DEBUG
192  Uint32 NumSamplerDescriptors = 0, NumSrvCbvUavDescriptors = 0;
193  for (Uint32 rt = 0; rt < m_NumTables; ++rt)
194  {
195  auto &Tbl = GetRootTable(rt);
196  if(Tbl.m_TableStartOffset != InvalidDescriptorOffset)
197  {
198  if(Tbl.DbgGetHeapType() == D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV)
199  {
200  VERIFY(Tbl.m_TableStartOffset == NumSrvCbvUavDescriptors, "Descriptor space allocation is not continuous");
201  NumSrvCbvUavDescriptors = std::max(NumSrvCbvUavDescriptors, Tbl.m_TableStartOffset + Tbl.GetSize());
202  }
203  else
204  {
205  VERIFY(Tbl.m_TableStartOffset == NumSamplerDescriptors, "Descriptor space allocation is not continuous");
206  NumSamplerDescriptors = std::max(NumSamplerDescriptors, Tbl.m_TableStartOffset + Tbl.GetSize());
207  }
208  }
209  }
210  VERIFY(NumSrvCbvUavDescriptors == CbcSrvUavHeapSpace.GetNumHandles() || NumSrvCbvUavDescriptors == 0 && CbcSrvUavHeapSpace.GetCpuHandle(0).ptr == 0, "Unexpected descriptor heap allocation size" );
211  VERIFY(NumSamplerDescriptors == SamplerHeapSpace.GetNumHandles() || NumSamplerDescriptors == 0 && SamplerHeapSpace.GetCpuHandle(0).ptr == 0, "Unexpected descriptor heap allocation size" );
212 #endif
213 
214  m_CbvSrvUavHeapSpace = std::move(CbcSrvUavHeapSpace);
215  m_SamplerHeapSpace = std::move(SamplerHeapSpace);
216  }
217 
218  ID3D12DescriptorHeap* GetSrvCbvUavDescriptorHeap(){return m_CbvSrvUavHeapSpace.GetDescriptorHeap();}
219  ID3D12DescriptorHeap* GetSamplerDescriptorHeap() {return m_SamplerHeapSpace.GetDescriptorHeap();}
220 
221  // Returns CPU descriptor handle of a shader visible descriptor heap allocation
222  template<D3D12_DESCRIPTOR_HEAP_TYPE HeapType>
223  D3D12_CPU_DESCRIPTOR_HANDLE GetShaderVisibleTableCPUDescriptorHandle(Uint32 RootParamInd, Uint32 OffsetFromTableStart = 0)
224  {
225  auto &RootParam = GetRootTable(RootParamInd);
226  VERIFY(HeapType == RootParam.DbgGetHeapType(), "Invalid descriptor heap type");
227 
228  D3D12_CPU_DESCRIPTOR_HANDLE CPUDescriptorHandle = {0};
229  // Descriptor heap allocation is not assigned for dynamic resources or
230  // in a special case when resource cache is used to store static
231  // variable assignments for a shader. It is also not assigned to root views
232  if( RootParam.m_TableStartOffset != InvalidDescriptorOffset )
233  {
234  VERIFY(RootParam.m_TableStartOffset + OffsetFromTableStart < RootParam.m_NumResources, "Offset is out of range");
235  if( HeapType == D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER )
236  {
237  VERIFY_EXPR(!m_SamplerHeapSpace.IsNull());
238  CPUDescriptorHandle = m_SamplerHeapSpace.GetCpuHandle(RootParam.m_TableStartOffset + OffsetFromTableStart);
239  }
240  else if( HeapType == D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV )
241  {
242  VERIFY_EXPR(!m_CbvSrvUavHeapSpace.IsNull());
243  CPUDescriptorHandle = m_CbvSrvUavHeapSpace.GetCpuHandle(RootParam.m_TableStartOffset + OffsetFromTableStart);
244  }
245  else
246  {
247  UNEXPECTED("Unexpected descriptor heap type");
248  }
249  }
250 
251  return CPUDescriptorHandle;
252  }
253 
254  // Returns GPU descriptor handle of a shader visible descriptor table
255  template<D3D12_DESCRIPTOR_HEAP_TYPE HeapType>
256  D3D12_GPU_DESCRIPTOR_HANDLE GetShaderVisibleTableGPUDescriptorHandle(Uint32 RootParamInd, Uint32 OffsetFromTableStart = 0)
257  {
258  auto &RootParam = GetRootTable(RootParamInd);
259  VERIFY(RootParam.m_TableStartOffset != InvalidDescriptorOffset, "GPU descriptor handle must never be requested for dynamic resources");
260  VERIFY(RootParam.m_TableStartOffset + OffsetFromTableStart < RootParam.m_NumResources, "Offset is out of range");
261 
262  D3D12_GPU_DESCRIPTOR_HANDLE GPUDescriptorHandle = {0};
263  VERIFY( HeapType == RootParam.DbgGetHeapType(), "Invalid descriptor heap type");
264  if( HeapType == D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER )
265  {
266  VERIFY_EXPR(!m_SamplerHeapSpace.IsNull());
267  GPUDescriptorHandle = m_SamplerHeapSpace.GetGpuHandle(RootParam.m_TableStartOffset + OffsetFromTableStart);
268  }
269  else if( HeapType == D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV )
270  {
271  VERIFY_EXPR(!m_CbvSrvUavHeapSpace.IsNull());
272  GPUDescriptorHandle = m_CbvSrvUavHeapSpace.GetGpuHandle(RootParam.m_TableStartOffset + OffsetFromTableStart);
273  }
274  else
275  {
276  UNEXPECTED("Unexpected descriptor heap type");
277  }
278 
279  return GPUDescriptorHandle;
280  }
281 
282 #ifdef _DEBUG
283  // Only for debug purposes: indicates what types of resources are stored in the cache
284  DbgCacheContentType DbgGetContentType()const{return m_DbgContentType;}
285 #endif
286 
287 private:
288  ShaderResourceCacheD3D12(const ShaderResourceCacheD3D12&) = delete;
289  ShaderResourceCacheD3D12(ShaderResourceCacheD3D12&&) = delete;
290  ShaderResourceCacheD3D12& operator = (const ShaderResourceCacheD3D12&) = delete;
291  ShaderResourceCacheD3D12& operator = (ShaderResourceCacheD3D12&&) = delete;
292 
293  // Allocation in a GPU-visible sampler descriptor heap
294  DescriptorHeapAllocation m_SamplerHeapSpace;
295 
296  // Allocation in a GPU-visible CBV/SRV/UAV descriptor heap
297  DescriptorHeapAllocation m_CbvSrvUavHeapSpace;
298 
299  IMemoryAllocator *m_pAllocator=nullptr;
300  void *m_pMemory = nullptr;
301  Uint32 m_NumTables = 0;
302 
303 #ifdef _DEBUG
304  // Only for debug purposes: indicates what types of resources are stored in the cache
305  const DbgCacheContentType m_DbgContentType;
306 #endif
307 };
308 
309 }
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Unknown shader type.
Definition: Shader.h:48
+
+ + + + + diff --git a/doc/html/_shader_resource_layout_d3_d11_8h_source.html b/doc/html/_shader_resource_layout_d3_d11_8h_source.html new file mode 100644 index 00000000..dcf400f0 --- /dev/null +++ b/doc/html/_shader_resource_layout_d3_d11_8h_source.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/ShaderResourceLayoutD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderResourceLayoutD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 // Set this define to 1 to use unordered_map to store shader variables.
30 // Note that sizeof(m_VariableHash)==128 (release mode, MS compiler, x64).
31 #define USE_VARIABLE_HASH_MAP 0
32 
33 
34 #include "ShaderResources.h"
35 #include "ShaderBase.h"
36 #include "ShaderResourceCacheD3D11.h"
37 #include "EngineD3D11Defines.h"
38 #include "STDAllocator.h"
39 #include "ShaderVariableD3DBase.h"
40 #include "ShaderResourcesD3D11.h"
41 
42 namespace Diligent
43 {
44 
45 class IMemoryAllocator;
46 
50 {
51 public:
52  ShaderResourceLayoutD3D11(IObject &Owner, IMemoryAllocator& ResLayoutDataAllocator);
54 
55  // No copies or moves
57  ShaderResourceLayoutD3D11& operator = (const ShaderResourceLayoutD3D11&) = delete;
60 
61  void Initialize(const std::shared_ptr<const ShaderResourcesD3D11>& pSrcResources,
62  const SHADER_VARIABLE_TYPE *VarTypes,
63  Uint32 NumVarTypes,
64  ShaderResourceCacheD3D11& ResourceCache,
65  IMemoryAllocator& ResCacheDataAllocator,
66  IMemoryAllocator& ResLayoutDataAllocator);
67 
68  void CopyResources(ShaderResourceCacheD3D11 &DstCache);
69 
70  using ShaderVariableD3D11Base = ShaderVariableD3DBase<ShaderResourceLayoutD3D11>;
71 
72  struct ConstBuffBindInfo : ShaderVariableD3D11Base
73  {
74  ConstBuffBindInfo( const D3DShaderResourceAttribs& ResourceAttribs,
75  ShaderResourceLayoutD3D11 &ParentResLayout ) :
76  ShaderVariableD3D11Base(ParentResLayout, ResourceAttribs)
77  {}
78  // Non-virtual function
79  __forceinline void BindResource(IDeviceObject *pObject, Uint32 ArrayIndex, const ShaderResourceLayoutD3D11 *dbgResLayout);
80  virtual void Set(IDeviceObject *pObject)override final{ BindResource(pObject, 0, nullptr); }
81 
82  virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements)override final
83  {
84  for(Uint32 elem=0; elem < NumElements; ++elem)
85  BindResource(ppObjects[elem], FirstElement+elem, nullptr);
86  }
87 
88  __forceinline bool IsBound(Uint32 ArrayIndex);
89  };
90 
91  struct TexAndSamplerBindInfo : ShaderVariableD3D11Base
92  {
93  TexAndSamplerBindInfo( const D3DShaderResourceAttribs& _TextureAttribs,
94  const D3DShaderResourceAttribs& _SamplerAttribs,
95  ShaderResourceLayoutD3D11 &ParentResLayout) :
96  ShaderVariableD3D11Base(ParentResLayout, _TextureAttribs),
97  SamplerAttribs(_SamplerAttribs)
98  {}
99 
100  // Non-virtual function
101  __forceinline void BindResource(IDeviceObject *pObject, Uint32 ArrayIndex, const ShaderResourceLayoutD3D11 *dbgResLayout);
102  virtual void Set(IDeviceObject *pObject)override final{ BindResource(pObject, 0, nullptr); }
103 
104  virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements)override final
105  {
106  for(Uint32 elem=0; elem < NumElements; ++elem)
107  BindResource(ppObjects[elem], FirstElement+elem, nullptr);
108  }
109 
110  __forceinline bool IsBound(Uint32 ArrayIndex);
111 
112  static const D3DShaderResourceAttribs InvalidSamplerAttribs;
113 
114  const D3DShaderResourceAttribs &SamplerAttribs;
115  };
116 
117  struct TexUAVBindInfo : ShaderVariableD3D11Base
118  {
119  TexUAVBindInfo( const D3DShaderResourceAttribs& ResourceAttribs,
120  ShaderResourceLayoutD3D11 &ParentResLayout ) :
121  ShaderVariableD3D11Base(ParentResLayout, ResourceAttribs)
122  {}
123 
124  // Provide non-virtual function
125  __forceinline void BindResource(IDeviceObject *pObject, Uint32 ArrayIndex, const ShaderResourceLayoutD3D11 *dbgResLayout);
126  virtual void Set(IDeviceObject *pObject)override final{ BindResource(pObject, 0, nullptr); }
127 
128  virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements)override final
129  {
130  for(Uint32 elem=0; elem < NumElements; ++elem)
131  BindResource(ppObjects[elem], FirstElement+elem, nullptr);
132  }
133 
134  __forceinline bool IsBound(Uint32 ArrayIndex);
135  };
136 
137  struct BuffUAVBindInfo : ShaderVariableD3D11Base
138  {
139  BuffUAVBindInfo( const D3DShaderResourceAttribs& ResourceAttribs,
140  ShaderResourceLayoutD3D11 &ParentResLayout ) :
141  ShaderVariableD3D11Base(ParentResLayout, ResourceAttribs)
142  {}
143 
144  // Non-virtual function
145  __forceinline void BindResource(IDeviceObject *pObject, Uint32 ArrayIndex, const ShaderResourceLayoutD3D11 *dbgResLayout);
146  virtual void Set(IDeviceObject *pObject)override final{ BindResource(pObject, 0, nullptr); }
147 
148  virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements)override final
149  {
150  for(Uint32 elem=0; elem < NumElements; ++elem)
151  BindResource(ppObjects[elem], FirstElement+elem, nullptr);
152  }
153 
154  __forceinline bool IsBound(Uint32 ArrayIndex);
155  };
156 
157  struct BuffSRVBindInfo : ShaderVariableD3D11Base
158  {
159  BuffSRVBindInfo( const D3DShaderResourceAttribs& ResourceAttribs,
160  ShaderResourceLayoutD3D11 &ParentResLayout ) :
161  ShaderVariableD3D11Base(ParentResLayout, ResourceAttribs)
162  {}
163 
164  // Non-virtual function
165  __forceinline void BindResource(IDeviceObject *pObject, Uint32 ArrayIndex, const ShaderResourceLayoutD3D11 *dbgResLayout);
166  virtual void Set(IDeviceObject *pObject)override final{ BindResource(pObject, 0, nullptr); }
167 
168  virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements)override final
169  {
170  for(Uint32 elem=0; elem < NumElements; ++elem)
171  BindResource(ppObjects[elem], FirstElement+elem, nullptr);
172  }
173 
174  __forceinline bool IsBound(Uint32 ArrayIndex);
175  };
176 
177  // dbgResourceCache is only used for sanity check and as a remainder that the resource cache must be alive
178  // while Layout is alive
179  void BindResources( IResourceMapping* pResourceMapping, Uint32 Flags, const ShaderResourceCacheD3D11 &dbgResourceCache );
180 
181 #ifdef VERIFY_SHADER_BINDINGS
182  void dbgVerifyBindings()const;
183 #endif
184 
185  IShaderVariable* GetShaderVariable( const Char* Name );
186  __forceinline SHADER_TYPE GetShaderType()const{return m_pResources->GetShaderType();}
187 
188  IObject& GetOwner(){return m_Owner;}
189 private:
190 
191  void InitVariablesHashMap();
192 
193  const Char* GetShaderName()const;
194 
195  // No need to use shared pointer, as the resource cache is either part of the same
196  // ShaderD3D11Impl object, or ShaderResourceBindingD3D11Impl object
197  ShaderResourceCacheD3D11 *m_pResourceCache = nullptr;
198 
199  std::unique_ptr<void, STDDeleterRawMem<void> > m_ResourceBuffer;
200 
201  // Offsets in bytes
202  Uint16 m_TexAndSamplersOffset = 0;
203  Uint16 m_TexUAVsOffset = 0;
204  Uint16 m_BuffUAVsOffset = 0;
205  Uint16 m_BuffSRVsOffset = 0;
206 
207  Uint8 m_NumCBs = 0; // Max == 14
208  Uint8 m_NumTexSRVs = 0; // Max == 128
209  Uint8 m_NumTexUAVs = 0; // Max == 8
210  Uint8 m_NumBufUAVs = 0; // Max == 8
211  Uint8 m_NumBufSRVs = 0; // Max == 128
212 
213  ConstBuffBindInfo& GetCB(Uint32 cb)
214  {
215  VERIFY_EXPR(cb<m_NumCBs);
216  return reinterpret_cast<ConstBuffBindInfo*>(m_ResourceBuffer.get())[cb];
217  }
218  const ConstBuffBindInfo& GetCB(Uint32 cb)const
219  {
220  VERIFY_EXPR(cb<m_NumCBs);
221  return reinterpret_cast<ConstBuffBindInfo*>(m_ResourceBuffer.get())[cb];
222  }
223 
224  TexAndSamplerBindInfo& GetTexSRV(Uint32 t)
225  {
226  VERIFY_EXPR(t<m_NumTexSRVs);
227  return reinterpret_cast<TexAndSamplerBindInfo*>( reinterpret_cast<Uint8*>(m_ResourceBuffer.get()) + m_TexAndSamplersOffset )[t];
228  }
229  const TexAndSamplerBindInfo& GetTexSRV(Uint32 t)const
230  {
231  VERIFY_EXPR(t<m_NumTexSRVs);
232  return reinterpret_cast<TexAndSamplerBindInfo*>( reinterpret_cast<Uint8*>(m_ResourceBuffer.get()) + m_TexAndSamplersOffset )[t];
233  }
234 
235  TexUAVBindInfo& GetTexUAV(Uint32 u)
236  {
237  VERIFY_EXPR(u < m_NumTexUAVs);
238  return reinterpret_cast<TexUAVBindInfo*>( reinterpret_cast<Uint8*>(m_ResourceBuffer.get()) + m_TexUAVsOffset)[u];
239  }
240  const TexUAVBindInfo& GetTexUAV(Uint32 u)const
241  {
242  VERIFY_EXPR(u < m_NumTexUAVs);
243  return reinterpret_cast<TexUAVBindInfo*>( reinterpret_cast<Uint8*>(m_ResourceBuffer.get()) + m_TexUAVsOffset)[u];
244  }
245 
246  BuffUAVBindInfo& GetBufUAV(Uint32 u)
247  {
248  VERIFY_EXPR(u < m_NumBufUAVs);
249  return reinterpret_cast<BuffUAVBindInfo*>( reinterpret_cast<Uint8*>(m_ResourceBuffer.get()) + m_BuffUAVsOffset)[u];
250  }
251  const BuffUAVBindInfo& GetBufUAV(Uint32 u)const
252  {
253  VERIFY_EXPR(u < m_NumBufUAVs);
254  return reinterpret_cast<BuffUAVBindInfo*>( reinterpret_cast<Uint8*>(m_ResourceBuffer.get()) + m_BuffUAVsOffset)[u];
255  }
256 
257  BuffSRVBindInfo& GetBufSRV(Uint32 s)
258  {
259  VERIFY_EXPR(s < m_NumBufSRVs);
260  return reinterpret_cast<BuffSRVBindInfo*>( reinterpret_cast<Uint8*>(m_ResourceBuffer.get()) + m_BuffSRVsOffset)[s];
261  }
262  const BuffSRVBindInfo& GetBufSRV(Uint32 s)const
263  {
264  VERIFY_EXPR(s < m_NumBufSRVs);
265  return reinterpret_cast<BuffSRVBindInfo*>( reinterpret_cast<Uint8*>(m_ResourceBuffer.get()) + m_BuffSRVsOffset)[s];
266  }
267 
268  template<typename THandleCB,
269  typename THandleTexSRV,
270  typename THandleTexUAV,
271  typename THandleBufSRV,
272  typename THandleBufUAV>
273  void HandleResources(THandleCB HandleCB,
274  THandleTexSRV HandleTexSRV,
275  THandleTexUAV HandleTexUAV,
276  THandleBufSRV HandleBufSRV,
277  THandleBufUAV HandleBufUAV)
278  {
279  for (Uint32 cb = 0; cb < m_NumCBs; ++cb)
280  HandleCB(GetCB(cb));
281  for (Uint32 t = 0; t < m_NumTexSRVs; ++t)
282  HandleTexSRV(GetTexSRV(t));
283  for (Uint32 u = 0; u < m_NumTexUAVs; ++u)
284  HandleTexUAV(GetTexUAV(u));
285  for (Uint32 s = 0; s < m_NumBufSRVs; ++s)
286  HandleBufSRV(GetBufSRV(s));
287  for (Uint32 u = 0; u < m_NumBufUAVs; ++u)
288  HandleBufUAV(GetBufUAV(u));
289  }
290 
291 #if USE_VARIABLE_HASH_MAP
292  // Hash map to look up shader variables by name.
293  // Note that sizeof(m_VariableHash)==128 (release mode, MS compiler, x64).
294  typedef std::pair<HashMapStringKey, IShaderVariable*> VariableHashData;
295  std::unordered_map<HashMapStringKey, IShaderVariable*, std::hash<HashMapStringKey>, std::equal_to<HashMapStringKey>, STDAllocatorRawMem<VariableHashData> > m_VariableHash;
296 #endif
297 
298  std::shared_ptr<const ShaderResourcesD3D11> m_pResources;
299  IObject &m_Owner;
300 };
301 
302 }
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
Shader resource variable.
Definition: Shader.h:265
+
The class implements a cache that holds resources bound to a specific shader stage.
Definition: ShaderResourceCacheD3D11.h:46
+
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
SHADER_VARIABLE_TYPE
Describes shader variable type that is used by ShaderVariableDesc.
Definition: Shader.h:100
+
Diligent::ShaderResourceLayoutD3D11 class http://diligentgraphics.com/diligent-engine/architecture/d3...
Definition: ShaderResourceLayoutD3D11.h:49
+
+ + + + + diff --git a/doc/html/_shader_resource_layout_d3_d12_8h_source.html b/doc/html/_shader_resource_layout_d3_d12_8h_source.html new file mode 100644 index 00000000..f5abbbb3 --- /dev/null +++ b/doc/html/_shader_resource_layout_d3_d12_8h_source.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/ShaderResourceLayoutD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderResourceLayoutD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 // http://diligentgraphics.com/diligent-engine/architecture/d3d12/shader-resource-layout/
30 
31 // All resources are stored in a single continuous chunk of memory using the following layout:
32 //
33 // m_ResourceBuffer m_Samplers
34 // | |
35 // | SRV_CBV_UAV[0] ... SRV_CBV_UAV[s-1] | SRV_CBV_UAV[s] ... SRV_CBV_UAV[s+m-1] | SRV_CBV_UAV[s+m] ... SRV_CBV_UAV[s+m+d-1] || Sampler[0] ... Sampler[s'-1] | Sampler[s'] ... Sampler[s'+m'-1] | Sampler[s'+m'] ... Sampler[s'+m'+d'-1] ||
36 // | | | || | | ||
37 // | SHADER_VARIABLE_TYPE_STATIC | SHADER_VARIABLE_TYPE_MUTABLE | SHADER_VARIABLE_TYPE_DYNAMIC || SHADER_VARIABLE_TYPE_STATIC | SHADER_VARIABLE_TYPE_MUTABLE | SHADER_VARIABLE_TYPE_DYNAMIC ||
38 // | | | ||
39 //
40 // s == m_NumCbvSrvUav[SHADER_VARIABLE_TYPE_STATIC]
41 // m == m_NumCbvSrvUav[SHADER_VARIABLE_TYPE_MUTABLE]
42 // d == m_NumCbvSrvUav[SHADER_VARIABLE_TYPE_DYNAMIC]
43 //
44 // s' == m_NumSamplers[SHADER_VARIABLE_TYPE_STATIC]
45 // m' == m_NumSamplers[SHADER_VARIABLE_TYPE_MUTABLE]
46 // d' == m_NumSamplers[SHADER_VARIABLE_TYPE_DYNAMIC]
47 //
48 //
49 // Memory buffer is allocated through the allocator provided by the pipeline state. If allocation granularity > 1, fixed block
50 // memory allocator is used. This ensures that all resources from different shader resource bindings reside in
51 // continuous memory. If allocation granularity == 1, raw allocator is used.
52 //
53 //
54 // Every SRV_CBV_UAV and Sampler structure holds a reference to D3DShaderResourceAttribs structure from ShaderResources.
55 // ShaderResourceLayoutD3D12 holds shared pointer to ShaderResourcesD3D12 instance. Note that ShaderResources::SamplerId
56 // references a sampler in ShaderResources, while SRV_CBV_UAV::SamplerId references a sampler in ShaderResourceLayoutD3D12,
57 // and the two are not the same
58 //
59 //
60 // ________________SamplerId____________________
61 // | |
62 // _________________ ______________|_____________________________________________V________
63 // | | unique_ptr | | | | | | |
64 // | ShaderResources |--------------->| CBs | TexSRVs | TexUAVs | BufSRVs | BufUAVs | Samplers |
65 // |_________________| |________|___________|___________|___________|___________|____________|
66 // A A A A
67 // | \ / \
68 // |shared_ptr Ref Ref Ref
69 // ________|__________________ ________\________________________/_________________________\_________________________________________
70 // | | unique_ptr | | | | | | |
71 // | ShaderResourceLayoutD3D12 |--------------->| SRV_CBV_UAV[0] | SRV_CBV_UAV[1] | ... | Sampler[0] | Sampler[1] | ... |
72 // |___________________________| |___________________|_________________|_______________|__________________|_________________|__________|
73 // | | | A | /
74 // | Raw ptr | |___________________SamplerId________________________| | /
75 // | | / /
76 // | \ / /
77 // ________V_________________ ________V_______________________________________________________V____V__
78 // | | | |
79 // | ShaderResourceCacheD3D12 |---------------->| Resources |
80 // |__________________________| |________________________________________________________________________|
81 //
82 // http://diligentgraphics.com/diligent-engine/architecture/d3d12/shader-resource-layout#Figure2
83 // Resources in the resource cache are identified by the root index and offset in the descriptor table
84 //
85 //
86 // ShaderResourceLayoutD3D12 is used as follows:
87 // * Every pipeline state object (PipelineStateD3D12Impl) maintains shader resource layout for every active shader stage
88 // ** These resource layouts are not bound to a resource cache and are used as reference layouts for shader resource binding objects
89 // ** All variable types are preserved
90 // ** Root indices and descriptor table offsets are assigned during the initialization
91 // ** Resource cache is not assigned
92 // * Every shader object (ShaderD3D12Impl) contains shader resource layout that facilitates management of static shader resources
93 // ** The resource layout defines artificial layout and is bound to a resource cache that actually holds references to resources
94 // ** Resource cache is assigned and initialized
95 // * Every shader resource binding object (ShaderResourceBindingD3D12Impl) encompasses shader resource layout for every active shader
96 // stage in the parent pipeline state
97 // ** Resource layouts are initialized by clonning reference layouts from the pipeline state object and are bound to the resource
98 // cache that holds references to resources set by the application
99 // ** All shader variable types are clonned
100 // ** Resource cache is assigned, but not initialized; Initialization is performed by the root signature
101 //
102 
103 // Set this define to 1 to use unordered_map to store shader variables.
104 // Note that sizeof(m_VariableHash)==128 (release mode, MS compiler, x64).
105 #define USE_VARIABLE_HASH_MAP 0
106 
107 #include "unordered_map"
108 
109 #include "ShaderD3DBase.h"
110 #include "ShaderBase.h"
111 #include "HashUtils.h"
112 #include "ShaderResourcesD3D12.h"
113 #include "ShaderResourceCacheD3D12.h"
114 #include "ShaderVariableD3DBase.h"
115 
116 #ifdef _DEBUG
117 # define VERIFY_SHADER_BINDINGS
118 #endif
119 
120 namespace Diligent
121 {
122 
124 // sizeof(ShaderResourceLayoutD3D12)==80 (MS compiler, x64)
126 {
127 public:
128  ShaderResourceLayoutD3D12(IObject &Owner, IMemoryAllocator &ResourceLayoutDataAllocator);
129 
130  // This constructor is used by ShaderResourceBindingD3D12Impl to clone layout from the reference layout in PipelineStateD3D12Impl.
131  // Root indices and descriptor table offsets must be correct. Resource cache is assigned, but not initialized.
132  ShaderResourceLayoutD3D12(IObject &Owner,
133  const ShaderResourceLayoutD3D12& SrcLayout,
134  IMemoryAllocator &ResourceLayoutDataAllocator,
135  const SHADER_VARIABLE_TYPE *AllowedVarTypes,
136  Uint32 NumAllowedTypes,
137  ShaderResourceCacheD3D12 &ResourceCache);
138 
141  ShaderResourceLayoutD3D12& operator =(const ShaderResourceLayoutD3D12&) = delete;
143 
145 
146  // The method is called by
147  // - ShaderD3D12Impl class instance to initialize static resource layout and initialize shader resource cache
148  // to hold static resources
149  // - PipelineStateD3D12Impl class instance to reference all types of resources (static, mutable, dynamic).
150  // Root indices and descriptor table offsets are assigned during the initialization;
151  // no shader resource cache is provided
152  void Initialize(ID3D12Device *pd3d12Device,
153  const std::shared_ptr<const ShaderResourcesD3D12>& pSrcResources,
154  IMemoryAllocator &LayoutDataAllocator,
155  const SHADER_VARIABLE_TYPE *VarTypes,
156  Uint32 NumAllowedTypes,
157  ShaderResourceCacheD3D12 *pResourceCache,
158  class RootSignature *pRootSig);
159 
160  // sizeof(SRV_CBV_UAV) == 32 (x64)
161  struct SRV_CBV_UAV : ShaderVariableD3DBase<ShaderResourceLayoutD3D12>
162  {
163  SRV_CBV_UAV(const SRV_CBV_UAV&) = delete;
164  SRV_CBV_UAV(SRV_CBV_UAV&&) = delete;
165  SRV_CBV_UAV& operator = (const SRV_CBV_UAV&) = delete;
166  SRV_CBV_UAV& operator = (SRV_CBV_UAV&&) = delete;
167 
168  static constexpr Uint32 ResTypeBits = 3;
169  static constexpr Uint32 RootIndBits = 16-ResTypeBits;
170  static constexpr Uint32 RootIndMask = (1 << RootIndBits)-1;
171  static constexpr Uint32 ResTypeMask = (1 << ResTypeBits)-1;
172 
173  static constexpr Uint16 InvalidRootIndex = RootIndMask;
174  static constexpr Uint16 MaxRootIndex = RootIndMask-1;
175 
176  static constexpr Uint32 InvalidSamplerId = 0xFFFF;
177  static constexpr Uint32 MaxSamplerId = InvalidSamplerId-1;
178  static constexpr Uint32 InvalidOffset = static_cast<Uint32>(-1);
179 
180  static_assert( static_cast<int>(CachedResourceType::NumTypes) <= ResTypeMask, "3 bits is not enough to store CachedResourceType");
181 
182  const Uint32 OffsetFromTableStart;
183 
184  // Special copy constructor. Note that sampler ID refers to the ID of the sampler
185  // within THIS layout, and may not be the same as in original layout
186  SRV_CBV_UAV(ShaderResourceLayoutD3D12 &ParentLayout, const SRV_CBV_UAV &rhs, Uint32 SamId ) :
187  ResType_RootIndex(rhs.ResType_RootIndex),
188  SamplerId(static_cast<Uint16>(SamId)),
189  OffsetFromTableStart(rhs.OffsetFromTableStart),
190  ShaderVariableD3DBase<ShaderResourceLayoutD3D12>(ParentLayout, rhs.Attribs)
191  {
192  VERIFY(SamId == InvalidSamplerId || SamId <= MaxSamplerId, "Sampler id exceeds max allowed value (", MaxSamplerId, ")" );
193  VERIFY(rhs.m_ParentResLayout.m_pResources == m_ParentResLayout.m_pResources, "Incosistent resource references");
194  VERIFY(IsValidOffset(), "Offset must be valid" );
195  VERIFY(IsValidRootIndex(), "Root index must be valid" );
196  }
197 
198  SRV_CBV_UAV(ShaderResourceLayoutD3D12 &ParentLayout,
199  const D3DShaderResourceAttribs &_Attribs,
200  CachedResourceType ResType,
201  Uint32 RootIndex,
202  Uint32 _OffsetFromTableStart,
203  Uint32 _SamplerId) :
204  ResType_RootIndex( (static_cast<Uint16>(ResType) << RootIndBits) | (RootIndex & RootIndMask)),
205  SamplerId( static_cast<Uint16>(_SamplerId) ),
206  OffsetFromTableStart(_OffsetFromTableStart),
207  ShaderVariableD3DBase<ShaderResourceLayoutD3D12>(ParentLayout, _Attribs)
208  {
209  VERIFY(RootIndex == InvalidRootIndex || RootIndex <= MaxRootIndex, "Root index exceeds max allowed value (", MaxRootIndex, ")" );
210  VERIFY(IsValidOffset(), "Offset must be valid" );
211  VERIFY(SamplerId == InvalidSamplerId || SamplerId <= MaxSamplerId, "Sampler id exceeds max allowed value (", MaxSamplerId, ")" );
212  }
213 
214  bool IsBound(Uint32 ArrayIndex);
215 
216  // Non-virtual function
217  void BindResource(IDeviceObject *pObject, Uint32 ArrayIndex, const ShaderResourceLayoutD3D12 *dbgResLayout);
218  virtual void Set(IDeviceObject *pObject)override final{ BindResource(pObject, 0, nullptr); }
219 
220  virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements)override final
221  {
222  for(Uint32 Elem = 0; Elem < NumElements; ++Elem)
223  BindResource(ppObjects[Elem], FirstElement+Elem, nullptr);
224  }
225 
226  bool IsValidSampler() const{return GetSamplerId() != InvalidSamplerId;}
227  bool IsValidRootIndex()const{return GetRootIndex() != InvalidRootIndex;}
228  bool IsValidOffset() const{return OffsetFromTableStart != InvalidOffset; }
229 
230  CachedResourceType GetResType()const
231  {
232  return static_cast<CachedResourceType>( (ResType_RootIndex >> RootIndBits) & ResTypeMask );
233  }
234  Uint32 GetRootIndex()const
235  {
236  return ResType_RootIndex & RootIndMask;
237  }
238 
239  Uint32 GetSamplerId()const
240  {
241  return SamplerId;
242  }
243 
244  private:
245  const Uint16 ResType_RootIndex; // bit
246  // | 0 1 .... 12 | 13 14 15 |
247  // | | |
248  // | Root index | ResType |
249  const Uint16 SamplerId;
250 
251  void CacheCB(IDeviceObject *pBuffer,
252  ShaderResourceCacheD3D12::Resource& DstRes,
253  Uint32 ArrayInd,
254  D3D12_CPU_DESCRIPTOR_HANDLE ShdrVisibleHeapCPUDescriptorHandle);
255 
256  template<typename TResourceViewType,
257  typename TViewTypeEnum,
258  typename TBindSamplerProcType>
259  void CacheResourceView(IDeviceObject *pView,
260  ShaderResourceCacheD3D12::Resource& DstRes,
261  Uint32 ArrayIndex,
262  D3D12_CPU_DESCRIPTOR_HANDLE ShdrVisibleHeapCPUDescriptorHandle,
263  TViewTypeEnum dbgExpectedViewType,
264  TBindSamplerProcType BindSamplerProc);
265  };
266 
267  // sizeof(Sampler) == 24 (x64)
268  struct Sampler
269  {
270  Sampler(const Sampler&) = delete;
271  Sampler(Sampler&&) = delete;
272  Sampler& operator = (const Sampler&) = delete;
273  Sampler& operator = (Sampler&&) = delete;
274 
275  const D3DShaderResourceAttribs &Attribs;
276  ShaderResourceLayoutD3D12 &m_ParentResLayout;
277 
278  static constexpr Uint32 InvalidRootIndex = static_cast<Uint32>(-1);
279  static constexpr Uint32 InvalidOffset = static_cast<Uint32>(-1);
280 
281  const Uint32 RootIndex;
282  const Uint32 OffsetFromTableStart;
283 
284  Sampler(ShaderResourceLayoutD3D12 &ParentLayout, const Sampler& Sam):
285  Attribs(Sam.Attribs),
286  m_ParentResLayout(ParentLayout),
287  RootIndex(Sam.RootIndex),
288  OffsetFromTableStart(Sam.OffsetFromTableStart)
289  {
290  VERIFY(Sam.m_ParentResLayout.m_pResources == m_ParentResLayout.m_pResources, "Incosistent resource references");
291  VERIFY(IsValidRootIndex(), "Root index must be valid" );
292  VERIFY(IsValidOffset(), "Offset must be valid" );
293  }
294 
295  Sampler(ShaderResourceLayoutD3D12 &ParentResLayout, const D3DShaderResourceAttribs &_Attribs, Uint32 _RootIndex, Uint32 _OffsetFromTableStart) :
296  RootIndex(_RootIndex),
297  OffsetFromTableStart(_OffsetFromTableStart),
298  Attribs(_Attribs),
299  m_ParentResLayout(ParentResLayout)
300  {
301  VERIFY(IsValidRootIndex(), "Root index must be valid" );
302  VERIFY(IsValidOffset(), "Offset must be valid" );
303  }
304 
305  bool IsValidRootIndex()const{return RootIndex != InvalidRootIndex;}
306  bool IsValidOffset() const{return OffsetFromTableStart != InvalidOffset; }
307 
308  void CacheSampler(class ITextureViewD3D12 *pTexViewD3D12, Uint32 ArrayIndex, D3D12_CPU_DESCRIPTOR_HANDLE ShdrVisibleHeapCPUDescriptorHandle);
309  };
310 
311 
312  void CopyStaticResourceDesriptorHandles(const ShaderResourceLayoutD3D12 &SrcLayout);
313 
314  // dbgResourceCache is only used for sanity check and as a remainder that the resource cache must be alive
315  // while Layout is alive
316  void BindResources( IResourceMapping* pResourceMapping, Uint32 Flags, const ShaderResourceCacheD3D12 *dbgResourceCache );
317 
318  IShaderVariable* GetShaderVariable( const Char* Name );
319 
320 #ifdef VERIFY_SHADER_BINDINGS
321  void dbgVerifyBindings()const;
322 #endif
323 
324  IObject& GetOwner(){return m_Owner;}
325 
326 private:
327  void InitVariablesHashMap();
328 
329  Sampler &GetAssignedSampler(const SRV_CBV_UAV &TexSrv);
330 
331  const Char* GetShaderName()const;
332 
333  // There is no need to use shared ptr as referenced resource cache is either part of the
334  // parent ShaderD3D12Impl object or ShaderResourceBindingD3D12Impl object
335  ShaderResourceCacheD3D12 *m_pResourceCache;
336 
337  std::unique_ptr<void, STDDeleterRawMem<void> > m_ResourceBuffer;
338  Sampler* m_Samplers = nullptr;
339  Uint16 m_NumCbvSrvUav[SHADER_VARIABLE_TYPE_NUM_TYPES] = {0,0,0};
340  Uint16 m_NumSamplers [SHADER_VARIABLE_TYPE_NUM_TYPES] = {0,0,0};
341 
342  Uint32 GetSrvCbvUavOffset(SHADER_VARIABLE_TYPE VarType, Uint32 r)const
343  {
344  VERIFY_EXPR( r < m_NumCbvSrvUav[VarType] );
345  static_assert(SHADER_VARIABLE_TYPE_STATIC == 0, "SHADER_VARIABLE_TYPE_STATIC == 0 expected");
346  r += (VarType > SHADER_VARIABLE_TYPE_STATIC) ? m_NumCbvSrvUav[SHADER_VARIABLE_TYPE_STATIC] : 0;
347  static_assert(SHADER_VARIABLE_TYPE_MUTABLE == 1, "SHADER_VARIABLE_TYPE_MUTABLE == 1 expected");
348  r += (VarType > SHADER_VARIABLE_TYPE_MUTABLE) ? m_NumCbvSrvUav[SHADER_VARIABLE_TYPE_MUTABLE] : 0;
349  return r;
350  }
351  SRV_CBV_UAV& GetSrvCbvUav(SHADER_VARIABLE_TYPE VarType, Uint32 r)
352  {
353  VERIFY_EXPR( r < m_NumCbvSrvUav[VarType] );
354  auto* CbvSrvUav = reinterpret_cast<SRV_CBV_UAV*>(m_ResourceBuffer.get());
355  return CbvSrvUav[GetSrvCbvUavOffset(VarType,r)];
356  }
357  const SRV_CBV_UAV& GetSrvCbvUav(SHADER_VARIABLE_TYPE VarType, Uint32 r)const
358  {
359  VERIFY_EXPR( r < m_NumCbvSrvUav[VarType] );
360  auto* CbvSrvUav = reinterpret_cast<SRV_CBV_UAV*>(m_ResourceBuffer.get());
361  return CbvSrvUav[GetSrvCbvUavOffset(VarType,r)];
362  }
363  SRV_CBV_UAV& GetSrvCbvUav(Uint32 r)
364  {
365  VERIFY_EXPR( r < GetTotalSrvCbvUavCount() );
366  auto* CbvSrvUav = reinterpret_cast<SRV_CBV_UAV*>(m_ResourceBuffer.get());
367  return CbvSrvUav[r];
368  }
369 
370  Uint32 GetSamplerOffset(SHADER_VARIABLE_TYPE VarType, Uint32 s)const
371  {
372  VERIFY_EXPR( s < m_NumSamplers[VarType] );
373  static_assert(SHADER_VARIABLE_TYPE_STATIC == 0, "SHADER_VARIABLE_TYPE_STATIC == 0 expected");
374  s += (VarType > SHADER_VARIABLE_TYPE_STATIC) ? m_NumSamplers[SHADER_VARIABLE_TYPE_STATIC] : 0;
375  static_assert(SHADER_VARIABLE_TYPE_MUTABLE == 1, "SHADER_VARIABLE_TYPE_MUTABLE == 1 expected");
376  s += (VarType > SHADER_VARIABLE_TYPE_MUTABLE) ? m_NumSamplers[SHADER_VARIABLE_TYPE_MUTABLE] : 0;
377  return s;
378  }
379  Sampler& GetSampler(SHADER_VARIABLE_TYPE VarType, Uint32 s)
380  {
381  VERIFY_EXPR( s < m_NumSamplers[VarType] );
382  return m_Samplers[GetSamplerOffset(VarType,s)];
383  }
384  const Sampler& GetSampler(SHADER_VARIABLE_TYPE VarType, Uint32 s)const
385  {
386  VERIFY_EXPR( s < m_NumSamplers[VarType] );
387  return m_Samplers[GetSamplerOffset(VarType,s)];
388  }
389  Uint32 GetTotalSrvCbvUavCount()const
390  {
391  static_assert(SHADER_VARIABLE_TYPE_NUM_TYPES == 3, "Did you add new variable type?");
392  return m_NumCbvSrvUav[SHADER_VARIABLE_TYPE_STATIC] + m_NumCbvSrvUav[SHADER_VARIABLE_TYPE_MUTABLE] + m_NumCbvSrvUav[SHADER_VARIABLE_TYPE_DYNAMIC];
393  }
394  Uint32 GetTotalSamplerCount()const
395  {
396  static_assert(SHADER_VARIABLE_TYPE_NUM_TYPES == 3, "Did you add new variable type?");
397  return m_NumSamplers[SHADER_VARIABLE_TYPE_STATIC] + m_NumSamplers[SHADER_VARIABLE_TYPE_MUTABLE] + m_NumSamplers[SHADER_VARIABLE_TYPE_DYNAMIC];
398  }
399 
400  void AllocateMemory(IMemoryAllocator &Allocator);
401 
402 #if USE_VARIABLE_HASH_MAP
403  // Hash map to look up shader variables by name.
404  // Note that sizeof(m_VariableHash)==128 (release mode, MS compiler, x64).
405  typedef std::pair<HashMapStringKey, IShaderVariable*> VariableHashElemType;
406  std::unordered_map<HashMapStringKey, IShaderVariable*, std::hash<HashMapStringKey>, std::equal_to<HashMapStringKey>, STDAllocatorRawMem<VariableHashElemType> > m_VariableHash;
407 #endif
408 
409  CComPtr<ID3D12Device> m_pd3d12Device;
410  IObject &m_Owner;
411  // We must use shared_ptr to reference ShaderResources instance, because
412  // there may be multiple objects referencing the same set of resources
413  std::shared_ptr<const ShaderResourcesD3D12> m_pResources;
414 };
415 
416 }
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
Shader resource variable.
Definition: Shader.h:265
+
Implementation of the Diligent::RootSignature class.
Definition: RootSignature.h:161
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Interface to the texture view object implemented in D3D11.
Definition: TextureViewD3D12.h:39
+
Resouce mapping.
Definition: ResourceMapping.h:80
+
SHADER_VARIABLE_TYPE
Describes shader variable type that is used by ShaderVariableDesc.
Definition: Shader.h:100
+
Shader variable is constant across all shader instances. It must be set once directly through IShader...
Definition: Shader.h:105
+
Shader variable is dynamic. It can be set multiple times for every instance of shader resource bindin...
Definition: Shader.h:114
+
Diligent::ShaderResourceLayoutD3D12 class.
Definition: ShaderResourceLayoutD3D12.h:125
+
Shader variable is constant across shader resource bindings instance (see IShaderResourceBinding). It must be set once through IShaderResourceBinding::BindResources() or through the shader variable. It cannot be set through IShader interface.
Definition: Shader.h:110
+
Total number of shader variable types.
Definition: Shader.h:117
+
+ + + + + diff --git a/doc/html/_shader_resources_8h_source.html b/doc/html/_shader_resources_8h_source.html new file mode 100644 index 00000000..fedbbd3a --- /dev/null +++ b/doc/html/_shader_resources_8h_source.html @@ -0,0 +1,94 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3DBase/include/ShaderResources.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderResources.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
29 
30 // ShaderResources class uses continuous chunk of memory to store all resources, as follows:
31 //
32 //
33 // m_MemoryBuffer m_TexSRVOffset m_TexUAVOffset m_BufSRVOffset m_BufUAVOffset m_SamplersOffset m_MemorySize
34 // | | | | | | |
35 // | CB[0] ... CB[Ncb-1] | TexSRV[0] ... TexSRV[Ntsrv-1] | TexUAV[0] ... TexUAV[Ntuav-1] | BufSRV[0] ... BufSRV[Nbsrv-1] | BufUAV[0] ... BufUAV[Nbuav-1] | Sam[0] ... Sam[Nsam-1] |
36 //
37 // Ncb - number of constant buffers
38 // Ntsrv - number of texture SRVs
39 // Ntuav - number of texture UAVs
40 // Nbsrv - number of buffer SRVs
41 // Nbuav - number of buffer UAVs
42 // Nsam - number of samplers
43 //
44 //
45 // If texture SRV is assigned a sampler, it is referenced through SamplerId:
46 //
47 // _________________________SamplerId_______________________
48 // | |
49 // | V
50 // | CBs | ... TexSRV[n] ... | TexUAVs | BufSRVs | BufUAVs | Sam[0] ... Sam[SamplerId] ... |
51 //
52 //
53 
54 #include <memory>
55 
56 #define NOMINMAX
57 #include <d3dcommon.h>
58 
59 #include "Shader.h"
60 #include "STDAllocator.h"
61 
62 namespace Diligent
63 {
64 
65 static const Char* D3DSamplerSuffix = "_sampler";
66 
67 inline bool IsAllowedType(SHADER_VARIABLE_TYPE VarType, Uint32 AllowedTypeBits)noexcept
68 {
69  return ((1 << VarType) & AllowedTypeBits) != 0;
70 }
71 
72 inline Uint32 GetAllowedTypeBits(const SHADER_VARIABLE_TYPE *AllowedVarTypes, Uint32 NumAllowedTypes)noexcept
73 {
74  if(AllowedVarTypes == nullptr)
75  return 0xFFFFFFFF;
76 
77  Uint32 AllowedTypeBits = 0;
78  for(Uint32 i=0; i < NumAllowedTypes; ++i)
79  AllowedTypeBits |= 1 << AllowedVarTypes[i];
80  return AllowedTypeBits;
81 }
82 
83 
84 struct D3DShaderResourceAttribs
85 {
86  D3DShaderResourceAttribs(String &&_Name,
87  UINT _BindPoint,
88  UINT _BindCount,
89  D3D_SHADER_INPUT_TYPE _InputType,
90  SHADER_VARIABLE_TYPE _VariableType,
91  D3D_SRV_DIMENSION SRVDimension,
92  Uint32 SamplerId,
93  bool _IsStaticSampler) :
94  Name(std::move(_Name)),
95  BindPoint(static_cast<Uint16>(_BindPoint)),
96  BindCount(static_cast<Uint16>(_BindCount)),
97  PackedAttribs( PackAttribs(_InputType, _VariableType, SRVDimension, SamplerId, _IsStaticSampler) )
98  {
99  VERIFY( static_cast<Uint32>(_InputType) <= ShaderInputTypeMask, "Shader input type is out of expected range");
100  VERIFY( static_cast<Uint32>(_VariableType) <= VariableTypeMask, "Variable type is out of expected range");
101  VERIFY( static_cast<Uint32>(SRVDimension) <= SRVDimMask, "SRV dimensions is out of expected range");
102  VERIFY(SamplerId <= SamplerIdMask, "Sampler Id is out of allowed range" );
103  VERIFY_EXPR(GetInputType() == _InputType);
104  VERIFY_EXPR(GetVariableType() == _VariableType);
105  VERIFY(_BindPoint <= MaxBindPoint || _BindPoint == InvalidBindPoint, "Bind Point is out of allowed range" );
106  VERIFY(_BindCount <= MaxBindCount, "Bind Count is out of allowed range" );
107 #ifdef _DEBUG
108  if(_InputType==D3D_SIT_SAMPLER)
109  {
110  VERIFY_EXPR(IsStaticSampler() == _IsStaticSampler);
111  }
112  else
113  {
114  VERIFY(!_IsStaticSampler, "Only samplers can be marked as static");
115  }
116 
117  if (_InputType == D3D_SIT_TEXTURE)
118  {
119  VERIFY_EXPR(GetSamplerId() == SamplerId);
120  }
121  else
122  {
123  VERIFY(SamplerId == InvalidSamplerId, "Only textures can be assigned valid texture sampler");
124  }
125 
126  if(_IsStaticSampler)
127  {
128  VERIFY( _InputType == D3D_SIT_SAMPLER, "Invalid input type: D3D_SIT_SAMPLER is expected" );
129  }
130 #endif
131  }
132 
133  D3DShaderResourceAttribs(const D3DShaderResourceAttribs& rhs) = default;
134 
135  D3DShaderResourceAttribs(const D3DShaderResourceAttribs& rhs, Uint32 SamplerId)noexcept :
136  Name(rhs.Name),
137  BindPoint(rhs.BindPoint),
138  BindCount(rhs.BindCount),
139  PackedAttribs( PackAttribs(rhs.GetInputType(), rhs.GetVariableType(), rhs.GetSRVDimension(), SamplerId, false) )
140  {
141  VERIFY(GetInputType() == D3D_SIT_TEXTURE, "Only textures can be assigned a texture sampler");
142 
143  VERIFY_EXPR(GetInputType() == rhs.GetInputType());
144  VERIFY_EXPR(GetVariableType() == rhs.GetVariableType());
145  VERIFY_EXPR(GetSamplerId() == SamplerId);
146  }
147 
148  D3DShaderResourceAttribs(D3DShaderResourceAttribs&& rhs, Uint32 SamplerId)noexcept :
149  Name(std::move(rhs.Name)),
150  BindPoint(rhs.BindPoint),
151  BindCount(rhs.BindCount),
152  PackedAttribs( PackAttribs(rhs.GetInputType(), rhs.GetVariableType(), rhs.GetSRVDimension(), SamplerId, false) )
153  {
154  VERIFY(GetInputType() == D3D_SIT_TEXTURE, "Only textures can be assigned a texture sampler");
155 
156  VERIFY_EXPR(GetInputType() == rhs.GetInputType());
157  VERIFY_EXPR(GetVariableType() == rhs.GetVariableType());
158  VERIFY_EXPR(GetSamplerId() == SamplerId);
159  }
160 
161  D3DShaderResourceAttribs(D3DShaderResourceAttribs&& rhs)noexcept :
162  Name(std::move(rhs.Name)),
163  BindPoint(rhs.BindPoint),
164  BindCount(rhs.BindCount),
165  PackedAttribs( rhs.PackedAttribs )
166  {
167  }
168 
169  D3D_SHADER_INPUT_TYPE GetInputType()const
170  {
171  return static_cast<D3D_SHADER_INPUT_TYPE>( (PackedAttribs >> ShaderInputTypeBitOffset) & ShaderInputTypeMask );
172  }
173 
174  SHADER_VARIABLE_TYPE GetVariableType()const
175  {
176  return static_cast<SHADER_VARIABLE_TYPE>( (PackedAttribs >> VariableTypeBitOffset) & VariableTypeMask );
177  }
178 
179  D3D_SRV_DIMENSION GetSRVDimension()const
180  {
181  return static_cast<D3D_SRV_DIMENSION>( (PackedAttribs >> SRVDimBitOffset) & SRVDimMask );
182  }
183 
184  Uint32 GetSamplerId()const
185  {
186  VERIFY( GetInputType() == D3D_SIT_TEXTURE, "Invalid input type: D3D_SIT_TEXTURE is expected" );
187  return (PackedAttribs >> SamplerIdBitOffset) & SamplerIdMask;
188  }
189 
190  bool IsStaticSampler()const
191  {
192  VERIFY( GetInputType() == D3D_SIT_SAMPLER, "Invalid input type: D3D_SIT_SAMPLER is expected" );
193  return (PackedAttribs & (1 << IsStaticSamplerFlagBitOffset)) != 0;
194  }
195 
196  bool IsValidSampler()const
197  {
198  VERIFY( GetInputType() == D3D_SIT_TEXTURE, "Invalid input type: D3D_SIT_TEXTURE is expected" );
199  return GetSamplerId() != InvalidSamplerId;
200  }
201 
202  bool IsValidBindPoint()const
203  {
204  return BindPoint != InvalidBindPoint;
205  }
206 
207  static constexpr Uint16 InvalidBindPoint = std::numeric_limits<Uint16>::max();
208 
209  String Name; // Move ctor will not work if it is const
210  const Uint16 BindPoint;
211  const Uint16 BindCount;
212 
213  String GetPrintName(Uint32 ArrayInd)const
214  {
215  VERIFY_EXPR(ArrayInd < BindCount);
216  if(BindCount > 1)
217  return String(Name) + '[' + std::to_string(ArrayInd) + ']';
218  else
219  return Name;
220  }
221 private:
222  static constexpr Uint16 MaxBindPoint = InvalidBindPoint-1;
223  static constexpr Uint16 MaxBindCount = std::numeric_limits<Uint16>::max();
224 
225  static constexpr Uint32 ShaderInputTypeBits = 4; // Max value: D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER==11
226  static constexpr Uint32 ShaderInputTypeMask = (1 << ShaderInputTypeBits)-1;
227  static constexpr Uint32 ShaderInputTypeBitOffset = 0;
228  static_assert( D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER <= ShaderInputTypeMask, "Not enough bits to represent D3D_SHADER_INPUT_TYPE" );
229 
230  static constexpr Uint32 VariableTypeBits = 3; // Max value: SHADER_VARIABLE_TYPE_DYNAMIC == 2
231  static constexpr Uint32 VariableTypeMask = (1<<VariableTypeBits)-1;
232  static constexpr Uint32 VariableTypeBitOffset = ShaderInputTypeBitOffset + ShaderInputTypeBits;
233  static_assert( SHADER_VARIABLE_TYPE_NUM_TYPES-1 <= VariableTypeMask, "Not enough bits to represent SHADER_VARIABLE_TYPE" );
234 
235  static constexpr Uint32 SRVDimBits = 4; // Max value: D3D_SRV_DIMENSION_BUFFEREX == 11
236  static constexpr Uint32 SRVDimMask = (1<<SRVDimBits)-1;
237  static constexpr Uint32 SRVDimBitOffset = VariableTypeBitOffset + VariableTypeBits;
238  static_assert( D3D_SRV_DIMENSION_BUFFEREX <= SRVDimMask, "Not enough bits to represent D3D_SRV_DIMENSION" );
239 
240  static constexpr Uint32 SamplerIdBits = 32 - 1 - ShaderInputTypeBits - VariableTypeBits - SRVDimBits;
241  static constexpr Uint32 SamplerIdMask = (1 << SamplerIdBits) - 1;
242  static constexpr Uint32 SamplerIdBitOffset = SRVDimBitOffset + SRVDimBits;
243 public:
244  static constexpr Uint32 InvalidSamplerId = SamplerIdMask;
245 private:
246 
247  static constexpr Uint32 IsStaticSamplerFlagBits = 1;
248  static constexpr Uint32 IsStaticSamplerFlagMask = (1 << IsStaticSamplerFlagBits) - 1;
249  static constexpr Uint32 IsStaticSamplerFlagBitOffset = SamplerIdBitOffset + SamplerIdBits;
250  static_assert(IsStaticSamplerFlagBitOffset == 31, "Unexpected static sampler flag offset");
251 
252  static Uint32 PackAttribs(D3D_SHADER_INPUT_TYPE _InputType, SHADER_VARIABLE_TYPE _VariableType, D3D_SRV_DIMENSION SRVDimension, Uint32 SamplerId, bool _IsStaticSampler)
253  {
254  return ((static_cast<Uint32>(_InputType) & ShaderInputTypeMask) << ShaderInputTypeBitOffset) |
255  ((static_cast<Uint32>(_VariableType) & VariableTypeMask) << VariableTypeBitOffset ) |
256  ((static_cast<Uint32>(SRVDimension) & SRVDimMask) << SRVDimBitOffset) |
257  ((SamplerId & SamplerIdMask) << SamplerIdBitOffset) |
258  ((_IsStaticSampler ? 1 : 0) << IsStaticSamplerFlagBitOffset);
259  }
260 
261  // 4 3 4 20 1
262  // bit | 0 1 2 3 | 4 5 6 | 7 8 9 10 | 11 12 ... 30 | 31 |
263  // | | | | | |
264  // | InputType | VariableType | SRV Dim | SamplerId | StaticSamplerFlag |
265  const Uint32 PackedAttribs;
266 };
267 
268 
271 {
272 public:
273  ShaderResources(IMemoryAllocator &Allocator, SHADER_TYPE ShaderType);
274 
275  // Copies specified types of resources from another ShaderResources objects
276  // Only resources listed in AllowedVarTypes are copied
277  ShaderResources(IMemoryAllocator &Allocator,
278  const ShaderResources& SrcResources,
279  const SHADER_VARIABLE_TYPE *AllowedVarTypes,
280  Uint32 NumAllowedTypes);
281 
282  ShaderResources (const ShaderResources&) = delete;
283  ShaderResources (ShaderResources&&) = delete;
284  ShaderResources& operator = (const ShaderResources&) = delete;
285  ShaderResources& operator = (ShaderResources&&) = delete;
286 
287  ~ShaderResources();
288 
289  Uint32 GetNumCBs() const noexcept{ return (m_TexSRVOffset - 0); }
290  Uint32 GetNumTexSRV() const noexcept{ return (m_TexUAVOffset - m_TexSRVOffset); }
291  Uint32 GetNumTexUAV() const noexcept{ return (m_BufSRVOffset - m_TexUAVOffset); }
292  Uint32 GetNumBufSRV() const noexcept{ return (m_BufUAVOffset - m_BufSRVOffset); }
293  Uint32 GetNumBufUAV() const noexcept{ return (m_SamplersOffset - m_BufUAVOffset); }
294  Uint32 GetNumSamplers()const noexcept{ return (m_BufferEndOffset- m_SamplersOffset); }
295 
296  const D3DShaderResourceAttribs& GetCB (Uint32 n)const noexcept{ return GetResAttribs(n, GetNumCBs(), 0); }
297  const D3DShaderResourceAttribs& GetTexSRV (Uint32 n)const noexcept{ return GetResAttribs(n, GetNumTexSRV(), m_TexSRVOffset); }
298  const D3DShaderResourceAttribs& GetTexUAV (Uint32 n)const noexcept{ return GetResAttribs(n, GetNumTexUAV(), m_TexUAVOffset); }
299  const D3DShaderResourceAttribs& GetBufSRV (Uint32 n)const noexcept{ return GetResAttribs(n, GetNumBufSRV(), m_BufSRVOffset); }
300  const D3DShaderResourceAttribs& GetBufUAV (Uint32 n)const noexcept{ return GetResAttribs(n, GetNumBufUAV(), m_BufUAVOffset); }
301  const D3DShaderResourceAttribs& GetSampler(Uint32 n)const noexcept{ return GetResAttribs(n, GetNumSamplers(), m_SamplersOffset); }
302 
303 
304  void CountResources(const SHADER_VARIABLE_TYPE *AllowedVarTypes, Uint32 NumAllowedTypes,
305  Uint32& NumCBs, Uint32& NumTexSRVs, Uint32& NumTexUAVs,
306  Uint32& NumBufSRVs, Uint32& NumBufUAVs, Uint32& NumSamplers)const noexcept;
307 
308  SHADER_TYPE GetShaderType()const noexcept{return m_ShaderType;}
309 
310  // Process only resources listed in AllowedVarTypes
311  template<typename THandleCB,
312  typename THandleTexSRV,
313  typename THandleTexUAV,
314  typename THandleBufSRV,
315  typename THandleBufUAV>
316  void ProcessResources(const SHADER_VARIABLE_TYPE *AllowedVarTypes,
317  Uint32 NumAllowedTypes,
318  THandleCB HandleCB,
319  THandleTexSRV HandleTexSRV,
320  THandleTexUAV HandleTexUAV,
321  THandleBufSRV HandleBufSRV,
322  THandleBufUAV HandleBufUAV)const
323  {
324  Uint32 AllowedTypeBits = GetAllowedTypeBits(AllowedVarTypes, NumAllowedTypes);
325 
326  for(Uint32 n=0; n < GetNumCBs(); ++n)
327  {
328  const auto& CB = GetCB(n);
329  if( IsAllowedType(CB.GetVariableType(), AllowedTypeBits) )
330  HandleCB(CB);
331  }
332 
333  for(Uint32 n=0; n < GetNumTexSRV(); ++n)
334  {
335  const auto &TexSRV = GetTexSRV(n);
336  if( IsAllowedType(TexSRV.GetVariableType(), AllowedTypeBits) )
337  HandleTexSRV(TexSRV);
338  }
339 
340  for(Uint32 n=0; n < GetNumTexUAV(); ++n)
341  {
342  const auto &TexUAV = GetTexUAV(n);
343  if( IsAllowedType(TexUAV.GetVariableType(), AllowedTypeBits) )
344  HandleTexUAV(TexUAV);
345  }
346 
347  for(Uint32 n=0; n < GetNumBufSRV(); ++n)
348  {
349  const auto &BufSRV = GetBufSRV(n);
350  if( IsAllowedType(BufSRV.GetVariableType(), AllowedTypeBits) )
351  HandleBufSRV(BufSRV);
352  }
353 
354  for(Uint32 n=0; n < GetNumBufUAV(); ++n)
355  {
356  const auto& BufUAV = GetBufUAV(n);
357  if( IsAllowedType(BufUAV.GetVariableType(), AllowedTypeBits) )
358  HandleBufUAV(BufUAV);
359  }
360  }
361 
362 protected:
363  void Initialize(IMemoryAllocator &Allocator, Uint32 NumCBs, Uint32 NumTexSRVs, Uint32 NumTexUAVs, Uint32 NumBufSRVs, Uint32 NumBufUAVs, Uint32 NumSamplers);
364 
365  __forceinline D3DShaderResourceAttribs& GetResAttribs(Uint32 n, Uint32 NumResources, Uint32 Offset)noexcept
366  {
367  VERIFY(n < NumResources, "Resource index (", n, ") is out of range. Max allowed index: ", NumResources-1);
368  VERIFY_EXPR(Offset + n < m_BufferEndOffset);
369  return reinterpret_cast<D3DShaderResourceAttribs*>(m_MemoryBuffer.get())[Offset + n];
370  }
371 
372  __forceinline const D3DShaderResourceAttribs& GetResAttribs(Uint32 n, Uint32 NumResources, Uint32 Offset)const noexcept
373  {
374  VERIFY(n < NumResources, "Resource index (", n, ") is out of range. Max allowed index: ", NumResources-1);
375  VERIFY_EXPR(Offset + n < m_BufferEndOffset);
376  return reinterpret_cast<D3DShaderResourceAttribs*>(m_MemoryBuffer.get())[Offset + n];
377  }
378 
379  D3DShaderResourceAttribs& GetCB (Uint32 n)noexcept{ return GetResAttribs(n, GetNumCBs(), 0); }
380  D3DShaderResourceAttribs& GetTexSRV (Uint32 n)noexcept{ return GetResAttribs(n, GetNumTexSRV(), m_TexSRVOffset); }
381  D3DShaderResourceAttribs& GetTexUAV (Uint32 n)noexcept{ return GetResAttribs(n, GetNumTexUAV(), m_TexUAVOffset); }
382  D3DShaderResourceAttribs& GetBufSRV (Uint32 n)noexcept{ return GetResAttribs(n, GetNumBufSRV(), m_BufSRVOffset); }
383  D3DShaderResourceAttribs& GetBufUAV (Uint32 n)noexcept{ return GetResAttribs(n, GetNumBufUAV(), m_BufUAVOffset); }
384  D3DShaderResourceAttribs& GetSampler(Uint32 n)noexcept{ return GetResAttribs(n, GetNumSamplers(), m_SamplersOffset); }
385 
386  Uint32 FindAssignedSamplerId(const D3DShaderResourceAttribs& TexSRV)const;
387 
388 private:
389  // Memory buffer that holds all resources as continuous chunk of memory:
390  // | CBs | TexSRVs | TexUAVs | BufSRVs | BufUAVs | Samplers |
391  std::unique_ptr< void, STDDeleterRawMem<void> > m_MemoryBuffer;
392 
393  // Offsets in elements of D3DShaderResourceAttribs
394  typedef Uint16 OffsetType;
395  OffsetType m_TexSRVOffset = 0;
396  OffsetType m_TexUAVOffset = 0;
397  OffsetType m_BufSRVOffset = 0;
398  OffsetType m_BufUAVOffset = 0;
399  OffsetType m_SamplersOffset = 0;
400  OffsetType m_BufferEndOffset = 0;
401 
402  SHADER_TYPE m_ShaderType = SHADER_TYPE_UNKNOWN;
403 };
404 
405 }
SHADER_TYPE
Describes the shader type.
Definition: Shader.h:46
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Definition: AdvancedMath.h:316
+
Diligent::ShaderResources class.
Definition: ShaderResources.h:270
+
Base interface for a raw memory allocator.
Definition: MemoryAllocator.h:35
+
SHADER_VARIABLE_TYPE
Describes shader variable type that is used by ShaderVariableDesc.
Definition: Shader.h:100
+
std::basic_string< Char > String
String variable.
Definition: BasicTypes.h:51
+
Unknown shader type.
Definition: Shader.h:48
+
uint16_t Uint16
16-bit unsigned integer
Definition: BasicTypes.h:40
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
Total number of shader variable types.
Definition: Shader.h:117
+
+ + + + + diff --git a/doc/html/_shader_resources_d3_d11_8h_source.html b/doc/html/_shader_resources_d3_d11_8h_source.html new file mode 100644 index 00000000..ea1c3a52 --- /dev/null +++ b/doc/html/_shader_resources_d3_d11_8h_source.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/ShaderResourcesD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderResourcesD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 
30 // ShaderResourcesD3D11 are created by ShaderD3D11Impl instances. They are then referenced by ShaderResourceLayoutD3D11 objects, which are in turn
31 // created by instances of ShaderResourceBindingsD3D11Impl (and ShaderD3D11Impl too)
32 //
33 // _________________
34 // | |
35 // | ShaderD3D11Impl |
36 // |_________________|
37 // |
38 // |shared_ptr
39 // ________V_____________ _____________________________________________________________________
40 // | | unique_ptr | | | | | | |
41 // | ShaderResourcesD3D11 |--------------->| CBs | TexSRVs | TexUAVs | BufSRVs | BufUAVs | Samplers |
42 // |______________________| |________|___________|___________|___________|___________|____________|
43 // A A A A A A A
44 // | \ \ \ \ \ |
45 // |shared_ptr Ref Ref Ref Ref Ref |
46 // ________|__________________ ____\_________\__________\__________\___________\_______ |
47 // | | unique_ptr | | | | | | |
48 // | ShaderResourceLayoutD3D11 |--------------->| CBs | TexSRVs | TexUAVs | BufSRVs | BufUAVs | |
49 // |___________________________| |________|___________|___________|___________|___________| |
50 // | Ref
51 // |______________________________________________|
52 //
53 //
54 // One ShaderResources instance can be referenced by multiple objects
55 //
56 //
57 // ____<m_pResourceLayouts>___ ________________________________
58 // | | | |
59 // ----| ShaderResourceLayoutD3D11 |<-----| ShaderResourceBindingD3D11Impl |
60 // | |___________________________| |________________________________|
61 // |
62 // |
63 // _________________ ______________________ | ____<m_pResourceLayouts>___ ________________________________
64 // | | shared_ptr | | shared_ptr| | | | |
65 // | ShaderD3D11Impl |--------------->| ShaderResourcesD3D11 |<---------------| ShaderResourceLayoutD3D11 |<-----| ShaderResourceBindingD3D11Impl |
66 // |_________________| |______________________| | |___________________________| |________________________________|
67 // | A |
68 // V | |
69 // ____<m_StaticResLayout>____ | | ____<m_pResourceLayouts>___ ________________________________
70 // | | shared_ptr | | | | | |
71 // | ShaderResourceLayoutD3D11 |------------------- ----| ShaderResourceLayoutD3D11 |<-----| ShaderResourceBindingD3D11Impl |
72 // |___________________________| |___________________________| |________________________________|
73 //
74 //
75 
76 
77 #include "ShaderResources.h"
78 
79 namespace Diligent
80 {
81 
83 class ShaderResourcesD3D11 : public ShaderResources
84 {
85 public:
86  // Loads shader resources from the compiled shader bytecode
87  ShaderResourcesD3D11(class RenderDeviceD3D11Impl *pDeviceD3D11Impl, ID3DBlob *pShaderBytecode, const ShaderDesc &ShdrDesc);
89 
90  __forceinline Int32 GetMaxCBBindPoint() const{return m_MaxCBBindPoint; }
91  __forceinline Int32 GetMaxSRVBindPoint() const{return m_MaxSRVBindPoint; }
92  __forceinline Int32 GetMaxSamplerBindPoint()const{return m_MaxSamplerBindPoint; }
93  __forceinline Int32 GetMaxUAVBindPoint() const{return m_MaxUAVBindPoint; }
94 
95 #ifdef VERIFY_SHADER_BINDINGS
96  void dbgVerifyCommittedResources(ID3D11Buffer* CommittedD3D11CBs[],
97  ID3D11ShaderResourceView* CommittedD3D11SRVs[],
98  ID3D11Resource* CommittedD3D11SRVResources[],
99  ID3D11SamplerState* CommittedD3D11Samplers[],
100  ID3D11UnorderedAccessView* CommittedD3D11UAVs[],
101  ID3D11Resource* CommittedD3D11UAVResources[],
102  class ShaderResourceCacheD3D11 &ResourceCache)const;
103 #endif
104 
105  const Char *GetShaderName()const{return m_ShaderName;}
106 
107  void InitStaticSamplers(class ShaderResourceCacheD3D11 &ResourceCache)const;
108 
109 private:
110  typedef Int8 MaxBindPointType;
111 
112  MaxBindPointType m_MaxCBBindPoint = -1; // Max == 13
113  MaxBindPointType m_MaxSRVBindPoint = -1; // Max == 127
114  MaxBindPointType m_MaxSamplerBindPoint = -1; // Max == 15
115  MaxBindPointType m_MaxUAVBindPoint = -1; // Max == 7
116  Uint8 m_NumStaticSamplers = 0; // Max == 16
117 
118  static constexpr UINT MaxAllowedBindPoint = std::numeric_limits<MaxBindPointType>::max();
119  static_assert(D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT-1 <= MaxAllowedBindPoint, "Not enough bits to represent max CB slot" );
120  static_assert(D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT-1 <= MaxAllowedBindPoint, "Not enough bits to represent max SRV slot");
121  static_assert(D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT-1 <= MaxAllowedBindPoint, "Not enough bits to represent max Sampler slot");
122  static_assert(D3D11_PS_CS_UAV_REGISTER_COUNT-1 <= MaxAllowedBindPoint, "Not enough bits to represent max UAV slot");
123 
124  // ShaderResourcesD3D11 is part of the ShaderD3D11Impl object, so we can simply
125  // reference shader name without the need to copy it
126  const Char* m_ShaderName;
127 
128  typedef std::pair<const D3DShaderResourceAttribs*, RefCntAutoPtr<ISampler> > StaticSamplerAttribs;
129  StaticSamplerAttribs& GetStaticSampler(Uint32 n)
130  {
131  VERIFY_EXPR(n < m_NumStaticSamplers);
132  return reinterpret_cast< StaticSamplerAttribs* >(m_StaticSamplers.get())[n];
133  }
134 
135  // We have to use void, because we will be calling destructors manually
136  std::unique_ptr< void, STDDeleterRawMem<void > > m_StaticSamplers;
137 };
138 
139 }
Shader description.
Definition: Shader.h:152
+
The class implements a cache that holds resources bound to a specific shader stage.
Definition: ShaderResourceCacheD3D11.h:46
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Diligent::ShaderResources class.
Definition: ShaderResourcesD3D11.h:83
+
Implementation of the Diligent::IRenderDeviceD3D11 interface.
Definition: RenderDeviceD3D11Impl.h:38
+
+ + + + + diff --git a/doc/html/_shader_resources_d3_d12_8h_source.html b/doc/html/_shader_resources_d3_d12_8h_source.html new file mode 100644 index 00000000..7265fc78 --- /dev/null +++ b/doc/html/_shader_resources_d3_d12_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/ShaderResourcesD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderResourcesD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 // ShaderResourcesD3D12 are created by ShaderD3D12Impl instances. They are then referenced by ShaderResourceLayoutD3D12 objects, which are in turn
30 // created by instances of PipelineStatesD3D12Impl and ShaderResourceBindingsD3D12Impl (and ShaderD3D12Impl too)
31 //
32 // _________________
33 // | |
34 // | ShaderD3D12Impl |
35 // |_________________|
36 // |
37 // |shared_ptr
38 // ________V_____________ _____________________________________________________________________
39 // | | unique_ptr | | | | | | |
40 // | ShaderResourcesD3D12 |--------------->| CBs | TexSRVs | TexUAVs | BufSRVs | BufUAVs | Samplers |
41 // |______________________| |________|___________|___________|___________|___________|____________|
42 // A A A A
43 // | \ / \
44 // |shared_ptr Ref Ref Ref
45 // ________|__________________ ________\________________________/_________________________\_________________________________________
46 // | | unique_ptr | | | | | | |
47 // | ShaderResourceLayoutD3D12 |--------------->| SRV_CBV_UAV[0] | SRV_CBV_UAV[1] | ... | Sampler[0] | Sampler[1] | ... |
48 // |___________________________| |___________________|_________________|_______________|__________________|_________________|__________|
49 // A | A
50 // | |___________________SamplerId________________________|
51 // |
52 // __________|_____________
53 // | |
54 // | PipelineStateD3D12Impl |
55 // |________________________|
56 //
57 //
58 // One ShaderResources instance can be referenced by multiple objects
59 //
60 //
61 // ________________________ _<m_ShaderResourceLayouts>_ ____<m_pResourceLayouts>___ ________________________________
62 // | | | | | | | |
63 // | PipelineStateD3D12Impl |-------->| ShaderResourceLayoutD3D12 | ----| ShaderResourceLayoutD3D12 |<-----| ShaderResourceBindingD3D12Impl |
64 // |________________________| |___________________________| | |___________________________| |________________________________|
65 // | |
66 // | shared_ptr |
67 // _________________ ___________V__________ | ____<m_pResourceLayouts>___ ________________________________
68 // | | shared_ptr | | shared_ptr| | | | |
69 // | ShaderD3D12Impl |--------------->| ShaderResourcesD3D12 |<---------------| ShaderResourceLayoutD3D12 |<-----| ShaderResourceBindingD3D12Impl |
70 // |_________________| |______________________| | |___________________________| |________________________________|
71 // | A |
72 // V | |
73 // ____<m_StaticResLayout>____ | | ____<m_pResourceLayouts>___ ________________________________
74 // | | shared_ptr | | | | | |
75 // | ShaderResourceLayoutD3D12 |------------------- ----| ShaderResourceLayoutD3D12 |<-----| ShaderResourceBindingD3D12Impl |
76 // |___________________________| |___________________________| |________________________________|
77 //
78 //
79 
80 
81 #include "ShaderResources.h"
82 
83 namespace Diligent
84 {
85 
87 class ShaderResourcesD3D12 : public ShaderResources
88 {
89 public:
90  // Loads shader resources from the compiled shader bytecode
91  ShaderResourcesD3D12(ID3DBlob *pShaderBytecode, const ShaderDesc &ShdrDesc);
92 };
93 
94 }
Shader description.
Definition: Shader.h:152
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Diligent::ShaderResources class.
Definition: ShaderResourcesD3D12.h:87
+
+ + + + + diff --git a/doc/html/_shader_variable_d3_d_base_8h_source.html b/doc/html/_shader_variable_d3_d_base_8h_source.html new file mode 100644 index 00000000..7c9fe530 --- /dev/null +++ b/doc/html/_shader_variable_d3_d_base_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3DBase/include/ShaderVariableD3DBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ShaderVariableD3DBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "Shader.h"
27 
30 
31 namespace Diligent
32 {
33  template<typename TShaderResourceLayout>
34  struct ShaderVariableD3DBase : public IShaderVariable
35  {
36  ShaderVariableD3DBase(TShaderResourceLayout &ParentResLayout, const D3DShaderResourceAttribs &ResourcesAttribs) :
37  m_ParentResLayout(ParentResLayout),
38  Attribs(ResourcesAttribs)
39  {
40  }
41 
42  virtual IReferenceCounters* GetReferenceCounters()const override final
43  {
44  return m_ParentResLayout.GetOwner().GetReferenceCounters();
45  }
46 
47  virtual Atomics::Long AddRef()override final
48  {
49  return m_ParentResLayout.GetOwner().AddRef();
50  }
51 
52  virtual Atomics::Long Release()override final
53  {
54  return m_ParentResLayout.GetOwner().Release();
55  }
56 
57  void QueryInterface( const INTERFACE_ID &IID, IObject **ppInterface )override final
58  {
59  if( ppInterface == nullptr )
60  return;
61 
62  *ppInterface = nullptr;
63  if( IID == IID_ShaderVariable || IID == IID_Unknown )
64  {
65  *ppInterface = this;
66  (*ppInterface)->AddRef();
67  }
68  }
69 
70  const D3DShaderResourceAttribs &Attribs;
71 
72  protected:
73  TShaderResourceLayout &m_ParentResLayout;
74  };
75 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
static constexpr INTERFACE_ID IID_Unknown
Unknown interface.
Definition: InterfaceID.h:50
+
+ + + + + diff --git a/doc/html/_standard_file_8h_source.html b/doc/html/_standard_file_8h_source.html new file mode 100644 index 00000000..a21dc1be --- /dev/null +++ b/doc/html/_standard_file_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Basic/interface/StandardFile.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
StandardFile.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <stdio.h>
27 
28 #include "BasicFileSystem.h"
29 #include "DataBlob.h"
30 
31 class StandardFile : public BasicFile
32 {
33 public:
34  StandardFile( const FileOpenAttribs &OpenAttribs, Diligent::Char SlashSymbol );
35  virtual ~StandardFile()override;
36 
37  void Read(Diligent::IDataBlob *pData);
38 
39  bool Read(void *Data, size_t BufferSize);
40 
41  bool Write(const void *Data, size_t BufferSize);
42 
43  size_t GetSize();
44 
45  size_t GetPos();
46 
47  void SetPos(size_t Offset, FilePosOrigin Origin);
48 
49 protected:
50  FILE * m_pFile;
51 };
Base interface for a file stream.
Definition: DataBlob.h:39
+
+ + + + + diff --git a/doc/html/_state_objects_registry_8h_source.html b/doc/html/_state_objects_registry_8h_source.html new file mode 100644 index 00000000..62be89fe --- /dev/null +++ b/doc/html/_state_objects_registry_8h_source.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/StateObjectsRegistry.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
StateObjectsRegistry.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DeviceObject.h"
30 #include <unordered_map>
31 #include "STDAllocator.h"
32 
33 namespace Diligent
34 {
36 
57  template<typename ResourceDescType>
59  {
60  public:
62  static constexpr int DeletedObjectsToPurge = 32;
63 
64  StateObjectsRegistry(IMemoryAllocator &RawAllocator, const Char* RegistryName) :
65  m_RegistryName( RegistryName ),
66  m_DescToObjHashMap(STD_ALLOCATOR_RAW_MEM(HashMapElem, RawAllocator, "Allocator for unordered_map<ResourceDescType, RefCntWeakPtr<IDeviceObject> >") )
67  {}
68 
70  {
71  // Object registry is part of the device, and every device
72  // object holds a strong reference to the device. So device
73  // is destroyed after all device objects are destroyed, and there
74  // may only be expired references in the registry. After we
75  // purge it, the registry must be empty.
76  Purge();
77  VERIFY( m_DescToObjHashMap.empty(), "DescToObjHashMap is not empty" );
78  }
79 
81 
91  void Add( const ResourceDescType& ObjectDesc, IDeviceObject *pObject )
92  {
93  ThreadingTools::LockHelper Lock( m_LockFlag );
94 
95  // If the number of outstanding deleted objects reached the threshold value,
96  // purge the registry. Since we have exclusive access now, it is safe
97  // to do.
98  if( m_NumDeletedObjects >= DeletedObjectsToPurge )
99  {
100  Purge();
101  m_NumDeletedObjects = 0;
102  }
103 
104  // Try to construct the new element in place
105  auto Elems = m_DescToObjHashMap.emplace( std::make_pair( ObjectDesc, Diligent::RefCntWeakPtr<IDeviceObject>(pObject) ) );
106  // It is theorertically possible that the same object can be found
107  // in the registry. This might happen if two threads try to create
108  // the same object at the same time. They both will not find the
109  // object and then will create and try to add it.
110  //
111  // If the object already exists, we replace the existing reference.
112  // This is safer as there might be scenarios where existing reference
113  // might be expired. For instance, two threads try to create the same
114  // object which is not in the registry. The first thread creates
115  // the object, adds it to the registry and then releases it. After that
116  // the second thread creates the same object and tries to add it to
117  // the registry. It will find an existing expired reference to the
118  // object.
119  if( !Elems.second )
120  {
121  VERIFY( Elems.first->first == ObjectDesc, "Incorrect object description" );
122  LOG_WARNING_MESSAGE( "Object named \"", Elems.first->first.Name, "\" with the same description already exists in the registry."
123  "Replacing with the new object named \"", ObjectDesc.Name ? ObjectDesc.Name : "", "\".");
124  Elems.first->second = pObject;
125  }
126  }
127 
129  void Find( const ResourceDescType &Desc, IDeviceObject **ppObject )
130  {
131  VERIFY( *ppObject == nullptr, "Overwriting reference to existing object may cause memory leaks" );
132  *ppObject = nullptr;
133  ThreadingTools::LockHelper Lock( m_LockFlag );
134 
135  auto It = m_DescToObjHashMap.find( Desc );
136  if( It != m_DescToObjHashMap.end() )
137  {
138  // Try to obtain strong reference to the object.
139  // This is an atomic operation and we either get
140  // a new strong reference or object has been destroyed
141  // and we get null.
142  auto pObject = It->second.Lock();
143  if( pObject )
144  {
145  *ppObject = pObject.Detach();
146  LOG_INFO_MESSAGE( "Equivalent of the requested state object named \"", Desc.Name ? Desc.Name : "", "\" found in the ", m_RegistryName, " registry. Reusing existing object.");
147  }
148  else
149  {
150  // Expired object found: remove it from the map
151  m_DescToObjHashMap.erase(It);
152  Atomics::AtomicDecrement(m_NumDeletedObjects);
153  }
154  }
155  }
156 
158  void Purge()
159  {
160  Uint32 NumPurgedObjects = 0;
161  auto It = m_DescToObjHashMap.begin();
162  while( It != m_DescToObjHashMap.end() )
163  {
164  auto NextIt = It;
165  ++NextIt;
166  // Note that IsValid() is not a thread-safe function in the sense that it
167  // can give false positive results. The only thread-safe way to check if the
168  // object is alive is to lock the weak pointer, but that requires thread
169  // synchronization. We will immediately unlock the pointer anyway, so we
170  // want to detect 100% expired pointers. IsValid() does provide that information
171  // because once a weak pointer becomes invalid, it will be invalid
172  // until it is destroyed. It is not a problem if we miss an expired weak
173  // pointer as it will definitiely be removed next time.
174  if( !It->second.IsValid() )
175  {
176  m_DescToObjHashMap.erase( It );
177  ++NumPurgedObjects;
178  }
179 
180  It = NextIt;
181  }
182  LOG_INFO_MESSAGE( "Purged ", NumPurgedObjects, " deleted objects from the ", m_RegistryName, " registry" );
183  }
184 
189  {
190  Atomics::AtomicIncrement(m_NumDeletedObjects);
191  }
192 
193  private:
195  ThreadingTools::LockFlag m_LockFlag;
196 
198  Atomics::AtomicLong m_NumDeletedObjects;
199 
201  typedef std::pair< const ResourceDescType, RefCntWeakPtr<IDeviceObject> > HashMapElem;
202  std::unordered_map<ResourceDescType, RefCntWeakPtr<IDeviceObject>, std::hash<ResourceDescType>, std::equal_to<ResourceDescType>, STDAllocatorRawMem<HashMapElem> > m_DescToObjHashMap;
203 
205  const String m_RegistryName;
206  };
207 }
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
static constexpr int DeletedObjectsToPurge
Number of outstanding deleted objects to purge the registry.
Definition: StateObjectsRegistry.h:62
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Template class implementing state object registry.
Definition: StateObjectsRegistry.h:58
+
Implementation of weak pointers.
Definition: RefCntAutoPtr.h:38
+
void Find(const ResourceDescType &Desc, IDeviceObject **ppObject)
Finds the object in the registry.
Definition: StateObjectsRegistry.h:129
+
void Add(const ResourceDescType &ObjectDesc, IDeviceObject *pObject)
Adds a new object to the registry.
Definition: StateObjectsRegistry.h:91
+
void ReportDeletedObject()
Increments the number of outstanding deleted objects. When this number reaches DeletedObjectsToPurge...
Definition: StateObjectsRegistry.h:188
+
void Purge()
Purges outstanding deleted objects from the registry.
Definition: StateObjectsRegistry.h:158
+
+ + + + + diff --git a/doc/html/_string_data_blob_impl_8h_source.html b/doc/html/_string_data_blob_impl_8h_source.html new file mode 100644 index 00000000..bcbff24b --- /dev/null +++ b/doc/html/_string_data_blob_impl_8h_source.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/StringDataBlobImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
StringDataBlobImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DataBlob.h"
30 #include "BasicTypes.h"
31 #include "ObjectBase.h"
32 #include <vector>
33 
34 namespace Diligent
35 {
36 
38 class StringDataBlobImpl : public Diligent::ObjectBase<IDataBlob>
39 {
40 public:
42 
43  StringDataBlobImpl( IReferenceCounters* pRefCounters, const String &str ) : TBase(pRefCounters), m_String(str) {}
44  StringDataBlobImpl( IReferenceCounters* pRefCounters, String &&str ) : TBase(pRefCounters), m_String( std::move(str) ) {}
45 
46  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_DataBlob, TBase )
47 
48 
49  virtual void Resize(size_t NewSize)override
50  {
51  m_String.resize(NewSize);
52  }
53 
55  virtual size_t GetSize()override
56  {
57  return m_String.length();
58  }
59 
61  virtual void* GetDataPtr()override
62  {
63  return &m_String[0];
64  }
65 
66 private:
67  String m_String;
68 };
69 
70 }
Template class implementing base functionality for an object.
Definition: ObjectBase.h:62
+
virtual size_t GetSize() override
Returns the size of the internal data buffer.
Definition: StringDataBlobImpl.h:55
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Base interface for a file stream.
Definition: StringDataBlobImpl.h:38
+
virtual void Resize(size_t NewSize) override
Sets the size of the internal data buffer.
Definition: StringDataBlobImpl.h:49
+
virtual void * GetDataPtr() override
Returns the pointer to the internal data buffer.
Definition: StringDataBlobImpl.h:61
+
+ + + + + diff --git a/doc/html/_string_tools_8h_source.html b/doc/html/_string_tools_8h_source.html new file mode 100644 index 00000000..761ef6d6 --- /dev/null +++ b/doc/html/_string_tools_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/StringTools.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
StringTools.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <string>
27 #include <sstream>
28 #include <locale>
29 #include <algorithm>
30 #include <cctype>
31 #include "DebugUtilities.h"
32 
33 namespace Diligent
34 {
35 
36 inline std::string NarrowString(const std::wstring &WideStr)
37 {
38  std::string NarrowStr;
39  const std::ctype<wchar_t>& ctfacet = std::use_facet< std::ctype<wchar_t> >( std::wstringstream().getloc() ) ;
40  for( std::wstring::const_iterator CurrWChar = WideStr.begin();
41  CurrWChar != WideStr.end();
42  CurrWChar++ )
43  NarrowStr.push_back( ctfacet.narrow( *CurrWChar, 0 ) );
44 
45  return NarrowStr;
46 }
47 
48 inline std::wstring WidenString(const char *Str)
49 {
50  std::wstring WideStr;
51  const std::ctype<wchar_t>& ctfacet = std::use_facet< std::ctype<wchar_t> >( std::wstringstream().getloc() ) ;
52  for( auto CurrChar = Str; *CurrChar != 0; ++CurrChar )
53  WideStr.push_back( ctfacet.widen( *CurrChar ) );
54 
55  return WideStr;
56 }
57 
58 inline std::wstring WidenString(const std::string &Str)
59 {
60  std::wstring WideStr;
61  const std::ctype<wchar_t>& ctfacet = std::use_facet< std::ctype<wchar_t> >( std::wstringstream().getloc() ) ;
62  for( std::string::const_iterator CurrChar = Str.begin();
63  CurrChar != Str.end();
64  CurrChar++ )
65  WideStr.push_back( ctfacet.widen( *CurrChar ) );
66 
67  return WideStr;
68 }
69 
70 inline int StrCmpNoCase(const char* Str1, const char* Str2, size_t NumChars)
71 {
72 #if defined(PLATFORM_ANDROID) || defined(PLATFORM_LINUX)
73 # define _strnicmp strncasecmp
74 #endif
75 
76  return _strnicmp( Str1, Str2, NumChars );
77 }
78 
79 inline int StrCmpNoCase(const char* Str1, const char* Str2)
80 {
81 #if defined(PLATFORM_ANDROID) || defined(PLATFORM_LINUX)
82 # define _stricmp strcasecmp
83 #endif
84 
85  return _stricmp( Str1, Str2 );
86 }
87 
88 // Returns true if RefStr == Str + Suff
89 inline bool StrCmpSuff(const char *RefStr, const char *Str, const char *Suff)
90 {
91  VERIFY_EXPR(RefStr != nullptr && Str!= nullptr && Suff != nullptr);
92  if(RefStr==nullptr)
93  return false;
94 
95  const auto *r = RefStr;
96  const auto *s = Str;
97  for(; *r!=0 && *s!=0; ++r, ++s)
98  {
99  if (*r != *s)
100  return false;
101  }
102 
103  if( *s != 0 )
104  {
105  VERIFY_EXPR(*r == 0);
106  return false;
107  }
108 
109  return strcmp(r, Suff) == 0;
110 }
111 
112 inline void StrToLowerInPlace(std::string &str)
113 {
114  std::transform(str.begin(), str.end(), str.begin(),
115  // http://en.cppreference.com/w/cpp/string/byte/tolower
116  [](unsigned char c) { return static_cast<char>(std::tolower(c)); }
117  );
118 }
119 
120 inline std::string StrToLower(std::string str)
121 {
122  StrToLowerInPlace(str);
123  return str;
124 }
125 
126 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_swap_chain_8h_source.html b/doc/html/_swap_chain_8h_source.html new file mode 100644 index 00000000..b4732b0b --- /dev/null +++ b/doc/html/_swap_chain_8h_source.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/SwapChain.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
SwapChain.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Object.h"
30 
31 namespace Diligent
32 {
33 
34 // {1C703B77-6607-4EEC-B1FE-15C82D3B4130}
35 static constexpr INTERFACE_ID IID_SwapChain =
36 { 0x1c703b77, 0x6607, 0x4eec, { 0xb1, 0xfe, 0x15, 0xc8, 0x2d, 0x3b, 0x41, 0x30 } };
37 
39 
41 class ISwapChain : public IObject
42 {
43 public:
44 
46  virtual void Present() = 0;
47 
49  virtual const SwapChainDesc& GetDesc()const = 0;
50 
52 
55  virtual void Resize( Uint32 NewWidth, Uint32 NewHeight ) = 0;
56 };
57 
58 }
Swap chain description.
Definition: GraphicsTypes.h:912
+
virtual const SwapChainDesc & GetDesc() const =0
Returns the swap chain desctription.
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual void Resize(Uint32 NewWidth, Uint32 NewHeight)=0
Changes the swap chain&#39;s back buffer size.
+
Swap chain interface.
Definition: SwapChain.h:41
+
virtual void Present()=0
Presents a rendered image to the user.
+
+ + + + + diff --git a/doc/html/_swap_chain_base_8h_source.html b/doc/html/_swap_chain_base_8h_source.html new file mode 100644 index 00000000..6f18b3bf --- /dev/null +++ b/doc/html/_swap_chain_base_8h_source.html @@ -0,0 +1,98 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/SwapChainBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
SwapChainBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "SwapChain.h"
30 #include "DeviceObjectBase.h"
31 #include "Errors.h"
32 
33 namespace Diligent
34 {
35 
37 
42 template<class BaseInterface>
43 class SwapChainBase : public ObjectBase<BaseInterface>
44 {
45 public:
47 
52  SwapChainBase( IReferenceCounters *pRefCounters,
53  IRenderDevice *pDevice,
54  IDeviceContext *pDeviceContext,
55  const SwapChainDesc& SCDesc ) :
56  TObjectBase(pRefCounters),
57  m_pRenderDevice(pDevice),
58  m_wpDeviceContext(pDeviceContext),
59  m_SwapChainDesc(SCDesc)
60  {
61  }
62 
63  ~SwapChainBase()
64  {
65  }
66 
67  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_SwapChain, TObjectBase )
68 
69 
70  virtual const SwapChainDesc& GetDesc()const override final
71  {
72  return m_SwapChainDesc;
73  }
74 
75 protected:
76  bool Resize( Uint32 NewWidth, Uint32 NewHeight, Int32 Dummy = 0/*To be different from virtual function*/ )
77  {
78  if( NewWidth != 0 && NewHeight != 0 &&
79  (m_SwapChainDesc.Width != NewWidth || m_SwapChainDesc.Height != NewHeight) )
80  {
81  m_SwapChainDesc.Width = NewWidth;
82  m_SwapChainDesc.Height = NewHeight;
83  LOG_INFO_MESSAGE("Changing display resolution to ", m_SwapChainDesc.Width, "x", m_SwapChainDesc.Height);
84  return true;
85  }
86 
87  return false;
88  }
89 
92 
96 
99 
100 private:
101  SwapChainBase( const SwapChainBase& );
103  const SwapChainBase& operator = ( const SwapChainBase& );
104  const SwapChainBase& operator = ( SwapChainBase&& );
105 };
106 
107 }
Swap chain description.
Definition: GraphicsTypes.h:912
+
Render device interface.
Definition: RenderDevice.h:55
+
SwapChainBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, IDeviceContext *pDeviceContext, const SwapChainDesc &SCDesc)
Definition: SwapChainBase.h:52
+
Template class implementing base functionality for an object.
Definition: ObjectBase.h:62
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Diligent::RefCntAutoPtr< IRenderDevice > m_pRenderDevice
Strong reference to the render device.
Definition: SwapChainBase.h:91
+
Base implementation of the swap chain.
Definition: SwapChainBase.h:43
+
virtual const SwapChainDesc & GetDesc() const override final
Implementation of ISwapChain::GetDesc()
Definition: SwapChainBase.h:70
+
Device context interface.
Definition: DeviceContext.h:443
+
Diligent::RefCntWeakPtr< IDeviceContext > m_wpDeviceContext
Weak references to the immediate device context. The context holds the strong reference to the swap c...
Definition: SwapChainBase.h:95
+
Implementation of weak pointers.
Definition: RefCntAutoPtr.h:38
+
SwapChainDesc m_SwapChainDesc
Swap chain description.
Definition: SwapChainBase.h:98
+
Template class that implements reference counting.
Definition: RefCntAutoPtr.h:71
+
Uint32 Height
The swap chain height. Default value is 0.
Definition: GraphicsTypes.h:918
+
Uint32 Width
The swap chain width. Default value is 0.
Definition: GraphicsTypes.h:915
+
+ + + + + diff --git a/doc/html/_swap_chain_d3_d11_8h_source.html b/doc/html/_swap_chain_d3_d11_8h_source.html new file mode 100644 index 00000000..cf1b4a73 --- /dev/null +++ b/doc/html/_swap_chain_d3_d11_8h_source.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/interface/SwapChainD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
SwapChainD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "SwapChain.h"
30 
31 namespace Diligent
32 {
33 
34 // {4DAF2E76-9204-4DC4-A53A-B00097412D3A}
35 static constexpr INTERFACE_ID IID_SwapChainD3D11 =
36 { 0x4daf2e76, 0x9204, 0x4dc4, { 0xa5, 0x3a, 0xb0, 0x0, 0x97, 0x41, 0x2d, 0x3a } };
37 
40 {
41 public:
42 
44 
47  virtual IDXGISwapChain *GetDXGISwapChain() = 0;
48 
50 
53  virtual ID3D11RenderTargetView *GetRTV() = 0;
54 
56 
59  virtual ID3D11DepthStencilView *GetDSV() = 0;
60 };
61 
62 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Swap chain interface.
Definition: SwapChain.h:41
+
virtual ID3D11RenderTargetView * GetRTV()=0
Returns d3d11 render target view of the swap chain&#39;s back buffer.
+
virtual IDXGISwapChain * GetDXGISwapChain()=0
Returns a pointer to the IDXGISwapChain interface of the internal DXGI object.
+
Interface to the swap chain object implemented in D3D11.
Definition: SwapChainD3D11.h:39
+
virtual ID3D11DepthStencilView * GetDSV()=0
Returns d3d11 depth stencil view of the internal depth buffer object.
+
+ + + + + diff --git a/doc/html/_swap_chain_d3_d11_impl_8h_source.html b/doc/html/_swap_chain_d3_d11_impl_8h_source.html new file mode 100644 index 00000000..93865ae2 --- /dev/null +++ b/doc/html/_swap_chain_d3_d11_impl_8h_source.html @@ -0,0 +1,94 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/SwapChainD3D11Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
SwapChainD3D11Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "SwapChainD3D11.h"
30 #include "SwapChainBase.h"
31 
32 namespace Diligent
33 {
34 
35 class IMemoryAllocator;
37 class SwapChainD3D11Impl : public SwapChainBase<ISwapChainD3D11>
38 {
39 public:
41  SwapChainD3D11Impl(IReferenceCounters *pRefCounters,
43  class RenderDeviceD3D11Impl* pRenderDeviceD3D11,
44  class DeviceContextD3D11Impl* pDeviceContextD3D11,
45  void* pNativeWndHandle);
47 
48  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final;
49 
50  virtual void Present()override final;
51  virtual void Resize( Uint32 NewWidth, Uint32 NewHeight )override final;
52 
53  virtual IDXGISwapChain *GetDXGISwapChain()override final{ return m_pSwapChain; }
54 
55  virtual ID3D11RenderTargetView* GetRTV()override final{ return m_pRenderTargetView; }
56  virtual ID3D11DepthStencilView* GetDSV()override final{ return m_pDepthStencilView; }
57 
58 private:
59  void CreateRTVandDSV();
61  CComPtr<IDXGISwapChain> m_pSwapChain;
63  CComPtr<ID3D11RenderTargetView> m_pRenderTargetView;
65  CComPtr<ID3D11DepthStencilView> m_pDepthStencilView;
66 };
67 
68 }
Swap chain description.
Definition: GraphicsTypes.h:912
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Implementation of the Diligent::ISwapChainD3D11 interface.
Definition: SwapChainD3D11Impl.h:37
+
virtual ID3D11DepthStencilView * GetDSV() override final
Returns d3d11 depth stencil view of the internal depth buffer object.
Definition: SwapChainD3D11Impl.h:56
+
virtual void Present() override final
Presents a rendered image to the user.
Definition: SwapChainD3D11Impl.cpp:173
+
Base implementation of the swap chain.
Definition: SwapChainBase.h:43
+
Implementation of the Diligent::IRenderDeviceD3D11 interface.
Definition: RenderDeviceD3D11Impl.h:38
+
virtual void Resize(Uint32 NewWidth, Uint32 NewHeight) override final
Changes the swap chain&#39;s back buffer size.
Definition: SwapChainD3D11Impl.cpp:207
+
virtual IDXGISwapChain * GetDXGISwapChain() override final
Returns a pointer to the IDXGISwapChain interface of the internal DXGI object.
Definition: SwapChainD3D11Impl.h:53
+
Implementation of the Diligent::IDeviceContextD3D11 interface.
Definition: DeviceContextD3D11Impl.h:41
+
virtual ID3D11RenderTargetView * GetRTV() override final
Returns d3d11 render target view of the swap chain&#39;s back buffer.
Definition: SwapChainD3D11Impl.h:55
+
+ + + + + diff --git a/doc/html/_swap_chain_d3_d12_8h_source.html b/doc/html/_swap_chain_d3_d12_8h_source.html new file mode 100644 index 00000000..80e09167 --- /dev/null +++ b/doc/html/_swap_chain_d3_d12_8h_source.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/interface/SwapChainD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
SwapChainD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include <dxgi1_4.h>
30 #include "SwapChain.h"
31 #include "TextureViewD3D12.h"
32 
33 namespace Diligent
34 {
35 
36 // {C9F8384D-A45E-4970-8447-394177E5B0EE}
37 static constexpr INTERFACE_ID IID_SwapChainD3D12 =
38 { 0xc9f8384d, 0xa45e, 0x4970, { 0x84, 0x47, 0x39, 0x41, 0x77, 0xe5, 0xb0, 0xee } };
39 
42 {
43 public:
44 
46 
49  virtual IDXGISwapChain *GetDXGISwapChain() = 0;
50 
52 
56 
58 
61  virtual ITextureViewD3D12* GetDepthBufferDSV() = 0;
62 };
63 
64 }
virtual ITextureViewD3D12 * GetCurrentBackBufferRTV()=0
Returns a pointer to the render target view of the current back buffer in the swap chain...
+
virtual ITextureViewD3D12 * GetDepthBufferDSV()=0
Returns a pointer to the depth-stencil view of the depth buffer.
+
Interface to the swap chain object implemented in D3D12.
Definition: SwapChainD3D12.h:41
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual IDXGISwapChain * GetDXGISwapChain()=0
Returns a pointer to the IDXGISwapChain interface of the internal DXGI object.
+
Interface to the texture view object implemented in D3D11.
Definition: TextureViewD3D12.h:39
+
Swap chain interface.
Definition: SwapChain.h:41
+
+ + + + + diff --git a/doc/html/_swap_chain_d3_d12_impl_8h_source.html b/doc/html/_swap_chain_d3_d12_impl_8h_source.html new file mode 100644 index 00000000..ff8b9edf --- /dev/null +++ b/doc/html/_swap_chain_d3_d12_impl_8h_source.html @@ -0,0 +1,96 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/SwapChainD3D12Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
SwapChainD3D12Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include <dxgi1_4.h>
30 #include "SwapChainD3D12.h"
31 #include "SwapChainBase.h"
32 
33 namespace Diligent
34 {
35 
36 class ITextureViewD3D12;
37 class IMemoryAllocator;
39 class SwapChainD3D12Impl : public SwapChainBase<ISwapChainD3D12>
40 {
41 public:
43  SwapChainD3D12Impl(IReferenceCounters *pRefCounters,
45  class RenderDeviceD3D12Impl* pRenderDeviceD3D12,
46  class DeviceContextD3D12Impl* pDeviceContextD3D12,
47  void* pNativeWndHandle);
49 
50  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface );
51 
52  virtual void Present();
53  virtual void Resize( Uint32 NewWidth, Uint32 NewHeight );
54 
55  virtual IDXGISwapChain* GetDXGISwapChain()override final{ return m_pSwapChain; }
56  virtual ITextureViewD3D12* GetCurrentBackBufferRTV()override final;
57  virtual ITextureViewD3D12* GetDepthBufferDSV()override final{return m_pDepthBufferDSV;}
58 
59 private:
60  void InitBuffersAndViews();
61 
63  CComPtr<IDXGISwapChain3> m_pSwapChain;
64 
65  std::vector< RefCntAutoPtr<ITextureViewD3D12>, STDAllocatorRawMem<RefCntAutoPtr<ITextureViewD3D12>> > m_pBackBufferRTV;
66  RefCntAutoPtr<ITextureViewD3D12> m_pDepthBufferDSV;
67 };
68 
69 }
Swap chain description.
Definition: GraphicsTypes.h:912
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Implementation of the Diligent::IDeviceContext interface.
Definition: DeviceContextD3D12Impl.h:41
+
Implementation of the Diligent::ISwapChainD3D12 interface.
Definition: SwapChainD3D12Impl.h:39
+
Interface to the texture view object implemented in D3D11.
Definition: TextureViewD3D12.h:39
+
virtual ITextureViewD3D12 * GetDepthBufferDSV() override final
Returns a pointer to the depth-stencil view of the depth buffer.
Definition: SwapChainD3D12Impl.h:57
+
virtual void Present()
Presents a rendered image to the user.
Definition: SwapChainD3D12Impl.cpp:168
+
Base implementation of the swap chain.
Definition: SwapChainBase.h:43
+
virtual void Resize(Uint32 NewWidth, Uint32 NewHeight)
Changes the swap chain&#39;s back buffer size.
Definition: SwapChainD3D12Impl.cpp:209
+
virtual ITextureViewD3D12 * GetCurrentBackBufferRTV() override final
Returns a pointer to the render target view of the current back buffer in the swap chain...
Definition: SwapChainD3D12Impl.cpp:259
+
virtual IDXGISwapChain * GetDXGISwapChain() override final
Returns a pointer to the IDXGISwapChain interface of the internal DXGI object.
Definition: SwapChainD3D12Impl.h:55
+
Template class that implements reference counting.
Definition: RefCntAutoPtr.h:71
+
Implementation of the Diligent::IRenderDeviceD3D12 interface.
Definition: RenderDeviceD3D12Impl.h:43
+
+ + + + + diff --git a/doc/html/_swap_chain_g_l_8h_source.html b/doc/html/_swap_chain_g_l_8h_source.html new file mode 100644 index 00000000..d61a5376 --- /dev/null +++ b/doc/html/_swap_chain_g_l_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/interface/SwapChainGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
SwapChainGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "SwapChain.h"
30 
31 namespace Diligent
32 {
33 
34 // {F457BD7C-E725-4D3E-8607-A1F9BAE329EB}
35 static constexpr INTERFACE_ID IID_SwapChainGL =
36 { 0xf457bd7c, 0xe725, 0x4d3e, { 0x86, 0x7, 0xa1, 0xf9, 0xba, 0xe3, 0x29, 0xeb } };
37 
39 class ISwapChainGL : public ISwapChain
40 {
41 public:
42 };
43 
44 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Swap chain interface.
Definition: SwapChain.h:41
+
Interface to the swap chain object implemented in OpenGL.
Definition: SwapChainGL.h:39
+
+ + + + + diff --git a/doc/html/_swap_chain_g_l_impl_8h_source.html b/doc/html/_swap_chain_g_l_impl_8h_source.html new file mode 100644 index 00000000..7c2699d9 --- /dev/null +++ b/doc/html/_swap_chain_g_l_impl_8h_source.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/SwapChainGLImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
SwapChainGLImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "SwapChainGL.h"
27 #include "SwapChainBase.h"
28 
29 namespace Diligent
30 {
31 
32 class IMemoryAllocator;
34 class SwapChainGLImpl : public SwapChainBase<ISwapChainGL>
35 {
36 public:
38 
39  SwapChainGLImpl(IReferenceCounters *pRefCounters,
41  class RenderDeviceGLImpl* pRenderDeviceGL,
42  class DeviceContextGLImpl* pImmediateContextGL);
43  ~SwapChainGLImpl();
44 
45  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface );
46 
47  virtual void Present();
48 
49  virtual void Resize( Uint32 NewWidth, Uint32 NewHeight );
50 };
51 
52 }
Swap chain description.
Definition: GraphicsTypes.h:912
+
virtual void Resize(Uint32 NewWidth, Uint32 NewHeight)
Changes the swap chain&#39;s back buffer size.
Definition: SwapChainGLImpl.cpp:51
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Implementation of the Diligent::IDeviceContextGL interface.
Definition: DeviceContextGLImpl.h:35
+
Implementation of the render device interface in OpenGL.
Definition: RenderDeviceGLImpl.h:53
+
Base implementation of the swap chain.
Definition: SwapChainBase.h:43
+
virtual void Present()
Presents a rendered image to the user.
Definition: SwapChainGLImpl.cpp:45
+
Implementation of the Diligent::ISwapChainGL interface.
Definition: SwapChainGLImpl.h:34
+
+ + + + + diff --git a/doc/html/_tex_region_render_8h_source.html b/doc/html/_tex_region_render_8h_source.html new file mode 100644 index 00000000..b8f9a020 --- /dev/null +++ b/doc/html/_tex_region_render_8h_source.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/TexRegionRender.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TexRegionRender.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 namespace Diligent
27 {
28 
29 // Helper class to facilitate texture copying by rendering
30 class TexRegionRender
31 {
32 public:
33  TexRegionRender(class RenderDeviceGLImpl *pDeviceGL);
34  void SetStates(class DeviceContextGLImpl *pCtxGL);
35  void RestoreStates(class DeviceContextGLImpl *pCtxGL);
36  void Render(class DeviceContextGLImpl *pCtxGL,
37  ITextureView *pSrcSRV,
38  RESOURCE_DIMENSION TexType,
39  TEXTURE_FORMAT TexFormat,
40  Int32 DstToSrcXOffset,
41  Int32 DstToSrcYOffset,
42  Int32 SrcZ,
43  Int32 SrcMipLevel);
44 
45 private:
46  Diligent::RefCntAutoPtr<IShader> m_pVertexShader;
48  Diligent::RefCntAutoPtr<IBuffer> m_pConstantBuffer;
50 
52  Uint32 m_OrigStencilRef = 0;
53  float m_OrigBlendFactors[4] = {};
54  Uint32 m_NumRenderTargets = 0;
55  ITextureView *m_pOrigRTVs[MaxRenderTargets] = {};
57  std::vector<Viewport> m_OrigViewports;
58 };
59 
60 }
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
static constexpr Uint32 MaxRenderTargets
Maximum number of simultaneous render targets.
Definition: Constants.h:36
+
RESOURCE_DIMENSION
Describes resource dimension.
Definition: GraphicsTypes.h:172
+
Helper value that stores the total number of texture types in the enumeration.
Definition: GraphicsTypes.h:183
+
Template class that implements reference counting.
Definition: RefCntAutoPtr.h:71
+
+ + + + + diff --git a/doc/html/_texture1_d___d3_d11_8h_source.html b/doc/html/_texture1_d___d3_d11_8h_source.html new file mode 100644 index 00000000..c09e1e2e --- /dev/null +++ b/doc/html/_texture1_d___d3_d11_8h_source.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/Texture1D_D3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Texture1D_D3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "TextureBaseD3D11.h"
30 
31 namespace Diligent
32 {
33 
36 {
37 public:
38  Texture1D_D3D11(IReferenceCounters *pRefCounters,
39  FixedBlockMemoryAllocator &TexViewObjAllocator,
40  class RenderDeviceD3D11Impl *pDeviceD3D11,
41  const TextureDesc& TexDesc,
42  const TextureData &InitData = TextureData());
43  Texture1D_D3D11(IReferenceCounters *pRefCounters,
44  FixedBlockMemoryAllocator &TexViewObjAllocator,
45  class RenderDeviceD3D11Impl *pDeviceD3D11,
46  ID3D11Texture1D *pd3d11Texture);
47  ~Texture1D_D3D11();
48 
49 protected:
50  virtual void CreateSRV( TextureViewDesc &SRVDesc, ID3D11ShaderResourceView **ppD3D11SRV )override final;
51  virtual void CreateRTV( TextureViewDesc &RTVDesc, ID3D11RenderTargetView **ppD3D11RTV )override final;
52  virtual void CreateDSV( TextureViewDesc &DSVDesc, ID3D11DepthStencilView **ppD3D11DSV )override final;
53  virtual void CreateUAV( TextureViewDesc &UAVDesc, ID3D11UnorderedAccessView **ppD3D11UAV )override final;
54 };
55 
56 }
Texture description.
Definition: Texture.h:82
+
Base implementation of the Diligent::ITextureD3D11 interface.
Definition: TextureBaseD3D11.h:50
+
Implementation of a 1D texture.
Definition: Texture1D_D3D11.h:35
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Describes the initial data to store in the texture.
Definition: Texture.h:243
+
Memory allocator that allocates memory in a fixed-size chunks.
Definition: FixedBlockMemoryAllocator.h:50
+
Implementation of the Diligent::IRenderDeviceD3D11 interface.
Definition: RenderDeviceD3D11Impl.h:38
+
Texture view description.
Definition: TextureView.h:55
+
+ + + + + diff --git a/doc/html/_texture1_d___o_g_l_8h_source.html b/doc/html/_texture1_d___o_g_l_8h_source.html new file mode 100644 index 00000000..97043418 --- /dev/null +++ b/doc/html/_texture1_d___o_g_l_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/Texture1D_OGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Texture1D_OGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "TextureBaseGL.h"
27 
28 namespace Diligent
29 {
30 
31 class Texture1D_OGL : public TextureBaseGL
32 {
33 public:
34  Texture1D_OGL( IReferenceCounters *pRefCounters,
35  FixedBlockMemoryAllocator& TexViewObjAllocator,
36  class RenderDeviceGLImpl *pDeviceGL,
37  class DeviceContextGLImpl *pDeviceContext,
38  const TextureDesc& TexDesc,
39  const TextureData& InitData = TextureData(),
40  bool bIsDeviceInternal = false);
41 
42  Texture1D_OGL( IReferenceCounters *pRefCounters,
43  FixedBlockMemoryAllocator& TexViewObjAllocator,
44  class RenderDeviceGLImpl *pDeviceGL,
45  class DeviceContextGLImpl *pDeviceContext,
46  const TextureDesc& TexDesc,
47  GLuint GLTextureHandle,
48  bool bIsDeviceInternal = false);
49  ~Texture1D_OGL();
50 
51  virtual void UpdateData( IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData )override final;
52  virtual void AttachToFramebuffer( const struct TextureViewDesc& ViewDesc, GLenum AttachmentPoint )override final;
53 
54 private:
55 
56 };
57 
58 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_texture1_d_array___o_g_l_8h_source.html b/doc/html/_texture1_d_array___o_g_l_8h_source.html new file mode 100644 index 00000000..8181ea09 --- /dev/null +++ b/doc/html/_texture1_d_array___o_g_l_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/Texture1DArray_OGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Texture1DArray_OGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "TextureBaseGL.h"
27 
28 namespace Diligent
29 {
30 
31 class Texture1DArray_OGL : public TextureBaseGL
32 {
33 public:
34  Texture1DArray_OGL( IReferenceCounters *pRefCounters,
35  FixedBlockMemoryAllocator& TexViewObjAllocator,
36  class RenderDeviceGLImpl *pDeviceGL,
37  class DeviceContextGLImpl *pDeviceContext,
38  const TextureDesc& TexDesc,
39  const TextureData& InitData = TextureData(),
40  bool bIsDeviceInternal = false);
41 
42  Texture1DArray_OGL( IReferenceCounters *pRefCounters,
43  FixedBlockMemoryAllocator& TexViewObjAllocator,
44  class RenderDeviceGLImpl *pDeviceGL,
45  class DeviceContextGLImpl *pDeviceContext,
46  const TextureDesc& TexDesc,
47  GLuint GLTextureHandle,
48  bool bIsDeviceInternal = false);
49  ~Texture1DArray_OGL();
50 
51  virtual void UpdateData( IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData )override final;
52  virtual void AttachToFramebuffer( const struct TextureViewDesc& ViewDesc, GLenum AttachmentPoint )override final;
53 
54 private:
55 
56 };
57 
58 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_texture2_d___d3_d11_8h_source.html b/doc/html/_texture2_d___d3_d11_8h_source.html new file mode 100644 index 00000000..d7227982 --- /dev/null +++ b/doc/html/_texture2_d___d3_d11_8h_source.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/Texture2D_D3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Texture2D_D3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "TextureBaseD3D11.h"
30 
31 namespace Diligent
32 {
33 
36 {
37 public:
38  Texture2D_D3D11(IReferenceCounters *pRefCounters,
39  FixedBlockMemoryAllocator &TexViewObjAllocator,
40  class RenderDeviceD3D11Impl *pDeviceD3D11,
41  const TextureDesc& TexDesc,
42  const TextureData &InitData = TextureData());
43  Texture2D_D3D11(IReferenceCounters *pRefCounters,
44  FixedBlockMemoryAllocator &TexViewObjAllocator,
45  class RenderDeviceD3D11Impl *pDeviceD3D11,
46  ID3D11Texture2D *pd3d11Texture);
47  ~Texture2D_D3D11();
48 
49 protected:
50  virtual void CreateSRV( TextureViewDesc &SRVDesc, ID3D11ShaderResourceView **ppD3D11SRV )override final;
51  virtual void CreateRTV( TextureViewDesc &RTVDesc, ID3D11RenderTargetView **ppD3D11RTV )override final;
52  virtual void CreateDSV( TextureViewDesc &DSVDesc, ID3D11DepthStencilView **ppD3D11DSV )override final;
53  virtual void CreateUAV( TextureViewDesc &UAVDesc, ID3D11UnorderedAccessView **ppD3D11UAV )override final;
54 };
55 
56 }
Texture description.
Definition: Texture.h:82
+
Base implementation of the Diligent::ITextureD3D11 interface.
Definition: TextureBaseD3D11.h:50
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Describes the initial data to store in the texture.
Definition: Texture.h:243
+
Memory allocator that allocates memory in a fixed-size chunks.
Definition: FixedBlockMemoryAllocator.h:50
+
Implementation of the Diligent::IRenderDeviceD3D11 interface.
Definition: RenderDeviceD3D11Impl.h:38
+
Texture view description.
Definition: TextureView.h:55
+
Implementation of a 2D texture.
Definition: Texture2D_D3D11.h:35
+
+ + + + + diff --git a/doc/html/_texture2_d___o_g_l_8h_source.html b/doc/html/_texture2_d___o_g_l_8h_source.html new file mode 100644 index 00000000..f4d8539d --- /dev/null +++ b/doc/html/_texture2_d___o_g_l_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/Texture2D_OGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Texture2D_OGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "TextureBaseGL.h"
27 
28 namespace Diligent
29 {
30 
31 class Texture2D_OGL : public TextureBaseGL
32 {
33 public:
34  Texture2D_OGL( IReferenceCounters *pRefCounters,
35  FixedBlockMemoryAllocator& TexViewObjAllocator,
36  class RenderDeviceGLImpl *pDeviceGL,
37  class DeviceContextGLImpl *pDeviceContext,
38  const TextureDesc& TexDesc,
39  const TextureData& InitData = TextureData(),
40  bool bIsDeviceInternal = false);
41 
42  Texture2D_OGL( IReferenceCounters *pRefCounters,
43  FixedBlockMemoryAllocator& TexViewObjAllocator,
44  class RenderDeviceGLImpl *pDeviceGL,
45  class DeviceContextGLImpl *pDeviceContext,
46  const TextureDesc& TexDesc,
47  GLuint GLTextureHandle,
48  bool bIsDeviceInternal = false);
49  ~Texture2D_OGL();
50 
51  virtual void UpdateData( IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData )override final;
52  virtual void AttachToFramebuffer( const struct TextureViewDesc& ViewDesc, GLenum AttachmentPoint )override final;
53 
54 private:
55 
56 };
57 
58 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_texture2_d_array___o_g_l_8h_source.html b/doc/html/_texture2_d_array___o_g_l_8h_source.html new file mode 100644 index 00000000..060870ab --- /dev/null +++ b/doc/html/_texture2_d_array___o_g_l_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/Texture2DArray_OGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Texture2DArray_OGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "TextureBaseGL.h"
27 
28 namespace Diligent
29 {
30 
31 class Texture2DArray_OGL : public TextureBaseGL
32 {
33 public:
34  Texture2DArray_OGL( IReferenceCounters *pRefCounters,
35  FixedBlockMemoryAllocator& TexViewObjAllocator,
36  class RenderDeviceGLImpl *pDeviceGL,
37  class DeviceContextGLImpl *pDeviceContext,
38  const TextureDesc& TexDesc,
39  const TextureData& InitData = TextureData(),
40  bool bIsDeviceInternal = false );
41 
42  Texture2DArray_OGL( IReferenceCounters *pRefCounters,
43  FixedBlockMemoryAllocator& TexViewObjAllocator,
44  class RenderDeviceGLImpl *pDeviceGL,
45  class DeviceContextGLImpl *pDeviceContext,
46  const TextureDesc& TexDesc,
47  GLuint GLTextureHandle,
48  bool bIsDeviceInternal = false);
49  ~Texture2DArray_OGL();
50 
51  virtual void UpdateData( IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData )override final;
52  virtual void AttachToFramebuffer( const struct TextureViewDesc& ViewDesc, GLenum AttachmentPoint )override final;
53 
54 private:
55 
56 };
57 
58 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_texture3_d___d3_d11_8h_source.html b/doc/html/_texture3_d___d3_d11_8h_source.html new file mode 100644 index 00000000..f49f97ad --- /dev/null +++ b/doc/html/_texture3_d___d3_d11_8h_source.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/Texture3D_D3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Texture3D_D3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "TextureBaseD3D11.h"
30 
31 namespace Diligent
32 {
33 
36 {
37 public:
38  Texture3D_D3D11(IReferenceCounters *pRefCounters,
39  FixedBlockMemoryAllocator &TexViewObjAllocator,
40  class RenderDeviceD3D11Impl *pDeviceD3D11,
41  const TextureDesc& TexDesc,
42  const TextureData &InitData = TextureData());
43  Texture3D_D3D11(IReferenceCounters *pRefCounters,
44  FixedBlockMemoryAllocator &TexViewObjAllocator,
45  class RenderDeviceD3D11Impl *pDeviceD3D11,
46  ID3D11Texture3D *pd3d11Texture);
47  ~Texture3D_D3D11();
48 
49 protected:
50  virtual void CreateSRV( TextureViewDesc &SRVDesc, ID3D11ShaderResourceView **ppD3D11SRV )override final;
51  virtual void CreateRTV( TextureViewDesc &RTVDesc, ID3D11RenderTargetView **ppD3D11RTV )override final;
52  virtual void CreateDSV( TextureViewDesc &DSVDesc, ID3D11DepthStencilView **ppD3D11DSV )override final;
53  virtual void CreateUAV( TextureViewDesc &UAVDesc, ID3D11UnorderedAccessView **ppD3D11UAV )override final;
54 };
55 
56 }
Texture description.
Definition: Texture.h:82
+
Base implementation of the Diligent::ITextureD3D11 interface.
Definition: TextureBaseD3D11.h:50
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Describes the initial data to store in the texture.
Definition: Texture.h:243
+
Memory allocator that allocates memory in a fixed-size chunks.
Definition: FixedBlockMemoryAllocator.h:50
+
Implementation of the Diligent::IRenderDeviceD3D11 interface.
Definition: RenderDeviceD3D11Impl.h:38
+
Texture view description.
Definition: TextureView.h:55
+
Implementation of a 3D texture.
Definition: Texture3D_D3D11.h:35
+
+ + + + + diff --git a/doc/html/_texture3_d___o_g_l_8h_source.html b/doc/html/_texture3_d___o_g_l_8h_source.html new file mode 100644 index 00000000..d626f478 --- /dev/null +++ b/doc/html/_texture3_d___o_g_l_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/Texture3D_OGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Texture3D_OGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "TextureBaseGL.h"
27 
28 namespace Diligent
29 {
30 
31 class Texture3D_OGL : public TextureBaseGL
32 {
33 public:
34  Texture3D_OGL( IReferenceCounters *pRefCounters,
35  FixedBlockMemoryAllocator& TexViewObjAllocator,
36  class RenderDeviceGLImpl *pDeviceGL,
37  class DeviceContextGLImpl *pDeviceContext,
38  const TextureDesc& TexDesc,
39  const TextureData& InitData = TextureData(),
40  bool bIsDeviceInternal = false );
41 
42  Texture3D_OGL( IReferenceCounters *pRefCounters,
43  FixedBlockMemoryAllocator& TexViewObjAllocator,
44  class RenderDeviceGLImpl *pDeviceGL,
45  class DeviceContextGLImpl *pDeviceContext,
46  const TextureDesc& TexDesc,
47  GLuint GLTextureHandle,
48  bool bIsDeviceInternal = false);
49  ~Texture3D_OGL();
50 
51  virtual void UpdateData(IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData)override final;
52  virtual void AttachToFramebuffer( const struct TextureViewDesc& ViewDesc, GLenum AttachmentPoint )override final;
53 
54 private:
55 
56 };
57 
58 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_texture_8h_source.html b/doc/html/_texture_8h_source.html new file mode 100644 index 00000000..05d6d64a --- /dev/null +++ b/doc/html/_texture_8h_source.html @@ -0,0 +1,144 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/Texture.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Texture.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DeviceObject.h"
30 
31 namespace Diligent
32 {
33 
34 // {A64B0E60-1B5E-4CFD-B880-663A1ADCBE98}
35 static constexpr INTERFACE_ID IID_Texture =
36 { 0xa64b0e60, 0x1b5e, 0x4cfd, { 0xb8, 0x80, 0x66, 0x3a, 0x1a, 0xdc, 0xbe, 0x98 } };
37 
40 {
42  Float32 Depth;
44  Uint8 Stencil;
46  Depth(1.f),
47  Stencil(0)
48  {}
49 };
50 
53 {
57  Float32 Color[ 4 ];
62  {
63  Color[0] = 0;
64  Color[1] = 0;
65  Color[2] = 0;
66  Color[3] = 0;
67  }
68 
69  bool operator == (const OptimizedClearValue& rhs)const
70  {
71  return Format == rhs.Format &&
72  Color[0] == rhs.Color[0] &&
73  Color[1] == rhs.Color[1] &&
74  Color[2] == rhs.Color[2] &&
75  Color[3] == rhs.Color[3] &&
78  }
79 };
80 
83 {
86 
88  Uint32 Width;
89 
91  Uint32 Height;
92  union
93  {
95  Uint32 ArraySize;
96 
98  Uint32 Depth;
99  };
100 
103 
106  Uint32 MipLevels;
107 
110  Uint32 SampleCount;
111 
114 
120  Uint32 BindFlags;
121 
125 
126 
128  Uint32 MiscFlags;
129 
132 
134 
151  Width(0),
152  Height(0),
153  ArraySize(1),
155  MipLevels(1),
156  SampleCount(1),
158  BindFlags(0),
159  CPUAccessFlags(0),
160  MiscFlags(0)
161  {
162  }
163 
165 
172  bool operator ==(const TextureDesc& RHS)const
173  {
174  // Name is primarily used for debug purposes and does not affect the state.
175  // It is ignored in comparison operation.
176  return // strcmp(Name, RHS.Name) == 0 &&
177  Type == RHS.Type &&
178  Width == RHS.Width &&
179  Height == RHS.Height &&
180  ArraySize == RHS.ArraySize &&
181  Format == RHS.Format &&
182  MipLevels == RHS.MipLevels &&
183  SampleCount == RHS.SampleCount &&
184  Usage == RHS.Usage &&
185  BindFlags == RHS.BindFlags &&
187  MiscFlags == RHS.MiscFlags &&
188  ClearValue == RHS.ClearValue;
189  }
190 };
191 
194 {
197  const void* pData;
198 
202 
204  Uint32 Stride;
205 
208  Uint32 DepthStride;
209 
211 
219  pData(nullptr),
220  pSrcBuffer(nullptr),
221  Stride(0),
222  DepthStride(0)
223  {}
224 
226  TextureSubResData(void *_pData, Uint32 _Stride, Uint32 _DepthStride=0) :
227  pData(_pData),
228  pSrcBuffer(nullptr),
229  Stride(_Stride),
230  DepthStride(_DepthStride)
231  {}
232 
234  TextureSubResData(IBuffer *_pBuffer, Uint32 _Stride, Uint32 _DepthStride=0) :
235  pData(nullptr),
236  pSrcBuffer(_pBuffer),
237  Stride(_Stride),
238  DepthStride(_DepthStride)
239  {}
240 };
241 
244 {
248 
254 
256 
263  pSubResources(nullptr),
264  NumSubresources(0)
265  {}
266 };
267 
268 struct MappedTextureSubresource
269 {
270  PVoid pData = nullptr;
271  Uint32 Stride = 0;
272  Uint32 DepthStride = 0;
273 };
274 
276 class ITexture : public IDeviceObject
277 {
278 public:
280  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface ) = 0;
281 
283  virtual const TextureDesc& GetDesc()const = 0;
284 
286 
304  virtual void CreateView(const struct TextureViewDesc &ViewDesc, class ITextureView **ppView) = 0;
305 
307 
313  virtual ITextureView* GetDefaultView( TEXTURE_VIEW_TYPE ViewType ) = 0;
314 
316 
322  virtual void UpdateData( class IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData ) = 0;
323 
325 
339  virtual void CopyData(IDeviceContext *pContext,
340  ITexture *pSrcTexture,
341  Uint32 SrcMipLevel,
342  Uint32 SrcSlice,
343  const Box *pSrcBox,
344  Uint32 DstMipLevel,
345  Uint32 DstSlice,
346  Uint32 DstX,
347  Uint32 DstY,
348  Uint32 DstZ) = 0;
349 
351  virtual void Map( IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData ) = 0;
353  virtual void Unmap( IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags ) = 0;
354 
356 
360  virtual void* GetNativeHandle() = 0;
361 };
362 
363 }
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
+
virtual void UpdateData(class IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData)=0
Updates the data in the texture.
+
Texture description.
Definition: Texture.h:82
+
TEXTURE_VIEW_TYPE
Texture view type.
Definition: GraphicsTypes.h:190
+
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
Uint32 MiscFlags
Miscellaneous flags, see Diligent::MISC_TEXTURE_FLAG for details.
Definition: Texture.h:128
+
Unknown format.
Definition: GraphicsTypes.h:247
+
virtual const TextureDesc & GetDesc() const =0
Returns the texture description used to create the object.
+
Uint32 Depth
For a 3D texture, number of depth slices.
Definition: Texture.h:98
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
TextureSubResData(void *_pData, Uint32 _Stride, Uint32 _DepthStride=0)
Initializes the structure members to perform copy from the CPU memory.
Definition: Texture.h:226
+
virtual void CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)=0
Copies data from another texture.
+
class IBuffer * pSrcBuffer
Pointer to the GPU buffer that contains subresource data. If provided, pData must be null...
Definition: Texture.h:201
+
Describes data for one subresource.
Definition: Texture.h:193
+
TEXTURE_FORMAT Format
Texture format, see Diligent::TEXTURE_FORMAT.
Definition: Texture.h:102
+
Uint32 DepthStride
For 3D textures, depth slice stride in bytes.
Definition: Texture.h:208
+
virtual void Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags)=0
Unmap the textute - not implemented yet.
+
TextureDesc()
Initializes the structure members with default values.
Definition: Texture.h:149
+
bool operator==(const TextureDesc &RHS) const
Tests if two structures are equivalent.
Definition: Texture.h:172
+
TEXTURE_FORMAT Format
Format.
Definition: Texture.h:55
+
Uint32 MipLevels
Number of Mip levels in the texture. Multisampled textures can only have 1 Mip level. Specify 0 to generate full mipmap chain.
Definition: Texture.h:106
+
Uint32 Width
Texture width, in pixels.
Definition: Texture.h:88
+
Float32 Depth
Depth clear value.
Definition: Texture.h:42
+
Uint32 SampleCount
Number of samples. Only 2D textures or 2D texture arrays can be multisampled.
Definition: Texture.h:110
+
Describes the initial data to store in the texture.
Definition: Texture.h:243
+
TextureSubResData()
Initializes the structure members with default values.
Definition: Texture.h:218
+
Buffer interface.
Definition: Buffer.h:200
+
virtual void Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData)=0
Map the texture - not implemented yet.
+
Device context interface.
Definition: DeviceContext.h:443
+
Uint32 CPUAccessFlags
CPU access flags or 0 if no CPU access is allowed, see Diligent::CPU_ACCESS_FLAG for details...
Definition: Texture.h:124
+
virtual void * GetNativeHandle()=0
Returns native texture handle specific to the underlying graphics API.
+
Box.
Definition: GraphicsTypes.h:1005
+
virtual ITextureView * GetDefaultView(TEXTURE_VIEW_TYPE ViewType)=0
Returns the pointer to the default view.
+
A resource that requires read and write access by the GPU and can also be occasionally written by the...
Definition: GraphicsTypes.h:95
+
Texture view interface.
Definition: TextureView.h:163
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
Queries the specific interface, see IObject::QueryInterface() for details.
+
USAGE Usage
Texture usage. See Diligent::USAGE for details.
Definition: Texture.h:113
+
Texture view description.
Definition: TextureView.h:55
+
Uint8 Stencil
Stencil clear value.
Definition: Texture.h:44
+
virtual void CreateView(const struct TextureViewDesc &ViewDesc, class ITextureView **ppView)=0
Creates a new texture view.
+
Uint32 ArraySize
For a 1D array or 2D array, number of array slices.
Definition: Texture.h:95
+
USAGE
Resource usage.
Definition: GraphicsTypes.h:84
+
Defines optimized depth-stencil clear value.
Definition: Texture.h:39
+
Defines optimized clear value.
Definition: Texture.h:52
+
RESOURCE_DIMENSION
Describes resource dimension.
Definition: GraphicsTypes.h:172
+
Float32 Color[4]
Render target clear value.
Definition: Texture.h:57
+
OptimizedClearValue ClearValue
Optimized clear value.
Definition: Texture.h:131
+
RESOURCE_DIMENSION Type
Texture type. See Diligent::RESOURCE_DIMENSION for details.
Definition: Texture.h:85
+
Uint32 NumSubresources
Number of elements in pSubResources array. NumSubresources must exactly match the number of subresour...
Definition: Texture.h:253
+
TextureSubResData(IBuffer *_pBuffer, Uint32 _Stride, Uint32 _DepthStride=0)
Initializes the structure members to perform copy from the GPU buffer.
Definition: Texture.h:234
+
Describes common device object attributes.
Definition: GraphicsTypes.h:900
+
const void * pData
Pointer to the subresource data in CPU memory. If provided, pSrcBuffer must be null.
Definition: Texture.h:197
+
Uint32 Height
Texture height, in pixels.
Definition: Texture.h:91
+
Texture type undefined.
Definition: GraphicsTypes.h:174
+
TextureData()
Initializes the structure members with default values.
Definition: Texture.h:262
+
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:125
+
Uint32 BindFlags
Bind flags, see Diligent::BIND_FLAGS for details. The following bind flags are allowed: Diligent::BI...
Definition: Texture.h:120
+
Texture inteface.
Definition: Texture.h:276
+
TextureSubResData * pSubResources
Pointer to the array of the TextureSubResData elements containing information about each subresource...
Definition: Texture.h:247
+
DepthStencilClearValue DepthStencil
Depth stencil clear value.
Definition: Texture.h:59
+
Uint32 Stride
For 2D and 3D textures, row stride in bytes.
Definition: Texture.h:204
+
+ + + + + diff --git a/doc/html/_texture_base_8h_source.html b/doc/html/_texture_base_8h_source.html new file mode 100644 index 00000000..9763760a --- /dev/null +++ b/doc/html/_texture_base_8h_source.html @@ -0,0 +1,143 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/TextureBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Texture.h"
30 #include "DeviceObjectBase.h"
31 #include "GraphicsAccessories.h"
32 #include "STDAllocator.h"
33 #include <memory>
34 
35 namespace Diligent
36 {
37 
38 void ValidateTextureDesc(const TextureDesc& TexDesc);
39 void ValidateUpdateDataParams( const TextureDesc &TexDesc, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData );
40 void VliadateCopyTextureDataParams( const TextureDesc &SrcTexDesc, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox,
41  const TextureDesc &DstTexDesc, Uint32 DstMipLevel, Uint32 DstSlice,
42  Uint32 DstX, Uint32 DstY, Uint32 DstZ );
43 
45 
51 template<class BaseInterface, class TTextureViewImpl, class TTexViewObjAllocator>
52 class TextureBase : public DeviceObjectBase<BaseInterface, TextureDesc>
53 {
54 public:
56 
64  TextureBase( IReferenceCounters *pRefCounters,
65  TTexViewObjAllocator &TexViewObjAllocator,
66  IRenderDevice *pDevice,
67  const TextureDesc& Desc,
68  bool bIsDeviceInternal = false ) :
69  TDeviceObjectBase( pRefCounters, pDevice, Desc, bIsDeviceInternal ),
70 #ifdef _DEBUG
71  m_dbgTexViewObjAllocator(TexViewObjAllocator),
72 #endif
73  m_pDefaultSRV(nullptr, STDDeleter<TTextureViewImpl, TTexViewObjAllocator>(TexViewObjAllocator)),
74  m_pDefaultRTV(nullptr, STDDeleter<TTextureViewImpl, TTexViewObjAllocator>(TexViewObjAllocator)),
75  m_pDefaultDSV(nullptr, STDDeleter<TTextureViewImpl, TTexViewObjAllocator>(TexViewObjAllocator)),
76  m_pDefaultUAV(nullptr, STDDeleter<TTextureViewImpl, TTexViewObjAllocator>(TexViewObjAllocator))
77  {
78  if( this->m_Desc.MipLevels == 0 )
79  {
80  // Compute the number of levels in the full mipmap chain
81  if( this->m_Desc.Type == RESOURCE_DIM_TEX_1D ||
82  this->m_Desc.Type == RESOURCE_DIM_TEX_1D_ARRAY )
83  {
84  this->m_Desc.MipLevels = ComputeMipLevelsCount(this->m_Desc.Width);
85  }
86  else if( this->m_Desc.Type == RESOURCE_DIM_TEX_2D ||
87  this->m_Desc.Type == RESOURCE_DIM_TEX_2D_ARRAY ||
88  this->m_Desc.Type == RESOURCE_DIM_TEX_CUBE ||
89  this->m_Desc.Type == RESOURCE_DIM_TEX_CUBE_ARRAY )
90  {
91  this->m_Desc.MipLevels = ComputeMipLevelsCount( this->m_Desc.Width, this->m_Desc.Height );
92  }
93  else if( this->m_Desc.Type == RESOURCE_DIM_TEX_3D )
94  {
95  this->m_Desc.MipLevels = ComputeMipLevelsCount( this->m_Desc.Width, this->m_Desc.Height, this->m_Desc.Depth );
96  }
97  else
98  {
99  UNEXPECTED( "Unkwnown texture type" );
100  }
101  }
102 
103  // Validate correctness of texture description
104  ValidateTextureDesc( this->m_Desc );
105  }
106 
107  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_Texture, TDeviceObjectBase )
108 
109 
110  virtual void CreateView( const struct TextureViewDesc &ViewDesc, ITextureView **ppView )override
112  {
113  CreateViewInternal( ViewDesc, ppView, false );
114  }
115 
117  virtual void UpdateData( IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData )override = 0;
118 
120  virtual void CopyData( IDeviceContext *pContext,
121  ITexture *pSrcTexture,
122  Uint32 SrcMipLevel,
123  Uint32 SrcSlice,
124  const Box *pSrcBox,
125  Uint32 DstMipLevel,
126  Uint32 DstSlice,
127  Uint32 DstX,
128  Uint32 DstY,
129  Uint32 DstZ )override = 0;
130 
132  virtual void Map( IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData )override = 0;
133 
135  virtual void Unmap( IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags )override = 0;
136 
138 
146  void CreateDefaultViews();
147 
148 protected:
149 
151  virtual void CreateViewInternal( const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView ) = 0;
152 
153 #ifdef _DEBUG
154  TTexViewObjAllocator &m_dbgTexViewObjAllocator;
155 #endif
156  // WARNING! We cannot use ITextureView here, because ITextureView has no virtual dtor!
158  std::unique_ptr<TTextureViewImpl, STDDeleter<TTextureViewImpl, TTexViewObjAllocator>> m_pDefaultSRV;
160  std::unique_ptr<TTextureViewImpl, STDDeleter<TTextureViewImpl, TTexViewObjAllocator>> m_pDefaultRTV;
162  std::unique_ptr<TTextureViewImpl, STDDeleter<TTextureViewImpl, TTexViewObjAllocator>> m_pDefaultDSV;
164  std::unique_ptr<TTextureViewImpl, STDDeleter<TTextureViewImpl, TTexViewObjAllocator>> m_pDefaultUAV;
165 
168  {
169  switch( ViewType )
170  {
171  case TEXTURE_VIEW_SHADER_RESOURCE: return m_pDefaultSRV.get();
172  case TEXTURE_VIEW_RENDER_TARGET: return m_pDefaultRTV.get();
173  case TEXTURE_VIEW_DEPTH_STENCIL: return m_pDefaultDSV.get();
174  case TEXTURE_VIEW_UNORDERED_ACCESS: return m_pDefaultUAV.get();
175  default: UNEXPECTED( "Unknown view type" ); return nullptr;
176  }
177  }
178 
179  void CorrectTextureViewDesc( struct TextureViewDesc &ViewDesc );
180 };
181 
182 
183 template<class BaseInterface, class TTextureViewImpl, class TTexViewObjAllocator>
184 void TextureBase<BaseInterface, TTextureViewImpl, TTexViewObjAllocator> :: CorrectTextureViewDesc(struct TextureViewDesc &ViewDesc)
185 {
186 #define TEX_VIEW_VALIDATION_ERROR(...) LOG_ERROR_AND_THROW( "Texture view \"", ViewDesc.Name ? ViewDesc.Name : "", "\": ", ##__VA_ARGS__ )
187 
188  if( !(ViewDesc.ViewType > TEXTURE_VIEW_UNDEFINED && ViewDesc.ViewType < TEXTURE_VIEW_NUM_VIEWS) )
189  TEX_VIEW_VALIDATION_ERROR( "Texture view type is not specified" );
190 
191  if( ViewDesc.MostDetailedMip + ViewDesc.NumMipLevels > this->m_Desc.MipLevels )
192  TEX_VIEW_VALIDATION_ERROR( "Most detailed mip (", ViewDesc.MostDetailedMip, ") and number of mip levels in the view (", ViewDesc.NumMipLevels, ") specify more levels than target texture has (", this->m_Desc.MipLevels, ")" );
193 
194  if( ViewDesc.Format == TEX_FORMAT_UNKNOWN )
195  ViewDesc.Format = GetDefaultTextureViewFormat( this->m_Desc.Format, ViewDesc.ViewType, this->m_Desc.BindFlags );
196 
197  if( ViewDesc.TextureDim == RESOURCE_DIM_UNDEFINED )
198  {
199  if (this->m_Desc.Type == RESOURCE_DIM_TEX_CUBE || this->m_Desc.Type == RESOURCE_DIM_TEX_CUBE_ARRAY)
200  {
201  switch (ViewDesc.ViewType)
202  {
204  ViewDesc.TextureDim = this->m_Desc.Type;
205  break;
206 
210  ViewDesc.TextureDim = RESOURCE_DIM_TEX_2D_ARRAY;
211  break;
212 
213  default: UNEXPECTED("Unexpected view type");
214  }
215  }
216  else
217  {
218  ViewDesc.TextureDim = this->m_Desc.Type;
219  }
220  }
221 
222  switch( this->m_Desc.Type )
223  {
224  case RESOURCE_DIM_TEX_1D:
225  if( ViewDesc.TextureDim != RESOURCE_DIM_TEX_1D )
226  {
227  TEX_VIEW_VALIDATION_ERROR( "Incorrect texture type for Texture 1D view: only Texture 1D is allowed" );
228  }
229  break;
230 
232  if( ViewDesc.TextureDim != RESOURCE_DIM_TEX_1D_ARRAY &&
233  ViewDesc.TextureDim != RESOURCE_DIM_TEX_1D )
234  {
235  TEX_VIEW_VALIDATION_ERROR( "Incorrect view type for Texture 1D Array: only Texture 1D or Texture 1D Array are allowed" );
236  }
237  break;
238 
239  case RESOURCE_DIM_TEX_2D:
240  if(ViewDesc.TextureDim != RESOURCE_DIM_TEX_2D )
241  {
242  TEX_VIEW_VALIDATION_ERROR( "Incorrect texture type for Texture 2D view: only Texture 2D is allowed" );
243  }
244  break;
245 
247  if( ViewDesc.TextureDim != RESOURCE_DIM_TEX_2D_ARRAY &&
248  ViewDesc.TextureDim != RESOURCE_DIM_TEX_2D )
249  {
250  TEX_VIEW_VALIDATION_ERROR( "Incorrect texture type for Texture 2D Array view: only Texture 2D or Texture 2D Array are allowed" );
251  }
252  break;
253 
254  case RESOURCE_DIM_TEX_3D:
255  if( ViewDesc.TextureDim != RESOURCE_DIM_TEX_3D )
256  {
257  TEX_VIEW_VALIDATION_ERROR( "Incorrect texture type for Texture 3D view: only Texture 3D is allowed" );
258  }
259  break;
260 
262  if(ViewDesc.ViewType == TEXTURE_VIEW_SHADER_RESOURCE)
263  {
264  if(ViewDesc.TextureDim != RESOURCE_DIM_TEX_2D &&
265  ViewDesc.TextureDim != RESOURCE_DIM_TEX_2D_ARRAY &&
266  ViewDesc.TextureDim != RESOURCE_DIM_TEX_CUBE)
267  {
268  TEX_VIEW_VALIDATION_ERROR( "Incorrect texture type for Texture cube SRV: Texture 2D, Texture 2D array or Texture Cube is allowed" );
269  }
270  }
271  else
272  {
273  if(ViewDesc.TextureDim != RESOURCE_DIM_TEX_2D &&
274  ViewDesc.TextureDim != RESOURCE_DIM_TEX_2D_ARRAY)
275  {
276  TEX_VIEW_VALIDATION_ERROR( "Incorrect texture type for Texture cube non-shader resource view: Texture 2D or Texture 2D array is allowed" );
277  }
278  }
279  break;
280 
282  if(ViewDesc.ViewType == TEXTURE_VIEW_SHADER_RESOURCE)
283  {
284  if(ViewDesc.TextureDim != RESOURCE_DIM_TEX_2D &&
285  ViewDesc.TextureDim != RESOURCE_DIM_TEX_2D_ARRAY &&
286  ViewDesc.TextureDim != RESOURCE_DIM_TEX_CUBE &&
287  ViewDesc.TextureDim != RESOURCE_DIM_TEX_CUBE_ARRAY)
288  {
289  TEX_VIEW_VALIDATION_ERROR( "Incorrect texture type for Texture cube array SRV: Texture 2D, Texture 2D array, Texture Cube or Texture Cube Array is allowed" );
290  }
291  }
292  else
293  {
294  if(ViewDesc.TextureDim != RESOURCE_DIM_TEX_2D &&
295  ViewDesc.TextureDim != RESOURCE_DIM_TEX_2D_ARRAY)
296  {
297  TEX_VIEW_VALIDATION_ERROR( "Incorrect texture type for Texture cube array non-shader resource view: Texture 2D or Texture 2D array is allowed" );
298  }
299  }
300  break;
301 
302  default:
303  UNEXPECTED( "Unexpected texture type" );
304  break;
305  }
306 
307  if ( ViewDesc.TextureDim == RESOURCE_DIM_TEX_CUBE )
308  {
309  VERIFY(ViewDesc.ViewType == TEXTURE_VIEW_SHADER_RESOURCE, "Unexpected view type: SRV is expected");
310  if(ViewDesc.NumArraySlices != 6 && ViewDesc.NumArraySlices != 0)
311  TEX_VIEW_VALIDATION_ERROR( "Texture cube SRV is expected to have 6 array slices, while ", ViewDesc.NumArraySlices, " is provided" );
312  if(ViewDesc.FirstArraySlice != 0)
313  TEX_VIEW_VALIDATION_ERROR( "First slice (", ViewDesc.FirstArraySlice, ") must be 0 for non-array texture cube SRV" );
314  }
315  if ( ViewDesc.TextureDim == RESOURCE_DIM_TEX_CUBE_ARRAY )
316  {
317  VERIFY(ViewDesc.ViewType == TEXTURE_VIEW_SHADER_RESOURCE, "Unexpected view type: SRV is expected");
318  if((ViewDesc.NumArraySlices % 6) != 0)
319  TEX_VIEW_VALIDATION_ERROR( "Number of slices in texture cube array SRV is expected to be multiple of 6. ", ViewDesc.NumArraySlices, " slices provided." );
320  }
321 
322  if (ViewDesc.TextureDim == RESOURCE_DIM_TEX_1D ||
323  ViewDesc.TextureDim == RESOURCE_DIM_TEX_2D)
324  {
325  if(ViewDesc.FirstArraySlice != 0)
326  TEX_VIEW_VALIDATION_ERROR( "First slice (", ViewDesc.FirstArraySlice, ") must be 0 for non-array texture 1D/2D views" );
327 
328  if(ViewDesc.NumArraySlices > 1)
329  TEX_VIEW_VALIDATION_ERROR( "Number of slices in the view (", ViewDesc.NumArraySlices, ") must be 1 (or 0) for non-array texture 1D/2D views" );
330  }
331  else if( ViewDesc.TextureDim == RESOURCE_DIM_TEX_1D_ARRAY ||
332  ViewDesc.TextureDim == RESOURCE_DIM_TEX_2D_ARRAY ||
333  ViewDesc.TextureDim == RESOURCE_DIM_TEX_CUBE ||
334  ViewDesc.TextureDim == RESOURCE_DIM_TEX_CUBE_ARRAY )
335  {
336  if( ViewDesc.FirstArraySlice + ViewDesc.NumArraySlices > this->m_Desc.ArraySize )
337  TEX_VIEW_VALIDATION_ERROR( "First slice (", ViewDesc.FirstArraySlice, ") and number of slices in the view (", ViewDesc.NumArraySlices, ") specify more slices than target texture has (", this->m_Desc.ArraySize, ")" );
338  }
339  else if( ViewDesc.TextureDim == RESOURCE_DIM_TEX_3D )
340  {
341  auto MipDepth = this->m_Desc.Depth >> ViewDesc.MostDetailedMip;
342  if( ViewDesc.FirstDepthSlice + ViewDesc.NumDepthSlices > MipDepth )
343  TEX_VIEW_VALIDATION_ERROR( "First slice (", ViewDesc.FirstDepthSlice, ") and number of slices in the view (", ViewDesc.NumDepthSlices, ") specify more slices than target 3D texture mip level has (", MipDepth, ")" );
344  }
345  else
346  {
347  UNEXPECTED("Unexpected texture dimension");
348  }
349 
350 #undef TEX_VIEW_VALIDATION_ERROR
351 
352  if( ViewDesc.NumMipLevels == 0 )
353  {
354  if( ViewDesc.ViewType == TEXTURE_VIEW_SHADER_RESOURCE )
355  ViewDesc.NumMipLevels = this->m_Desc.MipLevels - ViewDesc.MostDetailedMip;
356  else
357  ViewDesc.NumMipLevels = 1;
358  }
359 
360  if( ViewDesc.NumArraySlices == 0 )
361  {
362  if( ViewDesc.TextureDim == RESOURCE_DIM_TEX_1D_ARRAY ||
363  ViewDesc.TextureDim == RESOURCE_DIM_TEX_2D_ARRAY ||
364  ViewDesc.TextureDim == RESOURCE_DIM_TEX_CUBE ||
365  ViewDesc.TextureDim == RESOURCE_DIM_TEX_CUBE_ARRAY )
366  ViewDesc.NumArraySlices = this->m_Desc.ArraySize - ViewDesc.FirstArraySlice;
367  else if( ViewDesc.TextureDim == RESOURCE_DIM_TEX_3D )
368  {
369  auto MipDepth = this->m_Desc.Depth >> ViewDesc.MostDetailedMip;
370  ViewDesc.NumDepthSlices = MipDepth - ViewDesc.FirstDepthSlice;
371  }
372  else
373  ViewDesc.NumArraySlices = 1;
374  }
375 
376  if( (ViewDesc.ViewType == TEXTURE_VIEW_RENDER_TARGET) &&
377  ( ViewDesc.Format == TEX_FORMAT_R8_SNORM || ViewDesc.Format == TEX_FORMAT_RG8_SNORM || ViewDesc.Format == TEX_FORMAT_RGBA8_SNORM ||
378  ViewDesc.Format == TEX_FORMAT_R16_SNORM || ViewDesc.Format == TEX_FORMAT_RG16_SNORM || ViewDesc.Format == TEX_FORMAT_RGBA16_SNORM ) )
379  {
380  const auto *FmtName = GetTextureFormatAttribs( ViewDesc.Format ).Name;
381  LOG_WARNING_MESSAGE( FmtName, " render target view is created.\n"
382  "There might be an issue in OpenGL driver on NVidia hardware: when rendering to SNORM textures, all negative values are clamped to zero.\n"
383  "Use UNORM format instead." );
384  }
385 }
386 
387 template<class BaseInterface, class TTextureViewImpl, class TTexViewObjAllocator>
389 {
390  const auto& TexFmtAttribs = GetTextureFormatAttribs(this->m_Desc.Format);
391  if (TexFmtAttribs.ComponentType == COMPONENT_TYPE_UNDEFINED)
392  {
393  // Cannot create default view for TYPELESS formats
394  return;
395  }
396 
397  if(this->m_Desc.BindFlags & BIND_SHADER_RESOURCE )
398  {
399  TextureViewDesc ViewDesc;
401  ITextureView *pSRV = nullptr;
402  CreateViewInternal( ViewDesc, &pSRV, true );
403  m_pDefaultSRV.reset( static_cast<TTextureViewImpl*>(pSRV) );
404  VERIFY( m_pDefaultSRV->GetDesc().ViewType == TEXTURE_VIEW_SHADER_RESOURCE, "Unexpected view type" );
405  }
406 
407  if(this->m_Desc.BindFlags & BIND_RENDER_TARGET )
408  {
409  TextureViewDesc ViewDesc;
411  ITextureView *pRTV = nullptr;
412  CreateViewInternal( ViewDesc, &pRTV, true );
413  m_pDefaultRTV.reset( static_cast<TTextureViewImpl*>(pRTV) );
414  VERIFY( m_pDefaultRTV->GetDesc().ViewType == TEXTURE_VIEW_RENDER_TARGET, "Unexpected view type" );
415  }
416 
417  if(this->m_Desc.BindFlags & BIND_DEPTH_STENCIL )
418  {
419  TextureViewDesc ViewDesc;
421  ITextureView *pDSV = nullptr;
422  CreateViewInternal( ViewDesc, &pDSV, true );
423  m_pDefaultDSV.reset( static_cast<TTextureViewImpl*>(pDSV) );
424  VERIFY( m_pDefaultDSV->GetDesc().ViewType == TEXTURE_VIEW_DEPTH_STENCIL, "Unexpected view type" );
425  }
426 
427  if(this->m_Desc.BindFlags & BIND_UNORDERED_ACCESS )
428  {
429  TextureViewDesc ViewDesc;
432  ITextureView *pUAV = nullptr;
433  CreateViewInternal( ViewDesc, &pUAV, true );
434  m_pDefaultUAV.reset( static_cast<TTextureViewImpl*>(pUAV) );
435  VERIFY( m_pDefaultUAV->GetDesc().ViewType == TEXTURE_VIEW_UNORDERED_ACCESS, "Unexpected view type" );
436  }
437 }
438 
439 
440 template<class BaseInterface, class TTextureViewImpl, class TTexViewObjAllocator>
441 void TextureBase<BaseInterface, TTextureViewImpl, TTexViewObjAllocator> :: UpdateData( IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData )
442 {
443  ValidateUpdateDataParams( this->m_Desc, MipLevel, Slice, DstBox, SubresData );
444 }
445 
446 template<class BaseInterface, class TTextureViewImpl, class TTexViewObjAllocator>
448  ITexture *pSrcTexture,
449  Uint32 SrcMipLevel,
450  Uint32 SrcSlice,
451  const Box *pSrcBox,
452  Uint32 DstMipLevel,
453  Uint32 DstSlice,
454  Uint32 DstX,
455  Uint32 DstY,
456  Uint32 DstZ )
457 {
458  VERIFY( pContext, "pContext is null" );
459  VERIFY( pSrcTexture, "pSrcTexture is null" );
460  VliadateCopyTextureDataParams( pSrcTexture->GetDesc(), SrcMipLevel, SrcSlice, pSrcBox,
461  this->GetDesc(), DstMipLevel, DstSlice, DstX, DstY, DstZ );
462 }
463 
464 template<class BaseInterface, class TTextureViewImpl, class TTexViewObjAllocator>
465 void TextureBase<BaseInterface, TTextureViewImpl, TTexViewObjAllocator> :: Map( IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData )
466 {
467 }
468 
469 template<class BaseInterface, class TTextureViewImpl, class TTexViewObjAllocator>
470 void TextureBase<BaseInterface, TTextureViewImpl, TTexViewObjAllocator> :: Unmap( IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags )
471 {
472 }
473 
474 }
Cube-map texture.
Definition: GraphicsTypes.h:181
+
virtual void Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override=0
Base implementaiton of ITexture::Unmap()
Definition: TextureBase.h:470
+
Texture description.
Definition: Texture.h:82
+
Two-dimensional texture.
Definition: GraphicsTypes.h:178
+
A texture can be bound as a render target.
Definition: GraphicsTypes.h:71
+
One-dimensional texture.
Definition: GraphicsTypes.h:176
+
TEXTURE_VIEW_TYPE
Texture view type.
Definition: GraphicsTypes.h:190
+
Render device interface.
Definition: RenderDevice.h:55
+
Unknown format.
Definition: GraphicsTypes.h:247
+
Two-component 32-bit signed-normalized-integer format with 16-bit channels. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:409
+
void CreateDefaultViews()
Creates default texture views.
Definition: TextureBase.h:388
+
virtual const TextureDesc & GetDesc() const =0
Returns the texture description used to create the object.
+
ITextureView * GetDefaultView(TEXTURE_VIEW_TYPE ViewType) override
Implementation of ITexture::GetDefaultView().
Definition: TextureBase.h:167
+
Cube-map array texture.
Definition: GraphicsTypes.h:182
+
Helper value that stores that total number of texture views.
Definition: GraphicsTypes.h:212
+
A buffer or a texture can be bound as a shader resource.
Definition: GraphicsTypes.h:68
+
Allow read and write operations on the UAV.
Definition: TextureView.h:51
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Undefined view type.
Definition: GraphicsTypes.h:193
+
virtual void UpdateData(IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override=0
Base implementaiton of ITexture::UpdateData(); validates input parameters.
Definition: TextureBase.h:441
+
Describes data for one subresource.
Definition: Texture.h:193
+
Undefined component type.
Definition: GraphicsTypes.h:1029
+
Four-component 32-bit signed-normalized-integer format with 8-bit channels. D3D counterpart: DXGI_F...
Definition: GraphicsTypes.h:381
+
Uint32 MipLevels
Number of Mip levels in the texture. Multisampled textures can only have 1 Mip level. Specify 0 to generate full mipmap chain.
Definition: Texture.h:106
+
Uint32 Width
Texture width, in pixels.
Definition: Texture.h:88
+
Device context interface.
Definition: DeviceContext.h:443
+
A texture can be bound as a depth-stencil target.
Definition: GraphicsTypes.h:72
+
Box.
Definition: GraphicsTypes.h:1005
+
A texture view will define a depth stencil view that will be used as the target for rendering operati...
Definition: GraphicsTypes.h:205
+
Texture view interface.
Definition: TextureView.h:163
+
virtual void CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ) override=0
Base implementaiton of ITexture::CopyData(); validates input parameters.
Definition: TextureBase.h:447
+
Four-component 64-bit signed-normalized-integer format with 16-bit channels. D3D counterpart: DXGI_...
Definition: GraphicsTypes.h:308
+
Texture view description.
Definition: TextureView.h:55
+
TEXTURE_VIEW_TYPE ViewType
Describes the texture view type, see Diligent::TEXTURE_VIEW_TYPE for details.
Definition: TextureView.h:58
+
TextureDesc m_Desc
Object description.
Definition: DeviceObjectBase.h:138
+
One-dimensional texture array.
Definition: GraphicsTypes.h:177
+
A buffer or a texture can be bound as an unordered access view.
Definition: GraphicsTypes.h:73
+
Single-component 8-bit signed-normalized-integer format. D3D counterpart: DXGI_FORMAT_R8_SNORM. OpenGL counterpart: GL_R8_SNORM.
Definition: GraphicsTypes.h:518
+
virtual void Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override=0
Base implementaiton of ITexture::Map()
Definition: TextureBase.h:465
+
RESOURCE_DIMENSION Type
Texture type. See Diligent::RESOURCE_DIMENSION for details.
Definition: Texture.h:85
+
A texture view will define an unordered access view that will be used for unordered read/write operat...
Definition: GraphicsTypes.h:209
+
Three-dimensional texture.
Definition: GraphicsTypes.h:180
+
std::unique_ptr< TTextureViewImpl, STDDeleter< TTextureViewImpl, TTexViewObjAllocator > > m_pDefaultUAV
Default UAV addressing the entire texture.
Definition: TextureBase.h:164
+
TextureBase(IReferenceCounters *pRefCounters, TTexViewObjAllocator &TexViewObjAllocator, IRenderDevice *pDevice, const TextureDesc &Desc, bool bIsDeviceInternal=false)
Definition: TextureBase.h:64
+
std::unique_ptr< TTextureViewImpl, STDDeleter< TTextureViewImpl, TTexViewObjAllocator > > m_pDefaultSRV
Default SRV addressing the entire texture.
Definition: TextureBase.h:158
+
std::unique_ptr< TTextureViewImpl, STDDeleter< TTextureViewImpl, TTexViewObjAllocator > > m_pDefaultRTV
Default RTV addressing the most detailed mip level.
Definition: TextureBase.h:160
+
Two-component 16-bit signed-normalized-integer format with 8-bit channels. D3D counterpart: DXGI_FO...
Definition: GraphicsTypes.h:466
+
Texture type undefined.
Definition: GraphicsTypes.h:174
+
A texture view will define a shader resource view that will be used as the source for the shader read...
Definition: GraphicsTypes.h:197
+
Uint32 AccessFlags
For an unordered access view, allowed access flags. See Diligent::UAV_ACCESS_FLAG for details...
Definition: TextureView.h:103
+
Template class implementing base functionality for a device object.
Definition: DeviceObjectBase.h:42
+
std::unique_ptr< TTextureViewImpl, STDDeleter< TTextureViewImpl, TTexViewObjAllocator > > m_pDefaultDSV
Default DSV addressing the most detailed mip level.
Definition: TextureBase.h:162
+
Base implementation of the ITexture interface.
Definition: TextureBase.h:52
+
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:125
+
virtual void CreateViewInternal(const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView)=0
Pure virtual function that creates texture view for the specific engine implementation.
+
Single-component 16-bit signed-normalized-integer format. D3D counterpart: DXGI_FORMAT_R16_SNORM. OpenGL counterpart: GL_R16_SNORM. OpenGLES: GL_EXT_texture_norm16 extension is required.
Definition: GraphicsTypes.h:498
+
A texture view will define a render target view that will be used as the target for rendering operati...
Definition: GraphicsTypes.h:201
+
Two-dimensional texture array.
Definition: GraphicsTypes.h:179
+
Texture inteface.
Definition: Texture.h:276
+
virtual void CreateView(const struct TextureViewDesc &ViewDesc, ITextureView **ppView) override
Implementaiton of ITexture::CreateView(); calls CreateViewInternal() virtual function that creates te...
Definition: TextureBase.h:111
+
+ + + + + diff --git a/doc/html/_texture_base_d3_d11_8h_source.html b/doc/html/_texture_base_d3_d11_8h_source.html new file mode 100644 index 00000000..874f277c --- /dev/null +++ b/doc/html/_texture_base_d3_d11_8h_source.html @@ -0,0 +1,104 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/TextureBaseD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureBaseD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "TextureD3D11.h"
30 #include "RenderDeviceD3D11.h"
31 #include "TextureBase.h"
32 #include "TextureViewD3D11Impl.h"
33 
34 namespace Diligent
35 {
36 
37 class FixedBlockMemoryAllocator;
38 
39 enum class D3D11TextureState
40 {
41  Undefined = 0x0,
42  ShaderResource = 0x1,
43  RenderTarget = 0x2,
44  DepthStencil = 0x4,
45  UnorderedAccess = 0x8,
46  Output = RenderTarget | DepthStencil | UnorderedAccess
47 };
48 
50 class TextureBaseD3D11 : public TextureBase<ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator>
51 {
52 public:
54 
55  TextureBaseD3D11(IReferenceCounters *pRefCounters,
56  FixedBlockMemoryAllocator &TexViewObjAllocator,
57  class RenderDeviceD3D11Impl *pDeviceD3D11,
58  const TextureDesc& TexDesc,
59  const TextureData &InitData = TextureData());
61 
62  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final;
63 
64  virtual void UpdateData( IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData )override final;
65 
66  //virtual void CopyData(CTexture *pSrcTexture, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size);
67  virtual void Map( IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData )override final;
68  virtual void Unmap( IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags )override final;
69 
70  virtual ID3D11Resource* GetD3D11Texture()override final{ return m_pd3d11Texture; }
71 
72  virtual void* GetNativeHandle()override final { return GetD3D11Texture(); }
73 
74  void CopyData(IDeviceContext *pContext,
75  ITexture *pSrcTexture,
76  Uint32 SrcMipLevel,
77  Uint32 SrcSlice,
78  const Box *pSrcBox,
79  Uint32 DstMipLevel,
80  Uint32 DstSlice,
81  Uint32 DstX,
82  Uint32 DstY,
83  Uint32 DstZ);
84 
85  void ResetState(D3D11TextureState State){m_State = static_cast<Uint32>(State);}
86  void AddState(D3D11TextureState State){m_State |= static_cast<Uint32>(State);}
87  void ClearState(D3D11TextureState State){m_State &= ~static_cast<Uint32>(State);}
88  bool CheckState(D3D11TextureState State){return (m_State & static_cast<Uint32>(State)) ? true : false;}
89 
90 protected:
91  void CreateViewInternal( const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView )override final;
92  void PrepareD3D11InitData(const TextureData &InitData, Uint32 NumSubresources,
93  std::vector<D3D11_SUBRESOURCE_DATA, STDAllocatorRawMem<D3D11_SUBRESOURCE_DATA> > &D3D11InitData);
94 
95  virtual void CreateSRV( TextureViewDesc &SRVDesc, ID3D11ShaderResourceView **ppD3D11SRV ) = 0;
96  virtual void CreateRTV( TextureViewDesc &RTVDesc, ID3D11RenderTargetView **ppD3D11RTV ) = 0;
97  virtual void CreateDSV( TextureViewDesc &DSVDesc, ID3D11DepthStencilView **ppD3D11DSV ) = 0;
98  virtual void CreateUAV( TextureViewDesc &UAVDesc, ID3D11UnorderedAccessView **ppD3D11UAV ) = 0;
99 
100  friend class RenderDeviceD3D11Impl;
102  CComPtr<ID3D11Resource> m_pd3d11Texture;
103 
104  Uint32 m_State = static_cast<Uint32>(D3D11TextureState::Undefined);
105 };
106 
107 }
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
Queries the specific interface, see IObject::QueryInterface() for details.
+
Texture description.
Definition: Texture.h:82
+
Base implementation of the Diligent::ITextureD3D11 interface.
Definition: TextureBaseD3D11.h:50
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Describes data for one subresource.
Definition: Texture.h:193
+
void CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)
Base implementaiton of ITexture::CopyData(); validates input parameters.
Definition: TextureBaseD3D11.cpp:169
+
virtual void Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override final
Base implementaiton of ITexture::Map()
Definition: TextureBaseD3D11.cpp:202
+
void CreateViewInternal(const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView) override final
Pure virtual function that creates texture view for the specific engine implementation.
Definition: TextureBaseD3D11.cpp:44
+
CComPtr< ID3D11Resource > m_pd3d11Texture
D3D11 texture.
Definition: TextureBaseD3D11.h:102
+
Describes the initial data to store in the texture.
Definition: Texture.h:243
+
Device context interface.
Definition: DeviceContext.h:443
+
virtual void * GetNativeHandle() override final
Returns native texture handle specific to the underlying graphics API.
Definition: TextureBaseD3D11.h:72
+
Box.
Definition: GraphicsTypes.h:1005
+
Memory allocator that allocates memory in a fixed-size chunks.
Definition: FixedBlockMemoryAllocator.h:50
+
virtual void Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override final
Base implementaiton of ITexture::Unmap()
Definition: TextureBaseD3D11.cpp:226
+
Implementation of the Diligent::IRenderDeviceD3D11 interface.
Definition: RenderDeviceD3D11Impl.h:38
+
virtual void UpdateData(IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override final
Base implementaiton of ITexture::UpdateData(); validates input parameters.
Definition: TextureBaseD3D11.cpp:145
+
Base implementation of the ITexture interface.
Definition: TextureBase.h:52
+
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:125
+
virtual ID3D11Resource * GetD3D11Texture() override final
Returns a pointer to the ID3D11Resource interface of the internal Direct3D11 object.
Definition: TextureBaseD3D11.h:70
+
Texture inteface.
Definition: Texture.h:276
+
+ + + + + diff --git a/doc/html/_texture_base_g_l_8h_source.html b/doc/html/_texture_base_g_l_8h_source.html new file mode 100644 index 00000000..4ae828ae --- /dev/null +++ b/doc/html/_texture_base_g_l_8h_source.html @@ -0,0 +1,105 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/TextureBaseGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureBaseGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BaseInterfacesGL.h"
27 #include "TextureGL.h"
28 #include "TextureBase.h"
29 #include "RenderDevice.h"
30 #include "GLObjectWrapper.h"
31 #include "TextureViewGLImpl.h"
32 #include "AsyncWritableResource.h"
33 
34 
35 namespace Diligent
36 {
37 
38 class FixedBlockMemoryAllocator;
39 
41 class TextureBaseGL : public TextureBase<ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator>, public AsyncWritableResource
42 {
43 public:
45 
46  TextureBaseGL(IReferenceCounters *pRefCounters,
47  FixedBlockMemoryAllocator& TexViewObjAllocator,
48  class RenderDeviceGLImpl *pDeviceGL,
49  const TextureDesc &TexDesc,
50  GLenum BindTarget,
51  const TextureData &InitData = TextureData(),
52  bool bIsDeviceInternal = false);
53 
54  TextureBaseGL(IReferenceCounters *pRefCounters,
55  FixedBlockMemoryAllocator& TexViewObjAllocator,
56  class RenderDeviceGLImpl *pDeviceGL,
57  class DeviceContextGLImpl *pDeviceContext,
58  const TextureDesc& TexDesc,
59  GLuint GLTextureHandle,
60  GLenum BindTarget,
61  bool bIsDeviceInternal);
62 
63  ~TextureBaseGL();
64 
65  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override;
66 
67  virtual void UpdateData( class GLContextState &CtxState, IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData );
68 
69  //virtual void CopyData(CTexture *pSrcTexture, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size);
70  virtual void Map( IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData )override;
71  virtual void Unmap( IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags )override;
72 
73  const GLObjectWrappers::GLTextureObj& GetGLHandle()const{ return m_GlTexture; }
74  virtual GLenum GetBindTarget()const override final{return m_BindTarget;}
75  GLenum GetGLTexFormat()const{ return m_GLTexFormat; }
76 
77  void TextureMemoryBarrier( Uint32 RequiredBarriers, class GLContextState &GLContextState);
78 
79  virtual void AttachToFramebuffer(const struct TextureViewDesc& ViewDesc, GLenum AttachmentPoint) = 0;
80 
81  virtual void CopyData(IDeviceContext *pContext,
82  ITexture *pSrcTexture,
83  Uint32 SrcMipLevel,
84  Uint32 SrcSlice,
85  const Box *pSrcBox,
86  Uint32 DstMipLevel,
87  Uint32 DstSlice,
88  Uint32 DstX,
89  Uint32 DstY,
90  Uint32 DstZ)override;
91 
92  virtual GLuint GetGLTextureHandle()override final { return GetGLHandle(); }
93  virtual void* GetNativeHandle()override final { return reinterpret_cast<void*>(static_cast<size_t>(GetGLTextureHandle())); }
94 
95 protected:
96  virtual void CreateViewInternal( const struct TextureViewDesc &ViewDesc, class ITextureView **ppView, bool bIsDefaultView )override;
97  void SetDefaultGLParameters();
98 
99  GLObjectWrappers::GLTextureObj m_GlTexture;
100  const GLenum m_BindTarget;
101  const GLenum m_GLTexFormat;
102  //Uint32 m_uiMapTarget;
103 };
104 
105 }
Base implementation of the Diligent::ITextureGL interface.
Definition: TextureBaseGL.h:41
+
Texture description.
Definition: Texture.h:82
+
virtual void CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ) override
Base implementaiton of ITexture::CopyData(); validates input parameters.
Definition: TextureBaseGL.cpp:312
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual GLuint GetGLTextureHandle() override final
Returns OpenGL texture handle.
Definition: TextureBaseGL.h:92
+
Implementation of the Diligent::IDeviceContextGL interface.
Definition: DeviceContextGLImpl.h:35
+
virtual void Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override
Base implementaiton of ITexture::Unmap()
Definition: TextureBaseGL.cpp:446
+
Describes data for one subresource.
Definition: Texture.h:193
+
Implementation of the render device interface in OpenGL.
Definition: RenderDeviceGLImpl.h:53
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
Queries the specific interface, see IObject::QueryInterface() for details.
+
Describes the initial data to store in the texture.
Definition: Texture.h:243
+
Device context interface.
Definition: DeviceContext.h:443
+
Box.
Definition: GraphicsTypes.h:1005
+
Texture view interface.
Definition: TextureView.h:163
+
virtual void Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override
Base implementaiton of ITexture::Map()
Definition: TextureBaseGL.cpp:440
+
virtual GLenum GetBindTarget() const override final
Returns bind target of the native OpenGL texture.
Definition: TextureBaseGL.h:74
+
Memory allocator that allocates memory in a fixed-size chunks.
Definition: FixedBlockMemoryAllocator.h:50
+
Texture view description.
Definition: TextureView.h:55
+
virtual void * GetNativeHandle() override final
Returns native texture handle specific to the underlying graphics API.
Definition: TextureBaseGL.h:93
+
virtual void CreateViewInternal(const struct TextureViewDesc &ViewDesc, class ITextureView **ppView, bool bIsDefaultView) override
Pure virtual function that creates texture view for the specific engine implementation.
Definition: TextureBaseGL.cpp:159
+
Base implementation of the ITexture interface.
Definition: TextureBase.h:52
+
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:125
+
+ + + + + diff --git a/doc/html/_texture_cube___o_g_l_8h_source.html b/doc/html/_texture_cube___o_g_l_8h_source.html new file mode 100644 index 00000000..c0588f27 --- /dev/null +++ b/doc/html/_texture_cube___o_g_l_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/TextureCube_OGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureCube_OGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "TextureBaseGL.h"
27 
28 namespace Diligent
29 {
30 
31 class TextureCube_OGL : public TextureBaseGL
32 {
33 public:
34  TextureCube_OGL( IReferenceCounters *pRefCounters,
35  FixedBlockMemoryAllocator& TexViewObjAllocator,
36  class RenderDeviceGLImpl *pDeviceGL,
37  class DeviceContextGLImpl *pDeviceContext,
38  const TextureDesc& TexDesc,
39  const TextureData& InitData = TextureData(),
40  bool bIsDeviceInternal = false);
41 
42  TextureCube_OGL( IReferenceCounters *pRefCounters,
43  FixedBlockMemoryAllocator& TexViewObjAllocator,
44  class RenderDeviceGLImpl *pDeviceGL,
45  class DeviceContextGLImpl *pDeviceContext,
46  const TextureDesc& TexDesc,
47  GLuint GLTextureHandle,
48  bool bIsDeviceInternal = false);
49  ~TextureCube_OGL();
50 
51  virtual void UpdateData( IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData )override final;
52  virtual void AttachToFramebuffer( const struct TextureViewDesc& ViewDesc, GLenum AttachmentPoint )override final;
53 
54 private:
55 
56 };
57 
58 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_texture_cube_array___o_g_l_8h_source.html b/doc/html/_texture_cube_array___o_g_l_8h_source.html new file mode 100644 index 00000000..af70224a --- /dev/null +++ b/doc/html/_texture_cube_array___o_g_l_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/TextureCubeArray_OGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureCubeArray_OGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "TextureBaseGL.h"
27 
28 namespace Diligent
29 {
30 
31 class TextureCubeArray_OGL : public TextureBaseGL
32 {
33 public:
34  TextureCubeArray_OGL( IReferenceCounters *pRefCounters,
35  FixedBlockMemoryAllocator& TexViewObjAllocator,
36  class RenderDeviceGLImpl *pDeviceGL,
37  class DeviceContextGLImpl *pDeviceContext,
38  const TextureDesc& TexDesc,
39  const TextureData& InitData = TextureData(),
40  bool bIsDeviceInternal = false );
41 
42  TextureCubeArray_OGL( IReferenceCounters *pRefCounters,
43  FixedBlockMemoryAllocator& TexViewObjAllocator,
44  class RenderDeviceGLImpl *pDeviceGL,
45  class DeviceContextGLImpl *pDeviceContext,
46  const TextureDesc& TexDesc,
47  GLuint GLTextureHandle,
48  bool bIsDeviceInternal = false);
49  ~TextureCubeArray_OGL();
50 
51  virtual void UpdateData( IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData )override final;
52  virtual void AttachToFramebuffer( const struct TextureViewDesc& ViewDesc, GLenum AttachmentPoint )override final;
53 
54 private:
55 
56 };
57 
58 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_texture_d3_d11_8h_source.html b/doc/html/_texture_d3_d11_8h_source.html new file mode 100644 index 00000000..9a35462f --- /dev/null +++ b/doc/html/_texture_d3_d11_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/interface/TextureD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Texture.h"
30 
31 namespace Diligent
32 {
33 
34 // {F3A84CC2-E485-4E72-A08A-437D7FFBA3AB}
35 static constexpr INTERFACE_ID IID_TextureD3D11 =
36 { 0xf3a84cc2, 0xe485, 0x4e72, { 0xa0, 0x8a, 0x43, 0x7d, 0x7f, 0xfb, 0xa3, 0xab } };
37 
39 class ITextureD3D11 : public ITexture
40 {
41 public:
42 
44 
47  virtual ID3D11Resource* GetD3D11Texture() = 0;
48 };
49 
50 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Interface to the texture object implemented in D3D11.
Definition: TextureD3D11.h:39
+
virtual ID3D11Resource * GetD3D11Texture()=0
Returns a pointer to the ID3D11Resource interface of the internal Direct3D11 object.
+
Texture inteface.
Definition: Texture.h:276
+
+ + + + + diff --git a/doc/html/_texture_d3_d12_8h_source.html b/doc/html/_texture_d3_d12_8h_source.html new file mode 100644 index 00000000..985d6e85 --- /dev/null +++ b/doc/html/_texture_d3_d12_8h_source.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/interface/TextureD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Texture.h"
30 
31 namespace Diligent
32 {
33 
34 // {CF5522EF-8116-4D76-ADF1-5CC8FB31FF66}
35 static constexpr INTERFACE_ID IID_TextureD3D12 =
36 { 0xcf5522ef, 0x8116, 0x4d76, { 0xad, 0xf1, 0x5c, 0xc8, 0xfb, 0x31, 0xff, 0x66 } };
37 
39 class ITextureD3D12 : public ITexture
40 {
41 public:
42 
44 
47  virtual ID3D12Resource* GetD3D12Texture() = 0;
48 
50 
52  virtual void SetD3D12ResourceState(D3D12_RESOURCE_STATES state) = 0;
53 };
54 
55 }
Interface to the texture object implemented in D3D11.
Definition: TextureD3D12.h:39
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual ID3D12Resource * GetD3D12Texture()=0
Returns a pointer to the ID3D12Resource interface of the internal Direct3D12 object.
+
virtual void SetD3D12ResourceState(D3D12_RESOURCE_STATES state)=0
Sets the texture usage state.
+
Texture inteface.
Definition: Texture.h:276
+
+ + + + + diff --git a/doc/html/_texture_d3_d12_impl_8h_source.html b/doc/html/_texture_d3_d12_impl_8h_source.html new file mode 100644 index 00000000..1a3c6cbe --- /dev/null +++ b/doc/html/_texture_d3_d12_impl_8h_source.html @@ -0,0 +1,105 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/TextureD3D12Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureD3D12Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "TextureD3D12.h"
30 #include "RenderDeviceD3D12.h"
31 #include "TextureBase.h"
32 #include "TextureViewD3D12Impl.h"
33 #include "D3D12ResourceBase.h"
34 
35 
36 namespace Diligent
37 {
38 
39 class FixedBlockMemoryAllocator;
40 
42 class TextureD3D12Impl : public TextureBase<ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator>, public D3D12ResourceBase
43 {
44 public:
46 
47  // Creates a new D3D12 resource
48  TextureD3D12Impl(IReferenceCounters *pRefCounters,
49  FixedBlockMemoryAllocator &TexViewObjAllocator,
50  class RenderDeviceD3D12Impl *pDeviceD3D12,
51  const TextureDesc& TexDesc,
52  const TextureData &InitData = TextureData());
53  // Attaches to an existing D3D12 resource
54  TextureD3D12Impl(IReferenceCounters *pRefCounters,
55  FixedBlockMemoryAllocator &TexViewObjAllocator,
56  class RenderDeviceD3D12Impl *pDeviceD3D12,
57  const TextureDesc& TexDesc,
58  ID3D12Resource *pTexture);
60 
61  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override;
62 
63  virtual void UpdateData( IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData )override;
64 
65  //virtual void CopyData(CTexture *pSrcTexture, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size);
66  virtual void Map( IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData )override;
67  virtual void Unmap( IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags )override;
68 
69  virtual ID3D12Resource* GetD3D12Texture(){ return GetD3D12Resource(); }
70 
71  virtual void* GetNativeHandle()override final { return GetD3D12Texture(); }
72 
73  virtual void SetD3D12ResourceState(D3D12_RESOURCE_STATES state)override final{ SetState(state); }
74 
75  void CopyData(IDeviceContext *pContext,
76  ITexture *pSrcTexture,
77  Uint32 SrcMipLevel,
78  Uint32 SrcSlice,
79  const Box *pSrcBox,
80  Uint32 DstMipLevel,
81  Uint32 DstSlice,
82  Uint32 DstX,
83  Uint32 DstY,
84  Uint32 DstZ);
85 
86  D3D12_CPU_DESCRIPTOR_HANDLE GetMipLevelUAV(Uint32 Mip)
87  {
88  return m_MipUAVs.GetCpuHandle(Mip);
89  }
90 
91  D3D12_CPU_DESCRIPTOR_HANDLE GetTexArraySRV()
92  {
93  return m_TexArraySRV.GetCpuHandle();
94  }
95 
96 protected:
97  void CreateViewInternal( const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView )override;
98  //void PrepareD3D12InitData(const TextureData &InitData, Uint32 NumSubresources, std::vector<D3D12_SUBRESOURCE_DATA> &D3D12InitData);
99 
100  void CreateSRV( TextureViewDesc &SRVDesc, D3D12_CPU_DESCRIPTOR_HANDLE SRVHandle );
101  void CreateRTV( TextureViewDesc &RTVDesc, D3D12_CPU_DESCRIPTOR_HANDLE RTVHandle );
102  void CreateDSV( TextureViewDesc &DSVDesc, D3D12_CPU_DESCRIPTOR_HANDLE DSVHandle );
103  void CreateUAV( TextureViewDesc &UAVDesc, D3D12_CPU_DESCRIPTOR_HANDLE UAVHandle );
104 
105  // UAVs for every mip level to facilitate mipmap generation
106  DescriptorHeapAllocation m_MipUAVs;
107  // SRV as texture array (even for a non-array texture) required for mipmap generation
108  DescriptorHeapAllocation m_TexArraySRV;
109 
110  friend class RenderDeviceD3D12Impl;
111 };
112 
113 }
void CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)
Base implementaiton of ITexture::CopyData(); validates input parameters.
Definition: TextureD3D12Impl.cpp:422
+
void CreateViewInternal(const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView) override
Pure virtual function that creates texture view for the specific engine implementation.
Definition: TextureD3D12Impl.cpp:326
+
Texture description.
Definition: Texture.h:82
+
virtual void * GetNativeHandle() override final
Returns native texture handle specific to the underlying graphics API.
Definition: TextureD3D12Impl.h:71
+
virtual void SetD3D12ResourceState(D3D12_RESOURCE_STATES state) override final
Sets the texture usage state.
Definition: TextureD3D12Impl.h:73
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Base implementation of a D3D12 resource.
Definition: D3D12ResourceBase.h:33
+
virtual void Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override
Base implementaiton of ITexture::Unmap()
Definition: TextureD3D12Impl.cpp:465
+
Describes data for one subresource.
Definition: Texture.h:193
+
virtual void UpdateData(IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override
Base implementaiton of ITexture::UpdateData(); validates input parameters.
Definition: TextureD3D12Impl.cpp:404
+
virtual void Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override
Base implementaiton of ITexture::Map()
Definition: TextureD3D12Impl.cpp:456
+
Describes the initial data to store in the texture.
Definition: Texture.h:243
+
Device context interface.
Definition: DeviceContext.h:443
+
Box.
Definition: GraphicsTypes.h:1005
+
virtual ID3D12Resource * GetD3D12Texture()
Returns a pointer to the ID3D12Resource interface of the internal Direct3D12 object.
Definition: TextureD3D12Impl.h:69
+
Memory allocator that allocates memory in a fixed-size chunks.
Definition: FixedBlockMemoryAllocator.h:50
+
Base implementation of the Diligent::ITextureD3D12 interface.
Definition: TextureD3D12Impl.h:42
+
Base implementation of the ITexture interface.
Definition: TextureBase.h:52
+
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:125
+
Texture inteface.
Definition: Texture.h:276
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
Queries the specific interface, see IObject::QueryInterface() for details.
+
Implementation of the Diligent::IRenderDeviceD3D12 interface.
Definition: RenderDeviceD3D12Impl.h:43
+
+ + + + + diff --git a/doc/html/_texture_g_l_8h_source.html b/doc/html/_texture_g_l_8h_source.html new file mode 100644 index 00000000..b85e626f --- /dev/null +++ b/doc/html/_texture_g_l_8h_source.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/interface/TextureGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "Texture.h"
30 
31 namespace Diligent
32 {
33 
34 // {D7BC9FF0-28F0-4636-9732-710C204D1D63}
35 static constexpr INTERFACE_ID IID_TextureGL =
36 { 0xd7bc9ff0, 0x28f0, 0x4636, { 0x97, 0x32, 0x71, 0xc, 0x20, 0x4d, 0x1d, 0x63 } };
37 
39 class ITextureGL : public ITexture
40 {
41 public:
43  virtual GLuint GetGLTextureHandle() = 0;
44 
46  virtual GLenum GetBindTarget()const = 0;
47 };
48 
49 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual GLuint GetGLTextureHandle()=0
Returns OpenGL texture handle.
+
virtual GLenum GetBindTarget() const =0
Returns bind target of the native OpenGL texture.
+
Interface to the texture object implemented in OpenGL.
Definition: TextureGL.h:39
+
Texture inteface.
Definition: Texture.h:276
+
+ + + + + diff --git a/doc/html/_texture_uploader_8h_source.html b/doc/html/_texture_uploader_8h_source.html new file mode 100644 index 00000000..fee96c24 --- /dev/null +++ b/doc/html/_texture_uploader_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsTools/include/TextureUploader.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureUploader.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "RenderDevice.h"
27 #include "DeviceContext.h"
28 
29 namespace Diligent
30 {
31  struct UploadBufferDesc
32  {
33  Uint32 Width = 0;
34  Uint32 Height = 0;
35  Uint32 Depth = 1;
37 
38  bool operator == (const UploadBufferDesc &rhs) const
39  {
40  return Width == rhs.Width &&
41  Height == rhs.Height &&
42  Depth == rhs.Depth &&
43  Format == rhs.Format;
44  }
45  };
46 
47  class IUploadBuffer : public IObject
48  {
49  public:
50  virtual void WaitForCopyScheduled() = 0;
51  virtual void* GetDataPtr() = 0;
52  virtual size_t GetRowStride() const = 0;
53  virtual size_t GetDepthStride()const = 0;
54  virtual const UploadBufferDesc& GetDesc()const = 0;
55  };
56 
57  struct TextureUploaderDesc
58  {
59 
60  };
61 
62  class ITextureUploader : public IObject
63  {
64  public:
65  virtual void RenderThreadUpdate(IDeviceContext *pContext) = 0;
66  virtual void AllocateUploadBuffer(const UploadBufferDesc& Desc, bool IsRenderThread, IUploadBuffer **ppBuffer) = 0;
67  virtual void ScheduleGPUCopy(ITexture *pDstTexture, Uint32 ArraySlice, Uint32 MipLevel, IUploadBuffer *pUploadBuffer) = 0;
68  virtual void RecycleBuffer(IUploadBuffer *pUploadBuffer) = 0;
69  };
70 
71  void CreateTextureUploader(IRenderDevice *pDevice, const TextureUploaderDesc& Desc, ITextureUploader **ppUploader);
72 }
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
+
Unknown format.
Definition: GraphicsTypes.h:247
+
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
+ + + + + diff --git a/doc/html/_texture_uploader_base_8h_source.html b/doc/html/_texture_uploader_base_8h_source.html new file mode 100644 index 00000000..f1e2bca2 --- /dev/null +++ b/doc/html/_texture_uploader_base_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsTools/include/TextureUploaderBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureUploaderBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "TextureUploader.h"
27 #include "ObjectBase.h"
28 #include "HashUtils.h"
29 #include "RefCntAutoPtr.h"
30 
31 namespace std
32 {
33  template<>
34  struct hash<Diligent::UploadBufferDesc>
35  {
36  size_t operator()(const Diligent::UploadBufferDesc &Desc) const
37  {
38  return Diligent::ComputeHash(Desc.Width, Desc.Height, Desc.Depth, static_cast<Diligent::Int32>(Desc.Format));
39  }
40  };
41 }
42 
43 namespace Diligent
44 {
45  class UploadBufferBase : public ObjectBase<IUploadBuffer>
46  {
47  public:
48  UploadBufferBase(IReferenceCounters *pRefCounters, const UploadBufferDesc &Desc) :
49  ObjectBase<IUploadBuffer>(pRefCounters),
50  m_Desc(Desc)
51  {
52  }
53 
54  virtual void* GetDataPtr() override final { return m_pData; }
55  virtual size_t GetRowStride() const override final{ return m_RowStride; }
56  virtual size_t GetDepthStride()const override final{ return m_DepthStride; }
57  virtual const UploadBufferDesc& GetDesc()const override final{ return m_Desc; }
58 
59  protected:
60  const UploadBufferDesc m_Desc;
61  void* m_pData = 0;
62  size_t m_RowStride = 0;
63  size_t m_DepthStride = 0;
64  };
65 
66  class TextureUploaderBase : public ObjectBase<ITextureUploader>
67  {
68  public:
69  TextureUploaderBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureUploaderDesc Desc) :
70  ObjectBase<ITextureUploader>(pRefCounters),
71  m_pDevice(pDevice)
72  {}
73 
74  protected:
75  RefCntAutoPtr<IRenderDevice> m_pDevice;
76  };
77 
78 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Definition: AdvancedMath.h:316
+
+ + + + + diff --git a/doc/html/_texture_uploader_d3_d11_8h_source.html b/doc/html/_texture_uploader_d3_d11_8h_source.html new file mode 100644 index 00000000..c0e3aee2 --- /dev/null +++ b/doc/html/_texture_uploader_d3_d11_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsTools/include/TextureUploaderD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureUploaderD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "TextureUploaderBase.h"
27 namespace Diligent
28 {
29  class TextureUploaderD3D11 : public TextureUploaderBase
30  {
31  public:
32  TextureUploaderD3D11(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureUploaderDesc Desc);
33  ~TextureUploaderD3D11();
34  virtual void RenderThreadUpdate(IDeviceContext *pContext)override final;
35 
36  virtual void AllocateUploadBuffer(const UploadBufferDesc& Desc, bool IsRenderThread, IUploadBuffer **ppBuffer)override final;
37  virtual void ScheduleGPUCopy(ITexture *pDstTexture, Uint32 ArraySlice, Uint32 MipLevel, IUploadBuffer *pUploadBuffer)override final;
38  virtual void RecycleBuffer(IUploadBuffer *pUploadBuffer)override final;
39 
40  private:
41  struct InternalData;
42  std::unique_ptr<InternalData> m_pInternalData;
43  };
44 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
+ + + + + diff --git a/doc/html/_texture_uploader_d3_d12_8h_source.html b/doc/html/_texture_uploader_d3_d12_8h_source.html new file mode 100644 index 00000000..37f9fdb5 --- /dev/null +++ b/doc/html/_texture_uploader_d3_d12_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsTools/include/TextureUploaderD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureUploaderD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "TextureUploaderBase.h"
27 
28 namespace Diligent
29 {
30  class TextureUploaderD3D12 : public TextureUploaderBase
31  {
32  public:
33  TextureUploaderD3D12(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureUploaderDesc Desc);
34  ~TextureUploaderD3D12();
35  virtual void RenderThreadUpdate(IDeviceContext *pContext)override final;
36 
37  virtual void AllocateUploadBuffer(const UploadBufferDesc& Desc, bool IsRenderThread, IUploadBuffer **ppBuffer)override final;
38  virtual void ScheduleGPUCopy(ITexture *pDstTexture, Uint32 ArraySlice, Uint32 MipLevel, IUploadBuffer *pUploadBuffer)override final;
39  virtual void RecycleBuffer(IUploadBuffer *pUploadBuffer)override final;
40 
41  private:
42  struct InternalData;
43  std::unique_ptr<InternalData> m_pInternalData;
44  };
45 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
+ + + + + diff --git a/doc/html/_texture_uploader_g_l_8h_source.html b/doc/html/_texture_uploader_g_l_8h_source.html new file mode 100644 index 00000000..4551f979 --- /dev/null +++ b/doc/html/_texture_uploader_g_l_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsTools/include/TextureUploaderGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureUploaderGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "TextureUploaderBase.h"
27 
28 namespace Diligent
29 {
30  class TextureUploaderGL : public TextureUploaderBase
31  {
32  public:
33  TextureUploaderGL(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureUploaderDesc Desc);
34  ~TextureUploaderGL();
35  virtual void RenderThreadUpdate(IDeviceContext *pContext)override final;
36 
37  virtual void AllocateUploadBuffer(const UploadBufferDesc& Desc, bool IsRenderThread, IUploadBuffer **ppBuffer)override final;
38  virtual void ScheduleGPUCopy(ITexture *pDstTexture, Uint32 ArraySlice, Uint32 MipLevel, IUploadBuffer *pUploadBuffer)override final;
39  virtual void RecycleBuffer(IUploadBuffer *pUploadBuffer)override final;
40 
41  private:
42  struct InternalData;
43  std::unique_ptr<InternalData> m_pInternalData;
44  };
45 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
+ + + + + diff --git a/doc/html/_texture_view_8h_source.html b/doc/html/_texture_view_8h_source.html new file mode 100644 index 00000000..8cd864c1 --- /dev/null +++ b/doc/html/_texture_view_8h_source.html @@ -0,0 +1,120 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface/TextureView.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureView.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "DeviceObject.h"
30 
31 namespace Diligent
32 {
33 
34 // {5B2EA04E-8128-45E4-AA4D-6DC7E70DC424}
35 static constexpr INTERFACE_ID IID_TextureView =
36 { 0x5b2ea04e, 0x8128, 0x45e4, { 0xaa, 0x4d, 0x6d, 0xc7, 0xe7, 0xd, 0xc4, 0x24 } };
37 
39 enum UAV_ACCESS_FLAG : Int32
40 {
43 
46 
49 
52 };
53 
56 {
59 
66 
70 
73 
79  Uint32 NumMipLevels;
80 
81  union
82  {
85 
88  };
89 
90  union
91  {
95 
99  };
100 
103  Uint32 AccessFlags;
104 
105 
107 
123  MostDetailedMip(0),
124  NumMipLevels(0),
125  FirstArraySlice(0),
126  NumArraySlices(0),
127  AccessFlags(0)
128  {
129  }
130 
132 
137  bool operator == (const TextureViewDesc& RHS)const
138  {
139  // Name is primarily used for debug purposes and does not affect the view.
140  // It is ignored in comparison operation.
141  return //strcmp(Name, RHS.Name) == 0 &&
142  ViewType == RHS.ViewType &&
143  TextureDim == RHS.TextureDim &&
144  Format == RHS.Format &&
146  NumMipLevels == RHS.NumMipLevels &&
151  AccessFlags == RHS.AccessFlags;
152  }
153 };
154 
156 
164 {
165 public:
167  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface ) = 0;
168 
170  virtual const TextureViewDesc& GetDesc()const = 0;
171 
176  virtual void SetSampler( class ISampler *pSampler ) = 0;
177 
179 
182  virtual ISampler* GetSampler() = 0;
183 
184 
186 
189  virtual class ITexture* GetTexture() = 0;
190 
192 
195  virtual void GenerateMips(IDeviceContext *pContext ) = 0;
196 };
197 
198 }
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
+
RESOURCE_DIMENSION TextureDim
View interpretation of the original texture. For instance, one slice of a 2D texture array can be vie...
Definition: TextureView.h:65
+
TEXTURE_VIEW_TYPE
Texture view type.
Definition: GraphicsTypes.h:190
+
virtual void GenerateMips(IDeviceContext *pContext)=0
Generates a mipmap chain.
+
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:40
+
Unknown format.
Definition: GraphicsTypes.h:247
+
Allow read operations on the UAV.
Definition: TextureView.h:45
+
Allow read and write operations on the UAV.
Definition: TextureView.h:51
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Uint32 FirstDepthSlice
For a 3D texture, first depth slice to address the view.
Definition: TextureView.h:87
+
UAV_ACCESS_FLAG
Describes allowed unordered access view mode.
Definition: TextureView.h:39
+
Undefined view type.
Definition: GraphicsTypes.h:193
+
Uint32 MostDetailedMip
Most detailed mip level to use.
Definition: TextureView.h:72
+
TextureViewDesc()
Initializes the structure members with default values.
Definition: TextureView.h:119
+
Device context interface.
Definition: DeviceContext.h:443
+
Access mode is unspecified.
Definition: TextureView.h:42
+
Texture view interface.
Definition: TextureView.h:163
+
Texture view description.
Definition: TextureView.h:55
+
TEXTURE_VIEW_TYPE ViewType
Describes the texture view type, see Diligent::TEXTURE_VIEW_TYPE for details.
Definition: TextureView.h:58
+
virtual const TextureViewDesc & GetDesc() const =0
Returns the texture view description used to create the object.
+
RESOURCE_DIMENSION
Describes resource dimension.
Definition: GraphicsTypes.h:172
+
virtual ISampler * GetSampler()=0
Returns the pointer to the sampler object set by the ITextureView::SetSampler().
+
Describes common device object attributes.
Definition: GraphicsTypes.h:900
+
Uint32 NumMipLevels
Total number of mip levels for the view of the texture. Render target and depth stencil views can add...
Definition: TextureView.h:79
+
bool operator==(const TextureViewDesc &RHS) const
Tests if two structures are equivalent.
Definition: TextureView.h:137
+
Texture sampler interface.
Definition: Sampler.h:180
+
virtual class ITexture * GetTexture()=0
Returns the pointer to the referenced texture object.
+
Texture type undefined.
Definition: GraphicsTypes.h:174
+
Uint32 NumArraySlices
For a texture array, number of array slices to address in the view. Set to 0 to address all array sli...
Definition: TextureView.h:94
+
TEXTURE_FORMAT Format
View format. If default value Diligent::TEX_FORMAT_UNKNOWN is provided, the view format will match th...
Definition: TextureView.h:69
+
Allow write operations on the UAV.
Definition: TextureView.h:48
+
virtual void SetSampler(class ISampler *pSampler)=0
Sets the texture sampler to use for filtering operations when accessing a texture from shaders...
+
Uint32 AccessFlags
For an unordered access view, allowed access flags. See Diligent::UAV_ACCESS_FLAG for details...
Definition: TextureView.h:103
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
Queries the specific interface, see IObject::QueryInterface() for details.
+
Uint32 NumDepthSlices
For a 3D texture, number of depth slices to address in the view Set to 0 to address all depth slices...
Definition: TextureView.h:98
+
Texture inteface.
Definition: Texture.h:276
+
Uint32 FirstArraySlice
For a texture array, first array slice to address in the view.
Definition: TextureView.h:84
+
+ + + + + diff --git a/doc/html/_texture_view_base_8h_source.html b/doc/html/_texture_view_base_8h_source.html new file mode 100644 index 00000000..ab401719 --- /dev/null +++ b/doc/html/_texture_view_base_8h_source.html @@ -0,0 +1,101 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include/TextureViewBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureViewBase.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "TextureView.h"
30 #include "DeviceObjectBase.h"
31 #include "RefCntAutoPtr.h"
32 #include "GraphicsAccessories.h"
33 
34 namespace Diligent
35 {
36 
38 
41 template<class BaseInterface>
42 class TextureViewBase : public DeviceObjectBase<BaseInterface, TextureViewDesc>
43 {
44 public:
46 
47 
55  TextureViewBase( IReferenceCounters *pRefCounters,
56  IRenderDevice *pDevice,
57  const TextureViewDesc& ViewDesc,
58  class ITexture *pTexture,
59  bool bIsDefaultView ) :
60  // Default views are created as part of the texture, so we cannot not keep strong
61  // reference to the texture to avoid cyclic links. Instead, we will attach to the
62  // reference counters of the texture.
63  TDeviceObjectBase( pRefCounters, pDevice, ViewDesc ),
64  m_pTexture( pTexture ),
65  // For non-default view, we will keep strong reference to texture
66  m_spTexture(bIsDefaultView ? nullptr : pTexture)
67  {}
68 
69  IMPLEMENT_QUERY_INTERFACE_IN_PLACE( IID_TextureView, TDeviceObjectBase )
70 
71 
72  virtual void SetSampler( class ISampler *pSampler )override final
73  {
74  VERIFY( this->m_Desc.ViewType == TEXTURE_VIEW_SHADER_RESOURCE, "Texture view \"", this->m_Desc.Name, "\": A sampler can be attached to a shader resource view only. The view type is ", GetTexViewTypeLiteralName(this->m_Desc.ViewType) );
75  m_pSampler = pSampler;
76  }
77 
79  virtual ISampler* GetSampler()override final
80  {
81  return m_pSampler;
82  }
83 
85  virtual ITexture* GetTexture()override final
86  {
87  return m_pTexture;
88  }
89 
90 protected:
93 
96 
100 };
101 
102 }
ITexture * m_pTexture
Raw pointer to the texture.
Definition: TextureViewBase.h:95
+
Render device interface.
Definition: RenderDevice.h:55
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual ITexture * GetTexture() override final
Implementation of ITextureView::GetTexture()
Definition: TextureViewBase.h:85
+
virtual ISampler * GetSampler() override final
Implementation of ITextureView::GetSampler()
Definition: TextureViewBase.h:79
+
Template class implementing base functionality for a texture view interface.
Definition: TextureViewBase.h:42
+
virtual void SetSampler(class ISampler *pSampler) override final
Implementation of ITextureView::SetSampler()
Definition: TextureViewBase.h:72
+
TextureViewBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ViewDesc, class ITexture *pTexture, bool bIsDefaultView)
Definition: TextureViewBase.h:55
+
Diligent::RefCntAutoPtr< ISampler > m_pSampler
Strong reference to the sampler.
Definition: TextureViewBase.h:92
+
Texture view description.
Definition: TextureView.h:55
+
TEXTURE_VIEW_TYPE ViewType
Describes the texture view type, see Diligent::TEXTURE_VIEW_TYPE for details.
Definition: TextureView.h:58
+
TextureViewDesc m_Desc
Object description.
Definition: DeviceObjectBase.h:138
+
Template class that implements reference counting.
Definition: RefCntAutoPtr.h:71
+
Texture sampler interface.
Definition: Sampler.h:180
+
Diligent::RefCntAutoPtr< ITexture > m_spTexture
Strong reference to the texture. Used for non-default views to keep the texture alive.
Definition: TextureViewBase.h:99
+
A texture view will define a shader resource view that will be used as the source for the shader read...
Definition: GraphicsTypes.h:197
+
Template class implementing base functionality for a device object.
Definition: DeviceObjectBase.h:42
+
Texture inteface.
Definition: Texture.h:276
+
+ + + + + diff --git a/doc/html/_texture_view_d3_d11_8h_source.html b/doc/html/_texture_view_d3_d11_8h_source.html new file mode 100644 index 00000000..ce9b73e0 --- /dev/null +++ b/doc/html/_texture_view_d3_d11_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/interface/TextureViewD3D11.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureViewD3D11.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "TextureView.h"
30 
31 namespace Diligent
32 {
33 
34 // {0767EBE4-AD47-4E70-9B65-38C6B9CAC37D}
35 static constexpr INTERFACE_ID IID_TextureViewD3D11 =
36 { 0x767ebe4, 0xad47, 0x4e70, { 0x9b, 0x65, 0x38, 0xc6, 0xb9, 0xca, 0xc3, 0x7d } };
37 
40 {
41 public:
42 
44 
47  virtual ID3D11View* GetD3D11View() = 0;
48 };
49 
50 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual ID3D11View * GetD3D11View()=0
Returns a pointer to the ID3D11View interface of the internal Direct3D11 object.
+
Interface to the texture view object implemented in D3D11.
Definition: TextureViewD3D11.h:39
+
Texture view interface.
Definition: TextureView.h:163
+
+ + + + + diff --git a/doc/html/_texture_view_d3_d11_impl_8h_source.html b/doc/html/_texture_view_d3_d11_impl_8h_source.html new file mode 100644 index 00000000..a59689f2 --- /dev/null +++ b/doc/html/_texture_view_d3_d11_impl_8h_source.html @@ -0,0 +1,94 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/TextureViewD3D11Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureViewD3D11Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "TextureViewD3D11.h"
30 #include "RenderDeviceD3D11.h"
31 #include "TextureViewBase.h"
32 
33 namespace Diligent
34 {
35 
36 class FixedBlockMemoryAllocator;
37 
39 class TextureViewD3D11Impl : public TextureViewBase<ITextureViewD3D11>
40 {
41 public:
43 
44  TextureViewD3D11Impl( IReferenceCounters *pRefCounters,
45  IRenderDevice *pDevice,
46  const TextureViewDesc& ViewDesc,
47  class ITexture *pTexture,
48  ID3D11View* pD3D11View,
49  bool bIsDefaultView);
50 
51  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final;
52 
53  virtual ID3D11View* GetD3D11View()override final
54  {
55  return m_pD3D11View;
56  }
57 
58  void GenerateMips( IDeviceContext *pContext )override final;
59 
60 protected:
62  CComPtr<ID3D11View> m_pD3D11View;
63 };
64 
65 }
Render device interface.
Definition: RenderDevice.h:55
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
Queries the specific interface, see IObject::QueryInterface() for details.
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual ID3D11View * GetD3D11View() override final
Returns a pointer to the ID3D11View interface of the internal Direct3D11 object.
Definition: TextureViewD3D11Impl.h:53
+
CComPtr< ID3D11View > m_pD3D11View
D3D11 view.
Definition: TextureViewD3D11Impl.h:62
+
Device context interface.
Definition: DeviceContext.h:443
+
Template class implementing base functionality for a texture view interface.
Definition: TextureViewBase.h:42
+
Implementation of the Diligent::ITextureViewD3D11 interface.
Definition: TextureViewD3D11Impl.h:39
+
Texture view description.
Definition: TextureView.h:55
+
void GenerateMips(IDeviceContext *pContext) override final
Generates a mipmap chain.
Definition: TextureViewD3D11Impl.cpp:44
+
Texture inteface.
Definition: Texture.h:276
+
+ + + + + diff --git a/doc/html/_texture_view_d3_d12_8h_source.html b/doc/html/_texture_view_d3_d12_8h_source.html new file mode 100644 index 00000000..6d9fd6df --- /dev/null +++ b/doc/html/_texture_view_d3_d12_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/interface/TextureViewD3D12.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureViewD3D12.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "TextureView.h"
30 
31 namespace Diligent
32 {
33 
34 // {BDFBD325-0699-4720-BC0E-BF84086EC033}
35 static constexpr INTERFACE_ID IID_TextureViewD3D12 =
36 { 0xbdfbd325, 0x699, 0x4720, { 0xbc, 0xe, 0xbf, 0x84, 0x8, 0x6e, 0xc0, 0x33 } };
37 
40 {
41 public:
42 
44  virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle() = 0;
45 };
46 
47 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Interface to the texture view object implemented in D3D11.
Definition: TextureViewD3D12.h:39
+
Texture view interface.
Definition: TextureView.h:163
+
virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle()=0
Returns CPU descriptor handle of the texture view.
+
+ + + + + diff --git a/doc/html/_texture_view_d3_d12_impl_8h_source.html b/doc/html/_texture_view_d3_d12_impl_8h_source.html new file mode 100644 index 00000000..f9888eb0 --- /dev/null +++ b/doc/html/_texture_view_d3_d12_impl_8h_source.html @@ -0,0 +1,94 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/TextureViewD3D12Impl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureViewD3D12Impl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "TextureViewD3D12.h"
30 #include "RenderDeviceD3D12.h"
31 #include "TextureViewBase.h"
32 #include "DescriptorHeap.h"
33 
34 namespace Diligent
35 {
36 
37 class FixedBlockMemoryAllocator;
39 class TextureViewD3D12Impl : public TextureViewBase<ITextureViewD3D12>
40 {
41 public:
43 
44  TextureViewD3D12Impl( IReferenceCounters *pRefCounters,
45  IRenderDevice *pDevice,
46  const TextureViewDesc& ViewDesc,
47  class ITexture *pTexture,
48  DescriptorHeapAllocation &&HandleAlloc,
49  bool bIsDefaultView);
50 
51  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override;
52 
53  void GenerateMips( IDeviceContext *pContext )override;
54 
55  virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle()override{return m_Descriptor.GetCpuHandle();}
56 
57 protected:
59  DescriptorHeapAllocation m_Descriptor;
60 };
61 
62 }
Render device interface.
Definition: RenderDevice.h:55
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle() override
Returns CPU descriptor handle of the texture view.
Definition: TextureViewD3D12Impl.h:55
+
void GenerateMips(IDeviceContext *pContext) override
Generates a mipmap chain.
Definition: TextureViewD3D12Impl.cpp:49
+
DescriptorHeapAllocation m_Descriptor
D3D12 view descriptor handle.
Definition: TextureViewD3D12Impl.h:59
+
Device context interface.
Definition: DeviceContext.h:443
+
Template class implementing base functionality for a texture view interface.
Definition: TextureViewBase.h:42
+
Texture view description.
Definition: TextureView.h:55
+
Implementation of the Diligent::ITextureViewD3D12 interface.
Definition: TextureViewD3D12Impl.h:39
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
Queries the specific interface, see IObject::QueryInterface() for details.
+
Texture inteface.
Definition: Texture.h:276
+
+ + + + + diff --git a/doc/html/_texture_view_g_l_8h_source.html b/doc/html/_texture_view_g_l_8h_source.html new file mode 100644 index 00000000..babd3918 --- /dev/null +++ b/doc/html/_texture_view_g_l_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/interface/TextureViewGL.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureViewGL.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
28 
29 #include "TextureView.h"
30 
31 namespace Diligent
32 {
33 
34 // {15F93272-6135-414F-AB10-53FF9A5004AD}
35 static constexpr INTERFACE_ID IID_TextureViewGL =
36 { 0x15f93272, 0x6135, 0x414f, { 0xab, 0x10, 0x53, 0xff, 0x9a, 0x50, 0x4, 0xad } };
37 
40 {
41 public:
42  //const GLObjectWrappers::GLTextureObj& GetHandle();
43  //GLenum GetBindTarget();
44 };
45 
46 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Texture view interface.
Definition: TextureView.h:163
+
Interface to the texture view object implemented in OpenGL.
Definition: TextureViewGL.h:39
+
+ + + + + diff --git a/doc/html/_texture_view_g_l_impl_8h_source.html b/doc/html/_texture_view_g_l_impl_8h_source.html new file mode 100644 index 00000000..149db2ad --- /dev/null +++ b/doc/html/_texture_view_g_l_impl_8h_source.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/TextureViewGLImpl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TextureViewGLImpl.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BaseInterfacesGL.h"
27 #include "TextureViewGL.h"
28 #include "TextureViewBase.h"
29 #include "RenderDevice.h"
30 #include "GLObjectWrapper.h"
31 
32 namespace Diligent
33 {
34 
35 class FixedBlockMemoryAllocator;
37 class TextureViewGLImpl : public TextureViewBase<ITextureViewGL>
38 {
39 public:
41 
42  TextureViewGLImpl(IReferenceCounters *pRefCounters,
43  class IRenderDevice *pDevice,
44  const struct TextureViewDesc& ViewDesc,
45  class TextureBaseGL *pTexture,
46  bool bCreateGLViewTex,
47  bool bIsDefaultView );
49 
50  virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override;
51 
52  const GLObjectWrappers::GLTextureObj& GetHandle();
53  GLenum GetBindTarget();
54  void SetBindTarget(GLenum ViewTexBindTarget) { m_ViewTexBindTarget = ViewTexBindTarget; }
55 
56  void GenerateMips( IDeviceContext *pContext )override;
57 
58 protected:
59  GLObjectWrappers::GLTextureObj m_ViewTexGLHandle;
60  GLenum m_ViewTexBindTarget;
61 };
62 
63 }
Base implementation of the Diligent::ITextureGL interface.
Definition: TextureBaseGL.h:41
+
Render device interface.
Definition: RenderDevice.h:55
+
void GenerateMips(IDeviceContext *pContext) override
Generates a mipmap chain.
Definition: TextureViewGLImpl.cpp:75
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
Implementation of the Diligent::ITextureViewGL interface.
Definition: TextureViewGLImpl.h:37
+
Device context interface.
Definition: DeviceContext.h:443
+
Template class implementing base functionality for a texture view interface.
Definition: TextureViewBase.h:42
+
Texture view description.
Definition: TextureView.h:55
+
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
Queries the specific interface, see IObject::QueryInterface() for details.
+
+ + + + + diff --git a/doc/html/_timer_8h_source.html b/doc/html/_timer_8h_source.html new file mode 100644 index 00000000..85be5a10 --- /dev/null +++ b/doc/html/_timer_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/Timer.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Timer.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <chrono>
27 
28 namespace Diligent
29 {
30  class Timer
31  {
32  public:
33  Timer();
34  void Restart();
35  double GetElapsedTime()const;
36  float GetElapsedTimef()const;
37 
38  private:
39  std::chrono::high_resolution_clock::time_point m_StartTime;
40  };
41 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_u_w_p_debug_8h_source.html b/doc/html/_u_w_p_debug_8h_source.html new file mode 100644 index 00000000..a553a063 --- /dev/null +++ b/doc/html/_u_w_p_debug_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/UWP/include/UWPDebug.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
UWPDebug.h
+
+
+
1 /* Copyright 2015-2016 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BasicPlatformDebug.h"
27 
28 struct WindowsStoreDebug : public BasicPlatformDebug
29 {
30  static void AssertionFailed( const Diligent::Char *Message, const char *Function, const char *File, int Line );
31  static void OutputDebugMessage( DebugMessageSeverity Severity, const Diligent::Char *Message );
32 };
+ + + + + diff --git a/doc/html/_u_w_p_definitions_8h_source.html b/doc/html/_u_w_p_definitions_8h_source.html new file mode 100644 index 00000000..799518ce --- /dev/null +++ b/doc/html/_u_w_p_definitions_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/UWP/include/UWPDefinitions.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
UWPDefinitions.h
+
+
+
1 /* Copyright 2015-2016 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
+ + + + + diff --git a/doc/html/_u_w_p_file_system_8h_source.html b/doc/html/_u_w_p_file_system_8h_source.html new file mode 100644 index 00000000..decc6552 --- /dev/null +++ b/doc/html/_u_w_p_file_system_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/UWP/include/UWPFileSystem.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
UWPFileSystem.h
+
+
+
1 /* Copyright 2015-2016 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BasicFileSystem.h"
27 #include "DataBlob.h"
28 #include <memory>
29 
30 // Do not include windows headers here as they will mess up CreateDirectory()
31 // and DeleteFile() functions!
32 //#define NOMINMAX
33 //#include <wrl.h>
34 
35 class WindowsStoreFile : public BasicFile
36 {
37 public:
38  WindowsStoreFile( const FileOpenAttribs &OpenAttribs );
39  ~WindowsStoreFile();
40 
41  void Read( Diligent::IDataBlob *pData );
42 
43  bool Read( void *Data, size_t BufferSize );
44 
45  void Write( Diligent::IDataBlob *pData );
46  bool Write( const void *Data, size_t BufferSize );
47 
48  size_t GetSize();
49 
50  size_t GetPos();
51 
52  void SetPos(size_t Offset, FilePosOrigin Origin);
53 
54 private:
55  // We have to do such tricks, because we cannot #include <wrl.h>
56  // to avoid name clashes.
57  std::unique_ptr<class FileHandleWrapper> m_FileHandle;
58 };
59 
60 struct WindowsStoreFileSystem : public BasicFileSystem
61 {
62 public:
63  static WindowsStoreFile* OpenFile( const FileOpenAttribs &OpenAttribs );
64  static inline Diligent::Char GetSlashSymbol(){ return '\\'; }
65 
66  static bool FileExists( const Diligent::Char *strFilePath );
67  static bool PathExists( const Diligent::Char *strPath );
68 
69  static bool CreateDirectory( const Diligent::Char *strPath );
70  static void ClearDirectory( const Diligent::Char *strPath );
71  static void DeleteFile( const Diligent::Char *strPath );
72  static std::vector<std::unique_ptr<FindFileData>> Search(const Diligent::Char *SearchPattern);
73 };
Base interface for a file stream.
Definition: DataBlob.h:39
+
+ + + + + diff --git a/doc/html/_unique_identifier_8h_source.html b/doc/html/_unique_identifier_8h_source.html new file mode 100644 index 00000000..14af4284 --- /dev/null +++ b/doc/html/_unique_identifier_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/UniqueIdentifier.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
UniqueIdentifier.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "Atomics.h"
27 
28 namespace Diligent
29 {
30  typedef Atomics::Long UniqueIdentifier;
31 
32  // Template switch is used to have distinct counters
33  // for unrelated groups of objects
34  template<typename ObjectsClass>
35  class UniqueIdHelper
36  {
37  public:
38  UniqueIdHelper() :
39  m_ID(0),
40  m_bIsInitialized( false )
41  {}
42 
43  UniqueIdHelper( UniqueIdHelper&& RHS) :
44  m_ID( RHS.m_ID ),
45  m_bIsInitialized( RHS.m_bIsInitialized )
46  {
47  RHS.m_ID = 0;
48  RHS.m_bIsInitialized = false;
49  }
50 
51  const UniqueIdHelper& operator = (UniqueIdHelper&& RHS)
52  {
53  m_ID = RHS.m_ID;
54  m_bIsInitialized = RHS.m_bIsInitialized;
55  RHS.m_ID = 0;
56  RHS.m_bIsInitialized = false;
57 
58  return *this;
59  }
60 
61  UniqueIdentifier GetID()const
62  {
63  if( !m_bIsInitialized )
64  {
65  static Atomics::AtomicLong sm_GlobalCounter;
66  m_ID = Atomics::AtomicIncrement(sm_GlobalCounter);
67  m_bIsInitialized = true;
68  }
69  return m_ID;
70  }
71 
72  private:
73  UniqueIdHelper( const UniqueIdHelper& );
74  const UniqueIdHelper& operator = ( const UniqueIdHelper& );
75 
76  mutable UniqueIdentifier m_ID;
77  mutable bool m_bIsInitialized;
78  };
79 }
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_v_a_o_cache_8h_source.html b/doc/html/_v_a_o_cache_8h_source.html new file mode 100644 index 00000000..a8831990 --- /dev/null +++ b/doc/html/_v_a_o_cache_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include/VAOCache.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
VAOCache.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <cstring>
27 #include "GraphicsTypes.h"
28 #include "Buffer.h"
29 #include "InputLayout.h"
30 #include "LockHelper.h"
31 #include "HashUtils.h"
32 #include "DeviceContextBase.h"
33 #include "BaseInterfacesGL.h"
34 
35 namespace Diligent
36 {
37 
38 class VAOCache
39 {
40 public:
41  VAOCache();
42  ~VAOCache();
43 
44  VAOCache(const VAOCache&) = delete;
45  VAOCache( VAOCache&&) = delete;
46  VAOCache& operator = (const VAOCache&) = delete;
47  VAOCache& operator = ( VAOCache&&) = delete;
48 
49 
50 
51  const GLObjectWrappers::GLVertexArrayObj& GetVAO( IPipelineState *pPSO,
52  IBuffer *pIndexBuffer,
53  VertexStreamInfo VertexStreams[],
54  Uint32 NumVertexStreams,
55  class GLContextState &GLContextState);
56  const GLObjectWrappers::GLVertexArrayObj& GetEmptyVAO();
57 
58  void OnDestroyBuffer(IBuffer *pBuffer);
59  void OnDestroyPSO(IPipelineState *pPSO);
60 
61 private:
62  // This structure is used as the key to find VAO
63  struct VAOCacheKey
64  {
65  VAOCacheKey(const IPipelineState* pso, const IBuffer* indBuffer) :
66  pPSO(pso),
67  pIndexBuffer(indBuffer),
68  NumUsedSlots(0)
69  {}
70 
71  // Note that the the pointers are used for ordering only
72  // They are not used to access the objects
73 
74  // VAO encapsulates both input layout and all bound buffers
75  // PSO uniqly defines the layout (attrib pointers, divisors, etc.),
76  // so we do not need to add individual layout elements to the key
77  // The keey needs to contain all bound buffers
78  const IPipelineState* const pPSO;
79  const IBuffer* const pIndexBuffer;
80  Uint32 NumUsedSlots;
81  struct StreamAttribs
82  {
83  const IBuffer* pBuffer;
84  Uint32 Stride;
85  Uint32 Offset;
86  }Streams[MaxBufferSlots];
87 
88  mutable size_t Hash = 0;
89 
90  bool operator == (const VAOCacheKey &Key)const
91  {
92  return pPSO == Key.pPSO &&
93  pIndexBuffer == Key.pIndexBuffer &&
94  NumUsedSlots == Key.NumUsedSlots &&
95  std::memcmp(Streams, Key.Streams, sizeof(StreamAttribs) * NumUsedSlots) == 0;
96  }
97  };
98 
99  struct VAOCacheKeyHashFunc
100  {
101  std::size_t operator() ( const VAOCacheKey& Key )const
102  {
103  if (Key.Hash == 0)
104  {
105  std::size_t Seed = 0;
106  HashCombine(Seed, Key.pPSO, Key.NumUsedSlots);
107  if (Key.pIndexBuffer)
108  HashCombine(Seed, Key.pIndexBuffer);
109  for (Uint32 slot = 0; slot < Key.NumUsedSlots; ++slot)
110  {
111  auto &CurrStream = Key.Streams[slot];
112  if (CurrStream.pBuffer)
113  {
114  HashCombine(Seed, CurrStream.pBuffer);
115  HashCombine(Seed, CurrStream.Offset);
116  HashCombine(Seed, CurrStream.Stride);
117  }
118  }
119  Key.Hash = Seed;
120  }
121  return Key.Hash;
122  }
123  };
124 
125 
126  friend class RenderDeviceGLImpl;
127  ThreadingTools::LockFlag m_CacheLockFlag;
128  std::unordered_map<VAOCacheKey, GLObjectWrappers::GLVertexArrayObj, VAOCacheKeyHashFunc> m_Cache;
129  std::unordered_multimap<const IPipelineState*, VAOCacheKey> m_PSOToKey;
130  std::unordered_multimap<const IBuffer*, VAOCacheKey> m_BuffToKey;
131 
132  // Any draw command fails if no VAO is bound. We will use this empty
133  // VAO for draw commands with null input layout, such as these that
134  // only use VertexID as input.
135  GLObjectWrappers::GLVertexArrayObj m_EmptyVAO;
136 };
137 
138 }
static constexpr Uint32 MaxBufferSlots
Maximum number of input buffer slots. D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT == 32...
Definition: Constants.h:33
+
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
+
+ + + + + diff --git a/doc/html/_validated_cast_8h_source.html b/doc/html/_validated_cast_8h_source.html new file mode 100644 index 00000000..1dbe849e --- /dev/null +++ b/doc/html/_validated_cast_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface/ValidatedCast.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ValidatedCast.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "DebugUtilities.h"
27 
28 template<typename DstType, typename SrcType>
29 DstType* ValidatedCast( SrcType *Ptr )
30 {
31 #ifdef _DEBUG
32  if(Ptr != nullptr)
33  {
34  CHECK_DYNAMIC_TYPE( DstType, Ptr );
35  }
36 #endif
37  return Ptr != nullptr ? static_cast<DstType*>( Ptr ) : nullptr;
38 }
+ + + + + diff --git a/doc/html/_variable_size_allocations_manager_8h_source.html b/doc/html/_variable_size_allocations_manager_8h_source.html new file mode 100644 index 00000000..7e519369 --- /dev/null +++ b/doc/html/_variable_size_allocations_manager_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsAccessories/interface/VariableSizeAllocationsManager.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
VariableSizeAllocationsManager.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 // Helper class that handles free memory block management to accommodate variable-size allocation requests
25 // See http://diligentgraphics.com/diligent-engine/architecture/d3d12/variable-size-memory-allocations-manager/
26 
27 #pragma once
28 
29 #include <map>
30 #include "MemoryAllocator.h"
31 #include "STDAllocator.h"
32 #include "DebugUtilities.h"
33 
34 namespace Diligent
35 {
36  // The class handles free memory block management to accommodate variable-size allocation requests.
37  // It keeps track of free blocks only and does not record allocation sizes. The class uses two ordered maps
38  // to facilitate operations. The first map keeps blocks sorted by their offsets. The second multimap keeps blocks
39  // sorted by their sizes. The elements of the two maps reference each other, which enables efficient block
40  // insertion, removal and merging.
41  //
42  // 8 32 64 104
43  // |<---16--->| |<-----24------>| |<---16--->| |<-----32----->|
44  //
45  //
46  // m_FreeBlocksBySize m_FreeBlocksByOffset
47  // size->offset offset->size
48  //
49  // 16 ------------------> 8 ----------> {size = 16, &m_FreeBlocksBySize[0]}
50  //
51  // 16 ------. .-------> 32 ----------> {size = 24, &m_FreeBlocksBySize[2]}
52  // '.'
53  // 24 -------' '--------> 64 ----------> {size = 16, &m_FreeBlocksBySize[1]}
54  //
55  // 32 ------------------> 104 ----------> {size = 32, &m_FreeBlocksBySize[3]}
56  //
57  class VariableSizeAllocationsManager
58  {
59  public:
60  typedef size_t OffsetType;
61  static constexpr OffsetType InvalidOffset = static_cast<OffsetType>(-1);
62 
63  private:
64  struct FreeBlockInfo;
65 
66  // Type of the map that keeps memory blocks sorted by their offsets
67  using TFreeBlocksByOffsetMap =
68  std::map<OffsetType,
69  FreeBlockInfo,
70  std::less<OffsetType>, // Standard ordering
71  STDAllocatorRawMem<std::pair<const OffsetType, FreeBlockInfo>> // Raw memory allocator
72  >;
73 
74  // Type of the map that keeps memory blocks sorted by their sizes
75  using TFreeBlocksBySizeMap =
76  std::multimap<OffsetType,
77  TFreeBlocksByOffsetMap::iterator,
78  std::less<OffsetType>, // Standard ordering
79  STDAllocatorRawMem<std::pair<const OffsetType, TFreeBlocksByOffsetMap::iterator>> // Raw memory allocator
80  >;
81 
82  struct FreeBlockInfo
83  {
84  // Block size (no reserved space for the size of the allocation)
85  OffsetType Size;
86 
87  // Iterator referencing this block in the multimap sorted by the block size
88  TFreeBlocksBySizeMap::iterator OrderBySizeIt;
89 
90  FreeBlockInfo(OffsetType _Size) : Size(_Size){}
91  };
92 
93  public:
94  VariableSizeAllocationsManager(OffsetType MaxSize, IMemoryAllocator &Allocator) :
95  m_MaxSize(MaxSize),
96  m_FreeSize(MaxSize),
97  m_FreeBlocksByOffset( STD_ALLOCATOR_RAW_MEM(TFreeBlocksByOffsetMap::value_type, Allocator, "Allocator for map<OffsetType, FreeBlockInfo>") ),
98  m_FreeBlocksBySize( STD_ALLOCATOR_RAW_MEM(TFreeBlocksBySizeMap::value_type, Allocator, "Allocator for multimap<OffsetType, TFreeBlocksByOffsetMap::iterator>") )
99  {
100  // Insert single maximum-size block
101  AddNewBlock(0, m_MaxSize);
102 
103 #ifdef _DEBUG
104  DbgVerifyList();
105 #endif
106  }
107 
108  ~VariableSizeAllocationsManager()
109  {
110 #ifdef _DEBUG
111  if( !m_FreeBlocksByOffset.empty() || !m_FreeBlocksBySize.empty() )
112  {
113  VERIFY(m_FreeBlocksByOffset.size() == 1, "Single free block is expected");
114  VERIFY(m_FreeBlocksByOffset.begin()->first == 0, "Head chunk offset is expected to be 0");
115  VERIFY(m_FreeBlocksByOffset.begin()->second.Size == m_MaxSize, "Head chunk size is expected to be ", m_MaxSize);
116  VERIFY_EXPR(m_FreeBlocksByOffset.begin()->second.OrderBySizeIt == m_FreeBlocksBySize.begin());
117  VERIFY(m_FreeBlocksBySize.size() == m_FreeBlocksByOffset.size(), "Sizes of the two maps must be equal");
118 
119  VERIFY(m_FreeBlocksBySize.size() == 1, "Single free block is expected");
120  VERIFY(m_FreeBlocksBySize.begin()->first == m_MaxSize, "Head chunk size is expected to be ", m_MaxSize);
121  VERIFY(m_FreeBlocksBySize.begin()->second == m_FreeBlocksByOffset.begin(), "Incorrect first block");
122  }
123 #endif
124  }
125 
126  VariableSizeAllocationsManager(VariableSizeAllocationsManager&& rhs) :
127  m_FreeBlocksByOffset(std::move(rhs.m_FreeBlocksByOffset)),
128  m_FreeBlocksBySize(std::move(rhs.m_FreeBlocksBySize)),
129  m_MaxSize(rhs.m_MaxSize),
130  m_FreeSize(rhs.m_FreeSize)
131  {
132  //rhs.m_MaxSize = 0; - const
133  rhs.m_FreeSize = 0;
134  }
135 
136  VariableSizeAllocationsManager& operator = (VariableSizeAllocationsManager&& rhs) = default;
137  VariableSizeAllocationsManager(const VariableSizeAllocationsManager&) = delete;
138  VariableSizeAllocationsManager& operator = (const VariableSizeAllocationsManager&) = delete;
139 
140  OffsetType Allocate(OffsetType Size)
141  {
142  VERIFY_EXPR(Size != 0);
143  if(m_FreeSize < Size)
144  return InvalidOffset;
145 
146  // Get the first block that is large enough to encompass Size bytes
147  // lower_bound() returns an iterator pointing to the first element that
148  // is not less (i.e. >= ) than key
149  auto SmallestBlockItIt = m_FreeBlocksBySize.lower_bound(Size);
150  if(SmallestBlockItIt == m_FreeBlocksBySize.end())
151  return InvalidOffset;
152 
153  auto SmallestBlockIt = SmallestBlockItIt->second;
154  VERIFY_EXPR(Size <= SmallestBlockIt->second.Size);
155  VERIFY_EXPR(SmallestBlockIt->second.Size == SmallestBlockItIt->first);
156 
157  // SmallestBlockIt.Offset
158  // | |
159  // |<------SmallestBlockIt.Size------>|
160  // |<------Size------>|<---NewSize--->|
161  // | |
162  // Offset NewOffset
163  //
164  auto Offset = SmallestBlockIt->first;
165  auto NewOffset = Offset + Size;
166  auto NewSize = SmallestBlockIt->second.Size - Size;
167  VERIFY_EXPR(SmallestBlockItIt == SmallestBlockIt->second.OrderBySizeIt);
168  m_FreeBlocksBySize.erase(SmallestBlockItIt);
169  m_FreeBlocksByOffset.erase(SmallestBlockIt);
170  if (NewSize > 0)
171  {
172  AddNewBlock(NewOffset, NewSize);
173  }
174 
175  m_FreeSize -= Size;
176 
177 #ifdef _DEBUG
178  DbgVerifyList();
179 #endif
180  return Offset;
181  }
182 
183  void Free(OffsetType Offset, OffsetType Size)
184  {
185  VERIFY_EXPR(Offset+Size <= m_MaxSize);
186 
187  // Find the first element whose offset is greater than the specified offset.
188  // upper_bound() returns an iterator pointing to the first element in the
189  // container whose key is considered to go after k.
190  auto NextBlockIt = m_FreeBlocksByOffset.upper_bound(Offset);
191 #ifdef _DEBUG
192  {
193  auto LowBnd = m_FreeBlocksByOffset.lower_bound(Offset); // First element whose offset is >=
194  // Since zero-size allocations are not allowed, lower bound must always be equal to the upper bound
195  VERIFY_EXPR(LowBnd == NextBlockIt);
196  }
197 #endif
198  // Block being deallocated must not overlap with the next block
199  VERIFY_EXPR(NextBlockIt == m_FreeBlocksByOffset.end() || Offset+Size <= NextBlockIt->first);
200  auto PrevBlockIt = NextBlockIt;
201  if(PrevBlockIt != m_FreeBlocksByOffset.begin())
202  {
203  --PrevBlockIt;
204  // Block being deallocated must not overlap with the previous block
205  VERIFY_EXPR(Offset >= PrevBlockIt->first + PrevBlockIt->second.Size);
206  }
207  else
208  PrevBlockIt = m_FreeBlocksByOffset.end();
209 
210  OffsetType NewSize, NewOffset;
211  if(PrevBlockIt != m_FreeBlocksByOffset.end() && Offset == PrevBlockIt->first + PrevBlockIt->second.Size)
212  {
213  // PrevBlock.Offset Offset
214  // | |
215  // |<-----PrevBlock.Size----->|<------Size-------->|
216  //
217  NewSize = PrevBlockIt->second.Size + Size;
218  NewOffset = PrevBlockIt->first;
219 
220  if (NextBlockIt != m_FreeBlocksByOffset.end() && Offset + Size == NextBlockIt->first)
221  {
222  // PrevBlock.Offset Offset NextBlock.Offset
223  // | | |
224  // |<-----PrevBlock.Size----->|<------Size-------->|<-----NextBlock.Size----->|
225  //
226  NewSize += NextBlockIt->second.Size;
227  m_FreeBlocksBySize.erase(PrevBlockIt->second.OrderBySizeIt);
228  m_FreeBlocksBySize.erase(NextBlockIt->second.OrderBySizeIt);
229  // Delete the range of two blocks
230  ++NextBlockIt;
231  m_FreeBlocksByOffset.erase(PrevBlockIt, NextBlockIt);
232  }
233  else
234  {
235  // PrevBlock.Offset Offset NextBlock.Offset
236  // | | |
237  // |<-----PrevBlock.Size----->|<------Size-------->| ~ ~ ~ |<-----NextBlock.Size----->|
238  //
239  m_FreeBlocksBySize.erase(PrevBlockIt->second.OrderBySizeIt);
240  m_FreeBlocksByOffset.erase(PrevBlockIt);
241  }
242  }
243  else if (NextBlockIt != m_FreeBlocksByOffset.end() && Offset + Size == NextBlockIt->first)
244  {
245  // PrevBlock.Offset Offset NextBlock.Offset
246  // | | |
247  // |<-----PrevBlock.Size----->| ~ ~ ~ |<------Size-------->|<-----NextBlock.Size----->|
248  //
249  NewSize = Size + NextBlockIt->second.Size;
250  NewOffset = Offset;
251  m_FreeBlocksBySize.erase(NextBlockIt->second.OrderBySizeIt);
252  m_FreeBlocksByOffset.erase(NextBlockIt);
253  }
254  else
255  {
256  // PrevBlock.Offset Offset NextBlock.Offset
257  // | | |
258  // |<-----PrevBlock.Size----->| ~ ~ ~ |<------Size-------->| ~ ~ ~ |<-----NextBlock.Size----->|
259  //
260  NewSize = Size;
261  NewOffset = Offset;
262  }
263 
264  AddNewBlock(NewOffset, NewSize);
265 
266  m_FreeSize += Size;
267 #ifdef _DEBUG
268  DbgVerifyList();
269 #endif
270  }
271 
272  OffsetType GetMaxSize()const{return m_MaxSize;}
273  bool IsFull()const{ return m_FreeSize==0; };
274  bool IsEmpty()const{ return m_FreeSize==m_MaxSize; };
275  OffsetType GetFreeSize()const{return m_FreeSize;}
276 
277 #ifdef _DEBUG
278  size_t DbgGetNumFreeBlocks()const{return m_FreeBlocksByOffset.size();}
279 #endif
280 
281  private:
282  void AddNewBlock(OffsetType Offset, OffsetType Size)
283  {
284  auto NewBlockIt = m_FreeBlocksByOffset.emplace(Offset, Size);
285  VERIFY_EXPR(NewBlockIt.second);
286  auto OrderIt = m_FreeBlocksBySize.emplace(Size, NewBlockIt.first);
287  NewBlockIt.first->second.OrderBySizeIt = OrderIt;
288  }
289 
290 
291 #ifdef _DEBUG
292  void DbgVerifyList()
293  {
294  OffsetType TotalFreeSize = 0;
295 
296  auto BlockIt = m_FreeBlocksByOffset.begin();
297  auto PrevBlockIt = m_FreeBlocksByOffset.end();
298  VERIFY_EXPR(m_FreeBlocksByOffset.size() == m_FreeBlocksBySize.size());
299  while (BlockIt != m_FreeBlocksByOffset.end())
300  {
301  VERIFY_EXPR(BlockIt->first >= 0 && BlockIt->first + BlockIt->second.Size <= m_MaxSize);
302  VERIFY_EXPR(BlockIt == BlockIt->second.OrderBySizeIt->second);
303  VERIFY_EXPR(BlockIt->second.Size == BlockIt->second.OrderBySizeIt->first);
304  // PrevBlock.Offset BlockIt.first
305  // | |
306  // ~ ~ |<-----PrevBlock.Size----->| ~ ~ ~ |<------Size-------->| ~ ~ ~
307  //
308  VERIFY(PrevBlockIt == m_FreeBlocksByOffset.end() || BlockIt->first > PrevBlockIt->first + PrevBlockIt->second.Size, "Unmerged adjacent or overlapping blocks detected" );
309  TotalFreeSize += BlockIt->second.Size;
310 
311  PrevBlockIt = BlockIt;
312  ++BlockIt;
313  }
314 
315  auto OrderIt = m_FreeBlocksBySize.begin();
316  while (OrderIt != m_FreeBlocksBySize.end())
317  {
318  VERIFY_EXPR(OrderIt->first == OrderIt->second->second.Size);
319  ++OrderIt;
320  }
321 
322  VERIFY_EXPR(TotalFreeSize == m_FreeSize);
323  }
324 #endif
325 
326  TFreeBlocksByOffsetMap m_FreeBlocksByOffset;
327  TFreeBlocksBySizeMap m_FreeBlocksBySize;
328 
329  const OffsetType m_MaxSize = 0;
330  OffsetType m_FreeSize = 0;
331  };
332 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Definition: AdvancedMath.h:316
+
+ + + + + diff --git a/doc/html/_variable_size_g_p_u_allocations_manager_8h_source.html b/doc/html/_variable_size_g_p_u_allocations_manager_8h_source.html new file mode 100644 index 00000000..26ae004b --- /dev/null +++ b/doc/html/_variable_size_g_p_u_allocations_manager_8h_source.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsAccessories/interface/VariableSizeGPUAllocationsManager.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
VariableSizeGPUAllocationsManager.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 
25 // An GPU-tailored extension of the basic variable-size allocations manager
26 // See http://diligentgraphics.com/diligent-engine/architecture/d3d12/variable-size-memory-allocations-manager/
27 
28 #pragma once
29 
30 #include <deque>
31 #include "VariableSizeAllocationsManager.h"
32 #include "STDAllocator.h"
33 
34 namespace Diligent
35 {
36  // Class extends basic variable-size memory block allocator by deferring deallocation
37  // of freed blocks untill the corresponding frame is completed
38  class VariableSizeGPUAllocationsManager : public VariableSizeAllocationsManager
39  {
40  private:
41  struct StaleAllocationAttribs
42  {
43  OffsetType Offset;
44  OffsetType Size;
45  Uint64 FenceValue;
46  StaleAllocationAttribs(OffsetType _Offset, OffsetType _Size, Uint64 _FenceValue) :
47  Offset(_Offset), Size(_Size), FenceValue(_FenceValue)
48  {}
49  };
50 
51  public:
52  VariableSizeGPUAllocationsManager(OffsetType MaxSize, IMemoryAllocator &Allocator) :
53  VariableSizeAllocationsManager(MaxSize, Allocator),
54  m_StaleAllocations(0, StaleAllocationAttribs(0,0,0), STD_ALLOCATOR_RAW_MEM(StaleAllocationAttribs, Allocator, "Allocator for deque<StaleAllocationAttribs>" ))
55  {}
56 
57  ~VariableSizeGPUAllocationsManager()
58  {
59  VERIFY(m_StaleAllocations.empty(), "Not all stale allocations released");
60  VERIFY(m_StaleAllocationsSize == 0, "Not all stale allocations released");
61  }
62 
63  // = default causes compiler error when instantiating std::vector::emplace_back() in Visual Studio 2015 (Version 14.0.23107.0 D14REL)
64  VariableSizeGPUAllocationsManager(VariableSizeGPUAllocationsManager&& rhs) :
65  VariableSizeAllocationsManager(std::move(rhs)),
66  m_StaleAllocations(std::move(rhs.m_StaleAllocations)),
67  m_StaleAllocationsSize(rhs.m_StaleAllocationsSize)
68  {
69  rhs.m_StaleAllocationsSize = 0;
70  }
71 
72  VariableSizeGPUAllocationsManager& operator = (VariableSizeGPUAllocationsManager&& rhs) = delete;
73  VariableSizeGPUAllocationsManager(const VariableSizeGPUAllocationsManager&) = delete;
74  VariableSizeGPUAllocationsManager& operator = (const VariableSizeGPUAllocationsManager&) = delete;
75 
76  void Free(OffsetType Offset, OffsetType Size, Uint64 FenceValue)
77  {
78  // Do not release the block immediately, but add
79  // it to the queue instead
80  m_StaleAllocations.emplace_back(Offset, Size, FenceValue);
81  m_StaleAllocationsSize += Size;
82  }
83 
84  // Releases stale allocation from completed command lists
85  // The method takes the last known completed fence value N
86  // and releases all allocations whose associated fence value
87  // is at most N (n <= N)
88  void ReleaseStaleAllocations(Uint64 LastCompletedFenceValue)
89  {
90  // Free all allocations from the beginning of the queue that belong to completed command lists
91  while(!m_StaleAllocations.empty() && m_StaleAllocations.front().FenceValue <= LastCompletedFenceValue)
92  {
93  auto &OldestAllocation = m_StaleAllocations.front();
94  VariableSizeAllocationsManager::Free(OldestAllocation.Offset, OldestAllocation.Size);
95  m_StaleAllocationsSize -= OldestAllocation.Size;
96  m_StaleAllocations.pop_front();
97  }
98  }
99 
100  size_t GetStaleAllocationsSize()const { return m_StaleAllocationsSize; }
101 
102  private:
103  std::deque< StaleAllocationAttribs, STDAllocatorRawMem<StaleAllocationAttribs> > m_StaleAllocations;
104  size_t m_StaleAllocationsSize = 0;
105  };
106 }
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
+
Definition: AdvancedMath.h:316
+
uint64_t Uint64
64-bit unsigned integer
Definition: BasicTypes.h:38
+
+ + + + + diff --git a/doc/html/_win32_atomics_8h_source.html b/doc/html/_win32_atomics_8h_source.html new file mode 100644 index 00000000..07e34033 --- /dev/null +++ b/doc/html/_win32_atomics_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Win32/include/Win32Atomics.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Win32Atomics.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 struct WindowsAtomics
27 {
28  // Use windows-specific atomics. Standard atomic eventually call
29  // the same functions, but introduce significant overhead
30 
31  typedef long Long;
32  typedef volatile long AtomicLong;
33  typedef long long Int64;
34  typedef volatile long long AtomicInt64;
35 
36  // The function returns the resulting INCREMENTED value.
37  static Long AtomicIncrement(AtomicLong &Val);
38  static Int64 AtomicIncrement(AtomicInt64 &Val);
39 
40  // The function returns the resulting DECREMENTED value.
41  static Long AtomicDecrement(AtomicLong &Val);
42  static Int64 AtomicDecrement(AtomicInt64 &Val);
43 
44  // The function compares the Destination value with the Comparand value. If the Destination value is equal
45  // to the Comparand value, the Exchange value is stored in the address specified by Destination.
46  // Otherwise, no operation is performed.
47  // The function returns the initial value of the Destination parameter
48  static Long AtomicCompareExchange( AtomicLong &Destination, Long Exchange, Long Comparand);
49 
50  static Long AtomicAdd( AtomicLong &Destination, Long Val);
51  static Int64 AtomicAdd( AtomicInt64 &Destination, Int64 Val);
52 };
int64_t Int64
64-bit signed integer
Definition: BasicTypes.h:33
+
+ + + + + diff --git a/doc/html/_win32_debug_8h_source.html b/doc/html/_win32_debug_8h_source.html new file mode 100644 index 00000000..de0aba93 --- /dev/null +++ b/doc/html/_win32_debug_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Win32/include/Win32Debug.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Win32Debug.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BasicPlatformDebug.h"
27 
28 struct WindowsDebug : public BasicPlatformDebug
29 {
30  static void AssertionFailed( const Diligent::Char *Message, const char *Function, const char *File, int Line );
31  static void OutputDebugMessage( DebugMessageSeverity Severity, const Diligent::Char *Message );
32 };
+ + + + + diff --git a/doc/html/_win32_file_system_8h_source.html b/doc/html/_win32_file_system_8h_source.html new file mode 100644 index 00000000..8c9ead1a --- /dev/null +++ b/doc/html/_win32_file_system_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Win32/include/Win32FileSystem.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Win32FileSystem.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include <memory>
27 #include "BasicFileSystem.h"
28 #include "StandardFile.h"
29 
30 
31 class WindowsFile : public StandardFile
32 {
33 public:
34  WindowsFile( const FileOpenAttribs &OpenAttribs );
35 };
36 
37 
38 struct WindowsFileSystem : public BasicFileSystem
39 {
40 public:
41  static WindowsFile* OpenFile( const FileOpenAttribs &OpenAttribs );
42  static inline Diligent::Char GetSlashSymbol(){ return '\\'; }
43 
44  static bool FileExists( const Diligent::Char *strFilePath );
45  static bool PathExists( const Diligent::Char *strPath );
46 
47  static bool CreateDirectory( const Diligent::Char *strPath );
48  static void ClearDirectory( const Diligent::Char *strPath );
49  static void DeleteFile( const Diligent::Char *strPath );
50  static std::vector<std::unique_ptr<FindFileData>> Search(const Diligent::Char *SearchPattern);
51 };
+ + + + + diff --git a/doc/html/_win32_platform_definitions_8h_source.html b/doc/html/_win32_platform_definitions_8h_source.html new file mode 100644 index 00000000..1aa76228 --- /dev/null +++ b/doc/html/_win32_platform_definitions_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Win32/include/Win32PlatformDefinitions.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Win32PlatformDefinitions.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
+ + + + + diff --git a/doc/html/_win32_platform_misc_8h_source.html b/doc/html/_win32_platform_misc_8h_source.html new file mode 100644 index 00000000..fa399602 --- /dev/null +++ b/doc/html/_win32_platform_misc_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Win32/include/Win32PlatformMisc.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Win32PlatformMisc.h
+
+
+
1 /* Copyright 2015-2017 Egor Yusov
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
12  *
13  * In no event and under no legal theory, whether in tort (including negligence),
14  * contract, or otherwise, unless required by applicable law (such as deliberate
15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
16  * liable for any damages, including any direct, indirect, special, incidental,
17  * or consequential damages of any character arising as a result of this License or
18  * out of the use or inability to use the software (including but not limited to damages
19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
20  * all other commercial damages or losses), even if such Contributor has been advised
21  * of the possibility of such damages.
22  */
23 
24 #pragma once
25 
26 #include "BasicPlatformMisc.h"
27 #include "DebugUtilities.h"
28 
29 #include <intrin.h>
30 
31 struct WindowsMisc : public BasicPlatformMisc
32 {
33  static Diligent::Uint32 GetMSB(Diligent::Uint32 Val)
34  {
35  if( Val == 0 )return 32;
36 
37  unsigned long MSB = 32;
38  _BitScanReverse(&MSB, Val);
39  VERIFY_EXPR(MSB == BasicPlatformMisc::GetMSB(Val));
40 
41  return MSB;
42  }
43 
44  static Diligent::Uint32 GetLSB(Diligent::Uint32 Val)
45  {
46  if( Val == 0 )return 32;
47 
48  unsigned long LSB = 32;
49  _BitScanForward(&LSB, Val);
50  VERIFY_EXPR(LSB == BasicPlatformMisc::GetLSB(Val));
51 
52  return LSB;
53  }
54 };
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:39
+
+ + + + + diff --git a/doc/html/android__native__app__glue_8h_source.html b/doc/html/android__native__app__glue_8h_source.html new file mode 100644 index 00000000..7a8f57d0 --- /dev/null +++ b/doc/html/android__native__app__glue_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/native_app_glue/android_native_app_glue.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
android_native_app_glue.h
+
+
+
1 /*
2  * Copyright (C) 2010 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17 
18 #ifndef _ANDROID_NATIVE_APP_GLUE_H
19 #define _ANDROID_NATIVE_APP_GLUE_H
20 
21 #include <poll.h>
22 #include <pthread.h>
23 #include <sched.h>
24 
25 #include <android/configuration.h>
26 #include <android/looper.h>
27 #include <android/native_activity.h>
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
84 struct android_app;
85 
91  // The identifier of this source. May be LOOPER_ID_MAIN or
92  // LOOPER_ID_INPUT.
93  int32_t id;
94 
95  // The android_app this ident is associated with.
96  struct android_app* app;
97 
98  // Function to call to perform the standard processing of data from
99  // this source.
100  void (*process)(struct android_app* app, struct android_poll_source* source);
101 };
102 
111 struct android_app {
112  // The application can place a pointer to its own state object
113  // here if it likes.
114  void* userData;
115 
116  // Fill this in with the function to process main app commands (APP_CMD_*)
117  void (*onAppCmd)(struct android_app* app, int32_t cmd);
118 
119  // Fill this in with the function to process input events. At this point
120  // the event has already been pre-dispatched, and it will be finished upon
121  // return. Return 1 if you have handled the event, 0 for any default
122  // dispatching.
123  int32_t (*onInputEvent)(struct android_app* app, AInputEvent* event);
124 
125  // The ANativeActivity object instance that this app is running in.
126  ANativeActivity* activity;
127 
128  // The current configuration the app is running in.
129  AConfiguration* config;
130 
131  // This is the last instance's saved state, as provided at creation time.
132  // It is NULL if there was no state. You can use this as you need; the
133  // memory will remain around until you call android_app_exec_cmd() for
134  // APP_CMD_RESUME, at which point it will be freed and savedState set to NULL.
135  // These variables should only be changed when processing a APP_CMD_SAVE_STATE,
136  // at which point they will be initialized to NULL and you can malloc your
137  // state and place the information here. In that case the memory will be
138  // freed for you later.
139  void* savedState;
140  size_t savedStateSize;
141 
142  // The ALooper associated with the app's thread.
143  ALooper* looper;
144 
145  // When non-NULL, this is the input queue from which the app will
146  // receive user input events.
147  AInputQueue* inputQueue;
148 
149  // When non-NULL, this is the window surface that the app can draw in.
150  ANativeWindow* window;
151 
152  // Current content rectangle of the window; this is the area where the
153  // window's content should be placed to be seen by the user.
154  ARect contentRect;
155 
156  // Current state of the app's activity. May be either APP_CMD_START,
157  // APP_CMD_RESUME, APP_CMD_PAUSE, or APP_CMD_STOP; see below.
158  int activityState;
159 
160  // This is non-zero when the application's NativeActivity is being
161  // destroyed and waiting for the app thread to complete.
162  int destroyRequested;
163 
164  // -------------------------------------------------
165  // Below are "private" implementation of the glue code.
166 
167  pthread_mutex_t mutex;
168  pthread_cond_t cond;
169 
170  int msgread;
171  int msgwrite;
172 
173  pthread_t thread;
174 
175  struct android_poll_source cmdPollSource;
176  struct android_poll_source inputPollSource;
177 
178  int running;
179  int stateSaved;
180  int destroyed;
181  int redrawNeeded;
182  AInputQueue* pendingInputQueue;
183  ANativeWindow* pendingWindow;
184  ARect pendingContentRect;
185 };
186 
187 enum {
195  LOOPER_ID_MAIN = 1,
196 
204  LOOPER_ID_INPUT = 2,
205 
209  LOOPER_ID_USER = 3,
210 };
211 
212 enum {
218  APP_CMD_INPUT_CHANGED,
219 
225  APP_CMD_INIT_WINDOW,
226 
233  APP_CMD_TERM_WINDOW,
234 
239  APP_CMD_WINDOW_RESIZED,
240 
246  APP_CMD_WINDOW_REDRAW_NEEDED,
247 
253  APP_CMD_CONTENT_RECT_CHANGED,
254 
259  APP_CMD_GAINED_FOCUS,
260 
265  APP_CMD_LOST_FOCUS,
266 
270  APP_CMD_CONFIG_CHANGED,
271 
276  APP_CMD_LOW_MEMORY,
277 
281  APP_CMD_START,
282 
286  APP_CMD_RESUME,
287 
295  APP_CMD_SAVE_STATE,
296 
300  APP_CMD_PAUSE,
301 
305  APP_CMD_STOP,
306 
311  APP_CMD_DESTROY,
312 };
313 
318 int8_t android_app_read_cmd(struct android_app* android_app);
319 
325 void android_app_pre_exec_cmd(struct android_app* android_app, int8_t cmd);
326 
332 void android_app_post_exec_cmd(struct android_app* android_app, int8_t cmd);
333 
339 __attribute__((
340  deprecated("Calls to app_dummy are no longer necessary. See "
341  "https://github.com/android-ndk/ndk/issues/381."))) void
342 app_dummy();
343 
348 extern void android_main(struct android_app* app);
349 
350 #ifdef __cplusplus
351 }
352 #endif
353 
354 #endif /* _ANDROID_NATIVE_APP_GLUE_H */
Definition: android_native_app_glue.h:111
+
Definition: android_native_app_glue.h:90
+
+ + + + + diff --git a/doc/html/annotated.html b/doc/html/annotated.html new file mode 100644 index 00000000..99a20797 --- /dev/null +++ b/doc/html/annotated.html @@ -0,0 +1,263 @@ + + + + + + + +Diligent Engine API Reference: Class List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 123]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 NDiligentNamespace for the OpenGL implementation of the graphics engine
 Nstd
+
+
+ + + + + diff --git a/doc/html/arrowdown.png b/doc/html/arrowdown.png new file mode 100644 index 00000000..0b63f6d3 Binary files /dev/null and b/doc/html/arrowdown.png differ diff --git a/doc/html/arrowright.png b/doc/html/arrowright.png new file mode 100644 index 00000000..c6ee22f9 Binary files /dev/null and b/doc/html/arrowright.png differ diff --git a/doc/html/bc_s.png b/doc/html/bc_s.png new file mode 100644 index 00000000..224b29aa Binary files /dev/null and b/doc/html/bc_s.png differ diff --git a/doc/html/bdwn.png b/doc/html/bdwn.png new file mode 100644 index 00000000..940a0b95 Binary files /dev/null and b/doc/html/bdwn.png differ diff --git a/doc/html/class_diligent_1_1_basic_file_stream-members.html b/doc/html/class_diligent_1_1_basic_file_stream-members.html new file mode 100644 index 00000000..9fa79b03 --- /dev/null +++ b/doc/html/class_diligent_1_1_basic_file_stream-members.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::BasicFileStream Member List
+
+
+ +

This is the complete list of members for Diligent::BasicFileStream, including all inherited members.

+ + + + +
Read(IDataBlob *pData) overrideDiligent::BasicFileStreamvirtual
Read(void *Data, size_t BufferSize) overrideDiligent::BasicFileStreamvirtual
Write(const void *Data, size_t Size) overrideDiligent::BasicFileStreamvirtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_basic_file_stream.html b/doc/html/class_diligent_1_1_basic_file_stream.html new file mode 100644 index 00000000..76dbe934 --- /dev/null +++ b/doc/html/class_diligent_1_1_basic_file_stream.html @@ -0,0 +1,117 @@ + + + + + + + +Diligent Engine API Reference: Diligent::BasicFileStream Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::BasicFileStream Class Reference
+
+
+ +

Basic file stream implementation. + More...

+
+Inheritance diagram for Diligent::BasicFileStream:
+
+
+ + +Diligent::ObjectBase< IFileStream > +Diligent::RefCountedObject< IFileStream > + +
+ + + + + + + + + + + +

+Public Member Functions

+virtual void Read (IDataBlob *pData) override
 Reads data from the stream.
 
+virtual bool Read (void *Data, size_t BufferSize) override
 Reads data from the stream.
 
+virtual bool Write (const void *Data, size_t Size) override
 Writes data to the stream.
 
+

Detailed Description

+

Basic file stream implementation.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_basic_file_stream.png b/doc/html/class_diligent_1_1_basic_file_stream.png new file mode 100644 index 00000000..375f68b2 Binary files /dev/null and b/doc/html/class_diligent_1_1_basic_file_stream.png differ diff --git a/doc/html/class_diligent_1_1_buffer_base-members.html b/doc/html/class_diligent_1_1_buffer_base-members.html new file mode 100644 index 00000000..bb58a3ba --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_base-members.html @@ -0,0 +1,102 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator > Member List
+
+
+ +

This is the complete list of members for Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >, including all inherited members.

+ + + + + + + + + + + + + + + + + +
BufferBase(IReferenceCounters *pRefCounters, TBuffViewObjAllocator &BuffViewObjAllocator, IRenderDevice *pDevice, const BufferDesc &BuffDesc, bool bIsDeviceInternal)Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >inline
CopyData(IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size) override=0Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >pure virtual
CorrectBufferViewDesc(struct BufferViewDesc &ViewDesc)Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >protected
CreateDefaultViews()Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >
CreateView(const struct BufferViewDesc &ViewDesc, IBufferView **ppView) overrideDiligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >virtual
CreateViewInternal(const struct BufferViewDesc &ViewDesc, IBufferView **ppView, bool bIsDefaultView)=0Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >protectedpure virtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< BaseInterface, BufferDesc >inline
GetDefaultView(BUFFER_VIEW_TYPE ViewType) overrideDiligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >virtual
GetUniqueID() constDiligent::DeviceObjectBase< BaseInterface, BufferDesc >inline
m_DescDiligent::DeviceObjectBase< BaseInterface, BufferDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< BaseInterface, BufferDesc >protected
m_pDefaultSRVDiligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >protected
m_pDefaultUAVDiligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >protected
Map(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData) overrideDiligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >virtual
Unmap(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags) override=0Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >pure virtual
UpdateData(IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData) override=0Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >pure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_base.html b/doc/html/class_diligent_1_1_buffer_base.html new file mode 100644 index 00000000..f772f52c --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_base.html @@ -0,0 +1,278 @@ + + + + + + + +Diligent Engine API Reference: Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator > Class Template Referenceabstract
+
+
+ +

Template class implementing base functionality for a buffer object. + More...

+
+Inheritance diagram for Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >:
+
+
+ + +Diligent::DeviceObjectBase< BaseInterface, BufferDesc > +Diligent::ObjectBase< BaseInterface > +Diligent::RefCountedObject< BaseInterface > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 BufferBase (IReferenceCounters *pRefCounters, TBuffViewObjAllocator &BuffViewObjAllocator, IRenderDevice *pDevice, const BufferDesc &BuffDesc, bool bIsDeviceInternal)
 
+virtual void UpdateData (IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData) override=0
 Base implementation of IBuffer::UpdateData(); validates input parameters.
 
+virtual void CopyData (IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size) override=0
 Base implementation of IBuffer::CopyData(); validates input parameters.
 
+virtual void Map (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData) override
 Base implementation of IBuffer::Map(); validates input parameters.
 
+virtual void Unmap (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags) override=0
 Base implementation of IBuffer::Unmap()
 
+virtual void CreateView (const struct BufferViewDesc &ViewDesc, IBufferView **ppView) override
 Implementation of IBuffer::CreateView(); calls CreateViewInternal() virtual function that creates buffer view for the specific engine implementation.
 
+virtual IBufferViewGetDefaultView (BUFFER_VIEW_TYPE ViewType) override
 Implementation of IBuffer::GetDefaultView().
 
void CreateDefaultViews ()
 Creates default buffer views. More...
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< BaseInterface, BufferDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferDesc &ObjDesc, bool bIsDeviceInternal=false)
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
+ + + + + + + +

+Protected Member Functions

+virtual void CreateViewInternal (const struct BufferViewDesc &ViewDesc, IBufferView **ppView, bool bIsDefaultView)=0
 Pure virtual function that creates buffer view for the specific engine implementation.
 
+void CorrectBufferViewDesc (struct BufferViewDesc &ViewDesc)
 Corrects buffer view description and validates view parameters.
 
+ + + + + + + + + + + + + + +

+Protected Attributes

+std::unique_ptr< BufferViewImplType, STDDeleter< BufferViewImplType, TBuffViewObjAllocator > > m_pDefaultUAV
 Default UAV addressing the entire buffer.
 
+std::unique_ptr< BufferViewImplType, STDDeleter< BufferViewImplType, TBuffViewObjAllocator > > m_pDefaultSRV
 Default SRV addressing the entire buffer.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< BaseInterface, BufferDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+BufferDesc m_Desc
 Object description.
 
+

Detailed Description

+

template<class BaseInterface, class BufferViewImplType, class TBuffViewObjAllocator>
+class Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >

+ +

Template class implementing base functionality for a buffer object.

+
Template Parameters
+ + + + +
BaseInterface- base interface that this class will inheret (Diligent::IBufferD3D11, Diligent::IBufferD3D12 or Diligent::IBufferGL).
BufferViewImplType- type of the buffer view implementation (Diligent::BufferViewD3D11Impl, Diligent::BufferViewD3D12Impl or Diligent::BufferViewGLImpl)
TBuffViewObjAllocator- type of the allocator that is used to allocate memory for the buffer view object instances
+
+
+

Constructor & Destructor Documentation

+ +

◆ BufferBase()

+ +
+
+
+template<class BaseInterface, class BufferViewImplType, class TBuffViewObjAllocator>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >::BufferBase (IReferenceCounters * pRefCounters,
TBuffViewObjAllocator & BuffViewObjAllocator,
IRenderDevicepDevice,
const BufferDescBuffDesc,
bool bIsDeviceInternal 
)
+
+inline
+
+
Parameters
+ + + + + + +
pRefCounters- reference counters object that controls the lifetime of this buffer.
BuffViewObjAllocator- allocator that is used to allocate memory for the buffer view instances. This parameter is only used for debug purposes.
pDevice- pointer to the device.
BuffDesc- buffer description.
bIsDeviceInternal- flag indicating if the buffer is an internal device object and must not keep a strong reference to the device.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ CreateDefaultViews()

+ +
+
+
+template<class BaseInterface , class BufferViewImplType , class TBuffViewObjAllocator >
+ + + + + + + +
void Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >::CreateDefaultViews ()
+
+ +

Creates default buffer views.

+ +

The function calls CreateViewInternal().

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_base.png b/doc/html/class_diligent_1_1_buffer_base.png new file mode 100644 index 00000000..eb84d2f0 Binary files /dev/null and b/doc/html/class_diligent_1_1_buffer_base.png differ diff --git a/doc/html/class_diligent_1_1_buffer_d3_d11_impl-members.html b/doc/html/class_diligent_1_1_buffer_d3_d11_impl-members.html new file mode 100644 index 00000000..1e7aedf4 --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_d3_d11_impl-members.html @@ -0,0 +1,105 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::BufferD3D11Impl Member List
+
+
+ +

This is the complete list of members for Diligent::BufferD3D11Impl, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
BufferBase(IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &BuffViewObjAllocator, IRenderDevice *pDevice, const BufferDesc &BuffDesc, bool bIsDeviceInternal)Diligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >inline
CopyData(IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size) override finalDiligent::BufferD3D11Implvirtual
CorrectBufferViewDesc(struct BufferViewDesc &ViewDesc)Diligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >protected
CreateDefaultViews()Diligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >
CreateView(const struct BufferViewDesc &ViewDesc, IBufferView **ppView) overrideDiligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >virtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< IBufferD3D11, BufferDesc >inline
GetD3D11Buffer() override finalDiligent::BufferD3D11Implinlinevirtual
GetDefaultView(BUFFER_VIEW_TYPE ViewType) overrideDiligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >virtual
GetNativeHandle() override finalDiligent::BufferD3D11Implinlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< IBufferD3D11, BufferDesc >inline
m_DescDiligent::DeviceObjectBase< IBufferD3D11, BufferDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< IBufferD3D11, BufferDesc >protected
m_pDefaultSRVDiligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >protected
m_pDefaultUAVDiligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >protected
Map(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData) override finalDiligent::BufferD3D11Implvirtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override finalDiligent::BufferD3D11Implvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
Unmap(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags) override finalDiligent::BufferD3D11Implvirtual
UpdateData(IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData) override finalDiligent::BufferD3D11Implvirtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_d3_d11_impl.html b/doc/html/class_diligent_1_1_buffer_d3_d11_impl.html new file mode 100644 index 00000000..56a6fb65 --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_d3_d11_impl.html @@ -0,0 +1,252 @@ + + + + + + + +Diligent Engine API Reference: Diligent::BufferD3D11Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::BufferD3D11Impl Class Reference
+
+
+ +

Implementation of the Diligent::IBufferD3D11 interface. + More...

+
+Inheritance diagram for Diligent::BufferD3D11Impl:
+
+
+ + +Diligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator > +Diligent::DeviceObjectBase< IBufferD3D11, BufferDesc > +Diligent::ObjectBase< IBufferD3D11 > +Diligent::RefCountedObject< IBufferD3D11 > +Diligent::IBufferD3D11 +Diligent::IBuffer +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual void UpdateData (IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData) override final
 Base implementation of IBuffer::UpdateData(); validates input parameters.
 
+virtual void CopyData (IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size) override final
 Base implementation of IBuffer::CopyData(); validates input parameters.
 
+virtual void Map (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData) override final
 Base implementation of IBuffer::Map(); validates input parameters.
 
+virtual void Unmap (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags) override final
 Base implementation of IBuffer::Unmap()
 
virtual ID3D11Buffer * GetD3D11Buffer () override final
 Returns a pointer to the ID3D11Buffer interface of the internal Direct3D11 object. More...
 
virtual void * GetNativeHandle () override final
 Returns native buffer handle specific to the underlying graphics API. More...
 
- Public Member Functions inherited from Diligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >
 BufferBase (IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &BuffViewObjAllocator, IRenderDevice *pDevice, const BufferDesc &BuffDesc, bool bIsDeviceInternal)
 
+virtual void CreateView (const struct BufferViewDesc &ViewDesc, IBufferView **ppView) override
 Implementation of IBuffer::CreateView(); calls CreateViewInternal() virtual function that creates buffer view for the specific engine implementation.
 
+virtual IBufferViewGetDefaultView (BUFFER_VIEW_TYPE ViewType) override
 Implementation of IBuffer::GetDefaultView().
 
void CreateDefaultViews ()
 Creates default buffer views. More...
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IBufferD3D11, BufferDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const BufferDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from Diligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >
+void CorrectBufferViewDesc (struct BufferViewDesc &ViewDesc)
 Corrects buffer view description and validates view parameters.
 
- Protected Attributes inherited from Diligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >
+std::unique_ptr< BufferViewD3D11Impl, STDDeleter< BufferViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultUAV
 Default UAV addressing the entire buffer.
 
+std::unique_ptr< BufferViewD3D11Impl, STDDeleter< BufferViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultSRV
 Default SRV addressing the entire buffer.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< IBufferD3D11, BufferDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+BufferDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::IBufferD3D11 interface.

+

Member Function Documentation

+ +

◆ GetD3D11Buffer()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11Buffer* Diligent::BufferD3D11Impl::GetD3D11Buffer ()
+
+inlinefinaloverridevirtual
+
+ +

Returns a pointer to the ID3D11Buffer interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::IBufferD3D11.

+ +
+
+ +

◆ GetNativeHandle()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void* Diligent::BufferD3D11Impl::GetNativeHandle ()
+
+inlinefinaloverridevirtual
+
+ +

Returns native buffer handle specific to the underlying graphics API.

+
Returns
pointer to ID3D11Resource interface, for D3D11 implementation
+ pointer to ID3D12Resource interface, for D3D12 implementation
+ GL buffer handle, for GL implementation
+ +

Implements Diligent::IBuffer.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_d3_d11_impl.png b/doc/html/class_diligent_1_1_buffer_d3_d11_impl.png new file mode 100644 index 00000000..7719dc1a Binary files /dev/null and b/doc/html/class_diligent_1_1_buffer_d3_d11_impl.png differ diff --git a/doc/html/class_diligent_1_1_buffer_d3_d12_impl-members.html b/doc/html/class_diligent_1_1_buffer_d3_d12_impl-members.html new file mode 100644 index 00000000..98a40480 --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_d3_d12_impl-members.html @@ -0,0 +1,107 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::BufferD3D12Impl Member List
+
+
+ +

This is the complete list of members for Diligent::BufferD3D12Impl, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
BufferBase(IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &BuffViewObjAllocator, IRenderDevice *pDevice, const BufferDesc &BuffDesc, bool bIsDeviceInternal)Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >inline
CopyData(IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size) overrideDiligent::BufferD3D12Implvirtual
CorrectBufferViewDesc(struct BufferViewDesc &ViewDesc)Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >protected
CreateDefaultViews()Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >
CreateView(const struct BufferViewDesc &ViewDesc, IBufferView **ppView) overrideDiligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >virtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< IBufferD3D12, BufferDesc >inline
GetD3D12Buffer(size_t &DataStartByteOffset, Uint32 ContextId) override finalDiligent::BufferD3D12Implinlinevirtual
GetDefaultView(BUFFER_VIEW_TYPE ViewType) overrideDiligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >virtual
GetNativeHandle() override finalDiligent::BufferD3D12Implinlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< IBufferD3D12, BufferDesc >inline
m_DescDiligent::DeviceObjectBase< IBufferD3D12, BufferDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< IBufferD3D12, BufferDesc >protected
m_pd3d12ResourceDiligent::D3D12ResourceBaseprotected
m_pDefaultSRVDiligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >protected
m_pDefaultUAVDiligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >protected
Map(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData) overrideDiligent::BufferD3D12Implvirtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) overrideDiligent::BufferD3D12Implvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
SetD3D12ResourceState(D3D12_RESOURCE_STATES state) override finalDiligent::BufferD3D12Implinlinevirtual
Unmap(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags) overrideDiligent::BufferD3D12Implvirtual
UpdateData(IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData) overrideDiligent::BufferD3D12Implvirtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_d3_d12_impl.html b/doc/html/class_diligent_1_1_buffer_d3_d12_impl.html new file mode 100644 index 00000000..7bc9259a --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_d3_d12_impl.html @@ -0,0 +1,314 @@ + + + + + + + +Diligent Engine API Reference: Diligent::BufferD3D12Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::BufferD3D12Impl Class Reference
+
+
+ +

Implementation of the Diligent::IBufferD3D12 interface. + More...

+
+Inheritance diagram for Diligent::BufferD3D12Impl:
+
+
+ + +Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator > +Diligent::D3D12ResourceBase +Diligent::DeviceObjectBase< IBufferD3D12, BufferDesc > +Diligent::ObjectBase< IBufferD3D12 > +Diligent::RefCountedObject< IBufferD3D12 > +Diligent::IBufferD3D12 +Diligent::IBuffer +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual void UpdateData (IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData) override
 Base implementation of IBuffer::UpdateData(); validates input parameters.
 
+virtual void CopyData (IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size) override
 Base implementation of IBuffer::CopyData(); validates input parameters.
 
+virtual void Map (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData) override
 Base implementation of IBuffer::Map(); validates input parameters.
 
+virtual void Unmap (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags) override
 Base implementation of IBuffer::Unmap()
 
virtual ID3D12Resource * GetD3D12Buffer (size_t &DataStartByteOffset, Uint32 ContextId) override final
 Returns a pointer to the ID3D12Resource interface of the internal Direct3D12 object. More...
 
virtual void * GetNativeHandle () override final
 Returns native buffer handle specific to the underlying graphics API. More...
 
virtual void SetD3D12ResourceState (D3D12_RESOURCE_STATES state) override final
 Sets the buffer usage state. More...
 
- Public Member Functions inherited from Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >
 BufferBase (IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &BuffViewObjAllocator, IRenderDevice *pDevice, const BufferDesc &BuffDesc, bool bIsDeviceInternal)
 
+virtual void CreateView (const struct BufferViewDesc &ViewDesc, IBufferView **ppView) override
 Implementation of IBuffer::CreateView(); calls CreateViewInternal() virtual function that creates buffer view for the specific engine implementation.
 
+virtual IBufferViewGetDefaultView (BUFFER_VIEW_TYPE ViewType) override
 Implementation of IBuffer::GetDefaultView().
 
void CreateDefaultViews ()
 Creates default buffer views. More...
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IBufferD3D12, BufferDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const BufferDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >
+void CorrectBufferViewDesc (struct BufferViewDesc &ViewDesc)
 Corrects buffer view description and validates view parameters.
 
- Protected Attributes inherited from Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >
+std::unique_ptr< BufferViewD3D12Impl, STDDeleter< BufferViewD3D12Impl, FixedBlockMemoryAllocator > > m_pDefaultUAV
 Default UAV addressing the entire buffer.
 
+std::unique_ptr< BufferViewD3D12Impl, STDDeleter< BufferViewD3D12Impl, FixedBlockMemoryAllocator > > m_pDefaultSRV
 Default SRV addressing the entire buffer.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< IBufferD3D12, BufferDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+BufferDesc m_Desc
 Object description.
 
- Protected Attributes inherited from Diligent::D3D12ResourceBase
+CComPtr< ID3D12Resource > m_pd3d12Resource
 D3D12 buffer object.
 
+

Detailed Description

+

Implementation of the Diligent::IBufferD3D12 interface.

+

Member Function Documentation

+ +

◆ GetD3D12Buffer()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual ID3D12Resource* Diligent::BufferD3D12Impl::GetD3D12Buffer (size_t & DataStartByteOffset,
Uint32 ContextId 
)
+
+inlinefinaloverridevirtual
+
+ +

Returns a pointer to the ID3D12Resource interface of the internal Direct3D12 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

Parameters
+ + + +
[in]DataStartByteOffset- Offset from the beginning of the buffer to the start of the data. This parameter is required for dynamic buffers, which are suballocated in a dynamic upload heap
[in]ContextId- Id of the context within which address of the buffer is requested.
+
+
+ +

Implements Diligent::IBufferD3D12.

+ +
+
+ +

◆ GetNativeHandle()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void* Diligent::BufferD3D12Impl::GetNativeHandle ()
+
+inlinefinaloverridevirtual
+
+ +

Returns native buffer handle specific to the underlying graphics API.

+
Returns
pointer to ID3D11Resource interface, for D3D11 implementation
+ pointer to ID3D12Resource interface, for D3D12 implementation
+ GL buffer handle, for GL implementation
+ +

Implements Diligent::IBuffer.

+ +
+
+ +

◆ SetD3D12ResourceState()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::BufferD3D12Impl::SetD3D12ResourceState (D3D12_RESOURCE_STATES state)
+
+inlinefinaloverridevirtual
+
+ +

Sets the buffer usage state.

+
Parameters
+ + +
[in]state- D3D12 resource state to be set for this buffer
+
+
+ +

Implements Diligent::IBufferD3D12.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_d3_d12_impl.png b/doc/html/class_diligent_1_1_buffer_d3_d12_impl.png new file mode 100644 index 00000000..b52c070f Binary files /dev/null and b/doc/html/class_diligent_1_1_buffer_d3_d12_impl.png differ diff --git a/doc/html/class_diligent_1_1_buffer_g_l_impl-members.html b/doc/html/class_diligent_1_1_buffer_g_l_impl-members.html new file mode 100644 index 00000000..20d6172a --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_g_l_impl-members.html @@ -0,0 +1,105 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::BufferGLImpl Member List
+
+
+ +

This is the complete list of members for Diligent::BufferGLImpl, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
BufferBase(IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &BuffViewObjAllocator, IRenderDevice *pDevice, const BufferDesc &BuffDesc, bool bIsDeviceInternal)Diligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >inline
CopyData(IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size) overrideDiligent::BufferGLImplvirtual
CorrectBufferViewDesc(struct BufferViewDesc &ViewDesc)Diligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >protected
CreateDefaultViews()Diligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >
CreateView(const struct BufferViewDesc &ViewDesc, IBufferView **ppView) overrideDiligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >virtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< IBufferGL, BufferDesc >inline
GetDefaultView(BUFFER_VIEW_TYPE ViewType) overrideDiligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >virtual
GetGLBufferHandle() override finalDiligent::BufferGLImplinlinevirtual
GetNativeHandle() override finalDiligent::BufferGLImplinlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< IBufferGL, BufferDesc >inline
m_DescDiligent::DeviceObjectBase< IBufferGL, BufferDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< IBufferGL, BufferDesc >protected
m_pDefaultSRVDiligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >protected
m_pDefaultUAVDiligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >protected
Map(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData) overrideDiligent::BufferGLImplvirtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) overrideDiligent::BufferGLImplvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
Unmap(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags) overrideDiligent::BufferGLImplvirtual
UpdateData(IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData) overrideDiligent::BufferGLImplvirtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_g_l_impl.html b/doc/html/class_diligent_1_1_buffer_g_l_impl.html new file mode 100644 index 00000000..a301a002 --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_g_l_impl.html @@ -0,0 +1,223 @@ + + + + + + + +Diligent Engine API Reference: Diligent::BufferGLImpl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::BufferGLImpl Class Reference
+
+
+ +

Implementation of the Diligent::IBufferGL interface. + More...

+
+Inheritance diagram for Diligent::BufferGLImpl:
+
+
+ + +Diligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator > +Diligent::DeviceObjectBase< IBufferGL, BufferDesc > +Diligent::ObjectBase< IBufferGL > +Diligent::RefCountedObject< IBufferGL > +Diligent::IBufferGL +Diligent::IBuffer +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual void UpdateData (IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData) override
 Base implementation of IBuffer::UpdateData(); validates input parameters.
 
+virtual void CopyData (IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size) override
 Base implementation of IBuffer::CopyData(); validates input parameters.
 
+virtual void Map (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData) override
 Base implementation of IBuffer::Map(); validates input parameters.
 
+virtual void Unmap (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags) override
 Base implementation of IBuffer::Unmap()
 
+virtual GLuint GetGLBufferHandle () override final
 Returns OpenGL buffer handle.
 
virtual void * GetNativeHandle () override final
 Returns native buffer handle specific to the underlying graphics API. More...
 
- Public Member Functions inherited from Diligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >
 BufferBase (IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &BuffViewObjAllocator, IRenderDevice *pDevice, const BufferDesc &BuffDesc, bool bIsDeviceInternal)
 
+virtual void CreateView (const struct BufferViewDesc &ViewDesc, IBufferView **ppView) override
 Implementation of IBuffer::CreateView(); calls CreateViewInternal() virtual function that creates buffer view for the specific engine implementation.
 
+virtual IBufferViewGetDefaultView (BUFFER_VIEW_TYPE ViewType) override
 Implementation of IBuffer::GetDefaultView().
 
void CreateDefaultViews ()
 Creates default buffer views. More...
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IBufferGL, BufferDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const BufferDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from Diligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >
+void CorrectBufferViewDesc (struct BufferViewDesc &ViewDesc)
 Corrects buffer view description and validates view parameters.
 
- Protected Attributes inherited from Diligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >
+std::unique_ptr< BufferViewGLImpl, STDDeleter< BufferViewGLImpl, FixedBlockMemoryAllocator > > m_pDefaultUAV
 Default UAV addressing the entire buffer.
 
+std::unique_ptr< BufferViewGLImpl, STDDeleter< BufferViewGLImpl, FixedBlockMemoryAllocator > > m_pDefaultSRV
 Default SRV addressing the entire buffer.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< IBufferGL, BufferDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+BufferDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::IBufferGL interface.

+

Member Function Documentation

+ +

◆ GetNativeHandle()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void* Diligent::BufferGLImpl::GetNativeHandle ()
+
+inlinefinaloverridevirtual
+
+ +

Returns native buffer handle specific to the underlying graphics API.

+
Returns
pointer to ID3D11Resource interface, for D3D11 implementation
+ pointer to ID3D12Resource interface, for D3D12 implementation
+ GL buffer handle, for GL implementation
+ +

Implements Diligent::IBuffer.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_g_l_impl.png b/doc/html/class_diligent_1_1_buffer_g_l_impl.png new file mode 100644 index 00000000..76ab92b2 Binary files /dev/null and b/doc/html/class_diligent_1_1_buffer_g_l_impl.png differ diff --git a/doc/html/class_diligent_1_1_buffer_view_base-members.html b/doc/html/class_diligent_1_1_buffer_view_base-members.html new file mode 100644 index 00000000..6525ff15 --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_view_base-members.html @@ -0,0 +1,94 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::BufferViewBase< BaseInterface > Member List
+
+
+ +

This is the complete list of members for Diligent::BufferViewBase< BaseInterface >, including all inherited members.

+ + + + + + + + + +
BufferViewBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ViewDesc, IBuffer *pBuffer, bool bIsDefaultView)Diligent::BufferViewBase< BaseInterface >inline
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< BaseInterface, BufferViewDesc >inline
GetBuffer() override finalDiligent::BufferViewBase< BaseInterface >inlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< BaseInterface, BufferViewDesc >inline
m_DescDiligent::DeviceObjectBase< BaseInterface, BufferViewDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< BaseInterface, BufferViewDesc >protected
m_pBufferDiligent::BufferViewBase< BaseInterface >protected
m_spBufferDiligent::BufferViewBase< BaseInterface >protected
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_view_base.html b/doc/html/class_diligent_1_1_buffer_view_base.html new file mode 100644 index 00000000..a8db6591 --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_view_base.html @@ -0,0 +1,215 @@ + + + + + + + +Diligent Engine API Reference: Diligent::BufferViewBase< BaseInterface > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::BufferViewBase< BaseInterface > Class Template Reference
+
+
+ +

Template class implementing base functionality for a buffer view object. + More...

+
+Inheritance diagram for Diligent::BufferViewBase< BaseInterface >:
+
+
+ + +Diligent::DeviceObjectBase< BaseInterface, BufferViewDesc > +Diligent::ObjectBase< BaseInterface > +Diligent::RefCountedObject< BaseInterface > + +
+ + + + + + + + + + + + + +

+Public Member Functions

 BufferViewBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ViewDesc, IBuffer *pBuffer, bool bIsDefaultView)
 
+virtual IBufferGetBuffer () override final
 Implementation of IBufferView::GetBuffer()
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< BaseInterface, BufferViewDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ObjDesc, bool bIsDeviceInternal=false)
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
+ + + + + + + + + + + + + + +

+Protected Attributes

+IBuffer *const m_pBuffer
 Pointer to the buffer.
 
+RefCntAutoPtr< IBufferm_spBuffer
 Strong reference to the buffer. Used for non-default views to keep the buffer alive.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< BaseInterface, BufferViewDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+BufferViewDesc m_Desc
 Object description.
 
+

Detailed Description

+

template<class BaseInterface>
+class Diligent::BufferViewBase< BaseInterface >

+ +

Template class implementing base functionality for a buffer view object.

+
Template Parameters
+ + + +
BaseInterface- base interface that this class will inheret (Diligent::IBufferViewD3D11, Diligent::IBufferViewD3D12 or Diligent::IBufferViewGL).
BuffViewObjAllocator- type of the allocator that is used to allocate memory for the buffer view object instances
+
+
+

Constructor & Destructor Documentation

+ +

◆ BufferViewBase()

+ +
+
+
+template<class BaseInterface>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Diligent::BufferViewBase< BaseInterface >::BufferViewBase (IReferenceCounters * pRefCounters,
IRenderDevicepDevice,
const BufferViewDescViewDesc,
IBufferpBuffer,
bool bIsDefaultView 
)
+
+inline
+
+
Parameters
+ + + + + + +
pRefCounters- reference counters object that controls the lifetime of this buffer view.
pDevice- pointer to the render device.
ViewDesc- buffer view description.
pBuffer- pointer to the buffer that the view is to be created for.
bIsDefaultView- flag indicating if the view is default view, and is thus part of the buffer object. In this case the view will attach to the buffer's reference counters.
+
+
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_view_base.png b/doc/html/class_diligent_1_1_buffer_view_base.png new file mode 100644 index 00000000..4cac11b6 Binary files /dev/null and b/doc/html/class_diligent_1_1_buffer_view_base.png differ diff --git a/doc/html/class_diligent_1_1_buffer_view_d3_d11_impl-members.html b/doc/html/class_diligent_1_1_buffer_view_d3_d11_impl-members.html new file mode 100644 index 00000000..7554dd49 --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_view_d3_d11_impl-members.html @@ -0,0 +1,98 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::BufferViewD3D11Impl Member List
+
+
+ +

This is the complete list of members for Diligent::BufferViewD3D11Impl, including all inherited members.

+ + + + + + + + + + + + + +
BufferViewBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ViewDesc, IBuffer *pBuffer, bool bIsDefaultView)Diligent::BufferViewBase< IBufferViewD3D11 >inline
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< IBufferViewD3D11, BufferViewDesc >inline
GetBuffer() override finalDiligent::BufferViewBase< IBufferViewD3D11 >inlinevirtual
GetD3D11View() override finalDiligent::BufferViewD3D11Implinlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< IBufferViewD3D11, BufferViewDesc >inline
m_DescDiligent::DeviceObjectBase< IBufferViewD3D11, BufferViewDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< IBufferViewD3D11, BufferViewDesc >protected
m_pBufferDiligent::BufferViewBase< IBufferViewD3D11 >protected
m_pD3D11ViewDiligent::BufferViewD3D11Implprotected
m_spBufferDiligent::BufferViewBase< IBufferViewD3D11 >protected
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) finalDiligent::BufferViewD3D11Implvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_view_d3_d11_impl.html b/doc/html/class_diligent_1_1_buffer_view_d3_d11_impl.html new file mode 100644 index 00000000..0fb6dba9 --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_view_d3_d11_impl.html @@ -0,0 +1,194 @@ + + + + + + + +Diligent Engine API Reference: Diligent::BufferViewD3D11Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::BufferViewD3D11Impl Class Reference
+
+
+ +

Implementation of the Diligent::IBufferViewD3D11 interface. + More...

+
+Inheritance diagram for Diligent::BufferViewD3D11Impl:
+
+
+ + +Diligent::BufferViewBase< IBufferViewD3D11 > +Diligent::DeviceObjectBase< IBufferViewD3D11, BufferViewDesc > +Diligent::ObjectBase< IBufferViewD3D11 > +Diligent::RefCountedObject< IBufferViewD3D11 > +Diligent::IBufferViewD3D11 +Diligent::IBufferView +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) final
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual ID3D11View * GetD3D11View () override final
 Returns a pointer to the ID3D11View interface of the internal Direct3D11 object. More...
 
- Public Member Functions inherited from Diligent::BufferViewBase< IBufferViewD3D11 >
 BufferViewBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ViewDesc, IBuffer *pBuffer, bool bIsDefaultView)
 
+virtual IBufferGetBuffer () override final
 Implementation of IBufferView::GetBuffer()
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IBufferViewD3D11, BufferViewDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const BufferViewDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + + + + + + + + + + + +

+Protected Attributes

+CComPtr< ID3D11View > m_pD3D11View
 D3D11 view.
 
- Protected Attributes inherited from Diligent::BufferViewBase< IBufferViewD3D11 >
+IBuffer *const m_pBuffer
 Pointer to the buffer.
 
+RefCntAutoPtr< IBufferm_spBuffer
 Strong reference to the buffer. Used for non-default views to keep the buffer alive.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< IBufferViewD3D11, BufferViewDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+BufferViewDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::IBufferViewD3D11 interface.

+

Member Function Documentation

+ +

◆ GetD3D11View()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11View* Diligent::BufferViewD3D11Impl::GetD3D11View ()
+
+inlinefinaloverridevirtual
+
+ +

Returns a pointer to the ID3D11View interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::IBufferViewD3D11.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_view_d3_d11_impl.png b/doc/html/class_diligent_1_1_buffer_view_d3_d11_impl.png new file mode 100644 index 00000000..c6e6f490 Binary files /dev/null and b/doc/html/class_diligent_1_1_buffer_view_d3_d11_impl.png differ diff --git a/doc/html/class_diligent_1_1_buffer_view_d3_d12_impl-members.html b/doc/html/class_diligent_1_1_buffer_view_d3_d12_impl-members.html new file mode 100644 index 00000000..afa60a90 --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_view_d3_d12_impl-members.html @@ -0,0 +1,97 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::BufferViewD3D12Impl Member List
+
+
+ +

This is the complete list of members for Diligent::BufferViewD3D12Impl, including all inherited members.

+ + + + + + + + + + + + +
BufferViewBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ViewDesc, IBuffer *pBuffer, bool bIsDefaultView)Diligent::BufferViewBase< IBufferViewD3D12 >inline
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< IBufferViewD3D12, BufferViewDesc >inline
GetBuffer() override finalDiligent::BufferViewBase< IBufferViewD3D12 >inlinevirtual
GetCPUDescriptorHandle() overrideDiligent::BufferViewD3D12Implinlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< IBufferViewD3D12, BufferViewDesc >inline
m_DescDiligent::DeviceObjectBase< IBufferViewD3D12, BufferViewDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< IBufferViewD3D12, BufferViewDesc >protected
m_pBufferDiligent::BufferViewBase< IBufferViewD3D12 >protected
m_spBufferDiligent::BufferViewBase< IBufferViewD3D12 >protected
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)Diligent::BufferViewD3D12Implvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_view_d3_d12_impl.html b/doc/html/class_diligent_1_1_buffer_view_d3_d12_impl.html new file mode 100644 index 00000000..86f2b892 --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_view_d3_d12_impl.html @@ -0,0 +1,159 @@ + + + + + + + +Diligent Engine API Reference: Diligent::BufferViewD3D12Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::BufferViewD3D12Impl Class Reference
+
+
+ +

Implementation of the Diligent::IBufferViewD3D12 interface. + More...

+
+Inheritance diagram for Diligent::BufferViewD3D12Impl:
+
+
+ + +Diligent::BufferViewBase< IBufferViewD3D12 > +Diligent::DeviceObjectBase< IBufferViewD3D12, BufferViewDesc > +Diligent::ObjectBase< IBufferViewD3D12 > +Diligent::RefCountedObject< IBufferViewD3D12 > +Diligent::IBufferViewD3D12 +Diligent::IBufferView +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle () override
 Returns CPU descriptor handle of the buffer view.
 
- Public Member Functions inherited from Diligent::BufferViewBase< IBufferViewD3D12 >
 BufferViewBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ViewDesc, IBuffer *pBuffer, bool bIsDefaultView)
 
+virtual IBufferGetBuffer () override final
 Implementation of IBufferView::GetBuffer()
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IBufferViewD3D12, BufferViewDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const BufferViewDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::BufferViewBase< IBufferViewD3D12 >
+IBuffer *const m_pBuffer
 Pointer to the buffer.
 
+RefCntAutoPtr< IBufferm_spBuffer
 Strong reference to the buffer. Used for non-default views to keep the buffer alive.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< IBufferViewD3D12, BufferViewDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+BufferViewDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::IBufferViewD3D12 interface.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_view_d3_d12_impl.png b/doc/html/class_diligent_1_1_buffer_view_d3_d12_impl.png new file mode 100644 index 00000000..60b23283 Binary files /dev/null and b/doc/html/class_diligent_1_1_buffer_view_d3_d12_impl.png differ diff --git a/doc/html/class_diligent_1_1_buffer_view_g_l_impl-members.html b/doc/html/class_diligent_1_1_buffer_view_g_l_impl-members.html new file mode 100644 index 00000000..ec42eb50 --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_view_g_l_impl-members.html @@ -0,0 +1,96 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::BufferViewGLImpl Member List
+
+
+ +

This is the complete list of members for Diligent::BufferViewGLImpl, including all inherited members.

+ + + + + + + + + + + +
BufferViewBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ViewDesc, IBuffer *pBuffer, bool bIsDefaultView)Diligent::BufferViewBase< IBufferViewGL >inline
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< IBufferViewGL, BufferViewDesc >inline
GetBuffer() override finalDiligent::BufferViewBase< IBufferViewGL >inlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< IBufferViewGL, BufferViewDesc >inline
m_DescDiligent::DeviceObjectBase< IBufferViewGL, BufferViewDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< IBufferViewGL, BufferViewDesc >protected
m_pBufferDiligent::BufferViewBase< IBufferViewGL >protected
m_spBufferDiligent::BufferViewBase< IBufferViewGL >protected
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)Diligent::BufferViewGLImplvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_view_g_l_impl.html b/doc/html/class_diligent_1_1_buffer_view_g_l_impl.html new file mode 100644 index 00000000..2c113054 --- /dev/null +++ b/doc/html/class_diligent_1_1_buffer_view_g_l_impl.html @@ -0,0 +1,155 @@ + + + + + + + +Diligent Engine API Reference: Diligent::BufferViewGLImpl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::BufferViewGLImpl Class Reference
+
+
+ +

Implementation of the Diligent::IBufferViewGL interface. + More...

+
+Inheritance diagram for Diligent::BufferViewGLImpl:
+
+
+ + +Diligent::BufferViewBase< IBufferViewGL > +Diligent::DeviceObjectBase< IBufferViewGL, BufferViewDesc > +Diligent::ObjectBase< IBufferViewGL > +Diligent::RefCountedObject< IBufferViewGL > +Diligent::IBufferViewGL +Diligent::IBufferView +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)
 Queries the specific interface, see IObject::QueryInterface() for details.
 
- Public Member Functions inherited from Diligent::BufferViewBase< IBufferViewGL >
 BufferViewBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ViewDesc, IBuffer *pBuffer, bool bIsDefaultView)
 
+virtual IBufferGetBuffer () override final
 Implementation of IBufferView::GetBuffer()
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IBufferViewGL, BufferViewDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const BufferViewDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const BufferViewDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::BufferViewBase< IBufferViewGL >
+IBuffer *const m_pBuffer
 Pointer to the buffer.
 
+RefCntAutoPtr< IBufferm_spBuffer
 Strong reference to the buffer. Used for non-default views to keep the buffer alive.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< IBufferViewGL, BufferViewDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+BufferViewDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::IBufferViewGL interface.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_buffer_view_g_l_impl.png b/doc/html/class_diligent_1_1_buffer_view_g_l_impl.png new file mode 100644 index 00000000..2ecab0cf Binary files /dev/null and b/doc/html/class_diligent_1_1_buffer_view_g_l_impl.png differ diff --git a/doc/html/class_diligent_1_1_com_error_desc-members.html b/doc/html/class_diligent_1_1_com_error_desc-members.html new file mode 100644 index 00000000..336e4e80 --- /dev/null +++ b/doc/html/class_diligent_1_1_com_error_desc-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ComErrorDesc Member List
+
+
+ +

This is the complete list of members for Diligent::ComErrorDesc, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_com_error_desc.html b/doc/html/class_diligent_1_1_com_error_desc.html new file mode 100644 index 00000000..d56668d4 --- /dev/null +++ b/doc/html/class_diligent_1_1_com_error_desc.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ComErrorDesc Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ComErrorDesc Class Reference
+
+
+ +

Helper class that provides description of a COM error. + More...

+

Detailed Description

+

Helper class that provides description of a COM error.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_command_list_base-members.html b/doc/html/class_diligent_1_1_command_list_base-members.html new file mode 100644 index 00000000..0f4f2559 --- /dev/null +++ b/doc/html/class_diligent_1_1_command_list_base-members.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::CommandListBase< BaseInterface > Member List
+
+
+ +

This is the complete list of members for Diligent::CommandListBase< BaseInterface >, including all inherited members.

+ + + + + + +
CommandListBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, bool bIsDeviceInternal=false)Diligent::CommandListBase< BaseInterface >inline
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const CommandListDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< BaseInterface, CommandListDesc >inline
GetUniqueID() constDiligent::DeviceObjectBase< BaseInterface, CommandListDesc >inline
m_DescDiligent::DeviceObjectBase< BaseInterface, CommandListDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< BaseInterface, CommandListDesc >protected
+ + + + + diff --git a/doc/html/class_diligent_1_1_command_list_base.html b/doc/html/class_diligent_1_1_command_list_base.html new file mode 100644 index 00000000..0e1c6cb8 --- /dev/null +++ b/doc/html/class_diligent_1_1_command_list_base.html @@ -0,0 +1,187 @@ + + + + + + + +Diligent Engine API Reference: Diligent::CommandListBase< BaseInterface > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::CommandListBase< BaseInterface > Class Template Reference
+
+
+ +

Template class implementing base functionality for a command list object. + More...

+
+Inheritance diagram for Diligent::CommandListBase< BaseInterface >:
+
+
+ + +Diligent::DeviceObjectBase< BaseInterface, CommandListDesc > +Diligent::ObjectBase< BaseInterface > +Diligent::RefCountedObject< BaseInterface > + +
+ + + + + + + + + + +

+Public Member Functions

 CommandListBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< BaseInterface, CommandListDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const CommandListDesc &ObjDesc, bool bIsDeviceInternal=false)
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
+ + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::DeviceObjectBase< BaseInterface, CommandListDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+CommandListDesc m_Desc
 Object description.
 
+

Detailed Description

+

template<class BaseInterface>
+class Diligent::CommandListBase< BaseInterface >

+ +

Template class implementing base functionality for a command list object.

+
Template Parameters
+ + +
BaseInterface- base interface that this class will inheret (Diligent::ICommandListD3D11 or Diligent::ICommandListD3D12).
+
+
+

Constructor & Destructor Documentation

+ +

◆ CommandListBase()

+ +
+
+
+template<class BaseInterface>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Diligent::CommandListBase< BaseInterface >::CommandListBase (IReferenceCounters * pRefCounters,
IRenderDevicepDevice,
bool bIsDeviceInternal = false 
)
+
+inline
+
+
Parameters
+ + + + +
pRefCounters- reference counters object that controls the lifetime of this command list.
pDevice- pointer to the device.
bIsDeviceInternal- flag indicating if the CommandList is an internal device object and must not keep a strong reference to the device.
+
+
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_command_list_base.png b/doc/html/class_diligent_1_1_command_list_base.png new file mode 100644 index 00000000..7bf41620 Binary files /dev/null and b/doc/html/class_diligent_1_1_command_list_base.png differ diff --git a/doc/html/class_diligent_1_1_command_list_d3_d11_impl-members.html b/doc/html/class_diligent_1_1_command_list_d3_d11_impl-members.html new file mode 100644 index 00000000..549d5e33 --- /dev/null +++ b/doc/html/class_diligent_1_1_command_list_d3_d11_impl-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::CommandListD3D11Impl Member List
+
+
+ +

This is the complete list of members for Diligent::CommandListD3D11Impl, including all inherited members.

+ + + + + + + +
CommandListBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, bool bIsDeviceInternal=false)Diligent::CommandListBase< ICommandList >inline
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const CommandListDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< ICommandList, CommandListDesc >inline
GetUniqueID() constDiligent::DeviceObjectBase< ICommandList, CommandListDesc >inline
m_DescDiligent::DeviceObjectBase< ICommandList, CommandListDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< ICommandList, CommandListDesc >protected
RefCountedObject< ICommandList >::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_command_list_d3_d11_impl.html b/doc/html/class_diligent_1_1_command_list_d3_d11_impl.html new file mode 100644 index 00000000..6f45999e --- /dev/null +++ b/doc/html/class_diligent_1_1_command_list_d3_d11_impl.html @@ -0,0 +1,133 @@ + + + + + + + +Diligent Engine API Reference: Diligent::CommandListD3D11Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::CommandListD3D11Impl Class Reference
+
+
+ +

Implementation of the Diligent::ICommandListD3D11 interface. + More...

+
+Inheritance diagram for Diligent::CommandListD3D11Impl:
+
+
+ + +Diligent::CommandListBase< ICommandList > +Diligent::DeviceObjectBase< ICommandList, CommandListDesc > +Diligent::ObjectBase< ICommandList > +Diligent::RefCountedObject< ICommandList > +Diligent::ICommandList +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::CommandListBase< ICommandList >
 CommandListBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< ICommandList, CommandListDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const CommandListDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const CommandListDesc & GetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< ICommandList, CommandListDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+CommandListDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::ICommandListD3D11 interface.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_command_list_d3_d11_impl.png b/doc/html/class_diligent_1_1_command_list_d3_d11_impl.png new file mode 100644 index 00000000..0076c149 Binary files /dev/null and b/doc/html/class_diligent_1_1_command_list_d3_d11_impl.png differ diff --git a/doc/html/class_diligent_1_1_command_list_d3_d12_impl-members.html b/doc/html/class_diligent_1_1_command_list_d3_d12_impl-members.html new file mode 100644 index 00000000..8b2a26f8 --- /dev/null +++ b/doc/html/class_diligent_1_1_command_list_d3_d12_impl-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::CommandListD3D12Impl Member List
+
+
+ +

This is the complete list of members for Diligent::CommandListD3D12Impl, including all inherited members.

+ + + + + + + +
CommandListBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, bool bIsDeviceInternal=false)Diligent::CommandListBase< ICommandList >inline
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const CommandListDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< ICommandList, CommandListDesc >inline
GetUniqueID() constDiligent::DeviceObjectBase< ICommandList, CommandListDesc >inline
m_DescDiligent::DeviceObjectBase< ICommandList, CommandListDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< ICommandList, CommandListDesc >protected
RefCountedObject< ICommandList >::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_command_list_d3_d12_impl.html b/doc/html/class_diligent_1_1_command_list_d3_d12_impl.html new file mode 100644 index 00000000..eea4460d --- /dev/null +++ b/doc/html/class_diligent_1_1_command_list_d3_d12_impl.html @@ -0,0 +1,133 @@ + + + + + + + +Diligent Engine API Reference: Diligent::CommandListD3D12Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::CommandListD3D12Impl Class Reference
+
+
+ +

Implementation of the Diligent::ICommandList interface. + More...

+
+Inheritance diagram for Diligent::CommandListD3D12Impl:
+
+
+ + +Diligent::CommandListBase< ICommandList > +Diligent::DeviceObjectBase< ICommandList, CommandListDesc > +Diligent::ObjectBase< ICommandList > +Diligent::RefCountedObject< ICommandList > +Diligent::ICommandList +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::CommandListBase< ICommandList >
 CommandListBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< ICommandList, CommandListDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const CommandListDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const CommandListDesc & GetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< ICommandList, CommandListDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+CommandListDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::ICommandList interface.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_command_list_d3_d12_impl.png b/doc/html/class_diligent_1_1_command_list_d3_d12_impl.png new file mode 100644 index 00000000..934051de Binary files /dev/null and b/doc/html/class_diligent_1_1_command_list_d3_d12_impl.png differ diff --git a/doc/html/class_diligent_1_1_command_queue_d3_d12_impl-members.html b/doc/html/class_diligent_1_1_command_queue_d3_d12_impl-members.html new file mode 100644 index 00000000..e879209d --- /dev/null +++ b/doc/html/class_diligent_1_1_command_queue_d3_d12_impl-members.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::CommandQueueD3D12Impl Member List
+
+
+ +

This is the complete list of members for Diligent::CommandQueueD3D12Impl, including all inherited members.

+ + + + + + +
ExecuteCommandList(ID3D12GraphicsCommandList *commandList) override finalDiligent::CommandQueueD3D12Implvirtual
GetCompletedFenceValue() override finalDiligent::CommandQueueD3D12Implvirtual
GetD3D12CommandQueue() override finalDiligent::CommandQueueD3D12Implinlinevirtual
GetNextFenceValue() override finalDiligent::CommandQueueD3D12Implinlinevirtual
IdleGPU() override finalDiligent::CommandQueueD3D12Implvirtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_command_queue_d3_d12_impl.html b/doc/html/class_diligent_1_1_command_queue_d3_d12_impl.html new file mode 100644 index 00000000..617944b2 --- /dev/null +++ b/doc/html/class_diligent_1_1_command_queue_d3_d12_impl.html @@ -0,0 +1,157 @@ + + + + + + + +Diligent Engine API Reference: Diligent::CommandQueueD3D12Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::CommandQueueD3D12Impl Class Reference
+
+
+ +

Implementation of the Diligent::ICommandQueueD3D12 interface. + More...

+
+Inheritance diagram for Diligent::CommandQueueD3D12Impl:
+
+
+ + +Diligent::ObjectBase< ICommandQueueD3D12 > +Diligent::RefCountedObject< ICommandQueueD3D12 > +Diligent::ICommandQueueD3D12 + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual UINT64 GetNextFenceValue () override final
 Returns the fence value that will be signaled next time.
 
virtual UINT64 ExecuteCommandList (ID3D12GraphicsCommandList *commandList) override final
 Executes a given command list. More...
 
+virtual ID3D12CommandQueue * GetD3D12CommandQueue () override final
 Returns D3D12 command queue. May return null if queue is anavailable.
 
+virtual void IdleGPU () override final
 Blocks execution until all pending GPU commands are complete.
 
+virtual Uint64 GetCompletedFenceValue () override final
 Returns value of the last completed fence.
 
+

Detailed Description

+

Implementation of the Diligent::ICommandQueueD3D12 interface.

+

Member Function Documentation

+ +

◆ ExecuteCommandList()

+ +
+
+ + + + + +
+ + + + + + + + +
UINT64 Diligent::CommandQueueD3D12Impl::ExecuteCommandList (ID3D12GraphicsCommandList * commandList)
+
+finaloverridevirtual
+
+ +

Executes a given command list.

+
Returns
Fence value associated with the executed command list
+ +

Implements Diligent::ICommandQueueD3D12.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_command_queue_d3_d12_impl.png b/doc/html/class_diligent_1_1_command_queue_d3_d12_impl.png new file mode 100644 index 00000000..1e9dd7e1 Binary files /dev/null and b/doc/html/class_diligent_1_1_command_queue_d3_d12_impl.png differ diff --git a/doc/html/class_diligent_1_1_d3_d12_resource_base-members.html b/doc/html/class_diligent_1_1_d3_d12_resource_base-members.html new file mode 100644 index 00000000..c4aa3df4 --- /dev/null +++ b/doc/html/class_diligent_1_1_d3_d12_resource_base-members.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::D3D12ResourceBase Member List
+
+
+ +

This is the complete list of members for Diligent::D3D12ResourceBase, including all inherited members.

+ + +
m_pd3d12ResourceDiligent::D3D12ResourceBaseprotected
+ + + + + diff --git a/doc/html/class_diligent_1_1_d3_d12_resource_base.html b/doc/html/class_diligent_1_1_d3_d12_resource_base.html new file mode 100644 index 00000000..cf2d0ac2 --- /dev/null +++ b/doc/html/class_diligent_1_1_d3_d12_resource_base.html @@ -0,0 +1,109 @@ + + + + + + + +Diligent Engine API Reference: Diligent::D3D12ResourceBase Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::D3D12ResourceBase Class Reference
+
+
+ +

Base implementation of a D3D12 resource. + More...

+
+Inheritance diagram for Diligent::D3D12ResourceBase:
+
+
+ + +Diligent::BufferD3D12Impl +Diligent::TextureD3D12Impl + +
+ + + + + +

+Protected Attributes

+CComPtr< ID3D12Resource > m_pd3d12Resource
 D3D12 buffer object.
 
+

Detailed Description

+

Base implementation of a D3D12 resource.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_d3_d12_resource_base.png b/doc/html/class_diligent_1_1_d3_d12_resource_base.png new file mode 100644 index 00000000..b4a22d99 Binary files /dev/null and b/doc/html/class_diligent_1_1_d3_d12_resource_base.png differ diff --git a/doc/html/class_diligent_1_1_data_blob_impl-members.html b/doc/html/class_diligent_1_1_data_blob_impl-members.html new file mode 100644 index 00000000..ce43ae35 --- /dev/null +++ b/doc/html/class_diligent_1_1_data_blob_impl-members.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::DataBlobImpl Member List
+
+
+ +

This is the complete list of members for Diligent::DataBlobImpl, including all inherited members.

+ + + + +
GetDataPtr() overrideDiligent::DataBlobImplvirtual
GetSize() overrideDiligent::DataBlobImplvirtual
Resize(size_t NewSize) overrideDiligent::DataBlobImplvirtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_data_blob_impl.html b/doc/html/class_diligent_1_1_data_blob_impl.html new file mode 100644 index 00000000..bb71628e --- /dev/null +++ b/doc/html/class_diligent_1_1_data_blob_impl.html @@ -0,0 +1,117 @@ + + + + + + + +Diligent Engine API Reference: Diligent::DataBlobImpl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::DataBlobImpl Class Reference
+
+
+ +

Base interface for a file stream. + More...

+
+Inheritance diagram for Diligent::DataBlobImpl:
+
+
+ + +Diligent::ObjectBase< IDataBlob > +Diligent::RefCountedObject< IDataBlob > + +
+ + + + + + + + + + + +

+Public Member Functions

+virtual void Resize (size_t NewSize) override
 Sets the size of the internal data buffer.
 
+virtual size_t GetSize () override
 Returns the size of the internal data buffer.
 
+virtual void * GetDataPtr () override
 Returns the pointer to the internal data buffer.
 
+

Detailed Description

+

Base interface for a file stream.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_data_blob_impl.png b/doc/html/class_diligent_1_1_data_blob_impl.png new file mode 100644 index 00000000..a319241b Binary files /dev/null and b/doc/html/class_diligent_1_1_data_blob_impl.png differ diff --git a/doc/html/class_diligent_1_1_device_context_base-members.html b/doc/html/class_diligent_1_1_device_context_base-members.html new file mode 100644 index 00000000..fe9702c5 --- /dev/null +++ b/doc/html/class_diligent_1_1_device_context_base-members.html @@ -0,0 +1,120 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::DeviceContextBase< BaseInterface > Member List
+
+
+ +

This is the complete list of members for Diligent::DeviceContextBase< BaseInterface >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ClearStateCache()Diligent::DeviceContextBase< BaseInterface >inlineprotected
CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags, int)Diligent::DeviceContextBase< BaseInterface >inline
DeviceContextBase(IReferenceCounters *pRefCounters, IRenderDevice *pRenderDevice, bool bIsDeferred)Diligent::DeviceContextBase< BaseInterface >inline
GetDevice()Diligent::DeviceContextBase< BaseInterface >inline
GetPipelineState(IPipelineState **ppPSO, float *BlendFactors, Uint32 &StencilRef)Diligent::DeviceContextBase< BaseInterface >inline
GetRenderTargets(Uint32 &NumRenderTargets, ITextureView **ppRTVs, ITextureView **ppDSV)Diligent::DeviceContextBase< BaseInterface >inline
GetRenderTargetSize(Uint32 &RTWidth, Uint32 &RTHeight)Diligent::DeviceContextBase< BaseInterface >inlineprotected
GetSwapChain()Diligent::DeviceContextBase< BaseInterface >inline
GetViewports(Uint32 &NumViewports, Viewport *pViewports)Diligent::DeviceContextBase< BaseInterface >inline
IsDefaultFBBound()Diligent::DeviceContextBase< BaseInterface >inline
m_BlendFactorsDiligent::DeviceContextBase< BaseInterface >protected
m_IndexDataStartOffsetDiligent::DeviceContextBase< BaseInterface >protected
m_IsDefaultFramebufferBoundDiligent::DeviceContextBase< BaseInterface >protected
m_NumBoundRenderTargetsDiligent::DeviceContextBase< BaseInterface >protected
m_NumScissorRectsDiligent::DeviceContextBase< BaseInterface >protected
m_NumVertexStreamsDiligent::DeviceContextBase< BaseInterface >protected
m_NumViewportsDiligent::DeviceContextBase< BaseInterface >protected
m_pBoundDepthStencilDiligent::DeviceContextBase< BaseInterface >protected
m_pBoundRenderTargetsDiligent::DeviceContextBase< BaseInterface >protected
m_pDeviceDiligent::DeviceContextBase< BaseInterface >protected
m_pIndexBufferDiligent::DeviceContextBase< BaseInterface >protected
m_pPipelineStateDiligent::DeviceContextBase< BaseInterface >protected
m_pSwapChainDiligent::DeviceContextBase< BaseInterface >protected
m_ScissorRectsDiligent::DeviceContextBase< BaseInterface >protected
m_StencilRefDiligent::DeviceContextBase< BaseInterface >protected
m_VertexStreamsDiligent::DeviceContextBase< BaseInterface >protected
m_ViewportsDiligent::DeviceContextBase< BaseInterface >protected
SetIndexBuffer(IBuffer *pIndexBuffer, Uint32 ByteOffset) override=0Diligent::DeviceContextBase< BaseInterface >inlinepure virtual
SetPipelineState(IPipelineState *pPipelineState) override=0Diligent::DeviceContextBase< BaseInterface >inlinepure virtual
SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil, Uint32 Dummy=0)Diligent::DeviceContextBase< BaseInterface >inline
SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 &RTWidth, Uint32 &RTHeight)Diligent::DeviceContextBase< BaseInterface >inline
SetSwapChain(ISwapChain *pSwapChain) override finalDiligent::DeviceContextBase< BaseInterface >inlinevirtual
SetVertexBuffers(Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags) override=0Diligent::DeviceContextBase< BaseInterface >inlinepure virtual
SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 &RTWidth, Uint32 &RTHeight)Diligent::DeviceContextBase< BaseInterface >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_device_context_base.html b/doc/html/class_diligent_1_1_device_context_base.html new file mode 100644 index 00000000..70a3b8b0 --- /dev/null +++ b/doc/html/class_diligent_1_1_device_context_base.html @@ -0,0 +1,310 @@ + + + + + + + +Diligent Engine API Reference: Diligent::DeviceContextBase< BaseInterface > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::DeviceContextBase< BaseInterface > Class Template Referenceabstract
+
+
+ +

Base implementation of the device context. + More...

+
+Inheritance diagram for Diligent::DeviceContextBase< BaseInterface >:
+
+
+ + +Diligent::ObjectBase< BaseInterface > +Diligent::RefCountedObject< BaseInterface > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 DeviceContextBase (IReferenceCounters *pRefCounters, IRenderDevice *pRenderDevice, bool bIsDeferred)
 
+virtual void SetVertexBuffers (Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags) override=0
 Base implementation of IDeviceContext::SetVertexBuffers(); validates parameters and caches references to the buffers.
 
+virtual void SetPipelineState (IPipelineState *pPipelineState) override=0
 Base implementation of IDeviceContext::SetPipelineState(); caches references to the pipeline state object.
 
+bool CommitShaderResources (IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags, int)
 Base implementation of IDeviceContext::CommitShaderResources(); validates parameters.
 
+virtual void SetIndexBuffer (IBuffer *pIndexBuffer, Uint32 ByteOffset) override=0
 Base implementation of IDeviceContext::SetIndexBuffer(); caches the strong reference to the index buffer.
 
+void SetViewports (Uint32 NumViewports, const Viewport *pViewports, Uint32 &RTWidth, Uint32 &RTHeight)
 Caches the viewports.
 
+void SetScissorRects (Uint32 NumRects, const Rect *pRects, Uint32 &RTWidth, Uint32 &RTHeight)
 Caches the scissor rects.
 
+bool SetRenderTargets (Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil, Uint32 Dummy=0)
 Caches the render target and depth stencil views. Returns true if any view is different from the cached value and false otherwise.
 
+virtual void SetSwapChain (ISwapChain *pSwapChain) override final
 Sets the strong pointer to the swap chain.
 
+ISwapChainGetSwapChain ()
 Returns the swap chain.
 
+bool IsDefaultFBBound ()
 Returns true if currently bound frame buffer is the default frame buffer.
 
+void GetPipelineState (IPipelineState **ppPSO, float *BlendFactors, Uint32 &StencilRef)
 Returns currently bound pipeline state and blend factors.
 
+void GetRenderTargets (Uint32 &NumRenderTargets, ITextureView **ppRTVs, ITextureView **ppDSV)
 Returns currently bound render targets.
 
+void GetViewports (Uint32 &NumViewports, Viewport *pViewports)
 Returns currently set viewports.
 
+IRenderDeviceGetDevice ()
 Returns the render device.
 
+ + + + + + + +

+Protected Member Functions

+void GetRenderTargetSize (Uint32 &RTWidth, Uint32 &RTHeight)
 Returns the size of the currently bound render target.
 
+void ClearStateCache ()
 Clears all cached resources.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+RefCntAutoPtr< IRenderDevicem_pDevice
 Strong reference to the device.
 
+RefCntAutoPtr< ISwapChainm_pSwapChain
 Strong reference to the swap chain. Swap chain holds weak reference to the immediate context.
 
+VertexStreamInfo m_VertexStreams [MaxBufferSlots]
 Vertex streams. Every stream holds strong reference to the buffer.
 
+Uint32 m_NumVertexStreams = 0
 Number of bound vertex streams.
 
+RefCntAutoPtr< IPipelineStatem_pPipelineState
 Strong reference to the bound pipeline state object.
 
+RefCntAutoPtr< IBufferm_pIndexBuffer
 Strong reference to the bound index buffer.
 
+Uint32 m_IndexDataStartOffset = 0
 Offset from the beginning of the index buffer to the start of the index data, in bytes.
 
+Uint32 m_StencilRef = 0
 Current stencil reference value.
 
+Float32 m_BlendFactors [4] = { -1, -1, -1, -1 }
 Curent blend factors.
 
+Viewport m_Viewports [MaxRenderTargets]
 Current viewports.
 
+Uint32 m_NumViewports = 0
 Number of current viewports.
 
+Rect m_ScissorRects [MaxRenderTargets]
 Current scissor rects.
 
+Uint32 m_NumScissorRects = 0
 Number of current scissor rects.
 
+RefCntAutoPtr< ITextureViewm_pBoundRenderTargets [MaxRenderTargets]
 Vector of strong references to the bound render targets.
 
+Uint32 m_NumBoundRenderTargets = 0
 Number of bound render targets.
 
+bool m_IsDefaultFramebufferBound = false
 Flag indicating if default render target & depth-stencil buffer are currently bound.
 
+RefCntAutoPtr< ITextureViewm_pBoundDepthStencil
 Strong references to the bound depth stencil view.
 
+

Detailed Description

+

template<typename BaseInterface>
+class Diligent::DeviceContextBase< BaseInterface >

+ +

Base implementation of the device context.

+
Template Parameters
+ + +
BaseInterface- base interface that this class will inheret.
+
+
+
Remarks
Device context keeps strong references to all objects currently bound to the pipeline: buffers, states, samplers, shaders, etc. The context also keeps strong references to the device and the swap chain.
+

Constructor & Destructor Documentation

+ +

◆ DeviceContextBase()

+ +
+
+
+template<typename BaseInterface>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Diligent::DeviceContextBase< BaseInterface >::DeviceContextBase (IReferenceCounters * pRefCounters,
IRenderDevicepRenderDevice,
bool bIsDeferred 
)
+
+inline
+
+
Parameters
+ + + + +
pRefCounters- reference counters object that controls the lifetime of this device context.
pRenderDevice- render device.
bIsDeferred- flag indicating if this instance is a deferred context
+
+
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_device_context_base.png b/doc/html/class_diligent_1_1_device_context_base.png new file mode 100644 index 00000000..6c986818 Binary files /dev/null and b/doc/html/class_diligent_1_1_device_context_base.png differ diff --git a/doc/html/class_diligent_1_1_device_context_d3_d11_impl-members.html b/doc/html/class_diligent_1_1_device_context_d3_d11_impl-members.html new file mode 100644 index 00000000..e2f1cb9d --- /dev/null +++ b/doc/html/class_diligent_1_1_device_context_d3_d11_impl-members.html @@ -0,0 +1,138 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::DeviceContextD3D11Impl Member List
+
+
+ +

This is the complete list of members for Diligent::DeviceContextD3D11Impl, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ClearDepthStencil(ITextureView *pView, Uint32 ClearFlags, float fDepth, Uint8 Stencil) override finalDiligent::DeviceContextD3D11Implvirtual
ClearRenderTarget(ITextureView *pView, const float *RGBA) override finalDiligent::DeviceContextD3D11Implvirtual
CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags) override finalDiligent::DeviceContextD3D11Implvirtual
DeviceContextBase< IDeviceContextD3D11 >::CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags, int)Diligent::DeviceContextBase< IDeviceContextD3D11 >inline
DeviceContextBase(IReferenceCounters *pRefCounters, IRenderDevice *pRenderDevice, bool bIsDeferred)Diligent::DeviceContextBase< IDeviceContextD3D11 >inline
DispatchCompute(const DispatchComputeAttribs &DispatchAttrs) override finalDiligent::DeviceContextD3D11Implvirtual
Draw(DrawAttribs &DrawAttribs) override finalDiligent::DeviceContextD3D11Implvirtual
ExecuteCommandList(class ICommandList *pCommandList) override finalDiligent::DeviceContextD3D11Implvirtual
FinishCommandList(class ICommandList **ppCommandList) override finalDiligent::DeviceContextD3D11Implvirtual
Flush() override finalDiligent::DeviceContextD3D11Implvirtual
GetD3D11DeviceContext()Diligent::DeviceContextD3D11Implinlinevirtual
GetDevice()Diligent::DeviceContextBase< IDeviceContextD3D11 >inline
GetPipelineState(IPipelineState **ppPSO, float *BlendFactors, Uint32 &StencilRef)Diligent::DeviceContextBase< IDeviceContextD3D11 >inline
GetRenderTargets(Uint32 &NumRenderTargets, ITextureView **ppRTVs, ITextureView **ppDSV)Diligent::DeviceContextBase< IDeviceContextD3D11 >inline
GetRenderTargetSize(Uint32 &RTWidth, Uint32 &RTHeight)Diligent::DeviceContextBase< IDeviceContextD3D11 >inlineprotected
GetSwapChain()Diligent::DeviceContextBase< IDeviceContextD3D11 >inline
GetViewports(Uint32 &NumViewports, Viewport *pViewports)Diligent::DeviceContextBase< IDeviceContextD3D11 >inline
InvalidateState() override finalDiligent::DeviceContextD3D11Implvirtual
IsDefaultFBBound()Diligent::DeviceContextBase< IDeviceContextD3D11 >inline
m_BlendFactorsDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_IndexDataStartOffsetDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_IsDefaultFramebufferBoundDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_NumBoundRenderTargetsDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_NumScissorRectsDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_NumVertexStreamsDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_NumViewportsDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_pBoundDepthStencilDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_pBoundRenderTargetsDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_pDeviceDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_pIndexBufferDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_pPipelineStateDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_pSwapChainDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_ScissorRectsDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_StencilRefDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_VertexStreamsDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
m_ViewportsDiligent::DeviceContextBase< IDeviceContextD3D11 >protected
NumShaderTypesDiligent::DeviceContextD3D11Implstatic
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override finalDiligent::DeviceContextD3D11Implvirtual
ReleaseCommittedShaderResources()Diligent::DeviceContextD3D11Impl
SetBlendFactors(const float *pBlendFactors=nullptr) override finalDiligent::DeviceContextD3D11Implvirtual
SetIndexBuffer(IBuffer *pIndexBuffer, Uint32 ByteOffset) override finalDiligent::DeviceContextD3D11Implvirtual
SetPipelineState(IPipelineState *pPipelineState) override finalDiligent::DeviceContextD3D11Implvirtual
SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil) override finalDiligent::DeviceContextD3D11Implvirtual
DeviceContextBase< IDeviceContextD3D11 >::SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil, Uint32 Dummy=0)Diligent::DeviceContextBase< IDeviceContextD3D11 >inline
SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight) override finalDiligent::DeviceContextD3D11Implvirtual
DeviceContextBase< IDeviceContextD3D11 >::SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 &RTWidth, Uint32 &RTHeight)Diligent::DeviceContextBase< IDeviceContextD3D11 >inline
SetStencilRef(Uint32 StencilRef) override finalDiligent::DeviceContextD3D11Implvirtual
SetSwapChain(ISwapChain *pSwapChain) override finalDiligent::DeviceContextBase< IDeviceContextD3D11 >inlinevirtual
SetVertexBuffers(Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags) override finalDiligent::DeviceContextD3D11Implvirtual
SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight) override finalDiligent::DeviceContextD3D11Implvirtual
DeviceContextBase< IDeviceContextD3D11 >::SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 &RTWidth, Uint32 &RTHeight)Diligent::DeviceContextBase< IDeviceContextD3D11 >inline
TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding) override finalDiligent::DeviceContextD3D11Implvirtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_device_context_d3_d11_impl.html b/doc/html/class_diligent_1_1_device_context_d3_d11_impl.html new file mode 100644 index 00000000..a0f27c44 --- /dev/null +++ b/doc/html/class_diligent_1_1_device_context_d3_d11_impl.html @@ -0,0 +1,986 @@ + + + + + + + +Diligent Engine API Reference: Diligent::DeviceContextD3D11Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::DeviceContextD3D11Impl Class Reference
+
+
+ +

Implementation of the Diligent::IDeviceContextD3D11 interface. + More...

+
+Inheritance diagram for Diligent::DeviceContextD3D11Impl:
+
+
+ + +Diligent::DeviceContextBase< IDeviceContextD3D11 > +Diligent::ObjectBase< IDeviceContextD3D11 > +Diligent::RefCountedObject< IDeviceContextD3D11 > +Diligent::IDeviceContextD3D11 +Diligent::IDeviceContext + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual void SetPipelineState (IPipelineState *pPipelineState) override final
 Base implementation of IDeviceContext::SetPipelineState(); caches references to the pipeline state object.
 
virtual void TransitionShaderResources (IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding) override final
 Transitions shader resources to the require states. More...
 
virtual void CommitShaderResources (IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags) override final
 Commits shader resources to the device context. More...
 
virtual void SetStencilRef (Uint32 StencilRef) override final
 Sets the stencil reference value. More...
 
virtual void SetBlendFactors (const float *pBlendFactors=nullptr) override final
 
+virtual void SetVertexBuffers (Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags) override final
 Base implementation of IDeviceContext::SetVertexBuffers(); validates parameters and caches references to the buffers.
 
virtual void InvalidateState () override final
 Invalidates the cached context state. More...
 
+virtual void SetIndexBuffer (IBuffer *pIndexBuffer, Uint32 ByteOffset) override final
 Base implementation of IDeviceContext::SetIndexBuffer(); caches the strong reference to the index buffer.
 
virtual void SetViewports (Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight) override final
 Sets an array of viewports. More...
 
virtual void SetScissorRects (Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight) override final
 Sets active scissor rects. More...
 
virtual void SetRenderTargets (Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil) override final
 Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewport to match the first non-null render target or depth-stencil buffer. More...
 
virtual void Draw (DrawAttribs &DrawAttribs) override final
 Executes a draw command. More...
 
virtual void DispatchCompute (const DispatchComputeAttribs &DispatchAttrs) override final
 Executes a dispatch compute command. More...
 
virtual void ClearDepthStencil (ITextureView *pView, Uint32 ClearFlags, float fDepth, Uint8 Stencil) override final
 Clears a depth-stencil view. More...
 
virtual void ClearRenderTarget (ITextureView *pView, const float *RGBA) override final
 Clears a render target view. More...
 
+virtual void Flush () override final
 Flushes the command buffer.
 
void FinishCommandList (class ICommandList **ppCommandList) override final
 Finishes recording commands and generates a command list. More...
 
virtual void ExecuteCommandList (class ICommandList *pCommandList) override final
 Executes recorded commands in a command list. More...
 
ID3D11DeviceContext * GetD3D11DeviceContext ()
 Returns a pointer to the ID3D11DeviceContext interface of the internal Direct3D11 object. More...
 
+void ReleaseCommittedShaderResources ()
 Clears the committed shader resource cache. This function is called once per frame (before present) to release all outstanding objects that are only kept alive by references in the cache. The function does not release cached vertex and index buffers, input layout, depth-stencil, rasterizer, and blend states.
 
- Public Member Functions inherited from Diligent::DeviceContextBase< IDeviceContextD3D11 >
 DeviceContextBase (IReferenceCounters *pRefCounters, IRenderDevice *pRenderDevice, bool bIsDeferred)
 
+bool CommitShaderResources (IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags, int)
 Base implementation of IDeviceContext::CommitShaderResources(); validates parameters.
 
+void SetViewports (Uint32 NumViewports, const Viewport *pViewports, Uint32 &RTWidth, Uint32 &RTHeight)
 Caches the viewports.
 
+void SetScissorRects (Uint32 NumRects, const Rect *pRects, Uint32 &RTWidth, Uint32 &RTHeight)
 Caches the scissor rects.
 
+bool SetRenderTargets (Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil, Uint32 Dummy=0)
 Caches the render target and depth stencil views. Returns true if any view is different from the cached value and false otherwise.
 
+virtual void SetSwapChain (ISwapChain *pSwapChain) override final
 Sets the strong pointer to the swap chain.
 
+ISwapChainGetSwapChain ()
 Returns the swap chain.
 
+bool IsDefaultFBBound ()
 Returns true if currently bound frame buffer is the default frame buffer.
 
+void GetPipelineState (IPipelineState **ppPSO, float *BlendFactors, Uint32 &StencilRef)
 Returns currently bound pipeline state and blend factors.
 
+void GetRenderTargets (Uint32 &NumRenderTargets, ITextureView **ppRTVs, ITextureView **ppDSV)
 Returns currently bound render targets.
 
+void GetViewports (Uint32 &NumViewports, Viewport *pViewports)
 Returns currently set viewports.
 
+IRenderDeviceGetDevice ()
 Returns the render device.
 
+ + + + +

+Static Public Attributes

+static constexpr int NumShaderTypes = 6
 Number of different shader types (Vertex, Pixel, Geometry, Domain, Hull, Compute)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from Diligent::DeviceContextBase< IDeviceContextD3D11 >
+void GetRenderTargetSize (Uint32 &RTWidth, Uint32 &RTHeight)
 Returns the size of the currently bound render target.
 
+void ClearStateCache ()
 Clears all cached resources.
 
- Protected Attributes inherited from Diligent::DeviceContextBase< IDeviceContextD3D11 >
+RefCntAutoPtr< IRenderDevicem_pDevice
 Strong reference to the device.
 
+RefCntAutoPtr< ISwapChainm_pSwapChain
 Strong reference to the swap chain. Swap chain holds weak reference to the immediate context.
 
+VertexStreamInfo m_VertexStreams [MaxBufferSlots]
 Vertex streams. Every stream holds strong reference to the buffer.
 
+Uint32 m_NumVertexStreams
 Number of bound vertex streams.
 
+RefCntAutoPtr< IPipelineStatem_pPipelineState
 Strong reference to the bound pipeline state object.
 
+RefCntAutoPtr< IBufferm_pIndexBuffer
 Strong reference to the bound index buffer.
 
+Uint32 m_IndexDataStartOffset
 Offset from the beginning of the index buffer to the start of the index data, in bytes.
 
+Uint32 m_StencilRef
 Current stencil reference value.
 
+Float32 m_BlendFactors [4]
 Curent blend factors.
 
+Viewport m_Viewports [MaxRenderTargets]
 Current viewports.
 
+Uint32 m_NumViewports
 Number of current viewports.
 
+Rect m_ScissorRects [MaxRenderTargets]
 Current scissor rects.
 
+Uint32 m_NumScissorRects
 Number of current scissor rects.
 
+RefCntAutoPtr< ITextureViewm_pBoundRenderTargets [MaxRenderTargets]
 Vector of strong references to the bound render targets.
 
+Uint32 m_NumBoundRenderTargets
 Number of bound render targets.
 
+bool m_IsDefaultFramebufferBound
 Flag indicating if default render target & depth-stencil buffer are currently bound.
 
+RefCntAutoPtr< ITextureViewm_pBoundDepthStencil
 Strong references to the bound depth stencil view.
 
+

Detailed Description

+

Implementation of the Diligent::IDeviceContextD3D11 interface.

+

Member Function Documentation

+ +

◆ ClearDepthStencil()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D11Impl::ClearDepthStencil (ITextureViewpView,
Uint32 ClearFlags,
float fDepth,
Uint8 Stencil 
)
+
+finaloverridevirtual
+
+ +

Clears a depth-stencil view.

+
Parameters
+ + + + + +
[in]pView- Pointer to ITextureView interface to clear. The view type must be Diligent::TEXTURE_VIEW_DEPTH_STENCIL.
[in]ClearFlags- Idicates which parts of the buffer to clear, see Diligent::CLEAR_DEPTH_STENCIL_FLAGS.
[in]fDepth- Value to clear depth part of the view with.
[in]Stencil- Value to clear stencil part of the view with.
+
+
+
Remarks
The full extent of the view is always cleared. Viewport and scissor settings are not applied.
+
Note
The depth-stencil view must be bound to the pipeline for clear operation to be performed.
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ ClearRenderTarget()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D11Impl::ClearRenderTarget (ITextureViewpView,
const float * RGBA 
)
+
+finaloverridevirtual
+
+ +

Clears a render target view.

+
Parameters
+ + + +
[in]pView- Pointer to ITextureView interface to clear. The view type must be Diligent::TEXTURE_VIEW_RENDER_TARGET.
[in]RGBA- A 4-component array that represents the color to fill the render target with. If nullptr is provided, the default array {0,0,0,0} will be used.
+
+
+
Remarks
The full extent of the view is always cleared. Viewport and scissor settings are not applied.
+
Note
The render target view must be bound to the pipeline for clear operation to be performed.
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ CommitShaderResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D11Impl::CommitShaderResources (IShaderResourceBindingpShaderResourceBinding,
Uint32 Flags 
)
+
+finaloverridevirtual
+
+ +

Commits shader resources to the device context.

+
Parameters
+ + + +
[in]pShaderResourceBinding- Shader resource binding whose resources will be committed. If pipeline state contains no shader resources, this parameter can be null.
[in]Flags- Additional flags for the operation. See Diligent::COMMIT_SHADER_RESOURCES_FLAG for a list of allowed values.
+
+
+
Remarks
Pipeline state object that was used to create the shader resource binding must be bound to the pipeline when CommitShaderResources() is called. If no pipeline state object is bound or the pipeline state object does not match shader resource binding, the method will fail.
+ If Diligent::COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES flag is specified, the engine will also transition all shader resources to the correct state. If the flag is not specified, it is assumed that all resources are already in correct states.
+ Resources can be explicitly transitioned to the required states by calling IDeviceContext::TransitionShaderResources()
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ DispatchCompute()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextD3D11Impl::DispatchCompute (const DispatchComputeAttribsDispatchAttrs)
+
+finaloverridevirtual
+
+ +

Executes a dispatch compute command.

+
Parameters
+ + +
[in]DispatchAttrs- Structure describing dispatch command attributes, see DispatchComputeAttribs for details.
+
+
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ Draw()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextD3D11Impl::Draw (DrawAttribsDrawAttribs)
+
+finaloverridevirtual
+
+ +

Executes a draw command.

+
Parameters
+ + +
[in]DrawAttribs- Structure describing draw command attributes, see DrawAttribs for details.
+
+
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ ExecuteCommandList()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextD3D11Impl::ExecuteCommandList (class ICommandListpCommandList)
+
+finaloverridevirtual
+
+ +

Executes recorded commands in a command list.

+
Parameters
+ + +
[in]pCommandList- Pointer to the command list to executre.
+
+
+
Remarks
After command list is executed, it is no longer valid and should be released.
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ FinishCommandList()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextD3D11Impl::FinishCommandList (class ICommandList ** ppCommandList)
+
+finaloverridevirtual
+
+ +

Finishes recording commands and generates a command list.

+
Parameters
+ + +
[out]ppCommandList- Memory location where pointer to the recorded command list will be written.
+
+
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ GetD3D11DeviceContext()

+ +
+
+ + + + + +
+ + + + + + + +
ID3D11DeviceContext* Diligent::DeviceContextD3D11Impl::GetD3D11DeviceContext ()
+
+inlinevirtual
+
+ +

Returns a pointer to the ID3D11DeviceContext interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::IDeviceContextD3D11.

+ +
+
+ +

◆ InvalidateState()

+ +
+
+ + + + + +
+ + + + + + + +
void Diligent::DeviceContextD3D11Impl::InvalidateState ()
+
+finaloverridevirtual
+
+ +

Invalidates the cached context state.

+

This method should be called by say Unity plugin before (or after) issuing draw commands to invalidate cached states

+ +

Implements Diligent::DeviceContextBase< IDeviceContextD3D11 >.

+ +
+
+ +

◆ SetBlendFactors()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextD3D11Impl::SetBlendFactors (const float * pBlendFactors = nullptr)
+
+finaloverridevirtual
+
+
Parameters
+ + +
[in]pBlendFactors- Array of four blend factors, one for each RGBA component. Theses factors are used if the blend state uses one of the Diligent::BLEND_FACTOR_BLEND_FACTOR or Diligent::BLEND_FACTOR_INV_BLEND_FACTOR blend factors. If nullptr is provided, default blend factors array {1,1,1,1} will be used.
+
+
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ SetRenderTargets()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D11Impl::SetRenderTargets (Uint32 NumRenderTargets,
ITextureViewppRenderTargets[],
ITextureViewpDepthStencil 
)
+
+finaloverridevirtual
+
+ +

Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewport to match the first non-null render target or depth-stencil buffer.

+
Parameters
+ + + + +
[in]NumRenderTargets- Number of render targets to bind.
[in]ppRenderTargets- Array of pointers to ITextureView that represent the render targets to bind to the device. The type of each view in the array must be Diligent::TEXTURE_VIEW_RENDER_TARGET.
[in]pDepthStencil- Pointer to the ITextureView that represents the depth stencil to bind to the device. The view type must be Diligent::TEXTURE_VIEW_DEPTH_STENCIL.
+
+
+
Remarks
The device context will keep strong references to all bound render target and depth-stencil views. Thus these views (and consequently referenced textures) cannot be released until they are unbound from the context.
+Any render targets not defined by this call are set to nullptr.
+
+You can set the default render target and depth stencil using the following call:
pContext->SetRenderTargets(0, nullptr, nullptr); 
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ SetScissorRects()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D11Impl::SetScissorRects (Uint32 NumRects,
const RectpRects,
Uint32 RTWidth,
Uint32 RTHeight 
)
+
+finaloverridevirtual
+
+ +

Sets active scissor rects.

+
Parameters
+ + + + + +
[in]NumRects- Number of scissor rectangles to set.
[in]pRects- An array of Rect structures describing the scissor rectangles to bind.
[in]RTWidth- Render target width. If 0 is provided, width of the currently bound render target will be used.
[in]RTHeight- Render target height. If 0 is provided, height of the currently bound render target will be used.
+
+
+
Remarks
DirectX and OpenGL use different window coordinate systems. In DirectX, the coordinate system origin is in the left top corner of the screen with Y axis pointing down. In OpenGL, the origin is in the left bottom corener of the screen with Y axis pointing up. Render target size is required to convert viewport from DirectX to OpenGL coordinate system if OpenGL device is used.
+
+All scissor rects must be set atomically as one operation. Any rects not defined by the call are disabled.
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ SetStencilRef()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextD3D11Impl::SetStencilRef (Uint32 StencilRef)
+
+finaloverridevirtual
+
+ +

Sets the stencil reference value.

+
Parameters
+ + +
[in]StencilRef- Stencil reference value.
+
+
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ SetViewports()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D11Impl::SetViewports (Uint32 NumViewports,
const ViewportpViewports,
Uint32 RTWidth,
Uint32 RTHeight 
)
+
+finaloverridevirtual
+
+ +

Sets an array of viewports.

+
Parameters
+ + + + + +
[in]NumViewports- Number of viewports to set.
[in]pViewports- An array of Viewport structures describing the viewports to bind.
[in]RTWidth- Render target width. If 0 is provided, width of the currently bound render target will be used.
[in]RTHeight-Render target height. If 0 is provided, height of the currently bound render target will be used.
+
+
+
Remarks
DirectX and OpenGL use different window coordinate systems. In DirectX, the coordinate system origin is in the left top corner of the screen with Y axis pointing down. In OpenGL, the origin is in the left bottom corener of the screen with Y axis pointing up. Render target size is required to convert viewport from DirectX to OpenGL coordinate system if OpenGL device is used.
+
+All viewports must be set atomically as one operation. Any viewports not defined by the call are disabled.
+
+You can set the viewport size to match the currently bound render target using the following call:
pContext->SetViewports(1, nullptr, 0, 0); 
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ TransitionShaderResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D11Impl::TransitionShaderResources (IPipelineStatepPipelineState,
IShaderResourceBindingpShaderResourceBinding 
)
+
+finaloverridevirtual
+
+ +

Transitions shader resources to the require states.

+
Parameters
+ + + +
[in]pPipelineState- Pipeline state object that was used to create the shader resource binding.
[in]pShaderResourceBinding- Shader resource binding whose resources will be transitioned.
+
+
+
Remarks
This method explicitly transitiones all resources to the correct states. If this method was called, there is no need to specify Diligent::COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES when calling IDeviceContext::CommitShaderResources()
+ +

Implements Diligent::IDeviceContext.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_device_context_d3_d11_impl.png b/doc/html/class_diligent_1_1_device_context_d3_d11_impl.png new file mode 100644 index 00000000..c31003e1 Binary files /dev/null and b/doc/html/class_diligent_1_1_device_context_d3_d11_impl.png differ diff --git a/doc/html/class_diligent_1_1_device_context_d3_d12_impl-members.html b/doc/html/class_diligent_1_1_device_context_d3_d12_impl-members.html new file mode 100644 index 00000000..2c55d321 --- /dev/null +++ b/doc/html/class_diligent_1_1_device_context_d3_d12_impl-members.html @@ -0,0 +1,138 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::DeviceContextD3D12Impl Member List
+
+
+ +

This is the complete list of members for Diligent::DeviceContextD3D12Impl, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ClearDepthStencil(ITextureView *pView, Uint32 ClearFlags, float fDepth, Uint8 Stencil) override finalDiligent::DeviceContextD3D12Implvirtual
ClearRenderTarget(ITextureView *pView, const float *RGBA) override finalDiligent::DeviceContextD3D12Implvirtual
ClearStateCache()Diligent::DeviceContextBase< IDeviceContextD3D12 >inlineprotected
CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags) override finalDiligent::DeviceContextD3D12Implvirtual
DeviceContextBase< IDeviceContextD3D12 >::CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags, int)Diligent::DeviceContextBase< IDeviceContextD3D12 >inline
DeviceContextBase(IReferenceCounters *pRefCounters, IRenderDevice *pRenderDevice, bool bIsDeferred)Diligent::DeviceContextBase< IDeviceContextD3D12 >inline
DispatchCompute(const DispatchComputeAttribs &DispatchAttrs) override finalDiligent::DeviceContextD3D12Implvirtual
Draw(DrawAttribs &DrawAttribs) override finalDiligent::DeviceContextD3D12Implvirtual
ExecuteCommandList(class ICommandList *pCommandList) override finalDiligent::DeviceContextD3D12Implvirtual
FinishCommandList(class ICommandList **ppCommandList) override finalDiligent::DeviceContextD3D12Implvirtual
Flush() override finalDiligent::DeviceContextD3D12Implvirtual
GetDevice()Diligent::DeviceContextBase< IDeviceContextD3D12 >inline
GetPipelineState(IPipelineState **ppPSO, float *BlendFactors, Uint32 &StencilRef)Diligent::DeviceContextBase< IDeviceContextD3D12 >inline
GetRenderTargets(Uint32 &NumRenderTargets, ITextureView **ppRTVs, ITextureView **ppDSV)Diligent::DeviceContextBase< IDeviceContextD3D12 >inline
GetRenderTargetSize(Uint32 &RTWidth, Uint32 &RTHeight)Diligent::DeviceContextBase< IDeviceContextD3D12 >inlineprotected
GetSwapChain()Diligent::DeviceContextBase< IDeviceContextD3D12 >inline
GetViewports(Uint32 &NumViewports, Viewport *pViewports)Diligent::DeviceContextBase< IDeviceContextD3D12 >inline
InvalidateState() override finalDiligent::DeviceContextD3D12Implvirtual
IsDefaultFBBound()Diligent::DeviceContextBase< IDeviceContextD3D12 >inline
m_BlendFactorsDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_IndexDataStartOffsetDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_IsDefaultFramebufferBoundDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_NumBoundRenderTargetsDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_NumScissorRectsDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_NumVertexStreamsDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_NumViewportsDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_pBoundDepthStencilDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_pBoundRenderTargetsDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_pDeviceDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_pIndexBufferDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_pPipelineStateDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_pSwapChainDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_ScissorRectsDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_StencilRefDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_VertexStreamsDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
m_ViewportsDiligent::DeviceContextBase< IDeviceContextD3D12 >protected
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override finalDiligent::DeviceContextD3D12Implvirtual
SetBlendFactors(const float *pBlendFactors=nullptr) override finalDiligent::DeviceContextD3D12Implvirtual
SetIndexBuffer(IBuffer *pIndexBuffer, Uint32 ByteOffset) override finalDiligent::DeviceContextD3D12Implvirtual
SetPipelineState(IPipelineState *pPipelineState) override finalDiligent::DeviceContextD3D12Implvirtual
SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil) override finalDiligent::DeviceContextD3D12Implvirtual
DeviceContextBase< IDeviceContextD3D12 >::SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil, Uint32 Dummy=0)Diligent::DeviceContextBase< IDeviceContextD3D12 >inline
SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight) override finalDiligent::DeviceContextD3D12Implvirtual
DeviceContextBase< IDeviceContextD3D12 >::SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 &RTWidth, Uint32 &RTHeight)Diligent::DeviceContextBase< IDeviceContextD3D12 >inline
SetStencilRef(Uint32 StencilRef) override finalDiligent::DeviceContextD3D12Implvirtual
SetSwapChain(ISwapChain *pSwapChain) override finalDiligent::DeviceContextBase< IDeviceContextD3D12 >inlinevirtual
SetVertexBuffers(Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags) override finalDiligent::DeviceContextD3D12Implvirtual
SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight) override finalDiligent::DeviceContextD3D12Implvirtual
DeviceContextBase< IDeviceContextD3D12 >::SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 &RTWidth, Uint32 &RTHeight)Diligent::DeviceContextBase< IDeviceContextD3D12 >inline
TransitionBufferState(IBuffer *pBuffer, D3D12_RESOURCE_STATES State) override finalDiligent::DeviceContextD3D12Implvirtual
TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding) override finalDiligent::DeviceContextD3D12Implvirtual
TransitionTextureState(ITexture *pTexture, D3D12_RESOURCE_STATES State) override finalDiligent::DeviceContextD3D12Implvirtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_device_context_d3_d12_impl.html b/doc/html/class_diligent_1_1_device_context_d3_d12_impl.html new file mode 100644 index 00000000..f215bf67 --- /dev/null +++ b/doc/html/class_diligent_1_1_device_context_d3_d12_impl.html @@ -0,0 +1,1041 @@ + + + + + + + +Diligent Engine API Reference: Diligent::DeviceContextD3D12Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::DeviceContextD3D12Impl Class Reference
+
+
+ +

Implementation of the Diligent::IDeviceContext interface. + More...

+
+Inheritance diagram for Diligent::DeviceContextD3D12Impl:
+
+
+ + +Diligent::DeviceContextBase< IDeviceContextD3D12 > +Diligent::ObjectBase< IDeviceContextD3D12 > +Diligent::RefCountedObject< IDeviceContextD3D12 > +Diligent::IDeviceContextD3D12 +Diligent::IDeviceContext + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual void SetPipelineState (IPipelineState *pPipelineState) override final
 Base implementation of IDeviceContext::SetPipelineState(); caches references to the pipeline state object.
 
virtual void TransitionShaderResources (IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding) override final
 Transitions shader resources to the require states. More...
 
virtual void CommitShaderResources (IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags) override final
 Commits shader resources to the device context. More...
 
virtual void SetStencilRef (Uint32 StencilRef) override final
 Sets the stencil reference value. More...
 
virtual void SetBlendFactors (const float *pBlendFactors=nullptr) override final
 
+virtual void SetVertexBuffers (Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags) override final
 Base implementation of IDeviceContext::SetVertexBuffers(); validates parameters and caches references to the buffers.
 
virtual void InvalidateState () override final
 Invalidates the cached context state. More...
 
+virtual void SetIndexBuffer (IBuffer *pIndexBuffer, Uint32 ByteOffset) override final
 Base implementation of IDeviceContext::SetIndexBuffer(); caches the strong reference to the index buffer.
 
virtual void SetViewports (Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight) override final
 Sets an array of viewports. More...
 
virtual void SetScissorRects (Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight) override final
 Sets active scissor rects. More...
 
virtual void SetRenderTargets (Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil) override final
 Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewport to match the first non-null render target or depth-stencil buffer. More...
 
virtual void Draw (DrawAttribs &DrawAttribs) override final
 Executes a draw command. More...
 
virtual void DispatchCompute (const DispatchComputeAttribs &DispatchAttrs) override final
 Executes a dispatch compute command. More...
 
virtual void ClearDepthStencil (ITextureView *pView, Uint32 ClearFlags, float fDepth, Uint8 Stencil) override final
 Clears a depth-stencil view. More...
 
virtual void ClearRenderTarget (ITextureView *pView, const float *RGBA) override final
 Clears a render target view. More...
 
+virtual void Flush () override final
 Flushes the command buffer.
 
virtual void FinishCommandList (class ICommandList **ppCommandList) override final
 Finishes recording commands and generates a command list. More...
 
virtual void ExecuteCommandList (class ICommandList *pCommandList) override final
 Executes recorded commands in a command list. More...
 
virtual void TransitionTextureState (ITexture *pTexture, D3D12_RESOURCE_STATES State) override final
 Transitions internal D3D12 texture object to a specified state. More...
 
virtual void TransitionBufferState (IBuffer *pBuffer, D3D12_RESOURCE_STATES State) override final
 Transitions internal D3D12 buffer object to a specified state. More...
 
- Public Member Functions inherited from Diligent::DeviceContextBase< IDeviceContextD3D12 >
 DeviceContextBase (IReferenceCounters *pRefCounters, IRenderDevice *pRenderDevice, bool bIsDeferred)
 
+bool CommitShaderResources (IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags, int)
 Base implementation of IDeviceContext::CommitShaderResources(); validates parameters.
 
+void SetViewports (Uint32 NumViewports, const Viewport *pViewports, Uint32 &RTWidth, Uint32 &RTHeight)
 Caches the viewports.
 
+void SetScissorRects (Uint32 NumRects, const Rect *pRects, Uint32 &RTWidth, Uint32 &RTHeight)
 Caches the scissor rects.
 
+bool SetRenderTargets (Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil, Uint32 Dummy=0)
 Caches the render target and depth stencil views. Returns true if any view is different from the cached value and false otherwise.
 
+virtual void SetSwapChain (ISwapChain *pSwapChain) override final
 Sets the strong pointer to the swap chain.
 
+ISwapChainGetSwapChain ()
 Returns the swap chain.
 
+bool IsDefaultFBBound ()
 Returns true if currently bound frame buffer is the default frame buffer.
 
+void GetPipelineState (IPipelineState **ppPSO, float *BlendFactors, Uint32 &StencilRef)
 Returns currently bound pipeline state and blend factors.
 
+void GetRenderTargets (Uint32 &NumRenderTargets, ITextureView **ppRTVs, ITextureView **ppDSV)
 Returns currently bound render targets.
 
+void GetViewports (Uint32 &NumViewports, Viewport *pViewports)
 Returns currently set viewports.
 
+IRenderDeviceGetDevice ()
 Returns the render device.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from Diligent::DeviceContextBase< IDeviceContextD3D12 >
+void GetRenderTargetSize (Uint32 &RTWidth, Uint32 &RTHeight)
 Returns the size of the currently bound render target.
 
+void ClearStateCache ()
 Clears all cached resources.
 
- Protected Attributes inherited from Diligent::DeviceContextBase< IDeviceContextD3D12 >
+RefCntAutoPtr< IRenderDevicem_pDevice
 Strong reference to the device.
 
+RefCntAutoPtr< ISwapChainm_pSwapChain
 Strong reference to the swap chain. Swap chain holds weak reference to the immediate context.
 
+VertexStreamInfo m_VertexStreams [MaxBufferSlots]
 Vertex streams. Every stream holds strong reference to the buffer.
 
+Uint32 m_NumVertexStreams
 Number of bound vertex streams.
 
+RefCntAutoPtr< IPipelineStatem_pPipelineState
 Strong reference to the bound pipeline state object.
 
+RefCntAutoPtr< IBufferm_pIndexBuffer
 Strong reference to the bound index buffer.
 
+Uint32 m_IndexDataStartOffset
 Offset from the beginning of the index buffer to the start of the index data, in bytes.
 
+Uint32 m_StencilRef
 Current stencil reference value.
 
+Float32 m_BlendFactors [4]
 Curent blend factors.
 
+Viewport m_Viewports [MaxRenderTargets]
 Current viewports.
 
+Uint32 m_NumViewports
 Number of current viewports.
 
+Rect m_ScissorRects [MaxRenderTargets]
 Current scissor rects.
 
+Uint32 m_NumScissorRects
 Number of current scissor rects.
 
+RefCntAutoPtr< ITextureViewm_pBoundRenderTargets [MaxRenderTargets]
 Vector of strong references to the bound render targets.
 
+Uint32 m_NumBoundRenderTargets
 Number of bound render targets.
 
+bool m_IsDefaultFramebufferBound
 Flag indicating if default render target & depth-stencil buffer are currently bound.
 
+RefCntAutoPtr< ITextureViewm_pBoundDepthStencil
 Strong references to the bound depth stencil view.
 
+

Detailed Description

+

Implementation of the Diligent::IDeviceContext interface.

+

Member Function Documentation

+ +

◆ ClearDepthStencil()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D12Impl::ClearDepthStencil (ITextureViewpView,
Uint32 ClearFlags,
float fDepth,
Uint8 Stencil 
)
+
+finaloverridevirtual
+
+ +

Clears a depth-stencil view.

+
Parameters
+ + + + + +
[in]pView- Pointer to ITextureView interface to clear. The view type must be Diligent::TEXTURE_VIEW_DEPTH_STENCIL.
[in]ClearFlags- Idicates which parts of the buffer to clear, see Diligent::CLEAR_DEPTH_STENCIL_FLAGS.
[in]fDepth- Value to clear depth part of the view with.
[in]Stencil- Value to clear stencil part of the view with.
+
+
+
Remarks
The full extent of the view is always cleared. Viewport and scissor settings are not applied.
+
Note
The depth-stencil view must be bound to the pipeline for clear operation to be performed.
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ ClearRenderTarget()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D12Impl::ClearRenderTarget (ITextureViewpView,
const float * RGBA 
)
+
+finaloverridevirtual
+
+ +

Clears a render target view.

+
Parameters
+ + + +
[in]pView- Pointer to ITextureView interface to clear. The view type must be Diligent::TEXTURE_VIEW_RENDER_TARGET.
[in]RGBA- A 4-component array that represents the color to fill the render target with. If nullptr is provided, the default array {0,0,0,0} will be used.
+
+
+
Remarks
The full extent of the view is always cleared. Viewport and scissor settings are not applied.
+
Note
The render target view must be bound to the pipeline for clear operation to be performed.
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ CommitShaderResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D12Impl::CommitShaderResources (IShaderResourceBindingpShaderResourceBinding,
Uint32 Flags 
)
+
+finaloverridevirtual
+
+ +

Commits shader resources to the device context.

+
Parameters
+ + + +
[in]pShaderResourceBinding- Shader resource binding whose resources will be committed. If pipeline state contains no shader resources, this parameter can be null.
[in]Flags- Additional flags for the operation. See Diligent::COMMIT_SHADER_RESOURCES_FLAG for a list of allowed values.
+
+
+
Remarks
Pipeline state object that was used to create the shader resource binding must be bound to the pipeline when CommitShaderResources() is called. If no pipeline state object is bound or the pipeline state object does not match shader resource binding, the method will fail.
+ If Diligent::COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES flag is specified, the engine will also transition all shader resources to the correct state. If the flag is not specified, it is assumed that all resources are already in correct states.
+ Resources can be explicitly transitioned to the required states by calling IDeviceContext::TransitionShaderResources()
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ DispatchCompute()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextD3D12Impl::DispatchCompute (const DispatchComputeAttribsDispatchAttrs)
+
+finaloverridevirtual
+
+ +

Executes a dispatch compute command.

+
Parameters
+ + +
[in]DispatchAttrs- Structure describing dispatch command attributes, see DispatchComputeAttribs for details.
+
+
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ Draw()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextD3D12Impl::Draw (DrawAttribsDrawAttribs)
+
+finaloverridevirtual
+
+ +

Executes a draw command.

+
Parameters
+ + +
[in]DrawAttribs- Structure describing draw command attributes, see DrawAttribs for details.
+
+
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ ExecuteCommandList()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextD3D12Impl::ExecuteCommandList (class ICommandListpCommandList)
+
+finaloverridevirtual
+
+ +

Executes recorded commands in a command list.

+
Parameters
+ + +
[in]pCommandList- Pointer to the command list to executre.
+
+
+
Remarks
After command list is executed, it is no longer valid and should be released.
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ FinishCommandList()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextD3D12Impl::FinishCommandList (class ICommandList ** ppCommandList)
+
+finaloverridevirtual
+
+ +

Finishes recording commands and generates a command list.

+
Parameters
+ + +
[out]ppCommandList- Memory location where pointer to the recorded command list will be written.
+
+
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ InvalidateState()

+ +
+
+ + + + + +
+ + + + + + + +
void Diligent::DeviceContextD3D12Impl::InvalidateState ()
+
+finaloverridevirtual
+
+ +

Invalidates the cached context state.

+

This method should be called by say Unity plugin before (or after) issuing draw commands to invalidate cached states

+ +

Implements Diligent::DeviceContextBase< IDeviceContextD3D12 >.

+ +
+
+ +

◆ SetBlendFactors()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextD3D12Impl::SetBlendFactors (const float * pBlendFactors = nullptr)
+
+finaloverridevirtual
+
+
Parameters
+ + +
[in]pBlendFactors- Array of four blend factors, one for each RGBA component. Theses factors are used if the blend state uses one of the Diligent::BLEND_FACTOR_BLEND_FACTOR or Diligent::BLEND_FACTOR_INV_BLEND_FACTOR blend factors. If nullptr is provided, default blend factors array {1,1,1,1} will be used.
+
+
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ SetRenderTargets()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D12Impl::SetRenderTargets (Uint32 NumRenderTargets,
ITextureViewppRenderTargets[],
ITextureViewpDepthStencil 
)
+
+finaloverridevirtual
+
+ +

Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewport to match the first non-null render target or depth-stencil buffer.

+
Parameters
+ + + + +
[in]NumRenderTargets- Number of render targets to bind.
[in]ppRenderTargets- Array of pointers to ITextureView that represent the render targets to bind to the device. The type of each view in the array must be Diligent::TEXTURE_VIEW_RENDER_TARGET.
[in]pDepthStencil- Pointer to the ITextureView that represents the depth stencil to bind to the device. The view type must be Diligent::TEXTURE_VIEW_DEPTH_STENCIL.
+
+
+
Remarks
The device context will keep strong references to all bound render target and depth-stencil views. Thus these views (and consequently referenced textures) cannot be released until they are unbound from the context.
+Any render targets not defined by this call are set to nullptr.
+
+You can set the default render target and depth stencil using the following call:
pContext->SetRenderTargets(0, nullptr, nullptr); 
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ SetScissorRects()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D12Impl::SetScissorRects (Uint32 NumRects,
const RectpRects,
Uint32 RTWidth,
Uint32 RTHeight 
)
+
+finaloverridevirtual
+
+ +

Sets active scissor rects.

+
Parameters
+ + + + + +
[in]NumRects- Number of scissor rectangles to set.
[in]pRects- An array of Rect structures describing the scissor rectangles to bind.
[in]RTWidth- Render target width. If 0 is provided, width of the currently bound render target will be used.
[in]RTHeight- Render target height. If 0 is provided, height of the currently bound render target will be used.
+
+
+
Remarks
DirectX and OpenGL use different window coordinate systems. In DirectX, the coordinate system origin is in the left top corner of the screen with Y axis pointing down. In OpenGL, the origin is in the left bottom corener of the screen with Y axis pointing up. Render target size is required to convert viewport from DirectX to OpenGL coordinate system if OpenGL device is used.
+
+All scissor rects must be set atomically as one operation. Any rects not defined by the call are disabled.
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ SetStencilRef()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextD3D12Impl::SetStencilRef (Uint32 StencilRef)
+
+finaloverridevirtual
+
+ +

Sets the stencil reference value.

+
Parameters
+ + +
[in]StencilRef- Stencil reference value.
+
+
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ SetViewports()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D12Impl::SetViewports (Uint32 NumViewports,
const ViewportpViewports,
Uint32 RTWidth,
Uint32 RTHeight 
)
+
+finaloverridevirtual
+
+ +

Sets an array of viewports.

+
Parameters
+ + + + + +
[in]NumViewports- Number of viewports to set.
[in]pViewports- An array of Viewport structures describing the viewports to bind.
[in]RTWidth- Render target width. If 0 is provided, width of the currently bound render target will be used.
[in]RTHeight-Render target height. If 0 is provided, height of the currently bound render target will be used.
+
+
+
Remarks
DirectX and OpenGL use different window coordinate systems. In DirectX, the coordinate system origin is in the left top corner of the screen with Y axis pointing down. In OpenGL, the origin is in the left bottom corener of the screen with Y axis pointing up. Render target size is required to convert viewport from DirectX to OpenGL coordinate system if OpenGL device is used.
+
+All viewports must be set atomically as one operation. Any viewports not defined by the call are disabled.
+
+You can set the viewport size to match the currently bound render target using the following call:
pContext->SetViewports(1, nullptr, 0, 0); 
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ TransitionBufferState()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D12Impl::TransitionBufferState (IBufferpBuffer,
D3D12_RESOURCE_STATES State 
)
+
+finaloverridevirtual
+
+ +

Transitions internal D3D12 buffer object to a specified state.

+
Parameters
+ + + +
[in]pBuffer- Buffer to transition
[in]State- D3D12 resource state this buffer to transition to
+
+
+ +

Implements Diligent::IDeviceContextD3D12.

+ +
+
+ +

◆ TransitionShaderResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D12Impl::TransitionShaderResources (IPipelineStatepPipelineState,
IShaderResourceBindingpShaderResourceBinding 
)
+
+finaloverridevirtual
+
+ +

Transitions shader resources to the require states.

+
Parameters
+ + + +
[in]pPipelineState- Pipeline state object that was used to create the shader resource binding.
[in]pShaderResourceBinding- Shader resource binding whose resources will be transitioned.
+
+
+
Remarks
This method explicitly transitiones all resources to the correct states. If this method was called, there is no need to specify Diligent::COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES when calling IDeviceContext::CommitShaderResources()
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ TransitionTextureState()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextD3D12Impl::TransitionTextureState (ITexturepTexture,
D3D12_RESOURCE_STATES State 
)
+
+finaloverridevirtual
+
+ +

Transitions internal D3D12 texture object to a specified state.

+
Parameters
+ + + +
[in]pTexture- texture to transition
[in]State- D3D12 resource state this texture to transition to
+
+
+ +

Implements Diligent::IDeviceContextD3D12.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_device_context_d3_d12_impl.png b/doc/html/class_diligent_1_1_device_context_d3_d12_impl.png new file mode 100644 index 00000000..bfea0785 Binary files /dev/null and b/doc/html/class_diligent_1_1_device_context_d3_d12_impl.png differ diff --git a/doc/html/class_diligent_1_1_device_context_g_l_impl-members.html b/doc/html/class_diligent_1_1_device_context_g_l_impl-members.html new file mode 100644 index 00000000..dd6cb15e --- /dev/null +++ b/doc/html/class_diligent_1_1_device_context_g_l_impl-members.html @@ -0,0 +1,137 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::DeviceContextGLImpl Member List
+
+
+ +

This is the complete list of members for Diligent::DeviceContextGLImpl, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ClearDepthStencil(ITextureView *pView, Uint32 ClearFlags, float fDepth, Uint8 Stencil) override finalDiligent::DeviceContextGLImplvirtual
ClearRenderTarget(ITextureView *pView, const float *RGBA) override finalDiligent::DeviceContextGLImplvirtual
ClearStateCache()Diligent::DeviceContextBase< IDeviceContextGL >inlineprotected
CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags) override finalDiligent::DeviceContextGLImplvirtual
DeviceContextBase< IDeviceContextGL >::CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags, int)Diligent::DeviceContextBase< IDeviceContextGL >inline
DeviceContextBase(IReferenceCounters *pRefCounters, IRenderDevice *pRenderDevice, bool bIsDeferred)Diligent::DeviceContextBase< IDeviceContextGL >inline
DispatchCompute(const DispatchComputeAttribs &DispatchAttrs) override finalDiligent::DeviceContextGLImplvirtual
Draw(DrawAttribs &DrawAttribs) override finalDiligent::DeviceContextGLImplvirtual
ExecuteCommandList(class ICommandList *pCommandList) override finalDiligent::DeviceContextGLImplvirtual
FinishCommandList(class ICommandList **ppCommandList) override finalDiligent::DeviceContextGLImplvirtual
Flush() override finalDiligent::DeviceContextGLImplvirtual
GetDevice()Diligent::DeviceContextBase< IDeviceContextGL >inline
GetPipelineState(IPipelineState **ppPSO, float *BlendFactors, Uint32 &StencilRef)Diligent::DeviceContextBase< IDeviceContextGL >inline
GetRenderTargets(Uint32 &NumRenderTargets, ITextureView **ppRTVs, ITextureView **ppDSV)Diligent::DeviceContextBase< IDeviceContextGL >inline
GetRenderTargetSize(Uint32 &RTWidth, Uint32 &RTHeight)Diligent::DeviceContextBase< IDeviceContextGL >inlineprotected
GetSwapChain()Diligent::DeviceContextBase< IDeviceContextGL >inline
GetViewports(Uint32 &NumViewports, Viewport *pViewports)Diligent::DeviceContextBase< IDeviceContextGL >inline
InvalidateState() override finalDiligent::DeviceContextGLImplvirtual
IsDefaultFBBound()Diligent::DeviceContextBase< IDeviceContextGL >inline
m_BlendFactorsDiligent::DeviceContextBase< IDeviceContextGL >protected
m_IndexDataStartOffsetDiligent::DeviceContextBase< IDeviceContextGL >protected
m_IsDefaultFramebufferBoundDiligent::DeviceContextBase< IDeviceContextGL >protected
m_NumBoundRenderTargetsDiligent::DeviceContextBase< IDeviceContextGL >protected
m_NumScissorRectsDiligent::DeviceContextBase< IDeviceContextGL >protected
m_NumVertexStreamsDiligent::DeviceContextBase< IDeviceContextGL >protected
m_NumViewportsDiligent::DeviceContextBase< IDeviceContextGL >protected
m_pBoundDepthStencilDiligent::DeviceContextBase< IDeviceContextGL >protected
m_pBoundRenderTargetsDiligent::DeviceContextBase< IDeviceContextGL >protected
m_pDeviceDiligent::DeviceContextBase< IDeviceContextGL >protected
m_pIndexBufferDiligent::DeviceContextBase< IDeviceContextGL >protected
m_pPipelineStateDiligent::DeviceContextBase< IDeviceContextGL >protected
m_pSwapChainDiligent::DeviceContextBase< IDeviceContextGL >protected
m_ScissorRectsDiligent::DeviceContextBase< IDeviceContextGL >protected
m_StencilRefDiligent::DeviceContextBase< IDeviceContextGL >protected
m_VertexStreamsDiligent::DeviceContextBase< IDeviceContextGL >protected
m_ViewportsDiligent::DeviceContextBase< IDeviceContextGL >protected
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override finalDiligent::DeviceContextGLImplvirtual
SetBlendFactors(const float *pBlendFactors=nullptr) override finalDiligent::DeviceContextGLImplvirtual
SetIndexBuffer(IBuffer *pIndexBuffer, Uint32 ByteOffset) override finalDiligent::DeviceContextGLImplvirtual
SetPipelineState(IPipelineState *pPipelineState) override finalDiligent::DeviceContextGLImplvirtual
SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil) override finalDiligent::DeviceContextGLImplvirtual
DeviceContextBase< IDeviceContextGL >::SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil, Uint32 Dummy=0)Diligent::DeviceContextBase< IDeviceContextGL >inline
SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight) override finalDiligent::DeviceContextGLImplvirtual
DeviceContextBase< IDeviceContextGL >::SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 &RTWidth, Uint32 &RTHeight)Diligent::DeviceContextBase< IDeviceContextGL >inline
SetStencilRef(Uint32 StencilRef) override finalDiligent::DeviceContextGLImplvirtual
SetSwapChain(ISwapChain *pSwapChain) override finalDiligent::DeviceContextBase< IDeviceContextGL >inlinevirtual
SetVertexBuffers(Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags) override finalDiligent::DeviceContextGLImplvirtual
SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight) override finalDiligent::DeviceContextGLImplvirtual
DeviceContextBase< IDeviceContextGL >::SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 &RTWidth, Uint32 &RTHeight)Diligent::DeviceContextBase< IDeviceContextGL >inline
TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding) override finalDiligent::DeviceContextGLImplvirtual
UpdateCurrentGLContext() override finalDiligent::DeviceContextGLImplvirtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_device_context_g_l_impl.html b/doc/html/class_diligent_1_1_device_context_g_l_impl.html new file mode 100644 index 00000000..8b22ce18 --- /dev/null +++ b/doc/html/class_diligent_1_1_device_context_g_l_impl.html @@ -0,0 +1,975 @@ + + + + + + + +Diligent Engine API Reference: Diligent::DeviceContextGLImpl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::DeviceContextGLImpl Class Reference
+
+
+ +

Implementation of the Diligent::IDeviceContextGL interface. + More...

+
+Inheritance diagram for Diligent::DeviceContextGLImpl:
+
+
+ + +Diligent::DeviceContextBase< IDeviceContextGL > +Diligent::ObjectBase< IDeviceContextGL > +Diligent::RefCountedObject< IDeviceContextGL > +Diligent::IDeviceContextGL +Diligent::IDeviceContext + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual void SetPipelineState (IPipelineState *pPipelineState) override final
 Base implementation of IDeviceContext::SetPipelineState(); caches references to the pipeline state object.
 
virtual void TransitionShaderResources (IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding) override final
 Transitions shader resources to the require states. More...
 
virtual void CommitShaderResources (IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags) override final
 Commits shader resources to the device context. More...
 
virtual void SetStencilRef (Uint32 StencilRef) override final
 Sets the stencil reference value. More...
 
virtual void SetBlendFactors (const float *pBlendFactors=nullptr) override final
 
+virtual void SetVertexBuffers (Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags) override final
 Base implementation of IDeviceContext::SetVertexBuffers(); validates parameters and caches references to the buffers.
 
virtual void InvalidateState () override final
 Invalidates the cached context state. More...
 
+virtual void SetIndexBuffer (IBuffer *pIndexBuffer, Uint32 ByteOffset) override final
 Base implementation of IDeviceContext::SetIndexBuffer(); caches the strong reference to the index buffer.
 
virtual void SetViewports (Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight) override final
 Sets an array of viewports. More...
 
virtual void SetScissorRects (Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight) override final
 Sets active scissor rects. More...
 
virtual void SetRenderTargets (Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil) override final
 Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewport to match the first non-null render target or depth-stencil buffer. More...
 
virtual void Draw (DrawAttribs &DrawAttribs) override final
 Executes a draw command. More...
 
virtual void DispatchCompute (const DispatchComputeAttribs &DispatchAttrs) override final
 Executes a dispatch compute command. More...
 
virtual void ClearDepthStencil (ITextureView *pView, Uint32 ClearFlags, float fDepth, Uint8 Stencil) override final
 Clears a depth-stencil view. More...
 
virtual void ClearRenderTarget (ITextureView *pView, const float *RGBA) override final
 Clears a render target view. More...
 
+virtual void Flush () override final
 Flushes the command buffer.
 
virtual void FinishCommandList (class ICommandList **ppCommandList) override final
 Finishes recording commands and generates a command list. More...
 
virtual void ExecuteCommandList (class ICommandList *pCommandList) override final
 Executes recorded commands in a command list. More...
 
virtual bool UpdateCurrentGLContext () override final
 Attaches to the active GL context in the thread. More...
 
- Public Member Functions inherited from Diligent::DeviceContextBase< IDeviceContextGL >
 DeviceContextBase (IReferenceCounters *pRefCounters, IRenderDevice *pRenderDevice, bool bIsDeferred)
 
+bool CommitShaderResources (IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags, int)
 Base implementation of IDeviceContext::CommitShaderResources(); validates parameters.
 
+void SetViewports (Uint32 NumViewports, const Viewport *pViewports, Uint32 &RTWidth, Uint32 &RTHeight)
 Caches the viewports.
 
+void SetScissorRects (Uint32 NumRects, const Rect *pRects, Uint32 &RTWidth, Uint32 &RTHeight)
 Caches the scissor rects.
 
+bool SetRenderTargets (Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil, Uint32 Dummy=0)
 Caches the render target and depth stencil views. Returns true if any view is different from the cached value and false otherwise.
 
+virtual void SetSwapChain (ISwapChain *pSwapChain) override final
 Sets the strong pointer to the swap chain.
 
+ISwapChainGetSwapChain ()
 Returns the swap chain.
 
+bool IsDefaultFBBound ()
 Returns true if currently bound frame buffer is the default frame buffer.
 
+void GetPipelineState (IPipelineState **ppPSO, float *BlendFactors, Uint32 &StencilRef)
 Returns currently bound pipeline state and blend factors.
 
+void GetRenderTargets (Uint32 &NumRenderTargets, ITextureView **ppRTVs, ITextureView **ppDSV)
 Returns currently bound render targets.
 
+void GetViewports (Uint32 &NumViewports, Viewport *pViewports)
 Returns currently set viewports.
 
+IRenderDeviceGetDevice ()
 Returns the render device.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from Diligent::DeviceContextBase< IDeviceContextGL >
+void GetRenderTargetSize (Uint32 &RTWidth, Uint32 &RTHeight)
 Returns the size of the currently bound render target.
 
+void ClearStateCache ()
 Clears all cached resources.
 
- Protected Attributes inherited from Diligent::DeviceContextBase< IDeviceContextGL >
+RefCntAutoPtr< IRenderDevicem_pDevice
 Strong reference to the device.
 
+RefCntAutoPtr< ISwapChainm_pSwapChain
 Strong reference to the swap chain. Swap chain holds weak reference to the immediate context.
 
+VertexStreamInfo m_VertexStreams [MaxBufferSlots]
 Vertex streams. Every stream holds strong reference to the buffer.
 
+Uint32 m_NumVertexStreams
 Number of bound vertex streams.
 
+RefCntAutoPtr< IPipelineStatem_pPipelineState
 Strong reference to the bound pipeline state object.
 
+RefCntAutoPtr< IBufferm_pIndexBuffer
 Strong reference to the bound index buffer.
 
+Uint32 m_IndexDataStartOffset
 Offset from the beginning of the index buffer to the start of the index data, in bytes.
 
+Uint32 m_StencilRef
 Current stencil reference value.
 
+Float32 m_BlendFactors [4]
 Curent blend factors.
 
+Viewport m_Viewports [MaxRenderTargets]
 Current viewports.
 
+Uint32 m_NumViewports
 Number of current viewports.
 
+Rect m_ScissorRects [MaxRenderTargets]
 Current scissor rects.
 
+Uint32 m_NumScissorRects
 Number of current scissor rects.
 
+RefCntAutoPtr< ITextureViewm_pBoundRenderTargets [MaxRenderTargets]
 Vector of strong references to the bound render targets.
 
+Uint32 m_NumBoundRenderTargets
 Number of bound render targets.
 
+bool m_IsDefaultFramebufferBound
 Flag indicating if default render target & depth-stencil buffer are currently bound.
 
+RefCntAutoPtr< ITextureViewm_pBoundDepthStencil
 Strong references to the bound depth stencil view.
 
+

Detailed Description

+

Implementation of the Diligent::IDeviceContextGL interface.

+

Member Function Documentation

+ +

◆ ClearDepthStencil()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextGLImpl::ClearDepthStencil (ITextureViewpView,
Uint32 ClearFlags,
float fDepth,
Uint8 Stencil 
)
+
+finaloverridevirtual
+
+ +

Clears a depth-stencil view.

+
Parameters
+ + + + + +
[in]pView- Pointer to ITextureView interface to clear. The view type must be Diligent::TEXTURE_VIEW_DEPTH_STENCIL.
[in]ClearFlags- Idicates which parts of the buffer to clear, see Diligent::CLEAR_DEPTH_STENCIL_FLAGS.
[in]fDepth- Value to clear depth part of the view with.
[in]Stencil- Value to clear stencil part of the view with.
+
+
+
Remarks
The full extent of the view is always cleared. Viewport and scissor settings are not applied.
+
Note
The depth-stencil view must be bound to the pipeline for clear operation to be performed.
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ ClearRenderTarget()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextGLImpl::ClearRenderTarget (ITextureViewpView,
const float * RGBA 
)
+
+finaloverridevirtual
+
+ +

Clears a render target view.

+
Parameters
+ + + +
[in]pView- Pointer to ITextureView interface to clear. The view type must be Diligent::TEXTURE_VIEW_RENDER_TARGET.
[in]RGBA- A 4-component array that represents the color to fill the render target with. If nullptr is provided, the default array {0,0,0,0} will be used.
+
+
+
Remarks
The full extent of the view is always cleared. Viewport and scissor settings are not applied.
+
Note
The render target view must be bound to the pipeline for clear operation to be performed.
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ CommitShaderResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextGLImpl::CommitShaderResources (IShaderResourceBindingpShaderResourceBinding,
Uint32 Flags 
)
+
+finaloverridevirtual
+
+ +

Commits shader resources to the device context.

+
Parameters
+ + + +
[in]pShaderResourceBinding- Shader resource binding whose resources will be committed. If pipeline state contains no shader resources, this parameter can be null.
[in]Flags- Additional flags for the operation. See Diligent::COMMIT_SHADER_RESOURCES_FLAG for a list of allowed values.
+
+
+
Remarks
Pipeline state object that was used to create the shader resource binding must be bound to the pipeline when CommitShaderResources() is called. If no pipeline state object is bound or the pipeline state object does not match shader resource binding, the method will fail.
+ If Diligent::COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES flag is specified, the engine will also transition all shader resources to the correct state. If the flag is not specified, it is assumed that all resources are already in correct states.
+ Resources can be explicitly transitioned to the required states by calling IDeviceContext::TransitionShaderResources()
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ DispatchCompute()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextGLImpl::DispatchCompute (const DispatchComputeAttribsDispatchAttrs)
+
+finaloverridevirtual
+
+ +

Executes a dispatch compute command.

+
Parameters
+ + +
[in]DispatchAttrs- Structure describing dispatch command attributes, see DispatchComputeAttribs for details.
+
+
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ Draw()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextGLImpl::Draw (DrawAttribsDrawAttribs)
+
+finaloverridevirtual
+
+ +

Executes a draw command.

+
Parameters
+ + +
[in]DrawAttribs- Structure describing draw command attributes, see DrawAttribs for details.
+
+
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ ExecuteCommandList()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextGLImpl::ExecuteCommandList (class ICommandListpCommandList)
+
+finaloverridevirtual
+
+ +

Executes recorded commands in a command list.

+
Parameters
+ + +
[in]pCommandList- Pointer to the command list to executre.
+
+
+
Remarks
After command list is executed, it is no longer valid and should be released.
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ FinishCommandList()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextGLImpl::FinishCommandList (class ICommandList ** ppCommandList)
+
+finaloverridevirtual
+
+ +

Finishes recording commands and generates a command list.

+
Parameters
+ + +
[out]ppCommandList- Memory location where pointer to the recorded command list will be written.
+
+
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ InvalidateState()

+ +
+
+ + + + + +
+ + + + + + + +
void Diligent::DeviceContextGLImpl::InvalidateState ()
+
+finaloverridevirtual
+
+ +

Invalidates the cached context state.

+

This method should be called by say Unity plugin before (or after) issuing draw commands to invalidate cached states

+ +

Implements Diligent::DeviceContextBase< IDeviceContextGL >.

+ +
+
+ +

◆ SetBlendFactors()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextGLImpl::SetBlendFactors (const float * pBlendFactors = nullptr)
+
+finaloverridevirtual
+
+
Parameters
+ + +
[in]pBlendFactors- Array of four blend factors, one for each RGBA component. Theses factors are used if the blend state uses one of the Diligent::BLEND_FACTOR_BLEND_FACTOR or Diligent::BLEND_FACTOR_INV_BLEND_FACTOR blend factors. If nullptr is provided, default blend factors array {1,1,1,1} will be used.
+
+
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ SetRenderTargets()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextGLImpl::SetRenderTargets (Uint32 NumRenderTargets,
ITextureViewppRenderTargets[],
ITextureViewpDepthStencil 
)
+
+finaloverridevirtual
+
+ +

Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewport to match the first non-null render target or depth-stencil buffer.

+
Parameters
+ + + + +
[in]NumRenderTargets- Number of render targets to bind.
[in]ppRenderTargets- Array of pointers to ITextureView that represent the render targets to bind to the device. The type of each view in the array must be Diligent::TEXTURE_VIEW_RENDER_TARGET.
[in]pDepthStencil- Pointer to the ITextureView that represents the depth stencil to bind to the device. The view type must be Diligent::TEXTURE_VIEW_DEPTH_STENCIL.
+
+
+
Remarks
The device context will keep strong references to all bound render target and depth-stencil views. Thus these views (and consequently referenced textures) cannot be released until they are unbound from the context.
+Any render targets not defined by this call are set to nullptr.
+
+You can set the default render target and depth stencil using the following call:
pContext->SetRenderTargets(0, nullptr, nullptr); 
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ SetScissorRects()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextGLImpl::SetScissorRects (Uint32 NumRects,
const RectpRects,
Uint32 RTWidth,
Uint32 RTHeight 
)
+
+finaloverridevirtual
+
+ +

Sets active scissor rects.

+
Parameters
+ + + + + +
[in]NumRects- Number of scissor rectangles to set.
[in]pRects- An array of Rect structures describing the scissor rectangles to bind.
[in]RTWidth- Render target width. If 0 is provided, width of the currently bound render target will be used.
[in]RTHeight- Render target height. If 0 is provided, height of the currently bound render target will be used.
+
+
+
Remarks
DirectX and OpenGL use different window coordinate systems. In DirectX, the coordinate system origin is in the left top corner of the screen with Y axis pointing down. In OpenGL, the origin is in the left bottom corener of the screen with Y axis pointing up. Render target size is required to convert viewport from DirectX to OpenGL coordinate system if OpenGL device is used.
+
+All scissor rects must be set atomically as one operation. Any rects not defined by the call are disabled.
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ SetStencilRef()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::DeviceContextGLImpl::SetStencilRef (Uint32 StencilRef)
+
+finaloverridevirtual
+
+ +

Sets the stencil reference value.

+
Parameters
+ + +
[in]StencilRef- Stencil reference value.
+
+
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ SetViewports()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextGLImpl::SetViewports (Uint32 NumViewports,
const ViewportpViewports,
Uint32 RTWidth,
Uint32 RTHeight 
)
+
+finaloverridevirtual
+
+ +

Sets an array of viewports.

+
Parameters
+ + + + + +
[in]NumViewports- Number of viewports to set.
[in]pViewports- An array of Viewport structures describing the viewports to bind.
[in]RTWidth- Render target width. If 0 is provided, width of the currently bound render target will be used.
[in]RTHeight-Render target height. If 0 is provided, height of the currently bound render target will be used.
+
+
+
Remarks
DirectX and OpenGL use different window coordinate systems. In DirectX, the coordinate system origin is in the left top corner of the screen with Y axis pointing down. In OpenGL, the origin is in the left bottom corener of the screen with Y axis pointing up. Render target size is required to convert viewport from DirectX to OpenGL coordinate system if OpenGL device is used.
+
+All viewports must be set atomically as one operation. Any viewports not defined by the call are disabled.
+
+You can set the viewport size to match the currently bound render target using the following call:
pContext->SetViewports(1, nullptr, 0, 0); 
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ TransitionShaderResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::DeviceContextGLImpl::TransitionShaderResources (IPipelineStatepPipelineState,
IShaderResourceBindingpShaderResourceBinding 
)
+
+finaloverridevirtual
+
+ +

Transitions shader resources to the require states.

+
Parameters
+ + + +
[in]pPipelineState- Pipeline state object that was used to create the shader resource binding.
[in]pShaderResourceBinding- Shader resource binding whose resources will be transitioned.
+
+
+
Remarks
This method explicitly transitiones all resources to the correct states. If this method was called, there is no need to specify Diligent::COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES when calling IDeviceContext::CommitShaderResources()
+ +

Implements Diligent::IDeviceContext.

+ +
+
+ +

◆ UpdateCurrentGLContext()

+ +
+
+ + + + + +
+ + + + + + + +
bool Diligent::DeviceContextGLImpl::UpdateCurrentGLContext ()
+
+finaloverridevirtual
+
+ +

Attaches to the active GL context in the thread.

+

If an application uses multiple GL contexts, this method must be called before any other command to let the engine update active context every time when control flow is passed over from the main application

+
Returns
false if there is no active GL context, and true otherwise
+ +

Implements Diligent::IDeviceContextGL.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_device_context_g_l_impl.png b/doc/html/class_diligent_1_1_device_context_g_l_impl.png new file mode 100644 index 00000000..535ede73 Binary files /dev/null and b/doc/html/class_diligent_1_1_device_context_g_l_impl.png differ diff --git a/doc/html/class_diligent_1_1_device_object_base-members.html b/doc/html/class_diligent_1_1_device_object_base-members.html new file mode 100644 index 00000000..7d65107d --- /dev/null +++ b/doc/html/class_diligent_1_1_device_object_base-members.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::DeviceObjectBase< BaseInterface, ObjectDescType > Member List
+
+
+ +

This is the complete list of members for Diligent::DeviceObjectBase< BaseInterface, ObjectDescType >, including all inherited members.

+ + + + + +
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ObjectDescType &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< BaseInterface, ObjectDescType >inline
GetUniqueID() constDiligent::DeviceObjectBase< BaseInterface, ObjectDescType >inline
m_DescDiligent::DeviceObjectBase< BaseInterface, ObjectDescType >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< BaseInterface, ObjectDescType >protected
+ + + + + diff --git a/doc/html/class_diligent_1_1_device_object_base.html b/doc/html/class_diligent_1_1_device_object_base.html new file mode 100644 index 00000000..3493aa35 --- /dev/null +++ b/doc/html/class_diligent_1_1_device_object_base.html @@ -0,0 +1,243 @@ + + + + + + + +Diligent Engine API Reference: Diligent::DeviceObjectBase< BaseInterface, ObjectDescType > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::DeviceObjectBase< BaseInterface, ObjectDescType > Class Template Reference
+
+
+ +

Template class implementing base functionality for a device object. + More...

+
+Inheritance diagram for Diligent::DeviceObjectBase< BaseInterface, ObjectDescType >:
+
+
+ + +Diligent::ObjectBase< BaseInterface > +Diligent::RefCountedObject< BaseInterface > + +
+ + + + + + + +

+Public Member Functions

 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ObjectDescType &ObjDesc, bool bIsDeviceInternal=false)
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
+ + + + + + + +

+Protected Attributes

const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+ObjectDescType m_Desc
 Object description.
 
+

Detailed Description

+

template<class BaseInterface, typename ObjectDescType>
+class Diligent::DeviceObjectBase< BaseInterface, ObjectDescType >

+ +

Template class implementing base functionality for a device object.

+

Constructor & Destructor Documentation

+ +

◆ DeviceObjectBase()

+ +
+
+
+template<class BaseInterface, typename ObjectDescType>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Diligent::DeviceObjectBase< BaseInterface, ObjectDescType >::DeviceObjectBase (IReferenceCounters * pRefCounters,
IRenderDevicepDevice,
const ObjectDescType & ObjDesc,
bool bIsDeviceInternal = false 
)
+
+inline
+
+
Parameters
+ + + + + +
pRefCounters- reference counters object that controls the lifetime of this device object
pDevice- pointer to the render device.
ObjDesc- object description.
bIsDeviceInternal- flag indicating if the object is an internal device object and must not keep a strong reference to the device.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ GetUniqueID()

+ +
+
+
+template<class BaseInterface, typename ObjectDescType>
+ + + + + +
+ + + + + + + +
UniqueIdentifier Diligent::DeviceObjectBase< BaseInterface, ObjectDescType >::GetUniqueID () const
+
+inline
+
+ +

Returns unique identifier.

+
Note
This unique ID is used to unambiguously identify device object for tracking purposes. Niether GL handle nor pointer could be safely used for this purpose as both GL reuses released handles and the OS reuses released pointers
+ +
+
+

Member Data Documentation

+ +

◆ m_ObjectNameCopy

+ +
+
+
+template<class BaseInterface, typename ObjectDescType>
+ + + + + +
+ + + + +
const String Diligent::DeviceObjectBase< BaseInterface, ObjectDescType >::m_ObjectNameCopy
+
+protected
+
+ +

Copy of a device object name.

+

When new object is created, its description structure is copied to m_Desc, the name is copied to m_ObjectNameCopy, and m_Desc.Name pointer is set to m_ObjectNameCopy.c_str().

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_device_object_base.png b/doc/html/class_diligent_1_1_device_object_base.png new file mode 100644 index 00000000..666b5877 Binary files /dev/null and b/doc/html/class_diligent_1_1_device_object_base.png differ diff --git a/doc/html/class_diligent_1_1_fixed_block_memory_allocator-members.html b/doc/html/class_diligent_1_1_fixed_block_memory_allocator-members.html new file mode 100644 index 00000000..ccf2fd46 --- /dev/null +++ b/doc/html/class_diligent_1_1_fixed_block_memory_allocator-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::FixedBlockMemoryAllocator Member List
+
+
+ +

This is the complete list of members for Diligent::FixedBlockMemoryAllocator, including all inherited members.

+ + + +
Allocate(size_t Size, const Char *dbgDescription, const char *dbgFileName, const Int32 dbgLineNumber) override finalDiligent::FixedBlockMemoryAllocatorvirtual
Free(void *Ptr) override finalDiligent::FixedBlockMemoryAllocatorvirtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_fixed_block_memory_allocator.html b/doc/html/class_diligent_1_1_fixed_block_memory_allocator.html new file mode 100644 index 00000000..316acfb7 --- /dev/null +++ b/doc/html/class_diligent_1_1_fixed_block_memory_allocator.html @@ -0,0 +1,105 @@ + + + + + + + +Diligent Engine API Reference: Diligent::FixedBlockMemoryAllocator Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::FixedBlockMemoryAllocator Class Reference
+
+
+ +

Memory allocator that allocates memory in a fixed-size chunks. + More...

+ +

Inherits IMemoryAllocator.

+ + + + + + + + +

+Public Member Functions

+virtual void * Allocate (size_t Size, const Char *dbgDescription, const char *dbgFileName, const Int32 dbgLineNumber) override final
 Allocates block of memory.
 
+virtual void Free (void *Ptr) override final
 Releases memory.
 
+

Detailed Description

+

Memory allocator that allocates memory in a fixed-size chunks.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_fixed_block_memory_allocator.png b/doc/html/class_diligent_1_1_fixed_block_memory_allocator.png new file mode 100644 index 00000000..a89ed7ad Binary files /dev/null and b/doc/html/class_diligent_1_1_fixed_block_memory_allocator.png differ diff --git a/doc/html/class_diligent_1_1_h_l_s_l2_g_l_s_l_converter_object-members.html b/doc/html/class_diligent_1_1_h_l_s_l2_g_l_s_l_converter_object-members.html new file mode 100644 index 00000000..2e4714ad --- /dev/null +++ b/doc/html/class_diligent_1_1_h_l_s_l2_g_l_s_l_converter_object-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::HLSL2GLSLConverterObject Member List
+
+
+ +

This is the complete list of members for Diligent::HLSL2GLSLConverterObject, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_h_l_s_l2_g_l_s_l_converter_object.html b/doc/html/class_diligent_1_1_h_l_s_l2_g_l_s_l_converter_object.html new file mode 100644 index 00000000..abba1df0 --- /dev/null +++ b/doc/html/class_diligent_1_1_h_l_s_l2_g_l_s_l_converter_object.html @@ -0,0 +1,120 @@ + + + + + + + +Diligent Engine API Reference: Diligent::HLSL2GLSLConverterObject Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::HLSL2GLSLConverterObject Class Reference
+
+
+ +

Implementation of the Diligent::IHLSL2GLSLConverter interface. + More...

+
+Inheritance diagram for Diligent::HLSL2GLSLConverterObject:
+
+
+ + +Diligent::ObjectBase< IHLSL2GLSLConverter > +Diligent::RefCountedObject< IHLSL2GLSLConverter > +Diligent::IHLSL2GLSLConverter +Diligent::IObject + +
+ + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::ObjectBase< IHLSL2GLSLConverter >
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)
 
- Public Member Functions inherited from Diligent::RefCountedObject< IHLSL2GLSLConverter >
+virtual IReferenceCountersGetReferenceCounters () const override final
 
+virtual CounterValueType AddRef () override final
 
+virtual CounterValueType Release () override
 
+

Detailed Description

+

Implementation of the Diligent::IHLSL2GLSLConverter interface.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_h_l_s_l2_g_l_s_l_converter_object.png b/doc/html/class_diligent_1_1_h_l_s_l2_g_l_s_l_converter_object.png new file mode 100644 index 00000000..224c12b3 Binary files /dev/null and b/doc/html/class_diligent_1_1_h_l_s_l2_g_l_s_l_converter_object.png differ diff --git a/doc/html/class_diligent_1_1_i_buffer-members.html b/doc/html/class_diligent_1_1_i_buffer-members.html new file mode 100644 index 00000000..7bf14a89 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer-members.html @@ -0,0 +1,96 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IBuffer Member List
+
+
+ +

This is the complete list of members for Diligent::IBuffer, including all inherited members.

+ + + + + + + + + + + +
CopyData(IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size)=0Diligent::IBufferpure virtual
CreateView(const struct BufferViewDesc &ViewDesc, class IBufferView **ppView)=0Diligent::IBufferpure virtual
GetDefaultView(BUFFER_VIEW_TYPE ViewType)=0Diligent::IBufferpure virtual
GetDesc() const =0Diligent::IBufferpure virtual
GetNativeHandle()=0Diligent::IBufferpure virtual
Map(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData)=0Diligent::IBufferpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IBufferpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
Unmap(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags)=0Diligent::IBufferpure virtual
UpdateData(class IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData)=0Diligent::IBufferpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer.html b/doc/html/class_diligent_1_1_i_buffer.html new file mode 100644 index 00000000..4c6688e9 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer.html @@ -0,0 +1,522 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IBuffer Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IBuffer Class Referenceabstract
+
+
+ +

Buffer interface. + More...

+
+Inheritance diagram for Diligent::IBuffer:
+
+
+ + +Diligent::IDeviceObject +Diligent::IBufferD3D11 +Diligent::IBufferD3D12 +Diligent::IBufferGL +Diligent::RefCountedObject< IBufferD3D11 > +Diligent::RefCountedObject< IBufferD3D12 > +Diligent::RefCountedObject< IBufferGL > +Diligent::ObjectBase< IBufferD3D11 > +Diligent::ObjectBase< IBufferD3D12 > +Diligent::ObjectBase< IBufferGL > +Diligent::DeviceObjectBase< IBufferD3D11, BufferDesc > +Diligent::DeviceObjectBase< IBufferD3D12, BufferDesc > +Diligent::DeviceObjectBase< IBufferGL, BufferDesc > +Diligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator > +Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator > +Diligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator > +Diligent::BufferD3D11Impl +Diligent::BufferD3D12Impl +Diligent::BufferGLImpl + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const BufferDescGetDesc () const =0
 Returns the buffer description used to create the object.
 
virtual void UpdateData (class IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData)=0
 Updates the data in the buffer. More...
 
virtual void CopyData (IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size)=0
 Copies the data from other buffer. More...
 
virtual void Map (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData)=0
 Maps the buffer. More...
 
virtual void Unmap (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags)=0
 Unmaps the previously mapped buffer. More...
 
virtual void CreateView (const struct BufferViewDesc &ViewDesc, class IBufferView **ppView)=0
 Creates a new buffer view. More...
 
virtual IBufferViewGetDefaultView (BUFFER_VIEW_TYPE ViewType)=0
 Returns the pointer to the default view. More...
 
virtual void * GetNativeHandle ()=0
 Returns native buffer handle specific to the underlying graphics API. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Buffer interface.

+

Defines the methods to manipulate a buffer object

+

Member Function Documentation

+ +

◆ CopyData()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IBuffer::CopyData (IDeviceContextpContext,
IBufferpSrcBuffer,
Uint32 SrcOffset,
Uint32 DstOffset,
Uint32 Size 
)
+
+pure virtual
+
+ +

Copies the data from other buffer.

+
Parameters
+ + + + + + +
[in]pContext- Pointer to the device context interface to be used to perform the operation.
[in]pSrcBuffer- Source buffer to copy data from.
[in]SrcOffset- Offset in bytes from the beginning of the source buffer to the beginning of data to copy.
[in]DstOffset- Offset in bytes from the beginning of the destination buffer to the beginning of the destination region.
[in]Size- Size in bytes of data to copy.
+
+
+ +

Implemented in Diligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >, Diligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >, Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >, Diligent::BufferD3D11Impl, Diligent::BufferGLImpl, and Diligent::BufferD3D12Impl.

+ +
+
+ +

◆ CreateView()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IBuffer::CreateView (const struct BufferViewDescViewDesc,
class IBufferView ** ppView 
)
+
+pure virtual
+
+ +

Creates a new buffer view.

+
Parameters
+ + + +
[in]ViewDesc- View description. See Diligent::BufferViewDesc for details.
[out]ppView- Address of the memory location where the pointer to the view interface will be written to.
+
+
+
Remarks
To create a view addressing the entire buffer, set only BufferViewDesc::ViewType member of the ViewDesc structure and leave all other members in their default values.
+ Buffer view will contain strong reference to the buffer, so the buffer will not be destroyed until all views are released.
+ The function calls AddRef() for the created interface, so it must be released by a call to Release() when it is no longer needed.
+ +

Implemented in Diligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >, Diligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >, and Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >.

+ +
+
+ +

◆ GetDefaultView()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual IBufferView* Diligent::IBuffer::GetDefaultView (BUFFER_VIEW_TYPE ViewType)
+
+pure virtual
+
+ +

Returns the pointer to the default view.

+
Parameters
+ + +
[in]ViewType- Type of the requested view. See Diligent::BUFFER_VIEW_TYPE.
+
+
+
Returns
Pointer to the interface
+
Note
The function does not increase the reference counter for the returned interface, so Release() must NOT be called.
+ +

Implemented in Diligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >, Diligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >, and Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >.

+ +
+
+ +

◆ GetNativeHandle()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void* Diligent::IBuffer::GetNativeHandle ()
+
+pure virtual
+
+ +

Returns native buffer handle specific to the underlying graphics API.

+
Returns
pointer to ID3D11Resource interface, for D3D11 implementation
+ pointer to ID3D12Resource interface, for D3D12 implementation
+ GL buffer handle, for GL implementation
+ +

Implemented in Diligent::BufferD3D12Impl, Diligent::BufferD3D11Impl, and Diligent::BufferGLImpl.

+ +
+
+ +

◆ Map()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IBuffer::Map (IDeviceContextpContext,
MAP_TYPE MapType,
Uint32 MapFlags,
PVoid & pMappedData 
)
+
+pure virtual
+
+ +

Maps the buffer.

+
Parameters
+ + + + + +
[in]pContext- Pointer to the device context interface to be used to perform the operation.
[in]MapType- Type of the map operation. See Diligent::MAP_TYPE.
[in]MapFlags- Special map flags. See Diligent::MAP_FLAGS.
[out]pMappedData- Reference to the void pointer to store the address of the mapped region.
+
+
+ +

Implemented in Diligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >, Diligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >, Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >, Diligent::BufferD3D11Impl, Diligent::BufferGLImpl, and Diligent::BufferD3D12Impl.

+ +
+
+ +

◆ Unmap()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IBuffer::Unmap (IDeviceContextpContext,
MAP_TYPE MapType,
Uint32 MapFlags 
)
+
+pure virtual
+
+ +

Unmaps the previously mapped buffer.

+
Parameters
+ + + + +
[in]pContext- Pointer to the device context interface to be used to perform the operation.
[in]MapType- Type of the map operation. This parameter must match the type that was provided to the Map() method.
[in]MapFlags- Map flags. This parameter must match the flags that were provided to the Map() method.
+
+
+ +

Implemented in Diligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >, Diligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >, Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >, Diligent::BufferD3D11Impl, Diligent::BufferGLImpl, and Diligent::BufferD3D12Impl.

+ +
+
+ +

◆ UpdateData()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IBuffer::UpdateData (class IDeviceContextpContext,
Uint32 Offset,
Uint32 Size,
const PVoid pData 
)
+
+pure virtual
+
+ +

Updates the data in the buffer.

+
Parameters
+ + + + + +
[in]pContext- Pointer to the device context interface to be used to perform the operation.
[in]Offset- Offset in bytes from the beginning of the buffer to the update region.
[in]Size- Size in bytes of the data region to update.
[in]pData- Pointer to the data to store in the buffer.
+
+
+ +

Implemented in Diligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >, Diligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >, Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >, Diligent::BufferD3D11Impl, Diligent::BufferGLImpl, and Diligent::BufferD3D12Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer.png b/doc/html/class_diligent_1_1_i_buffer.png new file mode 100644 index 00000000..794d2956 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_buffer.png differ diff --git a/doc/html/class_diligent_1_1_i_buffer_d3_d11-members.html b/doc/html/class_diligent_1_1_i_buffer_d3_d11-members.html new file mode 100644 index 00000000..8aaba5d9 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer_d3_d11-members.html @@ -0,0 +1,97 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IBufferD3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::IBufferD3D11, including all inherited members.

+ + + + + + + + + + + + +
CopyData(IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size)=0Diligent::IBufferpure virtual
CreateView(const struct BufferViewDesc &ViewDesc, class IBufferView **ppView)=0Diligent::IBufferpure virtual
GetD3D11Buffer()=0Diligent::IBufferD3D11pure virtual
GetDefaultView(BUFFER_VIEW_TYPE ViewType)=0Diligent::IBufferpure virtual
GetDesc() const =0Diligent::IBufferpure virtual
GetNativeHandle()=0Diligent::IBufferpure virtual
Map(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData)=0Diligent::IBufferpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IBufferpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
Unmap(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags)=0Diligent::IBufferpure virtual
UpdateData(class IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData)=0Diligent::IBufferpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer_d3_d11.html b/doc/html/class_diligent_1_1_i_buffer_d3_d11.html new file mode 100644 index 00000000..9a13889c --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer_d3_d11.html @@ -0,0 +1,179 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IBufferD3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IBufferD3D11 Class Referenceabstract
+
+
+ +

Interface to the buffer object implemented in D3D11. + More...

+
+Inheritance diagram for Diligent::IBufferD3D11:
+
+
+ + +Diligent::IBuffer +Diligent::IDeviceObject +Diligent::RefCountedObject< IBufferD3D11 > +Diligent::ObjectBase< IBufferD3D11 > +Diligent::DeviceObjectBase< IBufferD3D11, BufferDesc > +Diligent::BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator > +Diligent::BufferD3D11Impl + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ID3D11Buffer * GetD3D11Buffer ()=0
 Returns a pointer to the ID3D11Buffer interface of the internal Direct3D11 object. More...
 
- Public Member Functions inherited from Diligent::IBuffer
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const BufferDescGetDesc () const =0
 Returns the buffer description used to create the object.
 
virtual void UpdateData (class IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData)=0
 Updates the data in the buffer. More...
 
virtual void CopyData (IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size)=0
 Copies the data from other buffer. More...
 
virtual void Map (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData)=0
 Maps the buffer. More...
 
virtual void Unmap (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags)=0
 Unmaps the previously mapped buffer. More...
 
virtual void CreateView (const struct BufferViewDesc &ViewDesc, class IBufferView **ppView)=0
 Creates a new buffer view. More...
 
virtual IBufferViewGetDefaultView (BUFFER_VIEW_TYPE ViewType)=0
 Returns the pointer to the default view. More...
 
virtual void * GetNativeHandle ()=0
 Returns native buffer handle specific to the underlying graphics API. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the buffer object implemented in D3D11.

+

Member Function Documentation

+ +

◆ GetD3D11Buffer()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11Buffer* Diligent::IBufferD3D11::GetD3D11Buffer ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11Buffer interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::BufferD3D11Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer_d3_d11.png b/doc/html/class_diligent_1_1_i_buffer_d3_d11.png new file mode 100644 index 00000000..05668d2d Binary files /dev/null and b/doc/html/class_diligent_1_1_i_buffer_d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_i_buffer_d3_d12-members.html b/doc/html/class_diligent_1_1_i_buffer_d3_d12-members.html new file mode 100644 index 00000000..93272510 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer_d3_d12-members.html @@ -0,0 +1,98 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IBufferD3D12 Member List
+
+
+ +

This is the complete list of members for Diligent::IBufferD3D12, including all inherited members.

+ + + + + + + + + + + + + +
CopyData(IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size)=0Diligent::IBufferpure virtual
CreateView(const struct BufferViewDesc &ViewDesc, class IBufferView **ppView)=0Diligent::IBufferpure virtual
GetD3D12Buffer(size_t &DataStartByteOffset, Uint32 ContextId)=0Diligent::IBufferD3D12pure virtual
GetDefaultView(BUFFER_VIEW_TYPE ViewType)=0Diligent::IBufferpure virtual
GetDesc() const =0Diligent::IBufferpure virtual
GetNativeHandle()=0Diligent::IBufferpure virtual
Map(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData)=0Diligent::IBufferpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IBufferpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
SetD3D12ResourceState(D3D12_RESOURCE_STATES state)=0Diligent::IBufferD3D12pure virtual
Unmap(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags)=0Diligent::IBufferpure virtual
UpdateData(class IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData)=0Diligent::IBufferpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer_d3_d12.html b/doc/html/class_diligent_1_1_i_buffer_d3_d12.html new file mode 100644 index 00000000..28d34ac3 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer_d3_d12.html @@ -0,0 +1,235 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IBufferD3D12 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IBufferD3D12 Class Referenceabstract
+
+
+ +

Interface to the buffer object implemented in D3D12. + More...

+
+Inheritance diagram for Diligent::IBufferD3D12:
+
+
+ + +Diligent::IBuffer +Diligent::IDeviceObject +Diligent::RefCountedObject< IBufferD3D12 > +Diligent::ObjectBase< IBufferD3D12 > +Diligent::DeviceObjectBase< IBufferD3D12, BufferDesc > +Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator > +Diligent::BufferD3D12Impl + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ID3D12Resource * GetD3D12Buffer (size_t &DataStartByteOffset, Uint32 ContextId)=0
 Returns a pointer to the ID3D12Resource interface of the internal Direct3D12 object. More...
 
virtual void SetD3D12ResourceState (D3D12_RESOURCE_STATES state)=0
 Sets the buffer usage state. More...
 
- Public Member Functions inherited from Diligent::IBuffer
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const BufferDescGetDesc () const =0
 Returns the buffer description used to create the object.
 
virtual void UpdateData (class IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData)=0
 Updates the data in the buffer. More...
 
virtual void CopyData (IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size)=0
 Copies the data from other buffer. More...
 
virtual void Map (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData)=0
 Maps the buffer. More...
 
virtual void Unmap (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags)=0
 Unmaps the previously mapped buffer. More...
 
virtual void CreateView (const struct BufferViewDesc &ViewDesc, class IBufferView **ppView)=0
 Creates a new buffer view. More...
 
virtual IBufferViewGetDefaultView (BUFFER_VIEW_TYPE ViewType)=0
 Returns the pointer to the default view. More...
 
virtual void * GetNativeHandle ()=0
 Returns native buffer handle specific to the underlying graphics API. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the buffer object implemented in D3D12.

+

Member Function Documentation

+ +

◆ GetD3D12Buffer()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual ID3D12Resource* Diligent::IBufferD3D12::GetD3D12Buffer (size_t & DataStartByteOffset,
Uint32 ContextId 
)
+
+pure virtual
+
+ +

Returns a pointer to the ID3D12Resource interface of the internal Direct3D12 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

Parameters
+ + + +
[in]DataStartByteOffset- Offset from the beginning of the buffer to the start of the data. This parameter is required for dynamic buffers, which are suballocated in a dynamic upload heap
[in]ContextId- Id of the context within which address of the buffer is requested.
+
+
+ +

Implemented in Diligent::BufferD3D12Impl.

+ +
+
+ +

◆ SetD3D12ResourceState()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::IBufferD3D12::SetD3D12ResourceState (D3D12_RESOURCE_STATES state)
+
+pure virtual
+
+ +

Sets the buffer usage state.

+
Parameters
+ + +
[in]state- D3D12 resource state to be set for this buffer
+
+
+ +

Implemented in Diligent::BufferD3D12Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer_d3_d12.png b/doc/html/class_diligent_1_1_i_buffer_d3_d12.png new file mode 100644 index 00000000..1dc928cf Binary files /dev/null and b/doc/html/class_diligent_1_1_i_buffer_d3_d12.png differ diff --git a/doc/html/class_diligent_1_1_i_buffer_g_l-members.html b/doc/html/class_diligent_1_1_i_buffer_g_l-members.html new file mode 100644 index 00000000..2a044f1f --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer_g_l-members.html @@ -0,0 +1,97 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IBufferGL Member List
+
+
+ +

This is the complete list of members for Diligent::IBufferGL, including all inherited members.

+ + + + + + + + + + + + +
CopyData(IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size)=0Diligent::IBufferpure virtual
CreateView(const struct BufferViewDesc &ViewDesc, class IBufferView **ppView)=0Diligent::IBufferpure virtual
GetDefaultView(BUFFER_VIEW_TYPE ViewType)=0Diligent::IBufferpure virtual
GetDesc() const =0Diligent::IBufferpure virtual
GetGLBufferHandle()=0Diligent::IBufferGLpure virtual
GetNativeHandle()=0Diligent::IBufferpure virtual
Map(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData)=0Diligent::IBufferpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IBufferpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
Unmap(IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags)=0Diligent::IBufferpure virtual
UpdateData(class IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData)=0Diligent::IBufferpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer_g_l.html b/doc/html/class_diligent_1_1_i_buffer_g_l.html new file mode 100644 index 00000000..4aa75162 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer_g_l.html @@ -0,0 +1,149 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IBufferGL Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IBufferGL Class Referenceabstract
+
+
+ +

Interface to the buffer object implemented in OpenGL. + More...

+
+Inheritance diagram for Diligent::IBufferGL:
+
+
+ + +Diligent::IBuffer +Diligent::IDeviceObject +Diligent::RefCountedObject< IBufferGL > +Diligent::ObjectBase< IBufferGL > +Diligent::DeviceObjectBase< IBufferGL, BufferDesc > +Diligent::BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator > +Diligent::BufferGLImpl + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual GLuint GetGLBufferHandle ()=0
 Returns OpenGL buffer handle.
 
- Public Member Functions inherited from Diligent::IBuffer
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const BufferDescGetDesc () const =0
 Returns the buffer description used to create the object.
 
virtual void UpdateData (class IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData)=0
 Updates the data in the buffer. More...
 
virtual void CopyData (IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size)=0
 Copies the data from other buffer. More...
 
virtual void Map (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData)=0
 Maps the buffer. More...
 
virtual void Unmap (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags)=0
 Unmaps the previously mapped buffer. More...
 
virtual void CreateView (const struct BufferViewDesc &ViewDesc, class IBufferView **ppView)=0
 Creates a new buffer view. More...
 
virtual IBufferViewGetDefaultView (BUFFER_VIEW_TYPE ViewType)=0
 Returns the pointer to the default view. More...
 
virtual void * GetNativeHandle ()=0
 Returns native buffer handle specific to the underlying graphics API. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the buffer object implemented in OpenGL.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer_g_l.png b/doc/html/class_diligent_1_1_i_buffer_g_l.png new file mode 100644 index 00000000..64122505 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_buffer_g_l.png differ diff --git a/doc/html/class_diligent_1_1_i_buffer_view-members.html b/doc/html/class_diligent_1_1_i_buffer_view-members.html new file mode 100644 index 00000000..9439f729 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer_view-members.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IBufferView Member List
+
+
+ +

This is the complete list of members for Diligent::IBufferView, including all inherited members.

+ + + + + +
GetBuffer()=0Diligent::IBufferViewpure virtual
GetDesc() const =0Diligent::IBufferViewpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IBufferViewpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer_view.html b/doc/html/class_diligent_1_1_i_buffer_view.html new file mode 100644 index 00000000..a812a571 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer_view.html @@ -0,0 +1,170 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IBufferView Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IBufferView Class Referenceabstract
+
+
+ +

Buffer view interface. + More...

+
+Inheritance diagram for Diligent::IBufferView:
+
+
+ + +Diligent::IDeviceObject +Diligent::IBufferViewD3D11 +Diligent::IBufferViewD3D12 +Diligent::IBufferViewGL +Diligent::RefCountedObject< IBufferViewD3D11 > +Diligent::RefCountedObject< IBufferViewD3D12 > +Diligent::RefCountedObject< IBufferViewGL > +Diligent::ObjectBase< IBufferViewD3D11 > +Diligent::ObjectBase< IBufferViewD3D12 > +Diligent::ObjectBase< IBufferViewGL > +Diligent::DeviceObjectBase< IBufferViewD3D11, BufferViewDesc > +Diligent::DeviceObjectBase< IBufferViewD3D12, BufferViewDesc > +Diligent::DeviceObjectBase< IBufferViewGL, BufferViewDesc > +Diligent::BufferViewBase< IBufferViewD3D11 > +Diligent::BufferViewBase< IBufferViewD3D12 > +Diligent::BufferViewBase< IBufferViewGL > +Diligent::BufferViewD3D11Impl +Diligent::BufferViewD3D12Impl +Diligent::BufferViewGLImpl + +
+ + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const BufferViewDescGetDesc () const =0
 Returns the buffer view description used to create the object.
 
virtual IBufferGetBuffer ()=0
 Returns pointer to the referenced buffer object. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Buffer view interface.

+

To create a buffer view, call IBuffer::CreateView().

Remarks
Buffer view holds strong references to the buffer. The buffer will not be destroyed until all views are released.
+

Member Function Documentation

+ +

◆ GetBuffer()

+ +
+
+ + + + + +
+ + + + + + + +
virtual IBuffer* Diligent::IBufferView::GetBuffer ()
+
+pure virtual
+
+ +

Returns pointer to the referenced buffer object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::BufferViewBase< IBufferViewGL >, Diligent::BufferViewBase< IBufferViewD3D11 >, and Diligent::BufferViewBase< IBufferViewD3D12 >.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer_view.png b/doc/html/class_diligent_1_1_i_buffer_view.png new file mode 100644 index 00000000..d5402aca Binary files /dev/null and b/doc/html/class_diligent_1_1_i_buffer_view.png differ diff --git a/doc/html/class_diligent_1_1_i_buffer_view_d3_d11-members.html b/doc/html/class_diligent_1_1_i_buffer_view_d3_d11-members.html new file mode 100644 index 00000000..438813c0 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer_view_d3_d11-members.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IBufferViewD3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::IBufferViewD3D11, including all inherited members.

+ + + + + + +
GetBuffer()=0Diligent::IBufferViewpure virtual
GetD3D11View()=0Diligent::IBufferViewD3D11pure virtual
GetDesc() const =0Diligent::IBufferViewpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IBufferViewpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer_view_d3_d11.html b/doc/html/class_diligent_1_1_i_buffer_view_d3_d11.html new file mode 100644 index 00000000..ae4dcbc4 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer_view_d3_d11.html @@ -0,0 +1,161 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IBufferViewD3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IBufferViewD3D11 Class Referenceabstract
+
+
+ +

Interface to the buffer view object implemented in D3D11. + More...

+
+Inheritance diagram for Diligent::IBufferViewD3D11:
+
+
+ + +Diligent::IBufferView +Diligent::IDeviceObject +Diligent::RefCountedObject< IBufferViewD3D11 > +Diligent::ObjectBase< IBufferViewD3D11 > +Diligent::DeviceObjectBase< IBufferViewD3D11, BufferViewDesc > +Diligent::BufferViewBase< IBufferViewD3D11 > +Diligent::BufferViewD3D11Impl + +
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ID3D11View * GetD3D11View ()=0
 Returns a pointer to the ID3D11View interface of the internal Direct3D11 object. More...
 
- Public Member Functions inherited from Diligent::IBufferView
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const BufferViewDescGetDesc () const =0
 Returns the buffer view description used to create the object.
 
virtual IBufferGetBuffer ()=0
 Returns pointer to the referenced buffer object. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the buffer view object implemented in D3D11.

+

Member Function Documentation

+ +

◆ GetD3D11View()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11View* Diligent::IBufferViewD3D11::GetD3D11View ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11View interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::BufferViewD3D11Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer_view_d3_d11.png b/doc/html/class_diligent_1_1_i_buffer_view_d3_d11.png new file mode 100644 index 00000000..8171cc16 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_buffer_view_d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_i_buffer_view_d3_d12-members.html b/doc/html/class_diligent_1_1_i_buffer_view_d3_d12-members.html new file mode 100644 index 00000000..e2eebb54 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer_view_d3_d12-members.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IBufferViewD3D12 Member List
+
+
+ +

This is the complete list of members for Diligent::IBufferViewD3D12, including all inherited members.

+ + + + + + +
GetBuffer()=0Diligent::IBufferViewpure virtual
GetCPUDescriptorHandle()=0Diligent::IBufferViewD3D12pure virtual
GetDesc() const =0Diligent::IBufferViewpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IBufferViewpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer_view_d3_d12.html b/doc/html/class_diligent_1_1_i_buffer_view_d3_d12.html new file mode 100644 index 00000000..d88ebd80 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer_view_d3_d12.html @@ -0,0 +1,131 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IBufferViewD3D12 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IBufferViewD3D12 Class Referenceabstract
+
+
+ +

Interface to the buffer view object implemented in D3D12. + More...

+
+Inheritance diagram for Diligent::IBufferViewD3D12:
+
+
+ + +Diligent::IBufferView +Diligent::IDeviceObject +Diligent::RefCountedObject< IBufferViewD3D12 > +Diligent::ObjectBase< IBufferViewD3D12 > +Diligent::DeviceObjectBase< IBufferViewD3D12, BufferViewDesc > +Diligent::BufferViewBase< IBufferViewD3D12 > +Diligent::BufferViewD3D12Impl + +
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle ()=0
 Returns CPU descriptor handle of the buffer view.
 
- Public Member Functions inherited from Diligent::IBufferView
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const BufferViewDescGetDesc () const =0
 Returns the buffer view description used to create the object.
 
virtual IBufferGetBuffer ()=0
 Returns pointer to the referenced buffer object. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the buffer view object implemented in D3D12.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer_view_d3_d12.png b/doc/html/class_diligent_1_1_i_buffer_view_d3_d12.png new file mode 100644 index 00000000..c0eca5ce Binary files /dev/null and b/doc/html/class_diligent_1_1_i_buffer_view_d3_d12.png differ diff --git a/doc/html/class_diligent_1_1_i_buffer_view_g_l-members.html b/doc/html/class_diligent_1_1_i_buffer_view_g_l-members.html new file mode 100644 index 00000000..440392ff --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer_view_g_l-members.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IBufferViewGL Member List
+
+
+ +

This is the complete list of members for Diligent::IBufferViewGL, including all inherited members.

+ + + + + +
GetBuffer()=0Diligent::IBufferViewpure virtual
GetDesc() const =0Diligent::IBufferViewpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IBufferViewpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer_view_g_l.html b/doc/html/class_diligent_1_1_i_buffer_view_g_l.html new file mode 100644 index 00000000..b4b088de --- /dev/null +++ b/doc/html/class_diligent_1_1_i_buffer_view_g_l.html @@ -0,0 +1,126 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IBufferViewGL Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IBufferViewGL Class Reference
+
+
+ +

Interface to the buffer view object implemented in OpenGL. + More...

+
+Inheritance diagram for Diligent::IBufferViewGL:
+
+
+ + +Diligent::IBufferView +Diligent::IDeviceObject +Diligent::RefCountedObject< IBufferViewGL > +Diligent::ObjectBase< IBufferViewGL > +Diligent::DeviceObjectBase< IBufferViewGL, BufferViewDesc > +Diligent::BufferViewBase< IBufferViewGL > +Diligent::BufferViewGLImpl + +
+ + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::IBufferView
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const BufferViewDescGetDesc () const =0
 Returns the buffer view description used to create the object.
 
virtual IBufferGetBuffer ()=0
 Returns pointer to the referenced buffer object. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the buffer view object implemented in OpenGL.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_buffer_view_g_l.png b/doc/html/class_diligent_1_1_i_buffer_view_g_l.png new file mode 100644 index 00000000..a6d71c18 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_buffer_view_g_l.png differ diff --git a/doc/html/class_diligent_1_1_i_command_list-members.html b/doc/html/class_diligent_1_1_i_command_list-members.html new file mode 100644 index 00000000..10cbe78c --- /dev/null +++ b/doc/html/class_diligent_1_1_i_command_list-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ICommandList Member List
+
+
+ +

This is the complete list of members for Diligent::ICommandList, including all inherited members.

+ + + +
GetDesc() const =0Diligent::IDeviceObjectpure virtual
QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_command_list.html b/doc/html/class_diligent_1_1_i_command_list.html new file mode 100644 index 00000000..0c4403e2 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_command_list.html @@ -0,0 +1,119 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ICommandList Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ICommandList Class Reference
+
+
+ +

Command list interface. + More...

+
+Inheritance diagram for Diligent::ICommandList:
+
+
+ + +Diligent::IDeviceObject +Diligent::RefCountedObject< ICommandList > +Diligent::ObjectBase< ICommandList > +Diligent::DeviceObjectBase< ICommandList, CommandListDesc > +Diligent::CommandListBase< ICommandList > +Diligent::CommandListD3D11Impl +Diligent::CommandListD3D12Impl + +
+ + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const DeviceObjectAttribsGetDesc () const =0
 Returns the buffer object description.
 
+

Detailed Description

+

Command list interface.

+

Command list has no methods. When command list recording is finished, it is executed by IDeviceContext::ExecuteCommandList().

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_command_list.png b/doc/html/class_diligent_1_1_i_command_list.png new file mode 100644 index 00000000..31cab9a8 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_command_list.png differ diff --git a/doc/html/class_diligent_1_1_i_command_queue_d3_d12-members.html b/doc/html/class_diligent_1_1_i_command_queue_d3_d12-members.html new file mode 100644 index 00000000..dad482ee --- /dev/null +++ b/doc/html/class_diligent_1_1_i_command_queue_d3_d12-members.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ICommandQueueD3D12 Member List
+
+
+ +

This is the complete list of members for Diligent::ICommandQueueD3D12, including all inherited members.

+ + + + + + +
ExecuteCommandList(ID3D12GraphicsCommandList *commandList)=0Diligent::ICommandQueueD3D12pure virtual
GetCompletedFenceValue()=0Diligent::ICommandQueueD3D12pure virtual
GetD3D12CommandQueue()=0Diligent::ICommandQueueD3D12pure virtual
GetNextFenceValue()=0Diligent::ICommandQueueD3D12pure virtual
IdleGPU()=0Diligent::ICommandQueueD3D12pure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_command_queue_d3_d12.html b/doc/html/class_diligent_1_1_i_command_queue_d3_d12.html new file mode 100644 index 00000000..eb76aa10 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_command_queue_d3_d12.html @@ -0,0 +1,157 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ICommandQueueD3D12 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ICommandQueueD3D12 Class Referenceabstract
+
+
+ +

Command queue interface. + More...

+
+Inheritance diagram for Diligent::ICommandQueueD3D12:
+
+
+ + +Diligent::RefCountedObject< ICommandQueueD3D12 > +Diligent::ObjectBase< ICommandQueueD3D12 > +Diligent::CommandQueueD3D12Impl + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual UINT64 GetNextFenceValue ()=0
 Returns the fence value that will be signaled next time.
 
virtual UINT64 ExecuteCommandList (ID3D12GraphicsCommandList *commandList)=0
 Executes a given command list. More...
 
+virtual ID3D12CommandQueue * GetD3D12CommandQueue ()=0
 Returns D3D12 command queue. May return null if queue is anavailable.
 
+virtual Uint64 GetCompletedFenceValue ()=0
 Returns value of the last completed fence.
 
+virtual void IdleGPU ()=0
 Blocks execution until all pending GPU commands are complete.
 
+

Detailed Description

+

Command queue interface.

+

Member Function Documentation

+ +

◆ ExecuteCommandList()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual UINT64 Diligent::ICommandQueueD3D12::ExecuteCommandList (ID3D12GraphicsCommandList * commandList)
+
+pure virtual
+
+ +

Executes a given command list.

+
Returns
Fence value associated with the executed command list
+ +

Implemented in Diligent::CommandQueueD3D12Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_command_queue_d3_d12.png b/doc/html/class_diligent_1_1_i_command_queue_d3_d12.png new file mode 100644 index 00000000..a760c58f Binary files /dev/null and b/doc/html/class_diligent_1_1_i_command_queue_d3_d12.png differ diff --git a/doc/html/class_diligent_1_1_i_data_blob-members.html b/doc/html/class_diligent_1_1_i_data_blob-members.html new file mode 100644 index 00000000..eb7a320c --- /dev/null +++ b/doc/html/class_diligent_1_1_i_data_blob-members.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IDataBlob Member List
+
+
+ +

This is the complete list of members for Diligent::IDataBlob, including all inherited members.

+ + + + + + + + +
AddRef()=0Diligent::IObjectpure virtual
GetDataPtr()=0Diligent::IDataBlobpure virtual
GetReferenceCounters() const =0Diligent::IObjectpure virtual
GetSize()=0Diligent::IDataBlobpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IObjectpure virtual
Release()=0Diligent::IObjectpure virtual
Resize(size_t NewSize)=0Diligent::IDataBlobpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_data_blob.html b/doc/html/class_diligent_1_1_i_data_blob.html new file mode 100644 index 00000000..1652a186 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_data_blob.html @@ -0,0 +1,134 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IDataBlob Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IDataBlob Class Referenceabstract
+
+
+ +

Base interface for a file stream. + More...

+
+Inheritance diagram for Diligent::IDataBlob:
+
+
+ + +Diligent::IObject +Diligent::RefCountedObject< IDataBlob > +Diligent::ObjectBase< IDataBlob > +Diligent::DataBlobImpl +Diligent::StringDataBlobImpl + +
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void Resize (size_t NewSize)=0
 Sets the size of the internal data buffer.
 
+virtual size_t GetSize ()=0
 Returns the size of the internal data buffer.
 
+virtual void * GetDataPtr ()=0
 Returns the pointer to the internal data buffer.
 
- Public Member Functions inherited from Diligent::IObject
virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface. More...
 
virtual CounterValueType AddRef ()=0
 Increments the number of strong references by 1. More...
 
virtual CounterValueType Release ()=0
 Decrements the number of strong references by 1 and destroys the object when the counter reaches zero. More...
 
+virtual IReferenceCountersGetReferenceCounters () const =0
 Returns the pointer to IReferenceCounters interface of the associated reference counters object. The method does NOT increment the number of strong references to the returned object.
 
+

Detailed Description

+

Base interface for a file stream.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_data_blob.png b/doc/html/class_diligent_1_1_i_data_blob.png new file mode 100644 index 00000000..985fb312 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_data_blob.png differ diff --git a/doc/html/class_diligent_1_1_i_device_context-members.html b/doc/html/class_diligent_1_1_i_device_context-members.html new file mode 100644 index 00000000..44940435 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_device_context-members.html @@ -0,0 +1,106 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IDeviceContext Member List
+
+
+ +

This is the complete list of members for Diligent::IDeviceContext, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + +
ClearDepthStencil(ITextureView *pView, Uint32 ClearFlags=CLEAR_DEPTH_FLAG, float fDepth=1.f, Uint8 Stencil=0)=0Diligent::IDeviceContextpure virtual
ClearRenderTarget(ITextureView *pView, const float *RGBA=nullptr)=0Diligent::IDeviceContextpure virtual
CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags)=0Diligent::IDeviceContextpure virtual
DispatchCompute(const DispatchComputeAttribs &DispatchAttrs)=0Diligent::IDeviceContextpure virtual
Draw(DrawAttribs &DrawAttribs)=0Diligent::IDeviceContextpure virtual
ExecuteCommandList(ICommandList *pCommandList)=0Diligent::IDeviceContextpure virtual
FinishCommandList(ICommandList **ppCommandList)=0Diligent::IDeviceContextpure virtual
Flush()=0Diligent::IDeviceContextpure virtual
InvalidateState()=0Diligent::IDeviceContextpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceContextpure virtual
SetBlendFactors(const float *pBlendFactors=nullptr)=0Diligent::IDeviceContextpure virtual
SetIndexBuffer(IBuffer *pIndexBuffer, Uint32 ByteOffset)=0Diligent::IDeviceContextpure virtual
SetPipelineState(IPipelineState *pPipelineState)=0Diligent::IDeviceContextpure virtual
SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil)=0Diligent::IDeviceContextpure virtual
SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight)=0Diligent::IDeviceContextpure virtual
SetStencilRef(Uint32 StencilRef)=0Diligent::IDeviceContextpure virtual
SetSwapChain(ISwapChain *pSwapChain)=0Diligent::IDeviceContextpure virtual
SetVertexBuffers(Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags)=0Diligent::IDeviceContextpure virtual
SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight)=0Diligent::IDeviceContextpure virtual
TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding)=0Diligent::IDeviceContextpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_device_context.html b/doc/html/class_diligent_1_1_i_device_context.html new file mode 100644 index 00000000..f76b08d7 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_device_context.html @@ -0,0 +1,1023 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IDeviceContext Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IDeviceContext Class Referenceabstract
+
+
+ +

Device context interface. + More...

+
+Inheritance diagram for Diligent::IDeviceContext:
+
+
+ + +Diligent::IDeviceContextD3D11 +Diligent::IDeviceContextD3D12 +Diligent::IDeviceContextGL +Diligent::RefCountedObject< IDeviceContextD3D11 > +Diligent::RefCountedObject< IDeviceContextD3D12 > +Diligent::RefCountedObject< IDeviceContextGL > +Diligent::ObjectBase< IDeviceContextD3D11 > +Diligent::ObjectBase< IDeviceContextD3D12 > +Diligent::ObjectBase< IDeviceContextGL > +Diligent::DeviceContextBase< IDeviceContextD3D11 > +Diligent::DeviceContextBase< IDeviceContextD3D12 > +Diligent::DeviceContextBase< IDeviceContextGL > +Diligent::DeviceContextD3D11Impl +Diligent::DeviceContextD3D12Impl +Diligent::DeviceContextGLImpl + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual void SetPipelineState (IPipelineState *pPipelineState)=0
 Sets the pipeline state. More...
 
virtual void TransitionShaderResources (IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding)=0
 Transitions shader resources to the require states. More...
 
virtual void CommitShaderResources (IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags)=0
 Commits shader resources to the device context. More...
 
virtual void SetStencilRef (Uint32 StencilRef)=0
 Sets the stencil reference value. More...
 
virtual void SetBlendFactors (const float *pBlendFactors=nullptr)=0
 
virtual void SetVertexBuffers (Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags)=0
 Binds vertex buffers to the pipeline. More...
 
virtual void InvalidateState ()=0
 Invalidates the cached context state. More...
 
virtual void SetIndexBuffer (IBuffer *pIndexBuffer, Uint32 ByteOffset)=0
 Binds an index buffer to the pipeline. More...
 
virtual void SetViewports (Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight)=0
 Sets an array of viewports. More...
 
virtual void SetScissorRects (Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight)=0
 Sets active scissor rects. More...
 
virtual void SetRenderTargets (Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil)=0
 Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewport to match the first non-null render target or depth-stencil buffer. More...
 
virtual void Draw (DrawAttribs &DrawAttribs)=0
 Executes a draw command. More...
 
virtual void DispatchCompute (const DispatchComputeAttribs &DispatchAttrs)=0
 Executes a dispatch compute command. More...
 
virtual void ClearDepthStencil (ITextureView *pView, Uint32 ClearFlags=CLEAR_DEPTH_FLAG, float fDepth=1.f, Uint8 Stencil=0)=0
 Clears a depth-stencil view. More...
 
virtual void ClearRenderTarget (ITextureView *pView, const float *RGBA=nullptr)=0
 Clears a render target view. More...
 
virtual void FinishCommandList (ICommandList **ppCommandList)=0
 Finishes recording commands and generates a command list. More...
 
virtual void ExecuteCommandList (ICommandList *pCommandList)=0
 Executes recorded commands in a command list. More...
 
+virtual void Flush ()=0
 Flushes the command buffer.
 
virtual void SetSwapChain (ISwapChain *pSwapChain)=0
 Sets the swap chain in the device context. More...
 
+

Detailed Description

+

Device context interface.

+
Remarks
Device context keeps strong references to all objects currently bound to the pipeline: buffers, states, samplers, shaders, etc. The context also keeps strong reference to the device and the swap chain.
+

Member Function Documentation

+ +

◆ ClearDepthStencil()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IDeviceContext::ClearDepthStencil (ITextureViewpView,
Uint32 ClearFlags = CLEAR_DEPTH_FLAG,
float fDepth = 1.f,
Uint8 Stencil = 0 
)
+
+pure virtual
+
+ +

Clears a depth-stencil view.

+
Parameters
+ + + + + +
[in]pView- Pointer to ITextureView interface to clear. The view type must be Diligent::TEXTURE_VIEW_DEPTH_STENCIL.
[in]ClearFlags- Idicates which parts of the buffer to clear, see Diligent::CLEAR_DEPTH_STENCIL_FLAGS.
[in]fDepth- Value to clear depth part of the view with.
[in]Stencil- Value to clear stencil part of the view with.
+
+
+
Remarks
The full extent of the view is always cleared. Viewport and scissor settings are not applied.
+
Note
The depth-stencil view must be bound to the pipeline for clear operation to be performed.
+ +

Implemented in Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ ClearRenderTarget()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IDeviceContext::ClearRenderTarget (ITextureViewpView,
const float * RGBA = nullptr 
)
+
+pure virtual
+
+ +

Clears a render target view.

+
Parameters
+ + + +
[in]pView- Pointer to ITextureView interface to clear. The view type must be Diligent::TEXTURE_VIEW_RENDER_TARGET.
[in]RGBA- A 4-component array that represents the color to fill the render target with. If nullptr is provided, the default array {0,0,0,0} will be used.
+
+
+
Remarks
The full extent of the view is always cleared. Viewport and scissor settings are not applied.
+
Note
The render target view must be bound to the pipeline for clear operation to be performed.
+ +

Implemented in Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ CommitShaderResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IDeviceContext::CommitShaderResources (IShaderResourceBindingpShaderResourceBinding,
Uint32 Flags 
)
+
+pure virtual
+
+ +

Commits shader resources to the device context.

+
Parameters
+ + + +
[in]pShaderResourceBinding- Shader resource binding whose resources will be committed. If pipeline state contains no shader resources, this parameter can be null.
[in]Flags- Additional flags for the operation. See Diligent::COMMIT_SHADER_RESOURCES_FLAG for a list of allowed values.
+
+
+
Remarks
Pipeline state object that was used to create the shader resource binding must be bound to the pipeline when CommitShaderResources() is called. If no pipeline state object is bound or the pipeline state object does not match shader resource binding, the method will fail.
+ If Diligent::COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES flag is specified, the engine will also transition all shader resources to the correct state. If the flag is not specified, it is assumed that all resources are already in correct states.
+ Resources can be explicitly transitioned to the required states by calling IDeviceContext::TransitionShaderResources()
+ +

Implemented in Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ DispatchCompute()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::IDeviceContext::DispatchCompute (const DispatchComputeAttribsDispatchAttrs)
+
+pure virtual
+
+ +

Executes a dispatch compute command.

+
Parameters
+ + +
[in]DispatchAttrs- Structure describing dispatch command attributes, see DispatchComputeAttribs for details.
+
+
+ +

Implemented in Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ Draw()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::IDeviceContext::Draw (DrawAttribsDrawAttribs)
+
+pure virtual
+
+ +

Executes a draw command.

+
Parameters
+ + +
[in]DrawAttribs- Structure describing draw command attributes, see DrawAttribs for details.
+
+
+ +

Implemented in Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ ExecuteCommandList()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::IDeviceContext::ExecuteCommandList (ICommandListpCommandList)
+
+pure virtual
+
+ +

Executes recorded commands in a command list.

+
Parameters
+ + +
[in]pCommandList- Pointer to the command list to executre.
+
+
+
Remarks
After command list is executed, it is no longer valid and should be released.
+ +

Implemented in Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ FinishCommandList()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::IDeviceContext::FinishCommandList (ICommandList ** ppCommandList)
+
+pure virtual
+
+ +

Finishes recording commands and generates a command list.

+
Parameters
+ + +
[out]ppCommandList- Memory location where pointer to the recorded command list will be written.
+
+
+ +

Implemented in Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ InvalidateState()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void Diligent::IDeviceContext::InvalidateState ()
+
+pure virtual
+
+ +

Invalidates the cached context state.

+

This method should be called by say Unity plugin before (or after) issuing draw commands to invalidate cached states

+ +

Implemented in Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ SetBlendFactors()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::IDeviceContext::SetBlendFactors (const float * pBlendFactors = nullptr)
+
+pure virtual
+
+
Parameters
+ + +
[in]pBlendFactors- Array of four blend factors, one for each RGBA component. Theses factors are used if the blend state uses one of the Diligent::BLEND_FACTOR_BLEND_FACTOR or Diligent::BLEND_FACTOR_INV_BLEND_FACTOR blend factors. If nullptr is provided, default blend factors array {1,1,1,1} will be used.
+
+
+ +

Implemented in Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ SetIndexBuffer()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IDeviceContext::SetIndexBuffer (IBufferpIndexBuffer,
Uint32 ByteOffset 
)
+
+pure virtual
+
+ +

Binds an index buffer to the pipeline.

+
Parameters
+ + + +
[in]pIndexBuffer- Pointer to the index buffer. The buffer must have been created with the Diligent::BIND_INDEX_BUFFER flag.
[in]ByteOffset- Offset from the beginning of the buffer to the start of index data.
+
+
+
Remarks
The device context keeps strong reference to the index buffer. Thus an index buffer object cannot be released until it is unbound from the context.
+ +

Implemented in Diligent::DeviceContextBase< IDeviceContextD3D12 >, Diligent::DeviceContextBase< IDeviceContextGL >, Diligent::DeviceContextBase< IDeviceContextD3D11 >, Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ SetPipelineState()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::IDeviceContext::SetPipelineState (IPipelineStatepPipelineState)
+
+pure virtual
+
+
+ +

◆ SetRenderTargets()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IDeviceContext::SetRenderTargets (Uint32 NumRenderTargets,
ITextureViewppRenderTargets[],
ITextureViewpDepthStencil 
)
+
+pure virtual
+
+ +

Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewport to match the first non-null render target or depth-stencil buffer.

+
Parameters
+ + + + +
[in]NumRenderTargets- Number of render targets to bind.
[in]ppRenderTargets- Array of pointers to ITextureView that represent the render targets to bind to the device. The type of each view in the array must be Diligent::TEXTURE_VIEW_RENDER_TARGET.
[in]pDepthStencil- Pointer to the ITextureView that represents the depth stencil to bind to the device. The view type must be Diligent::TEXTURE_VIEW_DEPTH_STENCIL.
+
+
+
Remarks
The device context will keep strong references to all bound render target and depth-stencil views. Thus these views (and consequently referenced textures) cannot be released until they are unbound from the context.
+Any render targets not defined by this call are set to nullptr.
+
+You can set the default render target and depth stencil using the following call:
pContext->SetRenderTargets(0, nullptr, nullptr); 
+ +

Implemented in Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ SetScissorRects()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IDeviceContext::SetScissorRects (Uint32 NumRects,
const RectpRects,
Uint32 RTWidth,
Uint32 RTHeight 
)
+
+pure virtual
+
+ +

Sets active scissor rects.

+
Parameters
+ + + + + +
[in]NumRects- Number of scissor rectangles to set.
[in]pRects- An array of Rect structures describing the scissor rectangles to bind.
[in]RTWidth- Render target width. If 0 is provided, width of the currently bound render target will be used.
[in]RTHeight- Render target height. If 0 is provided, height of the currently bound render target will be used.
+
+
+
Remarks
DirectX and OpenGL use different window coordinate systems. In DirectX, the coordinate system origin is in the left top corner of the screen with Y axis pointing down. In OpenGL, the origin is in the left bottom corener of the screen with Y axis pointing up. Render target size is required to convert viewport from DirectX to OpenGL coordinate system if OpenGL device is used.
+
+All scissor rects must be set atomically as one operation. Any rects not defined by the call are disabled.
+ +

Implemented in Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ SetStencilRef()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::IDeviceContext::SetStencilRef (Uint32 StencilRef)
+
+pure virtual
+
+ +

Sets the stencil reference value.

+
Parameters
+ + +
[in]StencilRef- Stencil reference value.
+
+
+ +

Implemented in Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ SetSwapChain()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::IDeviceContext::SetSwapChain (ISwapChainpSwapChain)
+
+pure virtual
+
+ +

Sets the swap chain in the device context.

+

The swap chain is used by the device context to work with the default framebuffer. Specifically, if the swap chain is set in the context, the following commands can be used:

    +
  • SetRenderTargets(0, nullptr, nullptr) - to bind the default back buffer & depth buffer
  • +
  • SetViewports(1, nullptr, 0, 0) - to set the viewport to match the size of the back buffer
  • +
  • ClearRenderTarget(nullptr, color) - to clear the default back buffer
  • +
  • ClearDepthStencil(nullptr, ...) - to clear the default depth buffer The swap chain is automatically initialized for immediate and all deferred contexts by factory functions EngineFactoryD3D11Impl::CreateSwapChainD3D11(), EngineFactoryD3D12Impl::CreateSwapChainD3D12(), and EngineFactoryOpenGLImpl::CreateDeviceAndSwapChainGL(). However, when the engine is initialized by attaching to existing d3d11/d3d12 device or OpenGL/GLES context, the swap chain needs to be set manually if the device context will be using any of the commands above.
    +Device context keeps strong reference to the swap chain.
  • +
+ +

Implemented in Diligent::DeviceContextBase< IDeviceContextD3D12 >, Diligent::DeviceContextBase< IDeviceContextGL >, and Diligent::DeviceContextBase< IDeviceContextD3D11 >.

+ +
+
+ +

◆ SetVertexBuffers()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IDeviceContext::SetVertexBuffers (Uint32 StartSlot,
Uint32 NumBuffersSet,
IBuffer ** ppBuffers,
Uint32 * pStrides,
Uint32 * pOffsets,
Uint32 Flags 
)
+
+pure virtual
+
+ +

Binds vertex buffers to the pipeline.

+
Parameters
+ + + + + + + +
[in]StartSlot- The first input slot for binding. The first vertex buffer is explicitly bound to the start slot; each additional vertex buffer in the array is implicitly bound to each subsequent input slot.
[in]NumBuffersSet- The number of vertex buffers in the array.
[in]ppBuffers- A pointer to an array of vertex buffers.
[in]pStrides- Pointer to an array of stride values; one stride value for each buffer in the vertex-buffer array. Each stride is the size (in bytes) of the elements that are to be used from that vertex buffer. If this parameter is nullptr, tight strides from the input layout will be used for each buffer. See IPipelineState::GetTightStrides().
[in]pOffsets- Pointer to an array of offset values; one offset value for each buffer in the vertex-buffer array. Each offset is the number of bytes between the first element of a vertex buffer and the first element that will be used. If this parameter is nullptr, zero offsets for all buffers will be used.
[in]Flags- Additional flags for the operation. See Diligent::SET_VERTEX_BUFFERS_FLAGS for a list of allowed values.
+
+
+
+
Remarks
The device context keeps strong references to all bound vertex buffers. Thus a buffer cannot be released until it is unbound from the context.
+ It is suggested to specify Diligent::SET_VERTEX_BUFFERS_FLAG_RESET flag whenever possible. This will assure that no buffers from previous draw calls are are bound to the pipeline.
+ +

Implemented in Diligent::DeviceContextBase< IDeviceContextD3D12 >, Diligent::DeviceContextBase< IDeviceContextGL >, Diligent::DeviceContextBase< IDeviceContextD3D11 >, Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ SetViewports()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IDeviceContext::SetViewports (Uint32 NumViewports,
const ViewportpViewports,
Uint32 RTWidth,
Uint32 RTHeight 
)
+
+pure virtual
+
+ +

Sets an array of viewports.

+
Parameters
+ + + + + +
[in]NumViewports- Number of viewports to set.
[in]pViewports- An array of Viewport structures describing the viewports to bind.
[in]RTWidth- Render target width. If 0 is provided, width of the currently bound render target will be used.
[in]RTHeight-Render target height. If 0 is provided, height of the currently bound render target will be used.
+
+
+
Remarks
DirectX and OpenGL use different window coordinate systems. In DirectX, the coordinate system origin is in the left top corner of the screen with Y axis pointing down. In OpenGL, the origin is in the left bottom corener of the screen with Y axis pointing up. Render target size is required to convert viewport from DirectX to OpenGL coordinate system if OpenGL device is used.
+
+All viewports must be set atomically as one operation. Any viewports not defined by the call are disabled.
+
+You can set the viewport size to match the currently bound render target using the following call:
pContext->SetViewports(1, nullptr, 0, 0); 
+ +

Implemented in Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ TransitionShaderResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IDeviceContext::TransitionShaderResources (IPipelineStatepPipelineState,
IShaderResourceBindingpShaderResourceBinding 
)
+
+pure virtual
+
+ +

Transitions shader resources to the require states.

+
Parameters
+ + + +
[in]pPipelineState- Pipeline state object that was used to create the shader resource binding.
[in]pShaderResourceBinding- Shader resource binding whose resources will be transitioned.
+
+
+
Remarks
This method explicitly transitiones all resources to the correct states. If this method was called, there is no need to specify Diligent::COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES when calling IDeviceContext::CommitShaderResources()
+ +

Implemented in Diligent::DeviceContextD3D12Impl, Diligent::DeviceContextD3D11Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_device_context.png b/doc/html/class_diligent_1_1_i_device_context.png new file mode 100644 index 00000000..38524e56 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_device_context.png differ diff --git a/doc/html/class_diligent_1_1_i_device_context_d3_d11-members.html b/doc/html/class_diligent_1_1_i_device_context_d3_d11-members.html new file mode 100644 index 00000000..19ece997 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_device_context_d3_d11-members.html @@ -0,0 +1,107 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IDeviceContextD3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::IDeviceContextD3D11, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
ClearDepthStencil(ITextureView *pView, Uint32 ClearFlags=CLEAR_DEPTH_FLAG, float fDepth=1.f, Uint8 Stencil=0)=0Diligent::IDeviceContextpure virtual
ClearRenderTarget(ITextureView *pView, const float *RGBA=nullptr)=0Diligent::IDeviceContextpure virtual
CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags)=0Diligent::IDeviceContextpure virtual
DispatchCompute(const DispatchComputeAttribs &DispatchAttrs)=0Diligent::IDeviceContextpure virtual
Draw(DrawAttribs &DrawAttribs)=0Diligent::IDeviceContextpure virtual
ExecuteCommandList(ICommandList *pCommandList)=0Diligent::IDeviceContextpure virtual
FinishCommandList(ICommandList **ppCommandList)=0Diligent::IDeviceContextpure virtual
Flush()=0Diligent::IDeviceContextpure virtual
GetD3D11DeviceContext()=0Diligent::IDeviceContextD3D11pure virtual
InvalidateState()=0Diligent::IDeviceContextpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceContextpure virtual
SetBlendFactors(const float *pBlendFactors=nullptr)=0Diligent::IDeviceContextpure virtual
SetIndexBuffer(IBuffer *pIndexBuffer, Uint32 ByteOffset)=0Diligent::IDeviceContextpure virtual
SetPipelineState(IPipelineState *pPipelineState)=0Diligent::IDeviceContextpure virtual
SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil)=0Diligent::IDeviceContextpure virtual
SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight)=0Diligent::IDeviceContextpure virtual
SetStencilRef(Uint32 StencilRef)=0Diligent::IDeviceContextpure virtual
SetSwapChain(ISwapChain *pSwapChain)=0Diligent::IDeviceContextpure virtual
SetVertexBuffers(Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags)=0Diligent::IDeviceContextpure virtual
SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight)=0Diligent::IDeviceContextpure virtual
TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding)=0Diligent::IDeviceContextpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_device_context_d3_d11.html b/doc/html/class_diligent_1_1_i_device_context_d3_d11.html new file mode 100644 index 00000000..6c93f9d6 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_device_context_d3_d11.html @@ -0,0 +1,204 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IDeviceContextD3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IDeviceContextD3D11 Class Referenceabstract
+
+
+ +

Interface to the device context object implemented in D3D11. + More...

+
+Inheritance diagram for Diligent::IDeviceContextD3D11:
+
+
+ + +Diligent::IDeviceContext +Diligent::RefCountedObject< IDeviceContextD3D11 > +Diligent::ObjectBase< IDeviceContextD3D11 > +Diligent::DeviceContextBase< IDeviceContextD3D11 > +Diligent::DeviceContextD3D11Impl + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ID3D11DeviceContext * GetD3D11DeviceContext ()=0
 Returns a pointer to the ID3D11DeviceContext interface of the internal Direct3D11 object. More...
 
- Public Member Functions inherited from Diligent::IDeviceContext
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual void SetPipelineState (IPipelineState *pPipelineState)=0
 Sets the pipeline state. More...
 
virtual void TransitionShaderResources (IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding)=0
 Transitions shader resources to the require states. More...
 
virtual void CommitShaderResources (IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags)=0
 Commits shader resources to the device context. More...
 
virtual void SetStencilRef (Uint32 StencilRef)=0
 Sets the stencil reference value. More...
 
virtual void SetBlendFactors (const float *pBlendFactors=nullptr)=0
 
virtual void SetVertexBuffers (Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags)=0
 Binds vertex buffers to the pipeline. More...
 
virtual void InvalidateState ()=0
 Invalidates the cached context state. More...
 
virtual void SetIndexBuffer (IBuffer *pIndexBuffer, Uint32 ByteOffset)=0
 Binds an index buffer to the pipeline. More...
 
virtual void SetViewports (Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight)=0
 Sets an array of viewports. More...
 
virtual void SetScissorRects (Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight)=0
 Sets active scissor rects. More...
 
virtual void SetRenderTargets (Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil)=0
 Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewport to match the first non-null render target or depth-stencil buffer. More...
 
virtual void Draw (DrawAttribs &DrawAttribs)=0
 Executes a draw command. More...
 
virtual void DispatchCompute (const DispatchComputeAttribs &DispatchAttrs)=0
 Executes a dispatch compute command. More...
 
virtual void ClearDepthStencil (ITextureView *pView, Uint32 ClearFlags=CLEAR_DEPTH_FLAG, float fDepth=1.f, Uint8 Stencil=0)=0
 Clears a depth-stencil view. More...
 
virtual void ClearRenderTarget (ITextureView *pView, const float *RGBA=nullptr)=0
 Clears a render target view. More...
 
virtual void FinishCommandList (ICommandList **ppCommandList)=0
 Finishes recording commands and generates a command list. More...
 
virtual void ExecuteCommandList (ICommandList *pCommandList)=0
 Executes recorded commands in a command list. More...
 
+virtual void Flush ()=0
 Flushes the command buffer.
 
virtual void SetSwapChain (ISwapChain *pSwapChain)=0
 Sets the swap chain in the device context. More...
 
+

Detailed Description

+

Interface to the device context object implemented in D3D11.

+

Member Function Documentation

+ +

◆ GetD3D11DeviceContext()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11DeviceContext* Diligent::IDeviceContextD3D11::GetD3D11DeviceContext ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11DeviceContext interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::DeviceContextD3D11Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_device_context_d3_d11.png b/doc/html/class_diligent_1_1_i_device_context_d3_d11.png new file mode 100644 index 00000000..6646178c Binary files /dev/null and b/doc/html/class_diligent_1_1_i_device_context_d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_i_device_context_d3_d12-members.html b/doc/html/class_diligent_1_1_i_device_context_d3_d12-members.html new file mode 100644 index 00000000..cf09520d --- /dev/null +++ b/doc/html/class_diligent_1_1_i_device_context_d3_d12-members.html @@ -0,0 +1,108 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IDeviceContextD3D12 Member List
+
+
+ +

This is the complete list of members for Diligent::IDeviceContextD3D12, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + +
ClearDepthStencil(ITextureView *pView, Uint32 ClearFlags=CLEAR_DEPTH_FLAG, float fDepth=1.f, Uint8 Stencil=0)=0Diligent::IDeviceContextpure virtual
ClearRenderTarget(ITextureView *pView, const float *RGBA=nullptr)=0Diligent::IDeviceContextpure virtual
CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags)=0Diligent::IDeviceContextpure virtual
DispatchCompute(const DispatchComputeAttribs &DispatchAttrs)=0Diligent::IDeviceContextpure virtual
Draw(DrawAttribs &DrawAttribs)=0Diligent::IDeviceContextpure virtual
ExecuteCommandList(ICommandList *pCommandList)=0Diligent::IDeviceContextpure virtual
FinishCommandList(ICommandList **ppCommandList)=0Diligent::IDeviceContextpure virtual
Flush()=0Diligent::IDeviceContextpure virtual
InvalidateState()=0Diligent::IDeviceContextpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceContextpure virtual
SetBlendFactors(const float *pBlendFactors=nullptr)=0Diligent::IDeviceContextpure virtual
SetIndexBuffer(IBuffer *pIndexBuffer, Uint32 ByteOffset)=0Diligent::IDeviceContextpure virtual
SetPipelineState(IPipelineState *pPipelineState)=0Diligent::IDeviceContextpure virtual
SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil)=0Diligent::IDeviceContextpure virtual
SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight)=0Diligent::IDeviceContextpure virtual
SetStencilRef(Uint32 StencilRef)=0Diligent::IDeviceContextpure virtual
SetSwapChain(ISwapChain *pSwapChain)=0Diligent::IDeviceContextpure virtual
SetVertexBuffers(Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags)=0Diligent::IDeviceContextpure virtual
SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight)=0Diligent::IDeviceContextpure virtual
TransitionBufferState(IBuffer *pBuffer, D3D12_RESOURCE_STATES State)=0Diligent::IDeviceContextD3D12pure virtual
TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding)=0Diligent::IDeviceContextpure virtual
TransitionTextureState(ITexture *pTexture, D3D12_RESOURCE_STATES State)=0Diligent::IDeviceContextD3D12pure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_device_context_d3_d12.html b/doc/html/class_diligent_1_1_i_device_context_d3_d12.html new file mode 100644 index 00000000..4fe3978f --- /dev/null +++ b/doc/html/class_diligent_1_1_i_device_context_d3_d12.html @@ -0,0 +1,271 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IDeviceContextD3D12 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IDeviceContextD3D12 Class Referenceabstract
+
+
+ +

Interface to the device context object implemented in D3D12. + More...

+
+Inheritance diagram for Diligent::IDeviceContextD3D12:
+
+
+ + +Diligent::IDeviceContext +Diligent::RefCountedObject< IDeviceContextD3D12 > +Diligent::ObjectBase< IDeviceContextD3D12 > +Diligent::DeviceContextBase< IDeviceContextD3D12 > +Diligent::DeviceContextD3D12Impl + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void TransitionTextureState (ITexture *pTexture, D3D12_RESOURCE_STATES State)=0
 Transitions internal D3D12 texture object to a specified state. More...
 
virtual void TransitionBufferState (IBuffer *pBuffer, D3D12_RESOURCE_STATES State)=0
 Transitions internal D3D12 buffer object to a specified state. More...
 
- Public Member Functions inherited from Diligent::IDeviceContext
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual void SetPipelineState (IPipelineState *pPipelineState)=0
 Sets the pipeline state. More...
 
virtual void TransitionShaderResources (IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding)=0
 Transitions shader resources to the require states. More...
 
virtual void CommitShaderResources (IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags)=0
 Commits shader resources to the device context. More...
 
virtual void SetStencilRef (Uint32 StencilRef)=0
 Sets the stencil reference value. More...
 
virtual void SetBlendFactors (const float *pBlendFactors=nullptr)=0
 
virtual void SetVertexBuffers (Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags)=0
 Binds vertex buffers to the pipeline. More...
 
virtual void InvalidateState ()=0
 Invalidates the cached context state. More...
 
virtual void SetIndexBuffer (IBuffer *pIndexBuffer, Uint32 ByteOffset)=0
 Binds an index buffer to the pipeline. More...
 
virtual void SetViewports (Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight)=0
 Sets an array of viewports. More...
 
virtual void SetScissorRects (Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight)=0
 Sets active scissor rects. More...
 
virtual void SetRenderTargets (Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil)=0
 Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewport to match the first non-null render target or depth-stencil buffer. More...
 
virtual void Draw (DrawAttribs &DrawAttribs)=0
 Executes a draw command. More...
 
virtual void DispatchCompute (const DispatchComputeAttribs &DispatchAttrs)=0
 Executes a dispatch compute command. More...
 
virtual void ClearDepthStencil (ITextureView *pView, Uint32 ClearFlags=CLEAR_DEPTH_FLAG, float fDepth=1.f, Uint8 Stencil=0)=0
 Clears a depth-stencil view. More...
 
virtual void ClearRenderTarget (ITextureView *pView, const float *RGBA=nullptr)=0
 Clears a render target view. More...
 
virtual void FinishCommandList (ICommandList **ppCommandList)=0
 Finishes recording commands and generates a command list. More...
 
virtual void ExecuteCommandList (ICommandList *pCommandList)=0
 Executes recorded commands in a command list. More...
 
+virtual void Flush ()=0
 Flushes the command buffer.
 
virtual void SetSwapChain (ISwapChain *pSwapChain)=0
 Sets the swap chain in the device context. More...
 
+

Detailed Description

+

Interface to the device context object implemented in D3D12.

+

Member Function Documentation

+ +

◆ TransitionBufferState()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IDeviceContextD3D12::TransitionBufferState (IBufferpBuffer,
D3D12_RESOURCE_STATES State 
)
+
+pure virtual
+
+ +

Transitions internal D3D12 buffer object to a specified state.

+
Parameters
+ + + +
[in]pBuffer- Buffer to transition
[in]State- D3D12 resource state this buffer to transition to
+
+
+ +

Implemented in Diligent::DeviceContextD3D12Impl.

+ +
+
+ +

◆ TransitionTextureState()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IDeviceContextD3D12::TransitionTextureState (ITexturepTexture,
D3D12_RESOURCE_STATES State 
)
+
+pure virtual
+
+ +

Transitions internal D3D12 texture object to a specified state.

+
Parameters
+ + + +
[in]pTexture- texture to transition
[in]State- D3D12 resource state this texture to transition to
+
+
+ +

Implemented in Diligent::DeviceContextD3D12Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_device_context_d3_d12.png b/doc/html/class_diligent_1_1_i_device_context_d3_d12.png new file mode 100644 index 00000000..d00cc7dc Binary files /dev/null and b/doc/html/class_diligent_1_1_i_device_context_d3_d12.png differ diff --git a/doc/html/class_diligent_1_1_i_device_context_g_l-members.html b/doc/html/class_diligent_1_1_i_device_context_g_l-members.html new file mode 100644 index 00000000..1dec50bb --- /dev/null +++ b/doc/html/class_diligent_1_1_i_device_context_g_l-members.html @@ -0,0 +1,107 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IDeviceContextGL Member List
+
+
+ +

This is the complete list of members for Diligent::IDeviceContextGL, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
ClearDepthStencil(ITextureView *pView, Uint32 ClearFlags=CLEAR_DEPTH_FLAG, float fDepth=1.f, Uint8 Stencil=0)=0Diligent::IDeviceContextpure virtual
ClearRenderTarget(ITextureView *pView, const float *RGBA=nullptr)=0Diligent::IDeviceContextpure virtual
CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags)=0Diligent::IDeviceContextpure virtual
DispatchCompute(const DispatchComputeAttribs &DispatchAttrs)=0Diligent::IDeviceContextpure virtual
Draw(DrawAttribs &DrawAttribs)=0Diligent::IDeviceContextpure virtual
ExecuteCommandList(ICommandList *pCommandList)=0Diligent::IDeviceContextpure virtual
FinishCommandList(ICommandList **ppCommandList)=0Diligent::IDeviceContextpure virtual
Flush()=0Diligent::IDeviceContextpure virtual
InvalidateState()=0Diligent::IDeviceContextpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceContextpure virtual
SetBlendFactors(const float *pBlendFactors=nullptr)=0Diligent::IDeviceContextpure virtual
SetIndexBuffer(IBuffer *pIndexBuffer, Uint32 ByteOffset)=0Diligent::IDeviceContextpure virtual
SetPipelineState(IPipelineState *pPipelineState)=0Diligent::IDeviceContextpure virtual
SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil)=0Diligent::IDeviceContextpure virtual
SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight)=0Diligent::IDeviceContextpure virtual
SetStencilRef(Uint32 StencilRef)=0Diligent::IDeviceContextpure virtual
SetSwapChain(ISwapChain *pSwapChain)=0Diligent::IDeviceContextpure virtual
SetVertexBuffers(Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags)=0Diligent::IDeviceContextpure virtual
SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight)=0Diligent::IDeviceContextpure virtual
TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding)=0Diligent::IDeviceContextpure virtual
UpdateCurrentGLContext()=0Diligent::IDeviceContextGLpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_device_context_g_l.html b/doc/html/class_diligent_1_1_i_device_context_g_l.html new file mode 100644 index 00000000..ffecf933 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_device_context_g_l.html @@ -0,0 +1,205 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IDeviceContextGL Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IDeviceContextGL Class Referenceabstract
+
+
+ +

Interface to the device context object implemented in OpenGL. + More...

+
+Inheritance diagram for Diligent::IDeviceContextGL:
+
+
+ + +Diligent::IDeviceContext +Diligent::RefCountedObject< IDeviceContextGL > +Diligent::ObjectBase< IDeviceContextGL > +Diligent::DeviceContextBase< IDeviceContextGL > +Diligent::DeviceContextGLImpl + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool UpdateCurrentGLContext ()=0
 Attaches to the active GL context in the thread. More...
 
- Public Member Functions inherited from Diligent::IDeviceContext
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual void SetPipelineState (IPipelineState *pPipelineState)=0
 Sets the pipeline state. More...
 
virtual void TransitionShaderResources (IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding)=0
 Transitions shader resources to the require states. More...
 
virtual void CommitShaderResources (IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags)=0
 Commits shader resources to the device context. More...
 
virtual void SetStencilRef (Uint32 StencilRef)=0
 Sets the stencil reference value. More...
 
virtual void SetBlendFactors (const float *pBlendFactors=nullptr)=0
 
virtual void SetVertexBuffers (Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags)=0
 Binds vertex buffers to the pipeline. More...
 
virtual void InvalidateState ()=0
 Invalidates the cached context state. More...
 
virtual void SetIndexBuffer (IBuffer *pIndexBuffer, Uint32 ByteOffset)=0
 Binds an index buffer to the pipeline. More...
 
virtual void SetViewports (Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight)=0
 Sets an array of viewports. More...
 
virtual void SetScissorRects (Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight)=0
 Sets active scissor rects. More...
 
virtual void SetRenderTargets (Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil)=0
 Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewport to match the first non-null render target or depth-stencil buffer. More...
 
virtual void Draw (DrawAttribs &DrawAttribs)=0
 Executes a draw command. More...
 
virtual void DispatchCompute (const DispatchComputeAttribs &DispatchAttrs)=0
 Executes a dispatch compute command. More...
 
virtual void ClearDepthStencil (ITextureView *pView, Uint32 ClearFlags=CLEAR_DEPTH_FLAG, float fDepth=1.f, Uint8 Stencil=0)=0
 Clears a depth-stencil view. More...
 
virtual void ClearRenderTarget (ITextureView *pView, const float *RGBA=nullptr)=0
 Clears a render target view. More...
 
virtual void FinishCommandList (ICommandList **ppCommandList)=0
 Finishes recording commands and generates a command list. More...
 
virtual void ExecuteCommandList (ICommandList *pCommandList)=0
 Executes recorded commands in a command list. More...
 
+virtual void Flush ()=0
 Flushes the command buffer.
 
virtual void SetSwapChain (ISwapChain *pSwapChain)=0
 Sets the swap chain in the device context. More...
 
+

Detailed Description

+

Interface to the device context object implemented in OpenGL.

+

Member Function Documentation

+ +

◆ UpdateCurrentGLContext()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool Diligent::IDeviceContextGL::UpdateCurrentGLContext ()
+
+pure virtual
+
+ +

Attaches to the active GL context in the thread.

+

If an application uses multiple GL contexts, this method must be called before any other command to let the engine update active context every time when control flow is passed over from the main application

+
Returns
false if there is no active GL context, and true otherwise
+ +

Implemented in Diligent::DeviceContextGLImpl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_device_context_g_l.png b/doc/html/class_diligent_1_1_i_device_context_g_l.png new file mode 100644 index 00000000..9b9fe0a4 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_device_context_g_l.png differ diff --git a/doc/html/class_diligent_1_1_i_device_object-members.html b/doc/html/class_diligent_1_1_i_device_object-members.html new file mode 100644 index 00000000..21c88346 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_device_object-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IDeviceObject Member List
+
+
+ +

This is the complete list of members for Diligent::IDeviceObject, including all inherited members.

+ + + +
GetDesc() const =0Diligent::IDeviceObjectpure virtual
QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_device_object.html b/doc/html/class_diligent_1_1_i_device_object.html new file mode 100644 index 00000000..d094ab45 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_device_object.html @@ -0,0 +1,119 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IDeviceObject Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IDeviceObject Class Referenceabstract
+
+
+ +

Base interface for all objects created by the render device Diligent::IRenderDevice. + More...

+
+Inheritance diagram for Diligent::IDeviceObject:
+
+
+ + +Diligent::IBuffer +Diligent::IBufferView +Diligent::ICommandList +Diligent::IPipelineState +Diligent::ISampler +Diligent::IShader +Diligent::ITexture +Diligent::ITextureView + +
+ + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const DeviceObjectAttribsGetDesc () const =0
 Returns the buffer object description.
 
+

Detailed Description

+

Base interface for all objects created by the render device Diligent::IRenderDevice.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_device_object.png b/doc/html/class_diligent_1_1_i_device_object.png new file mode 100644 index 00000000..d2919aed Binary files /dev/null and b/doc/html/class_diligent_1_1_i_device_object.png differ diff --git a/doc/html/class_diligent_1_1_i_file_stream-members.html b/doc/html/class_diligent_1_1_i_file_stream-members.html new file mode 100644 index 00000000..92671dc6 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_file_stream-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IFileStream Member List
+
+
+ +

This is the complete list of members for Diligent::IFileStream, including all inherited members.

+ + + + + + + +
AddRef()=0Diligent::IObjectpure virtual
GetReferenceCounters() const =0Diligent::IObjectpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IObjectpure virtual
Read(void *Data, size_t BufferSize)=0Diligent::IFileStreampure virtual
Release()=0Diligent::IObjectpure virtual
Write(const void *Data, size_t Size)=0Diligent::IFileStreampure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_file_stream.html b/doc/html/class_diligent_1_1_i_file_stream.html new file mode 100644 index 00000000..bd3161f6 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_file_stream.html @@ -0,0 +1,129 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IFileStream Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IFileStream Class Referenceabstract
+
+
+ +

Base interface for a file stream. + More...

+
+Inheritance diagram for Diligent::IFileStream:
+
+
+ + +Diligent::IObject +Diligent::RefCountedObject< IFileStream > +Diligent::ObjectBase< IFileStream > +Diligent::BasicFileStream + +
+ + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual bool Read (void *Data, size_t BufferSize)=0
 Reads data from the stream.
 
+virtual bool Write (const void *Data, size_t Size)=0
 Writes data to the stream.
 
- Public Member Functions inherited from Diligent::IObject
virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface. More...
 
virtual CounterValueType AddRef ()=0
 Increments the number of strong references by 1. More...
 
virtual CounterValueType Release ()=0
 Decrements the number of strong references by 1 and destroys the object when the counter reaches zero. More...
 
+virtual IReferenceCountersGetReferenceCounters () const =0
 Returns the pointer to IReferenceCounters interface of the associated reference counters object. The method does NOT increment the number of strong references to the returned object.
 
+

Detailed Description

+

Base interface for a file stream.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_file_stream.png b/doc/html/class_diligent_1_1_i_file_stream.png new file mode 100644 index 00000000..29be0e74 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_file_stream.png differ diff --git a/doc/html/class_diligent_1_1_i_h_l_s_l2_g_l_s_l_converter-members.html b/doc/html/class_diligent_1_1_i_h_l_s_l2_g_l_s_l_converter-members.html new file mode 100644 index 00000000..5351e25f --- /dev/null +++ b/doc/html/class_diligent_1_1_i_h_l_s_l2_g_l_s_l_converter-members.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IHLSL2GLSLConverter Member List
+
+
+ +

This is the complete list of members for Diligent::IHLSL2GLSLConverter, including all inherited members.

+ + + + + +
AddRef()=0Diligent::IObjectpure virtual
GetReferenceCounters() const =0Diligent::IObjectpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IObjectpure virtual
Release()=0Diligent::IObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_h_l_s_l2_g_l_s_l_converter.html b/doc/html/class_diligent_1_1_i_h_l_s_l2_g_l_s_l_converter.html new file mode 100644 index 00000000..dc55a3ca --- /dev/null +++ b/doc/html/class_diligent_1_1_i_h_l_s_l2_g_l_s_l_converter.html @@ -0,0 +1,120 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IHLSL2GLSLConverter Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IHLSL2GLSLConverter Class Referenceabstract
+
+
+ +

Interface to the buffer object implemented in OpenGL. + More...

+
+Inheritance diagram for Diligent::IHLSL2GLSLConverter:
+
+
+ + +Diligent::IObject +Diligent::RefCountedObject< IHLSL2GLSLConverter > +Diligent::ObjectBase< IHLSL2GLSLConverter > +Diligent::HLSL2GLSLConverterObject + +
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::IObject
virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface. More...
 
virtual CounterValueType AddRef ()=0
 Increments the number of strong references by 1. More...
 
virtual CounterValueType Release ()=0
 Decrements the number of strong references by 1 and destroys the object when the counter reaches zero. More...
 
+virtual IReferenceCountersGetReferenceCounters () const =0
 Returns the pointer to IReferenceCounters interface of the associated reference counters object. The method does NOT increment the number of strong references to the returned object.
 
+

Detailed Description

+

Interface to the buffer object implemented in OpenGL.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_h_l_s_l2_g_l_s_l_converter.png b/doc/html/class_diligent_1_1_i_h_l_s_l2_g_l_s_l_converter.png new file mode 100644 index 00000000..5ec322ad Binary files /dev/null and b/doc/html/class_diligent_1_1_i_h_l_s_l2_g_l_s_l_converter.png differ diff --git a/doc/html/class_diligent_1_1_i_memory_allocator-members.html b/doc/html/class_diligent_1_1_i_memory_allocator-members.html new file mode 100644 index 00000000..4c7142da --- /dev/null +++ b/doc/html/class_diligent_1_1_i_memory_allocator-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IMemoryAllocator Member List
+
+
+ +

This is the complete list of members for Diligent::IMemoryAllocator, including all inherited members.

+ + + +
Allocate(size_t Size, const Char *dbgDescription, const char *dbgFileName, const Int32 dbgLineNumber)=0Diligent::IMemoryAllocatorpure virtual
Free(void *Ptr)=0Diligent::IMemoryAllocatorpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_memory_allocator.html b/doc/html/class_diligent_1_1_i_memory_allocator.html new file mode 100644 index 00000000..d2e2c894 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_memory_allocator.html @@ -0,0 +1,112 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IMemoryAllocator Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IMemoryAllocator Class Referenceabstract
+
+
+ +

Base interface for a raw memory allocator. + More...

+
+Inheritance diagram for Diligent::IMemoryAllocator:
+
+
+ + +Diligent::FixedBlockMemoryAllocator + +
+ + + + + + + + +

+Public Member Functions

+virtual void * Allocate (size_t Size, const Char *dbgDescription, const char *dbgFileName, const Int32 dbgLineNumber)=0
 Allocates block of memory.
 
+virtual void Free (void *Ptr)=0
 Releases memory.
 
+

Detailed Description

+

Base interface for a raw memory allocator.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_memory_allocator.png b/doc/html/class_diligent_1_1_i_memory_allocator.png new file mode 100644 index 00000000..bee62f56 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_memory_allocator.png differ diff --git a/doc/html/class_diligent_1_1_i_object-members.html b/doc/html/class_diligent_1_1_i_object-members.html new file mode 100644 index 00000000..b39787d9 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_object-members.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IObject Member List
+
+
+ +

This is the complete list of members for Diligent::IObject, including all inherited members.

+ + + + + +
AddRef()=0Diligent::IObjectpure virtual
GetReferenceCounters() const =0Diligent::IObjectpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IObjectpure virtual
Release()=0Diligent::IObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_object.html b/doc/html/class_diligent_1_1_i_object.html new file mode 100644 index 00000000..2ef42c47 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_object.html @@ -0,0 +1,242 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IObject Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IObject Class Referenceabstract
+
+
+ +

Base interface for all dynamic objects in the engine. + More...

+
+Inheritance diagram for Diligent::IObject:
+
+
+ + +Diligent::ICommandQueueD3D12 +Diligent::IDataBlob +Diligent::IDeviceContext +Diligent::IDeviceObject +Diligent::IFileStream +Diligent::IHLSL2GLSLConverter +Diligent::IRenderDevice +Diligent::IResourceMapping +Diligent::IShaderResourceBinding +Diligent::IShaderVariable +Diligent::ISwapChain + +
+ + + + + + + + + + + + + + +

+Public Member Functions

virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface. More...
 
virtual CounterValueType AddRef ()=0
 Increments the number of strong references by 1. More...
 
virtual CounterValueType Release ()=0
 Decrements the number of strong references by 1 and destroys the object when the counter reaches zero. More...
 
+virtual IReferenceCountersGetReferenceCounters () const =0
 Returns the pointer to IReferenceCounters interface of the associated reference counters object. The method does NOT increment the number of strong references to the returned object.
 
+

Detailed Description

+

Base interface for all dynamic objects in the engine.

+

Member Function Documentation

+ +

◆ AddRef()

+ +
+
+ + + + + +
+ + + + + + + +
virtual CounterValueType Diligent::IObject::AddRef ()
+
+pure virtual
+
+ +

Increments the number of strong references by 1.

+
Remarks
This method is equivalent to GetReferenceCounters()->AddStrongRef().
+ The method is thread-safe and does not require explicit synchronization.
+
Returns
The number of strong references after incrementing the counter.
+
Note
In a multithreaded environment, the returned number may not be reliable as other threads may simultaneously change the actual value of the counter.
+ +

Implemented in Diligent::ShaderVariableBase.

+ +
+
+ +

◆ QueryInterface()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IObject::QueryInterface (const Diligent::INTERFACE_IDIID,
IObject ** ppInterface 
)
+
+pure virtual
+
+ +

Queries the specific interface.

+
Parameters
+ + + +
[in]IID- Unique identifier of the requested interface.
[out]ppInterface- Memory address where the pointer to the requested interface will be written. If the interface is not supported, null pointer will be returned.
+
+
+
Remarks
The method increments the number of strong references by 1. The interface must be released by a call to Release() method when it is no longer needed.
+ +

Implemented in Diligent::IDeviceContext, Diligent::IShader, Diligent::ITexture, Diligent::IPipelineState, Diligent::IBuffer, Diligent::ISampler, Diligent::ITextureView, Diligent::ShaderVariableBase, Diligent::ResourceMappingImpl, Diligent::IBufferView, Diligent::IResourceMapping, Diligent::ShaderGLImpl, Diligent::BufferD3D11Impl, Diligent::TextureBaseGL, Diligent::TextureBaseD3D11, Diligent::TextureD3D12Impl, Diligent::BufferGLImpl, Diligent::IRenderDevice, Diligent::BufferD3D12Impl, Diligent::BufferViewGLImpl, Diligent::ShaderD3D11Impl, Diligent::TextureViewD3D11Impl, Diligent::BufferViewD3D12Impl, Diligent::RenderDeviceD3D12Impl, Diligent::TextureViewD3D12Impl, Diligent::BufferViewD3D11Impl, Diligent::PipelineStateD3D12Impl, Diligent::SwapChainD3D12Impl, Diligent::TextureViewGLImpl, Diligent::DeviceContextD3D12Impl, Diligent::BasicFileStream, Diligent::PipelineStateD3D11Impl, Diligent::ShaderResourceBindingD3D11Impl, Diligent::SwapChainD3D11Impl, Diligent::ShaderResourceBindingD3D12Impl, Diligent::PipelineStateGLImpl, Diligent::DeviceContextD3D11Impl, Diligent::SamplerD3D12Impl, Diligent::ShaderResourceBindingGLImpl, Diligent::SamplerD3D11Impl, Diligent::DataBlobImpl, Diligent::SamplerGLImpl, Diligent::SwapChainGLImpl, Diligent::IDeviceObject, Diligent::IShaderResourceBinding, Diligent::RenderDeviceD3D11Impl, Diligent::CommandQueueD3D12Impl, and Diligent::DeviceContextGLImpl.

+ +
+
+ +

◆ Release()

+ +
+
+ + + + + +
+ + + + + + + +
virtual CounterValueType Diligent::IObject::Release ()
+
+pure virtual
+
+ +

Decrements the number of strong references by 1 and destroys the object when the counter reaches zero.

+
Remarks
This method is equivalent to GetReferenceCounters()->ReleaseStrongRef().
+ The method is thread-safe and does not require explicit synchronization.
+
Returns
The number of strong references after decrementing the counter.
+
Note
In a multithreaded environment, the returned number may not be reliable as other threads may simultaneously change the actual value of the counter. The only reliable value is 0 as the object is destroyed when the last strong reference is released.
+ +

Implemented in Diligent::ShaderVariableBase.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_object.png b/doc/html/class_diligent_1_1_i_object.png new file mode 100644 index 00000000..0f53100e Binary files /dev/null and b/doc/html/class_diligent_1_1_i_object.png differ diff --git a/doc/html/class_diligent_1_1_i_pipeline_state-members.html b/doc/html/class_diligent_1_1_i_pipeline_state-members.html new file mode 100644 index 00000000..45033ab8 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_pipeline_state-members.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IPipelineState Member List
+
+
+ +

This is the complete list of members for Diligent::IPipelineState, including all inherited members.

+ + + + + +
BindShaderResources(IResourceMapping *pResourceMapping, Uint32 Flags)=0Diligent::IPipelineStatepure virtual
CreateShaderResourceBinding(IShaderResourceBinding **ppShaderResourceBinding)=0Diligent::IPipelineStatepure virtual
GetDesc() const =0Diligent::IPipelineStatepure virtual
QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IPipelineStatepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_pipeline_state.html b/doc/html/class_diligent_1_1_i_pipeline_state.html new file mode 100644 index 00000000..53210e85 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_pipeline_state.html @@ -0,0 +1,218 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IPipelineState Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IPipelineState Class Referenceabstract
+
+
+
+Inheritance diagram for Diligent::IPipelineState:
+
+
+ + +Diligent::IDeviceObject +Diligent::IPipelineStateD3D11 +Diligent::IPipelineStateD3D12 +Diligent::IPipelineStateGL +Diligent::RefCountedObject< IPipelineStateD3D11 > +Diligent::RefCountedObject< IPipelineStateD3D12 > +Diligent::RefCountedObject< IPipelineStateGL > +Diligent::ObjectBase< IPipelineStateD3D11 > +Diligent::ObjectBase< IPipelineStateD3D12 > +Diligent::ObjectBase< IPipelineStateGL > +Diligent::DeviceObjectBase< IPipelineStateD3D11, PipelineStateDesc > +Diligent::DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc > +Diligent::DeviceObjectBase< IPipelineStateGL, PipelineStateDesc > +Diligent::PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 > +Diligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 > +Diligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface > +Diligent::PipelineStateD3D11Impl +Diligent::PipelineStateD3D12Impl +Diligent::PipelineStateGLImpl + +
+ + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const PipelineStateDescGetDesc () const =0
 Returns the blend state description used to create the object.
 
virtual void BindShaderResources (IResourceMapping *pResourceMapping, Uint32 Flags)=0
 Binds resources for all shaders in the pipeline state. More...
 
virtual void CreateShaderResourceBinding (IShaderResourceBinding **ppShaderResourceBinding)=0
 Creates a shader resource binding object. More...
 
+

Detailed Description

+

Pipeline state interface

+

Member Function Documentation

+ +

◆ BindShaderResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IPipelineState::BindShaderResources (IResourceMappingpResourceMapping,
Uint32 Flags 
)
+
+pure virtual
+
+ +

Binds resources for all shaders in the pipeline state.

+
Parameters
+ + + +
[in]pResourceMapping- Pointer to the resource mapping interface.
[in]Flags- Additional flags. See Diligent::BIND_SHADER_RESOURCES_FLAGS.
+
+
+
Remarks
For older OpenGL devices that do not support program pipelines (OpenGL4.1-, OpenGLES3.0-). This function is the only way to bind shader resources.
+ +

Implemented in Diligent::PipelineStateD3D11Impl, Diligent::PipelineStateD3D12Impl, and Diligent::PipelineStateGLImpl.

+ +
+
+ +

◆ CreateShaderResourceBinding()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::IPipelineState::CreateShaderResourceBinding (IShaderResourceBinding ** ppShaderResourceBinding)
+
+pure virtual
+
+ +

Creates a shader resource binding object.

+
Parameters
+ + +
[out]ppShaderResourceBinding- memory location where pointer to the new shader resource binding object is written.
+
+
+ +

Implemented in Diligent::PipelineStateD3D11Impl, Diligent::PipelineStateD3D12Impl, and Diligent::PipelineStateGLImpl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_pipeline_state.png b/doc/html/class_diligent_1_1_i_pipeline_state.png new file mode 100644 index 00000000..af32dc66 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_pipeline_state.png differ diff --git a/doc/html/class_diligent_1_1_i_pipeline_state_d3_d11-members.html b/doc/html/class_diligent_1_1_i_pipeline_state_d3_d11-members.html new file mode 100644 index 00000000..6dd231cd --- /dev/null +++ b/doc/html/class_diligent_1_1_i_pipeline_state_d3_d11-members.html @@ -0,0 +1,100 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IPipelineStateD3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::IPipelineStateD3D11, including all inherited members.

+ + + + + + + + + + + + + + + +
BindShaderResources(IResourceMapping *pResourceMapping, Uint32 Flags)=0Diligent::IPipelineStatepure virtual
CreateShaderResourceBinding(IShaderResourceBinding **ppShaderResourceBinding)=0Diligent::IPipelineStatepure virtual
GetD3D11BlendState()=0Diligent::IPipelineStateD3D11pure virtual
GetD3D11ComputeShader()=0Diligent::IPipelineStateD3D11pure virtual
GetD3D11DepthStencilState()=0Diligent::IPipelineStateD3D11pure virtual
GetD3D11DomainShader()=0Diligent::IPipelineStateD3D11pure virtual
GetD3D11GeometryShader()=0Diligent::IPipelineStateD3D11pure virtual
GetD3D11HullShader()=0Diligent::IPipelineStateD3D11pure virtual
GetD3D11InputLayout()=0Diligent::IPipelineStateD3D11pure virtual
GetD3D11PixelShader()=0Diligent::IPipelineStateD3D11pure virtual
GetD3D11RasterizerState()=0Diligent::IPipelineStateD3D11pure virtual
GetD3D11VertexShader()=0Diligent::IPipelineStateD3D11pure virtual
GetDesc() const =0Diligent::IPipelineStatepure virtual
QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IPipelineStatepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_pipeline_state_d3_d11.html b/doc/html/class_diligent_1_1_i_pipeline_state_d3_d11.html new file mode 100644 index 00000000..8fd6b071 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_pipeline_state_d3_d11.html @@ -0,0 +1,456 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IPipelineStateD3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IPipelineStateD3D11 Class Referenceabstract
+
+
+ +

Interface to the blend state object implemented in D3D11. + More...

+
+Inheritance diagram for Diligent::IPipelineStateD3D11:
+
+
+ + +Diligent::IPipelineState +Diligent::IDeviceObject +Diligent::RefCountedObject< IPipelineStateD3D11 > +Diligent::ObjectBase< IPipelineStateD3D11 > +Diligent::DeviceObjectBase< IPipelineStateD3D11, PipelineStateDesc > +Diligent::PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 > +Diligent::PipelineStateD3D11Impl + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ID3D11BlendState * GetD3D11BlendState ()=0
 Returns a pointer to the ID3D11BlendState interface of the internal Direct3D11 object. More...
 
virtual ID3D11RasterizerState * GetD3D11RasterizerState ()=0
 Returns a pointer to the ID3D11RasterizerState interface of the internal Direct3D11 object. More...
 
virtual ID3D11DepthStencilState * GetD3D11DepthStencilState ()=0
 Returns a pointer to the ID3D11DepthStencilState interface of the internal Direct3D11 object. More...
 
virtual ID3D11InputLayout * GetD3D11InputLayout ()=0
 Returns a pointer to the ID3D11InputLayout interface of the internal Direct3D11 object. More...
 
virtual ID3D11VertexShader * GetD3D11VertexShader ()=0
 Returns a pointer to the ID3D11VertexShader interface of the internal vertex shader object. More...
 
virtual ID3D11PixelShader * GetD3D11PixelShader ()=0
 Returns a pointer to the ID3D11PixelShader interface of the internal pixel shader object. More...
 
virtual ID3D11GeometryShader * GetD3D11GeometryShader ()=0
 Returns a pointer to the ID3D11GeometryShader interface of the internal geometry shader object. More...
 
virtual ID3D11DomainShader * GetD3D11DomainShader ()=0
 Returns a pointer to the ID3D11DomainShader interface of the internal domain shader object. More...
 
virtual ID3D11HullShader * GetD3D11HullShader ()=0
 Returns a pointer to the ID3D11HullShader interface of the internal hull shader object. More...
 
virtual ID3D11ComputeShader * GetD3D11ComputeShader ()=0
 Returns a pointer to the ID3D11ComputeShader interface of the internal compute shader object. More...
 
- Public Member Functions inherited from Diligent::IPipelineState
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const PipelineStateDescGetDesc () const =0
 Returns the blend state description used to create the object.
 
virtual void BindShaderResources (IResourceMapping *pResourceMapping, Uint32 Flags)=0
 Binds resources for all shaders in the pipeline state. More...
 
virtual void CreateShaderResourceBinding (IShaderResourceBinding **ppShaderResourceBinding)=0
 Creates a shader resource binding object. More...
 
+

Detailed Description

+

Interface to the blend state object implemented in D3D11.

+

Member Function Documentation

+ +

◆ GetD3D11BlendState()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11BlendState* Diligent::IPipelineStateD3D11::GetD3D11BlendState ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11BlendState interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::PipelineStateD3D11Impl.

+ +
+
+ +

◆ GetD3D11ComputeShader()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11ComputeShader* Diligent::IPipelineStateD3D11::GetD3D11ComputeShader ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11ComputeShader interface of the internal compute shader object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::PipelineStateD3D11Impl.

+ +
+
+ +

◆ GetD3D11DepthStencilState()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11DepthStencilState* Diligent::IPipelineStateD3D11::GetD3D11DepthStencilState ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11DepthStencilState interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::PipelineStateD3D11Impl.

+ +
+
+ +

◆ GetD3D11DomainShader()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11DomainShader* Diligent::IPipelineStateD3D11::GetD3D11DomainShader ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11DomainShader interface of the internal domain shader object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::PipelineStateD3D11Impl.

+ +
+
+ +

◆ GetD3D11GeometryShader()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11GeometryShader* Diligent::IPipelineStateD3D11::GetD3D11GeometryShader ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11GeometryShader interface of the internal geometry shader object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::PipelineStateD3D11Impl.

+ +
+
+ +

◆ GetD3D11HullShader()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11HullShader* Diligent::IPipelineStateD3D11::GetD3D11HullShader ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11HullShader interface of the internal hull shader object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::PipelineStateD3D11Impl.

+ +
+
+ +

◆ GetD3D11InputLayout()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11InputLayout* Diligent::IPipelineStateD3D11::GetD3D11InputLayout ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11InputLayout interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::PipelineStateD3D11Impl.

+ +
+
+ +

◆ GetD3D11PixelShader()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11PixelShader* Diligent::IPipelineStateD3D11::GetD3D11PixelShader ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11PixelShader interface of the internal pixel shader object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::PipelineStateD3D11Impl.

+ +
+
+ +

◆ GetD3D11RasterizerState()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11RasterizerState* Diligent::IPipelineStateD3D11::GetD3D11RasterizerState ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11RasterizerState interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::PipelineStateD3D11Impl.

+ +
+
+ +

◆ GetD3D11VertexShader()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11VertexShader* Diligent::IPipelineStateD3D11::GetD3D11VertexShader ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11VertexShader interface of the internal vertex shader object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::PipelineStateD3D11Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_pipeline_state_d3_d11.png b/doc/html/class_diligent_1_1_i_pipeline_state_d3_d11.png new file mode 100644 index 00000000..59afbf8d Binary files /dev/null and b/doc/html/class_diligent_1_1_i_pipeline_state_d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_i_pipeline_state_d3_d12-members.html b/doc/html/class_diligent_1_1_i_pipeline_state_d3_d12-members.html new file mode 100644 index 00000000..8fe94572 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_pipeline_state_d3_d12-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IPipelineStateD3D12 Member List
+
+
+ +

This is the complete list of members for Diligent::IPipelineStateD3D12, including all inherited members.

+ + + + + + + +
BindShaderResources(IResourceMapping *pResourceMapping, Uint32 Flags)=0Diligent::IPipelineStatepure virtual
CreateShaderResourceBinding(IShaderResourceBinding **ppShaderResourceBinding)=0Diligent::IPipelineStatepure virtual
GetD3D12PipelineState() const =0Diligent::IPipelineStateD3D12pure virtual
GetD3D12RootSignature() const =0Diligent::IPipelineStateD3D12pure virtual
GetDesc() const =0Diligent::IPipelineStatepure virtual
QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IPipelineStatepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_pipeline_state_d3_d12.html b/doc/html/class_diligent_1_1_i_pipeline_state_d3_d12.html new file mode 100644 index 00000000..bfe13b62 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_pipeline_state_d3_d12.html @@ -0,0 +1,192 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IPipelineStateD3D12 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IPipelineStateD3D12 Class Referenceabstract
+
+
+ +

Interface to the blend state object implemented in D3D12. + More...

+
+Inheritance diagram for Diligent::IPipelineStateD3D12:
+
+
+ + +Diligent::IPipelineState +Diligent::IDeviceObject +Diligent::RefCountedObject< IPipelineStateD3D12 > +Diligent::ObjectBase< IPipelineStateD3D12 > +Diligent::DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc > +Diligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 > +Diligent::PipelineStateD3D12Impl + +
+ + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ID3D12PipelineState * GetD3D12PipelineState () const =0
 Returns ID3D12PipelineState interface of the internal D3D12 pipeline state object object. More...
 
virtual ID3D12RootSignature * GetD3D12RootSignature () const =0
 Returns a pointer to the root signature object associated with this pipeline state. More...
 
- Public Member Functions inherited from Diligent::IPipelineState
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const PipelineStateDescGetDesc () const =0
 Returns the blend state description used to create the object.
 
virtual void BindShaderResources (IResourceMapping *pResourceMapping, Uint32 Flags)=0
 Binds resources for all shaders in the pipeline state. More...
 
virtual void CreateShaderResourceBinding (IShaderResourceBinding **ppShaderResourceBinding)=0
 Creates a shader resource binding object. More...
 
+

Detailed Description

+

Interface to the blend state object implemented in D3D12.

+

Member Function Documentation

+ +

◆ GetD3D12PipelineState()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D12PipelineState* Diligent::IPipelineStateD3D12::GetD3D12PipelineState () const
+
+pure virtual
+
+ +

Returns ID3D12PipelineState interface of the internal D3D12 pipeline state object object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::PipelineStateD3D12Impl.

+ +
+
+ +

◆ GetD3D12RootSignature()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D12RootSignature* Diligent::IPipelineStateD3D12::GetD3D12RootSignature () const
+
+pure virtual
+
+ +

Returns a pointer to the root signature object associated with this pipeline state.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::PipelineStateD3D12Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_pipeline_state_d3_d12.png b/doc/html/class_diligent_1_1_i_pipeline_state_d3_d12.png new file mode 100644 index 00000000..d4b78bfd Binary files /dev/null and b/doc/html/class_diligent_1_1_i_pipeline_state_d3_d12.png differ diff --git a/doc/html/class_diligent_1_1_i_pipeline_state_g_l-members.html b/doc/html/class_diligent_1_1_i_pipeline_state_g_l-members.html new file mode 100644 index 00000000..bba2b74d --- /dev/null +++ b/doc/html/class_diligent_1_1_i_pipeline_state_g_l-members.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IPipelineStateGL Member List
+
+
+ +

This is the complete list of members for Diligent::IPipelineStateGL, including all inherited members.

+ + + + + +
BindShaderResources(IResourceMapping *pResourceMapping, Uint32 Flags)=0Diligent::IPipelineStatepure virtual
CreateShaderResourceBinding(IShaderResourceBinding **ppShaderResourceBinding)=0Diligent::IPipelineStatepure virtual
GetDesc() const =0Diligent::IPipelineStatepure virtual
QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IPipelineStatepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_pipeline_state_g_l.html b/doc/html/class_diligent_1_1_i_pipeline_state_g_l.html new file mode 100644 index 00000000..00e967ec --- /dev/null +++ b/doc/html/class_diligent_1_1_i_pipeline_state_g_l.html @@ -0,0 +1,124 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IPipelineStateGL Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IPipelineStateGL Class Reference
+
+
+ +

Interface to the PipelineState object implemented in OpenGL. + More...

+
+Inheritance diagram for Diligent::IPipelineStateGL:
+
+
+ + +Diligent::IPipelineState +Diligent::IDeviceObject +Diligent::RefCountedObject< IPipelineStateGL > +Diligent::ObjectBase< IPipelineStateGL > +Diligent::DeviceObjectBase< IPipelineStateGL, PipelineStateDesc > +Diligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface > +Diligent::PipelineStateGLImpl + +
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::IPipelineState
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const PipelineStateDescGetDesc () const =0
 Returns the blend state description used to create the object.
 
virtual void BindShaderResources (IResourceMapping *pResourceMapping, Uint32 Flags)=0
 Binds resources for all shaders in the pipeline state. More...
 
virtual void CreateShaderResourceBinding (IShaderResourceBinding **ppShaderResourceBinding)=0
 Creates a shader resource binding object. More...
 
+

Detailed Description

+

Interface to the PipelineState object implemented in OpenGL.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_pipeline_state_g_l.png b/doc/html/class_diligent_1_1_i_pipeline_state_g_l.png new file mode 100644 index 00000000..64f62fdf Binary files /dev/null and b/doc/html/class_diligent_1_1_i_pipeline_state_g_l.png differ diff --git a/doc/html/class_diligent_1_1_i_reference_counters-members.html b/doc/html/class_diligent_1_1_i_reference_counters-members.html new file mode 100644 index 00000000..3d2b5c4f --- /dev/null +++ b/doc/html/class_diligent_1_1_i_reference_counters-members.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IReferenceCounters Member List
+
+
+ +

This is the complete list of members for Diligent::IReferenceCounters, including all inherited members.

+ + + + + + + + +
AddStrongRef()=0Diligent::IReferenceCounterspure virtual
AddWeakRef()=0Diligent::IReferenceCounterspure virtual
GetNumStrongRefs() const =0Diligent::IReferenceCounterspure virtual
GetNumWeakRefs() const =0Diligent::IReferenceCounterspure virtual
GetObject(class IObject **ppObject)=0Diligent::IReferenceCounterspure virtual
ReleaseStrongRef()=0Diligent::IReferenceCounterspure virtual
ReleaseWeakRef()=0Diligent::IReferenceCounterspure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_reference_counters.html b/doc/html/class_diligent_1_1_i_reference_counters.html new file mode 100644 index 00000000..f48b5c83 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_reference_counters.html @@ -0,0 +1,335 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IReferenceCounters Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IReferenceCounters Class Referenceabstract
+
+
+ +

Base interface for a reference counter object that stores the number of strong and weak references and the pointer to the object. It is necessary to separate reference counters from the object to support weak pointers. + More...

+ +

Inherited by Diligent::RefCountersImpl.

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

+Public Member Functions

virtual CounterValueType AddStrongRef ()=0
 Increments the number of strong references by 1. More...
 
virtual CounterValueType ReleaseStrongRef ()=0
 Decrements the number of strong references by 1 and destroys the referenced object when the counter reaches zero. If there are no more weak references, destroys the reference counters object itself. More...
 
virtual CounterValueType AddWeakRef ()=0
 Increments the number of weak references by 1. More...
 
virtual CounterValueType ReleaseWeakRef ()=0
 Decrements the number of weak references by 1. If there are no more strong and weak references, destroys the reference counters object itself. More...
 
virtual void GetObject (class IObject **ppObject)=0
 Gets the pointer to the IUnknown interface of the referenced object. More...
 
virtual CounterValueType GetNumStrongRefs () const =0
 Returns the number of outstanding strong references. More...
 
virtual CounterValueType GetNumWeakRefs () const =0
 Returns the number of outstanding weak references. More...
 
+

Detailed Description

+

Base interface for a reference counter object that stores the number of strong and weak references and the pointer to the object. It is necessary to separate reference counters from the object to support weak pointers.

+

Member Function Documentation

+ +

◆ AddStrongRef()

+ +
+
+ + + + + +
+ + + + + + + +
virtual CounterValueType Diligent::IReferenceCounters::AddStrongRef ()
+
+pure virtual
+
+ +

Increments the number of strong references by 1.

+
Returns
The number of strong references after incrementing the counter.
+
Remarks
The method is thread-safe and does not require explicit synchronization.
+
Note
In a multithreaded environment, the returned number may not be reliable as other threads may simultaneously change the actual value of the counter.
+ +
+
+ +

◆ AddWeakRef()

+ +
+
+ + + + + +
+ + + + + + + +
virtual CounterValueType Diligent::IReferenceCounters::AddWeakRef ()
+
+pure virtual
+
+ +

Increments the number of weak references by 1.

+
Returns
The number of weak references after incrementing the counter.
+
Remarks
The method is thread-safe and does not require explicit synchronization.
+
Note
In a multithreaded environment, the returned number may not be reliable as other threads may simultaneously change the actual value of the counter.
+ +
+
+ +

◆ GetNumStrongRefs()

+ +
+
+ + + + + +
+ + + + + + + +
virtual CounterValueType Diligent::IReferenceCounters::GetNumStrongRefs () const
+
+pure virtual
+
+ +

Returns the number of outstanding strong references.

+
Returns
The number of strong references.
+
Note
In a multithreaded environment, the returned number may not be reliable as other threads may simultaneously change the actual value of the counter. The only reliable value is 0 as the object is destroyed when the last strong reference is released.
+ +
+
+ +

◆ GetNumWeakRefs()

+ +
+
+ + + + + +
+ + + + + + + +
virtual CounterValueType Diligent::IReferenceCounters::GetNumWeakRefs () const
+
+pure virtual
+
+ +

Returns the number of outstanding weak references.

+
Returns
The number of weak references.
+
Note
In a multithreaded environment, the returned number may not be reliable as other threads may simultaneously change the actual value of the counter.
+ +
+
+ +

◆ GetObject()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::IReferenceCounters::GetObject (class IObject ** ppObject)
+
+pure virtual
+
+ +

Gets the pointer to the IUnknown interface of the referenced object.

+
Parameters
+ + +
[out]ppObject- Memory address where the pointer to the object will be stored.
+
+
+
Remarks
If the object was destroyed, nullptr will be written to *ppObject. If the object was not released, the pointer to the object's IUnknown interface will be stored. In this case, the number of strong references to the object will be incremented by 1.
+ The method is thread-safe and does not require explicit synchronization.
+ +
+
+ +

◆ ReleaseStrongRef()

+ +
+
+ + + + + +
+ + + + + + + +
virtual CounterValueType Diligent::IReferenceCounters::ReleaseStrongRef ()
+
+pure virtual
+
+ +

Decrements the number of strong references by 1 and destroys the referenced object when the counter reaches zero. If there are no more weak references, destroys the reference counters object itself.

+
Returns
The number of strong references after decrementing the counter.
+
Remarks
The referenced object is destroyed when the last strong reference is released.
+ If there are no more weak references, the reference counters object itself is also destroyed.
+ The method is thread-safe and does not require explicit synchronization.
+
Note
In a multithreaded environment, the returned number may not be reliable as other threads may simultaneously change the actual value of the counter. The only reliable value is 0 as the object is destroyed when the last strong reference is released.
+ +
+
+ +

◆ ReleaseWeakRef()

+ +
+
+ + + + + +
+ + + + + + + +
virtual CounterValueType Diligent::IReferenceCounters::ReleaseWeakRef ()
+
+pure virtual
+
+ +

Decrements the number of weak references by 1. If there are no more strong and weak references, destroys the reference counters object itself.

+
Returns
The number of weak references after decrementing the counter.
+
Remarks
The method is thread-safe and does not require explicit synchronization.
+
Note
In a multithreaded environment, the returned number may not be reliable as other threads may simultaneously change the actual value of the counter.
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_render_device-members.html b/doc/html/class_diligent_1_1_i_render_device-members.html new file mode 100644 index 00000000..8cdd73b4 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_render_device-members.html @@ -0,0 +1,96 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IRenderDevice Member List
+
+
+ +

This is the complete list of members for Diligent::IRenderDevice, including all inherited members.

+ + + + + + + + + + + +
CreateBuffer(const BufferDesc &BuffDesc, const BufferData &BuffData, IBuffer **ppBuffer)=0Diligent::IRenderDevicepure virtual
CreatePipelineState(const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState)=0Diligent::IRenderDevicepure virtual
CreateResourceMapping(const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping)=0Diligent::IRenderDevicepure virtual
CreateSampler(const SamplerDesc &SamDesc, ISampler **ppSampler)=0Diligent::IRenderDevicepure virtual
CreateShader(const ShaderCreationAttribs &CreationAttribs, IShader **ppShader)=0Diligent::IRenderDevicepure virtual
CreateTexture(const TextureDesc &TexDesc, const TextureData &Data, ITexture **ppTexture)=0Diligent::IRenderDevicepure virtual
GetDeviceCaps() const =0Diligent::IRenderDevicepure virtual
GetTextureFormatInfo(TEXTURE_FORMAT TexFormat)=0Diligent::IRenderDevicepure virtual
GetTextureFormatInfoExt(TEXTURE_FORMAT TexFormat)=0Diligent::IRenderDevicepure virtual
QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IRenderDevicepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_render_device.html b/doc/html/class_diligent_1_1_i_render_device.html new file mode 100644 index 00000000..103d7fe0 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_render_device.html @@ -0,0 +1,505 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IRenderDevice Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IRenderDevice Class Referenceabstract
+
+
+ +

Render device interface. + More...

+
+Inheritance diagram for Diligent::IRenderDevice:
+
+
+ + +Diligent::IRenderDeviceD3D11 +Diligent::IRenderDeviceD3D12 +Diligent::IRenderDeviceGL +Diligent::IRenderDeviceGLES + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual void CreateBuffer (const BufferDesc &BuffDesc, const BufferData &BuffData, IBuffer **ppBuffer)=0
 Creates a new buffer object. More...
 
virtual void CreateShader (const ShaderCreationAttribs &CreationAttribs, IShader **ppShader)=0
 Creates a new shader object. More...
 
virtual void CreateTexture (const TextureDesc &TexDesc, const TextureData &Data, ITexture **ppTexture)=0
 Creates a new texture object. More...
 
virtual void CreateSampler (const SamplerDesc &SamDesc, ISampler **ppSampler)=0
 Creates a new sampler object. More...
 
virtual void CreateResourceMapping (const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping)=0
 Creates a new resource mapping. More...
 
virtual void CreatePipelineState (const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState)=0
 Creates a new pipeline state object. More...
 
+virtual const DeviceCapsGetDeviceCaps () const =0
 Gets the device capabilities, see Diligent::DeviceCaps for details.
 
virtual const TextureFormatInfoGetTextureFormatInfo (TEXTURE_FORMAT TexFormat)=0
 Returns the basic texture format information. More...
 
virtual const TextureFormatInfoExtGetTextureFormatInfoExt (TEXTURE_FORMAT TexFormat)=0
 Returns the extended texture format information. More...
 
+

Detailed Description

+

Render device interface.

+

Member Function Documentation

+ +

◆ CreateBuffer()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IRenderDevice::CreateBuffer (const BufferDescBuffDesc,
const BufferDataBuffData,
IBuffer ** ppBuffer 
)
+
+pure virtual
+
+ +

Creates a new buffer object.

+
Parameters
+ + + + +
[in]BuffDesc- Buffer description, see Diligent::BufferDesc for details.
[in]BuffData- Reference to a Diligent::BufferData structure that describes the initialization data. To allocate space only, provide default value BufferData(). Static buffers (USAGE_STATIC) must be initialized at creation time.
[out]ppBuffer- Address of the memory location where the pointer to the buffer interface will be stored. The function calls AddRef(), so that the new buffer will contain one refernce and must be released by a call to Release().
+
+
+
Remarks
Size of a uniform buffer (BIND_UNIFORM_BUFFER) must be multiple of 16.
+Stride of a formatted buffer will be computed automatically from the format if ElementByteStride member of buffer description is set to default value (0).
+ +
+
+ +

◆ CreatePipelineState()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IRenderDevice::CreatePipelineState (const PipelineStateDescPipelineDesc,
IPipelineState ** ppPipelineState 
)
+
+pure virtual
+
+ +

Creates a new pipeline state object.

+
Parameters
+ + + +
[in]PipelineDesc- Pipeline state description, see Diligent::PipelineStateDesc for details.
[out]ppPipelineState- Address of the memory location where the pointer to the pipeline state interface will be stored. The function calls AddRef(), so that the new object will contain one refernce.
+
+
+ +
+
+ +

◆ CreateResourceMapping()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IRenderDevice::CreateResourceMapping (const ResourceMappingDescMappingDesc,
IResourceMapping ** ppMapping 
)
+
+pure virtual
+
+ +

Creates a new resource mapping.

+
Parameters
+ + + +
[in]MappingDesc- Resource mapping description, see Diligent::ResourceMappingDesc for details.
[out]ppMapping- Address of the memory location where the pointer to the resource mapping interface will be stored. The function calls AddRef(), so that the new object will contain one refernce.
+
+
+ +
+
+ +

◆ CreateSampler()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IRenderDevice::CreateSampler (const SamplerDescSamDesc,
ISampler ** ppSampler 
)
+
+pure virtual
+
+ +

Creates a new sampler object.

+
Parameters
+ + + +
[in]SamDesc- Sampler description, see Diligent::SamplerDesc for details.
[out]ppSampler- Address of the memory location where the pointer to the sampler interface will be stored. The function calls AddRef(), so that the new object will contain one refernce.
+
+
+
Remarks
If an application attempts to create a sampler interface with the same attributes as an existing interface, the same interface will be returned.
+
Note
In D3D11, 4096 unique sampler state objects can be created on a device at a time.
+ +
+
+ +

◆ CreateShader()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IRenderDevice::CreateShader (const ShaderCreationAttribsCreationAttribs,
IShader ** ppShader 
)
+
+pure virtual
+
+ +

Creates a new shader object.

+
Parameters
+ + + +
[in]CreationAttribs- Shader creation attributes, see Diligent::ShaderCreationAttribs for details.
[out]ppShader- Address of the memory location where the pointer to the shader interface will be stored. The function calls AddRef(), so that the new object will contain one refernce.
+
+
+ +
+
+ +

◆ CreateTexture()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IRenderDevice::CreateTexture (const TextureDescTexDesc,
const TextureDataData,
ITexture ** ppTexture 
)
+
+pure virtual
+
+ +

Creates a new texture object.

+
Parameters
+ + + + +
[in]TexDesc- Texture description, see Diligent::TextureDesc for details.
[in]Data- Reference to a Diligent::TextureData structure that describes the initialization data. To allocate space only, provide default value TextureData(). Static textures (USAGE_STATIC) must be initialized at creation time.
[out]ppTexture- Address of the memory location where the pointer to the texture interface will be stored. The function calls AddRef(), so that the new object will contain one refernce.
+
+
+
Remarks
To create all mip levels, set the TexDesc.MipLevels to zero.
+Multisampled resources cannot be initialzed with data when they are created.
+If initial data is provided, number of subresources must exactly match the number of subresources in the texture (which is the number of mip levels times the number of array slices. For a 3D texture, this is just the number of mip levels). For example, for a 15 x 6 x 2 2D texture array, the following array of subresources should be provided:
+15x6, 7x3, 3x1, 1x1, 15x6, 7x3, 3x1, 1x1.
+For a 15 x 6 x 4 3D texture, the following array of subresources should be provided:
+15x6x4, 7x3x2, 3x1x1, 1x1x1
+ +
+
+ +

◆ GetTextureFormatInfo()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual const TextureFormatInfo& Diligent::IRenderDevice::GetTextureFormatInfo (TEXTURE_FORMAT TexFormat)
+
+pure virtual
+
+ +

Returns the basic texture format information.

+

See Diligent::TextureFormatInfo for details on the provided information.

Parameters
+ + +
[in]TexFormat- Texture format for which to provide the information
+
+
+
Returns
Const reference to the TextureFormatInfo structure containing the texture format description.
+ +
+
+ +

◆ GetTextureFormatInfoExt()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual const TextureFormatInfoExt& Diligent::IRenderDevice::GetTextureFormatInfoExt (TEXTURE_FORMAT TexFormat)
+
+pure virtual
+
+ +

Returns the extended texture format information.

+

See Diligent::TextureFormatInfoExt for details on the provided information.

Parameters
+ + +
[in]TexFormat- Texture format for which to provide the information
+
+
+
Returns
Const reference to the TextureFormatInfoExt structure containing the extended texture format description.
+
Remarks
The first time this method is called for a particular format, it may be considerably slower than GetTextureFormatInfo(). If you do not require extended information, call GetTextureFormatInfo() instead.
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_render_device.png b/doc/html/class_diligent_1_1_i_render_device.png new file mode 100644 index 00000000..887b5db6 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_render_device.png differ diff --git a/doc/html/class_diligent_1_1_i_render_device_d3_d11-members.html b/doc/html/class_diligent_1_1_i_render_device_d3_d11-members.html new file mode 100644 index 00000000..51f9e9c2 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_render_device_d3_d11-members.html @@ -0,0 +1,101 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IRenderDeviceD3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::IRenderDeviceD3D11, including all inherited members.

+ + + + + + + + + + + + + + + + +
CreateBuffer(const BufferDesc &BuffDesc, const BufferData &BuffData, IBuffer **ppBuffer)=0Diligent::IRenderDevicepure virtual
CreateBufferFromD3DResource(ID3D11Buffer *pd3d11Buffer, const BufferDesc &BuffDesc, IBuffer **ppBuffer)=0Diligent::IRenderDeviceD3D11pure virtual
CreatePipelineState(const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState)=0Diligent::IRenderDevicepure virtual
CreateResourceMapping(const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping)=0Diligent::IRenderDevicepure virtual
CreateSampler(const SamplerDesc &SamDesc, ISampler **ppSampler)=0Diligent::IRenderDevicepure virtual
CreateShader(const ShaderCreationAttribs &CreationAttribs, IShader **ppShader)=0Diligent::IRenderDevicepure virtual
CreateTexture(const TextureDesc &TexDesc, const TextureData &Data, ITexture **ppTexture)=0Diligent::IRenderDevicepure virtual
CreateTextureFromD3DResource(ID3D11Texture1D *pd3d11Texture, ITexture **ppTexture)=0Diligent::IRenderDeviceD3D11pure virtual
CreateTextureFromD3DResource(ID3D11Texture2D *pd3d11Texture, ITexture **ppTexture)=0Diligent::IRenderDeviceD3D11pure virtual
CreateTextureFromD3DResource(ID3D11Texture3D *pd3d11Texture, ITexture **ppTexture)=0Diligent::IRenderDeviceD3D11pure virtual
GetD3D11Device()=0Diligent::IRenderDeviceD3D11pure virtual
GetDeviceCaps() const =0Diligent::IRenderDevicepure virtual
GetTextureFormatInfo(TEXTURE_FORMAT TexFormat)=0Diligent::IRenderDevicepure virtual
GetTextureFormatInfoExt(TEXTURE_FORMAT TexFormat)=0Diligent::IRenderDevicepure virtual
QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IRenderDevicepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_render_device_d3_d11.html b/doc/html/class_diligent_1_1_i_render_device_d3_d11.html new file mode 100644 index 00000000..714c7198 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_render_device_d3_d11.html @@ -0,0 +1,368 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IRenderDeviceD3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IRenderDeviceD3D11 Class Referenceabstract
+
+
+ +

Interface to the render device object implemented in D3D11. + More...

+
+Inheritance diagram for Diligent::IRenderDeviceD3D11:
+
+
+ + +Diligent::IRenderDevice + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ID3D11Device * GetD3D11Device ()=0
 Returns a pointer to the ID3D11Device interface of the internal Direct3D11 object. More...
 
virtual void CreateBufferFromD3DResource (ID3D11Buffer *pd3d11Buffer, const BufferDesc &BuffDesc, IBuffer **ppBuffer)=0
 Creates a buffer object from native d3d11 buffer. More...
 
virtual void CreateTextureFromD3DResource (ID3D11Texture1D *pd3d11Texture, ITexture **ppTexture)=0
 Creates a texture object from native d3d11 1D texture. More...
 
virtual void CreateTextureFromD3DResource (ID3D11Texture2D *pd3d11Texture, ITexture **ppTexture)=0
 Creates a texture object from native d3d11 2D texture. More...
 
virtual void CreateTextureFromD3DResource (ID3D11Texture3D *pd3d11Texture, ITexture **ppTexture)=0
 Creates a texture object from native d3d11 3D texture. More...
 
- Public Member Functions inherited from Diligent::IRenderDevice
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual void CreateBuffer (const BufferDesc &BuffDesc, const BufferData &BuffData, IBuffer **ppBuffer)=0
 Creates a new buffer object. More...
 
virtual void CreateShader (const ShaderCreationAttribs &CreationAttribs, IShader **ppShader)=0
 Creates a new shader object. More...
 
virtual void CreateTexture (const TextureDesc &TexDesc, const TextureData &Data, ITexture **ppTexture)=0
 Creates a new texture object. More...
 
virtual void CreateSampler (const SamplerDesc &SamDesc, ISampler **ppSampler)=0
 Creates a new sampler object. More...
 
virtual void CreateResourceMapping (const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping)=0
 Creates a new resource mapping. More...
 
virtual void CreatePipelineState (const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState)=0
 Creates a new pipeline state object. More...
 
+virtual const DeviceCapsGetDeviceCaps () const =0
 Gets the device capabilities, see Diligent::DeviceCaps for details.
 
virtual const TextureFormatInfoGetTextureFormatInfo (TEXTURE_FORMAT TexFormat)=0
 Returns the basic texture format information. More...
 
virtual const TextureFormatInfoExtGetTextureFormatInfoExt (TEXTURE_FORMAT TexFormat)=0
 Returns the extended texture format information. More...
 
+

Detailed Description

+

Interface to the render device object implemented in D3D11.

+

Member Function Documentation

+ +

◆ CreateBufferFromD3DResource()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IRenderDeviceD3D11::CreateBufferFromD3DResource (ID3D11Buffer * pd3d11Buffer,
const BufferDescBuffDesc,
IBuffer ** ppBuffer 
)
+
+pure virtual
+
+ +

Creates a buffer object from native d3d11 buffer.

+
Parameters
+ + + + +
[in]pd3d11Buffer- Pointer to the native buffer
[in]BuffDesc- Buffer description. Most of the fields will be populated automatically if left in default values. The only field that must be populated is BufferDesc::Format, when initializing a formatted buffer.
[out]ppBuffer- Address of the memory location where the pointer to the buffer interface will be stored. The function calls AddRef(), so that the new object will contain one reference.
+
+
+ +
+
+ +

◆ CreateTextureFromD3DResource() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IRenderDeviceD3D11::CreateTextureFromD3DResource (ID3D11Texture1D * pd3d11Texture,
ITexture ** ppTexture 
)
+
+pure virtual
+
+ +

Creates a texture object from native d3d11 1D texture.

+
Parameters
+ + + +
[in]pd3d11Texture- pointer to the native 1D texture
[out]ppTexture- Address of the memory location where the pointer to the texture interface will be stored. The function calls AddRef(), so that the new object will contain one reference.
+
+
+ +
+
+ +

◆ CreateTextureFromD3DResource() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IRenderDeviceD3D11::CreateTextureFromD3DResource (ID3D11Texture2D * pd3d11Texture,
ITexture ** ppTexture 
)
+
+pure virtual
+
+ +

Creates a texture object from native d3d11 2D texture.

+
Parameters
+ + + +
[in]pd3d11Texture- pointer to the native 2D texture
[out]ppTexture- Address of the memory location where the pointer to the texture interface will be stored. The function calls AddRef(), so that the new object will contain one reference.
+
+
+ +
+
+ +

◆ CreateTextureFromD3DResource() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IRenderDeviceD3D11::CreateTextureFromD3DResource (ID3D11Texture3D * pd3d11Texture,
ITexture ** ppTexture 
)
+
+pure virtual
+
+ +

Creates a texture object from native d3d11 3D texture.

+
Parameters
+ + + +
[in]pd3d11Texture- pointer to the native 3D texture
[out]ppTexture- Address of the memory location where the pointer to the texture interface will be stored. The function calls AddRef(), so that the new object will contain one reference.
+
+
+ +
+
+ +

◆ GetD3D11Device()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11Device* Diligent::IRenderDeviceD3D11::GetD3D11Device ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11Device interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_render_device_d3_d11.png b/doc/html/class_diligent_1_1_i_render_device_d3_d11.png new file mode 100644 index 00000000..2675b1ad Binary files /dev/null and b/doc/html/class_diligent_1_1_i_render_device_d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_i_render_device_d3_d12-members.html b/doc/html/class_diligent_1_1_i_render_device_d3_d12-members.html new file mode 100644 index 00000000..c7eff021 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_render_device_d3_d12-members.html @@ -0,0 +1,102 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IRenderDeviceD3D12 Member List
+
+
+ +

This is the complete list of members for Diligent::IRenderDeviceD3D12, including all inherited members.

+ + + + + + + + + + + + + + + + + +
CreateBuffer(const BufferDesc &BuffDesc, const BufferData &BuffData, IBuffer **ppBuffer)=0Diligent::IRenderDevicepure virtual
CreateBufferFromD3DResource(ID3D12Resource *pd3d12Buffer, const BufferDesc &BuffDesc, IBuffer **ppBuffer)=0Diligent::IRenderDeviceD3D12pure virtual
CreatePipelineState(const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState)=0Diligent::IRenderDevicepure virtual
CreateResourceMapping(const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping)=0Diligent::IRenderDevicepure virtual
CreateSampler(const SamplerDesc &SamDesc, ISampler **ppSampler)=0Diligent::IRenderDevicepure virtual
CreateShader(const ShaderCreationAttribs &CreationAttribs, IShader **ppShader)=0Diligent::IRenderDevicepure virtual
CreateTexture(const TextureDesc &TexDesc, const TextureData &Data, ITexture **ppTexture)=0Diligent::IRenderDevicepure virtual
CreateTextureFromD3DResource(ID3D12Resource *pd3d12Texture, ITexture **ppTexture)=0Diligent::IRenderDeviceD3D12pure virtual
FinishFrame()=0Diligent::IRenderDeviceD3D12pure virtual
GetD3D12Device()=0Diligent::IRenderDeviceD3D12pure virtual
GetDeviceCaps() const =0Diligent::IRenderDevicepure virtual
GetNextFenceValue()=0Diligent::IRenderDeviceD3D12pure virtual
GetTextureFormatInfo(TEXTURE_FORMAT TexFormat)=0Diligent::IRenderDevicepure virtual
GetTextureFormatInfoExt(TEXTURE_FORMAT TexFormat)=0Diligent::IRenderDevicepure virtual
IsFenceSignaled(Uint64 FenceValue)=0Diligent::IRenderDeviceD3D12pure virtual
QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IRenderDevicepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_render_device_d3_d12.html b/doc/html/class_diligent_1_1_i_render_device_d3_d12.html new file mode 100644 index 00000000..d4e3bafc --- /dev/null +++ b/doc/html/class_diligent_1_1_i_render_device_d3_d12.html @@ -0,0 +1,284 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IRenderDeviceD3D12 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IRenderDeviceD3D12 Class Referenceabstract
+
+
+ +

Interface to the render device object implemented in D3D12. + More...

+
+Inheritance diagram for Diligent::IRenderDeviceD3D12:
+
+
+ + +Diligent::IRenderDevice + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ID3D12Device * GetD3D12Device ()=0
 Returns ID3D12Device interface of the internal Direct3D12 device object. More...
 
+virtual Uint64 GetNextFenceValue ()=0
 Returns the fence value that will be signaled by the GPU command queue next.
 
+virtual Bool IsFenceSignaled (Uint64 FenceValue)=0
 Checks if the fence value has been signaled by the GPU. True means that all associated work has been finished.
 
+virtual void FinishFrame ()=0
 Should be called at the end of the frame when attached to existing D3D12 device Otherwise the method is automatically called before present.
 
virtual void CreateTextureFromD3DResource (ID3D12Resource *pd3d12Texture, ITexture **ppTexture)=0
 Creates a texture object from native d3d12 resource. More...
 
virtual void CreateBufferFromD3DResource (ID3D12Resource *pd3d12Buffer, const BufferDesc &BuffDesc, IBuffer **ppBuffer)=0
 Creates a buffer object from native d3d12 resoruce. More...
 
- Public Member Functions inherited from Diligent::IRenderDevice
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual void CreateBuffer (const BufferDesc &BuffDesc, const BufferData &BuffData, IBuffer **ppBuffer)=0
 Creates a new buffer object. More...
 
virtual void CreateShader (const ShaderCreationAttribs &CreationAttribs, IShader **ppShader)=0
 Creates a new shader object. More...
 
virtual void CreateTexture (const TextureDesc &TexDesc, const TextureData &Data, ITexture **ppTexture)=0
 Creates a new texture object. More...
 
virtual void CreateSampler (const SamplerDesc &SamDesc, ISampler **ppSampler)=0
 Creates a new sampler object. More...
 
virtual void CreateResourceMapping (const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping)=0
 Creates a new resource mapping. More...
 
virtual void CreatePipelineState (const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState)=0
 Creates a new pipeline state object. More...
 
+virtual const DeviceCapsGetDeviceCaps () const =0
 Gets the device capabilities, see Diligent::DeviceCaps for details.
 
virtual const TextureFormatInfoGetTextureFormatInfo (TEXTURE_FORMAT TexFormat)=0
 Returns the basic texture format information. More...
 
virtual const TextureFormatInfoExtGetTextureFormatInfoExt (TEXTURE_FORMAT TexFormat)=0
 Returns the extended texture format information. More...
 
+

Detailed Description

+

Interface to the render device object implemented in D3D12.

+

Member Function Documentation

+ +

◆ CreateBufferFromD3DResource()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IRenderDeviceD3D12::CreateBufferFromD3DResource (ID3D12Resource * pd3d12Buffer,
const BufferDescBuffDesc,
IBuffer ** ppBuffer 
)
+
+pure virtual
+
+ +

Creates a buffer object from native d3d12 resoruce.

+
Parameters
+ + + + +
[in]pd3d12Buffer- Pointer to the native d3d12 buffer resource
[in]BuffDesc- Buffer description. The system can recover buffer size, but the rest of the fields need to be populated by the client as they cannot be recovered from d3d12 resource description
[out]ppBuffer- Address of the memory location where the pointer to the buffer interface will be stored. The function calls AddRef(), so that the new object will contain one reference.
+
+
+ +
+
+ +

◆ CreateTextureFromD3DResource()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IRenderDeviceD3D12::CreateTextureFromD3DResource (ID3D12Resource * pd3d12Texture,
ITexture ** ppTexture 
)
+
+pure virtual
+
+ +

Creates a texture object from native d3d12 resource.

+
Parameters
+ + + +
[in]pd3d12Texture- pointer to the native D3D12 texture
[out]ppTexture- Address of the memory location where the pointer to the texture interface will be stored. The function calls AddRef(), so that the new object will contain one refernce.
+
+
+ +
+
+ +

◆ GetD3D12Device()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D12Device* Diligent::IRenderDeviceD3D12::GetD3D12Device ()
+
+pure virtual
+
+ +

Returns ID3D12Device interface of the internal Direct3D12 device object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_render_device_d3_d12.png b/doc/html/class_diligent_1_1_i_render_device_d3_d12.png new file mode 100644 index 00000000..402b6acf Binary files /dev/null and b/doc/html/class_diligent_1_1_i_render_device_d3_d12.png differ diff --git a/doc/html/class_diligent_1_1_i_render_device_g_l-members.html b/doc/html/class_diligent_1_1_i_render_device_g_l-members.html new file mode 100644 index 00000000..f9bcd8ea --- /dev/null +++ b/doc/html/class_diligent_1_1_i_render_device_g_l-members.html @@ -0,0 +1,98 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IRenderDeviceGL Member List
+
+
+ +

This is the complete list of members for Diligent::IRenderDeviceGL, including all inherited members.

+ + + + + + + + + + + + + +
CreateBuffer(const BufferDesc &BuffDesc, const BufferData &BuffData, IBuffer **ppBuffer)=0Diligent::IRenderDevicepure virtual
CreateBufferFromGLHandle(Uint32 GLHandle, const BufferDesc &BuffDesc, IBuffer **ppBuffer)=0Diligent::IRenderDeviceGLpure virtual
CreatePipelineState(const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState)=0Diligent::IRenderDevicepure virtual
CreateResourceMapping(const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping)=0Diligent::IRenderDevicepure virtual
CreateSampler(const SamplerDesc &SamDesc, ISampler **ppSampler)=0Diligent::IRenderDevicepure virtual
CreateShader(const ShaderCreationAttribs &CreationAttribs, IShader **ppShader)=0Diligent::IRenderDevicepure virtual
CreateTexture(const TextureDesc &TexDesc, const TextureData &Data, ITexture **ppTexture)=0Diligent::IRenderDevicepure virtual
CreateTextureFromGLHandle(Uint32 GLHandle, const TextureDesc &TexDesc, ITexture **ppTexture)=0Diligent::IRenderDeviceGLpure virtual
GetDeviceCaps() const =0Diligent::IRenderDevicepure virtual
GetTextureFormatInfo(TEXTURE_FORMAT TexFormat)=0Diligent::IRenderDevicepure virtual
GetTextureFormatInfoExt(TEXTURE_FORMAT TexFormat)=0Diligent::IRenderDevicepure virtual
QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IRenderDevicepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_render_device_g_l.html b/doc/html/class_diligent_1_1_i_render_device_g_l.html new file mode 100644 index 00000000..de942975 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_render_device_g_l.html @@ -0,0 +1,251 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IRenderDeviceGL Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IRenderDeviceGL Class Referenceabstract
+
+
+ +

Interface to the render device object implemented in OpenGL. + More...

+
+Inheritance diagram for Diligent::IRenderDeviceGL:
+
+
+ + +Diligent::IRenderDevice +Diligent::IRenderDeviceGLES + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void CreateTextureFromGLHandle (Uint32 GLHandle, const TextureDesc &TexDesc, ITexture **ppTexture)=0
 Creates a texture from OpenGL handle. More...
 
virtual void CreateBufferFromGLHandle (Uint32 GLHandle, const BufferDesc &BuffDesc, IBuffer **ppBuffer)=0
 Creates a buffer from OpenGL handle. More...
 
- Public Member Functions inherited from Diligent::IRenderDevice
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual void CreateBuffer (const BufferDesc &BuffDesc, const BufferData &BuffData, IBuffer **ppBuffer)=0
 Creates a new buffer object. More...
 
virtual void CreateShader (const ShaderCreationAttribs &CreationAttribs, IShader **ppShader)=0
 Creates a new shader object. More...
 
virtual void CreateTexture (const TextureDesc &TexDesc, const TextureData &Data, ITexture **ppTexture)=0
 Creates a new texture object. More...
 
virtual void CreateSampler (const SamplerDesc &SamDesc, ISampler **ppSampler)=0
 Creates a new sampler object. More...
 
virtual void CreateResourceMapping (const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping)=0
 Creates a new resource mapping. More...
 
virtual void CreatePipelineState (const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState)=0
 Creates a new pipeline state object. More...
 
+virtual const DeviceCapsGetDeviceCaps () const =0
 Gets the device capabilities, see Diligent::DeviceCaps for details.
 
virtual const TextureFormatInfoGetTextureFormatInfo (TEXTURE_FORMAT TexFormat)=0
 Returns the basic texture format information. More...
 
virtual const TextureFormatInfoExtGetTextureFormatInfoExt (TEXTURE_FORMAT TexFormat)=0
 Returns the extended texture format information. More...
 
+

Detailed Description

+

Interface to the render device object implemented in OpenGL.

+

Member Function Documentation

+ +

◆ CreateBufferFromGLHandle()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IRenderDeviceGL::CreateBufferFromGLHandle (Uint32 GLHandle,
const BufferDescBuffDesc,
IBuffer ** ppBuffer 
)
+
+pure virtual
+
+ +

Creates a buffer from OpenGL handle.

+
Parameters
+ + + + +
[in]GLHandle- OpenGL buffer handle
[in]BuffDesc- Buffer description. The engine can automatically recover buffer size, but the rest of the fields need to be set by the client.
[out]ppBuffer- Address of the memory location where the pointer to the texture interface will be stored. The function calls AddRef(), so that the new object will contain one refernce.
+
+
+
Note
Diligent engine buffer object does not take ownership of the GL resource, and the application must not destroy it while it is in use by the engine.
+ +
+
+ +

◆ CreateTextureFromGLHandle()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IRenderDeviceGL::CreateTextureFromGLHandle (Uint32 GLHandle,
const TextureDescTexDesc,
ITexture ** ppTexture 
)
+
+pure virtual
+
+ +

Creates a texture from OpenGL handle.

+
Parameters
+ + + + +
[in]GLHandle- OpenGL texture handle
[in]TexDesc- Texture description. The engine can automatically set texture width, height, depth, mip levels count, and format. Remaining fields should be set up by the app.
[out]ppTexture- Address of the memory location where the pointer to the texture interface will be stored. The function calls AddRef(), so that the new object will contain one refernce.
+
+
+
Note
Diligent engine texture object does not take ownership of the GL resource, and the application must not destroy it while it is in use by the engine.
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_render_device_g_l.png b/doc/html/class_diligent_1_1_i_render_device_g_l.png new file mode 100644 index 00000000..8ce02e84 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_render_device_g_l.png differ diff --git a/doc/html/class_diligent_1_1_i_render_device_g_l_e_s-members.html b/doc/html/class_diligent_1_1_i_render_device_g_l_e_s-members.html new file mode 100644 index 00000000..70e47e61 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_render_device_g_l_e_s-members.html @@ -0,0 +1,98 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IRenderDeviceGLES Member List
+
+
+ +

This is the complete list of members for Diligent::IRenderDeviceGLES, including all inherited members.

+ + + + + + + + + + + + + +
CreateBuffer(const BufferDesc &BuffDesc, const BufferData &BuffData, IBuffer **ppBuffer)=0Diligent::IRenderDevicepure virtual
CreateBufferFromGLHandle(Uint32 GLHandle, const BufferDesc &BuffDesc, IBuffer **ppBuffer)=0Diligent::IRenderDeviceGLpure virtual
CreatePipelineState(const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState)=0Diligent::IRenderDevicepure virtual
CreateResourceMapping(const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping)=0Diligent::IRenderDevicepure virtual
CreateSampler(const SamplerDesc &SamDesc, ISampler **ppSampler)=0Diligent::IRenderDevicepure virtual
CreateShader(const ShaderCreationAttribs &CreationAttribs, IShader **ppShader)=0Diligent::IRenderDevicepure virtual
CreateTexture(const TextureDesc &TexDesc, const TextureData &Data, ITexture **ppTexture)=0Diligent::IRenderDevicepure virtual
CreateTextureFromGLHandle(Uint32 GLHandle, const TextureDesc &TexDesc, ITexture **ppTexture)=0Diligent::IRenderDeviceGLpure virtual
GetDeviceCaps() const =0Diligent::IRenderDevicepure virtual
GetTextureFormatInfo(TEXTURE_FORMAT TexFormat)=0Diligent::IRenderDevicepure virtual
GetTextureFormatInfoExt(TEXTURE_FORMAT TexFormat)=0Diligent::IRenderDevicepure virtual
QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IRenderDevicepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_render_device_g_l_e_s.html b/doc/html/class_diligent_1_1_i_render_device_g_l_e_s.html new file mode 100644 index 00000000..e5fa71de --- /dev/null +++ b/doc/html/class_diligent_1_1_i_render_device_g_l_e_s.html @@ -0,0 +1,144 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IRenderDeviceGLES Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IRenderDeviceGLES Class Referenceabstract
+
+
+ +

Interface to the render device object implemented in OpenGLES. + More...

+
+Inheritance diagram for Diligent::IRenderDeviceGLES:
+
+
+ + +Diligent::IRenderDeviceGL +Diligent::IRenderDevice + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::IRenderDeviceGL
virtual void CreateTextureFromGLHandle (Uint32 GLHandle, const TextureDesc &TexDesc, ITexture **ppTexture)=0
 Creates a texture from OpenGL handle. More...
 
virtual void CreateBufferFromGLHandle (Uint32 GLHandle, const BufferDesc &BuffDesc, IBuffer **ppBuffer)=0
 Creates a buffer from OpenGL handle. More...
 
- Public Member Functions inherited from Diligent::IRenderDevice
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual void CreateBuffer (const BufferDesc &BuffDesc, const BufferData &BuffData, IBuffer **ppBuffer)=0
 Creates a new buffer object. More...
 
virtual void CreateShader (const ShaderCreationAttribs &CreationAttribs, IShader **ppShader)=0
 Creates a new shader object. More...
 
virtual void CreateTexture (const TextureDesc &TexDesc, const TextureData &Data, ITexture **ppTexture)=0
 Creates a new texture object. More...
 
virtual void CreateSampler (const SamplerDesc &SamDesc, ISampler **ppSampler)=0
 Creates a new sampler object. More...
 
virtual void CreateResourceMapping (const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping)=0
 Creates a new resource mapping. More...
 
virtual void CreatePipelineState (const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState)=0
 Creates a new pipeline state object. More...
 
+virtual const DeviceCapsGetDeviceCaps () const =0
 Gets the device capabilities, see Diligent::DeviceCaps for details.
 
virtual const TextureFormatInfoGetTextureFormatInfo (TEXTURE_FORMAT TexFormat)=0
 Returns the basic texture format information. More...
 
virtual const TextureFormatInfoExtGetTextureFormatInfoExt (TEXTURE_FORMAT TexFormat)=0
 Returns the extended texture format information. More...
 
+

Detailed Description

+

Interface to the render device object implemented in OpenGLES.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_render_device_g_l_e_s.png b/doc/html/class_diligent_1_1_i_render_device_g_l_e_s.png new file mode 100644 index 00000000..ebc1daa1 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_render_device_g_l_e_s.png differ diff --git a/doc/html/class_diligent_1_1_i_resource_mapping-members.html b/doc/html/class_diligent_1_1_i_resource_mapping-members.html new file mode 100644 index 00000000..9c34a997 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_resource_mapping-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IResourceMapping Member List
+
+
+ +

This is the complete list of members for Diligent::IResourceMapping, including all inherited members.

+ + + + + + + +
AddResource(const Char *Name, IDeviceObject *pObject, bool bIsUnique)=0Diligent::IResourceMappingpure virtual
AddResourceArray(const Char *Name, Uint32 StartIndex, IDeviceObject *const *ppObjects, Uint32 NumElements, bool bIsUnique)=0Diligent::IResourceMappingpure virtual
GetResource(const Char *Name, IDeviceObject **ppResource, Uint32 ArrayIndex=0)=0Diligent::IResourceMappingpure virtual
GetSize()=0Diligent::IResourceMappingpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IResourceMappingpure virtual
RemoveResourceByName(const Char *Name, Uint32 ArrayIndex=0)=0Diligent::IResourceMappingpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_resource_mapping.html b/doc/html/class_diligent_1_1_i_resource_mapping.html new file mode 100644 index 00000000..80df4674 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_resource_mapping.html @@ -0,0 +1,354 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IResourceMapping Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IResourceMapping Class Referenceabstract
+
+
+ +

Resouce mapping. + More...

+
+Inheritance diagram for Diligent::IResourceMapping:
+
+
+ + +Diligent::RefCountedObject< IResourceMapping > +Diligent::ObjectBase< IResourceMapping > +Diligent::ResourceMappingImpl + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual void AddResource (const Char *Name, IDeviceObject *pObject, bool bIsUnique)=0
 Adds a resource to the mapping. More...
 
virtual void AddResourceArray (const Char *Name, Uint32 StartIndex, IDeviceObject *const *ppObjects, Uint32 NumElements, bool bIsUnique)=0
 Adds resource array to the mapping. More...
 
virtual void RemoveResourceByName (const Char *Name, Uint32 ArrayIndex=0)=0
 Removes a resource from the mapping using its literal name. More...
 
virtual void GetResource (const Char *Name, IDeviceObject **ppResource, Uint32 ArrayIndex=0)=0
 Finds a resource in the mapping. More...
 
+virtual size_t GetSize ()=0
 Returns the size of the resource mapping, i.e. the number of objects.
 
+

Detailed Description

+

Resouce mapping.

+

This interface provides mapping between literal names and resource pointers. It is created by IRenderDevice::CreateResourceMapping().

Remarks
Resource mapping holds strong references to all objects it keeps.
+

Member Function Documentation

+ +

◆ AddResource()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IResourceMapping::AddResource (const Char * Name,
IDeviceObjectpObject,
bool bIsUnique 
)
+
+pure virtual
+
+ +

Adds a resource to the mapping.

+
Parameters
+ + + + +
[in]Name- Resource name.
[in]pObject- Pointer to the object.
[in]bIsUnique- Flag indicating if a resource with the same name is allowed to be found in the mapping. In the latter case, the new resource replaces the existing one.
+
+
+
Remarks
Resource mapping increases the reference counter for referenced objects. So an object will not be released as long as it is in the resource mapping.
+ +

Implemented in Diligent::ResourceMappingImpl.

+ +
+
+ +

◆ AddResourceArray()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IResourceMapping::AddResourceArray (const Char * Name,
Uint32 StartIndex,
IDeviceObject *const * ppObjects,
Uint32 NumElements,
bool bIsUnique 
)
+
+pure virtual
+
+ +

Adds resource array to the mapping.

+
Parameters
+ + + + + + +
[in]Name- Resource array name.
[in]StartIndex- First index in the array, where the first element will be inserted
[in]ppObjects- Pointer to the array of objects.
[in]NumElements- Number of elements to add
[in]bIsUnique- Flag indicating if a resource with the same name is allowed to be found in the mapping. In the latter case, the new resource replaces the existing one.
+
+
+
Remarks
Resource mapping increases the reference counter for referenced objects. So an object will not be released as long as it is in the resource mapping.
+ +

Implemented in Diligent::ResourceMappingImpl.

+ +
+
+ +

◆ GetResource()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IResourceMapping::GetResource (const Char * Name,
IDeviceObject ** ppResource,
Uint32 ArrayIndex = 0 
)
+
+pure virtual
+
+ +

Finds a resource in the mapping.

+
Parameters
+ + + + +
[in]Name- Resource name.
[in]ArrayIndex- for arrays, index of the array element.
[out]ppResource- Address of the memory location where the pointer to the object with the given name will be written. If no object is found, nullptr will be written.
+
+
+
Remarks
The method increases the reference counter of the returned object, so Release() must be called.
+ +

Implemented in Diligent::ResourceMappingImpl.

+ +
+
+ +

◆ RemoveResourceByName()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IResourceMapping::RemoveResourceByName (const Char * Name,
Uint32 ArrayIndex = 0 
)
+
+pure virtual
+
+ +

Removes a resource from the mapping using its literal name.

+
Parameters
+ + + +
[in]Name- Name of the resource to remove.
[in]ArrayIndex- For array resources, index in the array
+
+
+ +

Implemented in Diligent::ResourceMappingImpl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_resource_mapping.png b/doc/html/class_diligent_1_1_i_resource_mapping.png new file mode 100644 index 00000000..eb40e267 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_resource_mapping.png differ diff --git a/doc/html/class_diligent_1_1_i_sampler-members.html b/doc/html/class_diligent_1_1_i_sampler-members.html new file mode 100644 index 00000000..b864003c --- /dev/null +++ b/doc/html/class_diligent_1_1_i_sampler-members.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ISampler Member List
+
+
+ +

This is the complete list of members for Diligent::ISampler, including all inherited members.

+ + + + +
GetDesc() const =0Diligent::ISamplerpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::ISamplerpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_sampler.html b/doc/html/class_diligent_1_1_i_sampler.html new file mode 100644 index 00000000..52955f1c --- /dev/null +++ b/doc/html/class_diligent_1_1_i_sampler.html @@ -0,0 +1,136 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ISampler Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ISampler Class Referenceabstract
+
+
+ +

Texture sampler interface. + More...

+
+Inheritance diagram for Diligent::ISampler:
+
+
+ + +Diligent::IDeviceObject +Diligent::ISamplerD3D11 +Diligent::ISamplerD3D12 +Diligent::ISamplerGL +Diligent::RefCountedObject< ISamplerD3D11 > +Diligent::RefCountedObject< ISamplerD3D12 > +Diligent::RefCountedObject< ISamplerGL > +Diligent::ObjectBase< ISamplerD3D11 > +Diligent::ObjectBase< ISamplerD3D12 > +Diligent::ObjectBase< ISamplerGL > +Diligent::DeviceObjectBase< ISamplerD3D11, SamplerDesc > +Diligent::DeviceObjectBase< ISamplerD3D12, SamplerDesc > +Diligent::DeviceObjectBase< ISamplerGL, SamplerDesc > +Diligent::SamplerBase< ISamplerD3D11, IRenderDeviceD3D11 > +Diligent::SamplerBase< ISamplerD3D12, IRenderDeviceD3D12 > +Diligent::SamplerBase< ISamplerGL, IGLDeviceBaseInterface > +Diligent::SamplerD3D11Impl +Diligent::SamplerD3D12Impl +Diligent::SamplerGLImpl + +
+ + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const SamplerDescGetDesc () const =0
 Returns the sampler description used to create the object.
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Texture sampler interface.

+

The interface holds the sampler state that can be used to perform texture filtering. To create a sampler, call IRenderDevice::CreateSampler(). To use a sampler, call ITextureView::SetSampler().

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_sampler.png b/doc/html/class_diligent_1_1_i_sampler.png new file mode 100644 index 00000000..154b4bd5 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_sampler.png differ diff --git a/doc/html/class_diligent_1_1_i_sampler_d3_d11-members.html b/doc/html/class_diligent_1_1_i_sampler_d3_d11-members.html new file mode 100644 index 00000000..83ee20dd --- /dev/null +++ b/doc/html/class_diligent_1_1_i_sampler_d3_d11-members.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ISamplerD3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::ISamplerD3D11, including all inherited members.

+ + + + + +
GetD3D11SamplerState()=0Diligent::ISamplerD3D11pure virtual
GetDesc() const =0Diligent::ISamplerpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::ISamplerpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_sampler_d3_d11.html b/doc/html/class_diligent_1_1_i_sampler_d3_d11.html new file mode 100644 index 00000000..cafb561a --- /dev/null +++ b/doc/html/class_diligent_1_1_i_sampler_d3_d11.html @@ -0,0 +1,158 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ISamplerD3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ISamplerD3D11 Class Referenceabstract
+
+
+ +

Interface to the sampler object implemented in D3D11. + More...

+
+Inheritance diagram for Diligent::ISamplerD3D11:
+
+
+ + +Diligent::ISampler +Diligent::IDeviceObject +Diligent::RefCountedObject< ISamplerD3D11 > +Diligent::ObjectBase< ISamplerD3D11 > +Diligent::DeviceObjectBase< ISamplerD3D11, SamplerDesc > +Diligent::SamplerBase< ISamplerD3D11, IRenderDeviceD3D11 > +Diligent::SamplerD3D11Impl + +
+ + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ID3D11SamplerState * GetD3D11SamplerState ()=0
 Returns a pointer to the ID3D11SamplerState interface of the internal Direct3D11 object. More...
 
- Public Member Functions inherited from Diligent::ISampler
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const SamplerDescGetDesc () const =0
 Returns the sampler description used to create the object.
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the sampler object implemented in D3D11.

+

Member Function Documentation

+ +

◆ GetD3D11SamplerState()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11SamplerState* Diligent::ISamplerD3D11::GetD3D11SamplerState ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11SamplerState interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::SamplerD3D11Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_sampler_d3_d11.png b/doc/html/class_diligent_1_1_i_sampler_d3_d11.png new file mode 100644 index 00000000..1f57d278 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_sampler_d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_i_sampler_d3_d12-members.html b/doc/html/class_diligent_1_1_i_sampler_d3_d12-members.html new file mode 100644 index 00000000..270113fe --- /dev/null +++ b/doc/html/class_diligent_1_1_i_sampler_d3_d12-members.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ISamplerD3D12 Member List
+
+
+ +

This is the complete list of members for Diligent::ISamplerD3D12, including all inherited members.

+ + + + + +
GetCPUDescriptorHandle()=0Diligent::ISamplerD3D12pure virtual
GetDesc() const =0Diligent::ISamplerpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::ISamplerpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_sampler_d3_d12.html b/doc/html/class_diligent_1_1_i_sampler_d3_d12.html new file mode 100644 index 00000000..74ce222b --- /dev/null +++ b/doc/html/class_diligent_1_1_i_sampler_d3_d12.html @@ -0,0 +1,158 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ISamplerD3D12 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ISamplerD3D12 Class Referenceabstract
+
+
+ +

Interface to the sampler object implemented in D3D12. + More...

+
+Inheritance diagram for Diligent::ISamplerD3D12:
+
+
+ + +Diligent::ISampler +Diligent::IDeviceObject +Diligent::RefCountedObject< ISamplerD3D12 > +Diligent::ObjectBase< ISamplerD3D12 > +Diligent::DeviceObjectBase< ISamplerD3D12, SamplerDesc > +Diligent::SamplerBase< ISamplerD3D12, IRenderDeviceD3D12 > +Diligent::SamplerD3D12Impl + +
+ + + + + + + + + + + + + + + + +

+Public Member Functions

virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle ()=0
 Returns a CPU descriptor handle of the D3D12 sampler object. More...
 
- Public Member Functions inherited from Diligent::ISampler
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const SamplerDescGetDesc () const =0
 Returns the sampler description used to create the object.
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the sampler object implemented in D3D12.

+

Member Function Documentation

+ +

◆ GetCPUDescriptorHandle()

+ +
+
+ + + + + +
+ + + + + + + +
virtual D3D12_CPU_DESCRIPTOR_HANDLE Diligent::ISamplerD3D12::GetCPUDescriptorHandle ()
+
+pure virtual
+
+ +

Returns a CPU descriptor handle of the D3D12 sampler object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::SamplerD3D12Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_sampler_d3_d12.png b/doc/html/class_diligent_1_1_i_sampler_d3_d12.png new file mode 100644 index 00000000..39fbf469 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_sampler_d3_d12.png differ diff --git a/doc/html/class_diligent_1_1_i_sampler_g_l-members.html b/doc/html/class_diligent_1_1_i_sampler_g_l-members.html new file mode 100644 index 00000000..edee5727 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_sampler_g_l-members.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ISamplerGL Member List
+
+
+ +

This is the complete list of members for Diligent::ISamplerGL, including all inherited members.

+ + + + +
GetDesc() const =0Diligent::ISamplerpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::ISamplerpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_sampler_g_l.html b/doc/html/class_diligent_1_1_i_sampler_g_l.html new file mode 100644 index 00000000..662887e7 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_sampler_g_l.html @@ -0,0 +1,123 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ISamplerGL Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ISamplerGL Class Reference
+
+
+ +

Interface to the sampler object object implemented in OpenGL. + More...

+
+Inheritance diagram for Diligent::ISamplerGL:
+
+
+ + +Diligent::ISampler +Diligent::IDeviceObject +Diligent::RefCountedObject< ISamplerGL > +Diligent::ObjectBase< ISamplerGL > +Diligent::DeviceObjectBase< ISamplerGL, SamplerDesc > +Diligent::SamplerBase< ISamplerGL, IGLDeviceBaseInterface > +Diligent::SamplerGLImpl + +
+ + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::ISampler
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const SamplerDescGetDesc () const =0
 Returns the sampler description used to create the object.
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the sampler object object implemented in OpenGL.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_sampler_g_l.png b/doc/html/class_diligent_1_1_i_sampler_g_l.png new file mode 100644 index 00000000..a6d270aa Binary files /dev/null and b/doc/html/class_diligent_1_1_i_sampler_g_l.png differ diff --git a/doc/html/class_diligent_1_1_i_shader-members.html b/doc/html/class_diligent_1_1_i_shader-members.html new file mode 100644 index 00000000..c5273db4 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader-members.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IShader Member List
+
+
+ +

This is the complete list of members for Diligent::IShader, including all inherited members.

+ + + + + + +
BindResources(IResourceMapping *pResourceMapping, Uint32 Flags)=0Diligent::IShaderpure virtual
GetDesc() const =0Diligent::IShaderpure virtual
GetShaderVariable(const Char *Name)=0Diligent::IShaderpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IShaderpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader.html b/doc/html/class_diligent_1_1_i_shader.html new file mode 100644 index 00000000..0e5c6b0d --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader.html @@ -0,0 +1,227 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IShader Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IShader Class Referenceabstract
+
+
+ +

Shader interface. + More...

+
+Inheritance diagram for Diligent::IShader:
+
+
+ + +Diligent::IDeviceObject +Diligent::IShaderD3D11 +Diligent::IShaderD3D12 +Diligent::IShaderGL +Diligent::RefCountedObject< IShaderD3D11 > +Diligent::RefCountedObject< IShaderD3D12 > +Diligent::RefCountedObject< IShaderGL > +Diligent::ObjectBase< IShaderD3D11 > +Diligent::ObjectBase< IShaderD3D12 > +Diligent::ObjectBase< IShaderGL > +Diligent::DeviceObjectBase< IShaderD3D11, ShaderDesc > +Diligent::DeviceObjectBase< IShaderD3D12, ShaderDesc > +Diligent::DeviceObjectBase< IShaderGL, ShaderDesc > +Diligent::ShaderBase< IShaderD3D11, IRenderDeviceD3D11 > +Diligent::ShaderBase< IShaderD3D12, IRenderDeviceD3D12 > +Diligent::ShaderBase< IShaderGL, IGLDeviceBaseInterface > +Diligent::ShaderD3D11Impl +Diligent::ShaderD3D12Impl +Diligent::ShaderGLImpl + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const ShaderDescGetDesc () const =0
 Returns the shader description.
 
virtual void BindResources (IResourceMapping *pResourceMapping, Uint32 Flags)=0
 Binds shader resources. More...
 
virtual IShaderVariableGetShaderVariable (const Char *Name)=0
 Returns an interface to a shader variable. If the shader variable is not found, an interface to a dummy variable will be returned. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Shader interface.

+

Member Function Documentation

+ +

◆ BindResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::IShader::BindResources (IResourceMappingpResourceMapping,
Uint32 Flags 
)
+
+pure virtual
+
+ +

Binds shader resources.

+
Parameters
+ + + +
[in]pResourceMapping- Pointer to IResourceMapping interface to look for resources.
[in]Flags- Additional flags for the operation. See Diligent::BIND_SHADER_RESOURCES_FLAGS for details.
+
+
+
Remarks
The shader will keep strong references to all resources bound to it.
+ +

Implemented in Diligent::ShaderGLImpl, Diligent::ShaderD3D12Impl, and Diligent::ShaderD3D11Impl.

+ +
+
+ +

◆ GetShaderVariable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual IShaderVariable* Diligent::IShader::GetShaderVariable (const Char * Name)
+
+pure virtual
+
+ +

Returns an interface to a shader variable. If the shader variable is not found, an interface to a dummy variable will be returned.

+
Parameters
+ + +
[in]Name- Name of the variable.
+
+
+
Remarks
The method does not increment the reference counter of the returned interface.
+ +

Implemented in Diligent::ShaderGLImpl, Diligent::ShaderD3D12Impl, and Diligent::ShaderD3D11Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader.png b/doc/html/class_diligent_1_1_i_shader.png new file mode 100644 index 00000000..5859e77f Binary files /dev/null and b/doc/html/class_diligent_1_1_i_shader.png differ diff --git a/doc/html/class_diligent_1_1_i_shader_d3_d11-members.html b/doc/html/class_diligent_1_1_i_shader_d3_d11-members.html new file mode 100644 index 00000000..7f172260 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_d3_d11-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IShaderD3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::IShaderD3D11, including all inherited members.

+ + + + + + + +
BindResources(IResourceMapping *pResourceMapping, Uint32 Flags)=0Diligent::IShaderpure virtual
GetD3D11Shader()=0Diligent::IShaderD3D11pure virtual
GetDesc() const =0Diligent::IShaderpure virtual
GetShaderVariable(const Char *Name)=0Diligent::IShaderpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IShaderpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_d3_d11.html b/doc/html/class_diligent_1_1_i_shader_d3_d11.html new file mode 100644 index 00000000..cde9b49f --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_d3_d11.html @@ -0,0 +1,164 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IShaderD3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IShaderD3D11 Class Referenceabstract
+
+
+ +

Interface to the shader object implemented in D3D11. + More...

+
+Inheritance diagram for Diligent::IShaderD3D11:
+
+
+ + +Diligent::IShader +Diligent::IDeviceObject +Diligent::RefCountedObject< IShaderD3D11 > +Diligent::ObjectBase< IShaderD3D11 > +Diligent::DeviceObjectBase< IShaderD3D11, ShaderDesc > +Diligent::ShaderBase< IShaderD3D11, IRenderDeviceD3D11 > +Diligent::ShaderD3D11Impl + +
+ + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ID3D11DeviceChild * GetD3D11Shader ()=0
 Returns a pointer to the ID3D11DeviceChild interface of the internal Direct3D11 object. More...
 
- Public Member Functions inherited from Diligent::IShader
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const ShaderDescGetDesc () const =0
 Returns the shader description.
 
virtual void BindResources (IResourceMapping *pResourceMapping, Uint32 Flags)=0
 Binds shader resources. More...
 
virtual IShaderVariableGetShaderVariable (const Char *Name)=0
 Returns an interface to a shader variable. If the shader variable is not found, an interface to a dummy variable will be returned. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the shader object implemented in D3D11.

+

Member Function Documentation

+ +

◆ GetD3D11Shader()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11DeviceChild* Diligent::IShaderD3D11::GetD3D11Shader ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11DeviceChild interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::ShaderD3D11Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_d3_d11.png b/doc/html/class_diligent_1_1_i_shader_d3_d11.png new file mode 100644 index 00000000..f6b34927 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_shader_d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_i_shader_d3_d12-members.html b/doc/html/class_diligent_1_1_i_shader_d3_d12-members.html new file mode 100644 index 00000000..a4749159 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_d3_d12-members.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IShaderD3D12 Member List
+
+
+ +

This is the complete list of members for Diligent::IShaderD3D12, including all inherited members.

+ + + + + + +
BindResources(IResourceMapping *pResourceMapping, Uint32 Flags)=0Diligent::IShaderpure virtual
GetDesc() const =0Diligent::IShaderpure virtual
GetShaderVariable(const Char *Name)=0Diligent::IShaderpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IShaderpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_d3_d12.html b/doc/html/class_diligent_1_1_i_shader_d3_d12.html new file mode 100644 index 00000000..c0f9ae41 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_d3_d12.html @@ -0,0 +1,129 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IShaderD3D12 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IShaderD3D12 Class Reference
+
+
+ +

Interface to the shader object implemented in D3D12. + More...

+
+Inheritance diagram for Diligent::IShaderD3D12:
+
+
+ + +Diligent::IShader +Diligent::IDeviceObject +Diligent::RefCountedObject< IShaderD3D12 > +Diligent::ObjectBase< IShaderD3D12 > +Diligent::DeviceObjectBase< IShaderD3D12, ShaderDesc > +Diligent::ShaderBase< IShaderD3D12, IRenderDeviceD3D12 > +Diligent::ShaderD3D12Impl + +
+ + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::IShader
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const ShaderDescGetDesc () const =0
 Returns the shader description.
 
virtual void BindResources (IResourceMapping *pResourceMapping, Uint32 Flags)=0
 Binds shader resources. More...
 
virtual IShaderVariableGetShaderVariable (const Char *Name)=0
 Returns an interface to a shader variable. If the shader variable is not found, an interface to a dummy variable will be returned. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the shader object implemented in D3D12.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_d3_d12.png b/doc/html/class_diligent_1_1_i_shader_d3_d12.png new file mode 100644 index 00000000..586869c1 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_shader_d3_d12.png differ diff --git a/doc/html/class_diligent_1_1_i_shader_g_l-members.html b/doc/html/class_diligent_1_1_i_shader_g_l-members.html new file mode 100644 index 00000000..1b40cd6c --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_g_l-members.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IShaderGL Member List
+
+
+ +

This is the complete list of members for Diligent::IShaderGL, including all inherited members.

+ + + + + + +
BindResources(IResourceMapping *pResourceMapping, Uint32 Flags)=0Diligent::IShaderpure virtual
GetDesc() const =0Diligent::IShaderpure virtual
GetShaderVariable(const Char *Name)=0Diligent::IShaderpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IShaderpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_g_l.html b/doc/html/class_diligent_1_1_i_shader_g_l.html new file mode 100644 index 00000000..375fe85a --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_g_l.html @@ -0,0 +1,129 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IShaderGL Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IShaderGL Class Reference
+
+
+ +

Interface to the shader object implemented in OpenGL. + More...

+
+Inheritance diagram for Diligent::IShaderGL:
+
+
+ + +Diligent::IShader +Diligent::IDeviceObject +Diligent::RefCountedObject< IShaderGL > +Diligent::ObjectBase< IShaderGL > +Diligent::DeviceObjectBase< IShaderGL, ShaderDesc > +Diligent::ShaderBase< IShaderGL, IGLDeviceBaseInterface > +Diligent::ShaderGLImpl + +
+ + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::IShader
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const ShaderDescGetDesc () const =0
 Returns the shader description.
 
virtual void BindResources (IResourceMapping *pResourceMapping, Uint32 Flags)=0
 Binds shader resources. More...
 
virtual IShaderVariableGetShaderVariable (const Char *Name)=0
 Returns an interface to a shader variable. If the shader variable is not found, an interface to a dummy variable will be returned. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the shader object implemented in OpenGL.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_g_l.png b/doc/html/class_diligent_1_1_i_shader_g_l.png new file mode 100644 index 00000000..3d59288c Binary files /dev/null and b/doc/html/class_diligent_1_1_i_shader_g_l.png differ diff --git a/doc/html/class_diligent_1_1_i_shader_resource_binding-members.html b/doc/html/class_diligent_1_1_i_shader_resource_binding-members.html new file mode 100644 index 00000000..6c4bb3f0 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_resource_binding-members.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IShaderResourceBinding Member List
+
+
+ +

This is the complete list of members for Diligent::IShaderResourceBinding, including all inherited members.

+ + + + + +
BindResources(Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags)=0Diligent::IShaderResourceBindingpure virtual
GetPipelineState()=0Diligent::IShaderResourceBindingpure virtual
GetVariable(SHADER_TYPE ShaderType, const char *Name)=0Diligent::IShaderResourceBindingpure virtual
QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IShaderResourceBindingpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_resource_binding.html b/doc/html/class_diligent_1_1_i_shader_resource_binding.html new file mode 100644 index 00000000..a3200f10 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_resource_binding.html @@ -0,0 +1,263 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IShaderResourceBinding Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IShaderResourceBinding Class Referenceabstract
+
+
+ +

Shader resource binding interface. + More...

+
+Inheritance diagram for Diligent::IShaderResourceBinding:
+
+
+ + +Diligent::IShaderResourceBindingD3D11 +Diligent::IShaderResourceBindingD3D12 +Diligent::IShaderResourceBindingGL +Diligent::RefCountedObject< IShaderResourceBindingD3D11 > +Diligent::RefCountedObject< IShaderResourceBindingD3D12 > +Diligent::RefCountedObject< IShaderResourceBindingGL > +Diligent::ObjectBase< IShaderResourceBindingD3D11 > +Diligent::ObjectBase< IShaderResourceBindingD3D12 > +Diligent::ObjectBase< IShaderResourceBindingGL > +Diligent::ShaderResourceBindingBase< IShaderResourceBindingD3D11 > +Diligent::ShaderResourceBindingBase< IShaderResourceBindingD3D12 > +Diligent::ShaderResourceBindingBase< IShaderResourceBindingGL > +Diligent::ShaderResourceBindingD3D11Impl +Diligent::ShaderResourceBindingD3D12Impl +Diligent::ShaderResourceBindingGLImpl + +
+ + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual class IPipelineStateGetPipelineState ()=0
 Returns pointer to the referenced buffer object. More...
 
virtual void BindResources (Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags)=0
 Binds all resource using the resource mapping. More...
 
virtual IShaderVariableGetVariable (SHADER_TYPE ShaderType, const char *Name)=0
 Returns variable. More...
 
+

Detailed Description

+

Shader resource binding interface.

+

Member Function Documentation

+ +

◆ BindResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IShaderResourceBinding::BindResources (Uint32 ShaderFlags,
IResourceMappingpResMapping,
Uint32 Flags 
)
+
+pure virtual
+
+ +

Binds all resource using the resource mapping.

+
Parameters
+ + + + +
[in]ShaderFlags- Flags for the shader stages, for which resources will be bound. Any combination of Diligent::SHADER_TYPE may be specified.
[in]pResMapping- Shader resource mapping, where required resources will be looked up
[in]Flags- Additional flags. See Diligent::BIND_SHADER_RESOURCES_FLAGS.
+
+
+ +

Implemented in Diligent::ShaderResourceBindingD3D11Impl, Diligent::ShaderResourceBindingD3D12Impl, and Diligent::ShaderResourceBindingGLImpl.

+ +
+
+ +

◆ GetPipelineState()

+ +
+
+ + + + + +
+ + + + + + + +
virtual class IPipelineState* Diligent::IShaderResourceBinding::GetPipelineState ()
+
+pure virtual
+
+ +

Returns pointer to the referenced buffer object.

+

The method calls AddRef() on the returned interface, so Release() must be called to avoid memory leaks.

+ +

Implemented in Diligent::ShaderResourceBindingBase< IShaderResourceBindingGL >, Diligent::ShaderResourceBindingBase< IShaderResourceBindingD3D12 >, and Diligent::ShaderResourceBindingBase< IShaderResourceBindingD3D11 >.

+ +
+
+ +

◆ GetVariable()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual IShaderVariable* Diligent::IShaderResourceBinding::GetVariable (SHADER_TYPE ShaderType,
const char * Name 
)
+
+pure virtual
+
+ +

Returns variable.

+
Parameters
+ + + +
[in]ShaderType- Type of the shader to look up the variable. Must be one of Diligent::SHADER_TYPE.
Name- Variable name
+
+
+ +

Implemented in Diligent::ShaderResourceBindingD3D11Impl, Diligent::ShaderResourceBindingD3D12Impl, and Diligent::ShaderResourceBindingGLImpl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_resource_binding.png b/doc/html/class_diligent_1_1_i_shader_resource_binding.png new file mode 100644 index 00000000..f975d0d7 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_shader_resource_binding.png differ diff --git a/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d11-members.html b/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d11-members.html new file mode 100644 index 00000000..997c76e3 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d11-members.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IShaderResourceBindingD3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::IShaderResourceBindingD3D11, including all inherited members.

+ + + + + +
BindResources(Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags)=0Diligent::IShaderResourceBindingpure virtual
GetPipelineState()=0Diligent::IShaderResourceBindingpure virtual
GetVariable(SHADER_TYPE ShaderType, const char *Name)=0Diligent::IShaderResourceBindingpure virtual
QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IShaderResourceBindingpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d11.html b/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d11.html new file mode 100644 index 00000000..4f70b750 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d11.html @@ -0,0 +1,121 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IShaderResourceBindingD3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IShaderResourceBindingD3D11 Class Reference
+
+
+ +

Shader resource binding interface. + More...

+
+Inheritance diagram for Diligent::IShaderResourceBindingD3D11:
+
+
+ + +Diligent::IShaderResourceBinding +Diligent::RefCountedObject< IShaderResourceBindingD3D11 > +Diligent::ObjectBase< IShaderResourceBindingD3D11 > +Diligent::ShaderResourceBindingBase< IShaderResourceBindingD3D11 > +Diligent::ShaderResourceBindingD3D11Impl + +
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::IShaderResourceBinding
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual class IPipelineStateGetPipelineState ()=0
 Returns pointer to the referenced buffer object. More...
 
virtual void BindResources (Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags)=0
 Binds all resource using the resource mapping. More...
 
virtual IShaderVariableGetVariable (SHADER_TYPE ShaderType, const char *Name)=0
 Returns variable. More...
 
+

Detailed Description

+

Shader resource binding interface.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d11.png b/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d11.png new file mode 100644 index 00000000..425bdc5f Binary files /dev/null and b/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d12-members.html b/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d12-members.html new file mode 100644 index 00000000..ee24cc83 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d12-members.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IShaderResourceBindingD3D12 Member List
+
+
+ +

This is the complete list of members for Diligent::IShaderResourceBindingD3D12, including all inherited members.

+ + + + + +
BindResources(Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags)=0Diligent::IShaderResourceBindingpure virtual
GetPipelineState()=0Diligent::IShaderResourceBindingpure virtual
GetVariable(SHADER_TYPE ShaderType, const char *Name)=0Diligent::IShaderResourceBindingpure virtual
QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IShaderResourceBindingpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d12.html b/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d12.html new file mode 100644 index 00000000..cd8777d9 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d12.html @@ -0,0 +1,121 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IShaderResourceBindingD3D12 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IShaderResourceBindingD3D12 Class Reference
+
+
+ +

Shader resource binding interface. + More...

+
+Inheritance diagram for Diligent::IShaderResourceBindingD3D12:
+
+
+ + +Diligent::IShaderResourceBinding +Diligent::RefCountedObject< IShaderResourceBindingD3D12 > +Diligent::ObjectBase< IShaderResourceBindingD3D12 > +Diligent::ShaderResourceBindingBase< IShaderResourceBindingD3D12 > +Diligent::ShaderResourceBindingD3D12Impl + +
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::IShaderResourceBinding
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual class IPipelineStateGetPipelineState ()=0
 Returns pointer to the referenced buffer object. More...
 
virtual void BindResources (Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags)=0
 Binds all resource using the resource mapping. More...
 
virtual IShaderVariableGetVariable (SHADER_TYPE ShaderType, const char *Name)=0
 Returns variable. More...
 
+

Detailed Description

+

Shader resource binding interface.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d12.png b/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d12.png new file mode 100644 index 00000000..b4e3f185 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_shader_resource_binding_d3_d12.png differ diff --git a/doc/html/class_diligent_1_1_i_shader_resource_binding_g_l-members.html b/doc/html/class_diligent_1_1_i_shader_resource_binding_g_l-members.html new file mode 100644 index 00000000..8a0589c0 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_resource_binding_g_l-members.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IShaderResourceBindingGL Member List
+
+
+ +

This is the complete list of members for Diligent::IShaderResourceBindingGL, including all inherited members.

+ + + + + +
BindResources(Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags)=0Diligent::IShaderResourceBindingpure virtual
GetPipelineState()=0Diligent::IShaderResourceBindingpure virtual
GetVariable(SHADER_TYPE ShaderType, const char *Name)=0Diligent::IShaderResourceBindingpure virtual
QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IShaderResourceBindingpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_resource_binding_g_l.html b/doc/html/class_diligent_1_1_i_shader_resource_binding_g_l.html new file mode 100644 index 00000000..212bde28 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_resource_binding_g_l.html @@ -0,0 +1,121 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IShaderResourceBindingGL Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IShaderResourceBindingGL Class Reference
+
+
+ +

Shader resource binding interface. + More...

+
+Inheritance diagram for Diligent::IShaderResourceBindingGL:
+
+
+ + +Diligent::IShaderResourceBinding +Diligent::RefCountedObject< IShaderResourceBindingGL > +Diligent::ObjectBase< IShaderResourceBindingGL > +Diligent::ShaderResourceBindingBase< IShaderResourceBindingGL > +Diligent::ShaderResourceBindingGLImpl + +
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::IShaderResourceBinding
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual class IPipelineStateGetPipelineState ()=0
 Returns pointer to the referenced buffer object. More...
 
virtual void BindResources (Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags)=0
 Binds all resource using the resource mapping. More...
 
virtual IShaderVariableGetVariable (SHADER_TYPE ShaderType, const char *Name)=0
 Returns variable. More...
 
+

Detailed Description

+

Shader resource binding interface.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_resource_binding_g_l.png b/doc/html/class_diligent_1_1_i_shader_resource_binding_g_l.png new file mode 100644 index 00000000..0b1e54e1 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_shader_resource_binding_g_l.png differ diff --git a/doc/html/class_diligent_1_1_i_shader_source_input_stream_factory-members.html b/doc/html/class_diligent_1_1_i_shader_source_input_stream_factory-members.html new file mode 100644 index 00000000..5667f02e --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_source_input_stream_factory-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IShaderSourceInputStreamFactory Member List
+
+
+ +

This is the complete list of members for Diligent::IShaderSourceInputStreamFactory, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_source_input_stream_factory.html b/doc/html/class_diligent_1_1_i_shader_source_input_stream_factory.html new file mode 100644 index 00000000..522a1fe6 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_source_input_stream_factory.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IShaderSourceInputStreamFactory Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IShaderSourceInputStreamFactory Class Referenceabstract
+
+
+ +

Shader source stream factory interface. + More...

+

Detailed Description

+

Shader source stream factory interface.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_variable-members.html b/doc/html/class_diligent_1_1_i_shader_variable-members.html new file mode 100644 index 00000000..ef3b25ac --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_variable-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::IShaderVariable Member List
+
+
+ +

This is the complete list of members for Diligent::IShaderVariable, including all inherited members.

+ + + +
Set(IDeviceObject *pObject)=0Diligent::IShaderVariablepure virtual
SetArray(IDeviceObject *const *ppObjects, Uint32 FirstElement, Uint32 NumElements)=0Diligent::IShaderVariablepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_variable.html b/doc/html/class_diligent_1_1_i_shader_variable.html new file mode 100644 index 00000000..dfa5567b --- /dev/null +++ b/doc/html/class_diligent_1_1_i_shader_variable.html @@ -0,0 +1,198 @@ + + + + + + + +Diligent Engine API Reference: Diligent::IShaderVariable Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::IShaderVariable Class Referenceabstract
+
+
+ +

Shader resource variable. + More...

+
+Inheritance diagram for Diligent::IShaderVariable:
+
+
+ + +Diligent::ShaderVariableBase +Diligent::DummyShaderVariable + +
+ + + + + + + + +

+Public Member Functions

virtual void Set (IDeviceObject *pObject)=0
 Sets the variable to the given value. More...
 
virtual void SetArray (IDeviceObject *const *ppObjects, Uint32 FirstElement, Uint32 NumElements)=0
 Sets the variable array. More...
 
+

Detailed Description

+

Shader resource variable.

+

Member Function Documentation

+ +

◆ Set()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::IShaderVariable::Set (IDeviceObjectpObject)
+
+pure virtual
+
+ +

Sets the variable to the given value.

+
Remarks
The method performs run-time correctness checks. For instance, shader resource view cannot be assigned to a constant buffer variable.
+ +

Implemented in Diligent::DummyShaderVariable.

+ +
+
+ +

◆ SetArray()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::IShaderVariable::SetArray (IDeviceObject *const * ppObjects,
Uint32 FirstElement,
Uint32 NumElements 
)
+
+pure virtual
+
+ +

Sets the variable array.

+
Parameters
+ + + + +
[in]ppObjects- pointer to the array of objects
[in]FirstElement- first array element to set
[in]NumElements- number of objects in ppObjects array
+
+
+
Remarks
The method performs run-time correctness checks. For instance, shader resource view cannot be assigned to a constant buffer variable.
+ +

Implemented in Diligent::DummyShaderVariable.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_shader_variable.png b/doc/html/class_diligent_1_1_i_shader_variable.png new file mode 100644 index 00000000..43f7b71b Binary files /dev/null and b/doc/html/class_diligent_1_1_i_shader_variable.png differ diff --git a/doc/html/class_diligent_1_1_i_swap_chain-members.html b/doc/html/class_diligent_1_1_i_swap_chain-members.html new file mode 100644 index 00000000..b6264055 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_swap_chain-members.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ISwapChain Member List
+
+
+ +

This is the complete list of members for Diligent::ISwapChain, including all inherited members.

+ + + + +
GetDesc() const =0Diligent::ISwapChainpure virtual
Present()=0Diligent::ISwapChainpure virtual
Resize(Uint32 NewWidth, Uint32 NewHeight)=0Diligent::ISwapChainpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_swap_chain.html b/doc/html/class_diligent_1_1_i_swap_chain.html new file mode 100644 index 00000000..5aa4cd3f --- /dev/null +++ b/doc/html/class_diligent_1_1_i_swap_chain.html @@ -0,0 +1,178 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ISwapChain Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ISwapChain Class Referenceabstract
+
+
+ +

Swap chain interface. + More...

+
+Inheritance diagram for Diligent::ISwapChain:
+
+
+ + +Diligent::ISwapChainD3D11 +Diligent::ISwapChainD3D12 +Diligent::ISwapChainGL +Diligent::RefCountedObject< ISwapChainD3D11 > +Diligent::RefCountedObject< ISwapChainD3D12 > +Diligent::RefCountedObject< ISwapChainGL > +Diligent::ObjectBase< ISwapChainD3D11 > +Diligent::ObjectBase< ISwapChainD3D12 > +Diligent::ObjectBase< ISwapChainGL > +Diligent::SwapChainBase< ISwapChainD3D11 > +Diligent::SwapChainBase< ISwapChainD3D12 > +Diligent::SwapChainBase< ISwapChainGL > +Diligent::SwapChainD3D11Impl +Diligent::SwapChainD3D12Impl +Diligent::SwapChainGLImpl + +
+ + + + + + + + + + + +

+Public Member Functions

+virtual void Present ()=0
 Presents a rendered image to the user.
 
+virtual const SwapChainDescGetDesc () const =0
 Returns the swap chain desctription.
 
virtual void Resize (Uint32 NewWidth, Uint32 NewHeight)=0
 Changes the swap chain's back buffer size. More...
 
+

Detailed Description

+

Swap chain interface.

+

The swap chain is created by a platform-dependent function

+

Member Function Documentation

+ +

◆ Resize()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::ISwapChain::Resize (Uint32 NewWidth,
Uint32 NewHeight 
)
+
+pure virtual
+
+ +

Changes the swap chain's back buffer size.

+
Parameters
+ + + +
[in]NewWidth- New swap chain width, in pixels
[in]NewHeight- New swap chain height, in pixels
+
+
+ +

Implemented in Diligent::SwapChainD3D12Impl, Diligent::SwapChainD3D11Impl, and Diligent::SwapChainGLImpl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_swap_chain.png b/doc/html/class_diligent_1_1_i_swap_chain.png new file mode 100644 index 00000000..1ae5a1d8 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_swap_chain.png differ diff --git a/doc/html/class_diligent_1_1_i_swap_chain_d3_d11-members.html b/doc/html/class_diligent_1_1_i_swap_chain_d3_d11-members.html new file mode 100644 index 00000000..bc3e5cbc --- /dev/null +++ b/doc/html/class_diligent_1_1_i_swap_chain_d3_d11-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ISwapChainD3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::ISwapChainD3D11, including all inherited members.

+ + + + + + + +
GetDesc() const =0Diligent::ISwapChainpure virtual
GetDSV()=0Diligent::ISwapChainD3D11pure virtual
GetDXGISwapChain()=0Diligent::ISwapChainD3D11pure virtual
GetRTV()=0Diligent::ISwapChainD3D11pure virtual
Present()=0Diligent::ISwapChainpure virtual
Resize(Uint32 NewWidth, Uint32 NewHeight)=0Diligent::ISwapChainpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_swap_chain_d3_d11.html b/doc/html/class_diligent_1_1_i_swap_chain_d3_d11.html new file mode 100644 index 00000000..0bf985c0 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_swap_chain_d3_d11.html @@ -0,0 +1,220 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ISwapChainD3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ISwapChainD3D11 Class Referenceabstract
+
+
+ +

Interface to the swap chain object implemented in D3D11. + More...

+
+Inheritance diagram for Diligent::ISwapChainD3D11:
+
+
+ + +Diligent::ISwapChain +Diligent::RefCountedObject< ISwapChainD3D11 > +Diligent::ObjectBase< ISwapChainD3D11 > +Diligent::SwapChainBase< ISwapChainD3D11 > +Diligent::SwapChainD3D11Impl + +
+ + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual IDXGISwapChain * GetDXGISwapChain ()=0
 Returns a pointer to the IDXGISwapChain interface of the internal DXGI object. More...
 
virtual ID3D11RenderTargetView * GetRTV ()=0
 Returns d3d11 render target view of the swap chain's back buffer. More...
 
virtual ID3D11DepthStencilView * GetDSV ()=0
 Returns d3d11 depth stencil view of the internal depth buffer object. More...
 
- Public Member Functions inherited from Diligent::ISwapChain
+virtual void Present ()=0
 Presents a rendered image to the user.
 
+virtual const SwapChainDescGetDesc () const =0
 Returns the swap chain desctription.
 
virtual void Resize (Uint32 NewWidth, Uint32 NewHeight)=0
 Changes the swap chain's back buffer size. More...
 
+

Detailed Description

+

Interface to the swap chain object implemented in D3D11.

+

Member Function Documentation

+ +

◆ GetDSV()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11DepthStencilView* Diligent::ISwapChainD3D11::GetDSV ()
+
+pure virtual
+
+ +

Returns d3d11 depth stencil view of the internal depth buffer object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::SwapChainD3D11Impl.

+ +
+
+ +

◆ GetDXGISwapChain()

+ +
+
+ + + + + +
+ + + + + + + +
virtual IDXGISwapChain* Diligent::ISwapChainD3D11::GetDXGISwapChain ()
+
+pure virtual
+
+ +

Returns a pointer to the IDXGISwapChain interface of the internal DXGI object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::SwapChainD3D11Impl.

+ +
+
+ +

◆ GetRTV()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11RenderTargetView* Diligent::ISwapChainD3D11::GetRTV ()
+
+pure virtual
+
+ +

Returns d3d11 render target view of the swap chain's back buffer.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::SwapChainD3D11Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_swap_chain_d3_d11.png b/doc/html/class_diligent_1_1_i_swap_chain_d3_d11.png new file mode 100644 index 00000000..7308590e Binary files /dev/null and b/doc/html/class_diligent_1_1_i_swap_chain_d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_i_swap_chain_d3_d12-members.html b/doc/html/class_diligent_1_1_i_swap_chain_d3_d12-members.html new file mode 100644 index 00000000..324f0f21 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_swap_chain_d3_d12-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ISwapChainD3D12 Member List
+
+
+ +

This is the complete list of members for Diligent::ISwapChainD3D12, including all inherited members.

+ + + + + + + +
GetCurrentBackBufferRTV()=0Diligent::ISwapChainD3D12pure virtual
GetDepthBufferDSV()=0Diligent::ISwapChainD3D12pure virtual
GetDesc() const =0Diligent::ISwapChainpure virtual
GetDXGISwapChain()=0Diligent::ISwapChainD3D12pure virtual
Present()=0Diligent::ISwapChainpure virtual
Resize(Uint32 NewWidth, Uint32 NewHeight)=0Diligent::ISwapChainpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_swap_chain_d3_d12.html b/doc/html/class_diligent_1_1_i_swap_chain_d3_d12.html new file mode 100644 index 00000000..a03209b3 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_swap_chain_d3_d12.html @@ -0,0 +1,220 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ISwapChainD3D12 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ISwapChainD3D12 Class Referenceabstract
+
+
+ +

Interface to the swap chain object implemented in D3D12. + More...

+
+Inheritance diagram for Diligent::ISwapChainD3D12:
+
+
+ + +Diligent::ISwapChain +Diligent::RefCountedObject< ISwapChainD3D12 > +Diligent::ObjectBase< ISwapChainD3D12 > +Diligent::SwapChainBase< ISwapChainD3D12 > +Diligent::SwapChainD3D12Impl + +
+ + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual IDXGISwapChain * GetDXGISwapChain ()=0
 Returns a pointer to the IDXGISwapChain interface of the internal DXGI object. More...
 
virtual ITextureViewD3D12GetCurrentBackBufferRTV ()=0
 Returns a pointer to the render target view of the current back buffer in the swap chain. More...
 
virtual ITextureViewD3D12GetDepthBufferDSV ()=0
 Returns a pointer to the depth-stencil view of the depth buffer. More...
 
- Public Member Functions inherited from Diligent::ISwapChain
+virtual void Present ()=0
 Presents a rendered image to the user.
 
+virtual const SwapChainDescGetDesc () const =0
 Returns the swap chain desctription.
 
virtual void Resize (Uint32 NewWidth, Uint32 NewHeight)=0
 Changes the swap chain's back buffer size. More...
 
+

Detailed Description

+

Interface to the swap chain object implemented in D3D12.

+

Member Function Documentation

+ +

◆ GetCurrentBackBufferRTV()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ITextureViewD3D12* Diligent::ISwapChainD3D12::GetCurrentBackBufferRTV ()
+
+pure virtual
+
+ +

Returns a pointer to the render target view of the current back buffer in the swap chain.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::SwapChainD3D12Impl.

+ +
+
+ +

◆ GetDepthBufferDSV()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ITextureViewD3D12* Diligent::ISwapChainD3D12::GetDepthBufferDSV ()
+
+pure virtual
+
+ +

Returns a pointer to the depth-stencil view of the depth buffer.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::SwapChainD3D12Impl.

+ +
+
+ +

◆ GetDXGISwapChain()

+ +
+
+ + + + + +
+ + + + + + + +
virtual IDXGISwapChain* Diligent::ISwapChainD3D12::GetDXGISwapChain ()
+
+pure virtual
+
+ +

Returns a pointer to the IDXGISwapChain interface of the internal DXGI object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::SwapChainD3D12Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_swap_chain_d3_d12.png b/doc/html/class_diligent_1_1_i_swap_chain_d3_d12.png new file mode 100644 index 00000000..f0d76b72 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_swap_chain_d3_d12.png differ diff --git a/doc/html/class_diligent_1_1_i_swap_chain_g_l-members.html b/doc/html/class_diligent_1_1_i_swap_chain_g_l-members.html new file mode 100644 index 00000000..747480ff --- /dev/null +++ b/doc/html/class_diligent_1_1_i_swap_chain_g_l-members.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ISwapChainGL Member List
+
+
+ +

This is the complete list of members for Diligent::ISwapChainGL, including all inherited members.

+ + + + +
GetDesc() const =0Diligent::ISwapChainpure virtual
Present()=0Diligent::ISwapChainpure virtual
Resize(Uint32 NewWidth, Uint32 NewHeight)=0Diligent::ISwapChainpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_swap_chain_g_l.html b/doc/html/class_diligent_1_1_i_swap_chain_g_l.html new file mode 100644 index 00000000..6b4c2105 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_swap_chain_g_l.html @@ -0,0 +1,119 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ISwapChainGL Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ISwapChainGL Class Reference
+
+
+ +

Interface to the swap chain object implemented in OpenGL. + More...

+
+Inheritance diagram for Diligent::ISwapChainGL:
+
+
+ + +Diligent::ISwapChain +Diligent::RefCountedObject< ISwapChainGL > +Diligent::ObjectBase< ISwapChainGL > +Diligent::SwapChainBase< ISwapChainGL > +Diligent::SwapChainGLImpl + +
+ + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::ISwapChain
+virtual void Present ()=0
 Presents a rendered image to the user.
 
+virtual const SwapChainDescGetDesc () const =0
 Returns the swap chain desctription.
 
virtual void Resize (Uint32 NewWidth, Uint32 NewHeight)=0
 Changes the swap chain's back buffer size. More...
 
+

Detailed Description

+

Interface to the swap chain object implemented in OpenGL.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_swap_chain_g_l.png b/doc/html/class_diligent_1_1_i_swap_chain_g_l.png new file mode 100644 index 00000000..7f0aac77 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_swap_chain_g_l.png differ diff --git a/doc/html/class_diligent_1_1_i_texture-members.html b/doc/html/class_diligent_1_1_i_texture-members.html new file mode 100644 index 00000000..1487a974 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture-members.html @@ -0,0 +1,96 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ITexture Member List
+
+
+ +

This is the complete list of members for Diligent::ITexture, including all inherited members.

+ + + + + + + + + + + +
CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)=0Diligent::ITexturepure virtual
CreateView(const struct TextureViewDesc &ViewDesc, class ITextureView **ppView)=0Diligent::ITexturepure virtual
GetDefaultView(TEXTURE_VIEW_TYPE ViewType)=0Diligent::ITexturepure virtual
GetDesc() const =0Diligent::ITexturepure virtual
GetNativeHandle()=0Diligent::ITexturepure virtual
Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData)=0Diligent::ITexturepure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::ITexturepure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags)=0Diligent::ITexturepure virtual
UpdateData(class IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData)=0Diligent::ITexturepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture.html b/doc/html/class_diligent_1_1_i_texture.html new file mode 100644 index 00000000..edea396f --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture.html @@ -0,0 +1,457 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ITexture Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ITexture Class Referenceabstract
+
+
+ +

Texture inteface. + More...

+
+Inheritance diagram for Diligent::ITexture:
+
+
+ + +Diligent::IDeviceObject +Diligent::ITextureD3D11 +Diligent::ITextureD3D12 +Diligent::ITextureGL +Diligent::RefCountedObject< ITextureD3D11 > +Diligent::RefCountedObject< ITextureD3D12 > +Diligent::RefCountedObject< ITextureGL > +Diligent::ObjectBase< ITextureD3D11 > +Diligent::ObjectBase< ITextureD3D12 > +Diligent::ObjectBase< ITextureGL > +Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc > +Diligent::DeviceObjectBase< ITextureD3D12, TextureDesc > +Diligent::DeviceObjectBase< ITextureGL, TextureDesc > +Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator > +Diligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator > +Diligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator > +Diligent::TextureBaseD3D11 +Diligent::TextureD3D12Impl +Diligent::TextureBaseGL +Diligent::Texture1D_D3D11 +Diligent::Texture2D_D3D11 +Diligent::Texture3D_D3D11 + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const TextureDescGetDesc () const =0
 Returns the texture description used to create the object.
 
virtual void CreateView (const struct TextureViewDesc &ViewDesc, class ITextureView **ppView)=0
 Creates a new texture view. More...
 
virtual ITextureViewGetDefaultView (TEXTURE_VIEW_TYPE ViewType)=0
 Returns the pointer to the default view. More...
 
virtual void UpdateData (class IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData)=0
 Updates the data in the texture. More...
 
virtual void CopyData (IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)=0
 Copies data from another texture. More...
 
+virtual void Map (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData)=0
 Map the texture - not implemented yet.
 
+virtual void Unmap (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags)=0
 Unmap the textute - not implemented yet.
 
virtual void * GetNativeHandle ()=0
 Returns native texture handle specific to the underlying graphics API. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Texture inteface.

+

Member Function Documentation

+ +

◆ CopyData()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::ITexture::CopyData (IDeviceContextpContext,
ITexturepSrcTexture,
Uint32 SrcMipLevel,
Uint32 SrcSlice,
const BoxpSrcBox,
Uint32 DstMipLevel,
Uint32 DstSlice,
Uint32 DstX,
Uint32 DstY,
Uint32 DstZ 
)
+
+pure virtual
+
+ +

Copies data from another texture.

+
Parameters
+ + + + + + + + + + + +
[in]pContext- Pointer to the device context interface to be used to perform the operation.
[in]pSrcTexture- Source texture for the copy operation
[in]SrcMipLevel- Mip level of the source texture to copy data from.
[in]SrcSlice- Array slice of the source texture to copy data from. Should be 0 for non-array textures.
[in]pSrcBox- Source region to copy. Use nullptr to copy the entire subresource.
[in]DstMipLevel- Mip level to copy data to.
[in]DstSlice- Array slice to copy data to. Must be 0 for non-array textures.
[in]DstX- X offset on the destination subresource
[in]DstY- Y offset on the destination subresource
[in]DstZ- Z offset on the destination subresource
+
+
+ +

Implemented in Diligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >, Diligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >, Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >, Diligent::TextureBaseGL, Diligent::TextureD3D12Impl, and Diligent::TextureBaseD3D11.

+ +
+
+ +

◆ CreateView()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void Diligent::ITexture::CreateView (const struct TextureViewDescViewDesc,
class ITextureView ** ppView 
)
+
+pure virtual
+
+ +

Creates a new texture view.

+
Parameters
+ + + +
[in]ViewDesc- View description. See Diligent::TextureViewDesc for details.
[out]ppView- Address of the memory location where the pointer to the view interface will be written to.
+
+
+
Remarks
To create a shader resource view addressing the entire texture, set only TextureViewDesc::ViewType member of the ViewDesc parameter to Diligent::TEXTURE_VIEW_SHADER_RESOURCE and leave all other members in their default values. Using the same method, you can create render target or depth stencil view addressing the largest mip level.
+ If texture view format is Diligent::TEX_FORMAT_UNKNOWN, the view format will match the texture format.
+ If texture view type is Diligent::TEXTURE_VIEW_UNDEFINED, the type will match the texture type.
+ If the number of mip levels is 0, and the view type is shader resource, the view will address all mip levels. For other view types it will address one mip level.
+ If the number of slices is 0, all slices from FirstArraySlice or FirstDepthSlice will be referenced by the view. For non-array textures, the only allowed values for the number of slices are 0 and 1.
+ Texture view will contain strong reference to the texture, so the texture will not be destroyed until all views are released.
+ The function calls AddRef() for the created interface, so it must be released by a call to Release() when it is no longer needed.
+ +

Implemented in Diligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >, Diligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >, and Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >.

+ +
+
+ +

◆ GetDefaultView()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual ITextureView* Diligent::ITexture::GetDefaultView (TEXTURE_VIEW_TYPE ViewType)
+
+pure virtual
+
+ +

Returns the pointer to the default view.

+
Parameters
+ + +
[in]ViewType- Type of the requested view. See Diligent::TEXTURE_VIEW_TYPE.
+
+
+
Returns
Pointer to the interface
+
Note
The function does not increase the reference counter for the returned interface, so Release() must NOT be called.
+ +

Implemented in Diligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >, Diligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >, and Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >.

+ +
+
+ +

◆ GetNativeHandle()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void* Diligent::ITexture::GetNativeHandle ()
+
+pure virtual
+
+ +

Returns native texture handle specific to the underlying graphics API.

+
Returns
pointer to ID3D11Resource interface, for D3D11 implementation
+ pointer to ID3D12Resource interface, for D3D12 implementation
+ GL buffer handle, for GL implementation
+ +

Implemented in Diligent::TextureBaseGL, Diligent::TextureBaseD3D11, and Diligent::TextureD3D12Impl.

+ +
+
+ +

◆ UpdateData()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void Diligent::ITexture::UpdateData (class IDeviceContextpContext,
Uint32 MipLevel,
Uint32 Slice,
const BoxDstBox,
const TextureSubResDataSubresData 
)
+
+pure virtual
+
+ +

Updates the data in the texture.

+
Parameters
+ + + + + + +
[in]pContext- Pointer to the device context interface to be used to perform the operation.
[in]MipLevel- Mip level of the texture subresource to update.
[in]Slice- Array slice. Should be 0 for non-array textures.
[in]DstBox- Destination region on the texture to update.
[in]SubresData- Source data to copy to the texture.
+
+
+ +

Implemented in Diligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >, Diligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >, Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >, Diligent::TextureBaseD3D11, and Diligent::TextureD3D12Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture.png b/doc/html/class_diligent_1_1_i_texture.png new file mode 100644 index 00000000..859b95c2 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_texture.png differ diff --git a/doc/html/class_diligent_1_1_i_texture_d3_d11-members.html b/doc/html/class_diligent_1_1_i_texture_d3_d11-members.html new file mode 100644 index 00000000..7838a4c7 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture_d3_d11-members.html @@ -0,0 +1,97 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ITextureD3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::ITextureD3D11, including all inherited members.

+ + + + + + + + + + + + +
CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)=0Diligent::ITexturepure virtual
CreateView(const struct TextureViewDesc &ViewDesc, class ITextureView **ppView)=0Diligent::ITexturepure virtual
GetD3D11Texture()=0Diligent::ITextureD3D11pure virtual
GetDefaultView(TEXTURE_VIEW_TYPE ViewType)=0Diligent::ITexturepure virtual
GetDesc() const =0Diligent::ITexturepure virtual
GetNativeHandle()=0Diligent::ITexturepure virtual
Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData)=0Diligent::ITexturepure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::ITexturepure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags)=0Diligent::ITexturepure virtual
UpdateData(class IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData)=0Diligent::ITexturepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture_d3_d11.html b/doc/html/class_diligent_1_1_i_texture_d3_d11.html new file mode 100644 index 00000000..a97243e0 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture_d3_d11.html @@ -0,0 +1,184 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ITextureD3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ITextureD3D11 Class Referenceabstract
+
+
+ +

Interface to the texture object implemented in D3D11. + More...

+
+Inheritance diagram for Diligent::ITextureD3D11:
+
+
+ + +Diligent::ITexture +Diligent::IDeviceObject +Diligent::RefCountedObject< ITextureD3D11 > +Diligent::ObjectBase< ITextureD3D11 > +Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc > +Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator > +Diligent::TextureBaseD3D11 +Diligent::Texture1D_D3D11 +Diligent::Texture2D_D3D11 +Diligent::Texture3D_D3D11 + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ID3D11Resource * GetD3D11Texture ()=0
 Returns a pointer to the ID3D11Resource interface of the internal Direct3D11 object. More...
 
- Public Member Functions inherited from Diligent::ITexture
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const TextureDescGetDesc () const =0
 Returns the texture description used to create the object.
 
virtual void CreateView (const struct TextureViewDesc &ViewDesc, class ITextureView **ppView)=0
 Creates a new texture view. More...
 
virtual ITextureViewGetDefaultView (TEXTURE_VIEW_TYPE ViewType)=0
 Returns the pointer to the default view. More...
 
virtual void UpdateData (class IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData)=0
 Updates the data in the texture. More...
 
virtual void CopyData (IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)=0
 Copies data from another texture. More...
 
+virtual void Map (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData)=0
 Map the texture - not implemented yet.
 
+virtual void Unmap (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags)=0
 Unmap the textute - not implemented yet.
 
virtual void * GetNativeHandle ()=0
 Returns native texture handle specific to the underlying graphics API. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the texture object implemented in D3D11.

+

Member Function Documentation

+ +

◆ GetD3D11Texture()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11Resource* Diligent::ITextureD3D11::GetD3D11Texture ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11Resource interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::TextureBaseD3D11.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture_d3_d11.png b/doc/html/class_diligent_1_1_i_texture_d3_d11.png new file mode 100644 index 00000000..da9c1425 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_texture_d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_i_texture_d3_d12-members.html b/doc/html/class_diligent_1_1_i_texture_d3_d12-members.html new file mode 100644 index 00000000..9ba0f593 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture_d3_d12-members.html @@ -0,0 +1,98 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ITextureD3D12 Member List
+
+
+ +

This is the complete list of members for Diligent::ITextureD3D12, including all inherited members.

+ + + + + + + + + + + + + +
CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)=0Diligent::ITexturepure virtual
CreateView(const struct TextureViewDesc &ViewDesc, class ITextureView **ppView)=0Diligent::ITexturepure virtual
GetD3D12Texture()=0Diligent::ITextureD3D12pure virtual
GetDefaultView(TEXTURE_VIEW_TYPE ViewType)=0Diligent::ITexturepure virtual
GetDesc() const =0Diligent::ITexturepure virtual
GetNativeHandle()=0Diligent::ITexturepure virtual
Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData)=0Diligent::ITexturepure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::ITexturepure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
SetD3D12ResourceState(D3D12_RESOURCE_STATES state)=0Diligent::ITextureD3D12pure virtual
Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags)=0Diligent::ITexturepure virtual
UpdateData(class IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData)=0Diligent::ITexturepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture_d3_d12.html b/doc/html/class_diligent_1_1_i_texture_d3_d12.html new file mode 100644 index 00000000..46bdba39 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture_d3_d12.html @@ -0,0 +1,220 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ITextureD3D12 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ITextureD3D12 Class Referenceabstract
+
+
+ +

Interface to the texture object implemented in D3D11. + More...

+
+Inheritance diagram for Diligent::ITextureD3D12:
+
+
+ + +Diligent::ITexture +Diligent::IDeviceObject +Diligent::RefCountedObject< ITextureD3D12 > +Diligent::ObjectBase< ITextureD3D12 > +Diligent::DeviceObjectBase< ITextureD3D12, TextureDesc > +Diligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator > +Diligent::TextureD3D12Impl + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ID3D12Resource * GetD3D12Texture ()=0
 Returns a pointer to the ID3D12Resource interface of the internal Direct3D12 object. More...
 
virtual void SetD3D12ResourceState (D3D12_RESOURCE_STATES state)=0
 Sets the texture usage state. More...
 
- Public Member Functions inherited from Diligent::ITexture
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const TextureDescGetDesc () const =0
 Returns the texture description used to create the object.
 
virtual void CreateView (const struct TextureViewDesc &ViewDesc, class ITextureView **ppView)=0
 Creates a new texture view. More...
 
virtual ITextureViewGetDefaultView (TEXTURE_VIEW_TYPE ViewType)=0
 Returns the pointer to the default view. More...
 
virtual void UpdateData (class IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData)=0
 Updates the data in the texture. More...
 
virtual void CopyData (IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)=0
 Copies data from another texture. More...
 
+virtual void Map (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData)=0
 Map the texture - not implemented yet.
 
+virtual void Unmap (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags)=0
 Unmap the textute - not implemented yet.
 
virtual void * GetNativeHandle ()=0
 Returns native texture handle specific to the underlying graphics API. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the texture object implemented in D3D11.

+

Member Function Documentation

+ +

◆ GetD3D12Texture()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D12Resource* Diligent::ITextureD3D12::GetD3D12Texture ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D12Resource interface of the internal Direct3D12 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::TextureD3D12Impl.

+ +
+
+ +

◆ SetD3D12ResourceState()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::ITextureD3D12::SetD3D12ResourceState (D3D12_RESOURCE_STATES state)
+
+pure virtual
+
+ +

Sets the texture usage state.

+
Parameters
+ + +
[in]state- D3D12 resource state to be set for this texture
+
+
+ +

Implemented in Diligent::TextureD3D12Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture_d3_d12.png b/doc/html/class_diligent_1_1_i_texture_d3_d12.png new file mode 100644 index 00000000..d5b6ba40 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_texture_d3_d12.png differ diff --git a/doc/html/class_diligent_1_1_i_texture_g_l-members.html b/doc/html/class_diligent_1_1_i_texture_g_l-members.html new file mode 100644 index 00000000..ba24c948 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture_g_l-members.html @@ -0,0 +1,98 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ITextureGL Member List
+
+
+ +

This is the complete list of members for Diligent::ITextureGL, including all inherited members.

+ + + + + + + + + + + + + +
CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)=0Diligent::ITexturepure virtual
CreateView(const struct TextureViewDesc &ViewDesc, class ITextureView **ppView)=0Diligent::ITexturepure virtual
GetBindTarget() const =0Diligent::ITextureGLpure virtual
GetDefaultView(TEXTURE_VIEW_TYPE ViewType)=0Diligent::ITexturepure virtual
GetDesc() const =0Diligent::ITexturepure virtual
GetGLTextureHandle()=0Diligent::ITextureGLpure virtual
GetNativeHandle()=0Diligent::ITexturepure virtual
Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData)=0Diligent::ITexturepure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::ITexturepure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags)=0Diligent::ITexturepure virtual
UpdateData(class IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData)=0Diligent::ITexturepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture_g_l.html b/doc/html/class_diligent_1_1_i_texture_g_l.html new file mode 100644 index 00000000..f48aca42 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture_g_l.html @@ -0,0 +1,155 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ITextureGL Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ITextureGL Class Referenceabstract
+
+
+ +

Interface to the texture object implemented in OpenGL. + More...

+
+Inheritance diagram for Diligent::ITextureGL:
+
+
+ + +Diligent::ITexture +Diligent::IDeviceObject +Diligent::RefCountedObject< ITextureGL > +Diligent::ObjectBase< ITextureGL > +Diligent::DeviceObjectBase< ITextureGL, TextureDesc > +Diligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator > +Diligent::TextureBaseGL + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual GLuint GetGLTextureHandle ()=0
 Returns OpenGL texture handle.
 
+virtual GLenum GetBindTarget () const =0
 Returns bind target of the native OpenGL texture.
 
- Public Member Functions inherited from Diligent::ITexture
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const TextureDescGetDesc () const =0
 Returns the texture description used to create the object.
 
virtual void CreateView (const struct TextureViewDesc &ViewDesc, class ITextureView **ppView)=0
 Creates a new texture view. More...
 
virtual ITextureViewGetDefaultView (TEXTURE_VIEW_TYPE ViewType)=0
 Returns the pointer to the default view. More...
 
virtual void UpdateData (class IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData)=0
 Updates the data in the texture. More...
 
virtual void CopyData (IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)=0
 Copies data from another texture. More...
 
+virtual void Map (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData)=0
 Map the texture - not implemented yet.
 
+virtual void Unmap (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags)=0
 Unmap the textute - not implemented yet.
 
virtual void * GetNativeHandle ()=0
 Returns native texture handle specific to the underlying graphics API. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the texture object implemented in OpenGL.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture_g_l.png b/doc/html/class_diligent_1_1_i_texture_g_l.png new file mode 100644 index 00000000..84ca0af2 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_texture_g_l.png differ diff --git a/doc/html/class_diligent_1_1_i_texture_view-members.html b/doc/html/class_diligent_1_1_i_texture_view-members.html new file mode 100644 index 00000000..f8772cee --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture_view-members.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ITextureView Member List
+
+
+ +

This is the complete list of members for Diligent::ITextureView, including all inherited members.

+ + + + + + + + +
GenerateMips(IDeviceContext *pContext)=0Diligent::ITextureViewpure virtual
GetDesc() const =0Diligent::ITextureViewpure virtual
GetSampler()=0Diligent::ITextureViewpure virtual
GetTexture()=0Diligent::ITextureViewpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::ITextureViewpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
SetSampler(class ISampler *pSampler)=0Diligent::ITextureViewpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture_view.html b/doc/html/class_diligent_1_1_i_texture_view.html new file mode 100644 index 00000000..8d740dd8 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture_view.html @@ -0,0 +1,241 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ITextureView Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ITextureView Class Referenceabstract
+
+
+ +

Texture view interface. + More...

+
+Inheritance diagram for Diligent::ITextureView:
+
+
+ + +Diligent::IDeviceObject +Diligent::ITextureViewD3D11 +Diligent::ITextureViewD3D12 +Diligent::ITextureViewGL +Diligent::RefCountedObject< ITextureViewD3D11 > +Diligent::RefCountedObject< ITextureViewD3D12 > +Diligent::RefCountedObject< ITextureViewGL > +Diligent::ObjectBase< ITextureViewD3D11 > +Diligent::ObjectBase< ITextureViewD3D12 > +Diligent::ObjectBase< ITextureViewGL > +Diligent::DeviceObjectBase< ITextureViewD3D11, TextureViewDesc > +Diligent::DeviceObjectBase< ITextureViewD3D12, TextureViewDesc > +Diligent::DeviceObjectBase< ITextureViewGL, TextureViewDesc > +Diligent::TextureViewBase< ITextureViewD3D11 > +Diligent::TextureViewBase< ITextureViewD3D12 > +Diligent::TextureViewBase< ITextureViewGL > +Diligent::TextureViewD3D11Impl +Diligent::TextureViewD3D12Impl +Diligent::TextureViewGLImpl + +
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const TextureViewDescGetDesc () const =0
 Returns the texture view description used to create the object.
 
+virtual void SetSampler (class ISampler *pSampler)=0
 Sets the texture sampler to use for filtering operations when accessing a texture from shaders. Only shader resource views can be assigned a sampler. The view will keep strong reference to the sampler.
 
virtual ISamplerGetSampler ()=0
 Returns the pointer to the sampler object set by the ITextureView::SetSampler(). More...
 
virtual class ITextureGetTexture ()=0
 Returns the pointer to the referenced texture object. More...
 
virtual void GenerateMips (IDeviceContext *pContext)=0
 Generates a mipmap chain. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Texture view interface.

+
Remarks
To create a texture view, call ITexture::CreateView(). Texture view holds strong references to the texture. The texture will not be destroyed until all views are released. The texture view will also keep a strong reference to the texture sampler, if any is set.
+

Member Function Documentation

+ +

◆ GenerateMips()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::ITextureView::GenerateMips (IDeviceContextpContext)
+
+pure virtual
+
+ +

Generates a mipmap chain.

+
Remarks
This function can only be called for a shader resource view The texture must be created with MISC_TEXTURE_FLAG_GENERATE_MIPS flag
+ +

Implemented in Diligent::TextureViewD3D11Impl, Diligent::TextureViewGLImpl, and Diligent::TextureViewD3D12Impl.

+ +
+
+ +

◆ GetSampler()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ISampler* Diligent::ITextureView::GetSampler ()
+
+pure virtual
+
+ +

Returns the pointer to the sampler object set by the ITextureView::SetSampler().

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::TextureViewBase< ITextureViewD3D11 >, Diligent::TextureViewBase< ITextureViewD3D12 >, and Diligent::TextureViewBase< ITextureViewGL >.

+ +
+
+ +

◆ GetTexture()

+ +
+
+ + + + + +
+ + + + + + + +
virtual class ITexture* Diligent::ITextureView::GetTexture ()
+
+pure virtual
+
+ +

Returns the pointer to the referenced texture object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::TextureViewBase< ITextureViewD3D11 >, Diligent::TextureViewBase< ITextureViewD3D12 >, and Diligent::TextureViewBase< ITextureViewGL >.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture_view.png b/doc/html/class_diligent_1_1_i_texture_view.png new file mode 100644 index 00000000..64b5c738 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_texture_view.png differ diff --git a/doc/html/class_diligent_1_1_i_texture_view_d3_d11-members.html b/doc/html/class_diligent_1_1_i_texture_view_d3_d11-members.html new file mode 100644 index 00000000..b7e6420b --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture_view_d3_d11-members.html @@ -0,0 +1,94 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ITextureViewD3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::ITextureViewD3D11, including all inherited members.

+ + + + + + + + + +
GenerateMips(IDeviceContext *pContext)=0Diligent::ITextureViewpure virtual
GetD3D11View()=0Diligent::ITextureViewD3D11pure virtual
GetDesc() const =0Diligent::ITextureViewpure virtual
GetSampler()=0Diligent::ITextureViewpure virtual
GetTexture()=0Diligent::ITextureViewpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::ITextureViewpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
SetSampler(class ISampler *pSampler)=0Diligent::ITextureViewpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture_view_d3_d11.html b/doc/html/class_diligent_1_1_i_texture_view_d3_d11.html new file mode 100644 index 00000000..454eabc5 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture_view_d3_d11.html @@ -0,0 +1,171 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ITextureViewD3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ITextureViewD3D11 Class Referenceabstract
+
+
+ +

Interface to the texture view object implemented in D3D11. + More...

+
+Inheritance diagram for Diligent::ITextureViewD3D11:
+
+
+ + +Diligent::ITextureView +Diligent::IDeviceObject +Diligent::RefCountedObject< ITextureViewD3D11 > +Diligent::ObjectBase< ITextureViewD3D11 > +Diligent::DeviceObjectBase< ITextureViewD3D11, TextureViewDesc > +Diligent::TextureViewBase< ITextureViewD3D11 > +Diligent::TextureViewD3D11Impl + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ID3D11View * GetD3D11View ()=0
 Returns a pointer to the ID3D11View interface of the internal Direct3D11 object. More...
 
- Public Member Functions inherited from Diligent::ITextureView
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const TextureViewDescGetDesc () const =0
 Returns the texture view description used to create the object.
 
+virtual void SetSampler (class ISampler *pSampler)=0
 Sets the texture sampler to use for filtering operations when accessing a texture from shaders. Only shader resource views can be assigned a sampler. The view will keep strong reference to the sampler.
 
virtual ISamplerGetSampler ()=0
 Returns the pointer to the sampler object set by the ITextureView::SetSampler(). More...
 
virtual class ITextureGetTexture ()=0
 Returns the pointer to the referenced texture object. More...
 
virtual void GenerateMips (IDeviceContext *pContext)=0
 Generates a mipmap chain. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the texture view object implemented in D3D11.

+

Member Function Documentation

+ +

◆ GetD3D11View()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11View* Diligent::ITextureViewD3D11::GetD3D11View ()
+
+pure virtual
+
+ +

Returns a pointer to the ID3D11View interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implemented in Diligent::TextureViewD3D11Impl.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture_view_d3_d11.png b/doc/html/class_diligent_1_1_i_texture_view_d3_d11.png new file mode 100644 index 00000000..577255cd Binary files /dev/null and b/doc/html/class_diligent_1_1_i_texture_view_d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_i_texture_view_d3_d12-members.html b/doc/html/class_diligent_1_1_i_texture_view_d3_d12-members.html new file mode 100644 index 00000000..f87fa984 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture_view_d3_d12-members.html @@ -0,0 +1,94 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ITextureViewD3D12 Member List
+
+
+ +

This is the complete list of members for Diligent::ITextureViewD3D12, including all inherited members.

+ + + + + + + + + +
GenerateMips(IDeviceContext *pContext)=0Diligent::ITextureViewpure virtual
GetCPUDescriptorHandle()=0Diligent::ITextureViewD3D12pure virtual
GetDesc() const =0Diligent::ITextureViewpure virtual
GetSampler()=0Diligent::ITextureViewpure virtual
GetTexture()=0Diligent::ITextureViewpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::ITextureViewpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
SetSampler(class ISampler *pSampler)=0Diligent::ITextureViewpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture_view_d3_d12.html b/doc/html/class_diligent_1_1_i_texture_view_d3_d12.html new file mode 100644 index 00000000..84ae1b74 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture_view_d3_d12.html @@ -0,0 +1,141 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ITextureViewD3D12 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ITextureViewD3D12 Class Referenceabstract
+
+
+ +

Interface to the texture view object implemented in D3D11. + More...

+
+Inheritance diagram for Diligent::ITextureViewD3D12:
+
+
+ + +Diligent::ITextureView +Diligent::IDeviceObject +Diligent::RefCountedObject< ITextureViewD3D12 > +Diligent::ObjectBase< ITextureViewD3D12 > +Diligent::DeviceObjectBase< ITextureViewD3D12, TextureViewDesc > +Diligent::TextureViewBase< ITextureViewD3D12 > +Diligent::TextureViewD3D12Impl + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle ()=0
 Returns CPU descriptor handle of the texture view.
 
- Public Member Functions inherited from Diligent::ITextureView
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const TextureViewDescGetDesc () const =0
 Returns the texture view description used to create the object.
 
+virtual void SetSampler (class ISampler *pSampler)=0
 Sets the texture sampler to use for filtering operations when accessing a texture from shaders. Only shader resource views can be assigned a sampler. The view will keep strong reference to the sampler.
 
virtual ISamplerGetSampler ()=0
 Returns the pointer to the sampler object set by the ITextureView::SetSampler(). More...
 
virtual class ITextureGetTexture ()=0
 Returns the pointer to the referenced texture object. More...
 
virtual void GenerateMips (IDeviceContext *pContext)=0
 Generates a mipmap chain. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the texture view object implemented in D3D11.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture_view_d3_d12.png b/doc/html/class_diligent_1_1_i_texture_view_d3_d12.png new file mode 100644 index 00000000..91b6e5a8 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_texture_view_d3_d12.png differ diff --git a/doc/html/class_diligent_1_1_i_texture_view_g_l-members.html b/doc/html/class_diligent_1_1_i_texture_view_g_l-members.html new file mode 100644 index 00000000..b3c7bc1f --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture_view_g_l-members.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ITextureViewGL Member List
+
+
+ +

This is the complete list of members for Diligent::ITextureViewGL, including all inherited members.

+ + + + + + + + +
GenerateMips(IDeviceContext *pContext)=0Diligent::ITextureViewpure virtual
GetDesc() const =0Diligent::ITextureViewpure virtual
GetSampler()=0Diligent::ITextureViewpure virtual
GetTexture()=0Diligent::ITextureViewpure virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::ITextureViewpure virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
SetSampler(class ISampler *pSampler)=0Diligent::ITextureViewpure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture_view_g_l.html b/doc/html/class_diligent_1_1_i_texture_view_g_l.html new file mode 100644 index 00000000..70edd110 --- /dev/null +++ b/doc/html/class_diligent_1_1_i_texture_view_g_l.html @@ -0,0 +1,136 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ITextureViewGL Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ITextureViewGL Class Reference
+
+
+ +

Interface to the texture view object implemented in OpenGL. + More...

+
+Inheritance diagram for Diligent::ITextureViewGL:
+
+
+ + +Diligent::ITextureView +Diligent::IDeviceObject +Diligent::RefCountedObject< ITextureViewGL > +Diligent::ObjectBase< ITextureViewGL > +Diligent::DeviceObjectBase< ITextureViewGL, TextureViewDesc > +Diligent::TextureViewBase< ITextureViewGL > +Diligent::TextureViewGLImpl + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::ITextureView
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual const TextureViewDescGetDesc () const =0
 Returns the texture view description used to create the object.
 
+virtual void SetSampler (class ISampler *pSampler)=0
 Sets the texture sampler to use for filtering operations when accessing a texture from shaders. Only shader resource views can be assigned a sampler. The view will keep strong reference to the sampler.
 
virtual ISamplerGetSampler ()=0
 Returns the pointer to the sampler object set by the ITextureView::SetSampler(). More...
 
virtual class ITextureGetTexture ()=0
 Returns the pointer to the referenced texture object. More...
 
virtual void GenerateMips (IDeviceContext *pContext)=0
 Generates a mipmap chain. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+

Detailed Description

+

Interface to the texture view object implemented in OpenGL.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_i_texture_view_g_l.png b/doc/html/class_diligent_1_1_i_texture_view_g_l.png new file mode 100644 index 00000000..e97a2843 Binary files /dev/null and b/doc/html/class_diligent_1_1_i_texture_view_g_l.png differ diff --git a/doc/html/class_diligent_1_1_map_helper-members.html b/doc/html/class_diligent_1_1_map_helper-members.html new file mode 100644 index 00000000..fe651e72 --- /dev/null +++ b/doc/html/class_diligent_1_1_map_helper-members.html @@ -0,0 +1,97 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::MapHelper< DataType, KeepStrongReferences > Member List
+
+
+ +

This is the complete list of members for Diligent::MapHelper< DataType, KeepStrongReferences >, including all inherited members.

+ + + + + + + + + + + + +
Map(IDeviceContext *pContext, IBuffer *pBuffer, MAP_TYPE MapType, Uint32 MapFlags)Diligent::MapHelper< DataType, KeepStrongReferences >inline
MapHelper()Diligent::MapHelper< DataType, KeepStrongReferences >inline
MapHelper(IDeviceContext *pContext, IBuffer *pBuffer, MAP_TYPE MapType, Uint32 MapFlags)Diligent::MapHelper< DataType, KeepStrongReferences >inline
MapHelper(MapHelper &&Helper)Diligent::MapHelper< DataType, KeepStrongReferences >inline
operator const DataType *() constDiligent::MapHelper< DataType, KeepStrongReferences >inline
operator DataType *()Diligent::MapHelper< DataType, KeepStrongReferences >inline
operator->()Diligent::MapHelper< DataType, KeepStrongReferences >inline
operator->() constDiligent::MapHelper< DataType, KeepStrongReferences >inline
operator=(MapHelper &&Helper)Diligent::MapHelper< DataType, KeepStrongReferences >inline
Unmap()Diligent::MapHelper< DataType, KeepStrongReferences >inline
~MapHelper()Diligent::MapHelper< DataType, KeepStrongReferences >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_map_helper.html b/doc/html/class_diligent_1_1_map_helper.html new file mode 100644 index 00000000..65e6d350 --- /dev/null +++ b/doc/html/class_diligent_1_1_map_helper.html @@ -0,0 +1,213 @@ + + + + + + + +Diligent Engine API Reference: Diligent::MapHelper< DataType, KeepStrongReferences > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::MapHelper< DataType, KeepStrongReferences > Class Template Reference
+
+
+ +

Facilitates resource mapping. + More...

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

+Public Member Functions

MapHelper ()
 Initializes the class member with null values.
 
MapHelper (IDeviceContext *pContext, IBuffer *pBuffer, MAP_TYPE MapType, Uint32 MapFlags)
 Initializes the object and maps the provided resource. See Map() for details.
 
MapHelper (MapHelper &&Helper)
 Move constructor: takes over resource ownership from Helper.
 
+MapHelperoperator= (MapHelper &&Helper)
 Move-assignement operator: takes over resource ownership from Helper.
 
void Map (IDeviceContext *pContext, IBuffer *pBuffer, MAP_TYPE MapType, Uint32 MapFlags)
 Maps the provided resource. More...
 
+void Unmap ()
 Unamps the resource and resets the object state to default.
 
operator DataType * ()
 Converts mapped data pointer to DataType*.
 
operator const DataType * () const
 Converts mapped data pointer to const DataType*.
 
+DataType * operator-> ()
 Operator ->
 
+const DataType * operator-> () const
 Operator const ->
 
~MapHelper ()
 Unamps the resource.
 
+

Detailed Description

+

template<typename DataType, bool KeepStrongReferences = false>
+class Diligent::MapHelper< DataType, KeepStrongReferences >

+ +

Facilitates resource mapping.

+
Template Parameters
+ + +
DataType- type of the mapped data.
+
+
+

This class is designed to automate resource mapping/unmapping process. The class automatically unmaps the resource when the class instance gets out of scope.
+Usage example:

{
+    MapHelper<float> UniformData( pDeviceContext, pUniformBuff, MAP_WRITE, MAP_FLAG_DISCARD );
+    UniformData[0] = UniformData[1] = UniformData[2] = UniformData[3] = 1;
+} 

Member Function Documentation

+ +

◆ Map()

+ +
+
+
+template<typename DataType , bool KeepStrongReferences = false>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::MapHelper< DataType, KeepStrongReferences >::Map (IDeviceContextpContext,
IBufferpBuffer,
MAP_TYPE MapType,
Uint32 MapFlags 
)
+
+inline
+
+ +

Maps the provided resource.

+
Parameters
+ + + + + +
pContext- Pointer to the device context to perform mapping with.
pBuffer- Pointer to the buffer interface to map.
MapType- Type of the map operation, see Diligent::MAP_TYPE for details.
MapFlags- Additional map flags, see Diligent::MAP_FLAGS.
+
+
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_object_base-members.html b/doc/html/class_diligent_1_1_object_base-members.html new file mode 100644 index 00000000..3b9ec140 --- /dev/null +++ b/doc/html/class_diligent_1_1_object_base-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ObjectBase< BaseInterface > Member List
+
+
+ +

This is the complete list of members for Diligent::ObjectBase< BaseInterface >, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_object_base.html b/doc/html/class_diligent_1_1_object_base.html new file mode 100644 index 00000000..9e3908a6 --- /dev/null +++ b/doc/html/class_diligent_1_1_object_base.html @@ -0,0 +1,115 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ObjectBase< BaseInterface > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ObjectBase< BaseInterface > Class Template Reference
+
+
+ +

Template class implementing base functionality for an object. + More...

+
+Inheritance diagram for Diligent::ObjectBase< BaseInterface >:
+
+
+ + +Diligent::RefCountedObject< BaseInterface > +Diligent::DeviceObjectBase< BaseInterface, BufferDesc > +Diligent::DeviceObjectBase< BaseInterface, BufferViewDesc > +Diligent::DeviceObjectBase< BaseInterface, CommandListDesc > +Diligent::DeviceObjectBase< BaseInterface, PipelineStateDesc > +Diligent::DeviceObjectBase< BaseInterface, SamplerDesc > +Diligent::DeviceObjectBase< BaseInterface, ShaderDesc > +Diligent::DeviceObjectBase< BaseInterface, TextureDesc > +Diligent::DeviceObjectBase< BaseInterface, TextureViewDesc > +Diligent::DeviceContextBase< BaseInterface > +Diligent::DeviceObjectBase< BaseInterface, ObjectDescType > +Diligent::RenderDeviceBase< BaseInterface > +Diligent::ShaderResourceBindingBase< BaseInterface > +Diligent::SwapChainBase< BaseInterface > + +
+

Detailed Description

+

template<typename BaseInterface>
+class Diligent::ObjectBase< BaseInterface >

+ +

Template class implementing base functionality for an object.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_object_base.png b/doc/html/class_diligent_1_1_object_base.png new file mode 100644 index 00000000..2ddf7745 Binary files /dev/null and b/doc/html/class_diligent_1_1_object_base.png differ diff --git a/doc/html/class_diligent_1_1_pipeline_state_base-members.html b/doc/html/class_diligent_1_1_pipeline_state_base-members.html new file mode 100644 index 00000000..2d527438 --- /dev/null +++ b/doc/html/class_diligent_1_1_pipeline_state_base-members.html @@ -0,0 +1,99 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface > Member List
+
+
+ +

This is the complete list of members for Diligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface >, including all inherited members.

+ + + + + + + + + + + + + + +
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< BaseInterface, PipelineStateDesc >inline
GetUniqueID() constDiligent::DeviceObjectBase< BaseInterface, PipelineStateDesc >inline
m_DescDiligent::DeviceObjectBase< BaseInterface, PipelineStateDesc >protected
m_NumShadersDiligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< BaseInterface, PipelineStateDesc >protected
m_pCSDiligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface >protected
m_pDSDiligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface >protected
m_pGSDiligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface >protected
m_pHSDiligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface >protected
m_pPSDiligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface >protected
m_ppShadersDiligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface >protected
m_pVSDiligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface >protected
PipelineStateBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &PSODesc, bool bIsDeviceInternal=false)Diligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_pipeline_state_base.html b/doc/html/class_diligent_1_1_pipeline_state_base.html new file mode 100644 index 00000000..bb56dc04 --- /dev/null +++ b/doc/html/class_diligent_1_1_pipeline_state_base.html @@ -0,0 +1,228 @@ + + + + + + + +Diligent Engine API Reference: Diligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface > Class Template Reference
+
+
+ +

Template class implementing base functionality for a pipeline state object. + More...

+
+Inheritance diagram for Diligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface >:
+
+
+ + +Diligent::DeviceObjectBase< BaseInterface, PipelineStateDesc > +Diligent::ObjectBase< BaseInterface > +Diligent::RefCountedObject< BaseInterface > + +
+ + + + + + + + + + +

+Public Member Functions

 PipelineStateBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &PSODesc, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< BaseInterface, PipelineStateDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &ObjDesc, bool bIsDeviceInternal=false)
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+RefCntAutoPtr< IShaderm_pVS
 Strong reference to the vertex shader.
 
+RefCntAutoPtr< IShaderm_pPS
 Strong reference to the pixel shader.
 
+RefCntAutoPtr< IShaderm_pGS
 Strong reference to the geometry shader.
 
+RefCntAutoPtr< IShaderm_pDS
 Strong reference to the domain shader.
 
+RefCntAutoPtr< IShaderm_pHS
 Strong reference to the hull shader.
 
+RefCntAutoPtr< IShaderm_pCS
 Strong reference to the compute shader.
 
+IShaderm_ppShaders [5]
 Array of pointers to shaders that this PSO uses.
 
+Uint32 m_NumShaders
 Number of shaders that this PSO uses.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< BaseInterface, PipelineStateDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+PipelineStateDesc m_Desc
 Object description.
 
+

Detailed Description

+

template<class BaseInterface, class RenderDeviceBaseInterface>
+class Diligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface >

+ +

Template class implementing base functionality for a pipeline state object.

+
Template Parameters
+ + + +
BaseInterface- base interface that this class will inheret (Diligent::IPipelineStateD3D11, Diligent::IPipelineStateD3D12 or Diligent::IPipelineStateGL).
RenderDeviceBaseInterface- base interface for the render device (Diligent::IRenderDeviceD3D11, Diligent::IRenderDeviceD3D12, Diligent::IRenderDeviceGL, or Diligent::IRenderDeviceGLES).
+
+
+

Constructor & Destructor Documentation

+ +

◆ PipelineStateBase()

+ +
+
+
+template<class BaseInterface, class RenderDeviceBaseInterface>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Diligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface >::PipelineStateBase (IReferenceCounters * pRefCounters,
IRenderDevicepDevice,
const PipelineStateDescPSODesc,
bool bIsDeviceInternal = false 
)
+
+inline
+
+
Parameters
+ + + + + +
pRefCounters- reference counters object that controls the lifetime of this PSO
pDevice- pointer to the device.
PSODesc- pipeline state description.
bIsDeviceInternal- flag indicating if the blend state is an internal device object and must not keep a strong reference to the device.
+
+
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_pipeline_state_base.png b/doc/html/class_diligent_1_1_pipeline_state_base.png new file mode 100644 index 00000000..514dd66a Binary files /dev/null and b/doc/html/class_diligent_1_1_pipeline_state_base.png differ diff --git a/doc/html/class_diligent_1_1_pipeline_state_d3_d11_impl-members.html b/doc/html/class_diligent_1_1_pipeline_state_d3_d11_impl-members.html new file mode 100644 index 00000000..ff10b15e --- /dev/null +++ b/doc/html/class_diligent_1_1_pipeline_state_d3_d11_impl-members.html @@ -0,0 +1,112 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::PipelineStateD3D11Impl Member List
+
+
+ +

This is the complete list of members for Diligent::PipelineStateD3D11Impl, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
BindShaderResources(IResourceMapping *pResourceMapping, Uint32 Flags) override finalDiligent::PipelineStateD3D11Implvirtual
CreateShaderResourceBinding(IShaderResourceBinding **ppShaderResourceBinding) override finalDiligent::PipelineStateD3D11Implvirtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< IPipelineStateD3D11, PipelineStateDesc >inline
GetD3D11BlendState() override finalDiligent::PipelineStateD3D11Implvirtual
GetD3D11ComputeShader() override finalDiligent::PipelineStateD3D11Implvirtual
GetD3D11DepthStencilState() override finalDiligent::PipelineStateD3D11Implvirtual
GetD3D11DomainShader() override finalDiligent::PipelineStateD3D11Implvirtual
GetD3D11GeometryShader() override finalDiligent::PipelineStateD3D11Implvirtual
GetD3D11HullShader() override finalDiligent::PipelineStateD3D11Implvirtual
GetD3D11InputLayout() override finalDiligent::PipelineStateD3D11Implvirtual
GetD3D11PixelShader() override finalDiligent::PipelineStateD3D11Implvirtual
GetD3D11RasterizerState() override finalDiligent::PipelineStateD3D11Implvirtual
GetD3D11VertexShader() override finalDiligent::PipelineStateD3D11Implvirtual
GetUniqueID() constDiligent::DeviceObjectBase< IPipelineStateD3D11, PipelineStateDesc >inline
m_DescDiligent::DeviceObjectBase< IPipelineStateD3D11, PipelineStateDesc >protected
m_NumShadersDiligent::PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< IPipelineStateD3D11, PipelineStateDesc >protected
m_pCSDiligent::PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 >protected
m_pDSDiligent::PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 >protected
m_pGSDiligent::PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 >protected
m_pHSDiligent::PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 >protected
m_pPSDiligent::PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 >protected
m_ppShadersDiligent::PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 >protected
m_pVSDiligent::PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 >protected
PipelineStateBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &PSODesc, bool bIsDeviceInternal=false)Diligent::PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 >inline
RefCountedObject< IPipelineStateD3D11 >::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IPipelineStatepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_pipeline_state_d3_d11_impl.html b/doc/html/class_diligent_1_1_pipeline_state_d3_d11_impl.html new file mode 100644 index 00000000..65078298 --- /dev/null +++ b/doc/html/class_diligent_1_1_pipeline_state_d3_d11_impl.html @@ -0,0 +1,505 @@ + + + + + + + +Diligent Engine API Reference: Diligent::PipelineStateD3D11Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::PipelineStateD3D11Impl Class Reference
+
+
+ +

Implementation of the Diligent::IPipelineStateD3D11 interface. + More...

+
+Inheritance diagram for Diligent::PipelineStateD3D11Impl:
+
+
+ + +Diligent::PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 > +Diligent::DeviceObjectBase< IPipelineStateD3D11, PipelineStateDesc > +Diligent::ObjectBase< IPipelineStateD3D11 > +Diligent::RefCountedObject< IPipelineStateD3D11 > +Diligent::IPipelineStateD3D11 +Diligent::IPipelineState +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual ID3D11BlendState * GetD3D11BlendState () override final
 Implementation of the IPipelineStateD3D11::GetD3D11BlendState() method.
 
+virtual ID3D11RasterizerState * GetD3D11RasterizerState () override final
 Implementation of the IPipelineStateD3D11::GetD3D11RasterizerState() method.
 
+virtual ID3D11DepthStencilState * GetD3D11DepthStencilState () override final
 Implementation of the IPipelineStateD3D11::GetD3D11DepthStencilState() method.
 
virtual ID3D11InputLayout * GetD3D11InputLayout () override final
 Returns a pointer to the ID3D11InputLayout interface of the internal Direct3D11 object. More...
 
virtual ID3D11VertexShader * GetD3D11VertexShader () override final
 Returns a pointer to the ID3D11VertexShader interface of the internal vertex shader object. More...
 
virtual ID3D11PixelShader * GetD3D11PixelShader () override final
 Returns a pointer to the ID3D11PixelShader interface of the internal pixel shader object. More...
 
virtual ID3D11GeometryShader * GetD3D11GeometryShader () override final
 Returns a pointer to the ID3D11GeometryShader interface of the internal geometry shader object. More...
 
virtual ID3D11DomainShader * GetD3D11DomainShader () override final
 Returns a pointer to the ID3D11DomainShader interface of the internal domain shader object. More...
 
virtual ID3D11HullShader * GetD3D11HullShader () override final
 Returns a pointer to the ID3D11HullShader interface of the internal hull shader object. More...
 
virtual ID3D11ComputeShader * GetD3D11ComputeShader () override final
 Returns a pointer to the ID3D11ComputeShader interface of the internal compute shader object. More...
 
virtual void BindShaderResources (IResourceMapping *pResourceMapping, Uint32 Flags) override final
 Binds resources for all shaders in the pipeline state. More...
 
virtual void CreateShaderResourceBinding (IShaderResourceBinding **ppShaderResourceBinding) override final
 Creates a shader resource binding object. More...
 
- Public Member Functions inherited from Diligent::PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 >
 PipelineStateBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &PSODesc, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IPipelineStateD3D11, PipelineStateDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const PipelineStateDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IPipelineState
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 >
+RefCntAutoPtr< IShaderm_pVS
 Strong reference to the vertex shader.
 
+RefCntAutoPtr< IShaderm_pPS
 Strong reference to the pixel shader.
 
+RefCntAutoPtr< IShaderm_pGS
 Strong reference to the geometry shader.
 
+RefCntAutoPtr< IShaderm_pDS
 Strong reference to the domain shader.
 
+RefCntAutoPtr< IShaderm_pHS
 Strong reference to the hull shader.
 
+RefCntAutoPtr< IShaderm_pCS
 Strong reference to the compute shader.
 
+IShaderm_ppShaders [5]
 Array of pointers to shaders that this PSO uses.
 
+Uint32 m_NumShaders
 Number of shaders that this PSO uses.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< IPipelineStateD3D11, PipelineStateDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+PipelineStateDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::IPipelineStateD3D11 interface.

+

Member Function Documentation

+ +

◆ BindShaderResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::PipelineStateD3D11Impl::BindShaderResources (IResourceMappingpResourceMapping,
Uint32 Flags 
)
+
+finaloverridevirtual
+
+ +

Binds resources for all shaders in the pipeline state.

+
Parameters
+ + + +
[in]pResourceMapping- Pointer to the resource mapping interface.
[in]Flags- Additional flags. See Diligent::BIND_SHADER_RESOURCES_FLAGS.
+
+
+
Remarks
For older OpenGL devices that do not support program pipelines (OpenGL4.1-, OpenGLES3.0-). This function is the only way to bind shader resources.
+ +

Implements Diligent::IPipelineState.

+ +
+
+ +

◆ CreateShaderResourceBinding()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::PipelineStateD3D11Impl::CreateShaderResourceBinding (IShaderResourceBinding ** ppShaderResourceBinding)
+
+finaloverridevirtual
+
+ +

Creates a shader resource binding object.

+
Parameters
+ + +
[out]ppShaderResourceBinding- memory location where pointer to the new shader resource binding object is written.
+
+
+ +

Implements Diligent::IPipelineState.

+ +
+
+ +

◆ GetD3D11ComputeShader()

+ +
+
+ + + + + +
+ + + + + + + +
ID3D11ComputeShader * Diligent::PipelineStateD3D11Impl::GetD3D11ComputeShader ()
+
+finaloverridevirtual
+
+ +

Returns a pointer to the ID3D11ComputeShader interface of the internal compute shader object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::IPipelineStateD3D11.

+ +
+
+ +

◆ GetD3D11DomainShader()

+ +
+
+ + + + + +
+ + + + + + + +
ID3D11DomainShader * Diligent::PipelineStateD3D11Impl::GetD3D11DomainShader ()
+
+finaloverridevirtual
+
+ +

Returns a pointer to the ID3D11DomainShader interface of the internal domain shader object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::IPipelineStateD3D11.

+ +
+
+ +

◆ GetD3D11GeometryShader()

+ +
+
+ + + + + +
+ + + + + + + +
ID3D11GeometryShader * Diligent::PipelineStateD3D11Impl::GetD3D11GeometryShader ()
+
+finaloverridevirtual
+
+ +

Returns a pointer to the ID3D11GeometryShader interface of the internal geometry shader object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::IPipelineStateD3D11.

+ +
+
+ +

◆ GetD3D11HullShader()

+ +
+
+ + + + + +
+ + + + + + + +
ID3D11HullShader * Diligent::PipelineStateD3D11Impl::GetD3D11HullShader ()
+
+finaloverridevirtual
+
+ +

Returns a pointer to the ID3D11HullShader interface of the internal hull shader object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::IPipelineStateD3D11.

+ +
+
+ +

◆ GetD3D11InputLayout()

+ +
+
+ + + + + +
+ + + + + + + +
ID3D11InputLayout * Diligent::PipelineStateD3D11Impl::GetD3D11InputLayout ()
+
+finaloverridevirtual
+
+ +

Returns a pointer to the ID3D11InputLayout interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::IPipelineStateD3D11.

+ +
+
+ +

◆ GetD3D11PixelShader()

+ +
+
+ + + + + +
+ + + + + + + +
ID3D11PixelShader * Diligent::PipelineStateD3D11Impl::GetD3D11PixelShader ()
+
+finaloverridevirtual
+
+ +

Returns a pointer to the ID3D11PixelShader interface of the internal pixel shader object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::IPipelineStateD3D11.

+ +
+
+ +

◆ GetD3D11VertexShader()

+ +
+
+ + + + + +
+ + + + + + + +
ID3D11VertexShader * Diligent::PipelineStateD3D11Impl::GetD3D11VertexShader ()
+
+finaloverridevirtual
+
+ +

Returns a pointer to the ID3D11VertexShader interface of the internal vertex shader object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::IPipelineStateD3D11.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_pipeline_state_d3_d11_impl.png b/doc/html/class_diligent_1_1_pipeline_state_d3_d11_impl.png new file mode 100644 index 00000000..cfb26774 Binary files /dev/null and b/doc/html/class_diligent_1_1_pipeline_state_d3_d11_impl.png differ diff --git a/doc/html/class_diligent_1_1_pipeline_state_d3_d12_impl-members.html b/doc/html/class_diligent_1_1_pipeline_state_d3_d12_impl-members.html new file mode 100644 index 00000000..ac84b4b3 --- /dev/null +++ b/doc/html/class_diligent_1_1_pipeline_state_d3_d12_impl-members.html @@ -0,0 +1,104 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::PipelineStateD3D12Impl Member List
+
+
+ +

This is the complete list of members for Diligent::PipelineStateD3D12Impl, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
BindShaderResources(IResourceMapping *pResourceMapping, Uint32 Flags) overrideDiligent::PipelineStateD3D12Implvirtual
CreateShaderResourceBinding(IShaderResourceBinding **ppShaderResourceBinding) overrideDiligent::PipelineStateD3D12Implvirtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc >inline
GetD3D12PipelineState() const override finalDiligent::PipelineStateD3D12Implinlinevirtual
GetD3D12RootSignature() const override finalDiligent::PipelineStateD3D12Implinlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc >inline
m_DescDiligent::DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc >protected
m_NumShadersDiligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc >protected
m_pCSDiligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 >protected
m_pDSDiligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 >protected
m_pGSDiligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 >protected
m_pHSDiligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 >protected
m_pPSDiligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 >protected
m_ppShadersDiligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 >protected
m_pVSDiligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 >protected
PipelineStateBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &PSODesc, bool bIsDeviceInternal=false)Diligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 >inline
RefCountedObject< IPipelineStateD3D12 >::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IPipelineStatepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_pipeline_state_d3_d12_impl.html b/doc/html/class_diligent_1_1_pipeline_state_d3_d12_impl.html new file mode 100644 index 00000000..df05dc18 --- /dev/null +++ b/doc/html/class_diligent_1_1_pipeline_state_d3_d12_impl.html @@ -0,0 +1,328 @@ + + + + + + + +Diligent Engine API Reference: Diligent::PipelineStateD3D12Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::PipelineStateD3D12Impl Class Reference
+
+
+ +

Implementation of the Diligent::IRenderDeviceD3D12 interface. + More...

+
+Inheritance diagram for Diligent::PipelineStateD3D12Impl:
+
+
+ + +Diligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 > +Diligent::DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc > +Diligent::ObjectBase< IPipelineStateD3D12 > +Diligent::RefCountedObject< IPipelineStateD3D12 > +Diligent::IPipelineStateD3D12 +Diligent::IPipelineState +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ID3D12PipelineState * GetD3D12PipelineState () const override final
 Returns ID3D12PipelineState interface of the internal D3D12 pipeline state object object. More...
 
virtual void BindShaderResources (IResourceMapping *pResourceMapping, Uint32 Flags) override
 Binds resources for all shaders in the pipeline state. More...
 
virtual void CreateShaderResourceBinding (IShaderResourceBinding **ppShaderResourceBinding) override
 Creates a shader resource binding object. More...
 
virtual ID3D12RootSignature * GetD3D12RootSignature () const override final
 Returns a pointer to the root signature object associated with this pipeline state. More...
 
- Public Member Functions inherited from Diligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 >
 PipelineStateBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &PSODesc, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const PipelineStateDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IPipelineState
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 >
+RefCntAutoPtr< IShaderm_pVS
 Strong reference to the vertex shader.
 
+RefCntAutoPtr< IShaderm_pPS
 Strong reference to the pixel shader.
 
+RefCntAutoPtr< IShaderm_pGS
 Strong reference to the geometry shader.
 
+RefCntAutoPtr< IShaderm_pDS
 Strong reference to the domain shader.
 
+RefCntAutoPtr< IShaderm_pHS
 Strong reference to the hull shader.
 
+RefCntAutoPtr< IShaderm_pCS
 Strong reference to the compute shader.
 
+IShaderm_ppShaders [5]
 Array of pointers to shaders that this PSO uses.
 
+Uint32 m_NumShaders
 Number of shaders that this PSO uses.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+PipelineStateDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::IRenderDeviceD3D12 interface.

+

Member Function Documentation

+ +

◆ BindShaderResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::PipelineStateD3D12Impl::BindShaderResources (IResourceMappingpResourceMapping,
Uint32 Flags 
)
+
+overridevirtual
+
+ +

Binds resources for all shaders in the pipeline state.

+
Parameters
+ + + +
[in]pResourceMapping- Pointer to the resource mapping interface.
[in]Flags- Additional flags. See Diligent::BIND_SHADER_RESOURCES_FLAGS.
+
+
+
Remarks
For older OpenGL devices that do not support program pipelines (OpenGL4.1-, OpenGLES3.0-). This function is the only way to bind shader resources.
+ +

Implements Diligent::IPipelineState.

+ +
+
+ +

◆ CreateShaderResourceBinding()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::PipelineStateD3D12Impl::CreateShaderResourceBinding (IShaderResourceBinding ** ppShaderResourceBinding)
+
+overridevirtual
+
+ +

Creates a shader resource binding object.

+
Parameters
+ + +
[out]ppShaderResourceBinding- memory location where pointer to the new shader resource binding object is written.
+
+
+ +

Implements Diligent::IPipelineState.

+ +
+
+ +

◆ GetD3D12PipelineState()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D12PipelineState* Diligent::PipelineStateD3D12Impl::GetD3D12PipelineState () const
+
+inlinefinaloverridevirtual
+
+ +

Returns ID3D12PipelineState interface of the internal D3D12 pipeline state object object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::IPipelineStateD3D12.

+ +
+
+ +

◆ GetD3D12RootSignature()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D12RootSignature* Diligent::PipelineStateD3D12Impl::GetD3D12RootSignature () const
+
+inlinefinaloverridevirtual
+
+ +

Returns a pointer to the root signature object associated with this pipeline state.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::IPipelineStateD3D12.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_pipeline_state_d3_d12_impl.png b/doc/html/class_diligent_1_1_pipeline_state_d3_d12_impl.png new file mode 100644 index 00000000..e0420f4f Binary files /dev/null and b/doc/html/class_diligent_1_1_pipeline_state_d3_d12_impl.png differ diff --git a/doc/html/class_diligent_1_1_pipeline_state_g_l_impl-members.html b/doc/html/class_diligent_1_1_pipeline_state_g_l_impl-members.html new file mode 100644 index 00000000..09bb5108 --- /dev/null +++ b/doc/html/class_diligent_1_1_pipeline_state_g_l_impl-members.html @@ -0,0 +1,103 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::PipelineStateGLImpl Member List
+
+
+ +

This is the complete list of members for Diligent::PipelineStateGLImpl, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
BindShaderResources(IResourceMapping *pResourceMapping, Uint32 Flags) overrideDiligent::PipelineStateGLImplvirtual
CreateShaderResourceBinding(IShaderResourceBinding **ppShaderResourceBinding) overrideDiligent::PipelineStateGLImplvirtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< IPipelineStateGL, PipelineStateDesc >inline
GetUniqueID() constDiligent::DeviceObjectBase< IPipelineStateGL, PipelineStateDesc >inline
m_DescDiligent::DeviceObjectBase< IPipelineStateGL, PipelineStateDesc >protected
m_NumShadersDiligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< IPipelineStateGL, PipelineStateDesc >protected
m_pCSDiligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface >protected
m_pDSDiligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface >protected
m_pGSDiligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface >protected
m_pHSDiligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface >protected
m_pPSDiligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface >protected
m_ppShadersDiligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface >protected
m_pVSDiligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface >protected
PipelineStateBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &PSODesc, bool bIsDeviceInternal=false)Diligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface >inline
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) overrideDiligent::PipelineStateGLImplvirtual
RefCountedObject< IPipelineStateGL >::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IPipelineStatepure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_pipeline_state_g_l_impl.html b/doc/html/class_diligent_1_1_pipeline_state_g_l_impl.html new file mode 100644 index 00000000..6de88a70 --- /dev/null +++ b/doc/html/class_diligent_1_1_pipeline_state_g_l_impl.html @@ -0,0 +1,266 @@ + + + + + + + +Diligent Engine API Reference: Diligent::PipelineStateGLImpl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::PipelineStateGLImpl Class Reference
+
+
+ +

Implementation of the Diligent::IPipelineStateGL interface. + More...

+
+Inheritance diagram for Diligent::PipelineStateGLImpl:
+
+
+ + +Diligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface > +Diligent::DeviceObjectBase< IPipelineStateGL, PipelineStateDesc > +Diligent::ObjectBase< IPipelineStateGL > +Diligent::RefCountedObject< IPipelineStateGL > +Diligent::IPipelineStateGL +Diligent::IPipelineState +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual void BindShaderResources (IResourceMapping *pResourceMapping, Uint32 Flags) override
 Binds resources for all shaders in the pipeline state. More...
 
virtual void CreateShaderResourceBinding (IShaderResourceBinding **ppShaderResourceBinding) override
 Creates a shader resource binding object. More...
 
- Public Member Functions inherited from Diligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface >
 PipelineStateBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &PSODesc, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IPipelineStateGL, PipelineStateDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const PipelineStateDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IPipelineState
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface >
+RefCntAutoPtr< IShaderm_pVS
 Strong reference to the vertex shader.
 
+RefCntAutoPtr< IShaderm_pPS
 Strong reference to the pixel shader.
 
+RefCntAutoPtr< IShaderm_pGS
 Strong reference to the geometry shader.
 
+RefCntAutoPtr< IShaderm_pDS
 Strong reference to the domain shader.
 
+RefCntAutoPtr< IShaderm_pHS
 Strong reference to the hull shader.
 
+RefCntAutoPtr< IShaderm_pCS
 Strong reference to the compute shader.
 
+IShaderm_ppShaders [5]
 Array of pointers to shaders that this PSO uses.
 
+Uint32 m_NumShaders
 Number of shaders that this PSO uses.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< IPipelineStateGL, PipelineStateDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+PipelineStateDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::IPipelineStateGL interface.

+

Member Function Documentation

+ +

◆ BindShaderResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::PipelineStateGLImpl::BindShaderResources (IResourceMappingpResourceMapping,
Uint32 Flags 
)
+
+overridevirtual
+
+ +

Binds resources for all shaders in the pipeline state.

+
Parameters
+ + + +
[in]pResourceMapping- Pointer to the resource mapping interface.
[in]Flags- Additional flags. See Diligent::BIND_SHADER_RESOURCES_FLAGS.
+
+
+
Remarks
For older OpenGL devices that do not support program pipelines (OpenGL4.1-, OpenGLES3.0-). This function is the only way to bind shader resources.
+ +

Implements Diligent::IPipelineState.

+ +
+
+ +

◆ CreateShaderResourceBinding()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::PipelineStateGLImpl::CreateShaderResourceBinding (IShaderResourceBinding ** ppShaderResourceBinding)
+
+overridevirtual
+
+ +

Creates a shader resource binding object.

+
Parameters
+ + +
[out]ppShaderResourceBinding- memory location where pointer to the new shader resource binding object is written.
+
+
+ +

Implements Diligent::IPipelineState.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_pipeline_state_g_l_impl.png b/doc/html/class_diligent_1_1_pipeline_state_g_l_impl.png new file mode 100644 index 00000000..f13cde82 Binary files /dev/null and b/doc/html/class_diligent_1_1_pipeline_state_g_l_impl.png differ diff --git a/doc/html/class_diligent_1_1_ref_cnt_auto_ptr-members.html b/doc/html/class_diligent_1_1_ref_cnt_auto_ptr-members.html new file mode 100644 index 00000000..57bbc365 --- /dev/null +++ b/doc/html/class_diligent_1_1_ref_cnt_auto_ptr-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::RefCntAutoPtr< T > Member List
+
+
+ +

This is the complete list of members for Diligent::RefCntAutoPtr< T >, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_ref_cnt_auto_ptr.html b/doc/html/class_diligent_1_1_ref_cnt_auto_ptr.html new file mode 100644 index 00000000..2c823de0 --- /dev/null +++ b/doc/html/class_diligent_1_1_ref_cnt_auto_ptr.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Diligent::RefCntAutoPtr< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::RefCntAutoPtr< T > Class Template Reference
+
+
+ +

Template class that implements reference counting. + More...

+

Detailed Description

+

template<typename T>
+class Diligent::RefCntAutoPtr< T >

+ +

Template class that implements reference counting.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_ref_cnt_weak_ptr-members.html b/doc/html/class_diligent_1_1_ref_cnt_weak_ptr-members.html new file mode 100644 index 00000000..49e2e6d2 --- /dev/null +++ b/doc/html/class_diligent_1_1_ref_cnt_weak_ptr-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::RefCntWeakPtr< T > Member List
+
+
+ +

This is the complete list of members for Diligent::RefCntWeakPtr< T >, including all inherited members.

+ + + +
IsValid()Diligent::RefCntWeakPtr< T >inline
Lock()Diligent::RefCntWeakPtr< T >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_ref_cnt_weak_ptr.html b/doc/html/class_diligent_1_1_ref_cnt_weak_ptr.html new file mode 100644 index 00000000..0cf472a1 --- /dev/null +++ b/doc/html/class_diligent_1_1_ref_cnt_weak_ptr.html @@ -0,0 +1,133 @@ + + + + + + + +Diligent Engine API Reference: Diligent::RefCntWeakPtr< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::RefCntWeakPtr< T > Class Template Reference
+
+
+ +

Implementation of weak pointers. + More...

+ + + + + + + +

+Public Member Functions

bool IsValid ()
 
+RefCntAutoPtr< T > Lock ()
 Obtains a strong reference to the object.
 
+

Detailed Description

+

template<typename T>
+class Diligent::RefCntWeakPtr< T >

+ +

Implementation of weak pointers.

+

Member Function Documentation

+ +

◆ IsValid()

+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + +
bool Diligent::RefCntWeakPtr< T >::IsValid ()
+
+inline
+
+
Note
This method may not be reliable in a multithreaded environment. However, when false is returned, the strong pointer created from this weak pointer will reliably be empty.
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_ref_counted_object-members.html b/doc/html/class_diligent_1_1_ref_counted_object-members.html new file mode 100644 index 00000000..d93b80be --- /dev/null +++ b/doc/html/class_diligent_1_1_ref_counted_object-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::RefCountedObject< Base > Member List
+
+
+ +

This is the complete list of members for Diligent::RefCountedObject< Base >, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_ref_counted_object.html b/doc/html/class_diligent_1_1_ref_counted_object.html new file mode 100644 index 00000000..abee8b8f --- /dev/null +++ b/doc/html/class_diligent_1_1_ref_counted_object.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: Diligent::RefCountedObject< Base > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::RefCountedObject< Base > Class Template Reference
+
+
+ +

Base class for all reference counting objects. + More...

+ +

Inherits Base.

+

Detailed Description

+

template<typename Base>
+class Diligent::RefCountedObject< Base >

+ +

Base class for all reference counting objects.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_render_device_base-members.html b/doc/html/class_diligent_1_1_render_device_base-members.html new file mode 100644 index 00000000..a6806078 --- /dev/null +++ b/doc/html/class_diligent_1_1_render_device_base-members.html @@ -0,0 +1,107 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::RenderDeviceBase< BaseInterface > Member List
+
+
+ +

This is the complete list of members for Diligent::RenderDeviceBase< BaseInterface >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
CreateDeviceObject(const Char *ObjectTypeName, const TObjectDescType &Desc, TObjectType **ppObject, TObjectConstructor ConstructObject)Diligent::RenderDeviceBase< BaseInterface >protected
CreateResourceMapping(const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping) override finalDiligent::RenderDeviceBase< BaseInterface >virtual
GetDeviceCaps() const override finalDiligent::RenderDeviceBase< BaseInterface >inlinevirtual
GetNumDeferredContexts() constDiligent::RenderDeviceBase< BaseInterface >inline
GetTextureFormatInfo(TEXTURE_FORMAT TexFormat) override finalDiligent::RenderDeviceBase< BaseInterface >inlinevirtual
GetTextureFormatInfoExt(TEXTURE_FORMAT TexFormat) override finalDiligent::RenderDeviceBase< BaseInterface >inlinevirtual
m_BuffViewObjAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_BufObjAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_PSOAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_ResMappingAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_SamplerObjAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_SamplersRegistryDiligent::RenderDeviceBase< BaseInterface >protected
m_ShaderObjAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_SRBAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_TexObjAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_TexViewObjAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_wpDeferredContextsDiligent::RenderDeviceBase< BaseInterface >protected
m_wpImmediateContextDiligent::RenderDeviceBase< BaseInterface >protected
RenderDeviceBase(IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator, Uint32 NumDeferredContexts, size_t TextureObjSize, size_t TexViewObjSize, size_t BufferObjSize, size_t BuffViewObjSize, size_t ShaderObjSize, size_t SamplerObjSize, size_t PSOSize, size_t SRBSize)Diligent::RenderDeviceBase< BaseInterface >inline
SetDeferredContext(size_t Ctx, IDeviceContext *pDeferredCtx)Diligent::RenderDeviceBase< BaseInterface >inline
SetImmediateContext(IDeviceContext *pImmediateContext)Diligent::RenderDeviceBase< BaseInterface >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_render_device_base.html b/doc/html/class_diligent_1_1_render_device_base.html new file mode 100644 index 00000000..e2382733 --- /dev/null +++ b/doc/html/class_diligent_1_1_render_device_base.html @@ -0,0 +1,387 @@ + + + + + + + +Diligent Engine API Reference: Diligent::RenderDeviceBase< BaseInterface > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::RenderDeviceBase< BaseInterface > Class Template Referenceabstract
+
+
+ +

Base implementation of a render device. + More...

+
+Inheritance diagram for Diligent::RenderDeviceBase< BaseInterface >:
+
+
+ + +Diligent::ObjectBase< BaseInterface > +Diligent::RefCountedObject< BaseInterface > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 RenderDeviceBase (IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator, Uint32 NumDeferredContexts, size_t TextureObjSize, size_t TexViewObjSize, size_t BufferObjSize, size_t BuffViewObjSize, size_t ShaderObjSize, size_t SamplerObjSize, size_t PSOSize, size_t SRBSize)
 
+virtual void CreateResourceMapping (const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping) override final
 Implementation of IRenderDevice::CreateResourceMapping().
 
+virtual const DeviceCapsGetDeviceCaps () const override final
 Implementation of IRenderDevice::GetDeviceCaps().
 
+virtual const TextureFormatInfoGetTextureFormatInfo (TEXTURE_FORMAT TexFormat) override final
 Implementation of IRenderDevice::GetTextureFormatInfo().
 
+virtual const TextureFormatInfoExtGetTextureFormatInfoExt (TEXTURE_FORMAT TexFormat) override final
 Implementation of IRenderDevice::GetTextureFormatInfoExt().
 
+void SetImmediateContext (IDeviceContext *pImmediateContext)
 Set weak reference to the immediate context.
 
+void SetDeferredContext (size_t Ctx, IDeviceContext *pDeferredCtx)
 Set weak reference to the deferred context.
 
+size_t GetNumDeferredContexts () const
 Returns number of deferred contexts.
 
+ + + + + +

+Protected Member Functions

template<typename TObjectType , typename TObjectDescType , typename TObjectConstructor >
void CreateDeviceObject (const Char *ObjectTypeName, const TObjectDescType &Desc, TObjectType **ppObject, TObjectConstructor ConstructObject)
 Helper template function to facilitate device object creation. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+StateObjectsRegistry< SamplerDescm_SamplersRegistry
 Sampler state registry.
 
+RefCntWeakPtr< IDeviceContextm_wpImmediateContext
 Weak reference to the immediate context. Immediate context holds strong reference to the device, so we must use weak reference to avoid circular dependencies.
 
+std::vector< RefCntWeakPtr< IDeviceContext >, STDAllocatorRawMem< RefCntWeakPtr< IDeviceContext > > > m_wpDeferredContexts
 Weak references to deferred contexts.
 
+FixedBlockMemoryAllocator m_TexObjAllocator
 Allocator for texture objects.
 
+FixedBlockMemoryAllocator m_TexViewObjAllocator
 Allocator for texture view objects.
 
+FixedBlockMemoryAllocator m_BufObjAllocator
 Allocator for buffer objects.
 
+FixedBlockMemoryAllocator m_BuffViewObjAllocator
 Allocator for buffer view objects.
 
+FixedBlockMemoryAllocator m_ShaderObjAllocator
 Allocator for shader objects.
 
+FixedBlockMemoryAllocator m_SamplerObjAllocator
 Allocator for sampler objects.
 
+FixedBlockMemoryAllocator m_PSOAllocator
 Allocator for pipeline state objects.
 
+FixedBlockMemoryAllocator m_SRBAllocator
 Allocator for shader resource binding objects.
 
+FixedBlockMemoryAllocator m_ResMappingAllocator
 Allocator for resource mapping objects.
 
+

Detailed Description

+

template<typename BaseInterface>
+class Diligent::RenderDeviceBase< BaseInterface >

+ +

Base implementation of a render device.

+
Template Parameters
+ + +
BaseInterface- base interface that this class will inheret.
+
+
+
Warning
Render device must NOT hold strong references to any object it creates to avoid circular dependencies. Device context, swap chain and all object the device creates keep strong reference to the device. Device only holds weak reference to the immediate context.
+

Constructor & Destructor Documentation

+ +

◆ RenderDeviceBase()

+ +
+
+
+template<typename BaseInterface>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Diligent::RenderDeviceBase< BaseInterface >::RenderDeviceBase (IReferenceCounters * pRefCounters,
IMemoryAllocator & RawMemAllocator,
Uint32 NumDeferredContexts,
size_t TextureObjSize,
size_t TexViewObjSize,
size_t BufferObjSize,
size_t BuffViewObjSize,
size_t ShaderObjSize,
size_t SamplerObjSize,
size_t PSOSize,
size_t SRBSize 
)
+
+inline
+
+
Parameters
+ + + + + + + + + + + + +
pRefCounters- reference counters object that controls the lifetime of this render device
RawMemAllocator- allocator that will be used to allocate memory for all device objects (including render device itself)
NumDeferredContexts- number of deferred device contexts
TextureObjSize- size of the texture object, in bytes
TexViewObjSize- size of the texture view object, in bytes
BufferObjSize- size of the buffer object, in bytes
BuffViewObjSize- size of the buffer view object, in bytes
ShaderObjSize- size of the shader object, in bytes
SamplerObjSize- size of the sampler object, in bytes
PSOSize- size of the pipeline state object, in bytes
SRBSize- size of the shader resource binding object, in bytes
+
+
+
Remarks
Render device uses fixed block allocators (see FixedBlockMemoryAllocator) to allocate memory for device objects. The object sizes provided to constructor are used to initialize the allocators.
+ +
+
+

Member Function Documentation

+ +

◆ CreateDeviceObject()

+ +
+
+
+template<typename BaseInterface >
+
+template<typename TObjectType , typename TObjectDescType , typename TObjectConstructor >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::RenderDeviceBase< BaseInterface >::CreateDeviceObject (const Char * ObjectTypeName,
const TObjectDescType & Desc,
TObjectType ** ppObject,
TObjectConstructor ConstructObject 
)
+
+protected
+
+ +

Helper template function to facilitate device object creation.

+
Template Parameters
+ + + + +
TObjectType- type of the object being created (IBuffer, ITexture, etc.)
TObjectDescType- type of the object description structure (BufferDesc, TextureDesc, etc.)
TObjectConstructor- type of the function that constructs the object
+
+
+
Parameters
+ + + + + +
ObjectTypeName- string name of the object type ("buffer", "texture", etc.)
Desc- object description
ppObject- memory address where the pointer to the created object will be stored
ConstructObject- function that constructs the object
+
+
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_render_device_base.png b/doc/html/class_diligent_1_1_render_device_base.png new file mode 100644 index 00000000..80a7c1c8 Binary files /dev/null and b/doc/html/class_diligent_1_1_render_device_base.png differ diff --git a/doc/html/class_diligent_1_1_render_device_d3_d11_impl-members.html b/doc/html/class_diligent_1_1_render_device_d3_d11_impl-members.html new file mode 100644 index 00000000..1c304c1a --- /dev/null +++ b/doc/html/class_diligent_1_1_render_device_d3_d11_impl-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::RenderDeviceD3D11Impl Member List
+
+
+ +

This is the complete list of members for Diligent::RenderDeviceD3D11Impl, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_render_device_d3_d11_impl.html b/doc/html/class_diligent_1_1_render_device_d3_d11_impl.html new file mode 100644 index 00000000..53404d66 --- /dev/null +++ b/doc/html/class_diligent_1_1_render_device_d3_d11_impl.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Diligent::RenderDeviceD3D11Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::RenderDeviceD3D11Impl Class Reference
+
+
+ +

Implementation of the Diligent::IRenderDeviceD3D11 interface. + More...

+ +

Inherits RenderDeviceD3DBase< IRenderDeviceD3D11 >.

+

Detailed Description

+

Implementation of the Diligent::IRenderDeviceD3D11 interface.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_render_device_d3_d11_impl.png b/doc/html/class_diligent_1_1_render_device_d3_d11_impl.png new file mode 100644 index 00000000..6056d51e Binary files /dev/null and b/doc/html/class_diligent_1_1_render_device_d3_d11_impl.png differ diff --git a/doc/html/class_diligent_1_1_render_device_d3_d12_impl-members.html b/doc/html/class_diligent_1_1_render_device_d3_d12_impl-members.html new file mode 100644 index 00000000..d87a0ca4 --- /dev/null +++ b/doc/html/class_diligent_1_1_render_device_d3_d12_impl-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::RenderDeviceD3D12Impl Member List
+
+
+ +

This is the complete list of members for Diligent::RenderDeviceD3D12Impl, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_render_device_d3_d12_impl.html b/doc/html/class_diligent_1_1_render_device_d3_d12_impl.html new file mode 100644 index 00000000..9913b4cc --- /dev/null +++ b/doc/html/class_diligent_1_1_render_device_d3_d12_impl.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Diligent::RenderDeviceD3D12Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::RenderDeviceD3D12Impl Class Reference
+
+
+ +

Implementation of the Diligent::IRenderDeviceD3D12 interface. + More...

+ +

Inherits RenderDeviceD3DBase< IRenderDeviceD3D12 >.

+

Detailed Description

+

Implementation of the Diligent::IRenderDeviceD3D12 interface.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_render_device_d3_d12_impl.png b/doc/html/class_diligent_1_1_render_device_d3_d12_impl.png new file mode 100644 index 00000000..00f1c355 Binary files /dev/null and b/doc/html/class_diligent_1_1_render_device_d3_d12_impl.png differ diff --git a/doc/html/class_diligent_1_1_render_device_d3_d_base-members.html b/doc/html/class_diligent_1_1_render_device_d3_d_base-members.html new file mode 100644 index 00000000..bbaa40e4 --- /dev/null +++ b/doc/html/class_diligent_1_1_render_device_d3_d_base-members.html @@ -0,0 +1,107 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::RenderDeviceD3DBase< BaseInterface > Member List
+
+
+ +

This is the complete list of members for Diligent::RenderDeviceD3DBase< BaseInterface >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
CreateDeviceObject(const Char *ObjectTypeName, const TObjectDescType &Desc, TObjectType **ppObject, TObjectConstructor ConstructObject)Diligent::RenderDeviceBase< BaseInterface >protected
CreateResourceMapping(const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping) override finalDiligent::RenderDeviceBase< BaseInterface >virtual
GetDeviceCaps() const override finalDiligent::RenderDeviceBase< BaseInterface >inlinevirtual
GetNumDeferredContexts() constDiligent::RenderDeviceBase< BaseInterface >inline
GetTextureFormatInfo(TEXTURE_FORMAT TexFormat) override finalDiligent::RenderDeviceBase< BaseInterface >inlinevirtual
GetTextureFormatInfoExt(TEXTURE_FORMAT TexFormat) override finalDiligent::RenderDeviceBase< BaseInterface >inlinevirtual
m_BuffViewObjAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_BufObjAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_PSOAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_ResMappingAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_SamplerObjAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_SamplersRegistryDiligent::RenderDeviceBase< BaseInterface >protected
m_ShaderObjAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_SRBAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_TexObjAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_TexViewObjAllocatorDiligent::RenderDeviceBase< BaseInterface >protected
m_wpDeferredContextsDiligent::RenderDeviceBase< BaseInterface >protected
m_wpImmediateContextDiligent::RenderDeviceBase< BaseInterface >protected
RenderDeviceBase(IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator, Uint32 NumDeferredContexts, size_t TextureObjSize, size_t TexViewObjSize, size_t BufferObjSize, size_t BuffViewObjSize, size_t ShaderObjSize, size_t SamplerObjSize, size_t PSOSize, size_t SRBSize)Diligent::RenderDeviceBase< BaseInterface >inline
SetDeferredContext(size_t Ctx, IDeviceContext *pDeferredCtx)Diligent::RenderDeviceBase< BaseInterface >inline
SetImmediateContext(IDeviceContext *pImmediateContext)Diligent::RenderDeviceBase< BaseInterface >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_render_device_d3_d_base.html b/doc/html/class_diligent_1_1_render_device_d3_d_base.html new file mode 100644 index 00000000..74c52ee4 --- /dev/null +++ b/doc/html/class_diligent_1_1_render_device_d3_d_base.html @@ -0,0 +1,193 @@ + + + + + + + +Diligent Engine API Reference: Diligent::RenderDeviceD3DBase< BaseInterface > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::RenderDeviceD3DBase< BaseInterface > Class Template Reference
+
+
+ +

Base implementation of a D3D render device. + More...

+
+Inheritance diagram for Diligent::RenderDeviceD3DBase< BaseInterface >:
+
+
+ + +Diligent::RenderDeviceBase< BaseInterface > +Diligent::ObjectBase< BaseInterface > +Diligent::RefCountedObject< BaseInterface > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::RenderDeviceBase< BaseInterface >
 RenderDeviceBase (IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator, Uint32 NumDeferredContexts, size_t TextureObjSize, size_t TexViewObjSize, size_t BufferObjSize, size_t BuffViewObjSize, size_t ShaderObjSize, size_t SamplerObjSize, size_t PSOSize, size_t SRBSize)
 
+virtual void CreateResourceMapping (const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping) override final
 Implementation of IRenderDevice::CreateResourceMapping().
 
+virtual const DeviceCapsGetDeviceCaps () const override final
 Implementation of IRenderDevice::GetDeviceCaps().
 
+virtual const TextureFormatInfoGetTextureFormatInfo (TEXTURE_FORMAT TexFormat) override final
 Implementation of IRenderDevice::GetTextureFormatInfo().
 
+virtual const TextureFormatInfoExtGetTextureFormatInfoExt (TEXTURE_FORMAT TexFormat) override final
 Implementation of IRenderDevice::GetTextureFormatInfoExt().
 
+void SetImmediateContext (IDeviceContext *pImmediateContext)
 Set weak reference to the immediate context.
 
+void SetDeferredContext (size_t Ctx, IDeviceContext *pDeferredCtx)
 Set weak reference to the deferred context.
 
+size_t GetNumDeferredContexts () const
 Returns number of deferred contexts.
 
- Protected Member Functions inherited from Diligent::RenderDeviceBase< BaseInterface >
template<typename TObjectType , typename TObjectDescType , typename TObjectConstructor >
void CreateDeviceObject (const Char *ObjectTypeName, const TObjectDescType &Desc, TObjectType **ppObject, TObjectConstructor ConstructObject)
 Helper template function to facilitate device object creation. More...
 
- Protected Attributes inherited from Diligent::RenderDeviceBase< BaseInterface >
+StateObjectsRegistry< SamplerDescm_SamplersRegistry
 Sampler state registry.
 
+RefCntWeakPtr< IDeviceContextm_wpImmediateContext
 Weak reference to the immediate context. Immediate context holds strong reference to the device, so we must use weak reference to avoid circular dependencies.
 
+std::vector< RefCntWeakPtr< IDeviceContext >, STDAllocatorRawMem< RefCntWeakPtr< IDeviceContext > > > m_wpDeferredContexts
 Weak references to deferred contexts.
 
+FixedBlockMemoryAllocator m_TexObjAllocator
 Allocator for texture objects.
 
+FixedBlockMemoryAllocator m_TexViewObjAllocator
 Allocator for texture view objects.
 
+FixedBlockMemoryAllocator m_BufObjAllocator
 Allocator for buffer objects.
 
+FixedBlockMemoryAllocator m_BuffViewObjAllocator
 Allocator for buffer view objects.
 
+FixedBlockMemoryAllocator m_ShaderObjAllocator
 Allocator for shader objects.
 
+FixedBlockMemoryAllocator m_SamplerObjAllocator
 Allocator for sampler objects.
 
+FixedBlockMemoryAllocator m_PSOAllocator
 Allocator for pipeline state objects.
 
+FixedBlockMemoryAllocator m_SRBAllocator
 Allocator for shader resource binding objects.
 
+FixedBlockMemoryAllocator m_ResMappingAllocator
 Allocator for resource mapping objects.
 
+

Detailed Description

+

template<typename BaseInterface>
+class Diligent::RenderDeviceD3DBase< BaseInterface >

+ +

Base implementation of a D3D render device.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_render_device_d3_d_base.png b/doc/html/class_diligent_1_1_render_device_d3_d_base.png new file mode 100644 index 00000000..802b5a21 Binary files /dev/null and b/doc/html/class_diligent_1_1_render_device_d3_d_base.png differ diff --git a/doc/html/class_diligent_1_1_render_device_g_l_impl-members.html b/doc/html/class_diligent_1_1_render_device_g_l_impl-members.html new file mode 100644 index 00000000..5f551f25 --- /dev/null +++ b/doc/html/class_diligent_1_1_render_device_g_l_impl-members.html @@ -0,0 +1,107 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::RenderDeviceGLImpl Member List
+
+
+ +

This is the complete list of members for Diligent::RenderDeviceGLImpl, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
CreateDeviceObject(const Char *ObjectTypeName, const TObjectDescType &Desc, TObjectType **ppObject, TObjectConstructor ConstructObject)Diligent::RenderDeviceBase< IGLDeviceBaseInterface >protected
CreateResourceMapping(const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping) override finalDiligent::RenderDeviceBase< IGLDeviceBaseInterface >virtual
GetDeviceCaps() const override finalDiligent::RenderDeviceBase< IGLDeviceBaseInterface >inlinevirtual
GetNumDeferredContexts() constDiligent::RenderDeviceBase< IGLDeviceBaseInterface >inline
GetTextureFormatInfo(TEXTURE_FORMAT TexFormat) override finalDiligent::RenderDeviceBase< IGLDeviceBaseInterface >inlinevirtual
GetTextureFormatInfoExt(TEXTURE_FORMAT TexFormat) override finalDiligent::RenderDeviceBase< IGLDeviceBaseInterface >inlinevirtual
m_BuffViewObjAllocatorDiligent::RenderDeviceBase< IGLDeviceBaseInterface >protected
m_BufObjAllocatorDiligent::RenderDeviceBase< IGLDeviceBaseInterface >protected
m_PSOAllocatorDiligent::RenderDeviceBase< IGLDeviceBaseInterface >protected
m_ResMappingAllocatorDiligent::RenderDeviceBase< IGLDeviceBaseInterface >protected
m_SamplerObjAllocatorDiligent::RenderDeviceBase< IGLDeviceBaseInterface >protected
m_SamplersRegistryDiligent::RenderDeviceBase< IGLDeviceBaseInterface >protected
m_ShaderObjAllocatorDiligent::RenderDeviceBase< IGLDeviceBaseInterface >protected
m_SRBAllocatorDiligent::RenderDeviceBase< IGLDeviceBaseInterface >protected
m_TexObjAllocatorDiligent::RenderDeviceBase< IGLDeviceBaseInterface >protected
m_TexViewObjAllocatorDiligent::RenderDeviceBase< IGLDeviceBaseInterface >protected
m_wpDeferredContextsDiligent::RenderDeviceBase< IGLDeviceBaseInterface >protected
m_wpImmediateContextDiligent::RenderDeviceBase< IGLDeviceBaseInterface >protected
RenderDeviceBase(IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator, Uint32 NumDeferredContexts, size_t TextureObjSize, size_t TexViewObjSize, size_t BufferObjSize, size_t BuffViewObjSize, size_t ShaderObjSize, size_t SamplerObjSize, size_t PSOSize, size_t SRBSize)Diligent::RenderDeviceBase< IGLDeviceBaseInterface >inline
SetDeferredContext(size_t Ctx, IDeviceContext *pDeferredCtx)Diligent::RenderDeviceBase< IGLDeviceBaseInterface >inline
SetImmediateContext(IDeviceContext *pImmediateContext)Diligent::RenderDeviceBase< IGLDeviceBaseInterface >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_render_device_g_l_impl.html b/doc/html/class_diligent_1_1_render_device_g_l_impl.html new file mode 100644 index 00000000..89a230fa --- /dev/null +++ b/doc/html/class_diligent_1_1_render_device_g_l_impl.html @@ -0,0 +1,189 @@ + + + + + + + +Diligent Engine API Reference: Diligent::RenderDeviceGLImpl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::RenderDeviceGLImpl Class Reference
+
+
+ +

Implementation of the render device interface in OpenGL. + More...

+
+Inheritance diagram for Diligent::RenderDeviceGLImpl:
+
+
+ + +Diligent::RenderDeviceBase< IGLDeviceBaseInterface > +Diligent::ObjectBase< IGLDeviceBaseInterface > +Diligent::RefCountedObject< IGLDeviceBaseInterface > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::RenderDeviceBase< IGLDeviceBaseInterface >
 RenderDeviceBase (IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator, Uint32 NumDeferredContexts, size_t TextureObjSize, size_t TexViewObjSize, size_t BufferObjSize, size_t BuffViewObjSize, size_t ShaderObjSize, size_t SamplerObjSize, size_t PSOSize, size_t SRBSize)
 
+virtual void CreateResourceMapping (const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping) override final
 Implementation of IRenderDevice::CreateResourceMapping().
 
+virtual const DeviceCapsGetDeviceCaps () const override final
 Implementation of IRenderDevice::GetDeviceCaps().
 
+virtual const TextureFormatInfoGetTextureFormatInfo (TEXTURE_FORMAT TexFormat) override final
 Implementation of IRenderDevice::GetTextureFormatInfo().
 
+virtual const TextureFormatInfoExtGetTextureFormatInfoExt (TEXTURE_FORMAT TexFormat) override final
 Implementation of IRenderDevice::GetTextureFormatInfoExt().
 
+void SetImmediateContext (IDeviceContext *pImmediateContext)
 Set weak reference to the immediate context.
 
+void SetDeferredContext (size_t Ctx, IDeviceContext *pDeferredCtx)
 Set weak reference to the deferred context.
 
+size_t GetNumDeferredContexts () const
 Returns number of deferred contexts.
 
- Protected Member Functions inherited from Diligent::RenderDeviceBase< IGLDeviceBaseInterface >
void CreateDeviceObject (const Char *ObjectTypeName, const TObjectDescType &Desc, TObjectType **ppObject, TObjectConstructor ConstructObject)
 Helper template function to facilitate device object creation. More...
 
- Protected Attributes inherited from Diligent::RenderDeviceBase< IGLDeviceBaseInterface >
+StateObjectsRegistry< SamplerDescm_SamplersRegistry
 Sampler state registry.
 
+RefCntWeakPtr< IDeviceContextm_wpImmediateContext
 Weak reference to the immediate context. Immediate context holds strong reference to the device, so we must use weak reference to avoid circular dependencies.
 
+std::vector< RefCntWeakPtr< IDeviceContext >, STDAllocatorRawMem< RefCntWeakPtr< IDeviceContext > > > m_wpDeferredContexts
 Weak references to deferred contexts.
 
+FixedBlockMemoryAllocator m_TexObjAllocator
 Allocator for texture objects.
 
+FixedBlockMemoryAllocator m_TexViewObjAllocator
 Allocator for texture view objects.
 
+FixedBlockMemoryAllocator m_BufObjAllocator
 Allocator for buffer objects.
 
+FixedBlockMemoryAllocator m_BuffViewObjAllocator
 Allocator for buffer view objects.
 
+FixedBlockMemoryAllocator m_ShaderObjAllocator
 Allocator for shader objects.
 
+FixedBlockMemoryAllocator m_SamplerObjAllocator
 Allocator for sampler objects.
 
+FixedBlockMemoryAllocator m_PSOAllocator
 Allocator for pipeline state objects.
 
+FixedBlockMemoryAllocator m_SRBAllocator
 Allocator for shader resource binding objects.
 
+FixedBlockMemoryAllocator m_ResMappingAllocator
 Allocator for resource mapping objects.
 
+

Detailed Description

+

Implementation of the render device interface in OpenGL.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_render_device_g_l_impl.png b/doc/html/class_diligent_1_1_render_device_g_l_impl.png new file mode 100644 index 00000000..f3ea44d6 Binary files /dev/null and b/doc/html/class_diligent_1_1_render_device_g_l_impl.png differ diff --git a/doc/html/class_diligent_1_1_resource_mapping_impl-members.html b/doc/html/class_diligent_1_1_resource_mapping_impl-members.html new file mode 100644 index 00000000..5d8f9689 --- /dev/null +++ b/doc/html/class_diligent_1_1_resource_mapping_impl-members.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ResourceMappingImpl Member List
+
+
+ +

This is the complete list of members for Diligent::ResourceMappingImpl, including all inherited members.

+ + + + + + + + +
AddResource(const Char *Name, IDeviceObject *pObject, bool bIsUnique) override finalDiligent::ResourceMappingImplvirtual
AddResourceArray(const Char *Name, Uint32 StartIndex, IDeviceObject *const *ppObjects, Uint32 NumElements, bool bIsUnique) override finalDiligent::ResourceMappingImplvirtual
GetResource(const Char *Name, IDeviceObject **ppResource, Uint32 ArrayIndex) override finalDiligent::ResourceMappingImplvirtual
GetSize() override finalDiligent::ResourceMappingImplvirtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override finalDiligent::ResourceMappingImplvirtual
RemoveResourceByName(const Char *Name, Uint32 ArrayIndex) override finalDiligent::ResourceMappingImplvirtual
ResourceMappingImpl(IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator)Diligent::ResourceMappingImplinline
+ + + + + diff --git a/doc/html/class_diligent_1_1_resource_mapping_impl.html b/doc/html/class_diligent_1_1_resource_mapping_impl.html new file mode 100644 index 00000000..4314d63d --- /dev/null +++ b/doc/html/class_diligent_1_1_resource_mapping_impl.html @@ -0,0 +1,176 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ResourceMappingImpl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ResourceMappingImpl Class Reference
+
+
+ +

Implementation of the resource mapping. + More...

+
+Inheritance diagram for Diligent::ResourceMappingImpl:
+
+
+ + +Diligent::ObjectBase< IResourceMapping > +Diligent::RefCountedObject< IResourceMapping > +Diligent::IResourceMapping + +
+ + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ResourceMappingImpl (IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator)
 
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual void AddResource (const Char *Name, IDeviceObject *pObject, bool bIsUnique) override final
 Implementation of IResourceMapping::AddResource()
 
+virtual void AddResourceArray (const Char *Name, Uint32 StartIndex, IDeviceObject *const *ppObjects, Uint32 NumElements, bool bIsUnique) override final
 Implementation of IResourceMapping::AddResourceArray()
 
+virtual void RemoveResourceByName (const Char *Name, Uint32 ArrayIndex) override final
 Implementation of IResourceMapping::RemoveResourceByName()
 
+virtual void GetResource (const Char *Name, IDeviceObject **ppResource, Uint32 ArrayIndex) override final
 Implementation of IResourceMapping::GetResource()
 
+virtual size_t GetSize () override final
 Returns number of resources in the resource mapping.
 
+

Detailed Description

+

Implementation of the resource mapping.

+

Constructor & Destructor Documentation

+ +

◆ ResourceMappingImpl()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Diligent::ResourceMappingImpl::ResourceMappingImpl (IReferenceCounters * pRefCounters,
IMemoryAllocator & RawMemAllocator 
)
+
+inline
+
+
Parameters
+ + + +
pRefCounters- reference counters object that controls the lifetime of this resource mapping
RawMemAllocator- raw memory allocator that is used by the m_HashTable member
+
+
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_resource_mapping_impl.png b/doc/html/class_diligent_1_1_resource_mapping_impl.png new file mode 100644 index 00000000..d05173b2 Binary files /dev/null and b/doc/html/class_diligent_1_1_resource_mapping_impl.png differ diff --git a/doc/html/class_diligent_1_1_ring_buffer-members.html b/doc/html/class_diligent_1_1_ring_buffer-members.html new file mode 100644 index 00000000..758a6f7e --- /dev/null +++ b/doc/html/class_diligent_1_1_ring_buffer-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::RingBuffer Member List
+
+
+ +

This is the complete list of members for Diligent::RingBuffer, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_ring_buffer.html b/doc/html/class_diligent_1_1_ring_buffer.html new file mode 100644 index 00000000..49ac137c --- /dev/null +++ b/doc/html/class_diligent_1_1_ring_buffer.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Diligent::RingBuffer Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::RingBuffer Class Reference
+
+
+ +

Implementation of a ring buffer. The class is not thread-safe. + More...

+ +

Inherited by Diligent::GPURingBuffer.

+

Detailed Description

+

Implementation of a ring buffer. The class is not thread-safe.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_root_signature-members.html b/doc/html/class_diligent_1_1_root_signature-members.html new file mode 100644 index 00000000..bec1f36d --- /dev/null +++ b/doc/html/class_diligent_1_1_root_signature-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::RootSignature Member List
+
+
+ +

This is the complete list of members for Diligent::RootSignature, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_root_signature.html b/doc/html/class_diligent_1_1_root_signature.html new file mode 100644 index 00000000..176c282c --- /dev/null +++ b/doc/html/class_diligent_1_1_root_signature.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Diligent::RootSignature Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::RootSignature Class Reference
+
+
+ +

Implementation of the Diligent::RootSignature class. + More...

+

Detailed Description

+

Implementation of the Diligent::RootSignature class.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_sampler_base-members.html b/doc/html/class_diligent_1_1_sampler_base-members.html new file mode 100644 index 00000000..f9d4a816 --- /dev/null +++ b/doc/html/class_diligent_1_1_sampler_base-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::SamplerBase< BaseInterface, RenderDeviceBaseInterface > Member List
+
+
+ +

This is the complete list of members for Diligent::SamplerBase< BaseInterface, RenderDeviceBaseInterface >, including all inherited members.

+ + + + + + + +
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< BaseInterface, SamplerDesc >inline
GetUniqueID() constDiligent::DeviceObjectBase< BaseInterface, SamplerDesc >inline
m_DescDiligent::DeviceObjectBase< BaseInterface, SamplerDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< BaseInterface, SamplerDesc >protected
SamplerBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &SamDesc, bool bIsDeviceInternal=false)Diligent::SamplerBase< BaseInterface, RenderDeviceBaseInterface >inline
~SamplerBase()Diligent::SamplerBase< BaseInterface, RenderDeviceBaseInterface >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_sampler_base.html b/doc/html/class_diligent_1_1_sampler_base.html new file mode 100644 index 00000000..6bc5626b --- /dev/null +++ b/doc/html/class_diligent_1_1_sampler_base.html @@ -0,0 +1,225 @@ + + + + + + + +Diligent Engine API Reference: Diligent::SamplerBase< BaseInterface, RenderDeviceBaseInterface > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::SamplerBase< BaseInterface, RenderDeviceBaseInterface > Class Template Reference
+
+
+ +

Template class implementing base functionality for a sampler object. + More...

+
+Inheritance diagram for Diligent::SamplerBase< BaseInterface, RenderDeviceBaseInterface >:
+
+
+ + +Diligent::DeviceObjectBase< BaseInterface, SamplerDesc > +Diligent::ObjectBase< BaseInterface > +Diligent::RefCountedObject< BaseInterface > + +
+ + + + + + + + + + + + +

+Public Member Functions

 SamplerBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &SamDesc, bool bIsDeviceInternal=false)
 
 ~SamplerBase ()
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< BaseInterface, SamplerDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &ObjDesc, bool bIsDeviceInternal=false)
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
+ + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::DeviceObjectBase< BaseInterface, SamplerDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+SamplerDesc m_Desc
 Object description.
 
+

Detailed Description

+

template<class BaseInterface, class RenderDeviceBaseInterface>
+class Diligent::SamplerBase< BaseInterface, RenderDeviceBaseInterface >

+ +

Template class implementing base functionality for a sampler object.

+
Template Parameters
+ + + +
BaseInterface- base interface that this class will inheret (Diligent::ISamplerD3D11, Diligent::ISamplerD3D12 or Diligent::ISamplerGL).
RenderDeviceBaseInterface- base interface for the render device (Diligent::IRenderDeviceD3D11, Diligent::IRenderDeviceD3D12, Diligent::IRenderDeviceGL, or Diligent::IRenderDeviceGLES).
+
+
+

Constructor & Destructor Documentation

+ +

◆ SamplerBase()

+ +
+
+
+template<class BaseInterface, class RenderDeviceBaseInterface>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Diligent::SamplerBase< BaseInterface, RenderDeviceBaseInterface >::SamplerBase (IReferenceCounters * pRefCounters,
IRenderDevicepDevice,
const SamplerDescSamDesc,
bool bIsDeviceInternal = false 
)
+
+inline
+
+
Parameters
+ + + + + +
pRefCounters- reference counters object that controls the lifetime of this sampler.
pDevice- pointer to the device.
SamDesc- sampler description.
bIsDeviceInternal- flag indicating if the sampler is an internal device object and must not keep a strong reference to the device.
+
+
+ +
+
+ +

◆ ~SamplerBase()

+ +
+
+
+template<class BaseInterface, class RenderDeviceBaseInterface>
+ + + + + +
+ + + + + + + +
Diligent::SamplerBase< BaseInterface, RenderDeviceBaseInterface >::~SamplerBase ()
+
+inline
+
+
Note
Destructor cannot directly remove the object from the registry as this may cause a deadlock.
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_sampler_base.png b/doc/html/class_diligent_1_1_sampler_base.png new file mode 100644 index 00000000..002f84f2 Binary files /dev/null and b/doc/html/class_diligent_1_1_sampler_base.png differ diff --git a/doc/html/class_diligent_1_1_sampler_d3_d11_impl-members.html b/doc/html/class_diligent_1_1_sampler_d3_d11_impl-members.html new file mode 100644 index 00000000..87057caf --- /dev/null +++ b/doc/html/class_diligent_1_1_sampler_d3_d11_impl-members.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::SamplerD3D11Impl Member List
+
+
+ +

This is the complete list of members for Diligent::SamplerD3D11Impl, including all inherited members.

+ + + + + + + + + + +
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< ISamplerD3D11, SamplerDesc >inline
GetD3D11SamplerState() override finalDiligent::SamplerD3D11Implinlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< ISamplerD3D11, SamplerDesc >inline
m_DescDiligent::DeviceObjectBase< ISamplerD3D11, SamplerDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< ISamplerD3D11, SamplerDesc >protected
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) finalDiligent::SamplerD3D11Implvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
SamplerBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &SamDesc, bool bIsDeviceInternal=false)Diligent::SamplerBase< ISamplerD3D11, IRenderDeviceD3D11 >inline
~SamplerBase()Diligent::SamplerBase< ISamplerD3D11, IRenderDeviceD3D11 >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_sampler_d3_d11_impl.html b/doc/html/class_diligent_1_1_sampler_d3_d11_impl.html new file mode 100644 index 00000000..e813a879 --- /dev/null +++ b/doc/html/class_diligent_1_1_sampler_d3_d11_impl.html @@ -0,0 +1,178 @@ + + + + + + + +Diligent Engine API Reference: Diligent::SamplerD3D11Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::SamplerD3D11Impl Class Reference
+
+
+ +

Implementation of the Diligent::ISamplerD3D11 interface. + More...

+
+Inheritance diagram for Diligent::SamplerD3D11Impl:
+
+
+ + +Diligent::SamplerBase< ISamplerD3D11, IRenderDeviceD3D11 > +Diligent::DeviceObjectBase< ISamplerD3D11, SamplerDesc > +Diligent::ObjectBase< ISamplerD3D11 > +Diligent::RefCountedObject< ISamplerD3D11 > +Diligent::ISamplerD3D11 +Diligent::ISampler +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) final
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual ID3D11SamplerState * GetD3D11SamplerState () override final
 Returns a pointer to the ID3D11SamplerState interface of the internal Direct3D11 object. More...
 
- Public Member Functions inherited from Diligent::SamplerBase< ISamplerD3D11, IRenderDeviceD3D11 >
 SamplerBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &SamDesc, bool bIsDeviceInternal=false)
 
 ~SamplerBase ()
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< ISamplerD3D11, SamplerDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const SamplerDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::DeviceObjectBase< ISamplerD3D11, SamplerDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+SamplerDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::ISamplerD3D11 interface.

+

Member Function Documentation

+ +

◆ GetD3D11SamplerState()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11SamplerState* Diligent::SamplerD3D11Impl::GetD3D11SamplerState ()
+
+inlinefinaloverridevirtual
+
+ +

Returns a pointer to the ID3D11SamplerState interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::ISamplerD3D11.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_sampler_d3_d11_impl.png b/doc/html/class_diligent_1_1_sampler_d3_d11_impl.png new file mode 100644 index 00000000..fcf5663b Binary files /dev/null and b/doc/html/class_diligent_1_1_sampler_d3_d11_impl.png differ diff --git a/doc/html/class_diligent_1_1_sampler_d3_d12_impl-members.html b/doc/html/class_diligent_1_1_sampler_d3_d12_impl-members.html new file mode 100644 index 00000000..9e90c057 --- /dev/null +++ b/doc/html/class_diligent_1_1_sampler_d3_d12_impl-members.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::SamplerD3D12Impl Member List
+
+
+ +

This is the complete list of members for Diligent::SamplerD3D12Impl, including all inherited members.

+ + + + + + + + + + +
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< ISamplerD3D12, SamplerDesc >inline
GetCPUDescriptorHandle() overrideDiligent::SamplerD3D12Implinlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< ISamplerD3D12, SamplerDesc >inline
m_DescDiligent::DeviceObjectBase< ISamplerD3D12, SamplerDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< ISamplerD3D12, SamplerDesc >protected
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) overrideDiligent::SamplerD3D12Implvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
SamplerBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &SamDesc, bool bIsDeviceInternal=false)Diligent::SamplerBase< ISamplerD3D12, IRenderDeviceD3D12 >inline
~SamplerBase()Diligent::SamplerBase< ISamplerD3D12, IRenderDeviceD3D12 >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_sampler_d3_d12_impl.html b/doc/html/class_diligent_1_1_sampler_d3_d12_impl.html new file mode 100644 index 00000000..7dee3521 --- /dev/null +++ b/doc/html/class_diligent_1_1_sampler_d3_d12_impl.html @@ -0,0 +1,178 @@ + + + + + + + +Diligent Engine API Reference: Diligent::SamplerD3D12Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::SamplerD3D12Impl Class Reference
+
+
+ +

Implementation of the Diligent::ISamplerD3D12 interface. + More...

+
+Inheritance diagram for Diligent::SamplerD3D12Impl:
+
+
+ + +Diligent::SamplerBase< ISamplerD3D12, IRenderDeviceD3D12 > +Diligent::DeviceObjectBase< ISamplerD3D12, SamplerDesc > +Diligent::ObjectBase< ISamplerD3D12 > +Diligent::RefCountedObject< ISamplerD3D12 > +Diligent::ISamplerD3D12 +Diligent::ISampler +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle () override
 Returns a CPU descriptor handle of the D3D12 sampler object. More...
 
- Public Member Functions inherited from Diligent::SamplerBase< ISamplerD3D12, IRenderDeviceD3D12 >
 SamplerBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &SamDesc, bool bIsDeviceInternal=false)
 
 ~SamplerBase ()
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< ISamplerD3D12, SamplerDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const SamplerDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::DeviceObjectBase< ISamplerD3D12, SamplerDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+SamplerDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::ISamplerD3D12 interface.

+

Member Function Documentation

+ +

◆ GetCPUDescriptorHandle()

+ +
+
+ + + + + +
+ + + + + + + +
virtual D3D12_CPU_DESCRIPTOR_HANDLE Diligent::SamplerD3D12Impl::GetCPUDescriptorHandle ()
+
+inlineoverridevirtual
+
+ +

Returns a CPU descriptor handle of the D3D12 sampler object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::ISamplerD3D12.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_sampler_d3_d12_impl.png b/doc/html/class_diligent_1_1_sampler_d3_d12_impl.png new file mode 100644 index 00000000..1295282e Binary files /dev/null and b/doc/html/class_diligent_1_1_sampler_d3_d12_impl.png differ diff --git a/doc/html/class_diligent_1_1_sampler_g_l_impl-members.html b/doc/html/class_diligent_1_1_sampler_g_l_impl-members.html new file mode 100644 index 00000000..6ffb48d7 --- /dev/null +++ b/doc/html/class_diligent_1_1_sampler_g_l_impl-members.html @@ -0,0 +1,94 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::SamplerGLImpl Member List
+
+
+ +

This is the complete list of members for Diligent::SamplerGLImpl, including all inherited members.

+ + + + + + + + + +
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< ISamplerGL, SamplerDesc >inline
GetUniqueID() constDiligent::DeviceObjectBase< ISamplerGL, SamplerDesc >inline
m_DescDiligent::DeviceObjectBase< ISamplerGL, SamplerDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< ISamplerGL, SamplerDesc >protected
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface)Diligent::SamplerGLImplvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
SamplerBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &SamDesc, bool bIsDeviceInternal=false)Diligent::SamplerBase< ISamplerGL, IGLDeviceBaseInterface >inline
~SamplerBase()Diligent::SamplerBase< ISamplerGL, IGLDeviceBaseInterface >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_sampler_g_l_impl.html b/doc/html/class_diligent_1_1_sampler_g_l_impl.html new file mode 100644 index 00000000..0a127bbb --- /dev/null +++ b/doc/html/class_diligent_1_1_sampler_g_l_impl.html @@ -0,0 +1,144 @@ + + + + + + + +Diligent Engine API Reference: Diligent::SamplerGLImpl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::SamplerGLImpl Class Reference
+
+
+ +

Implementation of the Diligent::ISamplerGL interface. + More...

+
+Inheritance diagram for Diligent::SamplerGLImpl:
+
+
+ + +Diligent::SamplerBase< ISamplerGL, IGLDeviceBaseInterface > +Diligent::DeviceObjectBase< ISamplerGL, SamplerDesc > +Diligent::ObjectBase< ISamplerGL > +Diligent::RefCountedObject< ISamplerGL > +Diligent::ISamplerGL +Diligent::ISampler +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)
 Queries the specific interface, see IObject::QueryInterface() for details.
 
- Public Member Functions inherited from Diligent::SamplerBase< ISamplerGL, IGLDeviceBaseInterface >
 SamplerBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &SamDesc, bool bIsDeviceInternal=false)
 
 ~SamplerBase ()
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< ISamplerGL, SamplerDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const SamplerDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const SamplerDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::DeviceObjectBase< ISamplerGL, SamplerDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+SamplerDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::ISamplerGL interface.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_sampler_g_l_impl.png b/doc/html/class_diligent_1_1_sampler_g_l_impl.png new file mode 100644 index 00000000..5ae98ab1 Binary files /dev/null and b/doc/html/class_diligent_1_1_sampler_g_l_impl.png differ diff --git a/doc/html/class_diligent_1_1_shader_base-members.html b/doc/html/class_diligent_1_1_shader_base-members.html new file mode 100644 index 00000000..71f859e5 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_base-members.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ShaderBase< BaseInterface, RenderDeviceBaseInterface > Member List
+
+
+ +

This is the complete list of members for Diligent::ShaderBase< BaseInterface, RenderDeviceBaseInterface >, including all inherited members.

+ + + + + + + + + + +
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< BaseInterface, ShaderDesc >inline
GetUniqueID() constDiligent::DeviceObjectBase< BaseInterface, ShaderDesc >inline
m_DescDiligent::DeviceObjectBase< BaseInterface, ShaderDesc >protected
m_DummyShaderVarDiligent::ShaderBase< BaseInterface, RenderDeviceBaseInterface >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< BaseInterface, ShaderDesc >protected
m_StaticSamplersDiligent::ShaderBase< BaseInterface, RenderDeviceBaseInterface >protected
m_StringPoolDiligent::ShaderBase< BaseInterface, RenderDeviceBaseInterface >protected
m_VariablesDescDiligent::ShaderBase< BaseInterface, RenderDeviceBaseInterface >protected
ShaderBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ShdrDesc, bool bIsDeviceInternal=false)Diligent::ShaderBase< BaseInterface, RenderDeviceBaseInterface >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_base.html b/doc/html/class_diligent_1_1_shader_base.html new file mode 100644 index 00000000..d854bb02 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_base.html @@ -0,0 +1,212 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderBase< BaseInterface, RenderDeviceBaseInterface > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ShaderBase< BaseInterface, RenderDeviceBaseInterface > Class Template Reference
+
+
+ +

Template class implementing base functionality for a shader object. + More...

+
+Inheritance diagram for Diligent::ShaderBase< BaseInterface, RenderDeviceBaseInterface >:
+
+
+ + +Diligent::DeviceObjectBase< BaseInterface, ShaderDesc > +Diligent::ObjectBase< BaseInterface > +Diligent::RefCountedObject< BaseInterface > + +
+ + + + + + + + + + +

+Public Member Functions

 ShaderBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ShdrDesc, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< BaseInterface, ShaderDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ObjDesc, bool bIsDeviceInternal=false)
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
+ + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+DummyShaderVariable m_DummyShaderVar
 Dummy shader variable.
 
+std::vector< ShaderVariableDesc, STDAllocatorRawMem< ShaderVariableDesc > > m_VariablesDesc
 Shader variable descriptions.
 
+std::vector< String, STDAllocatorRawMem< String > > m_StringPool
 String pool that is used to hold copies of variable names and static sampler names.
 
+std::vector< StaticSamplerDesc, STDAllocatorRawMem< StaticSamplerDesc > > m_StaticSamplers
 Static sampler descriptions.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< BaseInterface, ShaderDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+ShaderDesc m_Desc
 Object description.
 
+

Detailed Description

+

template<class BaseInterface, class RenderDeviceBaseInterface>
+class Diligent::ShaderBase< BaseInterface, RenderDeviceBaseInterface >

+ +

Template class implementing base functionality for a shader object.

+
Template Parameters
+ + + +
BaseInterface- base interface that this class will inheret (Diligent::IShaderD3D11, Diligent::IShaderD3D12 or Diligent::IShaderGL).
RenderDeviceBaseInterface- base interface for the render device (Diligent::IRenderDeviceD3D11, Diligent::IRenderDeviceD3D12, Diligent::IRenderDeviceGL, or Diligent::IRenderDeviceGLES).
+
+
+

Constructor & Destructor Documentation

+ +

◆ ShaderBase()

+ +
+
+
+template<class BaseInterface, class RenderDeviceBaseInterface>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Diligent::ShaderBase< BaseInterface, RenderDeviceBaseInterface >::ShaderBase (IReferenceCounters * pRefCounters,
IRenderDevicepDevice,
const ShaderDescShdrDesc,
bool bIsDeviceInternal = false 
)
+
+inline
+
+
Parameters
+ + + + + +
pRefCounters- reference counters object that controls the lifetime of this shader.
pDevice- pointer to the device.
ShdrDesc- shader description.
bIsDeviceInternal- flag indicating if the shader is an internal device object and must not keep a strong reference to the device.
+
+
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_base.png b/doc/html/class_diligent_1_1_shader_base.png new file mode 100644 index 00000000..d16fe2fa Binary files /dev/null and b/doc/html/class_diligent_1_1_shader_base.png differ diff --git a/doc/html/class_diligent_1_1_shader_d3_d11_impl-members.html b/doc/html/class_diligent_1_1_shader_d3_d11_impl-members.html new file mode 100644 index 00000000..7da46703 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_d3_d11_impl-members.html @@ -0,0 +1,99 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ShaderD3D11Impl Member List
+
+
+ +

This is the complete list of members for Diligent::ShaderD3D11Impl, including all inherited members.

+ + + + + + + + + + + + + + +
BindResources(IResourceMapping *pResourceMapping, Uint32 Flags) override finalDiligent::ShaderD3D11Implvirtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< IShaderD3D11, ShaderDesc >inline
GetD3D11Shader() override finalDiligent::ShaderD3D11Implinlinevirtual
GetShaderVariable(const Char *Name) override finalDiligent::ShaderD3D11Implvirtual
GetUniqueID() constDiligent::DeviceObjectBase< IShaderD3D11, ShaderDesc >inline
m_DescDiligent::DeviceObjectBase< IShaderD3D11, ShaderDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< IShaderD3D11, ShaderDesc >protected
m_StaticSamplersDiligent::ShaderBase< IShaderD3D11, IRenderDeviceD3D11 >protected
m_StringPoolDiligent::ShaderBase< IShaderD3D11, IRenderDeviceD3D11 >protected
m_VariablesDescDiligent::ShaderBase< IShaderD3D11, IRenderDeviceD3D11 >protected
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override finalDiligent::ShaderD3D11Implvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
ShaderBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ShdrDesc, bool bIsDeviceInternal=false)Diligent::ShaderBase< IShaderD3D11, IRenderDeviceD3D11 >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_d3_d11_impl.html b/doc/html/class_diligent_1_1_shader_d3_d11_impl.html new file mode 100644 index 00000000..116459c0 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_d3_d11_impl.html @@ -0,0 +1,284 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderD3D11Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ShaderD3D11Impl Class Reference
+
+
+ +

Implementation of the Diligent::IShaderD3D11 interface. + More...

+
+Inheritance diagram for Diligent::ShaderD3D11Impl:
+
+
+ + +Diligent::ShaderBase< IShaderD3D11, IRenderDeviceD3D11 > +Diligent::DeviceObjectBase< IShaderD3D11, ShaderDesc > +Diligent::ObjectBase< IShaderD3D11 > +Diligent::RefCountedObject< IShaderD3D11 > +Diligent::IShaderD3D11 +Diligent::IShader +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual void BindResources (IResourceMapping *pResourceMapping, Uint32 Flags) override final
 Binds shader resources. More...
 
virtual IShaderVariableGetShaderVariable (const Char *Name) override final
 Returns an interface to a shader variable. If the shader variable is not found, an interface to a dummy variable will be returned. More...
 
virtual ID3D11DeviceChild * GetD3D11Shader () override final
 Returns a pointer to the ID3D11DeviceChild interface of the internal Direct3D11 object. More...
 
- Public Member Functions inherited from Diligent::ShaderBase< IShaderD3D11, IRenderDeviceD3D11 >
 ShaderBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ShdrDesc, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IShaderD3D11, ShaderDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const ShaderDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::ShaderBase< IShaderD3D11, IRenderDeviceD3D11 >
+DummyShaderVariable m_DummyShaderVar
 Dummy shader variable.
 
+std::vector< ShaderVariableDesc, STDAllocatorRawMem< ShaderVariableDesc > > m_VariablesDesc
 Shader variable descriptions.
 
+std::vector< String, STDAllocatorRawMem< String > > m_StringPool
 String pool that is used to hold copies of variable names and static sampler names.
 
+std::vector< StaticSamplerDesc, STDAllocatorRawMem< StaticSamplerDesc > > m_StaticSamplers
 Static sampler descriptions.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< IShaderD3D11, ShaderDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+ShaderDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::IShaderD3D11 interface.

+

Member Function Documentation

+ +

◆ BindResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::ShaderD3D11Impl::BindResources (IResourceMappingpResourceMapping,
Uint32 Flags 
)
+
+finaloverridevirtual
+
+ +

Binds shader resources.

+
Parameters
+ + + +
[in]pResourceMapping- Pointer to IResourceMapping interface to look for resources.
[in]Flags- Additional flags for the operation. See Diligent::BIND_SHADER_RESOURCES_FLAGS for details.
+
+
+
Remarks
The shader will keep strong references to all resources bound to it.
+ +

Implements Diligent::IShader.

+ +
+
+ +

◆ GetD3D11Shader()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11DeviceChild* Diligent::ShaderD3D11Impl::GetD3D11Shader ()
+
+inlinefinaloverridevirtual
+
+ +

Returns a pointer to the ID3D11DeviceChild interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::IShaderD3D11.

+ +
+
+ +

◆ GetShaderVariable()

+ +
+
+ + + + + +
+ + + + + + + + +
IShaderVariable * Diligent::ShaderD3D11Impl::GetShaderVariable (const Char * Name)
+
+finaloverridevirtual
+
+ +

Returns an interface to a shader variable. If the shader variable is not found, an interface to a dummy variable will be returned.

+
Parameters
+ + +
[in]Name- Name of the variable.
+
+
+
Remarks
The method does not increment the reference counter of the returned interface.
+ +

Implements Diligent::IShader.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_d3_d11_impl.png b/doc/html/class_diligent_1_1_shader_d3_d11_impl.png new file mode 100644 index 00000000..ccf16b69 Binary files /dev/null and b/doc/html/class_diligent_1_1_shader_d3_d11_impl.png differ diff --git a/doc/html/class_diligent_1_1_shader_d3_d12_impl-members.html b/doc/html/class_diligent_1_1_shader_d3_d12_impl-members.html new file mode 100644 index 00000000..58db18cb --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_d3_d12_impl-members.html @@ -0,0 +1,97 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ShaderD3D12Impl Member List
+
+
+ +

This is the complete list of members for Diligent::ShaderD3D12Impl, including all inherited members.

+ + + + + + + + + + + + +
BindResources(IResourceMapping *pResourceMapping, Uint32 Flags) overrideDiligent::ShaderD3D12Implvirtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< IShaderD3D12, ShaderDesc >inline
GetShaderVariable(const Char *Name) overrideDiligent::ShaderD3D12Implvirtual
GetUniqueID() constDiligent::DeviceObjectBase< IShaderD3D12, ShaderDesc >inline
m_DescDiligent::DeviceObjectBase< IShaderD3D12, ShaderDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< IShaderD3D12, ShaderDesc >protected
m_StaticSamplersDiligent::ShaderBase< IShaderD3D12, IRenderDeviceD3D12 >protected
m_StringPoolDiligent::ShaderBase< IShaderD3D12, IRenderDeviceD3D12 >protected
m_VariablesDescDiligent::ShaderBase< IShaderD3D12, IRenderDeviceD3D12 >protected
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
ShaderBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ShdrDesc, bool bIsDeviceInternal=false)Diligent::ShaderBase< IShaderD3D12, IRenderDeviceD3D12 >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_d3_d12_impl.html b/doc/html/class_diligent_1_1_shader_d3_d12_impl.html new file mode 100644 index 00000000..5e03f444 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_d3_d12_impl.html @@ -0,0 +1,251 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderD3D12Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ShaderD3D12Impl Class Reference
+
+
+ +

Implementation of the Diligent::IShaderD3D12 interface. + More...

+
+Inheritance diagram for Diligent::ShaderD3D12Impl:
+
+
+ + +Diligent::ShaderBase< IShaderD3D12, IRenderDeviceD3D12 > +Diligent::DeviceObjectBase< IShaderD3D12, ShaderDesc > +Diligent::ObjectBase< IShaderD3D12 > +Diligent::RefCountedObject< IShaderD3D12 > +Diligent::IShaderD3D12 +Diligent::IShader +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void BindResources (IResourceMapping *pResourceMapping, Uint32 Flags) override
 Binds shader resources. More...
 
virtual IShaderVariableGetShaderVariable (const Char *Name) override
 Returns an interface to a shader variable. If the shader variable is not found, an interface to a dummy variable will be returned. More...
 
- Public Member Functions inherited from Diligent::ShaderBase< IShaderD3D12, IRenderDeviceD3D12 >
 ShaderBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ShdrDesc, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IShaderD3D12, ShaderDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const ShaderDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::ObjectBase< IShaderD3D12 >
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::ShaderBase< IShaderD3D12, IRenderDeviceD3D12 >
+DummyShaderVariable m_DummyShaderVar
 Dummy shader variable.
 
+std::vector< ShaderVariableDesc, STDAllocatorRawMem< ShaderVariableDesc > > m_VariablesDesc
 Shader variable descriptions.
 
+std::vector< String, STDAllocatorRawMem< String > > m_StringPool
 String pool that is used to hold copies of variable names and static sampler names.
 
+std::vector< StaticSamplerDesc, STDAllocatorRawMem< StaticSamplerDesc > > m_StaticSamplers
 Static sampler descriptions.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< IShaderD3D12, ShaderDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+ShaderDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::IShaderD3D12 interface.

+

Member Function Documentation

+ +

◆ BindResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::ShaderD3D12Impl::BindResources (IResourceMappingpResourceMapping,
Uint32 Flags 
)
+
+overridevirtual
+
+ +

Binds shader resources.

+
Parameters
+ + + +
[in]pResourceMapping- Pointer to IResourceMapping interface to look for resources.
[in]Flags- Additional flags for the operation. See Diligent::BIND_SHADER_RESOURCES_FLAGS for details.
+
+
+
Remarks
The shader will keep strong references to all resources bound to it.
+ +

Implements Diligent::IShader.

+ +
+
+ +

◆ GetShaderVariable()

+ +
+
+ + + + + +
+ + + + + + + + +
IShaderVariable * Diligent::ShaderD3D12Impl::GetShaderVariable (const Char * Name)
+
+overridevirtual
+
+ +

Returns an interface to a shader variable. If the shader variable is not found, an interface to a dummy variable will be returned.

+
Parameters
+ + +
[in]Name- Name of the variable.
+
+
+
Remarks
The method does not increment the reference counter of the returned interface.
+ +

Implements Diligent::IShader.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_d3_d12_impl.png b/doc/html/class_diligent_1_1_shader_d3_d12_impl.png new file mode 100644 index 00000000..b3bacd7d Binary files /dev/null and b/doc/html/class_diligent_1_1_shader_d3_d12_impl.png differ diff --git a/doc/html/class_diligent_1_1_shader_d3_d_base-members.html b/doc/html/class_diligent_1_1_shader_d3_d_base-members.html new file mode 100644 index 00000000..7a861439 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_d3_d_base-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ShaderD3DBase Member List
+
+
+ +

This is the complete list of members for Diligent::ShaderD3DBase, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_d3_d_base.html b/doc/html/class_diligent_1_1_shader_d3_d_base.html new file mode 100644 index 00000000..0ce80992 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_d3_d_base.html @@ -0,0 +1,100 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderD3DBase Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ShaderD3DBase Class Reference
+
+
+ +

Base implementation of a D3D shader. + More...

+
+Inheritance diagram for Diligent::ShaderD3DBase:
+
+
+ + +Diligent::ShaderD3D11Impl +Diligent::ShaderD3D12Impl + +
+

Detailed Description

+

Base implementation of a D3D shader.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_d3_d_base.png b/doc/html/class_diligent_1_1_shader_d3_d_base.png new file mode 100644 index 00000000..d87236f8 Binary files /dev/null and b/doc/html/class_diligent_1_1_shader_d3_d_base.png differ diff --git a/doc/html/class_diligent_1_1_shader_g_l_impl-members.html b/doc/html/class_diligent_1_1_shader_g_l_impl-members.html new file mode 100644 index 00000000..7fde6898 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_g_l_impl-members.html @@ -0,0 +1,99 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ShaderGLImpl Member List
+
+
+ +

This is the complete list of members for Diligent::ShaderGLImpl, including all inherited members.

+ + + + + + + + + + + + + + +
BindResources(IResourceMapping *pResourceMapping, Uint32 Flags) overrideDiligent::ShaderGLImplvirtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< IShaderGL, ShaderDesc >inline
GetShaderVariable(const Char *Name) overrideDiligent::ShaderGLImplvirtual
GetUniqueID() constDiligent::DeviceObjectBase< IShaderGL, ShaderDesc >inline
m_DescDiligent::DeviceObjectBase< IShaderGL, ShaderDesc >protected
m_DummyShaderVarDiligent::ShaderBase< IShaderGL, IGLDeviceBaseInterface >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< IShaderGL, ShaderDesc >protected
m_StaticSamplersDiligent::ShaderBase< IShaderGL, IGLDeviceBaseInterface >protected
m_StringPoolDiligent::ShaderBase< IShaderGL, IGLDeviceBaseInterface >protected
m_VariablesDescDiligent::ShaderBase< IShaderGL, IGLDeviceBaseInterface >protected
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) overrideDiligent::ShaderGLImplvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
ShaderBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ShdrDesc, bool bIsDeviceInternal=false)Diligent::ShaderBase< IShaderGL, IGLDeviceBaseInterface >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_g_l_impl.html b/doc/html/class_diligent_1_1_shader_g_l_impl.html new file mode 100644 index 00000000..a58fe109 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_g_l_impl.html @@ -0,0 +1,251 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderGLImpl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ShaderGLImpl Class Reference
+
+
+ +

Implementation of the Diligent::IShaderGL interface. + More...

+
+Inheritance diagram for Diligent::ShaderGLImpl:
+
+
+ + +Diligent::ShaderBase< IShaderGL, IGLDeviceBaseInterface > +Diligent::DeviceObjectBase< IShaderGL, ShaderDesc > +Diligent::ObjectBase< IShaderGL > +Diligent::RefCountedObject< IShaderGL > +Diligent::IShaderGL +Diligent::IShader +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void BindResources (IResourceMapping *pResourceMapping, Uint32 Flags) override
 Binds shader resources. More...
 
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual IShaderVariableGetShaderVariable (const Char *Name) override
 Returns an interface to a shader variable. If the shader variable is not found, an interface to a dummy variable will be returned. More...
 
- Public Member Functions inherited from Diligent::ShaderBase< IShaderGL, IGLDeviceBaseInterface >
 ShaderBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ShdrDesc, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IShaderGL, ShaderDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const ShaderDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const ShaderDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::ShaderBase< IShaderGL, IGLDeviceBaseInterface >
+DummyShaderVariable m_DummyShaderVar
 Dummy shader variable.
 
+std::vector< ShaderVariableDesc, STDAllocatorRawMem< ShaderVariableDesc > > m_VariablesDesc
 Shader variable descriptions.
 
+std::vector< String, STDAllocatorRawMem< String > > m_StringPool
 String pool that is used to hold copies of variable names and static sampler names.
 
+std::vector< StaticSamplerDesc, STDAllocatorRawMem< StaticSamplerDesc > > m_StaticSamplers
 Static sampler descriptions.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< IShaderGL, ShaderDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+ShaderDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::IShaderGL interface.

+

Member Function Documentation

+ +

◆ BindResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::ShaderGLImpl::BindResources (IResourceMappingpResourceMapping,
Uint32 Flags 
)
+
+overridevirtual
+
+ +

Binds shader resources.

+
Parameters
+ + + +
[in]pResourceMapping- Pointer to IResourceMapping interface to look for resources.
[in]Flags- Additional flags for the operation. See Diligent::BIND_SHADER_RESOURCES_FLAGS for details.
+
+
+
Remarks
The shader will keep strong references to all resources bound to it.
+ +

Implements Diligent::IShader.

+ +
+
+ +

◆ GetShaderVariable()

+ +
+
+ + + + + +
+ + + + + + + + +
IShaderVariable * Diligent::ShaderGLImpl::GetShaderVariable (const Char * Name)
+
+overridevirtual
+
+ +

Returns an interface to a shader variable. If the shader variable is not found, an interface to a dummy variable will be returned.

+
Parameters
+ + +
[in]Name- Name of the variable.
+
+
+
Remarks
The method does not increment the reference counter of the returned interface.
+ +

Implements Diligent::IShader.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_g_l_impl.png b/doc/html/class_diligent_1_1_shader_g_l_impl.png new file mode 100644 index 00000000..d23ba446 Binary files /dev/null and b/doc/html/class_diligent_1_1_shader_g_l_impl.png differ diff --git a/doc/html/class_diligent_1_1_shader_resource_binding_base-members.html b/doc/html/class_diligent_1_1_shader_resource_binding_base-members.html new file mode 100644 index 00000000..fe80acdb --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resource_binding_base-members.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ShaderResourceBindingBase< BaseInterface > Member List
+
+
+ +

This is the complete list of members for Diligent::ShaderResourceBindingBase< BaseInterface >, including all inherited members.

+ + + + +
GetPipelineState() override finalDiligent::ShaderResourceBindingBase< BaseInterface >inlinevirtual
m_spPSODiligent::ShaderResourceBindingBase< BaseInterface >protected
ShaderResourceBindingBase(IReferenceCounters *pRefCounters, IPipelineState *pPSO, bool IsInternal=false)Diligent::ShaderResourceBindingBase< BaseInterface >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resource_binding_base.html b/doc/html/class_diligent_1_1_shader_resource_binding_base.html new file mode 100644 index 00000000..51e8b5f0 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resource_binding_base.html @@ -0,0 +1,181 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderResourceBindingBase< BaseInterface > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ShaderResourceBindingBase< BaseInterface > Class Template Reference
+
+
+ +

Template class implementing base functionality for a shader resource binding. + More...

+
+Inheritance diagram for Diligent::ShaderResourceBindingBase< BaseInterface >:
+
+
+ + +Diligent::ObjectBase< BaseInterface > +Diligent::RefCountedObject< BaseInterface > + +
+ + + + + + + +

+Public Member Functions

 ShaderResourceBindingBase (IReferenceCounters *pRefCounters, IPipelineState *pPSO, bool IsInternal=false)
 
+virtual IPipelineStateGetPipelineState () override final
 Implementation of IShaderResourceBinding::GetPipelineState().
 
+ + + + +

+Protected Attributes

+RefCntAutoPtr< IPipelineStatem_spPSO
 Strong reference to PSO. We must use strong reference, because shader resource binding uses PSO's memory allocator to allocate memory for shader resource cache.
 
+

Detailed Description

+

template<class BaseInterface>
+class Diligent::ShaderResourceBindingBase< BaseInterface >

+ +

Template class implementing base functionality for a shader resource binding.

+
Template Parameters
+ + +
BaseInterface- base interface that this class will inheret (Diligent::IShaderResourceBindingGL, Diligent::IShaderResourceBindingD3D11, or Diligent::IShaderResourceBindingD3D12).
+
+
+

Constructor & Destructor Documentation

+ +

◆ ShaderResourceBindingBase()

+ +
+
+
+template<class BaseInterface>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Diligent::ShaderResourceBindingBase< BaseInterface >::ShaderResourceBindingBase (IReferenceCounters * pRefCounters,
IPipelineStatepPSO,
bool IsInternal = false 
)
+
+inline
+
+
Parameters
+ + + + +
pRefCounters- reference counters object that controls the lifetime of this SRB.
pPSO- pipeline state that this SRB belongs to.
IsInternal- flag indicating if the shader resource binding is an internal PSO object and must not keep a strong reference to the PSO.
+
+
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resource_binding_base.png b/doc/html/class_diligent_1_1_shader_resource_binding_base.png new file mode 100644 index 00000000..5ddf075f Binary files /dev/null and b/doc/html/class_diligent_1_1_shader_resource_binding_base.png differ diff --git a/doc/html/class_diligent_1_1_shader_resource_binding_d3_d11_impl-members.html b/doc/html/class_diligent_1_1_shader_resource_binding_d3_d11_impl-members.html new file mode 100644 index 00000000..380215f7 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resource_binding_d3_d11_impl-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ShaderResourceBindingD3D11Impl Member List
+
+
+ +

This is the complete list of members for Diligent::ShaderResourceBindingD3D11Impl, including all inherited members.

+ + + + + + + +
BindResources(Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags) override finalDiligent::ShaderResourceBindingD3D11Implvirtual
GetPipelineState() override finalDiligent::ShaderResourceBindingBase< IShaderResourceBindingD3D11 >inlinevirtual
GetVariable(SHADER_TYPE ShaderType, const char *Name) override finalDiligent::ShaderResourceBindingD3D11Implvirtual
m_spPSODiligent::ShaderResourceBindingBase< IShaderResourceBindingD3D11 >protected
RefCountedObject< IShaderResourceBindingD3D11 >::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IShaderResourceBindingpure virtual
ShaderResourceBindingBase(IReferenceCounters *pRefCounters, IPipelineState *pPSO, bool IsInternal=false)Diligent::ShaderResourceBindingBase< IShaderResourceBindingD3D11 >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resource_binding_d3_d11_impl.html b/doc/html/class_diligent_1_1_shader_resource_binding_d3_d11_impl.html new file mode 100644 index 00000000..82211ca5 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resource_binding_d3_d11_impl.html @@ -0,0 +1,236 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderResourceBindingD3D11Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ShaderResourceBindingD3D11Impl Class Reference
+
+
+ +

Implementation of the Diligent::IShaderResourceBindingD3D11 interface. + More...

+
+Inheritance diagram for Diligent::ShaderResourceBindingD3D11Impl:
+
+
+ + +Diligent::ShaderResourceBindingBase< IShaderResourceBindingD3D11 > +Diligent::ObjectBase< IShaderResourceBindingD3D11 > +Diligent::RefCountedObject< IShaderResourceBindingD3D11 > +Diligent::IShaderResourceBindingD3D11 +Diligent::IShaderResourceBinding + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void BindResources (Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags) override final
 Binds all resource using the resource mapping. More...
 
virtual IShaderVariableGetVariable (SHADER_TYPE ShaderType, const char *Name) override final
 Returns variable. More...
 
- Public Member Functions inherited from Diligent::ShaderResourceBindingBase< IShaderResourceBindingD3D11 >
 ShaderResourceBindingBase (IReferenceCounters *pRefCounters, IPipelineState *pPSO, bool IsInternal=false)
 
+virtual IPipelineStateGetPipelineState () override final
 Implementation of IShaderResourceBinding::GetPipelineState().
 
- Public Member Functions inherited from Diligent::IShaderResourceBinding
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::ShaderResourceBindingBase< IShaderResourceBindingD3D11 >
+RefCntAutoPtr< IPipelineStatem_spPSO
 Strong reference to PSO. We must use strong reference, because shader resource binding uses PSO's memory allocator to allocate memory for shader resource cache.
 
+

Detailed Description

+

Implementation of the Diligent::IShaderResourceBindingD3D11 interface.

+

Member Function Documentation

+ +

◆ BindResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::ShaderResourceBindingD3D11Impl::BindResources (Uint32 ShaderFlags,
IResourceMappingpResMapping,
Uint32 Flags 
)
+
+finaloverridevirtual
+
+ +

Binds all resource using the resource mapping.

+
Parameters
+ + + + +
[in]ShaderFlags- Flags for the shader stages, for which resources will be bound. Any combination of Diligent::SHADER_TYPE may be specified.
[in]pResMapping- Shader resource mapping, where required resources will be looked up
[in]Flags- Additional flags. See Diligent::BIND_SHADER_RESOURCES_FLAGS.
+
+
+ +

Implements Diligent::IShaderResourceBinding.

+ +
+
+ +

◆ GetVariable()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
IShaderVariable * Diligent::ShaderResourceBindingD3D11Impl::GetVariable (SHADER_TYPE ShaderType,
const char * Name 
)
+
+finaloverridevirtual
+
+ +

Returns variable.

+
Parameters
+ + + +
[in]ShaderType- Type of the shader to look up the variable. Must be one of Diligent::SHADER_TYPE.
Name- Variable name
+
+
+ +

Implements Diligent::IShaderResourceBinding.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resource_binding_d3_d11_impl.png b/doc/html/class_diligent_1_1_shader_resource_binding_d3_d11_impl.png new file mode 100644 index 00000000..6dc3243d Binary files /dev/null and b/doc/html/class_diligent_1_1_shader_resource_binding_d3_d11_impl.png differ diff --git a/doc/html/class_diligent_1_1_shader_resource_binding_d3_d12_impl-members.html b/doc/html/class_diligent_1_1_shader_resource_binding_d3_d12_impl-members.html new file mode 100644 index 00000000..57c941c9 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resource_binding_d3_d12_impl-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ShaderResourceBindingD3D12Impl Member List
+
+
+ +

This is the complete list of members for Diligent::ShaderResourceBindingD3D12Impl, including all inherited members.

+ + + + + + + +
BindResources(Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags) overrideDiligent::ShaderResourceBindingD3D12Implvirtual
GetPipelineState() override finalDiligent::ShaderResourceBindingBase< IShaderResourceBindingD3D12 >inlinevirtual
GetVariable(SHADER_TYPE ShaderType, const char *Name) overrideDiligent::ShaderResourceBindingD3D12Implvirtual
m_spPSODiligent::ShaderResourceBindingBase< IShaderResourceBindingD3D12 >protected
RefCountedObject< IShaderResourceBindingD3D12 >::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IShaderResourceBindingpure virtual
ShaderResourceBindingBase(IReferenceCounters *pRefCounters, IPipelineState *pPSO, bool IsInternal=false)Diligent::ShaderResourceBindingBase< IShaderResourceBindingD3D12 >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resource_binding_d3_d12_impl.html b/doc/html/class_diligent_1_1_shader_resource_binding_d3_d12_impl.html new file mode 100644 index 00000000..5d85538d --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resource_binding_d3_d12_impl.html @@ -0,0 +1,236 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderResourceBindingD3D12Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ShaderResourceBindingD3D12Impl Class Reference
+
+
+ +

Implementation of the Diligent::IShaderResourceBindingD3D12 interface. + More...

+
+Inheritance diagram for Diligent::ShaderResourceBindingD3D12Impl:
+
+
+ + +Diligent::ShaderResourceBindingBase< IShaderResourceBindingD3D12 > +Diligent::ObjectBase< IShaderResourceBindingD3D12 > +Diligent::RefCountedObject< IShaderResourceBindingD3D12 > +Diligent::IShaderResourceBindingD3D12 +Diligent::IShaderResourceBinding + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void BindResources (Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags) override
 Binds all resource using the resource mapping. More...
 
virtual IShaderVariableGetVariable (SHADER_TYPE ShaderType, const char *Name) override
 Returns variable. More...
 
- Public Member Functions inherited from Diligent::ShaderResourceBindingBase< IShaderResourceBindingD3D12 >
 ShaderResourceBindingBase (IReferenceCounters *pRefCounters, IPipelineState *pPSO, bool IsInternal=false)
 
+virtual IPipelineStateGetPipelineState () override final
 Implementation of IShaderResourceBinding::GetPipelineState().
 
- Public Member Functions inherited from Diligent::IShaderResourceBinding
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::ShaderResourceBindingBase< IShaderResourceBindingD3D12 >
+RefCntAutoPtr< IPipelineStatem_spPSO
 Strong reference to PSO. We must use strong reference, because shader resource binding uses PSO's memory allocator to allocate memory for shader resource cache.
 
+

Detailed Description

+

Implementation of the Diligent::IShaderResourceBindingD3D12 interface.

+

Member Function Documentation

+ +

◆ BindResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::ShaderResourceBindingD3D12Impl::BindResources (Uint32 ShaderFlags,
IResourceMappingpResMapping,
Uint32 Flags 
)
+
+overridevirtual
+
+ +

Binds all resource using the resource mapping.

+
Parameters
+ + + + +
[in]ShaderFlags- Flags for the shader stages, for which resources will be bound. Any combination of Diligent::SHADER_TYPE may be specified.
[in]pResMapping- Shader resource mapping, where required resources will be looked up
[in]Flags- Additional flags. See Diligent::BIND_SHADER_RESOURCES_FLAGS.
+
+
+ +

Implements Diligent::IShaderResourceBinding.

+ +
+
+ +

◆ GetVariable()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
IShaderVariable * Diligent::ShaderResourceBindingD3D12Impl::GetVariable (SHADER_TYPE ShaderType,
const char * Name 
)
+
+overridevirtual
+
+ +

Returns variable.

+
Parameters
+ + + +
[in]ShaderType- Type of the shader to look up the variable. Must be one of Diligent::SHADER_TYPE.
Name- Variable name
+
+
+ +

Implements Diligent::IShaderResourceBinding.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resource_binding_d3_d12_impl.png b/doc/html/class_diligent_1_1_shader_resource_binding_d3_d12_impl.png new file mode 100644 index 00000000..e176d028 Binary files /dev/null and b/doc/html/class_diligent_1_1_shader_resource_binding_d3_d12_impl.png differ diff --git a/doc/html/class_diligent_1_1_shader_resource_binding_g_l_impl-members.html b/doc/html/class_diligent_1_1_shader_resource_binding_g_l_impl-members.html new file mode 100644 index 00000000..80d008e7 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resource_binding_g_l_impl-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ShaderResourceBindingGLImpl Member List
+
+
+ +

This is the complete list of members for Diligent::ShaderResourceBindingGLImpl, including all inherited members.

+ + + + + + + +
BindResources(Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags) overrideDiligent::ShaderResourceBindingGLImplvirtual
GetPipelineState() override finalDiligent::ShaderResourceBindingBase< IShaderResourceBindingGL >inlinevirtual
GetVariable(SHADER_TYPE ShaderType, const char *Name) overrideDiligent::ShaderResourceBindingGLImplvirtual
m_spPSODiligent::ShaderResourceBindingBase< IShaderResourceBindingGL >protected
RefCountedObject< IShaderResourceBindingGL >::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IShaderResourceBindingpure virtual
ShaderResourceBindingBase(IReferenceCounters *pRefCounters, IPipelineState *pPSO, bool IsInternal=false)Diligent::ShaderResourceBindingBase< IShaderResourceBindingGL >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resource_binding_g_l_impl.html b/doc/html/class_diligent_1_1_shader_resource_binding_g_l_impl.html new file mode 100644 index 00000000..44ea47d3 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resource_binding_g_l_impl.html @@ -0,0 +1,236 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderResourceBindingGLImpl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ShaderResourceBindingGLImpl Class Reference
+
+
+ +

Implementation of the Diligent::IShaderResourceBindingGL interface. + More...

+
+Inheritance diagram for Diligent::ShaderResourceBindingGLImpl:
+
+
+ + +Diligent::ShaderResourceBindingBase< IShaderResourceBindingGL > +Diligent::ObjectBase< IShaderResourceBindingGL > +Diligent::RefCountedObject< IShaderResourceBindingGL > +Diligent::IShaderResourceBindingGL +Diligent::IShaderResourceBinding + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void BindResources (Uint32 ShaderFlags, IResourceMapping *pResMapping, Uint32 Flags) override
 Binds all resource using the resource mapping. More...
 
virtual IShaderVariableGetVariable (SHADER_TYPE ShaderType, const char *Name) override
 Returns variable. More...
 
- Public Member Functions inherited from Diligent::ShaderResourceBindingBase< IShaderResourceBindingGL >
 ShaderResourceBindingBase (IReferenceCounters *pRefCounters, IPipelineState *pPSO, bool IsInternal=false)
 
+virtual IPipelineStateGetPipelineState () override final
 Implementation of IShaderResourceBinding::GetPipelineState().
 
- Public Member Functions inherited from Diligent::IShaderResourceBinding
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::ShaderResourceBindingBase< IShaderResourceBindingGL >
+RefCntAutoPtr< IPipelineStatem_spPSO
 Strong reference to PSO. We must use strong reference, because shader resource binding uses PSO's memory allocator to allocate memory for shader resource cache.
 
+

Detailed Description

+

Implementation of the Diligent::IShaderResourceBindingGL interface.

+

Member Function Documentation

+ +

◆ BindResources()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Diligent::ShaderResourceBindingGLImpl::BindResources (Uint32 ShaderFlags,
IResourceMappingpResMapping,
Uint32 Flags 
)
+
+overridevirtual
+
+ +

Binds all resource using the resource mapping.

+
Parameters
+ + + + +
[in]ShaderFlags- Flags for the shader stages, for which resources will be bound. Any combination of Diligent::SHADER_TYPE may be specified.
[in]pResMapping- Shader resource mapping, where required resources will be looked up
[in]Flags- Additional flags. See Diligent::BIND_SHADER_RESOURCES_FLAGS.
+
+
+ +

Implements Diligent::IShaderResourceBinding.

+ +
+
+ +

◆ GetVariable()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
IShaderVariable * Diligent::ShaderResourceBindingGLImpl::GetVariable (SHADER_TYPE ShaderType,
const char * Name 
)
+
+overridevirtual
+
+ +

Returns variable.

+
Parameters
+ + + +
[in]ShaderType- Type of the shader to look up the variable. Must be one of Diligent::SHADER_TYPE.
Name- Variable name
+
+
+ +

Implements Diligent::IShaderResourceBinding.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resource_binding_g_l_impl.png b/doc/html/class_diligent_1_1_shader_resource_binding_g_l_impl.png new file mode 100644 index 00000000..603e303a Binary files /dev/null and b/doc/html/class_diligent_1_1_shader_resource_binding_g_l_impl.png differ diff --git a/doc/html/class_diligent_1_1_shader_resource_cache_d3_d11-members.html b/doc/html/class_diligent_1_1_shader_resource_cache_d3_d11-members.html new file mode 100644 index 00000000..4441d942 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resource_cache_d3_d11-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ShaderResourceCacheD3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::ShaderResourceCacheD3D11, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resource_cache_d3_d11.html b/doc/html/class_diligent_1_1_shader_resource_cache_d3_d11.html new file mode 100644 index 00000000..076a918f --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resource_cache_d3_d11.html @@ -0,0 +1,104 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderResourceCacheD3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ShaderResourceCacheD3D11 Class Reference
+
+
+ +

The class implements a cache that holds resources bound to a specific shader stage. + More...

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

+Classes

struct  CachedCB
 Describes resources associated with the cached constant buffer. More...
 
struct  CachedResource
 Describes resources associated with the cached SRV or UAV. More...
 
struct  CachedSampler
 Describes resources associated with the cached sampler. More...
 
+

Detailed Description

+

The class implements a cache that holds resources bound to a specific shader stage.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resource_layout_d3_d11-members.html b/doc/html/class_diligent_1_1_shader_resource_layout_d3_d11-members.html new file mode 100644 index 00000000..102c95dd --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resource_layout_d3_d11-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ShaderResourceLayoutD3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::ShaderResourceLayoutD3D11, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resource_layout_d3_d11.html b/doc/html/class_diligent_1_1_shader_resource_layout_d3_d11.html new file mode 100644 index 00000000..efdc9d20 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resource_layout_d3_d11.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderResourceLayoutD3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ShaderResourceLayoutD3D11 Class Reference
+
+
+ +

Diligent::ShaderResourceLayoutD3D11 class http://diligentgraphics.com/diligent-engine/architecture/d3d11/shader-resource-layout/. + More...

+

Detailed Description

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resource_layout_d3_d12-members.html b/doc/html/class_diligent_1_1_shader_resource_layout_d3_d12-members.html new file mode 100644 index 00000000..d5bb86d0 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resource_layout_d3_d12-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ShaderResourceLayoutD3D12 Member List
+
+
+ +

This is the complete list of members for Diligent::ShaderResourceLayoutD3D12, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resource_layout_d3_d12.html b/doc/html/class_diligent_1_1_shader_resource_layout_d3_d12.html new file mode 100644 index 00000000..73431db7 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resource_layout_d3_d12.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderResourceLayoutD3D12 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ShaderResourceLayoutD3D12 Class Reference
+
+
+ +

Diligent::ShaderResourceLayoutD3D12 class. + More...

+

Detailed Description

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resources-members.html b/doc/html/class_diligent_1_1_shader_resources-members.html new file mode 100644 index 00000000..7a01e47f --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resources-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ShaderResources Member List
+
+
+ +

This is the complete list of members for Diligent::ShaderResources, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resources.html b/doc/html/class_diligent_1_1_shader_resources.html new file mode 100644 index 00000000..f23f54d3 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resources.html @@ -0,0 +1,100 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderResources Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ShaderResources Class Reference
+
+
+ +

Diligent::ShaderResources class. + More...

+
+Inheritance diagram for Diligent::ShaderResources:
+
+
+ + +Diligent::ShaderResourcesD3D11 +Diligent::ShaderResourcesD3D12 + +
+

Detailed Description

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resources.png b/doc/html/class_diligent_1_1_shader_resources.png new file mode 100644 index 00000000..70608145 Binary files /dev/null and b/doc/html/class_diligent_1_1_shader_resources.png differ diff --git a/doc/html/class_diligent_1_1_shader_resources_d3_d11-members.html b/doc/html/class_diligent_1_1_shader_resources_d3_d11-members.html new file mode 100644 index 00000000..a123507e --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resources_d3_d11-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ShaderResourcesD3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::ShaderResourcesD3D11, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resources_d3_d11.html b/doc/html/class_diligent_1_1_shader_resources_d3_d11.html new file mode 100644 index 00000000..e80ca5cd --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resources_d3_d11.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderResourcesD3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ShaderResourcesD3D11 Class Reference
+
+
+ +

Diligent::ShaderResources class. + More...

+ +

Inherits ShaderResources.

+

Detailed Description

+

Diligent::ShaderResources class.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resources_d3_d11.png b/doc/html/class_diligent_1_1_shader_resources_d3_d11.png new file mode 100644 index 00000000..04f4be70 Binary files /dev/null and b/doc/html/class_diligent_1_1_shader_resources_d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_shader_resources_d3_d12-members.html b/doc/html/class_diligent_1_1_shader_resources_d3_d12-members.html new file mode 100644 index 00000000..79452133 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resources_d3_d12-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::ShaderResourcesD3D12 Member List
+
+
+ +

This is the complete list of members for Diligent::ShaderResourcesD3D12, including all inherited members.

+ +
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resources_d3_d12.html b/doc/html/class_diligent_1_1_shader_resources_d3_d12.html new file mode 100644 index 00000000..09add941 --- /dev/null +++ b/doc/html/class_diligent_1_1_shader_resources_d3_d12.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderResourcesD3D12 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::ShaderResourcesD3D12 Class Reference
+
+
+ +

Diligent::ShaderResources class. + More...

+ +

Inherits ShaderResources.

+

Detailed Description

+

Diligent::ShaderResources class.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_shader_resources_d3_d12.png b/doc/html/class_diligent_1_1_shader_resources_d3_d12.png new file mode 100644 index 00000000..0f76c844 Binary files /dev/null and b/doc/html/class_diligent_1_1_shader_resources_d3_d12.png differ diff --git a/doc/html/class_diligent_1_1_state_objects_registry-members.html b/doc/html/class_diligent_1_1_state_objects_registry-members.html new file mode 100644 index 00000000..d5ba03be --- /dev/null +++ b/doc/html/class_diligent_1_1_state_objects_registry-members.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::StateObjectsRegistry< ResourceDescType > Member List
+
+
+ +

This is the complete list of members for Diligent::StateObjectsRegistry< ResourceDescType >, including all inherited members.

+ + + + + + +
Add(const ResourceDescType &ObjectDesc, IDeviceObject *pObject)Diligent::StateObjectsRegistry< ResourceDescType >inline
DeletedObjectsToPurgeDiligent::StateObjectsRegistry< ResourceDescType >static
Find(const ResourceDescType &Desc, IDeviceObject **ppObject)Diligent::StateObjectsRegistry< ResourceDescType >inline
Purge()Diligent::StateObjectsRegistry< ResourceDescType >inline
ReportDeletedObject()Diligent::StateObjectsRegistry< ResourceDescType >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_state_objects_registry.html b/doc/html/class_diligent_1_1_state_objects_registry.html new file mode 100644 index 00000000..c3e990ea --- /dev/null +++ b/doc/html/class_diligent_1_1_state_objects_registry.html @@ -0,0 +1,183 @@ + + + + + + + +Diligent Engine API Reference: Diligent::StateObjectsRegistry< ResourceDescType > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::StateObjectsRegistry< ResourceDescType > Class Template Reference
+
+
+ +

Template class implementing state object registry. + More...

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

+Public Member Functions

void Add (const ResourceDescType &ObjectDesc, IDeviceObject *pObject)
 Adds a new object to the registry. More...
 
+void Find (const ResourceDescType &Desc, IDeviceObject **ppObject)
 Finds the object in the registry.
 
+void Purge ()
 Purges outstanding deleted objects from the registry.
 
+void ReportDeletedObject ()
 Increments the number of outstanding deleted objects. When this number reaches DeletedObjectsToPurge, Purge() will be called.
 
+ + + + +

+Static Public Attributes

+static constexpr int DeletedObjectsToPurge = 32
 Number of outstanding deleted objects to purge the registry.
 
+

Detailed Description

+

template<typename ResourceDescType>
+class Diligent::StateObjectsRegistry< ResourceDescType >

+ +

Template class implementing state object registry.

+
Template Parameters
+ + +
ResourceDescType- type of the resource description. The type must have operator== and a hash function defined.
+
+
+
Remarks
The following strategies do not work:
    +
  • To store raw pointers and remove the object from the registry in the object's destructor. In this case other thread may obtain a reference to the object while it is being deleted. This scenario is possible if one thread has just entered the destructor, but other is executing Find() and entered the protection section.
  • +
  • Strong pointers will cause circular references and result in memory leaks.
  • +
+
+
+Only weak pointers provide thread-safe solution. The object is either atomically destroyed, so that no other thread can obtain a reference to it through weak pointers. Or it is atomically locked, so that strong reference is obtained. In this case no other thread can destroy the object, because there is at least one strong reference now. Note however that removing the object from the registry in the object's destructor may cause a deadlock at the point where Find() locks the weak pointer: if other thread has started dtor, the object will be locked by Diligent::RefCountedObject::Release(). If after that this thread locks the registry first, it will be waiting for the object to unlock in Diligent::RefCntWeakPtr::Lock(), while the dtor thread will be waiting for the registry to unlock.
+

Member Function Documentation

+ +

◆ Add()

+ +
+
+
+template<typename ResourceDescType>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::StateObjectsRegistry< ResourceDescType >::Add (const ResourceDescType & ObjectDesc,
IDeviceObjectpObject 
)
+
+inline
+
+ +

Adds a new object to the registry.

+
Parameters
+ + + +
[in]ObjectDesc- object description.
[in]pObject- pointer to the object.
+
+
+

Besides adding a new object, the function also checks the number of outstanding deleted objects and calls Purge() if the number has reached the threshold value DeletedObjectsToPurge. Creating a state object is assumed to be an expensive operation and should be performed during the initialization. Occasional purge operations should not add significant cost to it.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_string_data_blob_impl-members.html b/doc/html/class_diligent_1_1_string_data_blob_impl-members.html new file mode 100644 index 00000000..0273deca --- /dev/null +++ b/doc/html/class_diligent_1_1_string_data_blob_impl-members.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::StringDataBlobImpl Member List
+
+
+ +

This is the complete list of members for Diligent::StringDataBlobImpl, including all inherited members.

+ + + + +
GetDataPtr() overrideDiligent::StringDataBlobImplinlinevirtual
GetSize() overrideDiligent::StringDataBlobImplinlinevirtual
Resize(size_t NewSize) overrideDiligent::StringDataBlobImplinlinevirtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_string_data_blob_impl.html b/doc/html/class_diligent_1_1_string_data_blob_impl.html new file mode 100644 index 00000000..b4016baf --- /dev/null +++ b/doc/html/class_diligent_1_1_string_data_blob_impl.html @@ -0,0 +1,117 @@ + + + + + + + +Diligent Engine API Reference: Diligent::StringDataBlobImpl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::StringDataBlobImpl Class Reference
+
+
+ +

Base interface for a file stream. + More...

+
+Inheritance diagram for Diligent::StringDataBlobImpl:
+
+
+ + +Diligent::ObjectBase< IDataBlob > +Diligent::RefCountedObject< IDataBlob > + +
+ + + + + + + + + + + +

+Public Member Functions

+virtual void Resize (size_t NewSize) override
 Sets the size of the internal data buffer.
 
+virtual size_t GetSize () override
 Returns the size of the internal data buffer.
 
+virtual void * GetDataPtr () override
 Returns the pointer to the internal data buffer.
 
+

Detailed Description

+

Base interface for a file stream.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_string_data_blob_impl.png b/doc/html/class_diligent_1_1_string_data_blob_impl.png new file mode 100644 index 00000000..8ef7313e Binary files /dev/null and b/doc/html/class_diligent_1_1_string_data_blob_impl.png differ diff --git a/doc/html/class_diligent_1_1_swap_chain_base-members.html b/doc/html/class_diligent_1_1_swap_chain_base-members.html new file mode 100644 index 00000000..9989e606 --- /dev/null +++ b/doc/html/class_diligent_1_1_swap_chain_base-members.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::SwapChainBase< BaseInterface > Member List
+
+
+ +

This is the complete list of members for Diligent::SwapChainBase< BaseInterface >, including all inherited members.

+ + + + + + +
GetDesc() const override finalDiligent::SwapChainBase< BaseInterface >inlinevirtual
m_pRenderDeviceDiligent::SwapChainBase< BaseInterface >protected
m_SwapChainDescDiligent::SwapChainBase< BaseInterface >protected
m_wpDeviceContextDiligent::SwapChainBase< BaseInterface >protected
SwapChainBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, IDeviceContext *pDeviceContext, const SwapChainDesc &SCDesc)Diligent::SwapChainBase< BaseInterface >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_swap_chain_base.html b/doc/html/class_diligent_1_1_swap_chain_base.html new file mode 100644 index 00000000..c02d6167 --- /dev/null +++ b/doc/html/class_diligent_1_1_swap_chain_base.html @@ -0,0 +1,197 @@ + + + + + + + +Diligent Engine API Reference: Diligent::SwapChainBase< BaseInterface > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::SwapChainBase< BaseInterface > Class Template Reference
+
+
+ +

Base implementation of the swap chain. + More...

+
+Inheritance diagram for Diligent::SwapChainBase< BaseInterface >:
+
+
+ + +Diligent::ObjectBase< BaseInterface > +Diligent::RefCountedObject< BaseInterface > + +
+ + + + + + + +

+Public Member Functions

 SwapChainBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, IDeviceContext *pDeviceContext, const SwapChainDesc &SCDesc)
 
+virtual const SwapChainDescGetDesc () const override final
 Implementation of ISwapChain::GetDesc()
 
+ + + + + + + + + + +

+Protected Attributes

+Diligent::RefCntAutoPtr< IRenderDevicem_pRenderDevice
 Strong reference to the render device.
 
+Diligent::RefCntWeakPtr< IDeviceContextm_wpDeviceContext
 Weak references to the immediate device context. The context holds the strong reference to the swap chain.
 
+SwapChainDesc m_SwapChainDesc
 Swap chain description.
 
+

Detailed Description

+

template<class BaseInterface>
+class Diligent::SwapChainBase< BaseInterface >

+ +

Base implementation of the swap chain.

+
Template Parameters
+ + +
BaseInterface- base interface that this class will inheret (Diligent::ISwapChainGL, Diligent::ISwapChainD3D11, or Diligent::ISwapChainD3D12).
+
+
+
Remarks
Swap chain holds the strong reference to the device and a weak reference to the immediate context.
+

Constructor & Destructor Documentation

+ +

◆ SwapChainBase()

+ +
+
+
+template<class BaseInterface>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Diligent::SwapChainBase< BaseInterface >::SwapChainBase (IReferenceCounters * pRefCounters,
IRenderDevicepDevice,
IDeviceContextpDeviceContext,
const SwapChainDescSCDesc 
)
+
+inline
+
+
Parameters
+ + + + + +
pRefCounters- reference counters object that controls the lifetime of this swap chain.
pDevice- pointer to the device.
pDeviceContext- pointer to the device context.
SCDesc- swap chain description
+
+
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_swap_chain_base.png b/doc/html/class_diligent_1_1_swap_chain_base.png new file mode 100644 index 00000000..b19a1214 Binary files /dev/null and b/doc/html/class_diligent_1_1_swap_chain_base.png differ diff --git a/doc/html/class_diligent_1_1_swap_chain_d3_d11_impl-members.html b/doc/html/class_diligent_1_1_swap_chain_d3_d11_impl-members.html new file mode 100644 index 00000000..1d35a18b --- /dev/null +++ b/doc/html/class_diligent_1_1_swap_chain_d3_d11_impl-members.html @@ -0,0 +1,96 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::SwapChainD3D11Impl Member List
+
+
+ +

This is the complete list of members for Diligent::SwapChainD3D11Impl, including all inherited members.

+ + + + + + + + + + + +
GetDesc() const override finalDiligent::SwapChainBase< ISwapChainD3D11 >inlinevirtual
GetDSV() override finalDiligent::SwapChainD3D11Implinlinevirtual
GetDXGISwapChain() override finalDiligent::SwapChainD3D11Implinlinevirtual
GetRTV() override finalDiligent::SwapChainD3D11Implinlinevirtual
m_pRenderDeviceDiligent::SwapChainBase< ISwapChainD3D11 >protected
m_SwapChainDescDiligent::SwapChainBase< ISwapChainD3D11 >protected
m_wpDeviceContextDiligent::SwapChainBase< ISwapChainD3D11 >protected
Present() override finalDiligent::SwapChainD3D11Implvirtual
Resize(Uint32 NewWidth, Uint32 NewHeight) override finalDiligent::SwapChainD3D11Implvirtual
SwapChainBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, IDeviceContext *pDeviceContext, const SwapChainDesc &SCDesc)Diligent::SwapChainBase< ISwapChainD3D11 >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_swap_chain_d3_d11_impl.html b/doc/html/class_diligent_1_1_swap_chain_d3_d11_impl.html new file mode 100644 index 00000000..5ce23eef --- /dev/null +++ b/doc/html/class_diligent_1_1_swap_chain_d3_d11_impl.html @@ -0,0 +1,285 @@ + + + + + + + +Diligent Engine API Reference: Diligent::SwapChainD3D11Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::SwapChainD3D11Impl Class Reference
+
+
+ +

Implementation of the Diligent::ISwapChainD3D11 interface. + More...

+
+Inheritance diagram for Diligent::SwapChainD3D11Impl:
+
+
+ + +Diligent::SwapChainBase< ISwapChainD3D11 > +Diligent::ObjectBase< ISwapChainD3D11 > +Diligent::RefCountedObject< ISwapChainD3D11 > +Diligent::ISwapChainD3D11 +Diligent::ISwapChain + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void Present () override final
 Presents a rendered image to the user.
 
virtual void Resize (Uint32 NewWidth, Uint32 NewHeight) override final
 Changes the swap chain's back buffer size. More...
 
virtual IDXGISwapChain * GetDXGISwapChain () override final
 Returns a pointer to the IDXGISwapChain interface of the internal DXGI object. More...
 
virtual ID3D11RenderTargetView * GetRTV () override final
 Returns d3d11 render target view of the swap chain's back buffer. More...
 
virtual ID3D11DepthStencilView * GetDSV () override final
 Returns d3d11 depth stencil view of the internal depth buffer object. More...
 
- Public Member Functions inherited from Diligent::SwapChainBase< ISwapChainD3D11 >
 SwapChainBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, IDeviceContext *pDeviceContext, const SwapChainDesc &SCDesc)
 
+virtual const SwapChainDescGetDesc () const override final
 Implementation of ISwapChain::GetDesc()
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::SwapChainBase< ISwapChainD3D11 >
+Diligent::RefCntAutoPtr< IRenderDevicem_pRenderDevice
 Strong reference to the render device.
 
+Diligent::RefCntWeakPtr< IDeviceContextm_wpDeviceContext
 Weak references to the immediate device context. The context holds the strong reference to the swap chain.
 
+SwapChainDesc m_SwapChainDesc
 Swap chain description.
 
+

Detailed Description

+

Implementation of the Diligent::ISwapChainD3D11 interface.

+

Member Function Documentation

+ +

◆ GetDSV()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11DepthStencilView* Diligent::SwapChainD3D11Impl::GetDSV ()
+
+inlinefinaloverridevirtual
+
+ +

Returns d3d11 depth stencil view of the internal depth buffer object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::ISwapChainD3D11.

+ +
+
+ +

◆ GetDXGISwapChain()

+ +
+
+ + + + + +
+ + + + + + + +
virtual IDXGISwapChain* Diligent::SwapChainD3D11Impl::GetDXGISwapChain ()
+
+inlinefinaloverridevirtual
+
+ +

Returns a pointer to the IDXGISwapChain interface of the internal DXGI object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::ISwapChainD3D11.

+ +
+
+ +

◆ GetRTV()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11RenderTargetView* Diligent::SwapChainD3D11Impl::GetRTV ()
+
+inlinefinaloverridevirtual
+
+ +

Returns d3d11 render target view of the swap chain's back buffer.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::ISwapChainD3D11.

+ +
+
+ +

◆ Resize()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::SwapChainD3D11Impl::Resize (Uint32 NewWidth,
Uint32 NewHeight 
)
+
+finaloverridevirtual
+
+ +

Changes the swap chain's back buffer size.

+
Parameters
+ + + +
[in]NewWidth- New swap chain width, in pixels
[in]NewHeight- New swap chain height, in pixels
+
+
+ +

Implements Diligent::ISwapChain.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_swap_chain_d3_d11_impl.png b/doc/html/class_diligent_1_1_swap_chain_d3_d11_impl.png new file mode 100644 index 00000000..625b7330 Binary files /dev/null and b/doc/html/class_diligent_1_1_swap_chain_d3_d11_impl.png differ diff --git a/doc/html/class_diligent_1_1_swap_chain_d3_d12_impl-members.html b/doc/html/class_diligent_1_1_swap_chain_d3_d12_impl-members.html new file mode 100644 index 00000000..c1371b8a --- /dev/null +++ b/doc/html/class_diligent_1_1_swap_chain_d3_d12_impl-members.html @@ -0,0 +1,96 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::SwapChainD3D12Impl Member List
+
+
+ +

This is the complete list of members for Diligent::SwapChainD3D12Impl, including all inherited members.

+ + + + + + + + + + + +
GetCurrentBackBufferRTV() override finalDiligent::SwapChainD3D12Implvirtual
GetDepthBufferDSV() override finalDiligent::SwapChainD3D12Implinlinevirtual
GetDesc() const override finalDiligent::SwapChainBase< ISwapChainD3D12 >inlinevirtual
GetDXGISwapChain() override finalDiligent::SwapChainD3D12Implinlinevirtual
m_pRenderDeviceDiligent::SwapChainBase< ISwapChainD3D12 >protected
m_SwapChainDescDiligent::SwapChainBase< ISwapChainD3D12 >protected
m_wpDeviceContextDiligent::SwapChainBase< ISwapChainD3D12 >protected
Present()Diligent::SwapChainD3D12Implvirtual
Resize(Uint32 NewWidth, Uint32 NewHeight)Diligent::SwapChainD3D12Implvirtual
SwapChainBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, IDeviceContext *pDeviceContext, const SwapChainDesc &SCDesc)Diligent::SwapChainBase< ISwapChainD3D12 >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_swap_chain_d3_d12_impl.html b/doc/html/class_diligent_1_1_swap_chain_d3_d12_impl.html new file mode 100644 index 00000000..fd3ace4f --- /dev/null +++ b/doc/html/class_diligent_1_1_swap_chain_d3_d12_impl.html @@ -0,0 +1,285 @@ + + + + + + + +Diligent Engine API Reference: Diligent::SwapChainD3D12Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::SwapChainD3D12Impl Class Reference
+
+
+ +

Implementation of the Diligent::ISwapChainD3D12 interface. + More...

+
+Inheritance diagram for Diligent::SwapChainD3D12Impl:
+
+
+ + +Diligent::SwapChainBase< ISwapChainD3D12 > +Diligent::ObjectBase< ISwapChainD3D12 > +Diligent::RefCountedObject< ISwapChainD3D12 > +Diligent::ISwapChainD3D12 +Diligent::ISwapChain + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void Present ()
 Presents a rendered image to the user.
 
virtual void Resize (Uint32 NewWidth, Uint32 NewHeight)
 Changes the swap chain's back buffer size. More...
 
virtual IDXGISwapChain * GetDXGISwapChain () override final
 Returns a pointer to the IDXGISwapChain interface of the internal DXGI object. More...
 
virtual ITextureViewD3D12GetCurrentBackBufferRTV () override final
 Returns a pointer to the render target view of the current back buffer in the swap chain. More...
 
virtual ITextureViewD3D12GetDepthBufferDSV () override final
 Returns a pointer to the depth-stencil view of the depth buffer. More...
 
- Public Member Functions inherited from Diligent::SwapChainBase< ISwapChainD3D12 >
 SwapChainBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, IDeviceContext *pDeviceContext, const SwapChainDesc &SCDesc)
 
+virtual const SwapChainDescGetDesc () const override final
 Implementation of ISwapChain::GetDesc()
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::SwapChainBase< ISwapChainD3D12 >
+Diligent::RefCntAutoPtr< IRenderDevicem_pRenderDevice
 Strong reference to the render device.
 
+Diligent::RefCntWeakPtr< IDeviceContextm_wpDeviceContext
 Weak references to the immediate device context. The context holds the strong reference to the swap chain.
 
+SwapChainDesc m_SwapChainDesc
 Swap chain description.
 
+

Detailed Description

+

Implementation of the Diligent::ISwapChainD3D12 interface.

+

Member Function Documentation

+ +

◆ GetCurrentBackBufferRTV()

+ +
+
+ + + + + +
+ + + + + + + +
ITextureViewD3D12 * Diligent::SwapChainD3D12Impl::GetCurrentBackBufferRTV ()
+
+finaloverridevirtual
+
+ +

Returns a pointer to the render target view of the current back buffer in the swap chain.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::ISwapChainD3D12.

+ +
+
+ +

◆ GetDepthBufferDSV()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ITextureViewD3D12* Diligent::SwapChainD3D12Impl::GetDepthBufferDSV ()
+
+inlinefinaloverridevirtual
+
+ +

Returns a pointer to the depth-stencil view of the depth buffer.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::ISwapChainD3D12.

+ +
+
+ +

◆ GetDXGISwapChain()

+ +
+
+ + + + + +
+ + + + + + + +
virtual IDXGISwapChain* Diligent::SwapChainD3D12Impl::GetDXGISwapChain ()
+
+inlinefinaloverridevirtual
+
+ +

Returns a pointer to the IDXGISwapChain interface of the internal DXGI object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::ISwapChainD3D12.

+ +
+
+ +

◆ Resize()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::SwapChainD3D12Impl::Resize (Uint32 NewWidth,
Uint32 NewHeight 
)
+
+virtual
+
+ +

Changes the swap chain's back buffer size.

+
Parameters
+ + + +
[in]NewWidth- New swap chain width, in pixels
[in]NewHeight- New swap chain height, in pixels
+
+
+ +

Implements Diligent::ISwapChain.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_swap_chain_d3_d12_impl.png b/doc/html/class_diligent_1_1_swap_chain_d3_d12_impl.png new file mode 100644 index 00000000..97cd2cac Binary files /dev/null and b/doc/html/class_diligent_1_1_swap_chain_d3_d12_impl.png differ diff --git a/doc/html/class_diligent_1_1_swap_chain_g_l_impl-members.html b/doc/html/class_diligent_1_1_swap_chain_g_l_impl-members.html new file mode 100644 index 00000000..22bc8601 --- /dev/null +++ b/doc/html/class_diligent_1_1_swap_chain_g_l_impl-members.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::SwapChainGLImpl Member List
+
+
+ +

This is the complete list of members for Diligent::SwapChainGLImpl, including all inherited members.

+ + + + + + + + +
GetDesc() const override finalDiligent::SwapChainBase< ISwapChainGL >inlinevirtual
m_pRenderDeviceDiligent::SwapChainBase< ISwapChainGL >protected
m_SwapChainDescDiligent::SwapChainBase< ISwapChainGL >protected
m_wpDeviceContextDiligent::SwapChainBase< ISwapChainGL >protected
Present()Diligent::SwapChainGLImplvirtual
Resize(Uint32 NewWidth, Uint32 NewHeight)Diligent::SwapChainGLImplvirtual
SwapChainBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, IDeviceContext *pDeviceContext, const SwapChainDesc &SCDesc)Diligent::SwapChainBase< ISwapChainGL >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_swap_chain_g_l_impl.html b/doc/html/class_diligent_1_1_swap_chain_g_l_impl.html new file mode 100644 index 00000000..8c641399 --- /dev/null +++ b/doc/html/class_diligent_1_1_swap_chain_g_l_impl.html @@ -0,0 +1,186 @@ + + + + + + + +Diligent Engine API Reference: Diligent::SwapChainGLImpl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::SwapChainGLImpl Class Reference
+
+
+ +

Implementation of the Diligent::ISwapChainGL interface. + More...

+
+Inheritance diagram for Diligent::SwapChainGLImpl:
+
+
+ + +Diligent::SwapChainBase< ISwapChainGL > +Diligent::ObjectBase< ISwapChainGL > +Diligent::RefCountedObject< ISwapChainGL > +Diligent::ISwapChainGL +Diligent::ISwapChain + +
+ + + + + + + + + + + + + + +

+Public Member Functions

+virtual void Present ()
 Presents a rendered image to the user.
 
virtual void Resize (Uint32 NewWidth, Uint32 NewHeight)
 Changes the swap chain's back buffer size. More...
 
- Public Member Functions inherited from Diligent::SwapChainBase< ISwapChainGL >
 SwapChainBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, IDeviceContext *pDeviceContext, const SwapChainDesc &SCDesc)
 
+virtual const SwapChainDescGetDesc () const override final
 Implementation of ISwapChain::GetDesc()
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::SwapChainBase< ISwapChainGL >
+Diligent::RefCntAutoPtr< IRenderDevicem_pRenderDevice
 Strong reference to the render device.
 
+Diligent::RefCntWeakPtr< IDeviceContextm_wpDeviceContext
 Weak references to the immediate device context. The context holds the strong reference to the swap chain.
 
+SwapChainDesc m_SwapChainDesc
 Swap chain description.
 
+

Detailed Description

+

Implementation of the Diligent::ISwapChainGL interface.

+

Member Function Documentation

+ +

◆ Resize()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Diligent::SwapChainGLImpl::Resize (Uint32 NewWidth,
Uint32 NewHeight 
)
+
+virtual
+
+ +

Changes the swap chain's back buffer size.

+
Parameters
+ + + +
[in]NewWidth- New swap chain width, in pixels
[in]NewHeight- New swap chain height, in pixels
+
+
+ +

Implements Diligent::ISwapChain.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_swap_chain_g_l_impl.png b/doc/html/class_diligent_1_1_swap_chain_g_l_impl.png new file mode 100644 index 00000000..b709ef91 Binary files /dev/null and b/doc/html/class_diligent_1_1_swap_chain_g_l_impl.png differ diff --git a/doc/html/class_diligent_1_1_texture1_d___d3_d11-members.html b/doc/html/class_diligent_1_1_texture1_d___d3_d11-members.html new file mode 100644 index 00000000..a4b375d1 --- /dev/null +++ b/doc/html/class_diligent_1_1_texture1_d___d3_d11-members.html @@ -0,0 +1,108 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::Texture1D_D3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::Texture1D_D3D11, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + +
CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)Diligent::TextureBaseD3D11virtual
CreateDefaultViews()Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
CreateView(const struct TextureViewDesc &ViewDesc, ITextureView **ppView) overrideDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >inlinevirtual
CreateViewInternal(const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView) override finalDiligent::TextureBaseD3D11protectedvirtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc >inline
GetD3D11Texture() override finalDiligent::TextureBaseD3D11inlinevirtual
GetDefaultView(TEXTURE_VIEW_TYPE ViewType) overrideDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >inlineprotectedvirtual
GetNativeHandle() override finalDiligent::TextureBaseD3D11inlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< ITextureD3D11, TextureDesc >inline
m_DescDiligent::DeviceObjectBase< ITextureD3D11, TextureDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< ITextureD3D11, TextureDesc >protected
m_pd3d11TextureDiligent::TextureBaseD3D11protected
m_pDefaultDSVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
m_pDefaultRTVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
m_pDefaultSRVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
m_pDefaultUAVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override finalDiligent::TextureBaseD3D11virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override finalDiligent::TextureBaseD3D11virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
TextureBase(IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &TexViewObjAllocator, IRenderDevice *pDevice, const TextureDesc &Desc, bool bIsDeviceInternal=false)Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >inline
Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override finalDiligent::TextureBaseD3D11virtual
UpdateData(IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override finalDiligent::TextureBaseD3D11virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture1_d___d3_d11.html b/doc/html/class_diligent_1_1_texture1_d___d3_d11.html new file mode 100644 index 00000000..1e859dd8 --- /dev/null +++ b/doc/html/class_diligent_1_1_texture1_d___d3_d11.html @@ -0,0 +1,201 @@ + + + + + + + +Diligent Engine API Reference: Diligent::Texture1D_D3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::Texture1D_D3D11 Class Reference
+
+
+ +

Implementation of a 1D texture. + More...

+
+Inheritance diagram for Diligent::Texture1D_D3D11:
+
+
+ + +Diligent::TextureBaseD3D11 +Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator > +Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc > +Diligent::ObjectBase< ITextureD3D11 > +Diligent::RefCountedObject< ITextureD3D11 > +Diligent::ITextureD3D11 +Diligent::ITexture +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::TextureBaseD3D11
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual void UpdateData (IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override final
 Base implementaiton of ITexture::UpdateData(); validates input parameters.
 
+virtual void Map (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override final
 Base implementaiton of ITexture::Map()
 
+virtual void Unmap (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override final
 Base implementaiton of ITexture::Unmap()
 
virtual ID3D11Resource * GetD3D11Texture () override final
 Returns a pointer to the ID3D11Resource interface of the internal Direct3D11 object. More...
 
virtual void * GetNativeHandle () override final
 Returns native texture handle specific to the underlying graphics API. More...
 
+void CopyData (IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)
 Base implementaiton of ITexture::CopyData(); validates input parameters.
 
- Public Member Functions inherited from Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
 TextureBase (IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &TexViewObjAllocator, IRenderDevice *pDevice, const TextureDesc &Desc, bool bIsDeviceInternal=false)
 
+virtual void CreateView (const struct TextureViewDesc &ViewDesc, ITextureView **ppView) override
 Implementaiton of ITexture::CreateView(); calls CreateViewInternal() virtual function that creates texture view for the specific engine implementation.
 
void CreateDefaultViews ()
 Creates default texture views. More...
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const TextureDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
- Protected Member Functions inherited from Diligent::TextureBaseD3D11
+void CreateViewInternal (const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView) override final
 Pure virtual function that creates texture view for the specific engine implementation.
 
- Protected Member Functions inherited from Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
+ITextureViewGetDefaultView (TEXTURE_VIEW_TYPE ViewType) override
 Implementation of ITexture::GetDefaultView().
 
- Protected Attributes inherited from Diligent::TextureBaseD3D11
+CComPtr< ID3D11Resource > m_pd3d11Texture
 D3D11 texture.
 
- Protected Attributes inherited from Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultSRV
 Default SRV addressing the entire texture.
 
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultRTV
 Default RTV addressing the most detailed mip level.
 
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultDSV
 Default DSV addressing the most detailed mip level.
 
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultUAV
 Default UAV addressing the entire texture.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+TextureDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of a 1D texture.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture1_d___d3_d11.png b/doc/html/class_diligent_1_1_texture1_d___d3_d11.png new file mode 100644 index 00000000..d8f46cdb Binary files /dev/null and b/doc/html/class_diligent_1_1_texture1_d___d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_texture2_d___d3_d11-members.html b/doc/html/class_diligent_1_1_texture2_d___d3_d11-members.html new file mode 100644 index 00000000..7c6a5aba --- /dev/null +++ b/doc/html/class_diligent_1_1_texture2_d___d3_d11-members.html @@ -0,0 +1,108 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::Texture2D_D3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::Texture2D_D3D11, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + +
CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)Diligent::TextureBaseD3D11virtual
CreateDefaultViews()Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
CreateView(const struct TextureViewDesc &ViewDesc, ITextureView **ppView) overrideDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >inlinevirtual
CreateViewInternal(const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView) override finalDiligent::TextureBaseD3D11protectedvirtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc >inline
GetD3D11Texture() override finalDiligent::TextureBaseD3D11inlinevirtual
GetDefaultView(TEXTURE_VIEW_TYPE ViewType) overrideDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >inlineprotectedvirtual
GetNativeHandle() override finalDiligent::TextureBaseD3D11inlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< ITextureD3D11, TextureDesc >inline
m_DescDiligent::DeviceObjectBase< ITextureD3D11, TextureDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< ITextureD3D11, TextureDesc >protected
m_pd3d11TextureDiligent::TextureBaseD3D11protected
m_pDefaultDSVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
m_pDefaultRTVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
m_pDefaultSRVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
m_pDefaultUAVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override finalDiligent::TextureBaseD3D11virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override finalDiligent::TextureBaseD3D11virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
TextureBase(IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &TexViewObjAllocator, IRenderDevice *pDevice, const TextureDesc &Desc, bool bIsDeviceInternal=false)Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >inline
Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override finalDiligent::TextureBaseD3D11virtual
UpdateData(IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override finalDiligent::TextureBaseD3D11virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture2_d___d3_d11.html b/doc/html/class_diligent_1_1_texture2_d___d3_d11.html new file mode 100644 index 00000000..af882fe5 --- /dev/null +++ b/doc/html/class_diligent_1_1_texture2_d___d3_d11.html @@ -0,0 +1,201 @@ + + + + + + + +Diligent Engine API Reference: Diligent::Texture2D_D3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::Texture2D_D3D11 Class Reference
+
+
+ +

Implementation of a 2D texture. + More...

+
+Inheritance diagram for Diligent::Texture2D_D3D11:
+
+
+ + +Diligent::TextureBaseD3D11 +Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator > +Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc > +Diligent::ObjectBase< ITextureD3D11 > +Diligent::RefCountedObject< ITextureD3D11 > +Diligent::ITextureD3D11 +Diligent::ITexture +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::TextureBaseD3D11
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual void UpdateData (IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override final
 Base implementaiton of ITexture::UpdateData(); validates input parameters.
 
+virtual void Map (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override final
 Base implementaiton of ITexture::Map()
 
+virtual void Unmap (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override final
 Base implementaiton of ITexture::Unmap()
 
virtual ID3D11Resource * GetD3D11Texture () override final
 Returns a pointer to the ID3D11Resource interface of the internal Direct3D11 object. More...
 
virtual void * GetNativeHandle () override final
 Returns native texture handle specific to the underlying graphics API. More...
 
+void CopyData (IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)
 Base implementaiton of ITexture::CopyData(); validates input parameters.
 
- Public Member Functions inherited from Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
 TextureBase (IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &TexViewObjAllocator, IRenderDevice *pDevice, const TextureDesc &Desc, bool bIsDeviceInternal=false)
 
+virtual void CreateView (const struct TextureViewDesc &ViewDesc, ITextureView **ppView) override
 Implementaiton of ITexture::CreateView(); calls CreateViewInternal() virtual function that creates texture view for the specific engine implementation.
 
void CreateDefaultViews ()
 Creates default texture views. More...
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const TextureDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
- Protected Member Functions inherited from Diligent::TextureBaseD3D11
+void CreateViewInternal (const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView) override final
 Pure virtual function that creates texture view for the specific engine implementation.
 
- Protected Member Functions inherited from Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
+ITextureViewGetDefaultView (TEXTURE_VIEW_TYPE ViewType) override
 Implementation of ITexture::GetDefaultView().
 
- Protected Attributes inherited from Diligent::TextureBaseD3D11
+CComPtr< ID3D11Resource > m_pd3d11Texture
 D3D11 texture.
 
- Protected Attributes inherited from Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultSRV
 Default SRV addressing the entire texture.
 
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultRTV
 Default RTV addressing the most detailed mip level.
 
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultDSV
 Default DSV addressing the most detailed mip level.
 
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultUAV
 Default UAV addressing the entire texture.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+TextureDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of a 2D texture.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture2_d___d3_d11.png b/doc/html/class_diligent_1_1_texture2_d___d3_d11.png new file mode 100644 index 00000000..48ddb12e Binary files /dev/null and b/doc/html/class_diligent_1_1_texture2_d___d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_texture3_d___d3_d11-members.html b/doc/html/class_diligent_1_1_texture3_d___d3_d11-members.html new file mode 100644 index 00000000..53fb82e9 --- /dev/null +++ b/doc/html/class_diligent_1_1_texture3_d___d3_d11-members.html @@ -0,0 +1,108 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::Texture3D_D3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::Texture3D_D3D11, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + +
CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)Diligent::TextureBaseD3D11virtual
CreateDefaultViews()Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
CreateView(const struct TextureViewDesc &ViewDesc, ITextureView **ppView) overrideDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >inlinevirtual
CreateViewInternal(const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView) override finalDiligent::TextureBaseD3D11protectedvirtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc >inline
GetD3D11Texture() override finalDiligent::TextureBaseD3D11inlinevirtual
GetDefaultView(TEXTURE_VIEW_TYPE ViewType) overrideDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >inlineprotectedvirtual
GetNativeHandle() override finalDiligent::TextureBaseD3D11inlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< ITextureD3D11, TextureDesc >inline
m_DescDiligent::DeviceObjectBase< ITextureD3D11, TextureDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< ITextureD3D11, TextureDesc >protected
m_pd3d11TextureDiligent::TextureBaseD3D11protected
m_pDefaultDSVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
m_pDefaultRTVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
m_pDefaultSRVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
m_pDefaultUAVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override finalDiligent::TextureBaseD3D11virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override finalDiligent::TextureBaseD3D11virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
TextureBase(IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &TexViewObjAllocator, IRenderDevice *pDevice, const TextureDesc &Desc, bool bIsDeviceInternal=false)Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >inline
Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override finalDiligent::TextureBaseD3D11virtual
UpdateData(IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override finalDiligent::TextureBaseD3D11virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture3_d___d3_d11.html b/doc/html/class_diligent_1_1_texture3_d___d3_d11.html new file mode 100644 index 00000000..0e74c78a --- /dev/null +++ b/doc/html/class_diligent_1_1_texture3_d___d3_d11.html @@ -0,0 +1,201 @@ + + + + + + + +Diligent Engine API Reference: Diligent::Texture3D_D3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::Texture3D_D3D11 Class Reference
+
+
+ +

Implementation of a 3D texture. + More...

+
+Inheritance diagram for Diligent::Texture3D_D3D11:
+
+
+ + +Diligent::TextureBaseD3D11 +Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator > +Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc > +Diligent::ObjectBase< ITextureD3D11 > +Diligent::RefCountedObject< ITextureD3D11 > +Diligent::ITextureD3D11 +Diligent::ITexture +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from Diligent::TextureBaseD3D11
+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual void UpdateData (IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override final
 Base implementaiton of ITexture::UpdateData(); validates input parameters.
 
+virtual void Map (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override final
 Base implementaiton of ITexture::Map()
 
+virtual void Unmap (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override final
 Base implementaiton of ITexture::Unmap()
 
virtual ID3D11Resource * GetD3D11Texture () override final
 Returns a pointer to the ID3D11Resource interface of the internal Direct3D11 object. More...
 
virtual void * GetNativeHandle () override final
 Returns native texture handle specific to the underlying graphics API. More...
 
+void CopyData (IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)
 Base implementaiton of ITexture::CopyData(); validates input parameters.
 
- Public Member Functions inherited from Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
 TextureBase (IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &TexViewObjAllocator, IRenderDevice *pDevice, const TextureDesc &Desc, bool bIsDeviceInternal=false)
 
+virtual void CreateView (const struct TextureViewDesc &ViewDesc, ITextureView **ppView) override
 Implementaiton of ITexture::CreateView(); calls CreateViewInternal() virtual function that creates texture view for the specific engine implementation.
 
void CreateDefaultViews ()
 Creates default texture views. More...
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const TextureDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
- Protected Member Functions inherited from Diligent::TextureBaseD3D11
+void CreateViewInternal (const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView) override final
 Pure virtual function that creates texture view for the specific engine implementation.
 
- Protected Member Functions inherited from Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
+ITextureViewGetDefaultView (TEXTURE_VIEW_TYPE ViewType) override
 Implementation of ITexture::GetDefaultView().
 
- Protected Attributes inherited from Diligent::TextureBaseD3D11
+CComPtr< ID3D11Resource > m_pd3d11Texture
 D3D11 texture.
 
- Protected Attributes inherited from Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultSRV
 Default SRV addressing the entire texture.
 
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultRTV
 Default RTV addressing the most detailed mip level.
 
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultDSV
 Default DSV addressing the most detailed mip level.
 
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultUAV
 Default UAV addressing the entire texture.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+TextureDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of a 3D texture.

+
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture3_d___d3_d11.png b/doc/html/class_diligent_1_1_texture3_d___d3_d11.png new file mode 100644 index 00000000..69b7d05d Binary files /dev/null and b/doc/html/class_diligent_1_1_texture3_d___d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_texture_base-members.html b/doc/html/class_diligent_1_1_texture_base-members.html new file mode 100644 index 00000000..f5ddc263 --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_base-members.html @@ -0,0 +1,103 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator > Member List
+
+
+ +

This is the complete list of members for Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ) override=0Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >pure virtual
CreateDefaultViews()Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >
CreateView(const struct TextureViewDesc &ViewDesc, ITextureView **ppView) overrideDiligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >inlinevirtual
CreateViewInternal(const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView)=0Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >protectedpure virtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< BaseInterface, TextureDesc >inline
GetDefaultView(TEXTURE_VIEW_TYPE ViewType) overrideDiligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >inlineprotected
GetUniqueID() constDiligent::DeviceObjectBase< BaseInterface, TextureDesc >inline
m_DescDiligent::DeviceObjectBase< BaseInterface, TextureDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< BaseInterface, TextureDesc >protected
m_pDefaultDSVDiligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >protected
m_pDefaultRTVDiligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >protected
m_pDefaultSRVDiligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >protected
m_pDefaultUAVDiligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >protected
Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override=0Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >pure virtual
TextureBase(IReferenceCounters *pRefCounters, TTexViewObjAllocator &TexViewObjAllocator, IRenderDevice *pDevice, const TextureDesc &Desc, bool bIsDeviceInternal=false)Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >inline
Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override=0Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >pure virtual
UpdateData(IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override=0Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >pure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_base.html b/doc/html/class_diligent_1_1_texture_base.html new file mode 100644 index 00000000..7971111e --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_base.html @@ -0,0 +1,284 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator > Class Template Referenceabstract
+
+
+ +

Base implementation of the ITexture interface. + More...

+
+Inheritance diagram for Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >:
+
+
+ + +Diligent::DeviceObjectBase< BaseInterface, TextureDesc > +Diligent::ObjectBase< BaseInterface > +Diligent::RefCountedObject< BaseInterface > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 TextureBase (IReferenceCounters *pRefCounters, TTexViewObjAllocator &TexViewObjAllocator, IRenderDevice *pDevice, const TextureDesc &Desc, bool bIsDeviceInternal=false)
 
+virtual void CreateView (const struct TextureViewDesc &ViewDesc, ITextureView **ppView) override
 Implementaiton of ITexture::CreateView(); calls CreateViewInternal() virtual function that creates texture view for the specific engine implementation.
 
+virtual void UpdateData (IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override=0
 Base implementaiton of ITexture::UpdateData(); validates input parameters.
 
+virtual void CopyData (IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ) override=0
 Base implementaiton of ITexture::CopyData(); validates input parameters.
 
+virtual void Map (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override=0
 Base implementaiton of ITexture::Map()
 
+virtual void Unmap (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override=0
 Base implementaiton of ITexture::Unmap()
 
void CreateDefaultViews ()
 Creates default texture views. More...
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< BaseInterface, TextureDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureDesc &ObjDesc, bool bIsDeviceInternal=false)
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
+ + + + + + + +

+Protected Member Functions

+virtual void CreateViewInternal (const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView)=0
 Pure virtual function that creates texture view for the specific engine implementation.
 
+ITextureViewGetDefaultView (TEXTURE_VIEW_TYPE ViewType) override
 Implementation of ITexture::GetDefaultView().
 
+ + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+std::unique_ptr< TTextureViewImpl, STDDeleter< TTextureViewImpl, TTexViewObjAllocator > > m_pDefaultSRV
 Default SRV addressing the entire texture.
 
+std::unique_ptr< TTextureViewImpl, STDDeleter< TTextureViewImpl, TTexViewObjAllocator > > m_pDefaultRTV
 Default RTV addressing the most detailed mip level.
 
+std::unique_ptr< TTextureViewImpl, STDDeleter< TTextureViewImpl, TTexViewObjAllocator > > m_pDefaultDSV
 Default DSV addressing the most detailed mip level.
 
+std::unique_ptr< TTextureViewImpl, STDDeleter< TTextureViewImpl, TTexViewObjAllocator > > m_pDefaultUAV
 Default UAV addressing the entire texture.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< BaseInterface, TextureDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+TextureDesc m_Desc
 Object description.
 
+

Detailed Description

+

template<class BaseInterface, class TTextureViewImpl, class TTexViewObjAllocator>
+class Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >

+ +

Base implementation of the ITexture interface.

+
Template Parameters
+ + + + +
BaseInterface- base interface that this class will inheret (Diligent::ITextureD3D11, Diligent::ITextureD3D12 or Diligent::ITextureGL).
TTextureViewImpl- type of the texture view implementation (Diligent::TextureViewD3D11Impl, Diligent::TextureViewD3D12Impl or Diligent::TextureViewGLImpl).
TTexViewObjAllocator- type of the allocator that is used to allocate memory for the texture view object instances
+
+
+

Constructor & Destructor Documentation

+ +

◆ TextureBase()

+ +
+
+
+template<class BaseInterface, class TTextureViewImpl, class TTexViewObjAllocator>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >::TextureBase (IReferenceCounters * pRefCounters,
TTexViewObjAllocator & TexViewObjAllocator,
IRenderDevicepDevice,
const TextureDescDesc,
bool bIsDeviceInternal = false 
)
+
+inline
+
+
Parameters
+ + + + + + +
pRefCounters- reference counters object that controls the lifetime of this texture.
TexViewObjAllocator- allocator that is used to allocate memory for the instances of the texture view object. This parameter is only used for debug purposes.
pDevice- pointer to the device
Desc- texture description
bIsDeviceInternal- flag indicating if the texture is an internal device object and must not keep a strong reference to the device
+
+
+ +
+
+

Member Function Documentation

+ +

◆ CreateDefaultViews()

+ +
+
+
+template<class BaseInterface , class TTextureViewImpl , class TTexViewObjAllocator >
+ + + + + + + +
void Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >::CreateDefaultViews ()
+
+ +

Creates default texture views.

+ +

The function calls CreateViewInternal().

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_base.png b/doc/html/class_diligent_1_1_texture_base.png new file mode 100644 index 00000000..280233cf Binary files /dev/null and b/doc/html/class_diligent_1_1_texture_base.png differ diff --git a/doc/html/class_diligent_1_1_texture_base_d3_d11-members.html b/doc/html/class_diligent_1_1_texture_base_d3_d11-members.html new file mode 100644 index 00000000..01f4f437 --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_base_d3_d11-members.html @@ -0,0 +1,108 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::TextureBaseD3D11 Member List
+
+
+ +

This is the complete list of members for Diligent::TextureBaseD3D11, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + +
CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)Diligent::TextureBaseD3D11virtual
CreateDefaultViews()Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
CreateView(const struct TextureViewDesc &ViewDesc, ITextureView **ppView) overrideDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >inlinevirtual
CreateViewInternal(const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView) override finalDiligent::TextureBaseD3D11protectedvirtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc >inline
GetD3D11Texture() override finalDiligent::TextureBaseD3D11inlinevirtual
GetDefaultView(TEXTURE_VIEW_TYPE ViewType) overrideDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >inlineprotectedvirtual
GetNativeHandle() override finalDiligent::TextureBaseD3D11inlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< ITextureD3D11, TextureDesc >inline
m_DescDiligent::DeviceObjectBase< ITextureD3D11, TextureDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< ITextureD3D11, TextureDesc >protected
m_pd3d11TextureDiligent::TextureBaseD3D11protected
m_pDefaultDSVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
m_pDefaultRTVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
m_pDefaultSRVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
m_pDefaultUAVDiligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >protected
Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override finalDiligent::TextureBaseD3D11virtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override finalDiligent::TextureBaseD3D11virtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
TextureBase(IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &TexViewObjAllocator, IRenderDevice *pDevice, const TextureDesc &Desc, bool bIsDeviceInternal=false)Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >inline
Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override finalDiligent::TextureBaseD3D11virtual
UpdateData(IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override finalDiligent::TextureBaseD3D11virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_base_d3_d11.html b/doc/html/class_diligent_1_1_texture_base_d3_d11.html new file mode 100644 index 00000000..025102f3 --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_base_d3_d11.html @@ -0,0 +1,272 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureBaseD3D11 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::TextureBaseD3D11 Class Referenceabstract
+
+
+ +

Base implementation of the Diligent::ITextureD3D11 interface. + More...

+
+Inheritance diagram for Diligent::TextureBaseD3D11:
+
+
+ + +Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator > +Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc > +Diligent::ObjectBase< ITextureD3D11 > +Diligent::RefCountedObject< ITextureD3D11 > +Diligent::ITextureD3D11 +Diligent::ITexture +Diligent::IDeviceObject +Diligent::Texture1D_D3D11 +Diligent::Texture2D_D3D11 +Diligent::Texture3D_D3D11 + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual void UpdateData (IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override final
 Base implementaiton of ITexture::UpdateData(); validates input parameters.
 
+virtual void Map (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override final
 Base implementaiton of ITexture::Map()
 
+virtual void Unmap (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override final
 Base implementaiton of ITexture::Unmap()
 
virtual ID3D11Resource * GetD3D11Texture () override final
 Returns a pointer to the ID3D11Resource interface of the internal Direct3D11 object. More...
 
virtual void * GetNativeHandle () override final
 Returns native texture handle specific to the underlying graphics API. More...
 
+void CopyData (IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)
 Base implementaiton of ITexture::CopyData(); validates input parameters.
 
- Public Member Functions inherited from Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
 TextureBase (IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &TexViewObjAllocator, IRenderDevice *pDevice, const TextureDesc &Desc, bool bIsDeviceInternal=false)
 
+virtual void CreateView (const struct TextureViewDesc &ViewDesc, ITextureView **ppView) override
 Implementaiton of ITexture::CreateView(); calls CreateViewInternal() virtual function that creates texture view for the specific engine implementation.
 
void CreateDefaultViews ()
 Creates default texture views. More...
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const TextureDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + +

+Protected Member Functions

+void CreateViewInternal (const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView) override final
 Pure virtual function that creates texture view for the specific engine implementation.
 
- Protected Member Functions inherited from Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
+ITextureViewGetDefaultView (TEXTURE_VIEW_TYPE ViewType) override
 Implementation of ITexture::GetDefaultView().
 
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+CComPtr< ID3D11Resource > m_pd3d11Texture
 D3D11 texture.
 
- Protected Attributes inherited from Diligent::TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultSRV
 Default SRV addressing the entire texture.
 
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultRTV
 Default RTV addressing the most detailed mip level.
 
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultDSV
 Default DSV addressing the most detailed mip level.
 
+std::unique_ptr< TextureViewD3D11Impl, STDDeleter< TextureViewD3D11Impl, FixedBlockMemoryAllocator > > m_pDefaultUAV
 Default UAV addressing the entire texture.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< ITextureD3D11, TextureDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+TextureDesc m_Desc
 Object description.
 
+

Detailed Description

+

Base implementation of the Diligent::ITextureD3D11 interface.

+

Member Function Documentation

+ +

◆ GetD3D11Texture()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11Resource* Diligent::TextureBaseD3D11::GetD3D11Texture ()
+
+inlinefinaloverridevirtual
+
+ +

Returns a pointer to the ID3D11Resource interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::ITextureD3D11.

+ +
+
+ +

◆ GetNativeHandle()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void* Diligent::TextureBaseD3D11::GetNativeHandle ()
+
+inlinefinaloverridevirtual
+
+ +

Returns native texture handle specific to the underlying graphics API.

+
Returns
pointer to ID3D11Resource interface, for D3D11 implementation
+ pointer to ID3D12Resource interface, for D3D12 implementation
+ GL buffer handle, for GL implementation
+ +

Implements Diligent::ITexture.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_base_d3_d11.png b/doc/html/class_diligent_1_1_texture_base_d3_d11.png new file mode 100644 index 00000000..123acab5 Binary files /dev/null and b/doc/html/class_diligent_1_1_texture_base_d3_d11.png differ diff --git a/doc/html/class_diligent_1_1_texture_base_g_l-members.html b/doc/html/class_diligent_1_1_texture_base_g_l-members.html new file mode 100644 index 00000000..6e823870 --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_base_g_l-members.html @@ -0,0 +1,108 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::TextureBaseGL Member List
+
+
+ +

This is the complete list of members for Diligent::TextureBaseGL, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + +
CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ) overrideDiligent::TextureBaseGLvirtual
CreateDefaultViews()Diligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >
CreateView(const struct TextureViewDesc &ViewDesc, ITextureView **ppView) overrideDiligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >inlinevirtual
CreateViewInternal(const struct TextureViewDesc &ViewDesc, class ITextureView **ppView, bool bIsDefaultView) overrideDiligent::TextureBaseGLprotectedvirtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< ITextureGL, TextureDesc >inline
GetBindTarget() const override finalDiligent::TextureBaseGLinlinevirtual
GetDefaultView(TEXTURE_VIEW_TYPE ViewType) overrideDiligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >inlineprotectedvirtual
GetGLTextureHandle() override finalDiligent::TextureBaseGLinlinevirtual
GetNativeHandle() override finalDiligent::TextureBaseGLinlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< ITextureGL, TextureDesc >inline
m_DescDiligent::DeviceObjectBase< ITextureGL, TextureDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< ITextureGL, TextureDesc >protected
m_pDefaultDSVDiligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >protected
m_pDefaultRTVDiligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >protected
m_pDefaultSRVDiligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >protected
m_pDefaultUAVDiligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >protected
Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) overrideDiligent::TextureBaseGLvirtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) overrideDiligent::TextureBaseGLvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
TextureBase(IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &TexViewObjAllocator, IRenderDevice *pDevice, const TextureDesc &Desc, bool bIsDeviceInternal=false)Diligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >inline
Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) overrideDiligent::TextureBaseGLvirtual
TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >::UpdateData(IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override=0Diligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >pure virtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_base_g_l.html b/doc/html/class_diligent_1_1_texture_base_g_l.html new file mode 100644 index 00000000..66b494d6 --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_base_g_l.html @@ -0,0 +1,239 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureBaseGL Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::TextureBaseGL Class Referenceabstract
+
+
+ +

Base implementation of the Diligent::ITextureGL interface. + More...

+
+Inheritance diagram for Diligent::TextureBaseGL:
+
+
+ + +Diligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator > +Diligent::DeviceObjectBase< ITextureGL, TextureDesc > +Diligent::ObjectBase< ITextureGL > +Diligent::RefCountedObject< ITextureGL > +Diligent::ITextureGL +Diligent::ITexture +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual void Map (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override
 Base implementaiton of ITexture::Map()
 
+virtual void Unmap (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override
 Base implementaiton of ITexture::Unmap()
 
+virtual GLenum GetBindTarget () const override final
 Returns bind target of the native OpenGL texture.
 
+virtual void CopyData (IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ) override
 Base implementaiton of ITexture::CopyData(); validates input parameters.
 
+virtual GLuint GetGLTextureHandle () override final
 Returns OpenGL texture handle.
 
virtual void * GetNativeHandle () override final
 Returns native texture handle specific to the underlying graphics API. More...
 
- Public Member Functions inherited from Diligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >
 TextureBase (IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &TexViewObjAllocator, IRenderDevice *pDevice, const TextureDesc &Desc, bool bIsDeviceInternal=false)
 
+virtual void CreateView (const struct TextureViewDesc &ViewDesc, ITextureView **ppView) override
 Implementaiton of ITexture::CreateView(); calls CreateViewInternal() virtual function that creates texture view for the specific engine implementation.
 
+virtual void UpdateData (IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override=0
 Base implementaiton of ITexture::UpdateData(); validates input parameters.
 
void CreateDefaultViews ()
 Creates default texture views. More...
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< ITextureGL, TextureDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const TextureDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + +

+Protected Member Functions

+virtual void CreateViewInternal (const struct TextureViewDesc &ViewDesc, class ITextureView **ppView, bool bIsDefaultView) override
 Pure virtual function that creates texture view for the specific engine implementation.
 
- Protected Member Functions inherited from Diligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >
+ITextureViewGetDefaultView (TEXTURE_VIEW_TYPE ViewType) override
 Implementation of ITexture::GetDefaultView().
 
+ + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >
+std::unique_ptr< TextureViewGLImpl, STDDeleter< TextureViewGLImpl, FixedBlockMemoryAllocator > > m_pDefaultSRV
 Default SRV addressing the entire texture.
 
+std::unique_ptr< TextureViewGLImpl, STDDeleter< TextureViewGLImpl, FixedBlockMemoryAllocator > > m_pDefaultRTV
 Default RTV addressing the most detailed mip level.
 
+std::unique_ptr< TextureViewGLImpl, STDDeleter< TextureViewGLImpl, FixedBlockMemoryAllocator > > m_pDefaultDSV
 Default DSV addressing the most detailed mip level.
 
+std::unique_ptr< TextureViewGLImpl, STDDeleter< TextureViewGLImpl, FixedBlockMemoryAllocator > > m_pDefaultUAV
 Default UAV addressing the entire texture.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< ITextureGL, TextureDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+TextureDesc m_Desc
 Object description.
 
+

Detailed Description

+

Base implementation of the Diligent::ITextureGL interface.

+

Member Function Documentation

+ +

◆ GetNativeHandle()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void* Diligent::TextureBaseGL::GetNativeHandle ()
+
+inlinefinaloverridevirtual
+
+ +

Returns native texture handle specific to the underlying graphics API.

+
Returns
pointer to ID3D11Resource interface, for D3D11 implementation
+ pointer to ID3D12Resource interface, for D3D12 implementation
+ GL buffer handle, for GL implementation
+ +

Implements Diligent::ITexture.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_base_g_l.png b/doc/html/class_diligent_1_1_texture_base_g_l.png new file mode 100644 index 00000000..9c350313 Binary files /dev/null and b/doc/html/class_diligent_1_1_texture_base_g_l.png differ diff --git a/doc/html/class_diligent_1_1_texture_d3_d12_impl-members.html b/doc/html/class_diligent_1_1_texture_d3_d12_impl-members.html new file mode 100644 index 00000000..2f28bf02 --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_d3_d12_impl-members.html @@ -0,0 +1,109 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::TextureD3D12Impl Member List
+
+
+ +

This is the complete list of members for Diligent::TextureD3D12Impl, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + +
CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)Diligent::TextureD3D12Implvirtual
CreateDefaultViews()Diligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >
CreateView(const struct TextureViewDesc &ViewDesc, ITextureView **ppView) overrideDiligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >inlinevirtual
CreateViewInternal(const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView) overrideDiligent::TextureD3D12Implprotectedvirtual
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< ITextureD3D12, TextureDesc >inline
GetD3D12Texture()Diligent::TextureD3D12Implinlinevirtual
GetDefaultView(TEXTURE_VIEW_TYPE ViewType) overrideDiligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >inlineprotectedvirtual
GetNativeHandle() override finalDiligent::TextureD3D12Implinlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< ITextureD3D12, TextureDesc >inline
m_DescDiligent::DeviceObjectBase< ITextureD3D12, TextureDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< ITextureD3D12, TextureDesc >protected
m_pd3d12ResourceDiligent::D3D12ResourceBaseprotected
m_pDefaultDSVDiligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >protected
m_pDefaultRTVDiligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >protected
m_pDefaultSRVDiligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >protected
m_pDefaultUAVDiligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >protected
Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) overrideDiligent::TextureD3D12Implvirtual
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) overrideDiligent::TextureD3D12Implvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
SetD3D12ResourceState(D3D12_RESOURCE_STATES state) override finalDiligent::TextureD3D12Implinlinevirtual
TextureBase(IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &TexViewObjAllocator, IRenderDevice *pDevice, const TextureDesc &Desc, bool bIsDeviceInternal=false)Diligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >inline
Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) overrideDiligent::TextureD3D12Implvirtual
UpdateData(IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) overrideDiligent::TextureD3D12Implvirtual
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_d3_d12_impl.html b/doc/html/class_diligent_1_1_texture_d3_d12_impl.html new file mode 100644 index 00000000..5703681a --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_d3_d12_impl.html @@ -0,0 +1,309 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureD3D12Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::TextureD3D12Impl Class Reference
+
+
+ +

Base implementation of the Diligent::ITextureD3D12 interface. + More...

+
+Inheritance diagram for Diligent::TextureD3D12Impl:
+
+
+ + +Diligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator > +Diligent::D3D12ResourceBase +Diligent::DeviceObjectBase< ITextureD3D12, TextureDesc > +Diligent::ObjectBase< ITextureD3D12 > +Diligent::RefCountedObject< ITextureD3D12 > +Diligent::ITextureD3D12 +Diligent::ITexture +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+virtual void UpdateData (IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override
 Base implementaiton of ITexture::UpdateData(); validates input parameters.
 
+virtual void Map (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override
 Base implementaiton of ITexture::Map()
 
+virtual void Unmap (IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override
 Base implementaiton of ITexture::Unmap()
 
virtual ID3D12Resource * GetD3D12Texture ()
 Returns a pointer to the ID3D12Resource interface of the internal Direct3D12 object. More...
 
virtual void * GetNativeHandle () override final
 Returns native texture handle specific to the underlying graphics API. More...
 
virtual void SetD3D12ResourceState (D3D12_RESOURCE_STATES state) override final
 Sets the texture usage state. More...
 
+void CopyData (IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)
 Base implementaiton of ITexture::CopyData(); validates input parameters.
 
- Public Member Functions inherited from Diligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >
 TextureBase (IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &TexViewObjAllocator, IRenderDevice *pDevice, const TextureDesc &Desc, bool bIsDeviceInternal=false)
 
+virtual void CreateView (const struct TextureViewDesc &ViewDesc, ITextureView **ppView) override
 Implementaiton of ITexture::CreateView(); calls CreateViewInternal() virtual function that creates texture view for the specific engine implementation.
 
void CreateDefaultViews ()
 Creates default texture views. More...
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< ITextureD3D12, TextureDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const TextureDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + +

+Protected Member Functions

+void CreateViewInternal (const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView) override
 Pure virtual function that creates texture view for the specific engine implementation.
 
- Protected Member Functions inherited from Diligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >
+ITextureViewGetDefaultView (TEXTURE_VIEW_TYPE ViewType) override
 Implementation of ITexture::GetDefaultView().
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >
+std::unique_ptr< TextureViewD3D12Impl, STDDeleter< TextureViewD3D12Impl, FixedBlockMemoryAllocator > > m_pDefaultSRV
 Default SRV addressing the entire texture.
 
+std::unique_ptr< TextureViewD3D12Impl, STDDeleter< TextureViewD3D12Impl, FixedBlockMemoryAllocator > > m_pDefaultRTV
 Default RTV addressing the most detailed mip level.
 
+std::unique_ptr< TextureViewD3D12Impl, STDDeleter< TextureViewD3D12Impl, FixedBlockMemoryAllocator > > m_pDefaultDSV
 Default DSV addressing the most detailed mip level.
 
+std::unique_ptr< TextureViewD3D12Impl, STDDeleter< TextureViewD3D12Impl, FixedBlockMemoryAllocator > > m_pDefaultUAV
 Default UAV addressing the entire texture.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< ITextureD3D12, TextureDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+TextureDesc m_Desc
 Object description.
 
- Protected Attributes inherited from Diligent::D3D12ResourceBase
+CComPtr< ID3D12Resource > m_pd3d12Resource
 D3D12 buffer object.
 
+

Detailed Description

+

Base implementation of the Diligent::ITextureD3D12 interface.

+

Member Function Documentation

+ +

◆ GetD3D12Texture()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D12Resource* Diligent::TextureD3D12Impl::GetD3D12Texture ()
+
+inlinevirtual
+
+ +

Returns a pointer to the ID3D12Resource interface of the internal Direct3D12 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::ITextureD3D12.

+ +
+
+ +

◆ GetNativeHandle()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void* Diligent::TextureD3D12Impl::GetNativeHandle ()
+
+inlinefinaloverridevirtual
+
+ +

Returns native texture handle specific to the underlying graphics API.

+
Returns
pointer to ID3D11Resource interface, for D3D11 implementation
+ pointer to ID3D12Resource interface, for D3D12 implementation
+ GL buffer handle, for GL implementation
+ +

Implements Diligent::ITexture.

+ +
+
+ +

◆ SetD3D12ResourceState()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Diligent::TextureD3D12Impl::SetD3D12ResourceState (D3D12_RESOURCE_STATES state)
+
+inlinefinaloverridevirtual
+
+ +

Sets the texture usage state.

+
Parameters
+ + +
[in]state- D3D12 resource state to be set for this texture
+
+
+ +

Implements Diligent::ITextureD3D12.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_d3_d12_impl.png b/doc/html/class_diligent_1_1_texture_d3_d12_impl.png new file mode 100644 index 00000000..d0c5d194 Binary files /dev/null and b/doc/html/class_diligent_1_1_texture_d3_d12_impl.png differ diff --git a/doc/html/class_diligent_1_1_texture_view_base-members.html b/doc/html/class_diligent_1_1_texture_view_base-members.html new file mode 100644 index 00000000..fb3343ec --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_view_base-members.html @@ -0,0 +1,97 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::TextureViewBase< BaseInterface > Member List
+
+
+ +

This is the complete list of members for Diligent::TextureViewBase< BaseInterface >, including all inherited members.

+ + + + + + + + + + + + +
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< BaseInterface, TextureViewDesc >inline
GetSampler() override finalDiligent::TextureViewBase< BaseInterface >inlinevirtual
GetTexture() override finalDiligent::TextureViewBase< BaseInterface >inlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< BaseInterface, TextureViewDesc >inline
m_DescDiligent::DeviceObjectBase< BaseInterface, TextureViewDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< BaseInterface, TextureViewDesc >protected
m_pSamplerDiligent::TextureViewBase< BaseInterface >protected
m_pTextureDiligent::TextureViewBase< BaseInterface >protected
m_spTextureDiligent::TextureViewBase< BaseInterface >protected
SetSampler(class ISampler *pSampler) override finalDiligent::TextureViewBase< BaseInterface >inlinevirtual
TextureViewBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ViewDesc, class ITexture *pTexture, bool bIsDefaultView)Diligent::TextureViewBase< BaseInterface >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_view_base.html b/doc/html/class_diligent_1_1_texture_view_base.html new file mode 100644 index 00000000..f943841b --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_view_base.html @@ -0,0 +1,226 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureViewBase< BaseInterface > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::TextureViewBase< BaseInterface > Class Template Reference
+
+
+ +

Template class implementing base functionality for a texture view interface. + More...

+
+Inheritance diagram for Diligent::TextureViewBase< BaseInterface >:
+
+
+ + +Diligent::DeviceObjectBase< BaseInterface, TextureViewDesc > +Diligent::ObjectBase< BaseInterface > +Diligent::RefCountedObject< BaseInterface > + +
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 TextureViewBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ViewDesc, class ITexture *pTexture, bool bIsDefaultView)
 
+virtual void SetSampler (class ISampler *pSampler) override final
 Implementation of ITextureView::SetSampler()
 
+virtual ISamplerGetSampler () override final
 Implementation of ITextureView::GetSampler()
 
+virtual ITextureGetTexture () override final
 Implementation of ITextureView::GetTexture()
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< BaseInterface, TextureViewDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ObjDesc, bool bIsDeviceInternal=false)
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
+ + + + + + + + + + + + + + + + + +

+Protected Attributes

+Diligent::RefCntAutoPtr< ISamplerm_pSampler
 Strong reference to the sampler.
 
+ITexturem_pTexture
 Raw pointer to the texture.
 
+Diligent::RefCntAutoPtr< ITexturem_spTexture
 Strong reference to the texture. Used for non-default views to keep the texture alive.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< BaseInterface, TextureViewDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+TextureViewDesc m_Desc
 Object description.
 
+

Detailed Description

+

template<class BaseInterface>
+class Diligent::TextureViewBase< BaseInterface >

+ +

Template class implementing base functionality for a texture view interface.

+
Template Parameters
+ + +
BaseInterface- base interface that this class will inheret (Diligent::ITextureViewD3D11, Diligent::ITextureViewD3D12 or Diligent::ITextureViewGL).
+
+
+

Constructor & Destructor Documentation

+ +

◆ TextureViewBase()

+ +
+
+
+template<class BaseInterface>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Diligent::TextureViewBase< BaseInterface >::TextureViewBase (IReferenceCounters * pRefCounters,
IRenderDevicepDevice,
const TextureViewDescViewDesc,
class ITexturepTexture,
bool bIsDefaultView 
)
+
+inline
+
+
Parameters
+ + + + + + +
pRefCounters- reference counters object that controls the lifetime of this texture view.
pDevice- pointer to the render device.
ViewDesc- texture view description.
pTexture- pointer to the texture that the view is to be created for.
bIsDefaultView- flag indicating if the view is default view, and is thus part of the texture object. In this case the view will attach to the texture's reference counters.
+
+
+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_view_base.png b/doc/html/class_diligent_1_1_texture_view_base.png new file mode 100644 index 00000000..c6e8f771 Binary files /dev/null and b/doc/html/class_diligent_1_1_texture_view_base.png differ diff --git a/doc/html/class_diligent_1_1_texture_view_d3_d11_impl-members.html b/doc/html/class_diligent_1_1_texture_view_d3_d11_impl-members.html new file mode 100644 index 00000000..016c19a7 --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_view_d3_d11_impl-members.html @@ -0,0 +1,102 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::TextureViewD3D11Impl Member List
+
+
+ +

This is the complete list of members for Diligent::TextureViewD3D11Impl, including all inherited members.

+ + + + + + + + + + + + + + + + + +
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< ITextureViewD3D11, TextureViewDesc >inline
GenerateMips(IDeviceContext *pContext) override finalDiligent::TextureViewD3D11Implvirtual
GetD3D11View() override finalDiligent::TextureViewD3D11Implinlinevirtual
GetSampler() override finalDiligent::TextureViewBase< ITextureViewD3D11 >inlinevirtual
GetTexture() override finalDiligent::TextureViewBase< ITextureViewD3D11 >inlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< ITextureViewD3D11, TextureViewDesc >inline
m_DescDiligent::DeviceObjectBase< ITextureViewD3D11, TextureViewDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< ITextureViewD3D11, TextureViewDesc >protected
m_pD3D11ViewDiligent::TextureViewD3D11Implprotected
m_pSamplerDiligent::TextureViewBase< ITextureViewD3D11 >protected
m_pTextureDiligent::TextureViewBase< ITextureViewD3D11 >protected
m_spTextureDiligent::TextureViewBase< ITextureViewD3D11 >protected
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override finalDiligent::TextureViewD3D11Implvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
SetSampler(class ISampler *pSampler) override finalDiligent::TextureViewBase< ITextureViewD3D11 >inlinevirtual
TextureViewBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ViewDesc, class ITexture *pTexture, bool bIsDefaultView)Diligent::TextureViewBase< ITextureViewD3D11 >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_view_d3_d11_impl.html b/doc/html/class_diligent_1_1_texture_view_d3_d11_impl.html new file mode 100644 index 00000000..3c40fa62 --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_view_d3_d11_impl.html @@ -0,0 +1,240 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureViewD3D11Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::TextureViewD3D11Impl Class Reference
+
+
+ +

Implementation of the Diligent::ITextureViewD3D11 interface. + More...

+
+Inheritance diagram for Diligent::TextureViewD3D11Impl:
+
+
+ + +Diligent::TextureViewBase< ITextureViewD3D11 > +Diligent::DeviceObjectBase< ITextureViewD3D11, TextureViewDesc > +Diligent::ObjectBase< ITextureViewD3D11 > +Diligent::RefCountedObject< ITextureViewD3D11 > +Diligent::ITextureViewD3D11 +Diligent::ITextureView +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual ID3D11View * GetD3D11View () override final
 Returns a pointer to the ID3D11View interface of the internal Direct3D11 object. More...
 
void GenerateMips (IDeviceContext *pContext) override final
 Generates a mipmap chain. More...
 
- Public Member Functions inherited from Diligent::TextureViewBase< ITextureViewD3D11 >
 TextureViewBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ViewDesc, class ITexture *pTexture, bool bIsDefaultView)
 
+virtual void SetSampler (class ISampler *pSampler) override final
 Implementation of ITextureView::SetSampler()
 
+virtual ISamplerGetSampler () override final
 Implementation of ITextureView::GetSampler()
 
+virtual ITextureGetTexture () override final
 Implementation of ITextureView::GetTexture()
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< ITextureViewD3D11, TextureViewDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const TextureViewDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+CComPtr< ID3D11View > m_pD3D11View
 D3D11 view.
 
- Protected Attributes inherited from Diligent::TextureViewBase< ITextureViewD3D11 >
+Diligent::RefCntAutoPtr< ISamplerm_pSampler
 Strong reference to the sampler.
 
+ITexturem_pTexture
 Raw pointer to the texture.
 
+Diligent::RefCntAutoPtr< ITexturem_spTexture
 Strong reference to the texture. Used for non-default views to keep the texture alive.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< ITextureViewD3D11, TextureViewDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+TextureViewDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::ITextureViewD3D11 interface.

+

Member Function Documentation

+ +

◆ GenerateMips()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::TextureViewD3D11Impl::GenerateMips (IDeviceContextpContext)
+
+finaloverridevirtual
+
+ +

Generates a mipmap chain.

+
Remarks
This function can only be called for a shader resource view The texture must be created with MISC_TEXTURE_FLAG_GENERATE_MIPS flag
+ +

Implements Diligent::ITextureView.

+ +
+
+ +

◆ GetD3D11View()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ID3D11View* Diligent::TextureViewD3D11Impl::GetD3D11View ()
+
+inlinefinaloverridevirtual
+
+ +

Returns a pointer to the ID3D11View interface of the internal Direct3D11 object.

+

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

+ +

Implements Diligent::ITextureViewD3D11.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_view_d3_d11_impl.png b/doc/html/class_diligent_1_1_texture_view_d3_d11_impl.png new file mode 100644 index 00000000..e25f6fec Binary files /dev/null and b/doc/html/class_diligent_1_1_texture_view_d3_d11_impl.png differ diff --git a/doc/html/class_diligent_1_1_texture_view_d3_d12_impl-members.html b/doc/html/class_diligent_1_1_texture_view_d3_d12_impl-members.html new file mode 100644 index 00000000..de4785d1 --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_view_d3_d12_impl-members.html @@ -0,0 +1,102 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::TextureViewD3D12Impl Member List
+
+
+ +

This is the complete list of members for Diligent::TextureViewD3D12Impl, including all inherited members.

+ + + + + + + + + + + + + + + + + +
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< ITextureViewD3D12, TextureViewDesc >inline
GenerateMips(IDeviceContext *pContext) overrideDiligent::TextureViewD3D12Implvirtual
GetCPUDescriptorHandle() overrideDiligent::TextureViewD3D12Implinlinevirtual
GetSampler() override finalDiligent::TextureViewBase< ITextureViewD3D12 >inlinevirtual
GetTexture() override finalDiligent::TextureViewBase< ITextureViewD3D12 >inlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< ITextureViewD3D12, TextureViewDesc >inline
m_DescDiligent::DeviceObjectBase< ITextureViewD3D12, TextureViewDesc >protected
m_DescriptorDiligent::TextureViewD3D12Implprotected
m_ObjectNameCopyDiligent::DeviceObjectBase< ITextureViewD3D12, TextureViewDesc >protected
m_pSamplerDiligent::TextureViewBase< ITextureViewD3D12 >protected
m_pTextureDiligent::TextureViewBase< ITextureViewD3D12 >protected
m_spTextureDiligent::TextureViewBase< ITextureViewD3D12 >protected
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) overrideDiligent::TextureViewD3D12Implvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
SetSampler(class ISampler *pSampler) override finalDiligent::TextureViewBase< ITextureViewD3D12 >inlinevirtual
TextureViewBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ViewDesc, class ITexture *pTexture, bool bIsDefaultView)Diligent::TextureViewBase< ITextureViewD3D12 >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_view_d3_d12_impl.html b/doc/html/class_diligent_1_1_texture_view_d3_d12_impl.html new file mode 100644 index 00000000..54c10ae8 --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_view_d3_d12_impl.html @@ -0,0 +1,211 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureViewD3D12Impl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::TextureViewD3D12Impl Class Reference
+
+
+ +

Implementation of the Diligent::ITextureViewD3D12 interface. + More...

+
+Inheritance diagram for Diligent::TextureViewD3D12Impl:
+
+
+ + +Diligent::TextureViewBase< ITextureViewD3D12 > +Diligent::DeviceObjectBase< ITextureViewD3D12, TextureViewDesc > +Diligent::ObjectBase< ITextureViewD3D12 > +Diligent::RefCountedObject< ITextureViewD3D12 > +Diligent::ITextureViewD3D12 +Diligent::ITextureView +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
 Queries the specific interface, see IObject::QueryInterface() for details.
 
void GenerateMips (IDeviceContext *pContext) override
 Generates a mipmap chain. More...
 
+virtual D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandle () override
 Returns CPU descriptor handle of the texture view.
 
- Public Member Functions inherited from Diligent::TextureViewBase< ITextureViewD3D12 >
 TextureViewBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ViewDesc, class ITexture *pTexture, bool bIsDefaultView)
 
+virtual void SetSampler (class ISampler *pSampler) override final
 Implementation of ITextureView::SetSampler()
 
+virtual ISamplerGetSampler () override final
 Implementation of ITextureView::GetSampler()
 
+virtual ITextureGetTexture () override final
 Implementation of ITextureView::GetTexture()
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< ITextureViewD3D12, TextureViewDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const TextureViewDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+DescriptorHeapAllocation m_Descriptor
 D3D12 view descriptor handle.
 
- Protected Attributes inherited from Diligent::TextureViewBase< ITextureViewD3D12 >
+Diligent::RefCntAutoPtr< ISamplerm_pSampler
 Strong reference to the sampler.
 
+ITexturem_pTexture
 Raw pointer to the texture.
 
+Diligent::RefCntAutoPtr< ITexturem_spTexture
 Strong reference to the texture. Used for non-default views to keep the texture alive.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< ITextureViewD3D12, TextureViewDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+TextureViewDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::ITextureViewD3D12 interface.

+

Member Function Documentation

+ +

◆ GenerateMips()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::TextureViewD3D12Impl::GenerateMips (IDeviceContextpContext)
+
+overridevirtual
+
+ +

Generates a mipmap chain.

+
Remarks
This function can only be called for a shader resource view The texture must be created with MISC_TEXTURE_FLAG_GENERATE_MIPS flag
+ +

Implements Diligent::ITextureView.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_view_d3_d12_impl.png b/doc/html/class_diligent_1_1_texture_view_d3_d12_impl.png new file mode 100644 index 00000000..5ce42e9f Binary files /dev/null and b/doc/html/class_diligent_1_1_texture_view_d3_d12_impl.png differ diff --git a/doc/html/class_diligent_1_1_texture_view_g_l_impl-members.html b/doc/html/class_diligent_1_1_texture_view_g_l_impl-members.html new file mode 100644 index 00000000..9d5b4912 --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_view_g_l_impl-members.html @@ -0,0 +1,100 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Diligent::TextureViewGLImpl Member List
+
+
+ +

This is the complete list of members for Diligent::TextureViewGLImpl, including all inherited members.

+ + + + + + + + + + + + + + + +
DeviceObjectBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ObjDesc, bool bIsDeviceInternal=false)Diligent::DeviceObjectBase< ITextureViewGL, TextureViewDesc >inline
GenerateMips(IDeviceContext *pContext) overrideDiligent::TextureViewGLImplvirtual
GetSampler() override finalDiligent::TextureViewBase< ITextureViewGL >inlinevirtual
GetTexture() override finalDiligent::TextureViewBase< ITextureViewGL >inlinevirtual
GetUniqueID() constDiligent::DeviceObjectBase< ITextureViewGL, TextureViewDesc >inline
m_DescDiligent::DeviceObjectBase< ITextureViewGL, TextureViewDesc >protected
m_ObjectNameCopyDiligent::DeviceObjectBase< ITextureViewGL, TextureViewDesc >protected
m_pSamplerDiligent::TextureViewBase< ITextureViewGL >protected
m_pTextureDiligent::TextureViewBase< ITextureViewGL >protected
m_spTextureDiligent::TextureViewBase< ITextureViewGL >protected
QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) overrideDiligent::TextureViewGLImplvirtual
Diligent::IDeviceObject::QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface)=0Diligent::IDeviceObjectpure virtual
SetSampler(class ISampler *pSampler) override finalDiligent::TextureViewBase< ITextureViewGL >inlinevirtual
TextureViewBase(IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ViewDesc, class ITexture *pTexture, bool bIsDefaultView)Diligent::TextureViewBase< ITextureViewGL >inline
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_view_g_l_impl.html b/doc/html/class_diligent_1_1_texture_view_g_l_impl.html new file mode 100644 index 00000000..7e5fcaed --- /dev/null +++ b/doc/html/class_diligent_1_1_texture_view_g_l_impl.html @@ -0,0 +1,202 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureViewGLImpl Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Diligent::TextureViewGLImpl Class Reference
+
+
+ +

Implementation of the Diligent::ITextureViewGL interface. + More...

+
+Inheritance diagram for Diligent::TextureViewGLImpl:
+
+
+ + +Diligent::TextureViewBase< ITextureViewGL > +Diligent::DeviceObjectBase< ITextureViewGL, TextureViewDesc > +Diligent::ObjectBase< ITextureViewGL > +Diligent::RefCountedObject< ITextureViewGL > +Diligent::ITextureViewGL +Diligent::ITextureView +Diligent::IDeviceObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
 Queries the specific interface, see IObject::QueryInterface() for details.
 
void GenerateMips (IDeviceContext *pContext) override
 Generates a mipmap chain. More...
 
- Public Member Functions inherited from Diligent::TextureViewBase< ITextureViewGL >
 TextureViewBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ViewDesc, class ITexture *pTexture, bool bIsDefaultView)
 
+virtual void SetSampler (class ISampler *pSampler) override final
 Implementation of ITextureView::SetSampler()
 
+virtual ISamplerGetSampler () override final
 Implementation of ITextureView::GetSampler()
 
+virtual ITextureGetTexture () override final
 Implementation of ITextureView::GetTexture()
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< ITextureViewGL, TextureViewDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const TextureViewDesc &ObjDesc, bool bIsDeviceInternal=false)
 
+virtual const TextureViewDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IDeviceObject
+virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
+ + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from Diligent::TextureViewBase< ITextureViewGL >
+Diligent::RefCntAutoPtr< ISamplerm_pSampler
 Strong reference to the sampler.
 
+ITexturem_pTexture
 Raw pointer to the texture.
 
+Diligent::RefCntAutoPtr< ITexturem_spTexture
 Strong reference to the texture. Used for non-default views to keep the texture alive.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< ITextureViewGL, TextureViewDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
+TextureViewDesc m_Desc
 Object description.
 
+

Detailed Description

+

Implementation of the Diligent::ITextureViewGL interface.

+

Member Function Documentation

+ +

◆ GenerateMips()

+ +
+
+ + + + + +
+ + + + + + + + +
void Diligent::TextureViewGLImpl::GenerateMips (IDeviceContextpContext)
+
+overridevirtual
+
+ +

Generates a mipmap chain.

+
Remarks
This function can only be called for a shader resource view The texture must be created with MISC_TEXTURE_FLAG_GENERATE_MIPS flag
+ +

Implements Diligent::ITextureView.

+ +
+
+
+ + + + + diff --git a/doc/html/class_diligent_1_1_texture_view_g_l_impl.png b/doc/html/class_diligent_1_1_texture_view_g_l_impl.png new file mode 100644 index 00000000..f1131dd1 Binary files /dev/null and b/doc/html/class_diligent_1_1_texture_view_g_l_impl.png differ diff --git a/doc/html/classes.html b/doc/html/classes.html new file mode 100644 index 00000000..3707767e --- /dev/null +++ b/doc/html/classes.html @@ -0,0 +1,170 @@ + + + + + + + +Diligent Engine API Reference: Class Index + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
b | c | d | e | f | g | h | i | l | m | o | p | r | s | t | v
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  b  
+
IBufferViewD3D11 (Diligent)   RefCountedObject (Diligent)   
IBufferViewD3D12 (Diligent)   RenderDeviceBase (Diligent)   
BasicFileStream (Diligent)   IBufferViewGL (Diligent)   RenderDeviceD3D11Impl (Diligent)   
BlendStateDesc (Diligent)   ICommandList (Diligent)   RenderDeviceD3D12Impl (Diligent)   
Box (Diligent)   ICommandQueueD3D12 (Diligent)   RenderDeviceGLImpl (Diligent)   
BufferBase (Diligent)   IDeviceContext (Diligent)   RenderTargetBlendDesc (Diligent)   
BufferD3D11Impl (Diligent)   IDeviceContextD3D11 (Diligent)   ResourceMappingDesc (Diligent)   
BufferD3D12Impl (Diligent)   IDeviceContextD3D12 (Diligent)   ResourceMappingEntry (Diligent)   
BufferData (Diligent)   IDeviceContextGL (Diligent)   ResourceMappingImpl (Diligent)   
BufferDesc (Diligent)   IDeviceObject (Diligent)   RootSignature (Diligent)   
BufferDesc::BufferFormat (Diligent)   InputLayoutDesc (Diligent)   
  s  
+
BufferGLImpl (Diligent)   IPipelineState (Diligent)   
BufferViewBase (Diligent)   IPipelineStateD3D11 (Diligent)   SampleDesc (Diligent)   
BufferViewD3D11Impl (Diligent)   IPipelineStateD3D12 (Diligent)   SamplerBase (Diligent)   
BufferViewD3D12Impl (Diligent)   IPipelineStateGL (Diligent)   SamplerCaps (Diligent)   
BufferViewDesc (Diligent)   IRenderDevice (Diligent)   SamplerD3D11Impl (Diligent)   
BufferViewGLImpl (Diligent)   IRenderDeviceD3D11 (Diligent)   SamplerD3D12Impl (Diligent)   
  c  
+
IRenderDeviceD3D12 (Diligent)   SamplerDesc (Diligent)   
IRenderDeviceGL (Diligent)   SamplerGLImpl (Diligent)   
ShaderResourceCacheD3D11::CachedCB (Diligent)   IRenderDeviceGLES (Diligent)   ShaderBase (Diligent)   
ShaderResourceCacheD3D11::CachedResource (Diligent)   IResourceMapping (Diligent)   ShaderCreationAttribs (Diligent)   
ShaderResourceCacheD3D11::CachedSampler (Diligent)   ISampler (Diligent)   ShaderD3D11Impl (Diligent)   
CommandListBase (Diligent)   ISamplerD3D11 (Diligent)   ShaderD3D12Impl (Diligent)   
CommandListD3D11Impl (Diligent)   ISamplerD3D12 (Diligent)   ShaderDesc (Diligent)   
CommandListD3D12Impl (Diligent)   ISamplerGL (Diligent)   ShaderGLImpl (Diligent)   
CommandQueueD3D12Impl (Diligent)   IShader (Diligent)   ShaderResourceBindingBase (Diligent)   
ComputePipelineDesc (Diligent)   IShaderD3D11 (Diligent)   ShaderResourceBindingD3D11Impl (Diligent)   
  d  
+
IShaderD3D12 (Diligent)   ShaderResourceBindingD3D12Impl (Diligent)   
IShaderGL (Diligent)   ShaderResourceBindingGLImpl (Diligent)   
D3D12ResourceBase (Diligent)   IShaderResourceBinding (Diligent)   ShaderResourceCacheD3D11 (Diligent)   
DataBlobImpl (Diligent)   IShaderResourceBindingD3D11 (Diligent)   ShaderResourceLayoutD3D11 (Diligent)   
DepthStencilClearValue (Diligent)   IShaderResourceBindingD3D12 (Diligent)   ShaderResourceLayoutD3D12 (Diligent)   
DepthStencilStateDesc (Diligent)   IShaderResourceBindingGL (Diligent)   ShaderResourcesD3D11 (Diligent)   
DeviceCaps (Diligent)   IShaderSourceInputStreamFactory (Diligent)   ShaderResourcesD3D12 (Diligent)   
DeviceContextBase (Diligent)   IShaderVariable (Diligent)   ShaderVariableBase (Diligent)   
DeviceContextD3D11Impl (Diligent)   ISwapChain (Diligent)   ShaderVariableDesc (Diligent)   
DeviceContextD3D12Impl (Diligent)   ISwapChainD3D11 (Diligent)   StateObjectsRegistry (Diligent)   
DeviceContextGLImpl (Diligent)   ISwapChainD3D12 (Diligent)   StaticSamplerDesc (Diligent)   
DeviceObjectAttribs (Diligent)   ISwapChainGL (Diligent)   StencilOpDesc (Diligent)   
DeviceObjectBase (Diligent)   ITexture (Diligent)   StringDataBlobImpl (Diligent)   
DispatchComputeAttribs (Diligent)   ITextureD3D11 (Diligent)   SwapChainBase (Diligent)   
DrawAttribs (Diligent)   ITextureD3D12 (Diligent)   SwapChainD3D11Impl (Diligent)   
DummyShaderVariable (Diligent)   ITextureGL (Diligent)   SwapChainD3D12Impl (Diligent)   
  e  
+
ITextureView (Diligent)   SwapChainDesc (Diligent)   
ITextureViewD3D11 (Diligent)   SwapChainGLImpl (Diligent)   
EngineCreationAttribs (Diligent)   ITextureViewD3D12 (Diligent)   
  t  
+
EngineD3D11Attribs (Diligent)   ITextureViewGL (Diligent)   
EngineD3D12Attribs (Diligent)   
  l  
+
Texture1D_D3D11 (Diligent)   
  f  
+
Texture2D_D3D11 (Diligent)   
LayoutElement (Diligent)   Texture3D_D3D11 (Diligent)   
FixedBlockMemoryAllocator (Diligent)   
  m  
+
TextureBase (Diligent)   
  g  
+
TextureBaseD3D11 (Diligent)   
MapHelper (Diligent)   TextureBaseGL (Diligent)   
GraphicsPipelineDesc (Diligent)   
  o  
+
TextureCaps (Diligent)   
  h  
+
TextureD3D12Impl (Diligent)   
ObjectBase (Diligent)   TextureData (Diligent)   
hash< Diligent::BlendStateDesc > (std)   OptimizedClearValue (Diligent)   TextureDesc (Diligent)   
hash< Diligent::DepthStencilStateDesc > (std)   
  p  
+
TextureFormatAttribs (Diligent)   
hash< Diligent::RasterizerStateDesc > (std)   TextureFormatInfo (Diligent)   
hash< Diligent::SamplerDesc > (std)   PipelineStateBase (Diligent)   TextureFormatInfoExt (Diligent)   
hash< Diligent::StencilOpDesc > (std)   PipelineStateD3D11Impl (Diligent)   TextureSubResData (Diligent)   
hash< Diligent::TextureViewDesc > (std)   PipelineStateD3D12Impl (Diligent)   TextureViewBase (Diligent)   
HashMapStringKey (Diligent)   PipelineStateDesc (Diligent)   TextureViewD3D11Impl (Diligent)   
  i  
+
PipelineStateGLImpl (Diligent)   TextureViewD3D12Impl (Diligent)   
  r  
+
TextureViewDesc (Diligent)   
IBuffer (Diligent)   TextureViewGLImpl (Diligent)   
IBufferD3D11 (Diligent)   RasterizerStateDesc (Diligent)   
  v  
+
IBufferD3D12 (Diligent)   Rect (Diligent)   
IBufferGL (Diligent)   RefCntAutoPtr (Diligent)   VertexStreamInfo (Diligent)   
IBufferView (Diligent)   RefCntWeakPtr (Diligent)   Viewport (Diligent)   
+
b | c | d | e | f | g | h | i | l | m | o | p | r | s | t | v
+
+ + + + + diff --git a/doc/html/closed.png b/doc/html/closed.png new file mode 100644 index 00000000..98cc2c90 Binary files /dev/null and b/doc/html/closed.png differ diff --git a/doc/html/d3dx12__win_8h_source.html b/doc/html/d3dx12__win_8h_source.html new file mode 100644 index 00000000..e7255355 --- /dev/null +++ b/doc/html/d3dx12__win_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include/d3dx12_win.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
d3dx12_win.h
+
+
+
1 //
3 // Copyright (C) Microsoft Corporation. All Rights Reserved.
4 //
5 // File: d3dx12.h
6 // Content: D3DX12 utility library
7 //
9 
10 #ifndef __D3DX12_H__
11 #define __D3DX12_H__
12 
13 #include "d3d12.h"
14 
15 #if defined( __cplusplus )
16 
17 struct CD3DX12_DEFAULT {};
18 extern const DECLSPEC_SELECTANY CD3DX12_DEFAULT D3D12_DEFAULT;
19 
20 //------------------------------------------------------------------------------------------------
21 inline bool operator==( const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r )
22 {
23  return l.TopLeftX == r.TopLeftX && l.TopLeftY == r.TopLeftY && l.Width == r.Width &&
24  l.Height == r.Height && l.MinDepth == r.MinDepth && l.MaxDepth == r.MaxDepth;
25 }
26 
27 //------------------------------------------------------------------------------------------------
28 inline bool operator!=( const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r )
29 { return !( l == r ); }
30 
31 //------------------------------------------------------------------------------------------------
32 struct CD3DX12_RECT : public D3D12_RECT
33 {
34  CD3DX12_RECT()
35  {}
36  explicit CD3DX12_RECT( const D3D12_RECT& o ) :
37  D3D12_RECT( o )
38  {}
39  explicit CD3DX12_RECT(
40  LONG Left,
41  LONG Top,
42  LONG Right,
43  LONG Bottom )
44  {
45  left = Left;
46  top = Top;
47  right = Right;
48  bottom = Bottom;
49  }
50  ~CD3DX12_RECT() {}
51  operator const D3D12_RECT&() const { return *this; }
52 };
53 
54 //------------------------------------------------------------------------------------------------
55 struct CD3DX12_BOX : public D3D12_BOX
56 {
57  CD3DX12_BOX()
58  {}
59  explicit CD3DX12_BOX( const D3D12_BOX& o ) :
60  D3D12_BOX( o )
61  {}
62  explicit CD3DX12_BOX(
63  LONG Left,
64  LONG Right )
65  {
66  left = Left;
67  top = 0;
68  front = 0;
69  right = Right;
70  bottom = 1;
71  back = 1;
72  }
73  explicit CD3DX12_BOX(
74  LONG Left,
75  LONG Top,
76  LONG Right,
77  LONG Bottom )
78  {
79  left = Left;
80  top = Top;
81  front = 0;
82  right = Right;
83  bottom = Bottom;
84  back = 1;
85  }
86  explicit CD3DX12_BOX(
87  LONG Left,
88  LONG Top,
89  LONG Front,
90  LONG Right,
91  LONG Bottom,
92  LONG Back )
93  {
94  left = Left;
95  top = Top;
96  front = Front;
97  right = Right;
98  bottom = Bottom;
99  back = Back;
100  }
101  ~CD3DX12_BOX() {}
102  operator const D3D12_BOX&() const { return *this; }
103 };
104 inline bool operator==( const D3D12_BOX& l, const D3D12_BOX& r )
105 {
106  return l.left == r.left && l.top == r.top && l.front == r.front &&
107  l.right == r.right && l.bottom == r.bottom && l.back == r.back;
108 }
109 inline bool operator!=( const D3D12_BOX& l, const D3D12_BOX& r )
110 { return !( l == r ); }
111 
112 //------------------------------------------------------------------------------------------------
113 struct CD3DX12_DEPTH_STENCIL_DESC : public D3D12_DEPTH_STENCIL_DESC
114 {
115  CD3DX12_DEPTH_STENCIL_DESC()
116  {}
117  explicit CD3DX12_DEPTH_STENCIL_DESC( const D3D12_DEPTH_STENCIL_DESC& o ) :
118  D3D12_DEPTH_STENCIL_DESC( o )
119  {}
120  explicit CD3DX12_DEPTH_STENCIL_DESC( CD3DX12_DEFAULT )
121  {
122  DepthEnable = TRUE;
123  DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL;
124  DepthFunc = D3D12_COMPARISON_FUNC_LESS;
125  StencilEnable = FALSE;
126  StencilReadMask = D3D12_DEFAULT_STENCIL_READ_MASK;
127  StencilWriteMask = D3D12_DEFAULT_STENCIL_WRITE_MASK;
128  const D3D12_DEPTH_STENCILOP_DESC defaultStencilOp =
129  { D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_COMPARISON_FUNC_ALWAYS };
130  FrontFace = defaultStencilOp;
131  BackFace = defaultStencilOp;
132  }
133  explicit CD3DX12_DEPTH_STENCIL_DESC(
134  BOOL depthEnable,
135  D3D12_DEPTH_WRITE_MASK depthWriteMask,
136  D3D12_COMPARISON_FUNC depthFunc,
137  BOOL stencilEnable,
138  UINT8 stencilReadMask,
139  UINT8 stencilWriteMask,
140  D3D12_STENCIL_OP frontStencilFailOp,
141  D3D12_STENCIL_OP frontStencilDepthFailOp,
142  D3D12_STENCIL_OP frontStencilPassOp,
143  D3D12_COMPARISON_FUNC frontStencilFunc,
144  D3D12_STENCIL_OP backStencilFailOp,
145  D3D12_STENCIL_OP backStencilDepthFailOp,
146  D3D12_STENCIL_OP backStencilPassOp,
147  D3D12_COMPARISON_FUNC backStencilFunc )
148  {
149  DepthEnable = depthEnable;
150  DepthWriteMask = depthWriteMask;
151  DepthFunc = depthFunc;
152  StencilEnable = stencilEnable;
153  StencilReadMask = stencilReadMask;
154  StencilWriteMask = stencilWriteMask;
155  FrontFace.StencilFailOp = frontStencilFailOp;
156  FrontFace.StencilDepthFailOp = frontStencilDepthFailOp;
157  FrontFace.StencilPassOp = frontStencilPassOp;
158  FrontFace.StencilFunc = frontStencilFunc;
159  BackFace.StencilFailOp = backStencilFailOp;
160  BackFace.StencilDepthFailOp = backStencilDepthFailOp;
161  BackFace.StencilPassOp = backStencilPassOp;
162  BackFace.StencilFunc = backStencilFunc;
163  }
164  ~CD3DX12_DEPTH_STENCIL_DESC() {}
165  operator const D3D12_DEPTH_STENCIL_DESC&() const { return *this; }
166 };
167 
168 //------------------------------------------------------------------------------------------------
169 struct CD3DX12_BLEND_DESC : public D3D12_BLEND_DESC
170 {
171  CD3DX12_BLEND_DESC()
172  {}
173  explicit CD3DX12_BLEND_DESC( const D3D12_BLEND_DESC& o ) :
174  D3D12_BLEND_DESC( o )
175  {}
176  explicit CD3DX12_BLEND_DESC( CD3DX12_DEFAULT )
177  {
178  AlphaToCoverageEnable = FALSE;
179  IndependentBlendEnable = FALSE;
180  const D3D12_RENDER_TARGET_BLEND_DESC defaultRenderTargetBlendDesc =
181  {
182  FALSE,FALSE,
183  D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD,
184  D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD,
185  D3D12_LOGIC_OP_NOOP,
186  D3D12_COLOR_WRITE_ENABLE_ALL,
187  };
188  for (UINT i = 0; i < D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT; ++i)
189  RenderTarget[ i ] = defaultRenderTargetBlendDesc;
190  }
191  ~CD3DX12_BLEND_DESC() {}
192  operator const D3D12_BLEND_DESC&() const { return *this; }
193 };
194 
195 //------------------------------------------------------------------------------------------------
196 struct CD3DX12_RASTERIZER_DESC : public D3D12_RASTERIZER_DESC
197 {
198  CD3DX12_RASTERIZER_DESC()
199  {}
200  explicit CD3DX12_RASTERIZER_DESC( const D3D12_RASTERIZER_DESC& o ) :
201  D3D12_RASTERIZER_DESC( o )
202  {}
203  explicit CD3DX12_RASTERIZER_DESC( CD3DX12_DEFAULT )
204  {
205  FillMode = D3D12_FILL_MODE_SOLID;
206  CullMode = D3D12_CULL_MODE_BACK;
207  FrontCounterClockwise = FALSE;
208  DepthBias = D3D12_DEFAULT_DEPTH_BIAS;
209  DepthBiasClamp = D3D12_DEFAULT_DEPTH_BIAS_CLAMP;
210  SlopeScaledDepthBias = D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS;
211  DepthClipEnable = TRUE;
212  MultisampleEnable = FALSE;
213  AntialiasedLineEnable = FALSE;
214  ForcedSampleCount = 0;
215  ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF;
216  }
217  explicit CD3DX12_RASTERIZER_DESC(
218  D3D12_FILL_MODE fillMode,
219  D3D12_CULL_MODE cullMode,
220  BOOL frontCounterClockwise,
221  INT depthBias,
222  FLOAT depthBiasClamp,
223  FLOAT slopeScaledDepthBias,
224  BOOL depthClipEnable,
225  BOOL multisampleEnable,
226  BOOL antialiasedLineEnable,
227  UINT forcedSampleCount,
228  D3D12_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster)
229  {
230  FillMode = fillMode;
231  CullMode = cullMode;
232  FrontCounterClockwise = frontCounterClockwise;
233  DepthBias = depthBias;
234  DepthBiasClamp = depthBiasClamp;
235  SlopeScaledDepthBias = slopeScaledDepthBias;
236  DepthClipEnable = depthClipEnable;
237  MultisampleEnable = multisampleEnable;
238  AntialiasedLineEnable = antialiasedLineEnable;
239  ForcedSampleCount = forcedSampleCount;
240  ConservativeRaster = conservativeRaster;
241  }
242  ~CD3DX12_RASTERIZER_DESC() {}
243  operator const D3D12_RASTERIZER_DESC&() const { return *this; }
244 };
245 
246 //------------------------------------------------------------------------------------------------
247 struct CD3DX12_RESOURCE_ALLOCATION_INFO : public D3D12_RESOURCE_ALLOCATION_INFO
248 {
249  CD3DX12_RESOURCE_ALLOCATION_INFO()
250  {}
251  explicit CD3DX12_RESOURCE_ALLOCATION_INFO( const D3D12_RESOURCE_ALLOCATION_INFO& o ) :
252  D3D12_RESOURCE_ALLOCATION_INFO( o )
253  {}
254  CD3DX12_RESOURCE_ALLOCATION_INFO(
255  UINT64 size,
256  UINT64 alignment )
257  {
258  SizeInBytes = size;
259  Alignment = alignment;
260  }
261  operator const D3D12_RESOURCE_ALLOCATION_INFO&() const { return *this; }
262 };
263 
264 //------------------------------------------------------------------------------------------------
265 struct CD3DX12_HEAP_PROPERTIES : public D3D12_HEAP_PROPERTIES
266 {
267  CD3DX12_HEAP_PROPERTIES()
268  {}
269  explicit CD3DX12_HEAP_PROPERTIES(const D3D12_HEAP_PROPERTIES &o) :
270  D3D12_HEAP_PROPERTIES(o)
271  {}
272  CD3DX12_HEAP_PROPERTIES(
273  D3D12_CPU_PAGE_PROPERTY cpuPageProperty,
274  D3D12_MEMORY_POOL memoryPoolPreference,
275  UINT creationNodeMask = 1,
276  UINT nodeMask = 1 )
277  {
278  Type = D3D12_HEAP_TYPE_CUSTOM;
279  CPUPageProperty = cpuPageProperty;
280  MemoryPoolPreference = memoryPoolPreference;
281  CreationNodeMask = creationNodeMask;
282  VisibleNodeMask = nodeMask;
283  }
284  explicit CD3DX12_HEAP_PROPERTIES(
285  D3D12_HEAP_TYPE type,
286  UINT creationNodeMask = 1,
287  UINT nodeMask = 1 )
288  {
289  Type = type;
290  CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN;
291  MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN;
292  CreationNodeMask = creationNodeMask;
293  VisibleNodeMask = nodeMask;
294  }
295  operator const D3D12_HEAP_PROPERTIES&() const { return *this; }
296  bool IsCPUAccessible() const
297  {
298  return Type == D3D12_HEAP_TYPE_UPLOAD || Type == D3D12_HEAP_TYPE_READBACK || (Type == D3D12_HEAP_TYPE_CUSTOM &&
299  (CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE || CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_BACK));
300  }
301 };
302 inline bool operator==( const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r )
303 {
304  return l.Type == r.Type && l.CPUPageProperty == r.CPUPageProperty &&
305  l.MemoryPoolPreference == r.MemoryPoolPreference &&
306  l.CreationNodeMask == r.CreationNodeMask &&
307  l.VisibleNodeMask == r.VisibleNodeMask;
308 }
309 inline bool operator!=( const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r )
310 { return !( l == r ); }
311 
312 //------------------------------------------------------------------------------------------------
313 struct CD3DX12_HEAP_DESC : public D3D12_HEAP_DESC
314 {
315  CD3DX12_HEAP_DESC()
316  {}
317  explicit CD3DX12_HEAP_DESC(const D3D12_HEAP_DESC &o) :
318  D3D12_HEAP_DESC(o)
319  {}
320  CD3DX12_HEAP_DESC(
321  UINT64 size,
322  D3D12_HEAP_PROPERTIES properties,
323  UINT64 alignment = 0,
324  D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE )
325  {
326  SizeInBytes = size;
327  Properties = properties;
328  Alignment = alignment;
329  Flags = flags;
330  }
331  CD3DX12_HEAP_DESC(
332  UINT64 size,
333  D3D12_HEAP_TYPE type,
334  UINT64 alignment = 0,
335  D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE )
336  {
337  SizeInBytes = size;
338  Properties = CD3DX12_HEAP_PROPERTIES( type );
339  Alignment = alignment;
340  Flags = flags;
341  }
342  CD3DX12_HEAP_DESC(
343  UINT64 size,
344  D3D12_CPU_PAGE_PROPERTY cpuPageProperty,
345  D3D12_MEMORY_POOL memoryPoolPreference,
346  UINT64 alignment = 0,
347  D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE )
348  {
349  SizeInBytes = size;
350  Properties = CD3DX12_HEAP_PROPERTIES( cpuPageProperty, memoryPoolPreference );
351  Alignment = alignment;
352  Flags = flags;
353  }
354  CD3DX12_HEAP_DESC(
355  const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo,
356  D3D12_HEAP_PROPERTIES properties,
357  D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE )
358  {
359  SizeInBytes = resAllocInfo.SizeInBytes;
360  Properties = properties;
361  Alignment = resAllocInfo.Alignment;
362  Flags = flags;
363  }
364  CD3DX12_HEAP_DESC(
365  const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo,
366  D3D12_HEAP_TYPE type,
367  D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE )
368  {
369  SizeInBytes = resAllocInfo.SizeInBytes;
370  Properties = CD3DX12_HEAP_PROPERTIES( type );
371  Alignment = resAllocInfo.Alignment;
372  Flags = flags;
373  }
374  CD3DX12_HEAP_DESC(
375  const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo,
376  D3D12_CPU_PAGE_PROPERTY cpuPageProperty,
377  D3D12_MEMORY_POOL memoryPoolPreference,
378  D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE )
379  {
380  SizeInBytes = resAllocInfo.SizeInBytes;
381  Properties = CD3DX12_HEAP_PROPERTIES( cpuPageProperty, memoryPoolPreference );
382  Alignment = resAllocInfo.Alignment;
383  Flags = flags;
384  }
385  operator const D3D12_HEAP_DESC&() const { return *this; }
386  bool IsCPUAccessible() const
387  { return static_cast< const CD3DX12_HEAP_PROPERTIES* >( &Properties )->IsCPUAccessible(); }
388 };
389 inline bool operator==( const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r )
390 {
391  return l.SizeInBytes == r.SizeInBytes &&
392  l.Properties == r.Properties &&
393  l.Alignment == r.Alignment &&
394  l.Flags == r.Flags;
395 }
396 inline bool operator!=( const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r )
397 { return !( l == r ); }
398 
399 //------------------------------------------------------------------------------------------------
400 struct CD3DX12_CLEAR_VALUE : public D3D12_CLEAR_VALUE
401 {
402  CD3DX12_CLEAR_VALUE()
403  {}
404  explicit CD3DX12_CLEAR_VALUE(const D3D12_CLEAR_VALUE &o) :
405  D3D12_CLEAR_VALUE(o)
406  {}
407  CD3DX12_CLEAR_VALUE(
408  DXGI_FORMAT format,
409  const FLOAT color[4] )
410  {
411  Format = format;
412  memcpy( Color, color, sizeof( Color ) );
413  }
414  CD3DX12_CLEAR_VALUE(
415  DXGI_FORMAT format,
416  FLOAT depth,
417  UINT8 stencil )
418  {
419  Format = format;
420  /* Use memcpy to preserve NAN values */
421  memcpy( &DepthStencil.Depth, &depth, sizeof( depth ) );
422  DepthStencil.Stencil = stencil;
423  }
424  operator const D3D12_CLEAR_VALUE&() const { return *this; }
425 };
426 
427 //------------------------------------------------------------------------------------------------
428 struct CD3DX12_RANGE : public D3D12_RANGE
429 {
430  CD3DX12_RANGE()
431  {}
432  explicit CD3DX12_RANGE(const D3D12_RANGE &o) :
433  D3D12_RANGE(o)
434  {}
435  CD3DX12_RANGE(
436  SIZE_T begin,
437  SIZE_T end )
438  {
439  Begin = begin;
440  End = end;
441  }
442  operator const D3D12_RANGE&() const { return *this; }
443 };
444 
445 //------------------------------------------------------------------------------------------------
446 struct CD3DX12_TILED_RESOURCE_COORDINATE : public D3D12_TILED_RESOURCE_COORDINATE
447 {
448  CD3DX12_TILED_RESOURCE_COORDINATE()
449  {}
450  explicit CD3DX12_TILED_RESOURCE_COORDINATE(const D3D12_TILED_RESOURCE_COORDINATE &o) :
451  D3D12_TILED_RESOURCE_COORDINATE(o)
452  {}
453  CD3DX12_TILED_RESOURCE_COORDINATE(
454  UINT x,
455  UINT y,
456  UINT z,
457  UINT subresource )
458  {
459  X = x;
460  Y = y;
461  Z = z;
462  Subresource = subresource;
463  }
464  operator const D3D12_TILED_RESOURCE_COORDINATE&() const { return *this; }
465 };
466 
467 //------------------------------------------------------------------------------------------------
468 struct CD3DX12_TILE_REGION_SIZE : public D3D12_TILE_REGION_SIZE
469 {
470  CD3DX12_TILE_REGION_SIZE()
471  {}
472  explicit CD3DX12_TILE_REGION_SIZE(const D3D12_TILE_REGION_SIZE &o) :
473  D3D12_TILE_REGION_SIZE(o)
474  {}
475  CD3DX12_TILE_REGION_SIZE(
476  UINT numTiles,
477  BOOL useBox,
478  UINT width,
479  UINT16 height,
480  UINT16 depth )
481  {
482  NumTiles = numTiles;
483  UseBox = useBox;
484  Width = width;
485  Height = height;
486  Depth = depth;
487  }
488  operator const D3D12_TILE_REGION_SIZE&() const { return *this; }
489 };
490 
491 //------------------------------------------------------------------------------------------------
492 struct CD3DX12_SUBRESOURCE_TILING : public D3D12_SUBRESOURCE_TILING
493 {
494  CD3DX12_SUBRESOURCE_TILING()
495  {}
496  explicit CD3DX12_SUBRESOURCE_TILING(const D3D12_SUBRESOURCE_TILING &o) :
497  D3D12_SUBRESOURCE_TILING(o)
498  {}
499  CD3DX12_SUBRESOURCE_TILING(
500  UINT widthInTiles,
501  UINT16 heightInTiles,
502  UINT16 depthInTiles,
503  UINT startTileIndexInOverallResource )
504  {
505  WidthInTiles = widthInTiles;
506  HeightInTiles = heightInTiles;
507  DepthInTiles = depthInTiles;
508  StartTileIndexInOverallResource = startTileIndexInOverallResource;
509  }
510  operator const D3D12_SUBRESOURCE_TILING&() const { return *this; }
511 };
512 
513 //------------------------------------------------------------------------------------------------
514 struct CD3DX12_TILE_SHAPE : public D3D12_TILE_SHAPE
515 {
516  CD3DX12_TILE_SHAPE()
517  {}
518  explicit CD3DX12_TILE_SHAPE(const D3D12_TILE_SHAPE &o) :
519  D3D12_TILE_SHAPE(o)
520  {}
521  CD3DX12_TILE_SHAPE(
522  UINT widthInTexels,
523  UINT heightInTexels,
524  UINT depthInTexels )
525  {
526  WidthInTexels = widthInTexels;
527  HeightInTexels = heightInTexels;
528  DepthInTexels = depthInTexels;
529  }
530  operator const D3D12_TILE_SHAPE&() const { return *this; }
531 };
532 
533 //------------------------------------------------------------------------------------------------
534 struct CD3DX12_RESOURCE_BARRIER : public D3D12_RESOURCE_BARRIER
535 {
536  CD3DX12_RESOURCE_BARRIER()
537  {}
538  explicit CD3DX12_RESOURCE_BARRIER(const D3D12_RESOURCE_BARRIER &o) :
539  D3D12_RESOURCE_BARRIER(o)
540  {}
541  static inline CD3DX12_RESOURCE_BARRIER Transition(
542  _In_ ID3D12Resource* pResource,
543  D3D12_RESOURCE_STATES stateBefore,
544  D3D12_RESOURCE_STATES stateAfter,
545  UINT subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES,
546  D3D12_RESOURCE_BARRIER_FLAGS flags = D3D12_RESOURCE_BARRIER_FLAG_NONE)
547  {
548  CD3DX12_RESOURCE_BARRIER result;
549  ZeroMemory(&result, sizeof(result));
550  D3D12_RESOURCE_BARRIER &barrier = result;
551  result.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION;
552  result.Flags = flags;
553  barrier.Transition.pResource = pResource;
554  barrier.Transition.StateBefore = stateBefore;
555  barrier.Transition.StateAfter = stateAfter;
556  barrier.Transition.Subresource = subresource;
557  return result;
558  }
559  static inline CD3DX12_RESOURCE_BARRIER Aliasing(
560  _In_ ID3D12Resource* pResourceBefore,
561  _In_ ID3D12Resource* pResourceAfter)
562  {
563  CD3DX12_RESOURCE_BARRIER result;
564  ZeroMemory(&result, sizeof(result));
565  D3D12_RESOURCE_BARRIER &barrier = result;
566  result.Type = D3D12_RESOURCE_BARRIER_TYPE_ALIASING;
567  barrier.Aliasing.pResourceBefore = pResourceBefore;
568  barrier.Aliasing.pResourceAfter = pResourceAfter;
569  return result;
570  }
571  static inline CD3DX12_RESOURCE_BARRIER UAV(
572  _In_ ID3D12Resource* pResource)
573  {
574  CD3DX12_RESOURCE_BARRIER result;
575  ZeroMemory(&result, sizeof(result));
576  D3D12_RESOURCE_BARRIER &barrier = result;
577  result.Type = D3D12_RESOURCE_BARRIER_TYPE_UAV;
578  barrier.UAV.pResource = pResource;
579  return result;
580  }
581  operator const D3D12_RESOURCE_BARRIER&() const { return *this; }
582 };
583 
584 //------------------------------------------------------------------------------------------------
585 struct CD3DX12_PACKED_MIP_INFO : public D3D12_PACKED_MIP_INFO
586 {
587  CD3DX12_PACKED_MIP_INFO()
588  {}
589  explicit CD3DX12_PACKED_MIP_INFO(const D3D12_PACKED_MIP_INFO &o) :
590  D3D12_PACKED_MIP_INFO(o)
591  {}
592  CD3DX12_PACKED_MIP_INFO(
593  UINT8 numStandardMips,
594  UINT8 numPackedMips,
595  UINT numTilesForPackedMips,
596  UINT startTileIndexInOverallResource )
597  {
598  NumStandardMips = numStandardMips;
599  NumPackedMips = numPackedMips;
600  NumTilesForPackedMips = numTilesForPackedMips;
601  StartTileIndexInOverallResource = startTileIndexInOverallResource;
602  }
603  operator const D3D12_PACKED_MIP_INFO&() const { return *this; }
604 };
605 
606 //------------------------------------------------------------------------------------------------
607 struct CD3DX12_SUBRESOURCE_FOOTPRINT : public D3D12_SUBRESOURCE_FOOTPRINT
608 {
609  CD3DX12_SUBRESOURCE_FOOTPRINT()
610  {}
611  explicit CD3DX12_SUBRESOURCE_FOOTPRINT(const D3D12_SUBRESOURCE_FOOTPRINT &o) :
612  D3D12_SUBRESOURCE_FOOTPRINT(o)
613  {}
614  CD3DX12_SUBRESOURCE_FOOTPRINT(
615  DXGI_FORMAT format,
616  UINT width,
617  UINT height,
618  UINT depth,
619  UINT rowPitch )
620  {
621  Format = format;
622  Width = width;
623  Height = height;
624  Depth = depth;
625  RowPitch = rowPitch;
626  }
627  explicit CD3DX12_SUBRESOURCE_FOOTPRINT(
628  const D3D12_RESOURCE_DESC& resDesc,
629  UINT rowPitch )
630  {
631  Format = resDesc.Format;
632  Width = UINT( resDesc.Width );
633  Height = resDesc.Height;
634  Depth = (resDesc.Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? resDesc.DepthOrArraySize : 1);
635  RowPitch = rowPitch;
636  }
637  operator const D3D12_SUBRESOURCE_FOOTPRINT&() const { return *this; }
638 };
639 
640 //------------------------------------------------------------------------------------------------
641 struct CD3DX12_TEXTURE_COPY_LOCATION : public D3D12_TEXTURE_COPY_LOCATION
642 {
643  CD3DX12_TEXTURE_COPY_LOCATION()
644  {}
645  explicit CD3DX12_TEXTURE_COPY_LOCATION(const D3D12_TEXTURE_COPY_LOCATION &o) :
646  D3D12_TEXTURE_COPY_LOCATION(o)
647  {}
648  CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes) { pResource = pRes; }
649  CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes, D3D12_PLACED_SUBRESOURCE_FOOTPRINT const& Footprint)
650  {
651  pResource = pRes;
652  Type = D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT;
653  PlacedFootprint = Footprint;
654  }
655  CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes, UINT Sub)
656  {
657  pResource = pRes;
658  Type = D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX;
659  SubresourceIndex = Sub;
660  }
661 };
662 
663 //------------------------------------------------------------------------------------------------
664 struct CD3DX12_DESCRIPTOR_RANGE : public D3D12_DESCRIPTOR_RANGE
665 {
666  CD3DX12_DESCRIPTOR_RANGE() { }
667  explicit CD3DX12_DESCRIPTOR_RANGE(const D3D12_DESCRIPTOR_RANGE &o) :
668  D3D12_DESCRIPTOR_RANGE(o)
669  {}
670  CD3DX12_DESCRIPTOR_RANGE(
671  D3D12_DESCRIPTOR_RANGE_TYPE rangeType,
672  UINT numDescriptors,
673  UINT baseShaderRegister,
674  UINT registerSpace = 0,
675  UINT offsetInDescriptorsFromTableStart =
676  D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND)
677  {
678  Init(rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart);
679  }
680 
681  inline void Init(
682  D3D12_DESCRIPTOR_RANGE_TYPE rangeType,
683  UINT numDescriptors,
684  UINT baseShaderRegister,
685  UINT registerSpace = 0,
686  UINT offsetInDescriptorsFromTableStart =
687  D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND)
688  {
689  Init(*this, rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart);
690  }
691 
692  static inline void Init(
693  _Out_ D3D12_DESCRIPTOR_RANGE &range,
694  D3D12_DESCRIPTOR_RANGE_TYPE rangeType,
695  UINT numDescriptors,
696  UINT baseShaderRegister,
697  UINT registerSpace = 0,
698  UINT offsetInDescriptorsFromTableStart =
699  D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND)
700  {
701  range.RangeType = rangeType;
702  range.NumDescriptors = numDescriptors;
703  range.BaseShaderRegister = baseShaderRegister;
704  range.RegisterSpace = registerSpace;
705  range.OffsetInDescriptorsFromTableStart = offsetInDescriptorsFromTableStart;
706  }
707 };
708 
709 //------------------------------------------------------------------------------------------------
710 struct CD3DX12_ROOT_DESCRIPTOR_TABLE : public D3D12_ROOT_DESCRIPTOR_TABLE
711 {
712  CD3DX12_ROOT_DESCRIPTOR_TABLE() {}
713  explicit CD3DX12_ROOT_DESCRIPTOR_TABLE(const D3D12_ROOT_DESCRIPTOR_TABLE &o) :
714  D3D12_ROOT_DESCRIPTOR_TABLE(o)
715  {}
716  CD3DX12_ROOT_DESCRIPTOR_TABLE(
717  UINT numDescriptorRanges,
718  _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges)
719  {
720  Init(numDescriptorRanges, _pDescriptorRanges);
721  }
722 
723  inline void Init(
724  UINT numDescriptorRanges,
725  _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges)
726  {
727  Init(*this, numDescriptorRanges, _pDescriptorRanges);
728  }
729 
730  static inline void Init(
731  _Out_ D3D12_ROOT_DESCRIPTOR_TABLE &rootDescriptorTable,
732  UINT numDescriptorRanges,
733  _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges)
734  {
735  rootDescriptorTable.NumDescriptorRanges = numDescriptorRanges;
736  rootDescriptorTable.pDescriptorRanges = _pDescriptorRanges;
737  }
738 };
739 
740 //------------------------------------------------------------------------------------------------
741 struct CD3DX12_ROOT_CONSTANTS : public D3D12_ROOT_CONSTANTS
742 {
743  CD3DX12_ROOT_CONSTANTS() {}
744  explicit CD3DX12_ROOT_CONSTANTS(const D3D12_ROOT_CONSTANTS &o) :
745  D3D12_ROOT_CONSTANTS(o)
746  {}
747  CD3DX12_ROOT_CONSTANTS(
748  UINT num32BitValues,
749  UINT shaderRegister,
750  UINT registerSpace = 0)
751  {
752  Init(num32BitValues, shaderRegister, registerSpace);
753  }
754 
755  inline void Init(
756  UINT num32BitValues,
757  UINT shaderRegister,
758  UINT registerSpace = 0)
759  {
760  Init(*this, num32BitValues, shaderRegister, registerSpace);
761  }
762 
763  static inline void Init(
764  _Out_ D3D12_ROOT_CONSTANTS &rootConstants,
765  UINT num32BitValues,
766  UINT shaderRegister,
767  UINT registerSpace = 0)
768  {
769  rootConstants.Num32BitValues = num32BitValues;
770  rootConstants.ShaderRegister = shaderRegister;
771  rootConstants.RegisterSpace = registerSpace;
772  }
773 };
774 
775 //------------------------------------------------------------------------------------------------
776 struct CD3DX12_ROOT_DESCRIPTOR : public D3D12_ROOT_DESCRIPTOR
777 {
778  CD3DX12_ROOT_DESCRIPTOR() {}
779  explicit CD3DX12_ROOT_DESCRIPTOR(const D3D12_ROOT_DESCRIPTOR &o) :
780  D3D12_ROOT_DESCRIPTOR(o)
781  {}
782  CD3DX12_ROOT_DESCRIPTOR(
783  UINT shaderRegister,
784  UINT registerSpace = 0)
785  {
786  Init(shaderRegister, registerSpace);
787  }
788 
789  inline void Init(
790  UINT shaderRegister,
791  UINT registerSpace = 0)
792  {
793  Init(*this, shaderRegister, registerSpace);
794  }
795 
796  static inline void Init(_Out_ D3D12_ROOT_DESCRIPTOR &table, UINT shaderRegister, UINT registerSpace = 0)
797  {
798  table.ShaderRegister = shaderRegister;
799  table.RegisterSpace = registerSpace;
800  }
801 };
802 
803 //------------------------------------------------------------------------------------------------
804 struct CD3DX12_ROOT_PARAMETER : public D3D12_ROOT_PARAMETER
805 {
806  CD3DX12_ROOT_PARAMETER() {}
807  explicit CD3DX12_ROOT_PARAMETER(const D3D12_ROOT_PARAMETER &o) :
808  D3D12_ROOT_PARAMETER(o)
809  {}
810 
811  static inline void InitAsDescriptorTable(
812  _Out_ D3D12_ROOT_PARAMETER &rootParam,
813  UINT numDescriptorRanges,
814  _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges,
815  D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL)
816  {
817  rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE;
818  rootParam.ShaderVisibility = visibility;
819  CD3DX12_ROOT_DESCRIPTOR_TABLE::Init(rootParam.DescriptorTable, numDescriptorRanges, pDescriptorRanges);
820  }
821 
822  static inline void InitAsConstants(
823  _Out_ D3D12_ROOT_PARAMETER &rootParam,
824  UINT num32BitValues,
825  UINT shaderRegister,
826  UINT registerSpace = 0,
827  D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL)
828  {
829  rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS;
830  rootParam.ShaderVisibility = visibility;
831  CD3DX12_ROOT_CONSTANTS::Init(rootParam.Constants, num32BitValues, shaderRegister, registerSpace);
832  }
833 
834  static inline void InitAsConstantBufferView(
835  _Out_ D3D12_ROOT_PARAMETER &rootParam,
836  UINT shaderRegister,
837  UINT registerSpace = 0,
838  D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL)
839  {
840  rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV;
841  rootParam.ShaderVisibility = visibility;
842  CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace);
843  }
844 
845  static inline void InitAsShaderResourceView(
846  _Out_ D3D12_ROOT_PARAMETER &rootParam,
847  UINT shaderRegister,
848  UINT registerSpace = 0,
849  D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL)
850  {
851  rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_SRV;
852  rootParam.ShaderVisibility = visibility;
853  CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace);
854  }
855 
856  static inline void InitAsUnorderedAccessView(
857  _Out_ D3D12_ROOT_PARAMETER &rootParam,
858  UINT shaderRegister,
859  UINT registerSpace = 0,
860  D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL)
861  {
862  rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_UAV;
863  rootParam.ShaderVisibility = visibility;
864  CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace);
865  }
866 
867  inline void InitAsDescriptorTable(
868  UINT numDescriptorRanges,
869  _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges,
870  D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL)
871  {
872  InitAsDescriptorTable(*this, numDescriptorRanges, pDescriptorRanges, visibility);
873  }
874 
875  inline void InitAsConstants(
876  UINT num32BitValues,
877  UINT shaderRegister,
878  UINT registerSpace = 0,
879  D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL)
880  {
881  InitAsConstants(*this, num32BitValues, shaderRegister, registerSpace, visibility);
882  }
883 
884  inline void InitAsConstantBufferView(
885  UINT shaderRegister,
886  UINT registerSpace = 0,
887  D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL)
888  {
889  InitAsConstantBufferView(*this, shaderRegister, registerSpace, visibility);
890  }
891 
892  inline void InitAsShaderResourceView(
893  UINT shaderRegister,
894  UINT registerSpace = 0,
895  D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL)
896  {
897  InitAsShaderResourceView(*this, shaderRegister, registerSpace, visibility);
898  }
899 
900  inline void InitAsUnorderedAccessView(
901  UINT shaderRegister,
902  UINT registerSpace = 0,
903  D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL)
904  {
905  InitAsUnorderedAccessView(*this, shaderRegister, registerSpace, visibility);
906  }
907 };
908 
909 //------------------------------------------------------------------------------------------------
910 struct CD3DX12_STATIC_SAMPLER_DESC : public D3D12_STATIC_SAMPLER_DESC
911 {
912  CD3DX12_STATIC_SAMPLER_DESC() {}
913  explicit CD3DX12_STATIC_SAMPLER_DESC(const D3D12_STATIC_SAMPLER_DESC &o) :
914  D3D12_STATIC_SAMPLER_DESC(o)
915  {}
916  CD3DX12_STATIC_SAMPLER_DESC(
917  UINT shaderRegister,
918  D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC,
919  D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP,
920  D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP,
921  D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP,
922  FLOAT mipLODBias = 0,
923  UINT maxAnisotropy = 16,
924  D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL,
925  D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE,
926  FLOAT minLOD = 0.f,
927  FLOAT maxLOD = D3D12_FLOAT32_MAX,
928  D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL,
929  UINT registerSpace = 0)
930  {
931  Init(
932  shaderRegister,
933  filter,
934  addressU,
935  addressV,
936  addressW,
937  mipLODBias,
938  maxAnisotropy,
939  comparisonFunc,
940  borderColor,
941  minLOD,
942  maxLOD,
943  shaderVisibility,
944  registerSpace);
945  }
946 
947  static inline void Init(
948  _Out_ D3D12_STATIC_SAMPLER_DESC &samplerDesc,
949  UINT shaderRegister,
950  D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC,
951  D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP,
952  D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP,
953  D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP,
954  FLOAT mipLODBias = 0,
955  UINT maxAnisotropy = 16,
956  D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL,
957  D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE,
958  FLOAT minLOD = 0.f,
959  FLOAT maxLOD = D3D12_FLOAT32_MAX,
960  D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL,
961  UINT registerSpace = 0)
962  {
963  samplerDesc.ShaderRegister = shaderRegister;
964  samplerDesc.Filter = filter;
965  samplerDesc.AddressU = addressU;
966  samplerDesc.AddressV = addressV;
967  samplerDesc.AddressW = addressW;
968  samplerDesc.MipLODBias = mipLODBias;
969  samplerDesc.MaxAnisotropy = maxAnisotropy;
970  samplerDesc.ComparisonFunc = comparisonFunc;
971  samplerDesc.BorderColor = borderColor;
972  samplerDesc.MinLOD = minLOD;
973  samplerDesc.MaxLOD = maxLOD;
974  samplerDesc.ShaderVisibility = shaderVisibility;
975  samplerDesc.RegisterSpace = registerSpace;
976  }
977  inline void Init(
978  UINT shaderRegister,
979  D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC,
980  D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP,
981  D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP,
982  D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP,
983  FLOAT mipLODBias = 0,
984  UINT maxAnisotropy = 16,
985  D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL,
986  D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE,
987  FLOAT minLOD = 0.f,
988  FLOAT maxLOD = D3D12_FLOAT32_MAX,
989  D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL,
990  UINT registerSpace = 0)
991  {
992  Init(
993  *this,
994  shaderRegister,
995  filter,
996  addressU,
997  addressV,
998  addressW,
999  mipLODBias,
1000  maxAnisotropy,
1001  comparisonFunc,
1002  borderColor,
1003  minLOD,
1004  maxLOD,
1005  shaderVisibility,
1006  registerSpace);
1007  }
1008 
1009 };
1010 
1011 //------------------------------------------------------------------------------------------------
1012 struct CD3DX12_ROOT_SIGNATURE_DESC : public D3D12_ROOT_SIGNATURE_DESC
1013 {
1014  CD3DX12_ROOT_SIGNATURE_DESC() {}
1015  explicit CD3DX12_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC &o) :
1016  D3D12_ROOT_SIGNATURE_DESC(o)
1017  {}
1018  CD3DX12_ROOT_SIGNATURE_DESC(
1019  UINT numParameters,
1020  _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters,
1021  UINT numStaticSamplers = 0,
1022  _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL,
1023  D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE)
1024  {
1025  Init(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags);
1026  }
1027  CD3DX12_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT)
1028  {
1029  Init(0, NULL, 0, NULL, D3D12_ROOT_SIGNATURE_FLAG_NONE);
1030  }
1031 
1032  inline void Init(
1033  UINT numParameters,
1034  _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters,
1035  UINT numStaticSamplers = 0,
1036  _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL,
1037  D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE)
1038  {
1039  Init(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags);
1040  }
1041 
1042  static inline void Init(
1043  _Out_ D3D12_ROOT_SIGNATURE_DESC &desc,
1044  UINT numParameters,
1045  _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters,
1046  UINT numStaticSamplers = 0,
1047  _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL,
1048  D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE)
1049  {
1050  desc.NumParameters = numParameters;
1051  desc.pParameters = _pParameters;
1052  desc.NumStaticSamplers = numStaticSamplers;
1053  desc.pStaticSamplers = _pStaticSamplers;
1054  desc.Flags = flags;
1055  }
1056 };
1057 
1058 //------------------------------------------------------------------------------------------------
1059 struct CD3DX12_CPU_DESCRIPTOR_HANDLE : public D3D12_CPU_DESCRIPTOR_HANDLE
1060 {
1061  CD3DX12_CPU_DESCRIPTOR_HANDLE() {}
1062  explicit CD3DX12_CPU_DESCRIPTOR_HANDLE(const D3D12_CPU_DESCRIPTOR_HANDLE &o) :
1063  D3D12_CPU_DESCRIPTOR_HANDLE(o)
1064  {}
1065  CD3DX12_CPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) { ptr = 0; }
1066  CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize)
1067  {
1068  InitOffsetted(other, offsetScaledByIncrementSize);
1069  }
1070  CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize)
1071  {
1072  InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize);
1073  }
1074  CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize)
1075  {
1076  ptr += offsetInDescriptors * descriptorIncrementSize;
1077  return *this;
1078  }
1079  CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize)
1080  {
1081  ptr += offsetScaledByIncrementSize;
1082  return *this;
1083  }
1084  bool operator==(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other)
1085  {
1086  return (ptr == other.ptr);
1087  }
1088  bool operator!=(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other)
1089  {
1090  return (ptr != other.ptr);
1091  }
1092  CD3DX12_CPU_DESCRIPTOR_HANDLE &operator=(const D3D12_CPU_DESCRIPTOR_HANDLE &other)
1093  {
1094  ptr = other.ptr;
1095  return *this;
1096  }
1097 
1098  inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize)
1099  {
1100  InitOffsetted(*this, base, offsetScaledByIncrementSize);
1101  }
1102 
1103  inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize)
1104  {
1105  InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize);
1106  }
1107 
1108  static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize)
1109  {
1110  handle.ptr = base.ptr + offsetScaledByIncrementSize;
1111  }
1112 
1113  static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize)
1114  {
1115  handle.ptr = base.ptr + offsetInDescriptors * descriptorIncrementSize;
1116  }
1117 };
1118 
1119 //------------------------------------------------------------------------------------------------
1120 struct CD3DX12_GPU_DESCRIPTOR_HANDLE : public D3D12_GPU_DESCRIPTOR_HANDLE
1121 {
1122  CD3DX12_GPU_DESCRIPTOR_HANDLE() {}
1123  explicit CD3DX12_GPU_DESCRIPTOR_HANDLE(const D3D12_GPU_DESCRIPTOR_HANDLE &o) :
1124  D3D12_GPU_DESCRIPTOR_HANDLE(o)
1125  {}
1126  CD3DX12_GPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) { ptr = 0; }
1127  CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize)
1128  {
1129  InitOffsetted(other, offsetScaledByIncrementSize);
1130  }
1131  CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize)
1132  {
1133  InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize);
1134  }
1135  CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize)
1136  {
1137  ptr += offsetInDescriptors * descriptorIncrementSize;
1138  return *this;
1139  }
1140  CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize)
1141  {
1142  ptr += offsetScaledByIncrementSize;
1143  return *this;
1144  }
1145  inline bool operator==(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other)
1146  {
1147  return (ptr == other.ptr);
1148  }
1149  inline bool operator!=(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other)
1150  {
1151  return (ptr != other.ptr);
1152  }
1153  CD3DX12_GPU_DESCRIPTOR_HANDLE &operator=(const D3D12_GPU_DESCRIPTOR_HANDLE &other)
1154  {
1155  ptr = other.ptr;
1156  return *this;
1157  }
1158 
1159  inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize)
1160  {
1161  InitOffsetted(*this, base, offsetScaledByIncrementSize);
1162  }
1163 
1164  inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize)
1165  {
1166  InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize);
1167  }
1168 
1169  static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize)
1170  {
1171  handle.ptr = base.ptr + offsetScaledByIncrementSize;
1172  }
1173 
1174  static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize)
1175  {
1176  handle.ptr = base.ptr + offsetInDescriptors * descriptorIncrementSize;
1177  }
1178 };
1179 
1180 //------------------------------------------------------------------------------------------------
1181 inline UINT D3D12CalcSubresource( UINT MipSlice, UINT ArraySlice, UINT PlaneSlice, UINT MipLevels, UINT ArraySize )
1182 {
1183  return MipSlice + ArraySlice * MipLevels + PlaneSlice * MipLevels * ArraySize;
1184 }
1185 
1186 //------------------------------------------------------------------------------------------------
1187 template <typename T, typename U, typename V>
1188 inline void D3D12DecomposeSubresource( UINT Subresource, UINT MipLevels, UINT ArraySize, _Out_ T& MipSlice, _Out_ U& ArraySlice, _Out_ V& PlaneSlice )
1189 {
1190  MipSlice = static_cast<T>(Subresource % MipLevels);
1191  ArraySlice = static_cast<U>((Subresource / MipLevels) % ArraySize);
1192  PlaneSlice = static_cast<V>(Subresource / (MipLevels * ArraySize));
1193 }
1194 
1195 //------------------------------------------------------------------------------------------------
1196 inline UINT8 D3D12GetFormatPlaneCount(
1197  _In_ ID3D12Device* pDevice,
1198  DXGI_FORMAT Format
1199  )
1200 {
1201  D3D12_FEATURE_DATA_FORMAT_INFO formatInfo = {Format};
1202  if (FAILED(pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_INFO, &formatInfo, sizeof(formatInfo))))
1203  {
1204  return 0;
1205  }
1206  return formatInfo.PlaneCount;
1207 }
1208 
1209 //------------------------------------------------------------------------------------------------
1210 struct CD3DX12_RESOURCE_DESC : public D3D12_RESOURCE_DESC
1211 {
1212  CD3DX12_RESOURCE_DESC()
1213  {}
1214  explicit CD3DX12_RESOURCE_DESC( const D3D12_RESOURCE_DESC& o ) :
1215  D3D12_RESOURCE_DESC( o )
1216  {}
1217  CD3DX12_RESOURCE_DESC(
1218  D3D12_RESOURCE_DIMENSION dimension,
1219  UINT64 alignment,
1220  UINT64 width,
1221  UINT height,
1222  UINT16 depthOrArraySize,
1223  UINT16 mipLevels,
1224  DXGI_FORMAT format,
1225  UINT sampleCount,
1226  UINT sampleQuality,
1227  D3D12_TEXTURE_LAYOUT layout,
1228  D3D12_RESOURCE_FLAGS flags )
1229  {
1230  Dimension = dimension;
1231  Alignment = alignment;
1232  Width = width;
1233  Height = height;
1234  DepthOrArraySize = depthOrArraySize;
1235  MipLevels = mipLevels;
1236  Format = format;
1237  SampleDesc.Count = sampleCount;
1238  SampleDesc.Quality = sampleQuality;
1239  Layout = layout;
1240  Flags = flags;
1241  }
1242  static inline CD3DX12_RESOURCE_DESC Buffer(
1243  const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo,
1244  D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE )
1245  {
1246  return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_BUFFER, resAllocInfo.Alignment, resAllocInfo.SizeInBytes,
1247  1, 1, 1, DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags );
1248  }
1249  static inline CD3DX12_RESOURCE_DESC Buffer(
1250  UINT64 width,
1251  D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE,
1252  UINT64 alignment = 0 )
1253  {
1254  return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_BUFFER, alignment, width, 1, 1, 1,
1255  DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags );
1256  }
1257  static inline CD3DX12_RESOURCE_DESC Tex1D(
1258  DXGI_FORMAT format,
1259  UINT64 width,
1260  UINT16 arraySize = 1,
1261  UINT16 mipLevels = 0,
1262  D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE,
1263  D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN,
1264  UINT64 alignment = 0 )
1265  {
1266  return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE1D, alignment, width, 1, arraySize,
1267  mipLevels, format, 1, 0, layout, flags );
1268  }
1269  static inline CD3DX12_RESOURCE_DESC Tex2D(
1270  DXGI_FORMAT format,
1271  UINT64 width,
1272  UINT height,
1273  UINT16 arraySize = 1,
1274  UINT16 mipLevels = 0,
1275  UINT sampleCount = 1,
1276  UINT sampleQuality = 0,
1277  D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE,
1278  D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN,
1279  UINT64 alignment = 0 )
1280  {
1281  return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE2D, alignment, width, height, arraySize,
1282  mipLevels, format, sampleCount, sampleQuality, layout, flags );
1283  }
1284  static inline CD3DX12_RESOURCE_DESC Tex3D(
1285  DXGI_FORMAT format,
1286  UINT64 width,
1287  UINT height,
1288  UINT16 depth,
1289  UINT16 mipLevels = 0,
1290  D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE,
1291  D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN,
1292  UINT64 alignment = 0 )
1293  {
1294  return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE3D, alignment, width, height, depth,
1295  mipLevels, format, 1, 0, layout, flags );
1296  }
1297  inline UINT16 Depth() const
1298  { return (Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1); }
1299  inline UINT16 ArraySize() const
1300  { return (Dimension != D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1); }
1301  inline UINT8 PlaneCount(_In_ ID3D12Device* pDevice) const
1302  { return D3D12GetFormatPlaneCount(pDevice, Format); }
1303  inline UINT Subresources(_In_ ID3D12Device* pDevice) const
1304  { return MipLevels * ArraySize() * PlaneCount(pDevice); }
1305  inline UINT CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT PlaneSlice)
1306  { return D3D12CalcSubresource(MipSlice, ArraySlice, PlaneSlice, MipLevels, ArraySize()); }
1307  operator const D3D12_RESOURCE_DESC&() const { return *this; }
1308 };
1309 inline bool operator==( const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r )
1310 {
1311  return l.Dimension == r.Dimension &&
1312  l.Alignment == r.Alignment &&
1313  l.Width == r.Width &&
1314  l.Height == r.Height &&
1315  l.DepthOrArraySize == r.DepthOrArraySize &&
1316  l.MipLevels == r.MipLevels &&
1317  l.Format == r.Format &&
1318  l.SampleDesc.Count == r.SampleDesc.Count &&
1319  l.SampleDesc.Quality == r.SampleDesc.Quality &&
1320  l.Layout == r.Layout &&
1321  l.Flags == r.Flags;
1322 }
1323 inline bool operator!=( const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r )
1324 { return !( l == r ); }
1325 
1326 //------------------------------------------------------------------------------------------------
1327 // Row-by-row memcpy
1328 inline void MemcpySubresource(
1329  _In_ const D3D12_MEMCPY_DEST* pDest,
1330  _In_ const D3D12_SUBRESOURCE_DATA* pSrc,
1331  SIZE_T RowSizeInBytes,
1332  UINT NumRows,
1333  UINT NumSlices)
1334 {
1335  for (UINT z = 0; z < NumSlices; ++z)
1336  {
1337  BYTE* pDestSlice = reinterpret_cast<BYTE*>(pDest->pData) + pDest->SlicePitch * z;
1338  const BYTE* pSrcSlice = reinterpret_cast<const BYTE*>(pSrc->pData) + pSrc->SlicePitch * z;
1339  for (UINT y = 0; y < NumRows; ++y)
1340  {
1341  memcpy(pDestSlice + pDest->RowPitch * y,
1342  pSrcSlice + pSrc->RowPitch * y,
1343  RowSizeInBytes);
1344  }
1345  }
1346 }
1347 
1348 //------------------------------------------------------------------------------------------------
1349 // Returns required size of a buffer to be used for data upload
1350 inline UINT64 GetRequiredIntermediateSize(
1351  _In_ ID3D12Resource* pDestinationResource,
1352  _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
1353  _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources)
1354 {
1355  D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc();
1356  UINT64 RequiredSize = 0;
1357 
1358  ID3D12Device* pDevice;
1359  pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast<void**>(&pDevice));
1360  pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, 0, nullptr, nullptr, nullptr, &RequiredSize);
1361  pDevice->Release();
1362 
1363  return RequiredSize;
1364 }
1365 
1366 //------------------------------------------------------------------------------------------------
1367 // All arrays must be populated (e.g. by calling GetCopyableFootprints)
1368 inline UINT64 UpdateSubresources(
1369  _In_ ID3D12GraphicsCommandList* pCmdList,
1370  _In_ ID3D12Resource* pDestinationResource,
1371  _In_ ID3D12Resource* pIntermediate,
1372  _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
1373  _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
1374  UINT64 RequiredSize,
1375  _In_reads_(NumSubresources) const D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts,
1376  _In_reads_(NumSubresources) const UINT* pNumRows,
1377  _In_reads_(NumSubresources) const UINT64* pRowSizesInBytes,
1378  _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_DATA* pSrcData)
1379 {
1380  // Minor validation
1381  D3D12_RESOURCE_DESC IntermediateDesc = pIntermediate->GetDesc();
1382  D3D12_RESOURCE_DESC DestinationDesc = pDestinationResource->GetDesc();
1383  if (IntermediateDesc.Dimension != D3D12_RESOURCE_DIMENSION_BUFFER ||
1384  IntermediateDesc.Width < RequiredSize + pLayouts[0].Offset ||
1385  RequiredSize > (SIZE_T)-1 ||
1386  (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER &&
1387  (FirstSubresource != 0 || NumSubresources != 1)))
1388  {
1389  return 0;
1390  }
1391 
1392  BYTE* pData;
1393  HRESULT hr = pIntermediate->Map(0, NULL, reinterpret_cast<void**>(&pData));
1394  if (FAILED(hr))
1395  {
1396  return 0;
1397  }
1398 
1399  for (UINT i = 0; i < NumSubresources; ++i)
1400  {
1401  if (pRowSizesInBytes[i] > (SIZE_T)-1) return 0;
1402  D3D12_MEMCPY_DEST DestData = { pData + pLayouts[i].Offset, pLayouts[i].Footprint.RowPitch, pLayouts[i].Footprint.RowPitch * pNumRows[i] };
1403  MemcpySubresource(&DestData, &pSrcData[i], (SIZE_T)pRowSizesInBytes[i], pNumRows[i], pLayouts[i].Footprint.Depth);
1404  }
1405  pIntermediate->Unmap(0, NULL);
1406 
1407  if (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER)
1408  {
1409  CD3DX12_BOX SrcBox( UINT( pLayouts[0].Offset ), UINT( pLayouts[0].Offset + pLayouts[0].Footprint.Width ) );
1410  pCmdList->CopyBufferRegion(
1411  pDestinationResource, 0, pIntermediate, pLayouts[0].Offset, pLayouts[0].Footprint.Width);
1412  }
1413  else
1414  {
1415  for (UINT i = 0; i < NumSubresources; ++i)
1416  {
1417  CD3DX12_TEXTURE_COPY_LOCATION Dst(pDestinationResource, i + FirstSubresource);
1418  CD3DX12_TEXTURE_COPY_LOCATION Src(pIntermediate, pLayouts[i]);
1419  pCmdList->CopyTextureRegion(&Dst, 0, 0, 0, &Src, nullptr);
1420  }
1421  }
1422  return RequiredSize;
1423 }
1424 
1425 //------------------------------------------------------------------------------------------------
1426 // Heap-allocating UpdateSubresources implementation
1427 inline UINT64 UpdateSubresources(
1428  _In_ ID3D12GraphicsCommandList* pCmdList,
1429  _In_ ID3D12Resource* pDestinationResource,
1430  _In_ ID3D12Resource* pIntermediate,
1431  UINT64 IntermediateOffset,
1432  _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
1433  _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
1434  _In_reads_(NumSubresources) D3D12_SUBRESOURCE_DATA* pSrcData)
1435 {
1436  UINT64 RequiredSize = 0;
1437  UINT64 MemToAlloc = static_cast<UINT64>(sizeof(D3D12_PLACED_SUBRESOURCE_FOOTPRINT) + sizeof(UINT) + sizeof(UINT64)) * NumSubresources;
1438  if (MemToAlloc > SIZE_MAX)
1439  {
1440  return 0;
1441  }
1442  void* pMem = HeapAlloc(GetProcessHeap(), 0, static_cast<SIZE_T>(MemToAlloc));
1443  if (pMem == NULL)
1444  {
1445  return 0;
1446  }
1447  D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts = reinterpret_cast<D3D12_PLACED_SUBRESOURCE_FOOTPRINT*>(pMem);
1448  UINT64* pRowSizesInBytes = reinterpret_cast<UINT64*>(pLayouts + NumSubresources);
1449  UINT* pNumRows = reinterpret_cast<UINT*>(pRowSizesInBytes + NumSubresources);
1450 
1451  D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc();
1452  ID3D12Device* pDevice;
1453  pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast<void**>(&pDevice));
1454  pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, pLayouts, pNumRows, pRowSizesInBytes, &RequiredSize);
1455  pDevice->Release();
1456 
1457  UINT64 Result = UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, pLayouts, pNumRows, pRowSizesInBytes, pSrcData);
1458  HeapFree(GetProcessHeap(), 0, pMem);
1459  return Result;
1460 }
1461 
1462 //------------------------------------------------------------------------------------------------
1463 // Stack-allocating UpdateSubresources implementation
1464 template <UINT MaxSubresources>
1465 inline UINT64 UpdateSubresources(
1466  _In_ ID3D12GraphicsCommandList* pCmdList,
1467  _In_ ID3D12Resource* pDestinationResource,
1468  _In_ ID3D12Resource* pIntermediate,
1469  UINT64 IntermediateOffset,
1470  _In_range_(0, MaxSubresources) UINT FirstSubresource,
1471  _In_range_(1, MaxSubresources - FirstSubresource) UINT NumSubresources,
1472  _In_reads_(NumSubresources) D3D12_SUBRESOURCE_DATA* pSrcData)
1473 {
1474  UINT64 RequiredSize = 0;
1475  D3D12_PLACED_SUBRESOURCE_FOOTPRINT Layouts[MaxSubresources];
1476  UINT NumRows[MaxSubresources];
1477  UINT64 RowSizesInBytes[MaxSubresources];
1478 
1479  D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc();
1480  ID3D12Device* pDevice;
1481  pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast<void**>(&pDevice));
1482  pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, Layouts, NumRows, RowSizesInBytes, &RequiredSize);
1483  pDevice->Release();
1484 
1485  return UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, Layouts, NumRows, RowSizesInBytes, pSrcData);
1486 }
1487 
1488 //------------------------------------------------------------------------------------------------
1489 inline bool D3D12IsLayoutOpaque( D3D12_TEXTURE_LAYOUT Layout )
1490 { return Layout == D3D12_TEXTURE_LAYOUT_UNKNOWN || Layout == D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE; }
1491 
1492 //------------------------------------------------------------------------------------------------
1493 inline ID3D12CommandList * const * CommandListCast(ID3D12GraphicsCommandList * const * pp)
1494 {
1495  // This cast is useful for passing strongly typed command list pointers into
1496  // ExecuteCommandLists.
1497  // This cast is valid as long as the const-ness is respected. D3D12 APIs do
1498  // respect the const-ness of their arguments.
1499  return reinterpret_cast<ID3D12CommandList * const *>(pp);
1500 }
1501 
1502 
1503 #endif // defined( __cplusplus )
1504 
1505 #endif //__D3DX12_H__
1506 
1507 
1508 
+ + + + + diff --git a/doc/html/dir_025bdc97dd64691b0b4f955c81213e8c.html b/doc/html/dir_025bdc97dd64691b0b4f955c81213e8c.html new file mode 100644 index 00000000..378e2c39 --- /dev/null +++ b/doc/html/dir_025bdc97dd64691b0b4f955c81213e8c.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsTools Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GraphicsTools Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_02d6d0846e01f3d88bd4a80b12ddffed.html b/doc/html/dir_02d6d0846e01f3d88bd4a80b12ddffed.html new file mode 100644 index 00000000..7063972f --- /dev/null +++ b/doc/html/dir_02d6d0846e01f3d88bd4a80b12ddffed.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/build/cmake/testbuild Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
testbuild Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_06ef4e3f07a13813ee5ae3ec0e9bad35.html b/doc/html/dir_06ef4e3f07a13813ee5ae3ec0e9bad35.html new file mode 100644 index 00000000..16732595 --- /dev/null +++ b/doc/html/dir_06ef4e3f07a13813ee5ae3ec0e9bad35.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Android Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Android Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_09e59e443c246ed342ba89292195248a.html b/doc/html/dir_09e59e443c246ed342ba89292195248a.html new file mode 100644 index 00000000..644ce09f --- /dev/null +++ b/doc/html/dir_09e59e443c246ed342ba89292195248a.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Basic/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_1238e6cbf5461cee8548eafbea3fb374.html b/doc/html/dir_1238e6cbf5461cee8548eafbea3fb374.html new file mode 100644 index 00000000..2b080b48 --- /dev/null +++ b/doc/html/dir_1238e6cbf5461cee8548eafbea3fb374.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/auto Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
auto Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_167d4bd16e8890a7cd2ff5ec5270769a.html b/doc/html/dir_167d4bd16e8890a7cd2ff5ec5270769a.html new file mode 100644 index 00000000..00af04eb --- /dev/null +++ b/doc/html/dir_167d4bd16e8890a7cd2ff5ec5270769a.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/ndk_helper/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_1f72b11abb8bace4525c8c39e6f19341.html b/doc/html/dir_1f72b11abb8bace4525c8c39e6f19341.html new file mode 100644 index 00000000..ac86b36b --- /dev/null +++ b/doc/html/dir_1f72b11abb8bace4525c8c39e6f19341.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsAccessories Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GraphicsAccessories Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_23a53e76397ca6b389073375cca4ee24.html b/doc/html/dir_23a53e76397ca6b389073375cca4ee24.html new file mode 100644 index 00000000..7c064964 --- /dev/null +++ b/doc/html/dir_23a53e76397ca6b389073375cca4ee24.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3DBase/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_2424fdfe65d59a93479936929e7463cb.html b/doc/html/dir_2424fdfe65d59a93479936929e7463cb.html new file mode 100644 index 00000000..5f1820a1 --- /dev/null +++ b/doc/html/dir_2424fdfe65d59a93479936929e7463cb.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Android/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_2fe9345e431230b3d055068f7e103e1c.html b/doc/html/dir_2fe9345e431230b3d055068f7e103e1c.html new file mode 100644 index 00000000..eef82483 --- /dev/null +++ b/doc/html/dir_2fe9345e431230b3d055068f7e103e1c.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_3048468492d713bfc2aaa22d8490a571.html b/doc/html/dir_3048468492d713bfc2aaa22d8490a571.html new file mode 100644 index 00000000..9d47a3b5 --- /dev/null +++ b/doc/html/dir_3048468492d713bfc2aaa22d8490a571.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Basic Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Basic Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_344658fcb16a13a09094a2878bfe0cc6.html b/doc/html/dir_344658fcb16a13a09094a2878bfe0cc6.html new file mode 100644 index 00000000..09824dad --- /dev/null +++ b/doc/html/dir_344658fcb16a13a09094a2878bfe0cc6.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/native_app_glue Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
native_app_glue Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_3752367cbca4c9b58dde90984de9bccc.html b/doc/html/dir_3752367cbca4c9b58dde90984de9bccc.html new file mode 100644 index 00000000..1f7385a6 --- /dev/null +++ b/doc/html/dir_3752367cbca4c9b58dde90984de9bccc.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_3a4ebd241e0adc51deb2a66da42ae463.html b/doc/html/dir_3a4ebd241e0adc51deb2a66da42ae463.html new file mode 100644 index 00000000..39681225 --- /dev/null +++ b/doc/html/dir_3a4ebd241e0adc51deb2a66da42ae463.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsAccessories/interface Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
interface Directory Reference
+
+
+ + + + + + + + +

+Files

file  GraphicsAccessories.h [code]
 Defines graphics engine utilities.
 
file  RingBuffer.h [code]
 Implementation of Diligent::RingBuffer class.
 
+
+ + + + + diff --git a/doc/html/dir_3a819408b9777a60f7f57340e4147aae.html b/doc/html/dir_3a819408b9777a60f7f57340e4147aae.html new file mode 100644 index 00000000..bbd1b182 --- /dev/null +++ b/doc/html/dir_3a819408b9777a60f7f57340e4147aae.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
glew Directory Reference
+
+
+ + + + + + + + +

+Directories

directory  auto
 
directory  build
 
directory  include
 
+
+ + + + + diff --git a/doc/html/dir_41be5404b15064fd6cb707edbcd785b7.html b/doc/html/dir_41be5404b15064fd6cb707edbcd785b7.html new file mode 100644 index 00000000..40c81905 --- /dev/null +++ b/doc/html/dir_41be5404b15064fd6cb707edbcd785b7.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/ndk_helper/src/java Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
java Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_443fc37f241ba4018364a998c18d007b.html b/doc/html/dir_443fc37f241ba4018364a998c18d007b.html new file mode 100644 index 00000000..353c9c5b --- /dev/null +++ b/doc/html/dir_443fc37f241ba4018364a998c18d007b.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
External Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_4ab6b4cc6a7edbff49100e9123df213f.html b/doc/html/dir_4ab6b4cc6a7edbff49100e9123df213f.html new file mode 100644 index 00000000..882f1747 --- /dev/null +++ b/doc/html/dir_4ab6b4cc6a7edbff49100e9123df213f.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Common Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_4c3a11d98988e5797b69924924a84da2.html b/doc/html/dir_4c3a11d98988e5797b69924924a84da2.html new file mode 100644 index 00000000..9c13c106 --- /dev/null +++ b/doc/html/dir_4c3a11d98988e5797b69924924a84da2.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/interface Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
interface Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_4d872942c630370da04c302542204c89.html b/doc/html/dir_4d872942c630370da04c302542204c89.html new file mode 100644 index 00000000..4816a66e --- /dev/null +++ b/doc/html/dir_4d872942c630370da04c302542204c89.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Android/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_5141a14ee98b46749a6defb3839dab55.html b/doc/html/dir_5141a14ee98b46749a6defb3839dab55.html new file mode 100644 index 00000000..2d256652 --- /dev/null +++ b/doc/html/dir_5141a14ee98b46749a6defb3839dab55.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsTools/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+ + + + + + + + +

+Files

file  CommonlyUsedStates.h [code]
 Defines graphics engine utilities.
 
file  GraphicsUtilities.h [code]
 Defines graphics engine utilities.
 
+
+ + + + + diff --git a/doc/html/dir_5d3b9e51e9fbe434f439d538f18d672c.html b/doc/html/dir_5d3b9e51e9fbe434f439d538f18d672c.html new file mode 100644 index 00000000..b83207a2 --- /dev/null +++ b/doc/html/dir_5d3b9e51e9fbe434f439d538f18d672c.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/HLSL2GLSLConverterLib/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_5efc8bc1e288832c60268f64c6a51239.html b/doc/html/dir_5efc8bc1e288832c60268f64c6a51239.html new file mode 100644 index 00000000..59a5c4b0 --- /dev/null +++ b/doc/html/dir_5efc8bc1e288832c60268f64c6a51239.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Utilities/File2Include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
File2Include Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_621c25a4dce711ebf3a6f5a041b77c17.html b/doc/html/dir_621c25a4dce711ebf3a6f5a041b77c17.html new file mode 100644 index 00000000..79fe2481 --- /dev/null +++ b/doc/html/dir_621c25a4dce711ebf3a6f5a041b77c17.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/HLSL2GLSLConverterLib/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_645f2f2568fa5c02031acbfd93298cd3.html b/doc/html/dir_645f2f2568fa5c02031acbfd93298cd3.html new file mode 100644 index 00000000..4d4fedc8 --- /dev/null +++ b/doc/html/dir_645f2f2568fa5c02031acbfd93298cd3.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11 Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GraphicsEngineD3D11 Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_64f7452aef2cdad98d34a70f5ea329e2.html b/doc/html/dir_64f7452aef2cdad98d34a70f5ea329e2.html new file mode 100644 index 00000000..147040a8 --- /dev/null +++ b/doc/html/dir_64f7452aef2cdad98d34a70f5ea329e2.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Graphics Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_65579a36a59e5fa8e560426a7872d069.html b/doc/html/dir_65579a36a59e5fa8e560426a7872d069.html new file mode 100644 index 00000000..491453bb --- /dev/null +++ b/doc/html/dir_65579a36a59e5fa8e560426a7872d069.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Win32 Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Win32 Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_6efbf128a3ac7cc438f7e283f4b26daa.html b/doc/html/dir_6efbf128a3ac7cc438f7e283f4b26daa.html new file mode 100644 index 00000000..1d0f7f9a --- /dev/null +++ b/doc/html/dir_6efbf128a3ac7cc438f7e283f4b26daa.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsTools/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_6f5298fc22fb2bb7779e518b5f3e37e7.html b/doc/html/dir_6f5298fc22fb2bb7779e518b5f3e37e7.html new file mode 100644 index 00000000..0f571fc2 --- /dev/null +++ b/doc/html/dir_6f5298fc22fb2bb7779e518b5f3e37e7.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3DBase Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GraphicsEngineD3DBase Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_71a0fe92868d87339603cb54d401c25a.html b/doc/html/dir_71a0fe92868d87339603cb54d401c25a.html new file mode 100644 index 00000000..3046bc94 --- /dev/null +++ b/doc/html/dir_71a0fe92868d87339603cb54d401c25a.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_72dd7f9d43aa98ace886b3544ecc96ae.html b/doc/html/dir_72dd7f9d43aa98ace886b3544ecc96ae.html new file mode 100644 index 00000000..49778aa2 --- /dev/null +++ b/doc/html/dir_72dd7f9d43aa98ace886b3544ecc96ae.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/auto/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_73a797b61c7265598bf7f4b979c6c9ed.html b/doc/html/dir_73a797b61c7265598bf7f4b979c6c9ed.html new file mode 100644 index 00000000..e3efc172 --- /dev/null +++ b/doc/html/dir_73a797b61c7265598bf7f4b979c6c9ed.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12 Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GraphicsEngineD3D12 Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_75aeac67226ff3fcc423c42454e837cc.html b/doc/html/dir_75aeac67226ff3fcc423c42454e837cc.html new file mode 100644 index 00000000..bd4920a0 --- /dev/null +++ b/doc/html/dir_75aeac67226ff3fcc423c42454e837cc.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Linux Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Linux Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_78a75200960430ffac0c2ee6accc16da.html b/doc/html/dir_78a75200960430ffac0c2ee6accc16da.html new file mode 100644 index 00000000..2bdfec4d --- /dev/null +++ b/doc/html/dir_78a75200960430ffac0c2ee6accc16da.html @@ -0,0 +1,111 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/interface Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
interface Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  BasicFileStream.h [code]
 Implementation of the BasicFileStream class.
 
file  DataBlobImpl.h [code]
 Implementation for the IDataBlob interface.
 
file  DefaultRawMemoryAllocator.h [code]
 Defines Diligent::DefaultRawMemoryAllocator class.
 
file  FixedBlockMemoryAllocator.h [code]
 Declaration of Diligent::FixedBlockMemoryAllocator class.
 
file  ObjectBase.h [code]
 Implementation of the Diligent::ObjectBase template class.
 
file  RefCountedObjectImpl.h [code]
 Implementation of the template base class for reference counting objects.
 
file  STDAllocator.h [code]
 Defines Diligent::DefaultRawMemoryAllocator class.
 
file  StringDataBlobImpl.h [code]
 Implementation for the IDataBlob interface.
 
+
+ + + + + diff --git a/doc/html/dir_78c27d1ffd1798cbaedc6831f648b547.html b/doc/html/dir_78c27d1ffd1798cbaedc6831f648b547.html new file mode 100644 index 00000000..4ad395f8 --- /dev/null +++ b/doc/html/dir_78c27d1ffd1798cbaedc6831f648b547.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/HLSL2GLSLConverterLib/interface Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
interface Directory Reference
+
+
+ + + + + +

+Files

file  HLSL2GLSLConverter.h [code]
 Definition of the Diligent::IHLSL2GLSLConverter interface.
 
+
+ + + + + diff --git a/doc/html/dir_7ebeaf53366ffd3dfb1d502f7c5f4426.html b/doc/html/dir_7ebeaf53366ffd3dfb1d502f7c5f4426.html new file mode 100644 index 00000000..075c2397 --- /dev/null +++ b/doc/html/dir_7ebeaf53366ffd3dfb1d502f7c5f4426.html @@ -0,0 +1,153 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/interface Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
interface Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  BlendState.h [code]
 Blend state description.
 
file  Buffer.h [code]
 Defines Diligent::IBuffer interface and related data structures.
 
file  BufferView.h [code]
 Definition of the Diligent::IBufferView interface and related data structures.
 
file  CommandList.h [code]
 Defines Diligent::IBuffer interface and related data structures.
 
file  Constants.h [code]
 Definition of the engine constants.
 
file  DepthStencilState.h [code]
 Definition of data types that describe depth-stencil state.
 
file  DeviceCaps.h [code]
 Definition of the device capabilities.
 
file  DeviceContext.h [code]
 Definition of the Diligent::IDeviceContext interface and related data structures.
 
file  DeviceObject.h [code]
 Defines Diligent::IDeviceObject interface.
 
file  GraphicsTypes.h [code]
 Contains basic graphics engine type defintions.
 
file  InputLayout.h [code]
 Definition input layout.
 
file  MapHelper.h [code]
 Definition of the Diligent::MapHelper helper template class.
 
file  PipelineState.h [code]
 Definition of the Diligent::IRenderDevice interface and related data structures.
 
file  RasterizerState.h [code]
 Rasterizer state description.
 
file  RenderDevice.h [code]
 Definition of the Diligent::IRenderDevice interface and related data structures.
 
file  ResourceMapping.h [code]
 Definition of the Diligent::IResourceMapping interface and related data structures.
 
file  Sampler.h [code]
 Definition of the Diligent::ISampler interface and related data structures.
 
file  Shader.h [code]
 Definition of the Diligent::IShader interface and related data structures.
 
file  ShaderResourceBinding.h [code]
 Definition of the Diligent::IShaderResourceBinding interface and related data structures.
 
file  SwapChain.h [code]
 Definition of the Diligent::ISwapChain interface and related data structures.
 
file  Texture.h [code]
 Definition of the Diligent::ITexture interface and related data structures.
 
file  TextureView.h [code]
 Definition of the Diligent::ITextureView interface and related data structures.
 
+
+ + + + + diff --git a/doc/html/dir_84b36d56f7b4fc52b5c5efb321dc0000.html b/doc/html/dir_84b36d56f7b4fc52b5c5efb321dc0000.html new file mode 100644 index 00000000..2ee718d0 --- /dev/null +++ b/doc/html/dir_84b36d56f7b4fc52b5c5efb321dc0000.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Primitives Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Primitives Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_85012488fe36283ebcb15fcbda1ae89f.html b/doc/html/dir_85012488fe36283ebcb15fcbda1ae89f.html new file mode 100644 index 00000000..6db2dfab --- /dev/null +++ b/doc/html/dir_85012488fe36283ebcb15fcbda1ae89f.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/include/GL Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GL Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_85f39ffbb838bbfece321bb4f8d621bf.html b/doc/html/dir_85f39ffbb838bbfece321bb4f8d621bf.html new file mode 100644 index 00000000..82bae482 --- /dev/null +++ b/doc/html/dir_85f39ffbb838bbfece321bb4f8d621bf.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+ + + + + +

+Files

file  ShaderResourceBindingGLImpl.h [code]
 Declaration of Diligent::ShaderResourceBindingGLImpl class.
 
+
+ + + + + diff --git a/doc/html/dir_9195ec9876d1a0109e971c171bae0f6f.html b/doc/html/dir_9195ec9876d1a0109e971c171bae0f6f.html new file mode 100644 index 00000000..49683389 --- /dev/null +++ b/doc/html/dir_9195ec9876d1a0109e971c171bae0f6f.html @@ -0,0 +1,97 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Platforms Directory Reference
+
+
+ + + + + + + + + + + + +

+Directories

directory  Android
 
directory  Basic
 
directory  Linux
 
directory  UWP
 
directory  Win32
 
+
+ + + + + diff --git a/doc/html/dir_92cb2900980f09bf257878861626e98f.html b/doc/html/dir_92cb2900980f09bf257878861626e98f.html new file mode 100644 index 00000000..bf7fe3ae --- /dev/null +++ b/doc/html/dir_92cb2900980f09bf257878861626e98f.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Common/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_93be327b3cc3da5529d54ec42b11f308.html b/doc/html/dir_93be327b3cc3da5529d54ec42b11f308.html new file mode 100644 index 00000000..e2ce5456 --- /dev/null +++ b/doc/html/dir_93be327b3cc3da5529d54ec42b11f308.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Win32/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_9471888542df7613d67bd77853f3043a.html b/doc/html/dir_9471888542df7613d67bd77853f3043a.html new file mode 100644 index 00000000..331b4904 --- /dev/null +++ b/doc/html/dir_9471888542df7613d67bd77853f3043a.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Basic/interface Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
interface Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_986ed229c8bd2105276dc6f7f6691aa2.html b/doc/html/dir_986ed229c8bd2105276dc6f7f6691aa2.html new file mode 100644 index 00000000..34263e20 --- /dev/null +++ b/doc/html/dir_986ed229c8bd2105276dc6f7f6691aa2.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GraphicsEngineOpenGL Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_9b8b2ba32555d10c6e461abe40fed114.html b/doc/html/dir_9b8b2ba32555d10c6e461abe40fed114.html new file mode 100644 index 00000000..e2c167d6 --- /dev/null +++ b/doc/html/dir_9b8b2ba32555d10c6e461abe40fed114.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Linux/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_9bd32c6442cde976f141bac2efe8a42e.html b/doc/html/dir_9bd32c6442cde976f141bac2efe8a42e.html new file mode 100644 index 00000000..7c7aa71c --- /dev/null +++ b/doc/html/dir_9bd32c6442cde976f141bac2efe8a42e.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/UWP/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_9c4007343c7adfd14026107d5f4d7396.html b/doc/html/dir_9c4007343c7adfd14026107d5f4d7396.html new file mode 100644 index 00000000..519a0f99 --- /dev/null +++ b/doc/html/dir_9c4007343c7adfd14026107d5f4d7396.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/ndk_helper/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_a979a0769f701b04637d969865d65bf6.html b/doc/html/dir_a979a0769f701b04637d969865d65bf6.html new file mode 100644 index 00000000..8338bfb1 --- /dev/null +++ b/doc/html/dir_a979a0769f701b04637d969865d65bf6.html @@ -0,0 +1,126 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/interface Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
interface Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  BufferD3D12.h [code]
 Definition of the Diligent::IBufferD3D12 interface.
 
file  BufferViewD3D12.h [code]
 Definition of the Diligent::IBufferViewD3D12 interface.
 
file  CommandQueueD3D12.h [code]
 Definition of the Diligent::ICommandQueueD3D12 interface.
 
file  DeviceContextD3D12.h [code]
 Definition of the Diligent::IDeviceContextD3D11 interface.
 
file  PipelineStateD3D12.h [code]
 Definition of the Diligent::IPipeplineStateD3D12 interface.
 
file  RenderDeviceD3D12.h [code]
 Definition of the Diligent::IRenderDeviceD3D12 interface.
 
file  RenderDeviceFactoryD3D12.h [code]
 Declaration of functions that initialize Direct3D12-based engine implementation.
 
file  SamplerD3D12.h [code]
 Definition of the Diligent::ISamplerD3D12 interface.
 
file  ShaderD3D12.h [code]
 Definition of the Diligent::IShaderD3D12 interface.
 
file  ShaderResourceBindingD3D12.h [code]
 Definition of the Diligent::IShaderResourceBindingD3D12 interface and related data structures.
 
file  SwapChainD3D12.h [code]
 Definition of the Diligent::ISwapChainD3D12 interface.
 
file  TextureD3D12.h [code]
 Definition of the Diligent::ITextureD3D12 interface.
 
file  TextureViewD3D12.h [code]
 Definition of the Diligent::ITextureViewD3D12 interface.
 
+
+ + + + + diff --git a/doc/html/dir_b05a5fa85f84bfc9013183c9d87f9a36.html b/doc/html/dir_b05a5fa85f84bfc9013183c9d87f9a36.html new file mode 100644 index 00000000..41889be7 --- /dev/null +++ b/doc/html/dir_b05a5fa85f84bfc9013183c9d87f9a36.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Utilities Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utilities Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_b05c391b1919d1ed2cba19af6bc34105.html b/doc/html/dir_b05c391b1919d1ed2cba19af6bc34105.html new file mode 100644 index 00000000..ca8d4da5 --- /dev/null +++ b/doc/html/dir_b05c391b1919d1ed2cba19af6bc34105.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/build/cmake Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
cmake Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_bb685b13b42415b0316ff027c8af4cf7.html b/doc/html/dir_bb685b13b42415b0316ff027c8af4cf7.html new file mode 100644 index 00000000..a7904f3d --- /dev/null +++ b/doc/html/dir_bb685b13b42415b0316ff027c8af4cf7.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/build/conan/test_package Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
test_package Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_bc3082b78d94babef84a35bfcdc9f2a9.html b/doc/html/dir_bc3082b78d94babef84a35bfcdc9f2a9.html new file mode 100644 index 00000000..3e97abbb --- /dev/null +++ b/doc/html/dir_bc3082b78d94babef84a35bfcdc9f2a9.html @@ -0,0 +1,114 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3DBase/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  D3DErrors.h [code]
 Declaration of Diligent::ComErrorDesc class.
 
file  D3DShaderResourceLoader.h [code]
 D3D shader resource loading.
 
file  D3DTypeConversionImpl.h [code]
 Implementation of D3D type conversions.
 
file  D3DViewDescConversionImpl.h [code]
 Implementation of D3D type conversions.
 
file  DXGITypeConversions.h [code]
 Common D3D type conversion utilities.
 
file  RenderDeviceD3DBase.h [code]
 Implementation of the Diligent::RenderDeviceBase template class and related structures.
 
file  ShaderD3DBase.h [code]
 Base implementation of a D3D shader.
 
file  ShaderResources.h [code]
 Declaration of Diligent::ShaderResources class See http://diligentgraphics.com/diligent-engine/architecture/d3d12/shader-resources/.
 
file  ShaderVariableD3DBase.h [code]
 Declaration of Diligent::ShaderVariableD3DBase class.
 
+
+ + + + + diff --git a/doc/html/dir_bcba4911fbc539869e8e42c1eee5290c.html b/doc/html/dir_bcba4911fbc539869e8e42c1eee5290c.html new file mode 100644 index 00000000..0b765142 --- /dev/null +++ b/doc/html/dir_bcba4911fbc539869e8e42c1eee5290c.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/HLSL2GLSLConverterLib Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
HLSL2GLSLConverterLib Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_c14f889dd2eabb40f33940b62dde1899.html b/doc/html/dir_c14f889dd2eabb40f33940b62dde1899.html new file mode 100644 index 00000000..927de772 --- /dev/null +++ b/doc/html/dir_c14f889dd2eabb40f33940b62dde1899.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+ + + + + +

+Files

file  RenderDeviceFactoryOpenGL.cpp
 Routines that initialize OpenGL/GLES-based engine implementation.
 
+
+ + + + + diff --git a/doc/html/dir_c34a03468eacdd279ce7df13aaf8be35.html b/doc/html/dir_c34a03468eacdd279ce7df13aaf8be35.html new file mode 100644 index 00000000..677a748d --- /dev/null +++ b/doc/html/dir_c34a03468eacdd279ce7df13aaf8be35.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Linux/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_c81e2bbe52342ad85c6df4b5da5342ae.html b/doc/html/dir_c81e2bbe52342ad85c6df4b5da5342ae.html new file mode 100644 index 00000000..17dc5b7c --- /dev/null +++ b/doc/html/dir_c81e2bbe52342ad85c6df4b5da5342ae.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/Win32/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_cce291394cd32453076ad2518557a3ce.html b/doc/html/dir_cce291394cd32453076ad2518557a3ce.html new file mode 100644 index 00000000..f10bc907 --- /dev/null +++ b/doc/html/dir_cce291394cd32453076ad2518557a3ce.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/UWP Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
UWP Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_cd89c6f694be839cedac8e0968a623c1.html b/doc/html/dir_cd89c6f694be839cedac8e0968a623c1.html new file mode 100644 index 00000000..3f784e7a --- /dev/null +++ b/doc/html/dir_cd89c6f694be839cedac8e0968a623c1.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+ + + + + +

+Files

file  RenderDeviceFactoryD3D11.cpp
 Routines that initialize D3D11-based engine implementation.
 
+
+ + + + + diff --git a/doc/html/dir_d6522a90866720d8f9d6d452f6024cb3.html b/doc/html/dir_d6522a90866720d8f9d6d452f6024cb3.html new file mode 100644 index 00000000..dd3778b1 --- /dev/null +++ b/doc/html/dir_d6522a90866720d8f9d6d452f6024cb3.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_d86bb5f490e23b390428054071f71303.html b/doc/html/dir_d86bb5f490e23b390428054071f71303.html new file mode 100644 index 00000000..1e48ca8e --- /dev/null +++ b/doc/html/dir_d86bb5f490e23b390428054071f71303.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Android Directory Reference
+
+
+ + + + +

+Directories

directory  ndk_helper
 
+
+ + + + + diff --git a/doc/html/dir_dcadd071f86d817ff481621da6d513b2.html b/doc/html/dir_dcadd071f86d817ff481621da6d513b2.html new file mode 100644 index 00000000..6e7ad1e0 --- /dev/null +++ b/doc/html/dir_dcadd071f86d817ff481621da6d513b2.html @@ -0,0 +1,150 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  BufferD3D11Impl.h [code]
 Declaration of Diligent::BufferD3D11Impl class.
 
file  BufferViewD3D11Impl.h [code]
 Declaration of Diligent::BufferViewD3D11Impl class.
 
file  CommandListD3D11Impl.h [code]
 Declaration of Diligent::CommandListD3D11Impl class.
 
file  D3D11DebugUtilities.h [code]
 Debug utilities.
 
file  D3D11TypeConversions.h [code]
 Type conversion routines.
 
file  D3D11TypeDefinitions.h [code]
 Definitions of D3D11 types.
 
file  DeviceContextD3D11Impl.h [code]
 Declaration of Diligent::DeviceContextD3D11Impl class.
 
file  PipelineStateD3D11Impl.h [code]
 Declaration of Diligent::PipelineStateD3D11Impl class.
 
file  RenderDeviceD3D11Impl.h [code]
 Declaration of Diligent::RenderDeviceD3D11Impl class.
 
file  SamplerD3D11Impl.h [code]
 Declaration of Diligent::SamplerD3D11Impl class.
 
file  ShaderD3D11Impl.h [code]
 Declaration of Diligent::ShaderD3D11Impl class.
 
file  ShaderResourceBindingD3D11Impl.h [code]
 Declaration of Diligent::ShaderResourceBindingD3D11Impl class.
 
file  ShaderResourceCacheD3D11.h [code]
 Declaration of Diligent::ShaderResourceCacheD3D11 class.
 
file  ShaderResourceLayoutD3D11.h [code]
 Declaration of Diligent::ShaderResourceLayoutD3D11 class.
 
file  ShaderResourcesD3D11.h [code]
 Declaration of Diligent::ShaderResourcesD3D11 class.
 
file  SwapChainD3D11Impl.h [code]
 Declaration of Diligent::SwapChainD3D11Impl class.
 
file  Texture1D_D3D11.h [code]
 Declaration of Diligent::Texture1D_D3D11 class.
 
file  Texture2D_D3D11.h [code]
 Declaration of Diligent::Texture2D_D3D11 class.
 
file  Texture3D_D3D11.h [code]
 Declaration of Diligent::Texture3D_D3D11 class.
 
file  TextureBaseD3D11.h [code]
 Declaration of Diligent::TextureBaseD3D11 class.
 
file  TextureViewD3D11Impl.h [code]
 Declaration of Diligent::TextureViewD3D11Impl class.
 
+
+ + + + + diff --git a/doc/html/dir_dfd2a36e5d7e18a07e2d62267c3478e3.html b/doc/html/dir_dfd2a36e5d7e18a07e2d62267c3478e3.html new file mode 100644 index 00000000..3cc171c6 --- /dev/null +++ b/doc/html/dir_dfd2a36e5d7e18a07e2d62267c3478e3.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsAccessories/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_e48f30194d94fdd1dcbbc479c6afc2e2.html b/doc/html/dir_e48f30194d94fdd1dcbbc479c6afc2e2.html new file mode 100644 index 00000000..c82b52c2 --- /dev/null +++ b/doc/html/dir_e48f30194d94fdd1dcbbc479c6afc2e2.html @@ -0,0 +1,102 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Primitives/interface Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
interface Directory Reference
+
+
+ + + + + + + + + + + + + + + + + +

+Files

file  DataBlob.h [code]
 Defines Diligent::IDataBlob interface.
 
file  FileStream.h [code]
 Defines Diligent::IFileStream interface.
 
file  MemoryAllocator.h [code]
 Defines Diligent::IMemoryAllocator interface.
 
file  Object.h [code]
 Defines Diligent::IObject interface.
 
file  ReferenceCounters.h [code]
 Defines Diligent::IReferenceCounters interface.
 
+
+ + + + + diff --git a/doc/html/dir_e4adb31a02abf2c56ebb0eddad9839cc.html b/doc/html/dir_e4adb31a02abf2c56ebb0eddad9839cc.html new file mode 100644 index 00000000..572a5a7e --- /dev/null +++ b/doc/html/dir_e4adb31a02abf2c56ebb0eddad9839cc.html @@ -0,0 +1,150 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  BufferD3D12Impl.h [code]
 Declaration of Diligent::BufferD3D12Impl class.
 
file  BufferViewD3D12Impl.h [code]
 Declaration of Diligent::BufferViewD3D12Impl class.
 
file  CommandListD3D12Impl.h [code]
 Declaration of Diligent::CommandListD3D12Impl class.
 
file  CommandQueueD3D12Impl.h [code]
 Declaration of Diligent::CommandQueueD3D12Impl class.
 
file  D3D12ResourceBase.h [code]
 Implementation of the Diligent::D3D12ResourceBase class.
 
file  D3D12TypeConversions.h [code]
 Type conversion routines.
 
file  D3D12TypeDefinitions.h [code]
 Definitions of D3D12 types.
 
file  DeviceContextD3D12Impl.h [code]
 Declaration of Diligent::DeviceContextD3D12Impl class.
 
file  GenerateMips.h [code]
 Implementation of mipmap generation routines.
 
file  PipelineStateD3D12Impl.h [code]
 Declaration of Diligent::PipelineStateD3D12Impl class.
 
file  RenderDeviceD3D12Impl.h [code]
 Declaration of Diligent::RenderDeviceD3D12Impl class.
 
file  RootSignature.h [code]
 Declaration of Diligent::RootSignature class.
 
file  SamplerD3D12Impl.h [code]
 Declaration of Diligent::SamplerD3D12Impl class.
 
file  ShaderD3D12Impl.h [code]
 Declaration of Diligent::ShaderD3D12Impl class.
 
file  ShaderResourceBindingD3D12Impl.h [code]
 Declaration of Diligent::ShaderResourceBindingD3D12Impl class.
 
file  ShaderResourceCacheD3D12.h [code]
 Declaration of Diligent::ShaderResourceCacheD3D12 class.
 
file  ShaderResourceLayoutD3D12.h [code]
 Declaration of Diligent::ShaderResourceLayoutD3D12 class.
 
file  ShaderResourcesD3D12.h [code]
 Declaration of Diligent::ShaderResourcesD3D12 class.
 
file  SwapChainD3D12Impl.h [code]
 Declaration of Diligent::SwapChainD3D12Impl class.
 
file  TextureD3D12Impl.h [code]
 Declaration of Diligent::TextureD3D12Impl class.
 
file  TextureViewD3D12Impl.h [code]
 Declaration of Diligent::TextureViewD3D12Impl class.
 
+
+ + + + + diff --git a/doc/html/dir_e5c92ba1793c0d530db39bcf10297377.html b/doc/html/dir_e5c92ba1793c0d530db39bcf10297377.html new file mode 100644 index 00000000..cd7d9e23 --- /dev/null +++ b/doc/html/dir_e5c92ba1793c0d530db39bcf10297377.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GraphicsEngine Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_e6079c330507d68f1ae0aff3b70538e2.html b/doc/html/dir_e6079c330507d68f1ae0aff3b70538e2.html new file mode 100644 index 00000000..e9641ca0 --- /dev/null +++ b/doc/html/dir_e6079c330507d68f1ae0aff3b70538e2.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/build Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
build Directory Reference
+
+
+ + + + +

+Directories

directory  cmake
 
+
+ + + + + diff --git a/doc/html/dir_ecb5f9f0f25d20023a282ab2a0713764.html b/doc/html/dir_ecb5f9f0f25d20023a282ab2a0713764.html new file mode 100644 index 00000000..8f9ad819 --- /dev/null +++ b/doc/html/dir_ecb5f9f0f25d20023a282ab2a0713764.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D12/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+ + + + + +

+Files

file  RenderDeviceFactoryD3D12.cpp
 Routines that initialize D3D12-based engine implementation.
 
+
+ + + + + diff --git a/doc/html/dir_f0df80f5feb8c8ef897a587309ad6a15.html b/doc/html/dir_f0df80f5feb8c8ef897a587309ad6a15.html new file mode 100644 index 00000000..4f32e39a --- /dev/null +++ b/doc/html/dir_f0df80f5feb8c8ef897a587309ad6a15.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Platforms/UWP/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_f16caef3a7f43b3f0e8a3a66426d5b4f.html b/doc/html/dir_f16caef3a7f43b3f0e8a3a66426d5b4f.html new file mode 100644 index 00000000..402f373d --- /dev/null +++ b/doc/html/dir_f16caef3a7f43b3f0e8a3a66426d5b4f.html @@ -0,0 +1,126 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineOpenGL/interface Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
interface Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  BufferGL.h [code]
 Definition of the Diligent::IBufferGL interface.
 
file  BufferViewGL.h [code]
 Definition of the Diligent::IBufferViewGL interface.
 
file  DeviceContextGL.h [code]
 Definition of the Diligent::IDeviceContextGL interface.
 
file  PipelineStateGL.h [code]
 Definition of the Diligent::IPipelineStateGL interface.
 
file  RenderDeviceFactoryOpenGL.h [code]
 Declaration of functions that create OpenGL-based engine implementation.
 
file  RenderDeviceGL.h [code]
 Definition of the Diligent::IRenderDeviceGL interface.
 
file  RenderDeviceGLES.h [code]
 Definition of the Diligent::IRenderDeviceGLES interface.
 
file  SamplerGL.h [code]
 Definition of the Diligent::ISamplerGL interface.
 
file  ShaderGL.h [code]
 Definition of the Diligent::IShaderGL interface.
 
file  ShaderResourceBindingGL.h [code]
 Definition of the Diligent::IShaderResourceBindingD3D11 interface and related data structures.
 
file  SwapChainGL.h [code]
 Definition of the Diligent::ISwapChainGL interface.
 
file  TextureGL.h [code]
 Definition of the Diligent::ITextureGL interface.
 
file  TextureViewGL.h [code]
 Definition of the Diligent::ITextureViewGL interface.
 
+
+ + + + + diff --git a/doc/html/dir_f184bd3933ab1dc1369d332259c9bae5.html b/doc/html/dir_f184bd3933ab1dc1369d332259c9bae5.html new file mode 100644 index 00000000..653fdb7d --- /dev/null +++ b/doc/html/dir_f184bd3933ab1dc1369d332259c9bae5.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/ndk_helper Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ndk_helper Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_f42476f6cdbec807db89f1b1b5522dce.html b/doc/html/dir_f42476f6cdbec807db89f1b1b5522dce.html new file mode 100644 index 00000000..1d9a3bdf --- /dev/null +++ b/doc/html/dir_f42476f6cdbec807db89f1b1b5522dce.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/build/conan Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
conan Directory Reference
+
+
+ + +

+Directories

+
+ + + + + diff --git a/doc/html/dir_fba0aa376286f5aae7cd1ec184e07477.html b/doc/html/dir_fba0aa376286f5aae7cd1ec184e07477.html new file mode 100644 index 00000000..3baea39a --- /dev/null +++ b/doc/html/dir_fba0aa376286f5aae7cd1ec184e07477.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Primitives/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + + diff --git a/doc/html/dir_fc5af6d1773db9fbf4492fb9f3c112e5.html b/doc/html/dir_fc5af6d1773db9fbf4492fb9f3c112e5.html new file mode 100644 index 00000000..4515c071 --- /dev/null +++ b/doc/html/dir_fc5af6d1773db9fbf4492fb9f3c112e5.html @@ -0,0 +1,138 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngine/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  BufferBase.h [code]
 Implementation of the Diligent::BufferBase template class.
 
file  BufferViewBase.h [code]
 Implementation of the Diligent::BufferViewBase template class.
 
file  CommandListBase.h [code]
 Implementation of the Diligent::CommandListBase template class.
 
file  DeviceContextBase.h [code]
 Implementation of the Diligent::DeviceContextBase template class and related structures.
 
file  DeviceObjectBase.h [code]
 Implementation of the Diligent::DeviceObjectBase template class.
 
file  EngineMemory.h [code]
 Implementation of the Diligent::BufferBase template class.
 
file  pch.h [code]
 Precomputed header.
 
file  PipelineStateBase.h [code]
 Implementation of the Diligent::PipelineStateBase template class.
 
file  RenderDeviceBase.h [code]
 Implementation of the Diligent::RenderDeviceBase template class and related structures.
 
file  ResourceMappingImpl.h [code]
 Declaration of the Diligent::ResourceMappingImpl class.
 
file  SamplerBase.h [code]
 Implementation of the Diligent::SamplerBase template class.
 
file  ShaderBase.h [code]
 Implementation of the Diligent::ShaderBase template class.
 
file  ShaderResourceBindingBase.h [code]
 Implementation of the Diligent::ShaderResourceBindingBase template class.
 
file  StateObjectsRegistry.h [code]
 Implementation of the Diligent::StateObjectsRegistry template class.
 
file  SwapChainBase.h [code]
 Implementation of the Diligent::SwapChainBase template class.
 
file  TextureBase.h [code]
 Implementation of the Diligent::TextureBase template class.
 
file  TextureViewBase.h [code]
 Implementation of the Diligent::TextureViewBase template class.
 
+
+ + + + + diff --git a/doc/html/dir_fd2dd35c0314879b24158b45d1b1dc1e.html b/doc/html/dir_fd2dd35c0314879b24158b45d1b1dc1e.html new file mode 100644 index 00000000..c6a1c6dd --- /dev/null +++ b/doc/html/dir_fd2dd35c0314879b24158b45d1b1dc1e.html @@ -0,0 +1,126 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/interface Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
interface Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  BufferD3D11.h [code]
 Definition of the Diligent::IBufferD3D11 interface.
 
file  BufferViewD3D11.h [code]
 Definition of the Diligent::IBufferViewD3D11 interface.
 
file  DeviceContextD3D11.h [code]
 Definition of the Diligent::IDeviceContextD3D11 interface.
 
file  EngineD3D11Attribs.h [code]
 Definition of the Engine D3D11 attribs.
 
file  PipelineStateD3D11.h [code]
 Definition of the Diligent::IPipeplineStateD3D11 interface.
 
file  RenderDeviceD3D11.h [code]
 Definition of the Diligent::IRenderDeviceD3D11 interface.
 
file  RenderDeviceFactoryD3D11.h [code]
 Declaration of functions that initialize Direct3D11-based engine implementation.
 
file  SamplerD3D11.h [code]
 Definition of the Diligent::ISamplerD3D11 interface.
 
file  ShaderD3D11.h [code]
 Definition of the Diligent::IShaderD3D11 interface.
 
file  ShaderResourceBindingD3D11.h [code]
 Definition of the Diligent::IShaderResourceBindingD3D11 interface and related data structures.
 
file  SwapChainD3D11.h [code]
 Definition of the Diligent::ISwapChainD3D11 interface.
 
file  TextureD3D11.h [code]
 Definition of the Diligent::ITextureD3D11 interface.
 
file  TextureViewD3D11.h [code]
 Definition of the Diligent::ITextureViewD3D11 interface.
 
+
+ + + + + diff --git a/doc/html/doc.png b/doc/html/doc.png new file mode 100644 index 00000000..17edabff Binary files /dev/null and b/doc/html/doc.png differ diff --git a/doc/html/doxygen.css b/doc/html/doxygen.css new file mode 100644 index 00000000..266c8b3a --- /dev/null +++ b/doc/html/doxygen.css @@ -0,0 +1,1596 @@ +/* The standard CSS for doxygen 1.8.14 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + 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 cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0px; + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + 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: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.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.ah, span.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +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 { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + 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; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +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: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.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 cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* 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: #602020; + 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 { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,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: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + 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 #9CAFD4; + border-bottom: 1px solid #9CAFD4; + 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.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.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: #3D578C; +} + +.arrow { + color: #9CAFD4; + -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: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + 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:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @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: #2A3D61; +} + +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 #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + 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 #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.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:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.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:#364D7C; + 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:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +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; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + 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 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + 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; +} + +.inherit_header { + font-weight: bold; + color: gray; + 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; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#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: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + 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: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + 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: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + 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 #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTableHead tr { +} + +table.markdownTableBodyLeft td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft { + text-align: left +} + +th.markdownTableHeadRight { + text-align: right +} + +th.markdownTableHeadCenter { + text-align: center +} +*/ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + 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 +} + + +/* @end */ diff --git a/doc/html/doxygen.png b/doc/html/doxygen.png new file mode 100644 index 00000000..3ff17d80 Binary files /dev/null and b/doc/html/doxygen.png differ diff --git a/doc/html/dynsections.js b/doc/html/dynsections.js new file mode 100644 index 00000000..c1ce1226 --- /dev/null +++ b/doc/html/dynsections.js @@ -0,0 +1,120 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @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'); +} + +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 + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/include/GL/eglew.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
eglew.h
+
+
+
1 /*
2 ** The OpenGL Extension Wrangler Library
3 ** Copyright (C) 2008-2017, Nigel Stewart <nigels[]users sourceforge net>
4 ** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
5 ** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
6 ** Copyright (C) 2002, Lev Povalahev
7 ** All rights reserved.
8 **
9 ** Redistribution and use in source and binary forms, with or without
10 ** modification, are permitted provided that the following conditions are met:
11 **
12 ** * Redistributions of source code must retain the above copyright notice,
13 ** this list of conditions and the following disclaimer.
14 ** * Redistributions in binary form must reproduce the above copyright notice,
15 ** this list of conditions and the following disclaimer in the documentation
16 ** and/or other materials provided with the distribution.
17 ** * The name of the author may be used to endorse or promote products
18 ** derived from this software without specific prior written permission.
19 **
20 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24 ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
30 ** THE POSSIBILITY OF SUCH DAMAGE.
31 */
32 
33 /*
34  * Mesa 3-D graphics library
35  * Version: 7.0
36  *
37  * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
38  *
39  * Permission is hereby granted, free of charge, to any person obtaining a
40  * copy of this software and associated documentation files (the "Software"),
41  * to deal in the Software without restriction, including without limitation
42  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
43  * and/or sell copies of the Software, and to permit persons to whom the
44  * Software is furnished to do so, subject to the following conditions:
45  *
46  * The above copyright notice and this permission notice shall be included
47  * in all copies or substantial portions of the Software.
48  *
49  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
50  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
51  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
52  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
53  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
54  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
55  */
56 
57 /*
58 ** Copyright (c) 2007 The Khronos Group Inc.
59 **
60 ** Permission is hereby granted, free of charge, to any person obtaining a
61 ** copy of this software and/or associated documentation files (the
62 ** "Materials"), to deal in the Materials without restriction, including
63 ** without limitation the rights to use, copy, modify, merge, publish,
64 ** distribute, sublicense, and/or sell copies of the Materials, and to
65 ** permit persons to whom the Materials are furnished to do so, subject to
66 ** the following conditions:
67 **
68 ** The above copyright notice and this permission notice shall be included
69 ** in all copies or substantial portions of the Materials.
70 **
71 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
72 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
73 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
74 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
75 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
76 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
77 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
78 */
79 
80 #ifndef __eglew_h__
81 #define __eglew_h__
82 #define __EGLEW_H__
83 
84 #ifdef __eglext_h_
85 #error eglext.h included before eglew.h
86 #endif
87 
88 #if defined(__egl_h_)
89 #error egl.h included before eglew.h
90 #endif
91 
92 #define __eglext_h_
93 
94 #define __egl_h_
95 
96 #ifndef EGLAPIENTRY
97 #define EGLAPIENTRY
98 #endif
99 #ifndef EGLAPI
100 #define EGLAPI extern
101 #endif
102 
103 /* EGL Types */
104 #include <sys/types.h>
105 
106 #include <KHR/khrplatform.h>
107 #include <EGL/eglplatform.h>
108 
109 #include <GL/glew.h>
110 
111 #ifdef __cplusplus
112 extern "C" {
113 #endif
114 
115 typedef int32_t EGLint;
116 
117 typedef unsigned int EGLBoolean;
118 typedef void *EGLDisplay;
119 typedef void *EGLConfig;
120 typedef void *EGLSurface;
121 typedef void *EGLContext;
122 typedef void (*__eglMustCastToProperFunctionPointerType)(void);
123 
124 typedef unsigned int EGLenum;
125 typedef void *EGLClientBuffer;
126 
127 typedef void *EGLSync;
128 typedef intptr_t EGLAttrib;
129 typedef khronos_utime_nanoseconds_t EGLTime;
130 typedef void *EGLImage;
131 
132 typedef void *EGLSyncKHR;
133 typedef intptr_t EGLAttribKHR;
134 typedef void *EGLLabelKHR;
135 typedef void *EGLObjectKHR;
136 typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);
137 typedef khronos_utime_nanoseconds_t EGLTimeKHR;
138 typedef void *EGLImageKHR;
139 typedef void *EGLStreamKHR;
140 typedef khronos_uint64_t EGLuint64KHR;
141 typedef int EGLNativeFileDescriptorKHR;
142 typedef khronos_ssize_t EGLsizeiANDROID;
143 typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);
144 typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);
145 typedef void *EGLDeviceEXT;
146 typedef void *EGLOutputLayerEXT;
147 typedef void *EGLOutputPortEXT;
148 typedef void *EGLSyncNV;
149 typedef khronos_utime_nanoseconds_t EGLTimeNV;
150 typedef khronos_utime_nanoseconds_t EGLuint64NV;
151 typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
152 
153 struct EGLClientPixmapHI;
154 
155 #define EGL_DONT_CARE ((EGLint)-1)
156 
157 #define EGL_NO_CONTEXT ((EGLContext)0)
158 #define EGL_NO_DISPLAY ((EGLDisplay)0)
159 #define EGL_NO_IMAGE ((EGLImage)0)
160 #define EGL_NO_SURFACE ((EGLSurface)0)
161 #define EGL_NO_SYNC ((EGLSync)0)
162 
163 #define EGL_UNKNOWN ((EGLint)-1)
164 
165 #define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0)
166 
167 EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname);
168 /* ---------------------------- EGL_VERSION_1_0 ---------------------------- */
169 
170 #ifndef EGL_VERSION_1_0
171 #define EGL_VERSION_1_0 1
172 
173 #define EGL_FALSE 0
174 #define EGL_PBUFFER_BIT 0x0001
175 #define EGL_TRUE 1
176 #define EGL_PIXMAP_BIT 0x0002
177 #define EGL_WINDOW_BIT 0x0004
178 #define EGL_SUCCESS 0x3000
179 #define EGL_NOT_INITIALIZED 0x3001
180 #define EGL_BAD_ACCESS 0x3002
181 #define EGL_BAD_ALLOC 0x3003
182 #define EGL_BAD_ATTRIBUTE 0x3004
183 #define EGL_BAD_CONFIG 0x3005
184 #define EGL_BAD_CONTEXT 0x3006
185 #define EGL_BAD_CURRENT_SURFACE 0x3007
186 #define EGL_BAD_DISPLAY 0x3008
187 #define EGL_BAD_MATCH 0x3009
188 #define EGL_BAD_NATIVE_PIXMAP 0x300A
189 #define EGL_BAD_NATIVE_WINDOW 0x300B
190 #define EGL_BAD_PARAMETER 0x300C
191 #define EGL_BAD_SURFACE 0x300D
192 #define EGL_BUFFER_SIZE 0x3020
193 #define EGL_ALPHA_SIZE 0x3021
194 #define EGL_BLUE_SIZE 0x3022
195 #define EGL_GREEN_SIZE 0x3023
196 #define EGL_RED_SIZE 0x3024
197 #define EGL_DEPTH_SIZE 0x3025
198 #define EGL_STENCIL_SIZE 0x3026
199 #define EGL_CONFIG_CAVEAT 0x3027
200 #define EGL_CONFIG_ID 0x3028
201 #define EGL_LEVEL 0x3029
202 #define EGL_MAX_PBUFFER_HEIGHT 0x302A
203 #define EGL_MAX_PBUFFER_PIXELS 0x302B
204 #define EGL_MAX_PBUFFER_WIDTH 0x302C
205 #define EGL_NATIVE_RENDERABLE 0x302D
206 #define EGL_NATIVE_VISUAL_ID 0x302E
207 #define EGL_NATIVE_VISUAL_TYPE 0x302F
208 #define EGL_SAMPLES 0x3031
209 #define EGL_SAMPLE_BUFFERS 0x3032
210 #define EGL_SURFACE_TYPE 0x3033
211 #define EGL_TRANSPARENT_TYPE 0x3034
212 #define EGL_TRANSPARENT_BLUE_VALUE 0x3035
213 #define EGL_TRANSPARENT_GREEN_VALUE 0x3036
214 #define EGL_TRANSPARENT_RED_VALUE 0x3037
215 #define EGL_NONE 0x3038
216 #define EGL_SLOW_CONFIG 0x3050
217 #define EGL_NON_CONFORMANT_CONFIG 0x3051
218 #define EGL_TRANSPARENT_RGB 0x3052
219 #define EGL_VENDOR 0x3053
220 #define EGL_VERSION 0x3054
221 #define EGL_EXTENSIONS 0x3055
222 #define EGL_HEIGHT 0x3056
223 #define EGL_WIDTH 0x3057
224 #define EGL_LARGEST_PBUFFER 0x3058
225 #define EGL_DRAW 0x3059
226 #define EGL_READ 0x305A
227 #define EGL_CORE_NATIVE_ENGINE 0x305B
228 
229 typedef EGLBoolean ( * PFNEGLCHOOSECONFIGPROC) (EGLDisplay dpy, const EGLint * attrib_list, EGLConfig * configs, EGLint config_size, EGLint * num_config);
230 typedef EGLBoolean ( * PFNEGLCOPYBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
231 typedef EGLContext ( * PFNEGLCREATECONTEXTPROC) (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint * attrib_list);
232 typedef EGLSurface ( * PFNEGLCREATEPBUFFERSURFACEPROC) (EGLDisplay dpy, EGLConfig config, const EGLint * attrib_list);
233 typedef EGLSurface ( * PFNEGLCREATEPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint * attrib_list);
234 typedef EGLSurface ( * PFNEGLCREATEWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint * attrib_list);
235 typedef EGLBoolean ( * PFNEGLDESTROYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx);
236 typedef EGLBoolean ( * PFNEGLDESTROYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface);
237 typedef EGLBoolean ( * PFNEGLGETCONFIGATTRIBPROC) (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint * value);
238 typedef EGLBoolean ( * PFNEGLGETCONFIGSPROC) (EGLDisplay dpy, EGLConfig * configs, EGLint config_size, EGLint * num_config);
239 typedef EGLDisplay ( * PFNEGLGETCURRENTDISPLAYPROC) ( void );
240 typedef EGLSurface ( * PFNEGLGETCURRENTSURFACEPROC) (EGLint readdraw);
241 typedef EGLDisplay ( * PFNEGLGETDISPLAYPROC) (EGLNativeDisplayType display_id);
242 typedef EGLint ( * PFNEGLGETERRORPROC) ( void );
243 typedef EGLBoolean ( * PFNEGLINITIALIZEPROC) (EGLDisplay dpy, EGLint * major, EGLint * minor);
244 typedef EGLBoolean ( * PFNEGLMAKECURRENTPROC) (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
245 typedef EGLBoolean ( * PFNEGLQUERYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint * value);
246 typedef const char * ( * PFNEGLQUERYSTRINGPROC) (EGLDisplay dpy, EGLint name);
247 typedef EGLBoolean ( * PFNEGLQUERYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint * value);
248 typedef EGLBoolean ( * PFNEGLSWAPBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface);
249 typedef EGLBoolean ( * PFNEGLTERMINATEPROC) (EGLDisplay dpy);
250 typedef EGLBoolean ( * PFNEGLWAITGLPROC) ( void );
251 typedef EGLBoolean ( * PFNEGLWAITNATIVEPROC) (EGLint engine);
252 
253 #define eglChooseConfig EGLEW_GET_FUN(__eglewChooseConfig)
254 #define eglCopyBuffers EGLEW_GET_FUN(__eglewCopyBuffers)
255 #define eglCreateContext EGLEW_GET_FUN(__eglewCreateContext)
256 #define eglCreatePbufferSurface EGLEW_GET_FUN(__eglewCreatePbufferSurface)
257 #define eglCreatePixmapSurface EGLEW_GET_FUN(__eglewCreatePixmapSurface)
258 #define eglCreateWindowSurface EGLEW_GET_FUN(__eglewCreateWindowSurface)
259 #define eglDestroyContext EGLEW_GET_FUN(__eglewDestroyContext)
260 #define eglDestroySurface EGLEW_GET_FUN(__eglewDestroySurface)
261 #define eglGetConfigAttrib EGLEW_GET_FUN(__eglewGetConfigAttrib)
262 #define eglGetConfigs EGLEW_GET_FUN(__eglewGetConfigs)
263 #define eglGetCurrentDisplay EGLEW_GET_FUN(__eglewGetCurrentDisplay)
264 #define eglGetCurrentSurface EGLEW_GET_FUN(__eglewGetCurrentSurface)
265 #define eglGetDisplay EGLEW_GET_FUN(__eglewGetDisplay)
266 #define eglGetError EGLEW_GET_FUN(__eglewGetError)
267 #define eglInitialize EGLEW_GET_FUN(__eglewInitialize)
268 #define eglMakeCurrent EGLEW_GET_FUN(__eglewMakeCurrent)
269 #define eglQueryContext EGLEW_GET_FUN(__eglewQueryContext)
270 #define eglQueryString EGLEW_GET_FUN(__eglewQueryString)
271 #define eglQuerySurface EGLEW_GET_FUN(__eglewQuerySurface)
272 #define eglSwapBuffers EGLEW_GET_FUN(__eglewSwapBuffers)
273 #define eglTerminate EGLEW_GET_FUN(__eglewTerminate)
274 #define eglWaitGL EGLEW_GET_FUN(__eglewWaitGL)
275 #define eglWaitNative EGLEW_GET_FUN(__eglewWaitNative)
276 
277 #define EGLEW_VERSION_1_0 EGLEW_GET_VAR(__EGLEW_VERSION_1_0)
278 
279 #endif /* EGL_VERSION_1_0 */
280 
281 /* ---------------------------- EGL_VERSION_1_1 ---------------------------- */
282 
283 #ifndef EGL_VERSION_1_1
284 #define EGL_VERSION_1_1 1
285 
286 #define EGL_CONTEXT_LOST 0x300E
287 #define EGL_BIND_TO_TEXTURE_RGB 0x3039
288 #define EGL_BIND_TO_TEXTURE_RGBA 0x303A
289 #define EGL_MIN_SWAP_INTERVAL 0x303B
290 #define EGL_MAX_SWAP_INTERVAL 0x303C
291 #define EGL_NO_TEXTURE 0x305C
292 #define EGL_TEXTURE_RGB 0x305D
293 #define EGL_TEXTURE_RGBA 0x305E
294 #define EGL_TEXTURE_2D 0x305F
295 #define EGL_TEXTURE_FORMAT 0x3080
296 #define EGL_TEXTURE_TARGET 0x3081
297 #define EGL_MIPMAP_TEXTURE 0x3082
298 #define EGL_MIPMAP_LEVEL 0x3083
299 #define EGL_BACK_BUFFER 0x3084
300 
301 typedef EGLBoolean ( * PFNEGLBINDTEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
302 typedef EGLBoolean ( * PFNEGLRELEASETEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
303 typedef EGLBoolean ( * PFNEGLSURFACEATTRIBPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
304 typedef EGLBoolean ( * PFNEGLSWAPINTERVALPROC) (EGLDisplay dpy, EGLint interval);
305 
306 #define eglBindTexImage EGLEW_GET_FUN(__eglewBindTexImage)
307 #define eglReleaseTexImage EGLEW_GET_FUN(__eglewReleaseTexImage)
308 #define eglSurfaceAttrib EGLEW_GET_FUN(__eglewSurfaceAttrib)
309 #define eglSwapInterval EGLEW_GET_FUN(__eglewSwapInterval)
310 
311 #define EGLEW_VERSION_1_1 EGLEW_GET_VAR(__EGLEW_VERSION_1_1)
312 
313 #endif /* EGL_VERSION_1_1 */
314 
315 /* ---------------------------- EGL_VERSION_1_2 ---------------------------- */
316 
317 #ifndef EGL_VERSION_1_2
318 #define EGL_VERSION_1_2 1
319 
320 #define EGL_OPENGL_ES_BIT 0x0001
321 #define EGL_OPENVG_BIT 0x0002
322 #define EGL_LUMINANCE_SIZE 0x303D
323 #define EGL_ALPHA_MASK_SIZE 0x303E
324 #define EGL_COLOR_BUFFER_TYPE 0x303F
325 #define EGL_RENDERABLE_TYPE 0x3040
326 #define EGL_SINGLE_BUFFER 0x3085
327 #define EGL_RENDER_BUFFER 0x3086
328 #define EGL_COLORSPACE 0x3087
329 #define EGL_ALPHA_FORMAT 0x3088
330 #define EGL_COLORSPACE_LINEAR 0x308A
331 #define EGL_ALPHA_FORMAT_NONPRE 0x308B
332 #define EGL_ALPHA_FORMAT_PRE 0x308C
333 #define EGL_CLIENT_APIS 0x308D
334 #define EGL_RGB_BUFFER 0x308E
335 #define EGL_LUMINANCE_BUFFER 0x308F
336 #define EGL_HORIZONTAL_RESOLUTION 0x3090
337 #define EGL_VERTICAL_RESOLUTION 0x3091
338 #define EGL_PIXEL_ASPECT_RATIO 0x3092
339 #define EGL_SWAP_BEHAVIOR 0x3093
340 #define EGL_BUFFER_PRESERVED 0x3094
341 #define EGL_BUFFER_DESTROYED 0x3095
342 #define EGL_OPENVG_IMAGE 0x3096
343 #define EGL_CONTEXT_CLIENT_TYPE 0x3097
344 #define EGL_OPENGL_ES_API 0x30A0
345 #define EGL_OPENVG_API 0x30A1
346 #define EGL_DISPLAY_SCALING 10000
347 
348 typedef EGLBoolean ( * PFNEGLBINDAPIPROC) (EGLenum api);
349 typedef EGLSurface ( * PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC) (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint * attrib_list);
350 typedef EGLenum ( * PFNEGLQUERYAPIPROC) ( void );
351 typedef EGLBoolean ( * PFNEGLRELEASETHREADPROC) ( void );
352 typedef EGLBoolean ( * PFNEGLWAITCLIENTPROC) ( void );
353 
354 #define eglBindAPI EGLEW_GET_FUN(__eglewBindAPI)
355 #define eglCreatePbufferFromClientBuffer EGLEW_GET_FUN(__eglewCreatePbufferFromClientBuffer)
356 #define eglQueryAPI EGLEW_GET_FUN(__eglewQueryAPI)
357 #define eglReleaseThread EGLEW_GET_FUN(__eglewReleaseThread)
358 #define eglWaitClient EGLEW_GET_FUN(__eglewWaitClient)
359 
360 #define EGLEW_VERSION_1_2 EGLEW_GET_VAR(__EGLEW_VERSION_1_2)
361 
362 #endif /* EGL_VERSION_1_2 */
363 
364 /* ---------------------------- EGL_VERSION_1_3 ---------------------------- */
365 
366 #ifndef EGL_VERSION_1_3
367 #define EGL_VERSION_1_3 1
368 
369 #define EGL_OPENGL_ES2_BIT 0x0004
370 #define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020
371 #define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040
372 #define EGL_MATCH_NATIVE_PIXMAP 0x3041
373 #define EGL_CONFORMANT 0x3042
374 #define EGL_VG_COLORSPACE 0x3087
375 #define EGL_VG_ALPHA_FORMAT 0x3088
376 #define EGL_VG_COLORSPACE_LINEAR 0x308A
377 #define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B
378 #define EGL_VG_ALPHA_FORMAT_PRE 0x308C
379 #define EGL_CONTEXT_CLIENT_VERSION 0x3098
380 
381 #define EGLEW_VERSION_1_3 EGLEW_GET_VAR(__EGLEW_VERSION_1_3)
382 
383 #endif /* EGL_VERSION_1_3 */
384 
385 /* ---------------------------- EGL_VERSION_1_4 ---------------------------- */
386 
387 #ifndef EGL_VERSION_1_4
388 #define EGL_VERSION_1_4 1
389 
390 #define EGL_OPENGL_BIT 0x0008
391 #define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200
392 #define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400
393 #define EGL_MULTISAMPLE_RESOLVE 0x3099
394 #define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A
395 #define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B
396 #define EGL_OPENGL_API 0x30A2
397 
398 typedef EGLContext ( * PFNEGLGETCURRENTCONTEXTPROC) ( void );
399 
400 #define eglGetCurrentContext EGLEW_GET_FUN(__eglewGetCurrentContext)
401 
402 #define EGLEW_VERSION_1_4 EGLEW_GET_VAR(__EGLEW_VERSION_1_4)
403 
404 #endif /* EGL_VERSION_1_4 */
405 
406 /* ---------------------------- EGL_VERSION_1_5 ---------------------------- */
407 
408 #ifndef EGL_VERSION_1_5
409 #define EGL_VERSION_1_5 1
410 
411 #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001
412 #define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001
413 #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002
414 #define EGL_OPENGL_ES3_BIT 0x00000040
415 #define EGL_GL_COLORSPACE_SRGB 0x3089
416 #define EGL_GL_COLORSPACE_LINEAR 0x308A
417 #define EGL_CONTEXT_MAJOR_VERSION 0x3098
418 #define EGL_CL_EVENT_HANDLE 0x309C
419 #define EGL_GL_COLORSPACE 0x309D
420 #define EGL_GL_TEXTURE_2D 0x30B1
421 #define EGL_GL_TEXTURE_3D 0x30B2
422 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3
423 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4
424 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5
425 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6
426 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7
427 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8
428 #define EGL_GL_RENDERBUFFER 0x30B9
429 #define EGL_GL_TEXTURE_LEVEL 0x30BC
430 #define EGL_GL_TEXTURE_ZOFFSET 0x30BD
431 #define EGL_IMAGE_PRESERVED 0x30D2
432 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0
433 #define EGL_SYNC_STATUS 0x30F1
434 #define EGL_SIGNALED 0x30F2
435 #define EGL_UNSIGNALED 0x30F3
436 #define EGL_TIMEOUT_EXPIRED 0x30F5
437 #define EGL_CONDITION_SATISFIED 0x30F6
438 #define EGL_SYNC_TYPE 0x30F7
439 #define EGL_SYNC_CONDITION 0x30F8
440 #define EGL_SYNC_FENCE 0x30F9
441 #define EGL_CONTEXT_MINOR_VERSION 0x30FB
442 #define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD
443 #define EGL_SYNC_CL_EVENT 0x30FE
444 #define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF
445 #define EGL_CONTEXT_OPENGL_DEBUG 0x31B0
446 #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1
447 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2
448 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD
449 #define EGL_NO_RESET_NOTIFICATION 0x31BE
450 #define EGL_LOSE_CONTEXT_ON_RESET 0x31BF
451 #define EGL_FOREVER 0xFFFFFFFFFFFFFFFF
452 
453 typedef EGLint ( * PFNEGLCLIENTWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout);
454 typedef EGLImage ( * PFNEGLCREATEIMAGEPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib * attrib_list);
455 typedef EGLSurface ( * PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLAttrib * attrib_list);
456 typedef EGLSurface ( * PFNEGLCREATEPLATFORMWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void * native_window, const EGLAttrib * attrib_list);
457 typedef EGLSync ( * PFNEGLCREATESYNCPROC) (EGLDisplay dpy, EGLenum type, const EGLAttrib * attrib_list);
458 typedef EGLBoolean ( * PFNEGLDESTROYIMAGEPROC) (EGLDisplay dpy, EGLImage image);
459 typedef EGLBoolean ( * PFNEGLDESTROYSYNCPROC) (EGLDisplay dpy, EGLSync sync);
460 typedef EGLDisplay ( * PFNEGLGETPLATFORMDISPLAYPROC) (EGLenum platform, void * native_display, const EGLAttrib * attrib_list);
461 typedef EGLBoolean ( * PFNEGLGETSYNCATTRIBPROC) (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib * value);
462 typedef EGLBoolean ( * PFNEGLWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags);
463 
464 #define eglClientWaitSync EGLEW_GET_FUN(__eglewClientWaitSync)
465 #define eglCreateImage EGLEW_GET_FUN(__eglewCreateImage)
466 #define eglCreatePlatformPixmapSurface EGLEW_GET_FUN(__eglewCreatePlatformPixmapSurface)
467 #define eglCreatePlatformWindowSurface EGLEW_GET_FUN(__eglewCreatePlatformWindowSurface)
468 #define eglCreateSync EGLEW_GET_FUN(__eglewCreateSync)
469 #define eglDestroyImage EGLEW_GET_FUN(__eglewDestroyImage)
470 #define eglDestroySync EGLEW_GET_FUN(__eglewDestroySync)
471 #define eglGetPlatformDisplay EGLEW_GET_FUN(__eglewGetPlatformDisplay)
472 #define eglGetSyncAttrib EGLEW_GET_FUN(__eglewGetSyncAttrib)
473 #define eglWaitSync EGLEW_GET_FUN(__eglewWaitSync)
474 
475 #define EGLEW_VERSION_1_5 EGLEW_GET_VAR(__EGLEW_VERSION_1_5)
476 
477 #endif /* EGL_VERSION_1_5 */
478 
479 /* ------------------------- EGL_ANDROID_blob_cache ------------------------ */
480 
481 #ifndef EGL_ANDROID_blob_cache
482 #define EGL_ANDROID_blob_cache 1
483 
484 typedef void ( * PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
485 
486 #define eglSetBlobCacheFuncsANDROID EGLEW_GET_FUN(__eglewSetBlobCacheFuncsANDROID)
487 
488 #define EGLEW_ANDROID_blob_cache EGLEW_GET_VAR(__EGLEW_ANDROID_blob_cache)
489 
490 #endif /* EGL_ANDROID_blob_cache */
491 
492 /* ---------------- EGL_ANDROID_create_native_client_buffer ---------------- */
493 
494 #ifndef EGL_ANDROID_create_native_client_buffer
495 #define EGL_ANDROID_create_native_client_buffer 1
496 
497 #define EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID 0x00000001
498 #define EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID 0x00000002
499 #define EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID 0x00000004
500 #define EGL_NATIVE_BUFFER_USAGE_ANDROID 0x3143
501 
502 typedef EGLClientBuffer ( * PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC) (const EGLint * attrib_list);
503 
504 #define eglCreateNativeClientBufferANDROID EGLEW_GET_FUN(__eglewCreateNativeClientBufferANDROID)
505 
506 #define EGLEW_ANDROID_create_native_client_buffer EGLEW_GET_VAR(__EGLEW_ANDROID_create_native_client_buffer)
507 
508 #endif /* EGL_ANDROID_create_native_client_buffer */
509 
510 /* --------------------- EGL_ANDROID_framebuffer_target -------------------- */
511 
512 #ifndef EGL_ANDROID_framebuffer_target
513 #define EGL_ANDROID_framebuffer_target 1
514 
515 #define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147
516 
517 #define EGLEW_ANDROID_framebuffer_target EGLEW_GET_VAR(__EGLEW_ANDROID_framebuffer_target)
518 
519 #endif /* EGL_ANDROID_framebuffer_target */
520 
521 /* ----------------- EGL_ANDROID_front_buffer_auto_refresh ----------------- */
522 
523 #ifndef EGL_ANDROID_front_buffer_auto_refresh
524 #define EGL_ANDROID_front_buffer_auto_refresh 1
525 
526 #define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C
527 
528 #define EGLEW_ANDROID_front_buffer_auto_refresh EGLEW_GET_VAR(__EGLEW_ANDROID_front_buffer_auto_refresh)
529 
530 #endif /* EGL_ANDROID_front_buffer_auto_refresh */
531 
532 /* -------------------- EGL_ANDROID_image_native_buffer -------------------- */
533 
534 #ifndef EGL_ANDROID_image_native_buffer
535 #define EGL_ANDROID_image_native_buffer 1
536 
537 #define EGL_NATIVE_BUFFER_ANDROID 0x3140
538 
539 #define EGLEW_ANDROID_image_native_buffer EGLEW_GET_VAR(__EGLEW_ANDROID_image_native_buffer)
540 
541 #endif /* EGL_ANDROID_image_native_buffer */
542 
543 /* --------------------- EGL_ANDROID_native_fence_sync --------------------- */
544 
545 #ifndef EGL_ANDROID_native_fence_sync
546 #define EGL_ANDROID_native_fence_sync 1
547 
548 #define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144
549 #define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145
550 #define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146
551 
552 typedef EGLint ( * PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync);
553 
554 #define eglDupNativeFenceFDANDROID EGLEW_GET_FUN(__eglewDupNativeFenceFDANDROID)
555 
556 #define EGLEW_ANDROID_native_fence_sync EGLEW_GET_VAR(__EGLEW_ANDROID_native_fence_sync)
557 
558 #endif /* EGL_ANDROID_native_fence_sync */
559 
560 /* --------------------- EGL_ANDROID_presentation_time --------------------- */
561 
562 #ifndef EGL_ANDROID_presentation_time
563 #define EGL_ANDROID_presentation_time 1
564 
565 typedef EGLBoolean ( * PFNEGLPRESENTATIONTIMEANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
566 
567 #define eglPresentationTimeANDROID EGLEW_GET_FUN(__eglewPresentationTimeANDROID)
568 
569 #define EGLEW_ANDROID_presentation_time EGLEW_GET_VAR(__EGLEW_ANDROID_presentation_time)
570 
571 #endif /* EGL_ANDROID_presentation_time */
572 
573 /* ------------------------- EGL_ANDROID_recordable ------------------------ */
574 
575 #ifndef EGL_ANDROID_recordable
576 #define EGL_ANDROID_recordable 1
577 
578 #define EGL_RECORDABLE_ANDROID 0x3142
579 
580 #define EGLEW_ANDROID_recordable EGLEW_GET_VAR(__EGLEW_ANDROID_recordable)
581 
582 #endif /* EGL_ANDROID_recordable */
583 
584 /* ---------------- EGL_ANGLE_d3d_share_handle_client_buffer --------------- */
585 
586 #ifndef EGL_ANGLE_d3d_share_handle_client_buffer
587 #define EGL_ANGLE_d3d_share_handle_client_buffer 1
588 
589 #define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
590 
591 #define EGLEW_ANGLE_d3d_share_handle_client_buffer EGLEW_GET_VAR(__EGLEW_ANGLE_d3d_share_handle_client_buffer)
592 
593 #endif /* EGL_ANGLE_d3d_share_handle_client_buffer */
594 
595 /* -------------------------- EGL_ANGLE_device_d3d ------------------------- */
596 
597 #ifndef EGL_ANGLE_device_d3d
598 #define EGL_ANGLE_device_d3d 1
599 
600 #define EGL_D3D9_DEVICE_ANGLE 0x33A0
601 #define EGL_D3D11_DEVICE_ANGLE 0x33A1
602 
603 #define EGLEW_ANGLE_device_d3d EGLEW_GET_VAR(__EGLEW_ANGLE_device_d3d)
604 
605 #endif /* EGL_ANGLE_device_d3d */
606 
607 /* -------------------- EGL_ANGLE_query_surface_pointer -------------------- */
608 
609 #ifndef EGL_ANGLE_query_surface_pointer
610 #define EGL_ANGLE_query_surface_pointer 1
611 
612 typedef EGLBoolean ( * PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void ** value);
613 
614 #define eglQuerySurfacePointerANGLE EGLEW_GET_FUN(__eglewQuerySurfacePointerANGLE)
615 
616 #define EGLEW_ANGLE_query_surface_pointer EGLEW_GET_VAR(__EGLEW_ANGLE_query_surface_pointer)
617 
618 #endif /* EGL_ANGLE_query_surface_pointer */
619 
620 /* ------------- EGL_ANGLE_surface_d3d_texture_2d_share_handle ------------- */
621 
622 #ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle
623 #define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
624 
625 #define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
626 
627 #define EGLEW_ANGLE_surface_d3d_texture_2d_share_handle EGLEW_GET_VAR(__EGLEW_ANGLE_surface_d3d_texture_2d_share_handle)
628 
629 #endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */
630 
631 /* ---------------------- EGL_ANGLE_window_fixed_size ---------------------- */
632 
633 #ifndef EGL_ANGLE_window_fixed_size
634 #define EGL_ANGLE_window_fixed_size 1
635 
636 #define EGL_FIXED_SIZE_ANGLE 0x3201
637 
638 #define EGLEW_ANGLE_window_fixed_size EGLEW_GET_VAR(__EGLEW_ANGLE_window_fixed_size)
639 
640 #endif /* EGL_ANGLE_window_fixed_size */
641 
642 /* --------------------- EGL_ARM_implicit_external_sync -------------------- */
643 
644 #ifndef EGL_ARM_implicit_external_sync
645 #define EGL_ARM_implicit_external_sync 1
646 
647 #define EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM 0x328A
648 
649 #define EGLEW_ARM_implicit_external_sync EGLEW_GET_VAR(__EGLEW_ARM_implicit_external_sync)
650 
651 #endif /* EGL_ARM_implicit_external_sync */
652 
653 /* ------------------- EGL_ARM_pixmap_multisample_discard ------------------ */
654 
655 #ifndef EGL_ARM_pixmap_multisample_discard
656 #define EGL_ARM_pixmap_multisample_discard 1
657 
658 #define EGL_DISCARD_SAMPLES_ARM 0x3286
659 
660 #define EGLEW_ARM_pixmap_multisample_discard EGLEW_GET_VAR(__EGLEW_ARM_pixmap_multisample_discard)
661 
662 #endif /* EGL_ARM_pixmap_multisample_discard */
663 
664 /* --------------------------- EGL_EXT_buffer_age -------------------------- */
665 
666 #ifndef EGL_EXT_buffer_age
667 #define EGL_EXT_buffer_age 1
668 
669 #define EGL_BUFFER_AGE_EXT 0x313D
670 
671 #define EGLEW_EXT_buffer_age EGLEW_GET_VAR(__EGLEW_EXT_buffer_age)
672 
673 #endif /* EGL_EXT_buffer_age */
674 
675 /* ----------------------- EGL_EXT_client_extensions ----------------------- */
676 
677 #ifndef EGL_EXT_client_extensions
678 #define EGL_EXT_client_extensions 1
679 
680 #define EGLEW_EXT_client_extensions EGLEW_GET_VAR(__EGLEW_EXT_client_extensions)
681 
682 #endif /* EGL_EXT_client_extensions */
683 
684 /* ------------------- EGL_EXT_create_context_robustness ------------------- */
685 
686 #ifndef EGL_EXT_create_context_robustness
687 #define EGL_EXT_create_context_robustness 1
688 
689 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF
690 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138
691 #define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE
692 #define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF
693 
694 #define EGLEW_EXT_create_context_robustness EGLEW_GET_VAR(__EGLEW_EXT_create_context_robustness)
695 
696 #endif /* EGL_EXT_create_context_robustness */
697 
698 /* -------------------------- EGL_EXT_device_base -------------------------- */
699 
700 #ifndef EGL_EXT_device_base
701 #define EGL_EXT_device_base 1
702 
703 #define EGL_BAD_DEVICE_EXT 0x322B
704 #define EGL_DEVICE_EXT 0x322C
705 
706 #define EGLEW_EXT_device_base EGLEW_GET_VAR(__EGLEW_EXT_device_base)
707 
708 #endif /* EGL_EXT_device_base */
709 
710 /* --------------------------- EGL_EXT_device_drm -------------------------- */
711 
712 #ifndef EGL_EXT_device_drm
713 #define EGL_EXT_device_drm 1
714 
715 #define EGL_DRM_DEVICE_FILE_EXT 0x3233
716 
717 #define EGLEW_EXT_device_drm EGLEW_GET_VAR(__EGLEW_EXT_device_drm)
718 
719 #endif /* EGL_EXT_device_drm */
720 
721 /* ----------------------- EGL_EXT_device_enumeration ---------------------- */
722 
723 #ifndef EGL_EXT_device_enumeration
724 #define EGL_EXT_device_enumeration 1
725 
726 typedef EGLBoolean ( * PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT * devices, EGLint * num_devices);
727 
728 #define eglQueryDevicesEXT EGLEW_GET_FUN(__eglewQueryDevicesEXT)
729 
730 #define EGLEW_EXT_device_enumeration EGLEW_GET_VAR(__EGLEW_EXT_device_enumeration)
731 
732 #endif /* EGL_EXT_device_enumeration */
733 
734 /* ------------------------- EGL_EXT_device_openwf ------------------------- */
735 
736 #ifndef EGL_EXT_device_openwf
737 #define EGL_EXT_device_openwf 1
738 
739 #define EGL_OPENWF_DEVICE_ID_EXT 0x3237
740 
741 #define EGLEW_EXT_device_openwf EGLEW_GET_VAR(__EGLEW_EXT_device_openwf)
742 
743 #endif /* EGL_EXT_device_openwf */
744 
745 /* -------------------------- EGL_EXT_device_query ------------------------- */
746 
747 #ifndef EGL_EXT_device_query
748 #define EGL_EXT_device_query 1
749 
750 #define EGL_BAD_DEVICE_EXT 0x322B
751 #define EGL_DEVICE_EXT 0x322C
752 
753 typedef EGLBoolean ( * PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib * value);
754 typedef const char * ( * PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name);
755 typedef EGLBoolean ( * PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib * value);
756 
757 #define eglQueryDeviceAttribEXT EGLEW_GET_FUN(__eglewQueryDeviceAttribEXT)
758 #define eglQueryDeviceStringEXT EGLEW_GET_FUN(__eglewQueryDeviceStringEXT)
759 #define eglQueryDisplayAttribEXT EGLEW_GET_FUN(__eglewQueryDisplayAttribEXT)
760 
761 #define EGLEW_EXT_device_query EGLEW_GET_VAR(__EGLEW_EXT_device_query)
762 
763 #endif /* EGL_EXT_device_query */
764 
765 /* ------------------ EGL_EXT_gl_colorspace_bt2020_linear ------------------ */
766 
767 #ifndef EGL_EXT_gl_colorspace_bt2020_linear
768 #define EGL_EXT_gl_colorspace_bt2020_linear 1
769 
770 #define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F
771 
772 #define EGLEW_EXT_gl_colorspace_bt2020_linear EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_bt2020_linear)
773 
774 #endif /* EGL_EXT_gl_colorspace_bt2020_linear */
775 
776 /* -------------------- EGL_EXT_gl_colorspace_bt2020_pq -------------------- */
777 
778 #ifndef EGL_EXT_gl_colorspace_bt2020_pq
779 #define EGL_EXT_gl_colorspace_bt2020_pq 1
780 
781 #define EGL_GL_COLORSPACE_BT2020_PQ_EXT 0x3340
782 
783 #define EGLEW_EXT_gl_colorspace_bt2020_pq EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_bt2020_pq)
784 
785 #endif /* EGL_EXT_gl_colorspace_bt2020_pq */
786 
787 /* ------------------- EGL_EXT_gl_colorspace_scrgb_linear ------------------ */
788 
789 #ifndef EGL_EXT_gl_colorspace_scrgb_linear
790 #define EGL_EXT_gl_colorspace_scrgb_linear 1
791 
792 #define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350
793 
794 #define EGLEW_EXT_gl_colorspace_scrgb_linear EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_scrgb_linear)
795 
796 #endif /* EGL_EXT_gl_colorspace_scrgb_linear */
797 
798 /* ---------------------- EGL_EXT_image_dma_buf_import --------------------- */
799 
800 #ifndef EGL_EXT_image_dma_buf_import
801 #define EGL_EXT_image_dma_buf_import 1
802 
803 #define EGL_LINUX_DMA_BUF_EXT 0x3270
804 #define EGL_LINUX_DRM_FOURCC_EXT 0x3271
805 #define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272
806 #define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273
807 #define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274
808 #define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275
809 #define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276
810 #define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277
811 #define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278
812 #define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279
813 #define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A
814 #define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B
815 #define EGL_SAMPLE_RANGE_HINT_EXT 0x327C
816 #define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
817 #define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
818 #define EGL_ITU_REC601_EXT 0x327F
819 #define EGL_ITU_REC709_EXT 0x3280
820 #define EGL_ITU_REC2020_EXT 0x3281
821 #define EGL_YUV_FULL_RANGE_EXT 0x3282
822 #define EGL_YUV_NARROW_RANGE_EXT 0x3283
823 #define EGL_YUV_CHROMA_SITING_0_EXT 0x3284
824 #define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285
825 
826 #define EGLEW_EXT_image_dma_buf_import EGLEW_GET_VAR(__EGLEW_EXT_image_dma_buf_import)
827 
828 #endif /* EGL_EXT_image_dma_buf_import */
829 
830 /* ----------------- EGL_EXT_image_dma_buf_import_modifiers ---------------- */
831 
832 #ifndef EGL_EXT_image_dma_buf_import_modifiers
833 #define EGL_EXT_image_dma_buf_import_modifiers 1
834 
835 #define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440
836 #define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441
837 #define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442
838 #define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443
839 #define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444
840 #define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445
841 #define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446
842 #define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447
843 #define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448
844 #define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449
845 #define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A
846 
847 typedef EGLBoolean ( * PFNEGLQUERYDMABUFFORMATSEXTPROC) (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats);
848 typedef EGLBoolean ( * PFNEGLQUERYDMABUFMODIFIERSEXTPROC) (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers);
849 
850 #define eglQueryDmaBufFormatsEXT EGLEW_GET_FUN(__eglewQueryDmaBufFormatsEXT)
851 #define eglQueryDmaBufModifiersEXT EGLEW_GET_FUN(__eglewQueryDmaBufModifiersEXT)
852 
853 #define EGLEW_EXT_image_dma_buf_import_modifiers EGLEW_GET_VAR(__EGLEW_EXT_image_dma_buf_import_modifiers)
854 
855 #endif /* EGL_EXT_image_dma_buf_import_modifiers */
856 
857 /* ------------------------ EGL_EXT_multiview_window ----------------------- */
858 
859 #ifndef EGL_EXT_multiview_window
860 #define EGL_EXT_multiview_window 1
861 
862 #define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134
863 
864 #define EGLEW_EXT_multiview_window EGLEW_GET_VAR(__EGLEW_EXT_multiview_window)
865 
866 #endif /* EGL_EXT_multiview_window */
867 
868 /* -------------------------- EGL_EXT_output_base -------------------------- */
869 
870 #ifndef EGL_EXT_output_base
871 #define EGL_EXT_output_base 1
872 
873 #define EGL_BAD_OUTPUT_LAYER_EXT 0x322D
874 #define EGL_BAD_OUTPUT_PORT_EXT 0x322E
875 #define EGL_SWAP_INTERVAL_EXT 0x322F
876 
877 typedef EGLBoolean ( * PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib * attrib_list, EGLOutputLayerEXT * layers, EGLint max_layers, EGLint * num_layers);
878 typedef EGLBoolean ( * PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib * attrib_list, EGLOutputPortEXT * ports, EGLint max_ports, EGLint * num_ports);
879 typedef EGLBoolean ( * PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
880 typedef EGLBoolean ( * PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
881 typedef EGLBoolean ( * PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib * value);
882 typedef const char * ( * PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
883 typedef EGLBoolean ( * PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib * value);
884 typedef const char * ( * PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
885 
886 #define eglGetOutputLayersEXT EGLEW_GET_FUN(__eglewGetOutputLayersEXT)
887 #define eglGetOutputPortsEXT EGLEW_GET_FUN(__eglewGetOutputPortsEXT)
888 #define eglOutputLayerAttribEXT EGLEW_GET_FUN(__eglewOutputLayerAttribEXT)
889 #define eglOutputPortAttribEXT EGLEW_GET_FUN(__eglewOutputPortAttribEXT)
890 #define eglQueryOutputLayerAttribEXT EGLEW_GET_FUN(__eglewQueryOutputLayerAttribEXT)
891 #define eglQueryOutputLayerStringEXT EGLEW_GET_FUN(__eglewQueryOutputLayerStringEXT)
892 #define eglQueryOutputPortAttribEXT EGLEW_GET_FUN(__eglewQueryOutputPortAttribEXT)
893 #define eglQueryOutputPortStringEXT EGLEW_GET_FUN(__eglewQueryOutputPortStringEXT)
894 
895 #define EGLEW_EXT_output_base EGLEW_GET_VAR(__EGLEW_EXT_output_base)
896 
897 #endif /* EGL_EXT_output_base */
898 
899 /* --------------------------- EGL_EXT_output_drm -------------------------- */
900 
901 #ifndef EGL_EXT_output_drm
902 #define EGL_EXT_output_drm 1
903 
904 #define EGL_DRM_CRTC_EXT 0x3234
905 #define EGL_DRM_PLANE_EXT 0x3235
906 #define EGL_DRM_CONNECTOR_EXT 0x3236
907 
908 #define EGLEW_EXT_output_drm EGLEW_GET_VAR(__EGLEW_EXT_output_drm)
909 
910 #endif /* EGL_EXT_output_drm */
911 
912 /* ------------------------- EGL_EXT_output_openwf ------------------------- */
913 
914 #ifndef EGL_EXT_output_openwf
915 #define EGL_EXT_output_openwf 1
916 
917 #define EGL_OPENWF_PIPELINE_ID_EXT 0x3238
918 #define EGL_OPENWF_PORT_ID_EXT 0x3239
919 
920 #define EGLEW_EXT_output_openwf EGLEW_GET_VAR(__EGLEW_EXT_output_openwf)
921 
922 #endif /* EGL_EXT_output_openwf */
923 
924 /* ----------------------- EGL_EXT_pixel_format_float ---------------------- */
925 
926 #ifndef EGL_EXT_pixel_format_float
927 #define EGL_EXT_pixel_format_float 1
928 
929 #define EGL_COLOR_COMPONENT_TYPE_EXT 0x3339
930 #define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A
931 #define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B
932 
933 #define EGLEW_EXT_pixel_format_float EGLEW_GET_VAR(__EGLEW_EXT_pixel_format_float)
934 
935 #endif /* EGL_EXT_pixel_format_float */
936 
937 /* ------------------------- EGL_EXT_platform_base ------------------------- */
938 
939 #ifndef EGL_EXT_platform_base
940 #define EGL_EXT_platform_base 1
941 
942 typedef EGLSurface ( * PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLint * attrib_list);
943 typedef EGLSurface ( * PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void * native_window, const EGLint * attrib_list);
944 typedef EGLDisplay ( * PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void * native_display, const EGLint * attrib_list);
945 
946 #define eglCreatePlatformPixmapSurfaceEXT EGLEW_GET_FUN(__eglewCreatePlatformPixmapSurfaceEXT)
947 #define eglCreatePlatformWindowSurfaceEXT EGLEW_GET_FUN(__eglewCreatePlatformWindowSurfaceEXT)
948 #define eglGetPlatformDisplayEXT EGLEW_GET_FUN(__eglewGetPlatformDisplayEXT)
949 
950 #define EGLEW_EXT_platform_base EGLEW_GET_VAR(__EGLEW_EXT_platform_base)
951 
952 #endif /* EGL_EXT_platform_base */
953 
954 /* ------------------------ EGL_EXT_platform_device ------------------------ */
955 
956 #ifndef EGL_EXT_platform_device
957 #define EGL_EXT_platform_device 1
958 
959 #define EGL_PLATFORM_DEVICE_EXT 0x313F
960 
961 #define EGLEW_EXT_platform_device EGLEW_GET_VAR(__EGLEW_EXT_platform_device)
962 
963 #endif /* EGL_EXT_platform_device */
964 
965 /* ------------------------ EGL_EXT_platform_wayland ----------------------- */
966 
967 #ifndef EGL_EXT_platform_wayland
968 #define EGL_EXT_platform_wayland 1
969 
970 #define EGL_PLATFORM_WAYLAND_EXT 0x31D8
971 
972 #define EGLEW_EXT_platform_wayland EGLEW_GET_VAR(__EGLEW_EXT_platform_wayland)
973 
974 #endif /* EGL_EXT_platform_wayland */
975 
976 /* -------------------------- EGL_EXT_platform_x11 ------------------------- */
977 
978 #ifndef EGL_EXT_platform_x11
979 #define EGL_EXT_platform_x11 1
980 
981 #define EGL_PLATFORM_X11_EXT 0x31D5
982 #define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6
983 
984 #define EGLEW_EXT_platform_x11 EGLEW_GET_VAR(__EGLEW_EXT_platform_x11)
985 
986 #endif /* EGL_EXT_platform_x11 */
987 
988 /* ----------------------- EGL_EXT_protected_content ----------------------- */
989 
990 #ifndef EGL_EXT_protected_content
991 #define EGL_EXT_protected_content 1
992 
993 #define EGL_PROTECTED_CONTENT_EXT 0x32C0
994 
995 #define EGLEW_EXT_protected_content EGLEW_GET_VAR(__EGLEW_EXT_protected_content)
996 
997 #endif /* EGL_EXT_protected_content */
998 
999 /* ----------------------- EGL_EXT_protected_surface ----------------------- */
1000 
1001 #ifndef EGL_EXT_protected_surface
1002 #define EGL_EXT_protected_surface 1
1003 
1004 #define EGL_PROTECTED_CONTENT_EXT 0x32C0
1005 
1006 #define EGLEW_EXT_protected_surface EGLEW_GET_VAR(__EGLEW_EXT_protected_surface)
1007 
1008 #endif /* EGL_EXT_protected_surface */
1009 
1010 /* ------------------- EGL_EXT_stream_consumer_egloutput ------------------- */
1011 
1012 #ifndef EGL_EXT_stream_consumer_egloutput
1013 #define EGL_EXT_stream_consumer_egloutput 1
1014 
1015 typedef EGLBoolean ( * PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
1016 
1017 #define eglStreamConsumerOutputEXT EGLEW_GET_FUN(__eglewStreamConsumerOutputEXT)
1018 
1019 #define EGLEW_EXT_stream_consumer_egloutput EGLEW_GET_VAR(__EGLEW_EXT_stream_consumer_egloutput)
1020 
1021 #endif /* EGL_EXT_stream_consumer_egloutput */
1022 
1023 /* ------------------- EGL_EXT_surface_SMPTE2086_metadata ------------------ */
1024 
1025 #ifndef EGL_EXT_surface_SMPTE2086_metadata
1026 #define EGL_EXT_surface_SMPTE2086_metadata 1
1027 
1028 #define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341
1029 #define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342
1030 #define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343
1031 #define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344
1032 #define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345
1033 #define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346
1034 #define EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347
1035 #define EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348
1036 #define EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349
1037 #define EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A
1038 
1039 #define EGLEW_EXT_surface_SMPTE2086_metadata EGLEW_GET_VAR(__EGLEW_EXT_surface_SMPTE2086_metadata)
1040 
1041 #endif /* EGL_EXT_surface_SMPTE2086_metadata */
1042 
1043 /* -------------------- EGL_EXT_swap_buffers_with_damage ------------------- */
1044 
1045 #ifndef EGL_EXT_swap_buffers_with_damage
1046 #define EGL_EXT_swap_buffers_with_damage 1
1047 
1048 typedef EGLBoolean ( * PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, EGLint * rects, EGLint n_rects);
1049 
1050 #define eglSwapBuffersWithDamageEXT EGLEW_GET_FUN(__eglewSwapBuffersWithDamageEXT)
1051 
1052 #define EGLEW_EXT_swap_buffers_with_damage EGLEW_GET_VAR(__EGLEW_EXT_swap_buffers_with_damage)
1053 
1054 #endif /* EGL_EXT_swap_buffers_with_damage */
1055 
1056 /* -------------------------- EGL_EXT_yuv_surface -------------------------- */
1057 
1058 #ifndef EGL_EXT_yuv_surface
1059 #define EGL_EXT_yuv_surface 1
1060 
1061 #define EGL_YUV_BUFFER_EXT 0x3300
1062 #define EGL_YUV_ORDER_EXT 0x3301
1063 #define EGL_YUV_ORDER_YUV_EXT 0x3302
1064 #define EGL_YUV_ORDER_YVU_EXT 0x3303
1065 #define EGL_YUV_ORDER_YUYV_EXT 0x3304
1066 #define EGL_YUV_ORDER_UYVY_EXT 0x3305
1067 #define EGL_YUV_ORDER_YVYU_EXT 0x3306
1068 #define EGL_YUV_ORDER_VYUY_EXT 0x3307
1069 #define EGL_YUV_ORDER_AYUV_EXT 0x3308
1070 #define EGL_YUV_CSC_STANDARD_EXT 0x330A
1071 #define EGL_YUV_CSC_STANDARD_601_EXT 0x330B
1072 #define EGL_YUV_CSC_STANDARD_709_EXT 0x330C
1073 #define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D
1074 #define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311
1075 #define EGL_YUV_SUBSAMPLE_EXT 0x3312
1076 #define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313
1077 #define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314
1078 #define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315
1079 #define EGL_YUV_DEPTH_RANGE_EXT 0x3317
1080 #define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318
1081 #define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319
1082 #define EGL_YUV_PLANE_BPP_EXT 0x331A
1083 #define EGL_YUV_PLANE_BPP_0_EXT 0x331B
1084 #define EGL_YUV_PLANE_BPP_8_EXT 0x331C
1085 #define EGL_YUV_PLANE_BPP_10_EXT 0x331D
1086 
1087 #define EGLEW_EXT_yuv_surface EGLEW_GET_VAR(__EGLEW_EXT_yuv_surface)
1088 
1089 #endif /* EGL_EXT_yuv_surface */
1090 
1091 /* -------------------------- EGL_HI_clientpixmap -------------------------- */
1092 
1093 #ifndef EGL_HI_clientpixmap
1094 #define EGL_HI_clientpixmap 1
1095 
1096 #define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74
1097 
1098 typedef EGLSurface ( * PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI * pixmap);
1099 
1100 #define eglCreatePixmapSurfaceHI EGLEW_GET_FUN(__eglewCreatePixmapSurfaceHI)
1101 
1102 #define EGLEW_HI_clientpixmap EGLEW_GET_VAR(__EGLEW_HI_clientpixmap)
1103 
1104 #endif /* EGL_HI_clientpixmap */
1105 
1106 /* -------------------------- EGL_HI_colorformats -------------------------- */
1107 
1108 #ifndef EGL_HI_colorformats
1109 #define EGL_HI_colorformats 1
1110 
1111 #define EGL_COLOR_FORMAT_HI 0x8F70
1112 #define EGL_COLOR_RGB_HI 0x8F71
1113 #define EGL_COLOR_RGBA_HI 0x8F72
1114 #define EGL_COLOR_ARGB_HI 0x8F73
1115 
1116 #define EGLEW_HI_colorformats EGLEW_GET_VAR(__EGLEW_HI_colorformats)
1117 
1118 #endif /* EGL_HI_colorformats */
1119 
1120 /* ------------------------ EGL_IMG_context_priority ----------------------- */
1121 
1122 #ifndef EGL_IMG_context_priority
1123 #define EGL_IMG_context_priority 1
1124 
1125 #define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100
1126 #define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101
1127 #define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102
1128 #define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103
1129 
1130 #define EGLEW_IMG_context_priority EGLEW_GET_VAR(__EGLEW_IMG_context_priority)
1131 
1132 #endif /* EGL_IMG_context_priority */
1133 
1134 /* ---------------------- EGL_IMG_image_plane_attribs ---------------------- */
1135 
1136 #ifndef EGL_IMG_image_plane_attribs
1137 #define EGL_IMG_image_plane_attribs 1
1138 
1139 #define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105
1140 #define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106
1141 
1142 #define EGLEW_IMG_image_plane_attribs EGLEW_GET_VAR(__EGLEW_IMG_image_plane_attribs)
1143 
1144 #endif /* EGL_IMG_image_plane_attribs */
1145 
1146 /* ---------------------------- EGL_KHR_cl_event --------------------------- */
1147 
1148 #ifndef EGL_KHR_cl_event
1149 #define EGL_KHR_cl_event 1
1150 
1151 #define EGL_CL_EVENT_HANDLE_KHR 0x309C
1152 #define EGL_SYNC_CL_EVENT_KHR 0x30FE
1153 #define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF
1154 
1155 #define EGLEW_KHR_cl_event EGLEW_GET_VAR(__EGLEW_KHR_cl_event)
1156 
1157 #endif /* EGL_KHR_cl_event */
1158 
1159 /* --------------------------- EGL_KHR_cl_event2 --------------------------- */
1160 
1161 #ifndef EGL_KHR_cl_event2
1162 #define EGL_KHR_cl_event2 1
1163 
1164 #define EGL_CL_EVENT_HANDLE_KHR 0x309C
1165 #define EGL_SYNC_CL_EVENT_KHR 0x30FE
1166 #define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF
1167 
1168 typedef EGLSyncKHR ( * PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR * attrib_list);
1169 
1170 #define eglCreateSync64KHR EGLEW_GET_FUN(__eglewCreateSync64KHR)
1171 
1172 #define EGLEW_KHR_cl_event2 EGLEW_GET_VAR(__EGLEW_KHR_cl_event2)
1173 
1174 #endif /* EGL_KHR_cl_event2 */
1175 
1176 /* ----------------- EGL_KHR_client_get_all_proc_addresses ----------------- */
1177 
1178 #ifndef EGL_KHR_client_get_all_proc_addresses
1179 #define EGL_KHR_client_get_all_proc_addresses 1
1180 
1181 #define EGLEW_KHR_client_get_all_proc_addresses EGLEW_GET_VAR(__EGLEW_KHR_client_get_all_proc_addresses)
1182 
1183 #endif /* EGL_KHR_client_get_all_proc_addresses */
1184 
1185 /* ------------------------- EGL_KHR_config_attribs ------------------------ */
1186 
1187 #ifndef EGL_KHR_config_attribs
1188 #define EGL_KHR_config_attribs 1
1189 
1190 #define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020
1191 #define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040
1192 #define EGL_CONFORMANT_KHR 0x3042
1193 
1194 #define EGLEW_KHR_config_attribs EGLEW_GET_VAR(__EGLEW_KHR_config_attribs)
1195 
1196 #endif /* EGL_KHR_config_attribs */
1197 
1198 /* --------------------- EGL_KHR_context_flush_control --------------------- */
1199 
1200 #ifndef EGL_KHR_context_flush_control
1201 #define EGL_KHR_context_flush_control 1
1202 
1203 #define EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR 0
1204 #define EGL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x2097
1205 #define EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x2098
1206 
1207 #define EGLEW_KHR_context_flush_control EGLEW_GET_VAR(__EGLEW_KHR_context_flush_control)
1208 
1209 #endif /* EGL_KHR_context_flush_control */
1210 
1211 /* ------------------------- EGL_KHR_create_context ------------------------ */
1212 
1213 #ifndef EGL_KHR_create_context
1214 #define EGL_KHR_create_context 1
1215 
1216 #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001
1217 #define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001
1218 #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002
1219 #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002
1220 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004
1221 #define EGL_OPENGL_ES3_BIT 0x00000040
1222 #define EGL_OPENGL_ES3_BIT_KHR 0x00000040
1223 #define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098
1224 #define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB
1225 #define EGL_CONTEXT_FLAGS_KHR 0x30FC
1226 #define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD
1227 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD
1228 #define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE
1229 #define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF
1230 
1231 #define EGLEW_KHR_create_context EGLEW_GET_VAR(__EGLEW_KHR_create_context)
1232 
1233 #endif /* EGL_KHR_create_context */
1234 
1235 /* -------------------- EGL_KHR_create_context_no_error -------------------- */
1236 
1237 #ifndef EGL_KHR_create_context_no_error
1238 #define EGL_KHR_create_context_no_error 1
1239 
1240 #define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3
1241 
1242 #define EGLEW_KHR_create_context_no_error EGLEW_GET_VAR(__EGLEW_KHR_create_context_no_error)
1243 
1244 #endif /* EGL_KHR_create_context_no_error */
1245 
1246 /* ----------------------------- EGL_KHR_debug ----------------------------- */
1247 
1248 #ifndef EGL_KHR_debug
1249 #define EGL_KHR_debug 1
1250 
1251 #define EGL_OBJECT_THREAD_KHR 0x33B0
1252 #define EGL_OBJECT_DISPLAY_KHR 0x33B1
1253 #define EGL_OBJECT_CONTEXT_KHR 0x33B2
1254 #define EGL_OBJECT_SURFACE_KHR 0x33B3
1255 #define EGL_OBJECT_IMAGE_KHR 0x33B4
1256 #define EGL_OBJECT_SYNC_KHR 0x33B5
1257 #define EGL_OBJECT_STREAM_KHR 0x33B6
1258 #define EGL_DEBUG_CALLBACK_KHR 0x33B8
1259 #define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9
1260 #define EGL_DEBUG_MSG_ERROR_KHR 0x33BA
1261 #define EGL_DEBUG_MSG_WARN_KHR 0x33BB
1262 #define EGL_DEBUG_MSG_INFO_KHR 0x33BC
1263 
1264 typedef EGLint ( * PFNEGLDEBUGMESSAGECONTROLKHRPROC) (EGLDEBUGPROCKHR callback, const EGLAttrib * attrib_list);
1265 typedef EGLint ( * PFNEGLLABELOBJECTKHRPROC) (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label);
1266 typedef EGLBoolean ( * PFNEGLQUERYDEBUGKHRPROC) (EGLint attribute, EGLAttrib * value);
1267 
1268 #define eglDebugMessageControlKHR EGLEW_GET_FUN(__eglewDebugMessageControlKHR)
1269 #define eglLabelObjectKHR EGLEW_GET_FUN(__eglewLabelObjectKHR)
1270 #define eglQueryDebugKHR EGLEW_GET_FUN(__eglewQueryDebugKHR)
1271 
1272 #define EGLEW_KHR_debug EGLEW_GET_VAR(__EGLEW_KHR_debug)
1273 
1274 #endif /* EGL_KHR_debug */
1275 
1276 /* --------------------------- EGL_KHR_fence_sync -------------------------- */
1277 
1278 #ifndef EGL_KHR_fence_sync
1279 #define EGL_KHR_fence_sync 1
1280 
1281 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0
1282 #define EGL_SYNC_CONDITION_KHR 0x30F8
1283 #define EGL_SYNC_FENCE_KHR 0x30F9
1284 
1285 #define EGLEW_KHR_fence_sync EGLEW_GET_VAR(__EGLEW_KHR_fence_sync)
1286 
1287 #endif /* EGL_KHR_fence_sync */
1288 
1289 /* --------------------- EGL_KHR_get_all_proc_addresses -------------------- */
1290 
1291 #ifndef EGL_KHR_get_all_proc_addresses
1292 #define EGL_KHR_get_all_proc_addresses 1
1293 
1294 #define EGLEW_KHR_get_all_proc_addresses EGLEW_GET_VAR(__EGLEW_KHR_get_all_proc_addresses)
1295 
1296 #endif /* EGL_KHR_get_all_proc_addresses */
1297 
1298 /* ------------------------- EGL_KHR_gl_colorspace ------------------------- */
1299 
1300 #ifndef EGL_KHR_gl_colorspace
1301 #define EGL_KHR_gl_colorspace 1
1302 
1303 #define EGL_GL_COLORSPACE_SRGB_KHR 0x3089
1304 #define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A
1305 #define EGL_GL_COLORSPACE_KHR 0x309D
1306 
1307 #define EGLEW_KHR_gl_colorspace EGLEW_GET_VAR(__EGLEW_KHR_gl_colorspace)
1308 
1309 #endif /* EGL_KHR_gl_colorspace */
1310 
1311 /* --------------------- EGL_KHR_gl_renderbuffer_image --------------------- */
1312 
1313 #ifndef EGL_KHR_gl_renderbuffer_image
1314 #define EGL_KHR_gl_renderbuffer_image 1
1315 
1316 #define EGL_GL_RENDERBUFFER_KHR 0x30B9
1317 
1318 #define EGLEW_KHR_gl_renderbuffer_image EGLEW_GET_VAR(__EGLEW_KHR_gl_renderbuffer_image)
1319 
1320 #endif /* EGL_KHR_gl_renderbuffer_image */
1321 
1322 /* ---------------------- EGL_KHR_gl_texture_2D_image ---------------------- */
1323 
1324 #ifndef EGL_KHR_gl_texture_2D_image
1325 #define EGL_KHR_gl_texture_2D_image 1
1326 
1327 #define EGL_GL_TEXTURE_2D_KHR 0x30B1
1328 #define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC
1329 
1330 #define EGLEW_KHR_gl_texture_2D_image EGLEW_GET_VAR(__EGLEW_KHR_gl_texture_2D_image)
1331 
1332 #endif /* EGL_KHR_gl_texture_2D_image */
1333 
1334 /* ---------------------- EGL_KHR_gl_texture_3D_image ---------------------- */
1335 
1336 #ifndef EGL_KHR_gl_texture_3D_image
1337 #define EGL_KHR_gl_texture_3D_image 1
1338 
1339 #define EGL_GL_TEXTURE_3D_KHR 0x30B2
1340 #define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD
1341 
1342 #define EGLEW_KHR_gl_texture_3D_image EGLEW_GET_VAR(__EGLEW_KHR_gl_texture_3D_image)
1343 
1344 #endif /* EGL_KHR_gl_texture_3D_image */
1345 
1346 /* -------------------- EGL_KHR_gl_texture_cubemap_image ------------------- */
1347 
1348 #ifndef EGL_KHR_gl_texture_cubemap_image
1349 #define EGL_KHR_gl_texture_cubemap_image 1
1350 
1351 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3
1352 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4
1353 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5
1354 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6
1355 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7
1356 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8
1357 
1358 #define EGLEW_KHR_gl_texture_cubemap_image EGLEW_GET_VAR(__EGLEW_KHR_gl_texture_cubemap_image)
1359 
1360 #endif /* EGL_KHR_gl_texture_cubemap_image */
1361 
1362 /* ----------------------------- EGL_KHR_image ----------------------------- */
1363 
1364 #ifndef EGL_KHR_image
1365 #define EGL_KHR_image 1
1366 
1367 #define EGL_NATIVE_PIXMAP_KHR 0x30B0
1368 
1369 typedef EGLImageKHR ( * PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint * attrib_list);
1370 typedef EGLBoolean ( * PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
1371 
1372 #define eglCreateImageKHR EGLEW_GET_FUN(__eglewCreateImageKHR)
1373 #define eglDestroyImageKHR EGLEW_GET_FUN(__eglewDestroyImageKHR)
1374 
1375 #define EGLEW_KHR_image EGLEW_GET_VAR(__EGLEW_KHR_image)
1376 
1377 #endif /* EGL_KHR_image */
1378 
1379 /* --------------------------- EGL_KHR_image_base -------------------------- */
1380 
1381 #ifndef EGL_KHR_image_base
1382 #define EGL_KHR_image_base 1
1383 
1384 #define EGL_IMAGE_PRESERVED_KHR 0x30D2
1385 
1386 #define EGLEW_KHR_image_base EGLEW_GET_VAR(__EGLEW_KHR_image_base)
1387 
1388 #endif /* EGL_KHR_image_base */
1389 
1390 /* -------------------------- EGL_KHR_image_pixmap ------------------------- */
1391 
1392 #ifndef EGL_KHR_image_pixmap
1393 #define EGL_KHR_image_pixmap 1
1394 
1395 #define EGL_NATIVE_PIXMAP_KHR 0x30B0
1396 
1397 #define EGLEW_KHR_image_pixmap EGLEW_GET_VAR(__EGLEW_KHR_image_pixmap)
1398 
1399 #endif /* EGL_KHR_image_pixmap */
1400 
1401 /* -------------------------- EGL_KHR_lock_surface ------------------------- */
1402 
1403 #ifndef EGL_KHR_lock_surface
1404 #define EGL_KHR_lock_surface 1
1405 
1406 #define EGL_READ_SURFACE_BIT_KHR 0x0001
1407 #define EGL_WRITE_SURFACE_BIT_KHR 0x0002
1408 #define EGL_LOCK_SURFACE_BIT_KHR 0x0080
1409 #define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100
1410 #define EGL_MATCH_FORMAT_KHR 0x3043
1411 #define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0
1412 #define EGL_FORMAT_RGB_565_KHR 0x30C1
1413 #define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2
1414 #define EGL_FORMAT_RGBA_8888_KHR 0x30C3
1415 #define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4
1416 #define EGL_LOCK_USAGE_HINT_KHR 0x30C5
1417 #define EGL_BITMAP_POINTER_KHR 0x30C6
1418 #define EGL_BITMAP_PITCH_KHR 0x30C7
1419 #define EGL_BITMAP_ORIGIN_KHR 0x30C8
1420 #define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9
1421 #define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
1422 #define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB
1423 #define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
1424 #define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
1425 #define EGL_LOWER_LEFT_KHR 0x30CE
1426 #define EGL_UPPER_LEFT_KHR 0x30CF
1427 
1428 typedef EGLBoolean ( * PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint * attrib_list);
1429 typedef EGLBoolean ( * PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface);
1430 
1431 #define eglLockSurfaceKHR EGLEW_GET_FUN(__eglewLockSurfaceKHR)
1432 #define eglUnlockSurfaceKHR EGLEW_GET_FUN(__eglewUnlockSurfaceKHR)
1433 
1434 #define EGLEW_KHR_lock_surface EGLEW_GET_VAR(__EGLEW_KHR_lock_surface)
1435 
1436 #endif /* EGL_KHR_lock_surface */
1437 
1438 /* ------------------------- EGL_KHR_lock_surface2 ------------------------- */
1439 
1440 #ifndef EGL_KHR_lock_surface2
1441 #define EGL_KHR_lock_surface2 1
1442 
1443 #define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110
1444 
1445 #define EGLEW_KHR_lock_surface2 EGLEW_GET_VAR(__EGLEW_KHR_lock_surface2)
1446 
1447 #endif /* EGL_KHR_lock_surface2 */
1448 
1449 /* ------------------------- EGL_KHR_lock_surface3 ------------------------- */
1450 
1451 #ifndef EGL_KHR_lock_surface3
1452 #define EGL_KHR_lock_surface3 1
1453 
1454 #define EGL_READ_SURFACE_BIT_KHR 0x0001
1455 #define EGL_WRITE_SURFACE_BIT_KHR 0x0002
1456 #define EGL_LOCK_SURFACE_BIT_KHR 0x0080
1457 #define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100
1458 #define EGL_MATCH_FORMAT_KHR 0x3043
1459 #define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0
1460 #define EGL_FORMAT_RGB_565_KHR 0x30C1
1461 #define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2
1462 #define EGL_FORMAT_RGBA_8888_KHR 0x30C3
1463 #define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4
1464 #define EGL_LOCK_USAGE_HINT_KHR 0x30C5
1465 #define EGL_BITMAP_POINTER_KHR 0x30C6
1466 #define EGL_BITMAP_PITCH_KHR 0x30C7
1467 #define EGL_BITMAP_ORIGIN_KHR 0x30C8
1468 #define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9
1469 #define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
1470 #define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB
1471 #define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
1472 #define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
1473 #define EGL_LOWER_LEFT_KHR 0x30CE
1474 #define EGL_UPPER_LEFT_KHR 0x30CF
1475 #define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110
1476 
1477 typedef EGLBoolean ( * PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR * value);
1478 
1479 #define eglQuerySurface64KHR EGLEW_GET_FUN(__eglewQuerySurface64KHR)
1480 
1481 #define EGLEW_KHR_lock_surface3 EGLEW_GET_VAR(__EGLEW_KHR_lock_surface3)
1482 
1483 #endif /* EGL_KHR_lock_surface3 */
1484 
1485 /* --------------------- EGL_KHR_mutable_render_buffer --------------------- */
1486 
1487 #ifndef EGL_KHR_mutable_render_buffer
1488 #define EGL_KHR_mutable_render_buffer 1
1489 
1490 #define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000
1491 
1492 #define EGLEW_KHR_mutable_render_buffer EGLEW_GET_VAR(__EGLEW_KHR_mutable_render_buffer)
1493 
1494 #endif /* EGL_KHR_mutable_render_buffer */
1495 
1496 /* ----------------------- EGL_KHR_no_config_context ----------------------- */
1497 
1498 #ifndef EGL_KHR_no_config_context
1499 #define EGL_KHR_no_config_context 1
1500 
1501 #define EGLEW_KHR_no_config_context EGLEW_GET_VAR(__EGLEW_KHR_no_config_context)
1502 
1503 #endif /* EGL_KHR_no_config_context */
1504 
1505 /* ------------------------- EGL_KHR_partial_update ------------------------ */
1506 
1507 #ifndef EGL_KHR_partial_update
1508 #define EGL_KHR_partial_update 1
1509 
1510 #define EGL_BUFFER_AGE_KHR 0x313D
1511 
1512 typedef EGLBoolean ( * PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint * rects, EGLint n_rects);
1513 
1514 #define eglSetDamageRegionKHR EGLEW_GET_FUN(__eglewSetDamageRegionKHR)
1515 
1516 #define EGLEW_KHR_partial_update EGLEW_GET_VAR(__EGLEW_KHR_partial_update)
1517 
1518 #endif /* EGL_KHR_partial_update */
1519 
1520 /* ------------------------ EGL_KHR_platform_android ----------------------- */
1521 
1522 #ifndef EGL_KHR_platform_android
1523 #define EGL_KHR_platform_android 1
1524 
1525 #define EGL_PLATFORM_ANDROID_KHR 0x3141
1526 
1527 #define EGLEW_KHR_platform_android EGLEW_GET_VAR(__EGLEW_KHR_platform_android)
1528 
1529 #endif /* EGL_KHR_platform_android */
1530 
1531 /* -------------------------- EGL_KHR_platform_gbm ------------------------- */
1532 
1533 #ifndef EGL_KHR_platform_gbm
1534 #define EGL_KHR_platform_gbm 1
1535 
1536 #define EGL_PLATFORM_GBM_KHR 0x31D7
1537 
1538 #define EGLEW_KHR_platform_gbm EGLEW_GET_VAR(__EGLEW_KHR_platform_gbm)
1539 
1540 #endif /* EGL_KHR_platform_gbm */
1541 
1542 /* ------------------------ EGL_KHR_platform_wayland ----------------------- */
1543 
1544 #ifndef EGL_KHR_platform_wayland
1545 #define EGL_KHR_platform_wayland 1
1546 
1547 #define EGL_PLATFORM_WAYLAND_KHR 0x31D8
1548 
1549 #define EGLEW_KHR_platform_wayland EGLEW_GET_VAR(__EGLEW_KHR_platform_wayland)
1550 
1551 #endif /* EGL_KHR_platform_wayland */
1552 
1553 /* -------------------------- EGL_KHR_platform_x11 ------------------------- */
1554 
1555 #ifndef EGL_KHR_platform_x11
1556 #define EGL_KHR_platform_x11 1
1557 
1558 #define EGL_PLATFORM_X11_KHR 0x31D5
1559 #define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6
1560 
1561 #define EGLEW_KHR_platform_x11 EGLEW_GET_VAR(__EGLEW_KHR_platform_x11)
1562 
1563 #endif /* EGL_KHR_platform_x11 */
1564 
1565 /* ------------------------- EGL_KHR_reusable_sync ------------------------- */
1566 
1567 #ifndef EGL_KHR_reusable_sync
1568 #define EGL_KHR_reusable_sync 1
1569 
1570 #define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001
1571 #define EGL_SYNC_STATUS_KHR 0x30F1
1572 #define EGL_SIGNALED_KHR 0x30F2
1573 #define EGL_UNSIGNALED_KHR 0x30F3
1574 #define EGL_TIMEOUT_EXPIRED_KHR 0x30F5
1575 #define EGL_CONDITION_SATISFIED_KHR 0x30F6
1576 #define EGL_SYNC_TYPE_KHR 0x30F7
1577 #define EGL_SYNC_REUSABLE_KHR 0x30FA
1578 #define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFF
1579 
1580 typedef EGLint ( * PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
1581 typedef EGLSyncKHR ( * PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint * attrib_list);
1582 typedef EGLBoolean ( * PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
1583 typedef EGLBoolean ( * PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint * value);
1584 typedef EGLBoolean ( * PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
1585 
1586 #define eglClientWaitSyncKHR EGLEW_GET_FUN(__eglewClientWaitSyncKHR)
1587 #define eglCreateSyncKHR EGLEW_GET_FUN(__eglewCreateSyncKHR)
1588 #define eglDestroySyncKHR EGLEW_GET_FUN(__eglewDestroySyncKHR)
1589 #define eglGetSyncAttribKHR EGLEW_GET_FUN(__eglewGetSyncAttribKHR)
1590 #define eglSignalSyncKHR EGLEW_GET_FUN(__eglewSignalSyncKHR)
1591 
1592 #define EGLEW_KHR_reusable_sync EGLEW_GET_VAR(__EGLEW_KHR_reusable_sync)
1593 
1594 #endif /* EGL_KHR_reusable_sync */
1595 
1596 /* ----------------------------- EGL_KHR_stream ---------------------------- */
1597 
1598 #ifndef EGL_KHR_stream
1599 #define EGL_KHR_stream 1
1600 
1601 #define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210
1602 #define EGL_PRODUCER_FRAME_KHR 0x3212
1603 #define EGL_CONSUMER_FRAME_KHR 0x3213
1604 #define EGL_STREAM_STATE_KHR 0x3214
1605 #define EGL_STREAM_STATE_CREATED_KHR 0x3215
1606 #define EGL_STREAM_STATE_CONNECTING_KHR 0x3216
1607 #define EGL_STREAM_STATE_EMPTY_KHR 0x3217
1608 #define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218
1609 #define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219
1610 #define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A
1611 #define EGL_BAD_STREAM_KHR 0x321B
1612 #define EGL_BAD_STATE_KHR 0x321C
1613 
1614 typedef EGLStreamKHR ( * PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint * attrib_list);
1615 typedef EGLBoolean ( * PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
1616 typedef EGLBoolean ( * PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint * value);
1617 typedef EGLBoolean ( * PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR * value);
1618 typedef EGLBoolean ( * PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
1619 
1620 #define eglCreateStreamKHR EGLEW_GET_FUN(__eglewCreateStreamKHR)
1621 #define eglDestroyStreamKHR EGLEW_GET_FUN(__eglewDestroyStreamKHR)
1622 #define eglQueryStreamKHR EGLEW_GET_FUN(__eglewQueryStreamKHR)
1623 #define eglQueryStreamu64KHR EGLEW_GET_FUN(__eglewQueryStreamu64KHR)
1624 #define eglStreamAttribKHR EGLEW_GET_FUN(__eglewStreamAttribKHR)
1625 
1626 #define EGLEW_KHR_stream EGLEW_GET_VAR(__EGLEW_KHR_stream)
1627 
1628 #endif /* EGL_KHR_stream */
1629 
1630 /* ------------------------- EGL_KHR_stream_attrib ------------------------- */
1631 
1632 #ifndef EGL_KHR_stream_attrib
1633 #define EGL_KHR_stream_attrib 1
1634 
1635 #define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210
1636 #define EGL_STREAM_STATE_KHR 0x3214
1637 #define EGL_STREAM_STATE_CREATED_KHR 0x3215
1638 #define EGL_STREAM_STATE_CONNECTING_KHR 0x3216
1639 
1640 typedef EGLStreamKHR ( * PFNEGLCREATESTREAMATTRIBKHRPROC) (EGLDisplay dpy, const EGLAttrib * attrib_list);
1641 typedef EGLBoolean ( * PFNEGLQUERYSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib * value);
1642 typedef EGLBoolean ( * PFNEGLSETSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value);
1643 typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib * attrib_list);
1644 typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib * attrib_list);
1645 
1646 #define eglCreateStreamAttribKHR EGLEW_GET_FUN(__eglewCreateStreamAttribKHR)
1647 #define eglQueryStreamAttribKHR EGLEW_GET_FUN(__eglewQueryStreamAttribKHR)
1648 #define eglSetStreamAttribKHR EGLEW_GET_FUN(__eglewSetStreamAttribKHR)
1649 #define eglStreamConsumerAcquireAttribKHR EGLEW_GET_FUN(__eglewStreamConsumerAcquireAttribKHR)
1650 #define eglStreamConsumerReleaseAttribKHR EGLEW_GET_FUN(__eglewStreamConsumerReleaseAttribKHR)
1651 
1652 #define EGLEW_KHR_stream_attrib EGLEW_GET_VAR(__EGLEW_KHR_stream_attrib)
1653 
1654 #endif /* EGL_KHR_stream_attrib */
1655 
1656 /* ------------------- EGL_KHR_stream_consumer_gltexture ------------------- */
1657 
1658 #ifndef EGL_KHR_stream_consumer_gltexture
1659 #define EGL_KHR_stream_consumer_gltexture 1
1660 
1661 #define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E
1662 
1663 typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
1664 typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
1665 typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
1666 
1667 #define eglStreamConsumerAcquireKHR EGLEW_GET_FUN(__eglewStreamConsumerAcquireKHR)
1668 #define eglStreamConsumerGLTextureExternalKHR EGLEW_GET_FUN(__eglewStreamConsumerGLTextureExternalKHR)
1669 #define eglStreamConsumerReleaseKHR EGLEW_GET_FUN(__eglewStreamConsumerReleaseKHR)
1670 
1671 #define EGLEW_KHR_stream_consumer_gltexture EGLEW_GET_VAR(__EGLEW_KHR_stream_consumer_gltexture)
1672 
1673 #endif /* EGL_KHR_stream_consumer_gltexture */
1674 
1675 /* -------------------- EGL_KHR_stream_cross_process_fd -------------------- */
1676 
1677 #ifndef EGL_KHR_stream_cross_process_fd
1678 #define EGL_KHR_stream_cross_process_fd 1
1679 
1680 typedef EGLStreamKHR ( * PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
1681 typedef EGLNativeFileDescriptorKHR ( * PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
1682 
1683 #define eglCreateStreamFromFileDescriptorKHR EGLEW_GET_FUN(__eglewCreateStreamFromFileDescriptorKHR)
1684 #define eglGetStreamFileDescriptorKHR EGLEW_GET_FUN(__eglewGetStreamFileDescriptorKHR)
1685 
1686 #define EGLEW_KHR_stream_cross_process_fd EGLEW_GET_VAR(__EGLEW_KHR_stream_cross_process_fd)
1687 
1688 #endif /* EGL_KHR_stream_cross_process_fd */
1689 
1690 /* -------------------------- EGL_KHR_stream_fifo -------------------------- */
1691 
1692 #ifndef EGL_KHR_stream_fifo
1693 #define EGL_KHR_stream_fifo 1
1694 
1695 #define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC
1696 #define EGL_STREAM_TIME_NOW_KHR 0x31FD
1697 #define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE
1698 #define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF
1699 
1700 typedef EGLBoolean ( * PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR * value);
1701 
1702 #define eglQueryStreamTimeKHR EGLEW_GET_FUN(__eglewQueryStreamTimeKHR)
1703 
1704 #define EGLEW_KHR_stream_fifo EGLEW_GET_VAR(__EGLEW_KHR_stream_fifo)
1705 
1706 #endif /* EGL_KHR_stream_fifo */
1707 
1708 /* ----------------- EGL_KHR_stream_producer_aldatalocator ----------------- */
1709 
1710 #ifndef EGL_KHR_stream_producer_aldatalocator
1711 #define EGL_KHR_stream_producer_aldatalocator 1
1712 
1713 #define EGLEW_KHR_stream_producer_aldatalocator EGLEW_GET_VAR(__EGLEW_KHR_stream_producer_aldatalocator)
1714 
1715 #endif /* EGL_KHR_stream_producer_aldatalocator */
1716 
1717 /* ------------------- EGL_KHR_stream_producer_eglsurface ------------------ */
1718 
1719 #ifndef EGL_KHR_stream_producer_eglsurface
1720 #define EGL_KHR_stream_producer_eglsurface 1
1721 
1722 #define EGL_STREAM_BIT_KHR 0x0800
1723 
1724 typedef EGLSurface ( * PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint * attrib_list);
1725 
1726 #define eglCreateStreamProducerSurfaceKHR EGLEW_GET_FUN(__eglewCreateStreamProducerSurfaceKHR)
1727 
1728 #define EGLEW_KHR_stream_producer_eglsurface EGLEW_GET_VAR(__EGLEW_KHR_stream_producer_eglsurface)
1729 
1730 #endif /* EGL_KHR_stream_producer_eglsurface */
1731 
1732 /* ---------------------- EGL_KHR_surfaceless_context ---------------------- */
1733 
1734 #ifndef EGL_KHR_surfaceless_context
1735 #define EGL_KHR_surfaceless_context 1
1736 
1737 #define EGLEW_KHR_surfaceless_context EGLEW_GET_VAR(__EGLEW_KHR_surfaceless_context)
1738 
1739 #endif /* EGL_KHR_surfaceless_context */
1740 
1741 /* -------------------- EGL_KHR_swap_buffers_with_damage ------------------- */
1742 
1743 #ifndef EGL_KHR_swap_buffers_with_damage
1744 #define EGL_KHR_swap_buffers_with_damage 1
1745 
1746 typedef EGLBoolean ( * PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint * rects, EGLint n_rects);
1747 
1748 #define eglSwapBuffersWithDamageKHR EGLEW_GET_FUN(__eglewSwapBuffersWithDamageKHR)
1749 
1750 #define EGLEW_KHR_swap_buffers_with_damage EGLEW_GET_VAR(__EGLEW_KHR_swap_buffers_with_damage)
1751 
1752 #endif /* EGL_KHR_swap_buffers_with_damage */
1753 
1754 /* ------------------------ EGL_KHR_vg_parent_image ------------------------ */
1755 
1756 #ifndef EGL_KHR_vg_parent_image
1757 #define EGL_KHR_vg_parent_image 1
1758 
1759 #define EGL_VG_PARENT_IMAGE_KHR 0x30BA
1760 
1761 #define EGLEW_KHR_vg_parent_image EGLEW_GET_VAR(__EGLEW_KHR_vg_parent_image)
1762 
1763 #endif /* EGL_KHR_vg_parent_image */
1764 
1765 /* --------------------------- EGL_KHR_wait_sync --------------------------- */
1766 
1767 #ifndef EGL_KHR_wait_sync
1768 #define EGL_KHR_wait_sync 1
1769 
1770 typedef EGLint ( * PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
1771 
1772 #define eglWaitSyncKHR EGLEW_GET_FUN(__eglewWaitSyncKHR)
1773 
1774 #define EGLEW_KHR_wait_sync EGLEW_GET_VAR(__EGLEW_KHR_wait_sync)
1775 
1776 #endif /* EGL_KHR_wait_sync */
1777 
1778 /* --------------------------- EGL_MESA_drm_image -------------------------- */
1779 
1780 #ifndef EGL_MESA_drm_image
1781 #define EGL_MESA_drm_image 1
1782 
1783 #define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001
1784 #define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002
1785 #define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0
1786 #define EGL_DRM_BUFFER_USE_MESA 0x31D1
1787 #define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2
1788 #define EGL_DRM_BUFFER_MESA 0x31D3
1789 #define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4
1790 
1791 typedef EGLImageKHR ( * PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint * attrib_list);
1792 typedef EGLBoolean ( * PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint * name, EGLint * handle, EGLint * stride);
1793 
1794 #define eglCreateDRMImageMESA EGLEW_GET_FUN(__eglewCreateDRMImageMESA)
1795 #define eglExportDRMImageMESA EGLEW_GET_FUN(__eglewExportDRMImageMESA)
1796 
1797 #define EGLEW_MESA_drm_image EGLEW_GET_VAR(__EGLEW_MESA_drm_image)
1798 
1799 #endif /* EGL_MESA_drm_image */
1800 
1801 /* --------------------- EGL_MESA_image_dma_buf_export --------------------- */
1802 
1803 #ifndef EGL_MESA_image_dma_buf_export
1804 #define EGL_MESA_image_dma_buf_export 1
1805 
1806 typedef EGLBoolean ( * PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int * fds, EGLint * strides, EGLint * offsets);
1807 typedef EGLBoolean ( * PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int * fourcc, int * num_planes, EGLuint64KHR * modifiers);
1808 
1809 #define eglExportDMABUFImageMESA EGLEW_GET_FUN(__eglewExportDMABUFImageMESA)
1810 #define eglExportDMABUFImageQueryMESA EGLEW_GET_FUN(__eglewExportDMABUFImageQueryMESA)
1811 
1812 #define EGLEW_MESA_image_dma_buf_export EGLEW_GET_VAR(__EGLEW_MESA_image_dma_buf_export)
1813 
1814 #endif /* EGL_MESA_image_dma_buf_export */
1815 
1816 /* ------------------------- EGL_MESA_platform_gbm ------------------------- */
1817 
1818 #ifndef EGL_MESA_platform_gbm
1819 #define EGL_MESA_platform_gbm 1
1820 
1821 #define EGL_PLATFORM_GBM_MESA 0x31D7
1822 
1823 #define EGLEW_MESA_platform_gbm EGLEW_GET_VAR(__EGLEW_MESA_platform_gbm)
1824 
1825 #endif /* EGL_MESA_platform_gbm */
1826 
1827 /* --------------------- EGL_MESA_platform_surfaceless --------------------- */
1828 
1829 #ifndef EGL_MESA_platform_surfaceless
1830 #define EGL_MESA_platform_surfaceless 1
1831 
1832 #define EGL_PLATFORM_SURFACELESS_MESA 0x31DD
1833 
1834 #define EGLEW_MESA_platform_surfaceless EGLEW_GET_VAR(__EGLEW_MESA_platform_surfaceless)
1835 
1836 #endif /* EGL_MESA_platform_surfaceless */
1837 
1838 /* -------------------------- EGL_NOK_swap_region -------------------------- */
1839 
1840 #ifndef EGL_NOK_swap_region
1841 #define EGL_NOK_swap_region 1
1842 
1843 typedef EGLBoolean ( * PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint * rects);
1844 
1845 #define eglSwapBuffersRegionNOK EGLEW_GET_FUN(__eglewSwapBuffersRegionNOK)
1846 
1847 #define EGLEW_NOK_swap_region EGLEW_GET_VAR(__EGLEW_NOK_swap_region)
1848 
1849 #endif /* EGL_NOK_swap_region */
1850 
1851 /* -------------------------- EGL_NOK_swap_region2 ------------------------- */
1852 
1853 #ifndef EGL_NOK_swap_region2
1854 #define EGL_NOK_swap_region2 1
1855 
1856 typedef EGLBoolean ( * PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint * rects);
1857 
1858 #define eglSwapBuffersRegion2NOK EGLEW_GET_FUN(__eglewSwapBuffersRegion2NOK)
1859 
1860 #define EGLEW_NOK_swap_region2 EGLEW_GET_VAR(__EGLEW_NOK_swap_region2)
1861 
1862 #endif /* EGL_NOK_swap_region2 */
1863 
1864 /* ---------------------- EGL_NOK_texture_from_pixmap ---------------------- */
1865 
1866 #ifndef EGL_NOK_texture_from_pixmap
1867 #define EGL_NOK_texture_from_pixmap 1
1868 
1869 #define EGL_Y_INVERTED_NOK 0x307F
1870 
1871 #define EGLEW_NOK_texture_from_pixmap EGLEW_GET_VAR(__EGLEW_NOK_texture_from_pixmap)
1872 
1873 #endif /* EGL_NOK_texture_from_pixmap */
1874 
1875 /* ------------------------ EGL_NV_3dvision_surface ------------------------ */
1876 
1877 #ifndef EGL_NV_3dvision_surface
1878 #define EGL_NV_3dvision_surface 1
1879 
1880 #define EGL_AUTO_STEREO_NV 0x3136
1881 
1882 #define EGLEW_NV_3dvision_surface EGLEW_GET_VAR(__EGLEW_NV_3dvision_surface)
1883 
1884 #endif /* EGL_NV_3dvision_surface */
1885 
1886 /* ------------------------- EGL_NV_coverage_sample ------------------------ */
1887 
1888 #ifndef EGL_NV_coverage_sample
1889 #define EGL_NV_coverage_sample 1
1890 
1891 #define EGL_COVERAGE_BUFFERS_NV 0x30E0
1892 #define EGL_COVERAGE_SAMPLES_NV 0x30E1
1893 
1894 #define EGLEW_NV_coverage_sample EGLEW_GET_VAR(__EGLEW_NV_coverage_sample)
1895 
1896 #endif /* EGL_NV_coverage_sample */
1897 
1898 /* --------------------- EGL_NV_coverage_sample_resolve -------------------- */
1899 
1900 #ifndef EGL_NV_coverage_sample_resolve
1901 #define EGL_NV_coverage_sample_resolve 1
1902 
1903 #define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131
1904 #define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132
1905 #define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133
1906 
1907 #define EGLEW_NV_coverage_sample_resolve EGLEW_GET_VAR(__EGLEW_NV_coverage_sample_resolve)
1908 
1909 #endif /* EGL_NV_coverage_sample_resolve */
1910 
1911 /* --------------------------- EGL_NV_cuda_event --------------------------- */
1912 
1913 #ifndef EGL_NV_cuda_event
1914 #define EGL_NV_cuda_event 1
1915 
1916 #define EGL_CUDA_EVENT_HANDLE_NV 0x323B
1917 #define EGL_SYNC_CUDA_EVENT_NV 0x323C
1918 #define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D
1919 
1920 #define EGLEW_NV_cuda_event EGLEW_GET_VAR(__EGLEW_NV_cuda_event)
1921 
1922 #endif /* EGL_NV_cuda_event */
1923 
1924 /* ------------------------- EGL_NV_depth_nonlinear ------------------------ */
1925 
1926 #ifndef EGL_NV_depth_nonlinear
1927 #define EGL_NV_depth_nonlinear 1
1928 
1929 #define EGL_DEPTH_ENCODING_NONE_NV 0
1930 #define EGL_DEPTH_ENCODING_NV 0x30E2
1931 #define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
1932 
1933 #define EGLEW_NV_depth_nonlinear EGLEW_GET_VAR(__EGLEW_NV_depth_nonlinear)
1934 
1935 #endif /* EGL_NV_depth_nonlinear */
1936 
1937 /* --------------------------- EGL_NV_device_cuda -------------------------- */
1938 
1939 #ifndef EGL_NV_device_cuda
1940 #define EGL_NV_device_cuda 1
1941 
1942 #define EGL_CUDA_DEVICE_NV 0x323A
1943 
1944 #define EGLEW_NV_device_cuda EGLEW_GET_VAR(__EGLEW_NV_device_cuda)
1945 
1946 #endif /* EGL_NV_device_cuda */
1947 
1948 /* -------------------------- EGL_NV_native_query -------------------------- */
1949 
1950 #ifndef EGL_NV_native_query
1951 #define EGL_NV_native_query 1
1952 
1953 typedef EGLBoolean ( * PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType * display_id);
1954 typedef EGLBoolean ( * PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType * pixmap);
1955 typedef EGLBoolean ( * PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType * window);
1956 
1957 #define eglQueryNativeDisplayNV EGLEW_GET_FUN(__eglewQueryNativeDisplayNV)
1958 #define eglQueryNativePixmapNV EGLEW_GET_FUN(__eglewQueryNativePixmapNV)
1959 #define eglQueryNativeWindowNV EGLEW_GET_FUN(__eglewQueryNativeWindowNV)
1960 
1961 #define EGLEW_NV_native_query EGLEW_GET_VAR(__EGLEW_NV_native_query)
1962 
1963 #endif /* EGL_NV_native_query */
1964 
1965 /* ---------------------- EGL_NV_post_convert_rounding --------------------- */
1966 
1967 #ifndef EGL_NV_post_convert_rounding
1968 #define EGL_NV_post_convert_rounding 1
1969 
1970 #define EGLEW_NV_post_convert_rounding EGLEW_GET_VAR(__EGLEW_NV_post_convert_rounding)
1971 
1972 #endif /* EGL_NV_post_convert_rounding */
1973 
1974 /* ------------------------- EGL_NV_post_sub_buffer ------------------------ */
1975 
1976 #ifndef EGL_NV_post_sub_buffer
1977 #define EGL_NV_post_sub_buffer 1
1978 
1979 #define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE
1980 
1981 typedef EGLBoolean ( * PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
1982 
1983 #define eglPostSubBufferNV EGLEW_GET_FUN(__eglewPostSubBufferNV)
1984 
1985 #define EGLEW_NV_post_sub_buffer EGLEW_GET_VAR(__EGLEW_NV_post_sub_buffer)
1986 
1987 #endif /* EGL_NV_post_sub_buffer */
1988 
1989 /* ------------------ EGL_NV_robustness_video_memory_purge ----------------- */
1990 
1991 #ifndef EGL_NV_robustness_video_memory_purge
1992 #define EGL_NV_robustness_video_memory_purge 1
1993 
1994 #define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C
1995 
1996 #define EGLEW_NV_robustness_video_memory_purge EGLEW_GET_VAR(__EGLEW_NV_robustness_video_memory_purge)
1997 
1998 #endif /* EGL_NV_robustness_video_memory_purge */
1999 
2000 /* ------------------ EGL_NV_stream_consumer_gltexture_yuv ----------------- */
2001 
2002 #ifndef EGL_NV_stream_consumer_gltexture_yuv
2003 #define EGL_NV_stream_consumer_gltexture_yuv 1
2004 
2005 #define EGL_YUV_BUFFER_EXT 0x3300
2006 #define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311
2007 #define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C
2008 #define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D
2009 #define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E
2010 
2011 typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLAttrib *attrib_list);
2012 
2013 #define eglStreamConsumerGLTextureExternalAttribsNV EGLEW_GET_FUN(__eglewStreamConsumerGLTextureExternalAttribsNV)
2014 
2015 #define EGLEW_NV_stream_consumer_gltexture_yuv EGLEW_GET_VAR(__EGLEW_NV_stream_consumer_gltexture_yuv)
2016 
2017 #endif /* EGL_NV_stream_consumer_gltexture_yuv */
2018 
2019 /* ---------------------- EGL_NV_stream_cross_display ---------------------- */
2020 
2021 #ifndef EGL_NV_stream_cross_display
2022 #define EGL_NV_stream_cross_display 1
2023 
2024 #define EGL_STREAM_CROSS_DISPLAY_NV 0x334E
2025 
2026 #define EGLEW_NV_stream_cross_display EGLEW_GET_VAR(__EGLEW_NV_stream_cross_display)
2027 
2028 #endif /* EGL_NV_stream_cross_display */
2029 
2030 /* ----------------------- EGL_NV_stream_cross_object ---------------------- */
2031 
2032 #ifndef EGL_NV_stream_cross_object
2033 #define EGL_NV_stream_cross_object 1
2034 
2035 #define EGL_STREAM_CROSS_OBJECT_NV 0x334D
2036 
2037 #define EGLEW_NV_stream_cross_object EGLEW_GET_VAR(__EGLEW_NV_stream_cross_object)
2038 
2039 #endif /* EGL_NV_stream_cross_object */
2040 
2041 /* --------------------- EGL_NV_stream_cross_partition --------------------- */
2042 
2043 #ifndef EGL_NV_stream_cross_partition
2044 #define EGL_NV_stream_cross_partition 1
2045 
2046 #define EGL_STREAM_CROSS_PARTITION_NV 0x323F
2047 
2048 #define EGLEW_NV_stream_cross_partition EGLEW_GET_VAR(__EGLEW_NV_stream_cross_partition)
2049 
2050 #endif /* EGL_NV_stream_cross_partition */
2051 
2052 /* ---------------------- EGL_NV_stream_cross_process ---------------------- */
2053 
2054 #ifndef EGL_NV_stream_cross_process
2055 #define EGL_NV_stream_cross_process 1
2056 
2057 #define EGL_STREAM_CROSS_PROCESS_NV 0x3245
2058 
2059 #define EGLEW_NV_stream_cross_process EGLEW_GET_VAR(__EGLEW_NV_stream_cross_process)
2060 
2061 #endif /* EGL_NV_stream_cross_process */
2062 
2063 /* ----------------------- EGL_NV_stream_cross_system ---------------------- */
2064 
2065 #ifndef EGL_NV_stream_cross_system
2066 #define EGL_NV_stream_cross_system 1
2067 
2068 #define EGL_STREAM_CROSS_SYSTEM_NV 0x334F
2069 
2070 #define EGLEW_NV_stream_cross_system EGLEW_GET_VAR(__EGLEW_NV_stream_cross_system)
2071 
2072 #endif /* EGL_NV_stream_cross_system */
2073 
2074 /* ------------------------ EGL_NV_stream_fifo_next ------------------------ */
2075 
2076 #ifndef EGL_NV_stream_fifo_next
2077 #define EGL_NV_stream_fifo_next 1
2078 
2079 #define EGL_PENDING_FRAME_NV 0x3329
2080 #define EGL_STREAM_TIME_PENDING_NV 0x332A
2081 
2082 #define EGLEW_NV_stream_fifo_next EGLEW_GET_VAR(__EGLEW_NV_stream_fifo_next)
2083 
2084 #endif /* EGL_NV_stream_fifo_next */
2085 
2086 /* --------------------- EGL_NV_stream_fifo_synchronous -------------------- */
2087 
2088 #ifndef EGL_NV_stream_fifo_synchronous
2089 #define EGL_NV_stream_fifo_synchronous 1
2090 
2091 #define EGL_STREAM_FIFO_SYNCHRONOUS_NV 0x3336
2092 
2093 #define EGLEW_NV_stream_fifo_synchronous EGLEW_GET_VAR(__EGLEW_NV_stream_fifo_synchronous)
2094 
2095 #endif /* EGL_NV_stream_fifo_synchronous */
2096 
2097 /* ----------------------- EGL_NV_stream_frame_limits ---------------------- */
2098 
2099 #ifndef EGL_NV_stream_frame_limits
2100 #define EGL_NV_stream_frame_limits 1
2101 
2102 #define EGL_PRODUCER_MAX_FRAME_HINT_NV 0x3337
2103 #define EGL_CONSUMER_MAX_FRAME_HINT_NV 0x3338
2104 
2105 #define EGLEW_NV_stream_frame_limits EGLEW_GET_VAR(__EGLEW_NV_stream_frame_limits)
2106 
2107 #endif /* EGL_NV_stream_frame_limits */
2108 
2109 /* ------------------------- EGL_NV_stream_metadata ------------------------ */
2110 
2111 #ifndef EGL_NV_stream_metadata
2112 #define EGL_NV_stream_metadata 1
2113 
2114 #define EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250
2115 #define EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251
2116 #define EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252
2117 #define EGL_PRODUCER_METADATA_NV 0x3253
2118 #define EGL_CONSUMER_METADATA_NV 0x3254
2119 #define EGL_METADATA0_SIZE_NV 0x3255
2120 #define EGL_METADATA1_SIZE_NV 0x3256
2121 #define EGL_METADATA2_SIZE_NV 0x3257
2122 #define EGL_METADATA3_SIZE_NV 0x3258
2123 #define EGL_METADATA0_TYPE_NV 0x3259
2124 #define EGL_METADATA1_TYPE_NV 0x325A
2125 #define EGL_METADATA2_TYPE_NV 0x325B
2126 #define EGL_METADATA3_TYPE_NV 0x325C
2127 #define EGL_PENDING_METADATA_NV 0x3328
2128 
2129 typedef EGLBoolean ( * PFNEGLQUERYDISPLAYATTRIBNVPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib * value);
2130 typedef EGLBoolean ( * PFNEGLQUERYSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void * data);
2131 typedef EGLBoolean ( * PFNEGLSETSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void * data);
2132 
2133 #define eglQueryDisplayAttribNV EGLEW_GET_FUN(__eglewQueryDisplayAttribNV)
2134 #define eglQueryStreamMetadataNV EGLEW_GET_FUN(__eglewQueryStreamMetadataNV)
2135 #define eglSetStreamMetadataNV EGLEW_GET_FUN(__eglewSetStreamMetadataNV)
2136 
2137 #define EGLEW_NV_stream_metadata EGLEW_GET_VAR(__EGLEW_NV_stream_metadata)
2138 
2139 #endif /* EGL_NV_stream_metadata */
2140 
2141 /* -------------------------- EGL_NV_stream_remote ------------------------- */
2142 
2143 #ifndef EGL_NV_stream_remote
2144 #define EGL_NV_stream_remote 1
2145 
2146 #define EGL_STREAM_STATE_INITIALIZING_NV 0x3240
2147 #define EGL_STREAM_TYPE_NV 0x3241
2148 #define EGL_STREAM_PROTOCOL_NV 0x3242
2149 #define EGL_STREAM_ENDPOINT_NV 0x3243
2150 #define EGL_STREAM_LOCAL_NV 0x3244
2151 #define EGL_STREAM_PROTOCOL_FD_NV 0x3246
2152 #define EGL_STREAM_PRODUCER_NV 0x3247
2153 #define EGL_STREAM_CONSUMER_NV 0x3248
2154 
2155 #define EGLEW_NV_stream_remote EGLEW_GET_VAR(__EGLEW_NV_stream_remote)
2156 
2157 #endif /* EGL_NV_stream_remote */
2158 
2159 /* -------------------------- EGL_NV_stream_reset -------------------------- */
2160 
2161 #ifndef EGL_NV_stream_reset
2162 #define EGL_NV_stream_reset 1
2163 
2164 #define EGL_SUPPORT_RESET_NV 0x3334
2165 #define EGL_SUPPORT_REUSE_NV 0x3335
2166 
2167 typedef EGLBoolean ( * PFNEGLRESETSTREAMNVPROC) (EGLDisplay dpy, EGLStreamKHR stream);
2168 
2169 #define eglResetStreamNV EGLEW_GET_FUN(__eglewResetStreamNV)
2170 
2171 #define EGLEW_NV_stream_reset EGLEW_GET_VAR(__EGLEW_NV_stream_reset)
2172 
2173 #endif /* EGL_NV_stream_reset */
2174 
2175 /* -------------------------- EGL_NV_stream_socket ------------------------- */
2176 
2177 #ifndef EGL_NV_stream_socket
2178 #define EGL_NV_stream_socket 1
2179 
2180 #define EGL_STREAM_PROTOCOL_SOCKET_NV 0x324B
2181 #define EGL_SOCKET_HANDLE_NV 0x324C
2182 #define EGL_SOCKET_TYPE_NV 0x324D
2183 
2184 #define EGLEW_NV_stream_socket EGLEW_GET_VAR(__EGLEW_NV_stream_socket)
2185 
2186 #endif /* EGL_NV_stream_socket */
2187 
2188 /* ----------------------- EGL_NV_stream_socket_inet ----------------------- */
2189 
2190 #ifndef EGL_NV_stream_socket_inet
2191 #define EGL_NV_stream_socket_inet 1
2192 
2193 #define EGL_SOCKET_TYPE_INET_NV 0x324F
2194 
2195 #define EGLEW_NV_stream_socket_inet EGLEW_GET_VAR(__EGLEW_NV_stream_socket_inet)
2196 
2197 #endif /* EGL_NV_stream_socket_inet */
2198 
2199 /* ----------------------- EGL_NV_stream_socket_unix ----------------------- */
2200 
2201 #ifndef EGL_NV_stream_socket_unix
2202 #define EGL_NV_stream_socket_unix 1
2203 
2204 #define EGL_SOCKET_TYPE_UNIX_NV 0x324E
2205 
2206 #define EGLEW_NV_stream_socket_unix EGLEW_GET_VAR(__EGLEW_NV_stream_socket_unix)
2207 
2208 #endif /* EGL_NV_stream_socket_unix */
2209 
2210 /* --------------------------- EGL_NV_stream_sync -------------------------- */
2211 
2212 #ifndef EGL_NV_stream_sync
2213 #define EGL_NV_stream_sync 1
2214 
2215 #define EGL_SYNC_TYPE_KHR 0x30F7
2216 #define EGL_SYNC_NEW_FRAME_NV 0x321F
2217 
2218 typedef EGLSyncKHR ( * PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint * attrib_list);
2219 
2220 #define eglCreateStreamSyncNV EGLEW_GET_FUN(__eglewCreateStreamSyncNV)
2221 
2222 #define EGLEW_NV_stream_sync EGLEW_GET_VAR(__EGLEW_NV_stream_sync)
2223 
2224 #endif /* EGL_NV_stream_sync */
2225 
2226 /* ------------------------------ EGL_NV_sync ------------------------------ */
2227 
2228 #ifndef EGL_NV_sync
2229 #define EGL_NV_sync 1
2230 
2231 #define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001
2232 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6
2233 #define EGL_SYNC_STATUS_NV 0x30E7
2234 #define EGL_SIGNALED_NV 0x30E8
2235 #define EGL_UNSIGNALED_NV 0x30E9
2236 #define EGL_ALREADY_SIGNALED_NV 0x30EA
2237 #define EGL_TIMEOUT_EXPIRED_NV 0x30EB
2238 #define EGL_CONDITION_SATISFIED_NV 0x30EC
2239 #define EGL_SYNC_TYPE_NV 0x30ED
2240 #define EGL_SYNC_CONDITION_NV 0x30EE
2241 #define EGL_SYNC_FENCE_NV 0x30EF
2242 #define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFF
2243 
2244 typedef EGLint ( * PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
2245 typedef EGLSyncNV ( * PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint * attrib_list);
2246 typedef EGLBoolean ( * PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync);
2247 typedef EGLBoolean ( * PFNEGLFENCENVPROC) (EGLSyncNV sync);
2248 typedef EGLBoolean ( * PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint * value);
2249 typedef EGLBoolean ( * PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode);
2250 
2251 #define eglClientWaitSyncNV EGLEW_GET_FUN(__eglewClientWaitSyncNV)
2252 #define eglCreateFenceSyncNV EGLEW_GET_FUN(__eglewCreateFenceSyncNV)
2253 #define eglDestroySyncNV EGLEW_GET_FUN(__eglewDestroySyncNV)
2254 #define eglFenceNV EGLEW_GET_FUN(__eglewFenceNV)
2255 #define eglGetSyncAttribNV EGLEW_GET_FUN(__eglewGetSyncAttribNV)
2256 #define eglSignalSyncNV EGLEW_GET_FUN(__eglewSignalSyncNV)
2257 
2258 #define EGLEW_NV_sync EGLEW_GET_VAR(__EGLEW_NV_sync)
2259 
2260 #endif /* EGL_NV_sync */
2261 
2262 /* --------------------------- EGL_NV_system_time -------------------------- */
2263 
2264 #ifndef EGL_NV_system_time
2265 #define EGL_NV_system_time 1
2266 
2267 typedef EGLuint64NV ( * PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) ( void );
2268 typedef EGLuint64NV ( * PFNEGLGETSYSTEMTIMENVPROC) ( void );
2269 
2270 #define eglGetSystemTimeFrequencyNV EGLEW_GET_FUN(__eglewGetSystemTimeFrequencyNV)
2271 #define eglGetSystemTimeNV EGLEW_GET_FUN(__eglewGetSystemTimeNV)
2272 
2273 #define EGLEW_NV_system_time EGLEW_GET_VAR(__EGLEW_NV_system_time)
2274 
2275 #endif /* EGL_NV_system_time */
2276 
2277 /* --------------------- EGL_TIZEN_image_native_buffer --------------------- */
2278 
2279 #ifndef EGL_TIZEN_image_native_buffer
2280 #define EGL_TIZEN_image_native_buffer 1
2281 
2282 #define EGL_NATIVE_BUFFER_TIZEN 0x32A0
2283 
2284 #define EGLEW_TIZEN_image_native_buffer EGLEW_GET_VAR(__EGLEW_TIZEN_image_native_buffer)
2285 
2286 #endif /* EGL_TIZEN_image_native_buffer */
2287 
2288 /* --------------------- EGL_TIZEN_image_native_surface -------------------- */
2289 
2290 #ifndef EGL_TIZEN_image_native_surface
2291 #define EGL_TIZEN_image_native_surface 1
2292 
2293 #define EGL_NATIVE_SURFACE_TIZEN 0x32A1
2294 
2295 #define EGLEW_TIZEN_image_native_surface EGLEW_GET_VAR(__EGLEW_TIZEN_image_native_surface)
2296 
2297 #endif /* EGL_TIZEN_image_native_surface */
2298 
2299 /* ------------------------------------------------------------------------- */
2300 
2301 #define EGLEW_FUN_EXPORT GLEW_FUN_EXPORT
2302 #define EGLEW_VAR_EXPORT GLEW_VAR_EXPORT
2303 
2304 EGLEW_FUN_EXPORT PFNEGLCHOOSECONFIGPROC __eglewChooseConfig;
2305 EGLEW_FUN_EXPORT PFNEGLCOPYBUFFERSPROC __eglewCopyBuffers;
2306 EGLEW_FUN_EXPORT PFNEGLCREATECONTEXTPROC __eglewCreateContext;
2307 EGLEW_FUN_EXPORT PFNEGLCREATEPBUFFERSURFACEPROC __eglewCreatePbufferSurface;
2308 EGLEW_FUN_EXPORT PFNEGLCREATEPIXMAPSURFACEPROC __eglewCreatePixmapSurface;
2309 EGLEW_FUN_EXPORT PFNEGLCREATEWINDOWSURFACEPROC __eglewCreateWindowSurface;
2310 EGLEW_FUN_EXPORT PFNEGLDESTROYCONTEXTPROC __eglewDestroyContext;
2311 EGLEW_FUN_EXPORT PFNEGLDESTROYSURFACEPROC __eglewDestroySurface;
2312 EGLEW_FUN_EXPORT PFNEGLGETCONFIGATTRIBPROC __eglewGetConfigAttrib;
2313 EGLEW_FUN_EXPORT PFNEGLGETCONFIGSPROC __eglewGetConfigs;
2314 EGLEW_FUN_EXPORT PFNEGLGETCURRENTDISPLAYPROC __eglewGetCurrentDisplay;
2315 EGLEW_FUN_EXPORT PFNEGLGETCURRENTSURFACEPROC __eglewGetCurrentSurface;
2316 EGLEW_FUN_EXPORT PFNEGLGETDISPLAYPROC __eglewGetDisplay;
2317 EGLEW_FUN_EXPORT PFNEGLGETERRORPROC __eglewGetError;
2318 EGLEW_FUN_EXPORT PFNEGLINITIALIZEPROC __eglewInitialize;
2319 EGLEW_FUN_EXPORT PFNEGLMAKECURRENTPROC __eglewMakeCurrent;
2320 EGLEW_FUN_EXPORT PFNEGLQUERYCONTEXTPROC __eglewQueryContext;
2321 EGLEW_FUN_EXPORT PFNEGLQUERYSTRINGPROC __eglewQueryString;
2322 EGLEW_FUN_EXPORT PFNEGLQUERYSURFACEPROC __eglewQuerySurface;
2323 EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSPROC __eglewSwapBuffers;
2324 EGLEW_FUN_EXPORT PFNEGLTERMINATEPROC __eglewTerminate;
2325 EGLEW_FUN_EXPORT PFNEGLWAITGLPROC __eglewWaitGL;
2326 EGLEW_FUN_EXPORT PFNEGLWAITNATIVEPROC __eglewWaitNative;
2327 
2328 EGLEW_FUN_EXPORT PFNEGLBINDTEXIMAGEPROC __eglewBindTexImage;
2329 EGLEW_FUN_EXPORT PFNEGLRELEASETEXIMAGEPROC __eglewReleaseTexImage;
2330 EGLEW_FUN_EXPORT PFNEGLSURFACEATTRIBPROC __eglewSurfaceAttrib;
2331 EGLEW_FUN_EXPORT PFNEGLSWAPINTERVALPROC __eglewSwapInterval;
2332 
2333 EGLEW_FUN_EXPORT PFNEGLBINDAPIPROC __eglewBindAPI;
2334 EGLEW_FUN_EXPORT PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC __eglewCreatePbufferFromClientBuffer;
2335 EGLEW_FUN_EXPORT PFNEGLQUERYAPIPROC __eglewQueryAPI;
2336 EGLEW_FUN_EXPORT PFNEGLRELEASETHREADPROC __eglewReleaseThread;
2337 EGLEW_FUN_EXPORT PFNEGLWAITCLIENTPROC __eglewWaitClient;
2338 
2339 EGLEW_FUN_EXPORT PFNEGLGETCURRENTCONTEXTPROC __eglewGetCurrentContext;
2340 
2341 EGLEW_FUN_EXPORT PFNEGLCLIENTWAITSYNCPROC __eglewClientWaitSync;
2342 EGLEW_FUN_EXPORT PFNEGLCREATEIMAGEPROC __eglewCreateImage;
2343 EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC __eglewCreatePlatformPixmapSurface;
2344 EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMWINDOWSURFACEPROC __eglewCreatePlatformWindowSurface;
2345 EGLEW_FUN_EXPORT PFNEGLCREATESYNCPROC __eglewCreateSync;
2346 EGLEW_FUN_EXPORT PFNEGLDESTROYIMAGEPROC __eglewDestroyImage;
2347 EGLEW_FUN_EXPORT PFNEGLDESTROYSYNCPROC __eglewDestroySync;
2348 EGLEW_FUN_EXPORT PFNEGLGETPLATFORMDISPLAYPROC __eglewGetPlatformDisplay;
2349 EGLEW_FUN_EXPORT PFNEGLGETSYNCATTRIBPROC __eglewGetSyncAttrib;
2350 EGLEW_FUN_EXPORT PFNEGLWAITSYNCPROC __eglewWaitSync;
2351 
2352 EGLEW_FUN_EXPORT PFNEGLSETBLOBCACHEFUNCSANDROIDPROC __eglewSetBlobCacheFuncsANDROID;
2353 
2354 EGLEW_FUN_EXPORT PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC __eglewCreateNativeClientBufferANDROID;
2355 
2356 EGLEW_FUN_EXPORT PFNEGLDUPNATIVEFENCEFDANDROIDPROC __eglewDupNativeFenceFDANDROID;
2357 
2358 EGLEW_FUN_EXPORT PFNEGLPRESENTATIONTIMEANDROIDPROC __eglewPresentationTimeANDROID;
2359 
2360 EGLEW_FUN_EXPORT PFNEGLQUERYSURFACEPOINTERANGLEPROC __eglewQuerySurfacePointerANGLE;
2361 
2362 EGLEW_FUN_EXPORT PFNEGLQUERYDEVICESEXTPROC __eglewQueryDevicesEXT;
2363 
2364 EGLEW_FUN_EXPORT PFNEGLQUERYDEVICEATTRIBEXTPROC __eglewQueryDeviceAttribEXT;
2365 EGLEW_FUN_EXPORT PFNEGLQUERYDEVICESTRINGEXTPROC __eglewQueryDeviceStringEXT;
2366 EGLEW_FUN_EXPORT PFNEGLQUERYDISPLAYATTRIBEXTPROC __eglewQueryDisplayAttribEXT;
2367 
2368 EGLEW_FUN_EXPORT PFNEGLQUERYDMABUFFORMATSEXTPROC __eglewQueryDmaBufFormatsEXT;
2369 EGLEW_FUN_EXPORT PFNEGLQUERYDMABUFMODIFIERSEXTPROC __eglewQueryDmaBufModifiersEXT;
2370 
2371 EGLEW_FUN_EXPORT PFNEGLGETOUTPUTLAYERSEXTPROC __eglewGetOutputLayersEXT;
2372 EGLEW_FUN_EXPORT PFNEGLGETOUTPUTPORTSEXTPROC __eglewGetOutputPortsEXT;
2373 EGLEW_FUN_EXPORT PFNEGLOUTPUTLAYERATTRIBEXTPROC __eglewOutputLayerAttribEXT;
2374 EGLEW_FUN_EXPORT PFNEGLOUTPUTPORTATTRIBEXTPROC __eglewOutputPortAttribEXT;
2375 EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC __eglewQueryOutputLayerAttribEXT;
2376 EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC __eglewQueryOutputLayerStringEXT;
2377 EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC __eglewQueryOutputPortAttribEXT;
2378 EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC __eglewQueryOutputPortStringEXT;
2379 
2380 EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC __eglewCreatePlatformPixmapSurfaceEXT;
2381 EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC __eglewCreatePlatformWindowSurfaceEXT;
2382 EGLEW_FUN_EXPORT PFNEGLGETPLATFORMDISPLAYEXTPROC __eglewGetPlatformDisplayEXT;
2383 
2384 EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMEROUTPUTEXTPROC __eglewStreamConsumerOutputEXT;
2385 
2386 EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC __eglewSwapBuffersWithDamageEXT;
2387 
2388 EGLEW_FUN_EXPORT PFNEGLCREATEPIXMAPSURFACEHIPROC __eglewCreatePixmapSurfaceHI;
2389 
2390 EGLEW_FUN_EXPORT PFNEGLCREATESYNC64KHRPROC __eglewCreateSync64KHR;
2391 
2392 EGLEW_FUN_EXPORT PFNEGLDEBUGMESSAGECONTROLKHRPROC __eglewDebugMessageControlKHR;
2393 EGLEW_FUN_EXPORT PFNEGLLABELOBJECTKHRPROC __eglewLabelObjectKHR;
2394 EGLEW_FUN_EXPORT PFNEGLQUERYDEBUGKHRPROC __eglewQueryDebugKHR;
2395 
2396 EGLEW_FUN_EXPORT PFNEGLCREATEIMAGEKHRPROC __eglewCreateImageKHR;
2397 EGLEW_FUN_EXPORT PFNEGLDESTROYIMAGEKHRPROC __eglewDestroyImageKHR;
2398 
2399 EGLEW_FUN_EXPORT PFNEGLLOCKSURFACEKHRPROC __eglewLockSurfaceKHR;
2400 EGLEW_FUN_EXPORT PFNEGLUNLOCKSURFACEKHRPROC __eglewUnlockSurfaceKHR;
2401 
2402 EGLEW_FUN_EXPORT PFNEGLQUERYSURFACE64KHRPROC __eglewQuerySurface64KHR;
2403 
2404 EGLEW_FUN_EXPORT PFNEGLSETDAMAGEREGIONKHRPROC __eglewSetDamageRegionKHR;
2405 
2406 EGLEW_FUN_EXPORT PFNEGLCLIENTWAITSYNCKHRPROC __eglewClientWaitSyncKHR;
2407 EGLEW_FUN_EXPORT PFNEGLCREATESYNCKHRPROC __eglewCreateSyncKHR;
2408 EGLEW_FUN_EXPORT PFNEGLDESTROYSYNCKHRPROC __eglewDestroySyncKHR;
2409 EGLEW_FUN_EXPORT PFNEGLGETSYNCATTRIBKHRPROC __eglewGetSyncAttribKHR;
2410 EGLEW_FUN_EXPORT PFNEGLSIGNALSYNCKHRPROC __eglewSignalSyncKHR;
2411 
2412 EGLEW_FUN_EXPORT PFNEGLCREATESTREAMKHRPROC __eglewCreateStreamKHR;
2413 EGLEW_FUN_EXPORT PFNEGLDESTROYSTREAMKHRPROC __eglewDestroyStreamKHR;
2414 EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMKHRPROC __eglewQueryStreamKHR;
2415 EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMU64KHRPROC __eglewQueryStreamu64KHR;
2416 EGLEW_FUN_EXPORT PFNEGLSTREAMATTRIBKHRPROC __eglewStreamAttribKHR;
2417 
2418 EGLEW_FUN_EXPORT PFNEGLCREATESTREAMATTRIBKHRPROC __eglewCreateStreamAttribKHR;
2419 EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMATTRIBKHRPROC __eglewQueryStreamAttribKHR;
2420 EGLEW_FUN_EXPORT PFNEGLSETSTREAMATTRIBKHRPROC __eglewSetStreamAttribKHR;
2421 EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC __eglewStreamConsumerAcquireAttribKHR;
2422 EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC __eglewStreamConsumerReleaseAttribKHR;
2423 
2424 EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERACQUIREKHRPROC __eglewStreamConsumerAcquireKHR;
2425 EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC __eglewStreamConsumerGLTextureExternalKHR;
2426 EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERRELEASEKHRPROC __eglewStreamConsumerReleaseKHR;
2427 
2428 EGLEW_FUN_EXPORT PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC __eglewCreateStreamFromFileDescriptorKHR;
2429 EGLEW_FUN_EXPORT PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC __eglewGetStreamFileDescriptorKHR;
2430 
2431 EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMTIMEKHRPROC __eglewQueryStreamTimeKHR;
2432 
2433 EGLEW_FUN_EXPORT PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC __eglewCreateStreamProducerSurfaceKHR;
2434 
2435 EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC __eglewSwapBuffersWithDamageKHR;
2436 
2437 EGLEW_FUN_EXPORT PFNEGLWAITSYNCKHRPROC __eglewWaitSyncKHR;
2438 
2439 EGLEW_FUN_EXPORT PFNEGLCREATEDRMIMAGEMESAPROC __eglewCreateDRMImageMESA;
2440 EGLEW_FUN_EXPORT PFNEGLEXPORTDRMIMAGEMESAPROC __eglewExportDRMImageMESA;
2441 
2442 EGLEW_FUN_EXPORT PFNEGLEXPORTDMABUFIMAGEMESAPROC __eglewExportDMABUFImageMESA;
2443 EGLEW_FUN_EXPORT PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC __eglewExportDMABUFImageQueryMESA;
2444 
2445 EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSREGIONNOKPROC __eglewSwapBuffersRegionNOK;
2446 
2447 EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSREGION2NOKPROC __eglewSwapBuffersRegion2NOK;
2448 
2449 EGLEW_FUN_EXPORT PFNEGLQUERYNATIVEDISPLAYNVPROC __eglewQueryNativeDisplayNV;
2450 EGLEW_FUN_EXPORT PFNEGLQUERYNATIVEPIXMAPNVPROC __eglewQueryNativePixmapNV;
2451 EGLEW_FUN_EXPORT PFNEGLQUERYNATIVEWINDOWNVPROC __eglewQueryNativeWindowNV;
2452 
2453 EGLEW_FUN_EXPORT PFNEGLPOSTSUBBUFFERNVPROC __eglewPostSubBufferNV;
2454 
2455 EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC __eglewStreamConsumerGLTextureExternalAttribsNV;
2456 
2457 EGLEW_FUN_EXPORT PFNEGLQUERYDISPLAYATTRIBNVPROC __eglewQueryDisplayAttribNV;
2458 EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMMETADATANVPROC __eglewQueryStreamMetadataNV;
2459 EGLEW_FUN_EXPORT PFNEGLSETSTREAMMETADATANVPROC __eglewSetStreamMetadataNV;
2460 
2461 EGLEW_FUN_EXPORT PFNEGLRESETSTREAMNVPROC __eglewResetStreamNV;
2462 
2463 EGLEW_FUN_EXPORT PFNEGLCREATESTREAMSYNCNVPROC __eglewCreateStreamSyncNV;
2464 
2465 EGLEW_FUN_EXPORT PFNEGLCLIENTWAITSYNCNVPROC __eglewClientWaitSyncNV;
2466 EGLEW_FUN_EXPORT PFNEGLCREATEFENCESYNCNVPROC __eglewCreateFenceSyncNV;
2467 EGLEW_FUN_EXPORT PFNEGLDESTROYSYNCNVPROC __eglewDestroySyncNV;
2468 EGLEW_FUN_EXPORT PFNEGLFENCENVPROC __eglewFenceNV;
2469 EGLEW_FUN_EXPORT PFNEGLGETSYNCATTRIBNVPROC __eglewGetSyncAttribNV;
2470 EGLEW_FUN_EXPORT PFNEGLSIGNALSYNCNVPROC __eglewSignalSyncNV;
2471 
2472 EGLEW_FUN_EXPORT PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC __eglewGetSystemTimeFrequencyNV;
2473 EGLEW_FUN_EXPORT PFNEGLGETSYSTEMTIMENVPROC __eglewGetSystemTimeNV;
2474 EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_0;
2475 EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_1;
2476 EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_2;
2477 EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_3;
2478 EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_4;
2479 EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_5;
2480 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_blob_cache;
2481 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_create_native_client_buffer;
2482 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_framebuffer_target;
2483 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_front_buffer_auto_refresh;
2484 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_image_native_buffer;
2485 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_native_fence_sync;
2486 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_presentation_time;
2487 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_recordable;
2488 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_d3d_share_handle_client_buffer;
2489 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_device_d3d;
2490 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_query_surface_pointer;
2491 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_surface_d3d_texture_2d_share_handle;
2492 EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_window_fixed_size;
2493 EGLEW_VAR_EXPORT GLboolean __EGLEW_ARM_implicit_external_sync;
2494 EGLEW_VAR_EXPORT GLboolean __EGLEW_ARM_pixmap_multisample_discard;
2495 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_buffer_age;
2496 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_client_extensions;
2497 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_create_context_robustness;
2498 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_base;
2499 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_drm;
2500 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_enumeration;
2501 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_openwf;
2502 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_query;
2503 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_bt2020_linear;
2504 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_bt2020_pq;
2505 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_scrgb_linear;
2506 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_image_dma_buf_import;
2507 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_image_dma_buf_import_modifiers;
2508 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_multiview_window;
2509 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_output_base;
2510 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_output_drm;
2511 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_output_openwf;
2512 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_pixel_format_float;
2513 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_base;
2514 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_device;
2515 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_wayland;
2516 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_x11;
2517 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_protected_content;
2518 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_protected_surface;
2519 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_stream_consumer_egloutput;
2520 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_surface_SMPTE2086_metadata;
2521 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_swap_buffers_with_damage;
2522 EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_yuv_surface;
2523 EGLEW_VAR_EXPORT GLboolean __EGLEW_HI_clientpixmap;
2524 EGLEW_VAR_EXPORT GLboolean __EGLEW_HI_colorformats;
2525 EGLEW_VAR_EXPORT GLboolean __EGLEW_IMG_context_priority;
2526 EGLEW_VAR_EXPORT GLboolean __EGLEW_IMG_image_plane_attribs;
2527 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_cl_event;
2528 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_cl_event2;
2529 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_client_get_all_proc_addresses;
2530 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_config_attribs;
2531 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_context_flush_control;
2532 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_create_context;
2533 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_create_context_no_error;
2534 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_debug;
2535 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_fence_sync;
2536 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_get_all_proc_addresses;
2537 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_colorspace;
2538 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_renderbuffer_image;
2539 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_texture_2D_image;
2540 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_texture_3D_image;
2541 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_texture_cubemap_image;
2542 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_image;
2543 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_image_base;
2544 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_image_pixmap;
2545 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_lock_surface;
2546 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_lock_surface2;
2547 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_lock_surface3;
2548 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_mutable_render_buffer;
2549 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_no_config_context;
2550 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_partial_update;
2551 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_android;
2552 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_gbm;
2553 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_wayland;
2554 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_x11;
2555 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_reusable_sync;
2556 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream;
2557 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_attrib;
2558 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_consumer_gltexture;
2559 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_cross_process_fd;
2560 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_fifo;
2561 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_producer_aldatalocator;
2562 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_producer_eglsurface;
2563 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_surfaceless_context;
2564 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_swap_buffers_with_damage;
2565 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_vg_parent_image;
2566 EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_wait_sync;
2567 EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_drm_image;
2568 EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_image_dma_buf_export;
2569 EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_platform_gbm;
2570 EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_platform_surfaceless;
2571 EGLEW_VAR_EXPORT GLboolean __EGLEW_NOK_swap_region;
2572 EGLEW_VAR_EXPORT GLboolean __EGLEW_NOK_swap_region2;
2573 EGLEW_VAR_EXPORT GLboolean __EGLEW_NOK_texture_from_pixmap;
2574 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_3dvision_surface;
2575 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_coverage_sample;
2576 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_coverage_sample_resolve;
2577 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_cuda_event;
2578 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_depth_nonlinear;
2579 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_device_cuda;
2580 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_native_query;
2581 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_post_convert_rounding;
2582 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_post_sub_buffer;
2583 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_robustness_video_memory_purge;
2584 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_consumer_gltexture_yuv;
2585 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_display;
2586 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_object;
2587 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_partition;
2588 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_process;
2589 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_system;
2590 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_fifo_next;
2591 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_fifo_synchronous;
2592 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_frame_limits;
2593 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_metadata;
2594 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_remote;
2595 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_reset;
2596 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_socket;
2597 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_socket_inet;
2598 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_socket_unix;
2599 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_sync;
2600 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_sync;
2601 EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_system_time;
2602 EGLEW_VAR_EXPORT GLboolean __EGLEW_TIZEN_image_native_buffer;
2603 EGLEW_VAR_EXPORT GLboolean __EGLEW_TIZEN_image_native_surface;
2604 /* ------------------------------------------------------------------------ */
2605 
2606 GLEWAPI GLenum GLEWAPIENTRY eglewInit (EGLDisplay display);
2607 GLEWAPI GLboolean GLEWAPIENTRY eglewIsSupported (const char *name);
2608 
2609 #define EGLEW_GET_VAR(x) (*(const GLboolean*)&x)
2610 #define EGLEW_GET_FUN(x) x
2611 
2612 GLEWAPI GLboolean GLEWAPIENTRY eglewGetExtension (const char *name);
2613 
2614 #ifdef __cplusplus
2615 }
2616 #endif
2617 
2618 #endif /* __eglew_h__ */
+ + + + + diff --git a/doc/html/eglew__head_8h_source.html b/doc/html/eglew__head_8h_source.html new file mode 100644 index 00000000..ec09155d --- /dev/null +++ b/doc/html/eglew__head_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/auto/src/eglew_head.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
eglew_head.h
+
+
+
1 #ifndef __eglew_h__
2 #define __eglew_h__
3 #define __EGLEW_H__
4 
5 #ifdef __eglext_h_
6 #error eglext.h included before eglew.h
7 #endif
8 
9 #if defined(__egl_h_)
10 #error egl.h included before eglew.h
11 #endif
12 
13 #define __eglext_h_
14 
15 #define __egl_h_
16 
17 #ifndef EGLAPIENTRY
18 #define EGLAPIENTRY
19 #endif
20 #ifndef EGLAPI
21 #define EGLAPI extern
22 #endif
23 
24 /* EGL Types */
25 #include <sys/types.h>
26 
27 #include <KHR/khrplatform.h>
28 #include <EGL/eglplatform.h>
29 
30 #include <GL/glew.h>
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 typedef int32_t EGLint;
37 
38 typedef unsigned int EGLBoolean;
39 typedef void *EGLDisplay;
40 typedef void *EGLConfig;
41 typedef void *EGLSurface;
42 typedef void *EGLContext;
43 typedef void (*__eglMustCastToProperFunctionPointerType)(void);
44 
45 typedef unsigned int EGLenum;
46 typedef void *EGLClientBuffer;
47 
48 typedef void *EGLSync;
49 typedef intptr_t EGLAttrib;
50 typedef khronos_utime_nanoseconds_t EGLTime;
51 typedef void *EGLImage;
52 
53 typedef void *EGLSyncKHR;
54 typedef intptr_t EGLAttribKHR;
55 typedef void *EGLLabelKHR;
56 typedef void *EGLObjectKHR;
57 typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);
58 typedef khronos_utime_nanoseconds_t EGLTimeKHR;
59 typedef void *EGLImageKHR;
60 typedef void *EGLStreamKHR;
61 typedef khronos_uint64_t EGLuint64KHR;
62 typedef int EGLNativeFileDescriptorKHR;
63 typedef khronos_ssize_t EGLsizeiANDROID;
64 typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);
65 typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);
66 typedef void *EGLDeviceEXT;
67 typedef void *EGLOutputLayerEXT;
68 typedef void *EGLOutputPortEXT;
69 typedef void *EGLSyncNV;
70 typedef khronos_utime_nanoseconds_t EGLTimeNV;
71 typedef khronos_utime_nanoseconds_t EGLuint64NV;
72 typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
73 
74 struct EGLClientPixmapHI;
75 
76 #define EGL_DONT_CARE ((EGLint)-1)
77 
78 #define EGL_NO_CONTEXT ((EGLContext)0)
79 #define EGL_NO_DISPLAY ((EGLDisplay)0)
80 #define EGL_NO_IMAGE ((EGLImage)0)
81 #define EGL_NO_SURFACE ((EGLSurface)0)
82 #define EGL_NO_SYNC ((EGLSync)0)
83 
84 #define EGL_UNKNOWN ((EGLint)-1)
85 
86 #define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0)
87 
88 EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname);
+ + + + + diff --git a/doc/html/eglew__mid_8h_source.html b/doc/html/eglew__mid_8h_source.html new file mode 100644 index 00000000..66d8310f --- /dev/null +++ b/doc/html/eglew__mid_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/auto/src/eglew_mid.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
eglew_mid.h
+
+
+
1 /* ------------------------------------------------------------------------- */
2 
3 #define EGLEW_FUN_EXPORT GLEW_FUN_EXPORT
4 #define EGLEW_VAR_EXPORT GLEW_VAR_EXPORT
+ + + + + diff --git a/doc/html/eglew__tail_8h_source.html b/doc/html/eglew__tail_8h_source.html new file mode 100644 index 00000000..7bf64230 --- /dev/null +++ b/doc/html/eglew__tail_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/auto/src/eglew_tail.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
eglew_tail.h
+
+
+
1 /* ------------------------------------------------------------------------ */
2 
3 GLEWAPI GLenum GLEWAPIENTRY eglewInit (EGLDisplay display);
4 GLEWAPI GLboolean GLEWAPIENTRY eglewIsSupported (const char *name);
5 
6 #define EGLEW_GET_VAR(x) (*(const GLboolean*)&x)
7 #define EGLEW_GET_FUN(x) x
8 
9 GLEWAPI GLboolean GLEWAPIENTRY eglewGetExtension (const char *name);
10 
11 #ifdef __cplusplus
12 }
13 #endif
14 
15 #endif /* __eglew_h__ */
+ + + + + diff --git a/doc/html/folderclosed.png b/doc/html/folderclosed.png new file mode 100644 index 00000000..bb8ab35e Binary files /dev/null and b/doc/html/folderclosed.png differ diff --git a/doc/html/folderopen.png b/doc/html/folderopen.png new file mode 100644 index 00000000..d6c7f676 Binary files /dev/null and b/doc/html/folderopen.png differ diff --git a/doc/html/functions.html b/doc/html/functions.html new file mode 100644 index 00000000..4a81ef4f --- /dev/null +++ b/doc/html/functions.html @@ -0,0 +1,114 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- a -

+
+ + + + + diff --git a/doc/html/functions_0x7e.html b/doc/html/functions_0x7e.html new file mode 100644 index 00000000..891dbb27 --- /dev/null +++ b/doc/html/functions_0x7e.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- ~ -

+
+ + + + + diff --git a/doc/html/functions_b.html b/doc/html/functions_b.html new file mode 100644 index 00000000..3fad63e7 --- /dev/null +++ b/doc/html/functions_b.html @@ -0,0 +1,204 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- b -

+
+ + + + + diff --git a/doc/html/functions_c.html b/doc/html/functions_c.html new file mode 100644 index 00000000..7ad2b3bf --- /dev/null +++ b/doc/html/functions_c.html @@ -0,0 +1,215 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- c -

+
+ + + + + diff --git a/doc/html/functions_d.html b/doc/html/functions_d.html new file mode 100644 index 00000000..efde21f8 --- /dev/null +++ b/doc/html/functions_d.html @@ -0,0 +1,189 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- d -

+
+ + + + + diff --git a/doc/html/functions_e.html b/doc/html/functions_e.html new file mode 100644 index 00000000..b266d460 --- /dev/null +++ b/doc/html/functions_e.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- e -

+
+ + + + + diff --git a/doc/html/functions_enum.html b/doc/html/functions_enum.html new file mode 100644 index 00000000..031870b1 --- /dev/null +++ b/doc/html/functions_enum.html @@ -0,0 +1,80 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Enumerations + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + + diff --git a/doc/html/functions_eval.html b/doc/html/functions_eval.html new file mode 100644 index 00000000..8a70581a --- /dev/null +++ b/doc/html/functions_eval.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Enumerator + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + + diff --git a/doc/html/functions_f.html b/doc/html/functions_f.html new file mode 100644 index 00000000..8601e821 --- /dev/null +++ b/doc/html/functions_f.html @@ -0,0 +1,149 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- f -

+
+ + + + + diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html new file mode 100644 index 00000000..97c2447a --- /dev/null +++ b/doc/html/functions_func.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_func_0x7e.html b/doc/html/functions_func_0x7e.html new file mode 100644 index 00000000..80c18580 --- /dev/null +++ b/doc/html/functions_func_0x7e.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_func_b.html b/doc/html/functions_func_b.html new file mode 100644 index 00000000..3157be2e --- /dev/null +++ b/doc/html/functions_func_b.html @@ -0,0 +1,119 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_func_c.html b/doc/html/functions_func_c.html new file mode 100644 index 00000000..ff95ffd0 --- /dev/null +++ b/doc/html/functions_func_c.html @@ -0,0 +1,178 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- c -

+
+ + + + + diff --git a/doc/html/functions_func_d.html b/doc/html/functions_func_d.html new file mode 100644 index 00000000..437e178c --- /dev/null +++ b/doc/html/functions_func_d.html @@ -0,0 +1,112 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_func_e.html b/doc/html/functions_func_e.html new file mode 100644 index 00000000..9895746b --- /dev/null +++ b/doc/html/functions_func_e.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_func_f.html b/doc/html/functions_func_f.html new file mode 100644 index 00000000..9c224c88 --- /dev/null +++ b/doc/html/functions_func_f.html @@ -0,0 +1,100 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_func_g.html b/doc/html/functions_func_g.html new file mode 100644 index 00000000..71d22782 --- /dev/null +++ b/doc/html/functions_func_g.html @@ -0,0 +1,332 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- g -

+
+ + + + + diff --git a/doc/html/functions_func_i.html b/doc/html/functions_func_i.html new file mode 100644 index 00000000..3c9244e0 --- /dev/null +++ b/doc/html/functions_func_i.html @@ -0,0 +1,98 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_func_l.html b/doc/html/functions_func_l.html new file mode 100644 index 00000000..2e875db0 --- /dev/null +++ b/doc/html/functions_func_l.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- l -

+
+ + + + + diff --git a/doc/html/functions_func_m.html b/doc/html/functions_func_m.html new file mode 100644 index 00000000..6d308832 --- /dev/null +++ b/doc/html/functions_func_m.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_func_o.html b/doc/html/functions_func_o.html new file mode 100644 index 00000000..4f94f64f --- /dev/null +++ b/doc/html/functions_func_o.html @@ -0,0 +1,104 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_func_p.html b/doc/html/functions_func_p.html new file mode 100644 index 00000000..dbc36f97 --- /dev/null +++ b/doc/html/functions_func_p.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_func_q.html b/doc/html/functions_func_q.html new file mode 100644 index 00000000..37cc37fb --- /dev/null +++ b/doc/html/functions_func_q.html @@ -0,0 +1,115 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_func_r.html b/doc/html/functions_func_r.html new file mode 100644 index 00000000..d64b4d9d --- /dev/null +++ b/doc/html/functions_func_r.html @@ -0,0 +1,121 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- r -

+
+ + + + + diff --git a/doc/html/functions_func_s.html b/doc/html/functions_func_s.html new file mode 100644 index 00000000..dda636c8 --- /dev/null +++ b/doc/html/functions_func_s.html @@ -0,0 +1,185 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- s -

+
+ + + + + diff --git a/doc/html/functions_func_t.html b/doc/html/functions_func_t.html new file mode 100644 index 00000000..399acee5 --- /dev/null +++ b/doc/html/functions_func_t.html @@ -0,0 +1,123 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- t -

+
+ + + + + diff --git a/doc/html/functions_func_u.html b/doc/html/functions_func_u.html new file mode 100644 index 00000000..bbc2d852 --- /dev/null +++ b/doc/html/functions_func_u.html @@ -0,0 +1,107 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_func_v.html b/doc/html/functions_func_v.html new file mode 100644 index 00000000..ff16e159 --- /dev/null +++ b/doc/html/functions_func_v.html @@ -0,0 +1,82 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- v -

+
+ + + + + diff --git a/doc/html/functions_func_w.html b/doc/html/functions_func_w.html new file mode 100644 index 00000000..c6597dab --- /dev/null +++ b/doc/html/functions_func_w.html @@ -0,0 +1,82 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- w -

+
+ + + + + diff --git a/doc/html/functions_func_~.html b/doc/html/functions_func_~.html new file mode 100644 index 00000000..4cf0adba --- /dev/null +++ b/doc/html/functions_func_~.html @@ -0,0 +1,140 @@ + + + + + + +Diligent Engine API Reference: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_g.html b/doc/html/functions_g.html new file mode 100644 index 00000000..76637828 --- /dev/null +++ b/doc/html/functions_g.html @@ -0,0 +1,341 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- g -

+
+ + + + + diff --git a/doc/html/functions_h.html b/doc/html/functions_h.html new file mode 100644 index 00000000..b1944317 --- /dev/null +++ b/doc/html/functions_h.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- h -

+
+ + + + + diff --git a/doc/html/functions_i.html b/doc/html/functions_i.html new file mode 100644 index 00000000..8b84175c --- /dev/null +++ b/doc/html/functions_i.html @@ -0,0 +1,129 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- i -

+
+ + + + + diff --git a/doc/html/functions_l.html b/doc/html/functions_l.html new file mode 100644 index 00000000..961eb7d1 --- /dev/null +++ b/doc/html/functions_l.html @@ -0,0 +1,97 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- l -

+
+ + + + + diff --git a/doc/html/functions_m.html b/doc/html/functions_m.html new file mode 100644 index 00000000..0963023a --- /dev/null +++ b/doc/html/functions_m.html @@ -0,0 +1,347 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- m -

+
+ + + + + diff --git a/doc/html/functions_n.html b/doc/html/functions_n.html new file mode 100644 index 00000000..3247707a --- /dev/null +++ b/doc/html/functions_n.html @@ -0,0 +1,132 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- n -

+
+ + + + + diff --git a/doc/html/functions_o.html b/doc/html/functions_o.html new file mode 100644 index 00000000..622d2f1c --- /dev/null +++ b/doc/html/functions_o.html @@ -0,0 +1,107 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_p.html b/doc/html/functions_p.html new file mode 100644 index 00000000..2ac4a70b --- /dev/null +++ b/doc/html/functions_p.html @@ -0,0 +1,155 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_q.html b/doc/html/functions_q.html new file mode 100644 index 00000000..c2a6fef6 --- /dev/null +++ b/doc/html/functions_q.html @@ -0,0 +1,118 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_r.html b/doc/html/functions_r.html new file mode 100644 index 00000000..3bf6047f --- /dev/null +++ b/doc/html/functions_r.html @@ -0,0 +1,139 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- r -

+
+ + + + + diff --git a/doc/html/functions_s.html b/doc/html/functions_s.html new file mode 100644 index 00000000..ca1d40d2 --- /dev/null +++ b/doc/html/functions_s.html @@ -0,0 +1,264 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- s -

+
+ + + + + diff --git a/doc/html/functions_t.html b/doc/html/functions_t.html new file mode 100644 index 00000000..e19a290a --- /dev/null +++ b/doc/html/functions_t.html @@ -0,0 +1,169 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- t -

+
+ + + + + diff --git a/doc/html/functions_u.html b/doc/html/functions_u.html new file mode 100644 index 00000000..98f049be --- /dev/null +++ b/doc/html/functions_u.html @@ -0,0 +1,114 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_v.html b/doc/html/functions_v.html new file mode 100644 index 00000000..2bdc748b --- /dev/null +++ b/doc/html/functions_v.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- v -

+
+ + + + + diff --git a/doc/html/functions_vars.html b/doc/html/functions_vars.html new file mode 100644 index 00000000..f6930590 --- /dev/null +++ b/doc/html/functions_vars.html @@ -0,0 +1,100 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+
+ + + + + diff --git a/doc/html/functions_vars_b.html b/doc/html/functions_vars_b.html new file mode 100644 index 00000000..5bd409a1 --- /dev/null +++ b/doc/html/functions_vars_b.html @@ -0,0 +1,164 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- b -

+
+ + + + + diff --git a/doc/html/functions_vars_c.html b/doc/html/functions_vars_c.html new file mode 100644 index 00000000..09d0b591 --- /dev/null +++ b/doc/html/functions_vars_c.html @@ -0,0 +1,116 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- c -

+
+ + + + + diff --git a/doc/html/functions_vars_d.html b/doc/html/functions_vars_d.html new file mode 100644 index 00000000..bc5d7d75 --- /dev/null +++ b/doc/html/functions_vars_d.html @@ -0,0 +1,156 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- d -

+
+ + + + + diff --git a/doc/html/functions_vars_e.html b/doc/html/functions_vars_e.html new file mode 100644 index 00000000..ab3ffc35 --- /dev/null +++ b/doc/html/functions_vars_e.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- e -

+
+ + + + + diff --git a/doc/html/functions_vars_f.html b/doc/html/functions_vars_f.html new file mode 100644 index 00000000..0fd5db30 --- /dev/null +++ b/doc/html/functions_vars_f.html @@ -0,0 +1,113 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_vars_g.html b/doc/html/functions_vars_g.html new file mode 100644 index 00000000..3d89815a --- /dev/null +++ b/doc/html/functions_vars_g.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- g -

+
+ + + + + diff --git a/doc/html/functions_vars_h.html b/doc/html/functions_vars_h.html new file mode 100644 index 00000000..169148e1 --- /dev/null +++ b/doc/html/functions_vars_h.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_vars_i.html b/doc/html/functions_vars_i.html new file mode 100644 index 00000000..31e5277b --- /dev/null +++ b/doc/html/functions_vars_i.html @@ -0,0 +1,110 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- i -

+
+ + + + + diff --git a/doc/html/functions_vars_l.html b/doc/html/functions_vars_l.html new file mode 100644 index 00000000..79d301d2 --- /dev/null +++ b/doc/html/functions_vars_l.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- l -

+
+ + + + + diff --git a/doc/html/functions_vars_m.html b/doc/html/functions_vars_m.html new file mode 100644 index 00000000..6c6b4b69 --- /dev/null +++ b/doc/html/functions_vars_m.html @@ -0,0 +1,331 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- m -

+
+ + + + + diff --git a/doc/html/functions_vars_n.html b/doc/html/functions_vars_n.html new file mode 100644 index 00000000..28970ac8 --- /dev/null +++ b/doc/html/functions_vars_n.html @@ -0,0 +1,132 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- n -

+
+ + + + + diff --git a/doc/html/functions_vars_o.html b/doc/html/functions_vars_o.html new file mode 100644 index 00000000..6d7961d5 --- /dev/null +++ b/doc/html/functions_vars_o.html @@ -0,0 +1,82 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- o -

+
+ + + + + diff --git a/doc/html/functions_vars_p.html b/doc/html/functions_vars_p.html new file mode 100644 index 00000000..0ade2eec --- /dev/null +++ b/doc/html/functions_vars_p.html @@ -0,0 +1,143 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_vars_q.html b/doc/html/functions_vars_q.html new file mode 100644 index 00000000..d18b5d36 --- /dev/null +++ b/doc/html/functions_vars_q.html @@ -0,0 +1,82 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- q -

+
+ + + + + diff --git a/doc/html/functions_vars_r.html b/doc/html/functions_vars_r.html new file mode 100644 index 00000000..82e54edb --- /dev/null +++ b/doc/html/functions_vars_r.html @@ -0,0 +1,97 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- r -

+
+ + + + + diff --git a/doc/html/functions_vars_s.html b/doc/html/functions_vars_s.html new file mode 100644 index 00000000..329620e9 --- /dev/null +++ b/doc/html/functions_vars_s.html @@ -0,0 +1,158 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- s -

+
+ + + + + diff --git a/doc/html/functions_vars_t.html b/doc/html/functions_vars_t.html new file mode 100644 index 00000000..2fe0fdb7 --- /dev/null +++ b/doc/html/functions_vars_t.html @@ -0,0 +1,125 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- t -

+
+ + + + + diff --git a/doc/html/functions_vars_u.html b/doc/html/functions_vars_u.html new file mode 100644 index 00000000..b6dae268 --- /dev/null +++ b/doc/html/functions_vars_u.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- u -

+
+ + + + + diff --git a/doc/html/functions_vars_v.html b/doc/html/functions_vars_v.html new file mode 100644 index 00000000..e609aa14 --- /dev/null +++ b/doc/html/functions_vars_v.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_vars_w.html b/doc/html/functions_vars_w.html new file mode 100644 index 00000000..5e094d60 --- /dev/null +++ b/doc/html/functions_vars_w.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + + diff --git a/doc/html/functions_w.html b/doc/html/functions_w.html new file mode 100644 index 00000000..2887fd7a --- /dev/null +++ b/doc/html/functions_w.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- w -

+
+ + + + + diff --git a/doc/html/functions_~.html b/doc/html/functions_~.html new file mode 100644 index 00000000..d2207e9c --- /dev/null +++ b/doc/html/functions_~.html @@ -0,0 +1,142 @@ + + + + + + +Diligent Engine API Reference: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- ~ -

+
+ + + + + diff --git a/doc/html/gesture_detector_8h_source.html b/doc/html/gesture_detector_8h_source.html new file mode 100644 index 00000000..4ae8c4ef --- /dev/null +++ b/doc/html/gesture_detector_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/ndk_helper/include/gestureDetector.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gestureDetector.h
+
+
+
1 /*
2  * Copyright 2013 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 //--------------------------------------------------------------------------------
18 // gestureDetector.h
19 //--------------------------------------------------------------------------------
20 #ifndef GESTUREDETECTOR_H_
21 #define GESTUREDETECTOR_H_
22 
23 #include <vector>
24 
25 #include <android/sensor.h>
26 #include <android/log.h>
27 #include <android_native_app_glue.h>
28 #include <android/native_window_jni.h>
29 #include "JNIHelper.h"
30 #include "vecmath.h"
31 
32 namespace ndk_helper {
33 //--------------------------------------------------------------------------------
34 // Constants
35 //--------------------------------------------------------------------------------
36 const int32_t DOUBLE_TAP_TIMEOUT = 300 * 1000000;
37 const int32_t TAP_TIMEOUT = 180 * 1000000;
38 const int32_t DOUBLE_TAP_SLOP = 100;
39 const int32_t TOUCH_SLOP = 8;
40 
41 enum {
42  GESTURE_STATE_NONE = 0,
43  GESTURE_STATE_START = 1,
44  GESTURE_STATE_MOVE = 2,
45  GESTURE_STATE_END = 4,
46  GESTURE_STATE_ACTION = (GESTURE_STATE_START | GESTURE_STATE_END),
47 };
48 typedef int32_t GESTURE_STATE;
49 
50 /******************************************************************
51  * Base class of Gesture Detectors
52  * GestureDetectors handles input events and detect gestures
53  * Note that different detectors may detect gestures with an event at
54  * same time. The caller needs to manage gesture priority accordingly
55  *
56  */
57 class GestureDetector {
58  protected:
59  float dp_factor_;
60 
61  public:
62  GestureDetector();
63  virtual ~GestureDetector() {}
64  virtual void SetConfiguration(AConfiguration* config);
65 
66  virtual GESTURE_STATE Detect(const AInputEvent* motion_event) = 0;
67 };
68 
69 /******************************************************************
70  * Tap gesture detector
71  * Returns GESTURE_STATE_ACTION when a tap gesture is detected
72  *
73  */
74 class TapDetector : public GestureDetector {
75  private:
76  int32_t down_pointer_id_;
77  float down_x_;
78  float down_y_;
79 
80  public:
81  TapDetector();
82  virtual ~TapDetector() {}
83  virtual GESTURE_STATE Detect(const AInputEvent* motion_event);
84 };
85 
86 /******************************************************************
87  * Pinch gesture detector
88  * Returns GESTURE_STATE_ACTION when a double-tap gesture is detected
89  *
90  */
91 class DoubletapDetector : public GestureDetector {
92  private:
93  TapDetector tap_detector_;
94  int64_t last_tap_time_;
95  float last_tap_x_;
96  float last_tap_y_;
97 
98  public:
99  DoubletapDetector();
100  virtual ~DoubletapDetector() {}
101  virtual GESTURE_STATE Detect(const AInputEvent* motion_event);
102  virtual void SetConfiguration(AConfiguration* config);
103 };
104 
105 /******************************************************************
106  * Double gesture detector
107  * Returns pinch gesture state when a pinch gesture is detected
108  * The class handles multiple touches more than 2
109  * When the finger 1,2,3 are tapped and then finger 1 is released,
110  * the detector start new pinch gesture with finger 2 & 3.
111  */
112 class PinchDetector : public GestureDetector {
113  private:
114  int32_t FindIndex(const AInputEvent* event, int32_t id);
115  const AInputEvent* event_;
116  std::vector<int32_t> vec_pointers_;
117 
118  public:
119  PinchDetector() {}
120  virtual ~PinchDetector() {}
121  virtual GESTURE_STATE Detect(const AInputEvent* event);
122  bool GetPointers(Vec2& v1, Vec2& v2);
123 };
124 
125 /******************************************************************
126  * Drag gesture detector
127  * Returns drag gesture state when a drag-tap gesture is detected
128  *
129  */
130 class DragDetector : public GestureDetector {
131  private:
132  int32_t FindIndex(const AInputEvent* event, int32_t id);
133  const AInputEvent* event_;
134  std::vector<int32_t> vec_pointers_;
135 
136  public:
137  DragDetector() : event_(nullptr) {}
138  virtual ~DragDetector() {}
139  virtual GESTURE_STATE Detect(const AInputEvent* event);
140  bool GetPointer(Vec2& v);
141 };
142 
143 } // namespace ndkHelper
144 #endif /* GESTUREDETECTOR_H_ */
Definition: gestureDetector.h:32
+
+ + + + + diff --git a/doc/html/gl3stub_8h_source.html b/doc/html/gl3stub_8h_source.html new file mode 100644 index 00000000..7bf8a5c5 --- /dev/null +++ b/doc/html/gl3stub_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/ndk_helper/include/gl3stub.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gl3stub.h
+
+
+
1 #ifndef __gl3_h_
2 #define __gl3_h_
3 
4 /*
5  * stub gl3.h for dynamic loading, based on:
6  * gl3.h last updated on $Date: 2013-02-12 14:37:24 -0800 (Tue, 12 Feb 2013) $
7  *
8  * Changes:
9  * - Added #include <GLES2/gl2.h>
10  * - Removed duplicate OpenGL ES 2.0 declarations
11  * - Converted OpenGL ES 3.0 function prototypes to function pointer
12  * declarations
13  * - Added gl3stubInit() declaration
14  */
15 
16 #include <GLES2/gl2.h>
17 #include <android/api-level.h>
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 /*
24  ** Copyright (c) 2007-2013 The Khronos Group Inc.
25  **
26  ** Permission is hereby granted, free of charge, to any person obtaining a
27  ** copy of this software and/or associated documentation files (the
28  ** "Materials"), to deal in the Materials without restriction, including
29  ** without limitation the rights to use, copy, modify, merge, publish,
30  ** distribute, sublicense, and/or sell copies of the Materials, and to
31  ** permit persons to whom the Materials are furnished to do so, subject to
32  ** the following conditions:
33  **
34  ** The above copyright notice and this permission notice shall be included
35  ** in all copies or substantial portions of the Materials.
36  **
37  ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38  ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
39  ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
40  ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
41  ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
42  ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
43  ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
44  */
45 
46 /*
47  * This files is for apps that want to use ES3 if present,
48  * but continue to work on pre-API-18 devices. They can't just link to -lGLESv3
49  *since
50  * that library doesn't exist on pre-API-18 devices.
51  * The function dynamically check if OpenGLES3.0 APIs are present and fill in if
52  *there are.
53  * Also the header defines some extra variables for OpenGLES3.0.
54  *
55  */
56 
57 /* Call this function before calling any OpenGL ES 3.0 functions. It will
58  * return GL_TRUE if the OpenGL ES 3.0 was successfully initialized, GL_FALSE
59  * otherwise. */
60 GLboolean gl3stubInit();
61 
62 /*-------------------------------------------------------------------------
63  * Data type definitions
64  *-----------------------------------------------------------------------*/
65 
66 /* OpenGL ES 3.0 */
67 
68 typedef unsigned short GLhalf;
69 #if __ANDROID_API__ <= 19
70 typedef khronos_int64_t GLint64;
71 typedef khronos_uint64_t GLuint64;
72 typedef struct __GLsync* GLsync;
73 #endif
74 
75 /*-------------------------------------------------------------------------
76  * Token definitions
77  *-----------------------------------------------------------------------*/
78 
79 /* OpenGL ES core versions */
80 #define GL_ES_VERSION_3_0 1
81 
82 /* OpenGL ES 3.0 */
83 
84 #define GL_READ_BUFFER 0x0C02
85 #define GL_UNPACK_ROW_LENGTH 0x0CF2
86 #define GL_UNPACK_SKIP_ROWS 0x0CF3
87 #define GL_UNPACK_SKIP_PIXELS 0x0CF4
88 #define GL_PACK_ROW_LENGTH 0x0D02
89 #define GL_PACK_SKIP_ROWS 0x0D03
90 #define GL_PACK_SKIP_PIXELS 0x0D04
91 #define GL_COLOR 0x1800
92 #define GL_DEPTH 0x1801
93 #define GL_STENCIL 0x1802
94 #define GL_RED 0x1903
95 #define GL_RGB8 0x8051
96 #define GL_RGBA8 0x8058
97 #define GL_RGB10_A2 0x8059
98 #define GL_TEXTURE_BINDING_3D 0x806A
99 #define GL_UNPACK_SKIP_IMAGES 0x806D
100 #define GL_UNPACK_IMAGE_HEIGHT 0x806E
101 #define GL_TEXTURE_3D 0x806F
102 #define GL_TEXTURE_WRAP_R 0x8072
103 #define GL_MAX_3D_TEXTURE_SIZE 0x8073
104 #define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
105 #define GL_MAX_ELEMENTS_VERTICES 0x80E8
106 #define GL_MAX_ELEMENTS_INDICES 0x80E9
107 #define GL_TEXTURE_MIN_LOD 0x813A
108 #define GL_TEXTURE_MAX_LOD 0x813B
109 #define GL_TEXTURE_BASE_LEVEL 0x813C
110 #define GL_TEXTURE_MAX_LEVEL 0x813D
111 #define GL_MIN 0x8007
112 #define GL_MAX 0x8008
113 #define GL_DEPTH_COMPONENT24 0x81A6
114 #define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
115 #define GL_TEXTURE_COMPARE_MODE 0x884C
116 #define GL_TEXTURE_COMPARE_FUNC 0x884D
117 #define GL_CURRENT_QUERY 0x8865
118 #define GL_QUERY_RESULT 0x8866
119 #define GL_QUERY_RESULT_AVAILABLE 0x8867
120 #define GL_BUFFER_MAPPED 0x88BC
121 #define GL_BUFFER_MAP_POINTER 0x88BD
122 #define GL_STREAM_READ 0x88E1
123 #define GL_STREAM_COPY 0x88E2
124 #define GL_STATIC_READ 0x88E5
125 #define GL_STATIC_COPY 0x88E6
126 #define GL_DYNAMIC_READ 0x88E9
127 #define GL_DYNAMIC_COPY 0x88EA
128 #define GL_MAX_DRAW_BUFFERS 0x8824
129 #define GL_DRAW_BUFFER0 0x8825
130 #define GL_DRAW_BUFFER1 0x8826
131 #define GL_DRAW_BUFFER2 0x8827
132 #define GL_DRAW_BUFFER3 0x8828
133 #define GL_DRAW_BUFFER4 0x8829
134 #define GL_DRAW_BUFFER5 0x882A
135 #define GL_DRAW_BUFFER6 0x882B
136 #define GL_DRAW_BUFFER7 0x882C
137 #define GL_DRAW_BUFFER8 0x882D
138 #define GL_DRAW_BUFFER9 0x882E
139 #define GL_DRAW_BUFFER10 0x882F
140 #define GL_DRAW_BUFFER11 0x8830
141 #define GL_DRAW_BUFFER12 0x8831
142 #define GL_DRAW_BUFFER13 0x8832
143 #define GL_DRAW_BUFFER14 0x8833
144 #define GL_DRAW_BUFFER15 0x8834
145 #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
146 #define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
147 #define GL_SAMPLER_3D 0x8B5F
148 #define GL_SAMPLER_2D_SHADOW 0x8B62
149 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
150 #define GL_PIXEL_PACK_BUFFER 0x88EB
151 #define GL_PIXEL_UNPACK_BUFFER 0x88EC
152 #define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
153 #define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
154 #define GL_FLOAT_MAT2x3 0x8B65
155 #define GL_FLOAT_MAT2x4 0x8B66
156 #define GL_FLOAT_MAT3x2 0x8B67
157 #define GL_FLOAT_MAT3x4 0x8B68
158 #define GL_FLOAT_MAT4x2 0x8B69
159 #define GL_FLOAT_MAT4x3 0x8B6A
160 #define GL_SRGB 0x8C40
161 #define GL_SRGB8 0x8C41
162 #define GL_SRGB8_ALPHA8 0x8C43
163 #define GL_COMPARE_REF_TO_TEXTURE 0x884E
164 #define GL_MAJOR_VERSION 0x821B
165 #define GL_MINOR_VERSION 0x821C
166 #define GL_NUM_EXTENSIONS 0x821D
167 #define GL_RGBA32F 0x8814
168 #define GL_RGB32F 0x8815
169 #define GL_RGBA16F 0x881A
170 #define GL_RGB16F 0x881B
171 #define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
172 #define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
173 #define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
174 #define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
175 #define GL_MAX_VARYING_COMPONENTS 0x8B4B
176 #define GL_TEXTURE_2D_ARRAY 0x8C1A
177 #define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
178 #define GL_R11F_G11F_B10F 0x8C3A
179 #define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
180 #define GL_RGB9_E5 0x8C3D
181 #define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
182 #define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
183 #define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
184 #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
185 #define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
186 #define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
187 #define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
188 #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
189 #define GL_RASTERIZER_DISCARD 0x8C89
190 #define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
191 #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
192 #define GL_INTERLEAVED_ATTRIBS 0x8C8C
193 #define GL_SEPARATE_ATTRIBS 0x8C8D
194 #define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
195 #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
196 #define GL_RGBA32UI 0x8D70
197 #define GL_RGB32UI 0x8D71
198 #define GL_RGBA16UI 0x8D76
199 #define GL_RGB16UI 0x8D77
200 #define GL_RGBA8UI 0x8D7C
201 #define GL_RGB8UI 0x8D7D
202 #define GL_RGBA32I 0x8D82
203 #define GL_RGB32I 0x8D83
204 #define GL_RGBA16I 0x8D88
205 #define GL_RGB16I 0x8D89
206 #define GL_RGBA8I 0x8D8E
207 #define GL_RGB8I 0x8D8F
208 #define GL_RED_INTEGER 0x8D94
209 #define GL_RGB_INTEGER 0x8D98
210 #define GL_RGBA_INTEGER 0x8D99
211 #define GL_SAMPLER_2D_ARRAY 0x8DC1
212 #define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
213 #define GL_SAMPLER_CUBE_SHADOW 0x8DC5
214 #define GL_UNSIGNED_INT_VEC2 0x8DC6
215 #define GL_UNSIGNED_INT_VEC3 0x8DC7
216 #define GL_UNSIGNED_INT_VEC4 0x8DC8
217 #define GL_INT_SAMPLER_2D 0x8DCA
218 #define GL_INT_SAMPLER_3D 0x8DCB
219 #define GL_INT_SAMPLER_CUBE 0x8DCC
220 #define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
221 #define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
222 #define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
223 #define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
224 #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
225 #define GL_BUFFER_ACCESS_FLAGS 0x911F
226 #define GL_BUFFER_MAP_LENGTH 0x9120
227 #define GL_BUFFER_MAP_OFFSET 0x9121
228 #define GL_DEPTH_COMPONENT32F 0x8CAC
229 #define GL_DEPTH32F_STENCIL8 0x8CAD
230 #define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
231 #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
232 #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
233 #define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
234 #define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
235 #define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
236 #define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
237 #define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
238 #define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
239 #define GL_FRAMEBUFFER_DEFAULT 0x8218
240 #define GL_FRAMEBUFFER_UNDEFINED 0x8219
241 #define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
242 #define GL_DEPTH_STENCIL 0x84F9
243 #define GL_UNSIGNED_INT_24_8 0x84FA
244 #define GL_DEPTH24_STENCIL8 0x88F0
245 #define GL_UNSIGNED_NORMALIZED 0x8C17
246 #define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING
247 #define GL_READ_FRAMEBUFFER 0x8CA8
248 #define GL_DRAW_FRAMEBUFFER 0x8CA9
249 #define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
250 #define GL_RENDERBUFFER_SAMPLES 0x8CAB
251 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
252 #define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
253 #define GL_COLOR_ATTACHMENT1 0x8CE1
254 #define GL_COLOR_ATTACHMENT2 0x8CE2
255 #define GL_COLOR_ATTACHMENT3 0x8CE3
256 #define GL_COLOR_ATTACHMENT4 0x8CE4
257 #define GL_COLOR_ATTACHMENT5 0x8CE5
258 #define GL_COLOR_ATTACHMENT6 0x8CE6
259 #define GL_COLOR_ATTACHMENT7 0x8CE7
260 #define GL_COLOR_ATTACHMENT8 0x8CE8
261 #define GL_COLOR_ATTACHMENT9 0x8CE9
262 #define GL_COLOR_ATTACHMENT10 0x8CEA
263 #define GL_COLOR_ATTACHMENT11 0x8CEB
264 #define GL_COLOR_ATTACHMENT12 0x8CEC
265 #define GL_COLOR_ATTACHMENT13 0x8CED
266 #define GL_COLOR_ATTACHMENT14 0x8CEE
267 #define GL_COLOR_ATTACHMENT15 0x8CEF
268 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
269 #define GL_MAX_SAMPLES 0x8D57
270 #define GL_HALF_FLOAT 0x140B
271 #define GL_MAP_READ_BIT 0x0001
272 #define GL_MAP_WRITE_BIT 0x0002
273 #define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
274 #define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
275 #define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
276 #define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
277 #define GL_RG 0x8227
278 #define GL_RG_INTEGER 0x8228
279 #define GL_R8 0x8229
280 #define GL_RG8 0x822B
281 #define GL_R16F 0x822D
282 #define GL_R32F 0x822E
283 #define GL_RG16F 0x822F
284 #define GL_RG32F 0x8230
285 #define GL_R8I 0x8231
286 #define GL_R8UI 0x8232
287 #define GL_R16I 0x8233
288 #define GL_R16UI 0x8234
289 #define GL_R32I 0x8235
290 #define GL_R32UI 0x8236
291 #define GL_RG8I 0x8237
292 #define GL_RG8UI 0x8238
293 #define GL_RG16I 0x8239
294 #define GL_RG16UI 0x823A
295 #define GL_RG32I 0x823B
296 #define GL_RG32UI 0x823C
297 #define GL_VERTEX_ARRAY_BINDING 0x85B5
298 #define GL_R8_SNORM 0x8F94
299 #define GL_RG8_SNORM 0x8F95
300 #define GL_RGB8_SNORM 0x8F96
301 #define GL_RGBA8_SNORM 0x8F97
302 #define GL_SIGNED_NORMALIZED 0x8F9C
303 #define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
304 #define GL_COPY_READ_BUFFER 0x8F36
305 #define GL_COPY_WRITE_BUFFER 0x8F37
306 #define GL_COPY_READ_BUFFER_BINDING GL_COPY_READ_BUFFER
307 #define GL_COPY_WRITE_BUFFER_BINDING GL_COPY_WRITE_BUFFER
308 #define GL_UNIFORM_BUFFER 0x8A11
309 #define GL_UNIFORM_BUFFER_BINDING 0x8A28
310 #define GL_UNIFORM_BUFFER_START 0x8A29
311 #define GL_UNIFORM_BUFFER_SIZE 0x8A2A
312 #define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
313 #define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
314 #define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
315 #define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
316 #define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
317 #define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
318 #define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
319 #define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
320 #define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
321 #define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
322 #define GL_UNIFORM_TYPE 0x8A37
323 #define GL_UNIFORM_SIZE 0x8A38
324 #define GL_UNIFORM_NAME_LENGTH 0x8A39
325 #define GL_UNIFORM_BLOCK_INDEX 0x8A3A
326 #define GL_UNIFORM_OFFSET 0x8A3B
327 #define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
328 #define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
329 #define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
330 #define GL_UNIFORM_BLOCK_BINDING 0x8A3F
331 #define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
332 #define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
333 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
334 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
335 #define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
336 #define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
337 #define GL_INVALID_INDEX 0xFFFFFFFFu
338 #define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
339 #define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
340 #define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
341 #define GL_OBJECT_TYPE 0x9112
342 #define GL_SYNC_CONDITION 0x9113
343 #define GL_SYNC_STATUS 0x9114
344 #define GL_SYNC_FLAGS 0x9115
345 #define GL_SYNC_FENCE 0x9116
346 #define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
347 #define GL_UNSIGNALED 0x9118
348 #define GL_SIGNALED 0x9119
349 #define GL_ALREADY_SIGNALED 0x911A
350 #define GL_TIMEOUT_EXPIRED 0x911B
351 #define GL_CONDITION_SATISFIED 0x911C
352 #define GL_WAIT_FAILED 0x911D
353 #define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
354 #define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull
355 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
356 #define GL_ANY_SAMPLES_PASSED 0x8C2F
357 #define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
358 #define GL_SAMPLER_BINDING 0x8919
359 #define GL_RGB10_A2UI 0x906F
360 #define GL_TEXTURE_SWIZZLE_R 0x8E42
361 #define GL_TEXTURE_SWIZZLE_G 0x8E43
362 #define GL_TEXTURE_SWIZZLE_B 0x8E44
363 #define GL_TEXTURE_SWIZZLE_A 0x8E45
364 #define GL_GREEN 0x1904
365 #define GL_BLUE 0x1905
366 #define GL_INT_2_10_10_10_REV 0x8D9F
367 #define GL_TRANSFORM_FEEDBACK 0x8E22
368 #define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
369 #define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
370 #define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25
371 #define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
372 #define GL_PROGRAM_BINARY_LENGTH 0x8741
373 #define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
374 #define GL_PROGRAM_BINARY_FORMATS 0x87FF
375 #define GL_COMPRESSED_R11_EAC 0x9270
376 #define GL_COMPRESSED_SIGNED_R11_EAC 0x9271
377 #define GL_COMPRESSED_RG11_EAC 0x9272
378 #define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273
379 #define GL_COMPRESSED_RGB8_ETC2 0x9274
380 #define GL_COMPRESSED_SRGB8_ETC2 0x9275
381 #define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
382 #define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
383 #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
384 #define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
385 #define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
386 #define GL_MAX_ELEMENT_INDEX 0x8D6B
387 #define GL_NUM_SAMPLE_COUNTS 0x9380
388 #define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
389 
390 /*-------------------------------------------------------------------------
391  * Entrypoint definitions
392  *-----------------------------------------------------------------------*/
393 
394 /* OpenGL ES 3.0 */
395 
396 extern GL_APICALL void (*GL_APIENTRY glReadBuffer)(GLenum mode);
397 extern GL_APICALL void (*GL_APIENTRY glDrawRangeElements)(
398  GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type,
399  const GLvoid* indices);
400 extern GL_APICALL void (*GL_APIENTRY glTexImage3D)(
401  GLenum target, GLint level, GLint internalformat, GLsizei width,
402  GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type,
403  const GLvoid* pixels);
404 extern GL_APICALL void (*GL_APIENTRY glTexSubImage3D)(
405  GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
406  GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,
407  const GLvoid* pixels);
408 extern GL_APICALL void (*GL_APIENTRY glCopyTexSubImage3D)(
409  GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
410  GLint x, GLint y, GLsizei width, GLsizei height);
411 extern GL_APICALL void (*GL_APIENTRY glCompressedTexImage3D)(
412  GLenum target, GLint level, GLenum internalformat, GLsizei width,
413  GLsizei height, GLsizei depth, GLint border, GLsizei imageSize,
414  const GLvoid* data);
415 extern GL_APICALL void (*GL_APIENTRY glCompressedTexSubImage3D)(
416  GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
417  GLsizei width, GLsizei height, GLsizei depth, GLenum format,
418  GLsizei imageSize, const GLvoid* data);
419 extern GL_APICALL void (*GL_APIENTRY glGenQueries)(GLsizei n, GLuint* ids);
420 extern GL_APICALL void (*GL_APIENTRY glDeleteQueries)(GLsizei n,
421  const GLuint* ids);
422 extern GL_APICALL GLboolean (*GL_APIENTRY glIsQuery)(GLuint id);
423 extern GL_APICALL void (*GL_APIENTRY glBeginQuery)(GLenum target, GLuint id);
424 extern GL_APICALL void (*GL_APIENTRY glEndQuery)(GLenum target);
425 extern GL_APICALL void (*GL_APIENTRY glGetQueryiv)(GLenum target, GLenum pname,
426  GLint* params);
427 extern GL_APICALL void (*GL_APIENTRY glGetQueryObjectuiv)(GLuint id,
428  GLenum pname,
429  GLuint* params);
430 extern GL_APICALL GLboolean (*GL_APIENTRY glUnmapBuffer)(GLenum target);
431 extern GL_APICALL void (*GL_APIENTRY glGetBufferPointerv)(GLenum target,
432  GLenum pname,
433  GLvoid** params);
434 extern GL_APICALL void (*GL_APIENTRY glDrawBuffers)(GLsizei n,
435  const GLenum* bufs);
436 extern GL_APICALL void (*GL_APIENTRY glUniformMatrix2x3fv)(
437  GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
438 extern GL_APICALL void (*GL_APIENTRY glUniformMatrix3x2fv)(
439  GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
440 extern GL_APICALL void (*GL_APIENTRY glUniformMatrix2x4fv)(
441  GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
442 extern GL_APICALL void (*GL_APIENTRY glUniformMatrix4x2fv)(
443  GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
444 extern GL_APICALL void (*GL_APIENTRY glUniformMatrix3x4fv)(
445  GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
446 extern GL_APICALL void (*GL_APIENTRY glUniformMatrix4x3fv)(
447  GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
448 extern GL_APICALL void (*GL_APIENTRY glBlitFramebuffer)(
449  GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0,
450  GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
451 extern GL_APICALL void (*GL_APIENTRY glRenderbufferStorageMultisample)(
452  GLenum target, GLsizei samples, GLenum internalformat, GLsizei width,
453  GLsizei height);
454 extern GL_APICALL void (*GL_APIENTRY glFramebufferTextureLayer)(
455  GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
456 extern GL_APICALL GLvoid* (*GL_APIENTRY glMapBufferRange)(GLenum target,
457  GLintptr offset,
458  GLsizeiptr length,
459  GLbitfield access);
460 extern GL_APICALL void (*GL_APIENTRY glFlushMappedBufferRange)(
461  GLenum target, GLintptr offset, GLsizeiptr length);
462 extern GL_APICALL void (*GL_APIENTRY glBindVertexArray)(GLuint array);
463 extern GL_APICALL void (*GL_APIENTRY glDeleteVertexArrays)(
464  GLsizei n, const GLuint* arrays);
465 extern GL_APICALL void (*GL_APIENTRY glGenVertexArrays)(GLsizei n,
466  GLuint* arrays);
467 extern GL_APICALL GLboolean (*GL_APIENTRY glIsVertexArray)(GLuint array);
468 extern GL_APICALL void (*GL_APIENTRY glGetIntegeri_v)(GLenum target,
469  GLuint index,
470  GLint* data);
471 extern GL_APICALL void (*GL_APIENTRY glBeginTransformFeedback)(
472  GLenum primitiveMode);
473 extern GL_APICALL void (*GL_APIENTRY glEndTransformFeedback)(void);
474 extern GL_APICALL void (*GL_APIENTRY glBindBufferRange)(GLenum target,
475  GLuint index,
476  GLuint buffer,
477  GLintptr offset,
478  GLsizeiptr size);
479 extern GL_APICALL void (*GL_APIENTRY glBindBufferBase)(GLenum target,
480  GLuint index,
481  GLuint buffer);
482 extern GL_APICALL void (*GL_APIENTRY glTransformFeedbackVaryings)(
483  GLuint program, GLsizei count, const GLchar* const* varyings,
484  GLenum bufferMode);
485 extern GL_APICALL void (*GL_APIENTRY glGetTransformFeedbackVarying)(
486  GLuint program, GLuint index, GLsizei bufSize, GLsizei* length,
487  GLsizei* size, GLenum* type, GLchar* name);
488 extern GL_APICALL void (*GL_APIENTRY glVertexAttribIPointer)(
489  GLuint index, GLint size, GLenum type, GLsizei stride,
490  const GLvoid* pointer);
491 extern GL_APICALL void (*GL_APIENTRY glGetVertexAttribIiv)(GLuint index,
492  GLenum pname,
493  GLint* params);
494 extern GL_APICALL void (*GL_APIENTRY glGetVertexAttribIuiv)(GLuint index,
495  GLenum pname,
496  GLuint* params);
497 extern GL_APICALL void (*GL_APIENTRY glVertexAttribI4i)(GLuint index, GLint x,
498  GLint y, GLint z,
499  GLint w);
500 extern GL_APICALL void (*GL_APIENTRY glVertexAttribI4ui)(GLuint index, GLuint x,
501  GLuint y, GLuint z,
502  GLuint w);
503 extern GL_APICALL void (*GL_APIENTRY glVertexAttribI4iv)(GLuint index,
504  const GLint* v);
505 extern GL_APICALL void (*GL_APIENTRY glVertexAttribI4uiv)(GLuint index,
506  const GLuint* v);
507 extern GL_APICALL void (*GL_APIENTRY glGetUniformuiv)(GLuint program,
508  GLint location,
509  GLuint* params);
510 extern GL_APICALL GLint (*GL_APIENTRY glGetFragDataLocation)(
511  GLuint program, const GLchar* name);
512 extern GL_APICALL void (*GL_APIENTRY glUniform1ui)(GLint location, GLuint v0);
513 extern GL_APICALL void (*GL_APIENTRY glUniform2ui)(GLint location, GLuint v0,
514  GLuint v1);
515 extern GL_APICALL void (*GL_APIENTRY glUniform3ui)(GLint location, GLuint v0,
516  GLuint v1, GLuint v2);
517 extern GL_APICALL void (*GL_APIENTRY glUniform4ui)(GLint location, GLuint v0,
518  GLuint v1, GLuint v2,
519  GLuint v3);
520 extern GL_APICALL void (*GL_APIENTRY glUniform1uiv)(GLint location,
521  GLsizei count,
522  const GLuint* value);
523 extern GL_APICALL void (*GL_APIENTRY glUniform2uiv)(GLint location,
524  GLsizei count,
525  const GLuint* value);
526 extern GL_APICALL void (*GL_APIENTRY glUniform3uiv)(GLint location,
527  GLsizei count,
528  const GLuint* value);
529 extern GL_APICALL void (*GL_APIENTRY glUniform4uiv)(GLint location,
530  GLsizei count,
531  const GLuint* value);
532 extern GL_APICALL void (*GL_APIENTRY glClearBufferiv)(GLenum buffer,
533  GLint drawbuffer,
534  const GLint* value);
535 extern GL_APICALL void (*GL_APIENTRY glClearBufferuiv)(GLenum buffer,
536  GLint drawbuffer,
537  const GLuint* value);
538 extern GL_APICALL void (*GL_APIENTRY glClearBufferfv)(GLenum buffer,
539  GLint drawbuffer,
540  const GLfloat* value);
541 extern GL_APICALL void (*GL_APIENTRY glClearBufferfi)(GLenum buffer,
542  GLint drawbuffer,
543  GLfloat depth,
544  GLint stencil);
545 extern GL_APICALL const GLubyte* (*GL_APIENTRY glGetStringi)(GLenum name,
546  GLuint index);
547 extern GL_APICALL void (*GL_APIENTRY glCopyBufferSubData)(GLenum readTarget,
548  GLenum writeTarget,
549  GLintptr readOffset,
550  GLintptr writeOffset,
551  GLsizeiptr size);
552 extern GL_APICALL void (*GL_APIENTRY glGetUniformIndices)(
553  GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames,
554  GLuint* uniformIndices);
555 extern GL_APICALL void (*GL_APIENTRY glGetActiveUniformsiv)(
556  GLuint program, GLsizei uniformCount, const GLuint* uniformIndices,
557  GLenum pname, GLint* params);
558 extern GL_APICALL GLuint (*GL_APIENTRY glGetUniformBlockIndex)(
559  GLuint program, const GLchar* uniformBlockName);
560 extern GL_APICALL void (*GL_APIENTRY glGetActiveUniformBlockiv)(
561  GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
562 extern GL_APICALL void (*GL_APIENTRY glGetActiveUniformBlockName)(
563  GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length,
564  GLchar* uniformBlockName);
565 extern GL_APICALL void (*GL_APIENTRY glUniformBlockBinding)(
566  GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
567 extern GL_APICALL void (*GL_APIENTRY glDrawArraysInstanced)(
568  GLenum mode, GLint first, GLsizei count, GLsizei instanceCount);
569 extern GL_APICALL void (*GL_APIENTRY glDrawElementsInstanced)(
570  GLenum mode, GLsizei count, GLenum type, const GLvoid* indices,
571  GLsizei instanceCount);
572 extern GL_APICALL GLsync (*GL_APIENTRY glFenceSync)(GLenum condition,
573  GLbitfield flags);
574 extern GL_APICALL GLboolean (*GL_APIENTRY glIsSync)(GLsync sync);
575 extern GL_APICALL void (*GL_APIENTRY glDeleteSync)(GLsync sync);
576 extern GL_APICALL GLenum (*GL_APIENTRY glClientWaitSync)(GLsync sync,
577  GLbitfield flags,
578  GLuint64 timeout);
579 extern GL_APICALL void (*GL_APIENTRY glWaitSync)(GLsync sync, GLbitfield flags,
580  GLuint64 timeout);
581 extern GL_APICALL void (*GL_APIENTRY glGetInteger64v)(GLenum pname,
582  GLint64* params);
583 extern GL_APICALL void (*GL_APIENTRY glGetSynciv)(GLsync sync, GLenum pname,
584  GLsizei bufSize,
585  GLsizei* length,
586  GLint* values);
587 extern GL_APICALL void (*GL_APIENTRY glGetInteger64i_v)(GLenum target,
588  GLuint index,
589  GLint64* data);
590 extern GL_APICALL void (*GL_APIENTRY glGetBufferParameteri64v)(GLenum target,
591  GLenum pname,
592  GLint64* params);
593 extern GL_APICALL void (*GL_APIENTRY glGenSamplers)(GLsizei count,
594  GLuint* samplers);
595 extern GL_APICALL void (*GL_APIENTRY glDeleteSamplers)(GLsizei count,
596  const GLuint* samplers);
597 extern GL_APICALL GLboolean (*GL_APIENTRY glIsSampler)(GLuint sampler);
598 extern GL_APICALL void (*GL_APIENTRY glBindSampler)(GLuint unit,
599  GLuint sampler);
600 extern GL_APICALL void (*GL_APIENTRY glSamplerParameteri)(GLuint sampler,
601  GLenum pname,
602  GLint param);
603 extern GL_APICALL void (*GL_APIENTRY glSamplerParameteriv)(GLuint sampler,
604  GLenum pname,
605  const GLint* param);
606 extern GL_APICALL void (*GL_APIENTRY glSamplerParameterf)(GLuint sampler,
607  GLenum pname,
608  GLfloat param);
609 extern GL_APICALL void (*GL_APIENTRY glSamplerParameterfv)(
610  GLuint sampler, GLenum pname, const GLfloat* param);
611 extern GL_APICALL void (*GL_APIENTRY glGetSamplerParameteriv)(GLuint sampler,
612  GLenum pname,
613  GLint* params);
614 extern GL_APICALL void (*GL_APIENTRY glGetSamplerParameterfv)(GLuint sampler,
615  GLenum pname,
616  GLfloat* params);
617 extern GL_APICALL void (*GL_APIENTRY glVertexAttribDivisor)(GLuint index,
618  GLuint divisor);
619 extern GL_APICALL void (*GL_APIENTRY glBindTransformFeedback)(GLenum target,
620  GLuint id);
621 extern GL_APICALL void (*GL_APIENTRY glDeleteTransformFeedbacks)(
622  GLsizei n, const GLuint* ids);
623 extern GL_APICALL void (*GL_APIENTRY glGenTransformFeedbacks)(GLsizei n,
624  GLuint* ids);
625 extern GL_APICALL GLboolean (*GL_APIENTRY glIsTransformFeedback)(GLuint id);
626 extern GL_APICALL void (*GL_APIENTRY glPauseTransformFeedback)(void);
627 extern GL_APICALL void (*GL_APIENTRY glResumeTransformFeedback)(void);
628 extern GL_APICALL void (*GL_APIENTRY glGetProgramBinary)(GLuint program,
629  GLsizei bufSize,
630  GLsizei* length,
631  GLenum* binaryFormat,
632  GLvoid* binary);
633 extern GL_APICALL void (*GL_APIENTRY glProgramBinary)(GLuint program,
634  GLenum binaryFormat,
635  const GLvoid* binary,
636  GLsizei length);
637 extern GL_APICALL void (*GL_APIENTRY glProgramParameteri)(GLuint program,
638  GLenum pname,
639  GLint value);
640 extern GL_APICALL void (*GL_APIENTRY glInvalidateFramebuffer)(
641  GLenum target, GLsizei numAttachments, const GLenum* attachments);
642 extern GL_APICALL void (*GL_APIENTRY glInvalidateSubFramebuffer)(
643  GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x,
644  GLint y, GLsizei width, GLsizei height);
645 extern GL_APICALL void (*GL_APIENTRY glTexStorage2D)(GLenum target,
646  GLsizei levels,
647  GLenum internalformat,
648  GLsizei width,
649  GLsizei height);
650 extern GL_APICALL void (*GL_APIENTRY glTexStorage3D)(
651  GLenum target, GLsizei levels, GLenum internalformat, GLsizei width,
652  GLsizei height, GLsizei depth);
653 extern GL_APICALL void (*GL_APIENTRY glGetInternalformativ)(
654  GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize,
655  GLint* params);
656 
657 #ifdef __cplusplus
658 }
659 #endif
660 
661 #endif
+ + + + + diff --git a/doc/html/glew_8h_source.html b/doc/html/glew_8h_source.html new file mode 100644 index 00000000..edca4d87 --- /dev/null +++ b/doc/html/glew_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/include/GL/glew.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
glew.h
+
+
+
1 /*
2 ** The OpenGL Extension Wrangler Library
3 ** Copyright (C) 2008-2017, Nigel Stewart <nigels[]users sourceforge net>
4 ** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
5 ** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
6 ** Copyright (C) 2002, Lev Povalahev
7 ** All rights reserved.
8 **
9 ** Redistribution and use in source and binary forms, with or without
10 ** modification, are permitted provided that the following conditions are met:
11 **
12 ** * Redistributions of source code must retain the above copyright notice,
13 ** this list of conditions and the following disclaimer.
14 ** * Redistributions in binary form must reproduce the above copyright notice,
15 ** this list of conditions and the following disclaimer in the documentation
16 ** and/or other materials provided with the distribution.
17 ** * The name of the author may be used to endorse or promote products
18 ** derived from this software without specific prior written permission.
19 **
20 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24 ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
30 ** THE POSSIBILITY OF SUCH DAMAGE.
31 */
32 
33 /*
34  * Mesa 3-D graphics library
35  * Version: 7.0
36  *
37  * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
38  *
39  * Permission is hereby granted, free of charge, to any person obtaining a
40  * copy of this software and associated documentation files (the "Software"),
41  * to deal in the Software without restriction, including without limitation
42  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
43  * and/or sell copies of the Software, and to permit persons to whom the
44  * Software is furnished to do so, subject to the following conditions:
45  *
46  * The above copyright notice and this permission notice shall be included
47  * in all copies or substantial portions of the Software.
48  *
49  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
50  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
51  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
52  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
53  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
54  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
55  */
56 
57 /*
58 ** Copyright (c) 2007 The Khronos Group Inc.
59 **
60 ** Permission is hereby granted, free of charge, to any person obtaining a
61 ** copy of this software and/or associated documentation files (the
62 ** "Materials"), to deal in the Materials without restriction, including
63 ** without limitation the rights to use, copy, modify, merge, publish,
64 ** distribute, sublicense, and/or sell copies of the Materials, and to
65 ** permit persons to whom the Materials are furnished to do so, subject to
66 ** the following conditions:
67 **
68 ** The above copyright notice and this permission notice shall be included
69 ** in all copies or substantial portions of the Materials.
70 **
71 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
72 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
73 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
74 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
75 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
76 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
77 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
78 */
79 
80 #ifndef __glew_h__
81 #define __glew_h__
82 #define __GLEW_H__
83 
84 #if defined(__gl_h_) || defined(__GL_H__) || defined(_GL_H) || defined(__X_GL_H)
85 #error gl.h included before glew.h
86 #endif
87 #if defined(__gl2_h_)
88 #error gl2.h included before glew.h
89 #endif
90 #if defined(__gltypes_h_)
91 #error gltypes.h included before glew.h
92 #endif
93 #if defined(__REGAL_H__)
94 #error Regal.h included before glew.h
95 #endif
96 #if defined(__glext_h_) || defined(__GLEXT_H_)
97 #error glext.h included before glew.h
98 #endif
99 #if defined(__gl_ATI_h_)
100 #error glATI.h included before glew.h
101 #endif
102 
103 #define __gl_h_
104 #define __gl2_h_
105 #define __GL_H__
106 #define _GL_H
107 #define __gltypes_h_
108 #define __REGAL_H__
109 #define __X_GL_H
110 #define __glext_h_
111 #define __GLEXT_H_
112 #define __gl_ATI_h_
113 
114 #if defined(_WIN32)
115 
116 /*
117  * GLEW does not include <windows.h> to avoid name space pollution.
118  * GL needs GLAPI and GLAPIENTRY, GLU needs APIENTRY, CALLBACK, and wchar_t
119  * defined properly.
120  */
121 /* <windef.h> and <gl.h>*/
122 #ifdef APIENTRY
123 # ifndef GLAPIENTRY
124 # define GLAPIENTRY APIENTRY
125 # endif
126 # ifndef GLEWAPIENTRY
127 # define GLEWAPIENTRY APIENTRY
128 # endif
129 #else
130 #define GLEW_APIENTRY_DEFINED
131 # if defined(__MINGW32__) || defined(__CYGWIN__) || (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__)
132 # define APIENTRY __stdcall
133 # ifndef GLAPIENTRY
134 # define GLAPIENTRY __stdcall
135 # endif
136 # ifndef GLEWAPIENTRY
137 # define GLEWAPIENTRY __stdcall
138 # endif
139 # else
140 # define APIENTRY
141 # endif
142 #endif
143 #ifndef GLAPI
144 # if defined(__MINGW32__) || defined(__CYGWIN__)
145 # define GLAPI extern
146 # endif
147 #endif
148 /* <winnt.h> */
149 #ifndef CALLBACK
150 #define GLEW_CALLBACK_DEFINED
151 # if defined(__MINGW32__) || defined(__CYGWIN__)
152 # define CALLBACK __attribute__ ((__stdcall__))
153 # elif (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS)
154 # define CALLBACK __stdcall
155 # else
156 # define CALLBACK
157 # endif
158 #endif
159 /* <wingdi.h> and <winnt.h> */
160 #ifndef WINGDIAPI
161 #define GLEW_WINGDIAPI_DEFINED
162 #define WINGDIAPI __declspec(dllimport)
163 #endif
164 /* <ctype.h> */
165 #if (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(_WCHAR_T_DEFINED)
166 typedef unsigned short wchar_t;
167 # define _WCHAR_T_DEFINED
168 #endif
169 /* <stddef.h> */
170 #if !defined(_W64)
171 # if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && defined(_MSC_VER) && _MSC_VER >= 1300
172 # define _W64 __w64
173 # else
174 # define _W64
175 # endif
176 #endif
177 #if !defined(_PTRDIFF_T_DEFINED) && !defined(_PTRDIFF_T_) && !defined(__MINGW64__)
178 # ifdef _WIN64
179 typedef __int64 ptrdiff_t;
180 # else
181 typedef _W64 int ptrdiff_t;
182 # endif
183 # define _PTRDIFF_T_DEFINED
184 # define _PTRDIFF_T_
185 #endif
186 
187 #ifndef GLAPI
188 # if defined(__MINGW32__) || defined(__CYGWIN__)
189 # define GLAPI extern
190 # else
191 # define GLAPI WINGDIAPI
192 # endif
193 #endif
194 
195 /*
196  * GLEW_STATIC is defined for static library.
197  * GLEW_BUILD is defined for building the DLL library.
198  */
199 
200 #ifdef GLEW_STATIC
201 # define GLEWAPI extern
202 #else
203 # ifdef GLEW_BUILD
204 # define GLEWAPI extern __declspec(dllexport)
205 # else
206 # define GLEWAPI extern __declspec(dllimport)
207 # endif
208 #endif
209 
210 #else /* _UNIX */
211 
212 /*
213  * Needed for ptrdiff_t in turn needed by VBO. This is defined by ISO
214  * C. On my system, this amounts to _3 lines_ of included code, all of
215  * them pretty much harmless. If you know of a way of detecting 32 vs
216  * 64 _targets_ at compile time you are free to replace this with
217  * something that's portable. For now, _this_ is the portable solution.
218  * (mem, 2004-01-04)
219  */
220 
221 #include <stddef.h>
222 
223 /* SGI MIPSPro doesn't like stdint.h in C++ mode */
224 /* ID: 3376260 Solaris 9 has inttypes.h, but not stdint.h */
225 
226 #if (defined(__sgi) || defined(__sun)) && !defined(__GNUC__)
227 #include <inttypes.h>
228 #else
229 #include <stdint.h>
230 #endif
231 
232 #define GLEW_APIENTRY_DEFINED
233 #define APIENTRY
234 
235 /*
236  * GLEW_STATIC is defined for static library.
237  */
238 
239 #ifdef GLEW_STATIC
240 # define GLEWAPI extern
241 #else
242 # if defined(__GNUC__) && __GNUC__>=4
243 # define GLEWAPI extern __attribute__ ((visibility("default")))
244 # elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
245 # define GLEWAPI extern __global
246 # else
247 # define GLEWAPI extern
248 # endif
249 #endif
250 
251 /* <glu.h> */
252 #ifndef GLAPI
253 #define GLAPI extern
254 #endif
255 
256 #endif /* _WIN32 */
257 
258 #ifndef GLAPIENTRY
259 #define GLAPIENTRY
260 #endif
261 
262 #ifndef GLEWAPIENTRY
263 #define GLEWAPIENTRY
264 #endif
265 
266 #define GLEW_VAR_EXPORT GLEWAPI
267 #define GLEW_FUN_EXPORT GLEWAPI
268 
269 #ifdef __cplusplus
270 extern "C" {
271 #endif
272 
273 /* ----------------------------- GL_VERSION_1_1 ---------------------------- */
274 
275 #ifndef GL_VERSION_1_1
276 #define GL_VERSION_1_1 1
277 
278 typedef unsigned int GLenum;
279 typedef unsigned int GLbitfield;
280 typedef unsigned int GLuint;
281 typedef int GLint;
282 typedef int GLsizei;
283 typedef unsigned char GLboolean;
284 typedef signed char GLbyte;
285 typedef short GLshort;
286 typedef unsigned char GLubyte;
287 typedef unsigned short GLushort;
288 typedef unsigned long GLulong;
289 typedef float GLfloat;
290 typedef float GLclampf;
291 typedef double GLdouble;
292 typedef double GLclampd;
293 typedef void GLvoid;
294 #if defined(_MSC_VER) && _MSC_VER < 1400
295 typedef __int64 GLint64EXT;
296 typedef unsigned __int64 GLuint64EXT;
297 #elif defined(_MSC_VER) || defined(__BORLANDC__)
298 typedef signed long long GLint64EXT;
299 typedef unsigned long long GLuint64EXT;
300 #else
301 # if defined(__MINGW32__) || defined(__CYGWIN__)
302 #include <inttypes.h>
303 # endif
304 typedef int64_t GLint64EXT;
305 typedef uint64_t GLuint64EXT;
306 #endif
307 typedef GLint64EXT GLint64;
308 typedef GLuint64EXT GLuint64;
309 typedef struct __GLsync *GLsync;
310 
311 typedef char GLchar;
312 
313 #define GL_ZERO 0
314 #define GL_FALSE 0
315 #define GL_LOGIC_OP 0x0BF1
316 #define GL_NONE 0
317 #define GL_TEXTURE_COMPONENTS 0x1003
318 #define GL_NO_ERROR 0
319 #define GL_POINTS 0x0000
320 #define GL_CURRENT_BIT 0x00000001
321 #define GL_TRUE 1
322 #define GL_ONE 1
323 #define GL_CLIENT_PIXEL_STORE_BIT 0x00000001
324 #define GL_LINES 0x0001
325 #define GL_LINE_LOOP 0x0002
326 #define GL_POINT_BIT 0x00000002
327 #define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002
328 #define GL_LINE_STRIP 0x0003
329 #define GL_LINE_BIT 0x00000004
330 #define GL_TRIANGLES 0x0004
331 #define GL_TRIANGLE_STRIP 0x0005
332 #define GL_TRIANGLE_FAN 0x0006
333 #define GL_QUADS 0x0007
334 #define GL_QUAD_STRIP 0x0008
335 #define GL_POLYGON_BIT 0x00000008
336 #define GL_POLYGON 0x0009
337 #define GL_POLYGON_STIPPLE_BIT 0x00000010
338 #define GL_PIXEL_MODE_BIT 0x00000020
339 #define GL_LIGHTING_BIT 0x00000040
340 #define GL_FOG_BIT 0x00000080
341 #define GL_DEPTH_BUFFER_BIT 0x00000100
342 #define GL_ACCUM 0x0100
343 #define GL_LOAD 0x0101
344 #define GL_RETURN 0x0102
345 #define GL_MULT 0x0103
346 #define GL_ADD 0x0104
347 #define GL_NEVER 0x0200
348 #define GL_ACCUM_BUFFER_BIT 0x00000200
349 #define GL_LESS 0x0201
350 #define GL_EQUAL 0x0202
351 #define GL_LEQUAL 0x0203
352 #define GL_GREATER 0x0204
353 #define GL_NOTEQUAL 0x0205
354 #define GL_GEQUAL 0x0206
355 #define GL_ALWAYS 0x0207
356 #define GL_SRC_COLOR 0x0300
357 #define GL_ONE_MINUS_SRC_COLOR 0x0301
358 #define GL_SRC_ALPHA 0x0302
359 #define GL_ONE_MINUS_SRC_ALPHA 0x0303
360 #define GL_DST_ALPHA 0x0304
361 #define GL_ONE_MINUS_DST_ALPHA 0x0305
362 #define GL_DST_COLOR 0x0306
363 #define GL_ONE_MINUS_DST_COLOR 0x0307
364 #define GL_SRC_ALPHA_SATURATE 0x0308
365 #define GL_STENCIL_BUFFER_BIT 0x00000400
366 #define GL_FRONT_LEFT 0x0400
367 #define GL_FRONT_RIGHT 0x0401
368 #define GL_BACK_LEFT 0x0402
369 #define GL_BACK_RIGHT 0x0403
370 #define GL_FRONT 0x0404
371 #define GL_BACK 0x0405
372 #define GL_LEFT 0x0406
373 #define GL_RIGHT 0x0407
374 #define GL_FRONT_AND_BACK 0x0408
375 #define GL_AUX0 0x0409
376 #define GL_AUX1 0x040A
377 #define GL_AUX2 0x040B
378 #define GL_AUX3 0x040C
379 #define GL_INVALID_ENUM 0x0500
380 #define GL_INVALID_VALUE 0x0501
381 #define GL_INVALID_OPERATION 0x0502
382 #define GL_STACK_OVERFLOW 0x0503
383 #define GL_STACK_UNDERFLOW 0x0504
384 #define GL_OUT_OF_MEMORY 0x0505
385 #define GL_2D 0x0600
386 #define GL_3D 0x0601
387 #define GL_3D_COLOR 0x0602
388 #define GL_3D_COLOR_TEXTURE 0x0603
389 #define GL_4D_COLOR_TEXTURE 0x0604
390 #define GL_PASS_THROUGH_TOKEN 0x0700
391 #define GL_POINT_TOKEN 0x0701
392 #define GL_LINE_TOKEN 0x0702
393 #define GL_POLYGON_TOKEN 0x0703
394 #define GL_BITMAP_TOKEN 0x0704
395 #define GL_DRAW_PIXEL_TOKEN 0x0705
396 #define GL_COPY_PIXEL_TOKEN 0x0706
397 #define GL_LINE_RESET_TOKEN 0x0707
398 #define GL_EXP 0x0800
399 #define GL_VIEWPORT_BIT 0x00000800
400 #define GL_EXP2 0x0801
401 #define GL_CW 0x0900
402 #define GL_CCW 0x0901
403 #define GL_COEFF 0x0A00
404 #define GL_ORDER 0x0A01
405 #define GL_DOMAIN 0x0A02
406 #define GL_CURRENT_COLOR 0x0B00
407 #define GL_CURRENT_INDEX 0x0B01
408 #define GL_CURRENT_NORMAL 0x0B02
409 #define GL_CURRENT_TEXTURE_COORDS 0x0B03
410 #define GL_CURRENT_RASTER_COLOR 0x0B04
411 #define GL_CURRENT_RASTER_INDEX 0x0B05
412 #define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06
413 #define GL_CURRENT_RASTER_POSITION 0x0B07
414 #define GL_CURRENT_RASTER_POSITION_VALID 0x0B08
415 #define GL_CURRENT_RASTER_DISTANCE 0x0B09
416 #define GL_POINT_SMOOTH 0x0B10
417 #define GL_POINT_SIZE 0x0B11
418 #define GL_POINT_SIZE_RANGE 0x0B12
419 #define GL_POINT_SIZE_GRANULARITY 0x0B13
420 #define GL_LINE_SMOOTH 0x0B20
421 #define GL_LINE_WIDTH 0x0B21
422 #define GL_LINE_WIDTH_RANGE 0x0B22
423 #define GL_LINE_WIDTH_GRANULARITY 0x0B23
424 #define GL_LINE_STIPPLE 0x0B24
425 #define GL_LINE_STIPPLE_PATTERN 0x0B25
426 #define GL_LINE_STIPPLE_REPEAT 0x0B26
427 #define GL_LIST_MODE 0x0B30
428 #define GL_MAX_LIST_NESTING 0x0B31
429 #define GL_LIST_BASE 0x0B32
430 #define GL_LIST_INDEX 0x0B33
431 #define GL_POLYGON_MODE 0x0B40
432 #define GL_POLYGON_SMOOTH 0x0B41
433 #define GL_POLYGON_STIPPLE 0x0B42
434 #define GL_EDGE_FLAG 0x0B43
435 #define GL_CULL_FACE 0x0B44
436 #define GL_CULL_FACE_MODE 0x0B45
437 #define GL_FRONT_FACE 0x0B46
438 #define GL_LIGHTING 0x0B50
439 #define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51
440 #define GL_LIGHT_MODEL_TWO_SIDE 0x0B52
441 #define GL_LIGHT_MODEL_AMBIENT 0x0B53
442 #define GL_SHADE_MODEL 0x0B54
443 #define GL_COLOR_MATERIAL_FACE 0x0B55
444 #define GL_COLOR_MATERIAL_PARAMETER 0x0B56
445 #define GL_COLOR_MATERIAL 0x0B57
446 #define GL_FOG 0x0B60
447 #define GL_FOG_INDEX 0x0B61
448 #define GL_FOG_DENSITY 0x0B62
449 #define GL_FOG_START 0x0B63
450 #define GL_FOG_END 0x0B64
451 #define GL_FOG_MODE 0x0B65
452 #define GL_FOG_COLOR 0x0B66
453 #define GL_DEPTH_RANGE 0x0B70
454 #define GL_DEPTH_TEST 0x0B71
455 #define GL_DEPTH_WRITEMASK 0x0B72
456 #define GL_DEPTH_CLEAR_VALUE 0x0B73
457 #define GL_DEPTH_FUNC 0x0B74
458 #define GL_ACCUM_CLEAR_VALUE 0x0B80
459 #define GL_STENCIL_TEST 0x0B90
460 #define GL_STENCIL_CLEAR_VALUE 0x0B91
461 #define GL_STENCIL_FUNC 0x0B92
462 #define GL_STENCIL_VALUE_MASK 0x0B93
463 #define GL_STENCIL_FAIL 0x0B94
464 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
465 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
466 #define GL_STENCIL_REF 0x0B97
467 #define GL_STENCIL_WRITEMASK 0x0B98
468 #define GL_MATRIX_MODE 0x0BA0
469 #define GL_NORMALIZE 0x0BA1
470 #define GL_VIEWPORT 0x0BA2
471 #define GL_MODELVIEW_STACK_DEPTH 0x0BA3
472 #define GL_PROJECTION_STACK_DEPTH 0x0BA4
473 #define GL_TEXTURE_STACK_DEPTH 0x0BA5
474 #define GL_MODELVIEW_MATRIX 0x0BA6
475 #define GL_PROJECTION_MATRIX 0x0BA7
476 #define GL_TEXTURE_MATRIX 0x0BA8
477 #define GL_ATTRIB_STACK_DEPTH 0x0BB0
478 #define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1
479 #define GL_ALPHA_TEST 0x0BC0
480 #define GL_ALPHA_TEST_FUNC 0x0BC1
481 #define GL_ALPHA_TEST_REF 0x0BC2
482 #define GL_DITHER 0x0BD0
483 #define GL_BLEND_DST 0x0BE0
484 #define GL_BLEND_SRC 0x0BE1
485 #define GL_BLEND 0x0BE2
486 #define GL_LOGIC_OP_MODE 0x0BF0
487 #define GL_INDEX_LOGIC_OP 0x0BF1
488 #define GL_COLOR_LOGIC_OP 0x0BF2
489 #define GL_AUX_BUFFERS 0x0C00
490 #define GL_DRAW_BUFFER 0x0C01
491 #define GL_READ_BUFFER 0x0C02
492 #define GL_SCISSOR_BOX 0x0C10
493 #define GL_SCISSOR_TEST 0x0C11
494 #define GL_INDEX_CLEAR_VALUE 0x0C20
495 #define GL_INDEX_WRITEMASK 0x0C21
496 #define GL_COLOR_CLEAR_VALUE 0x0C22
497 #define GL_COLOR_WRITEMASK 0x0C23
498 #define GL_INDEX_MODE 0x0C30
499 #define GL_RGBA_MODE 0x0C31
500 #define GL_DOUBLEBUFFER 0x0C32
501 #define GL_STEREO 0x0C33
502 #define GL_RENDER_MODE 0x0C40
503 #define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50
504 #define GL_POINT_SMOOTH_HINT 0x0C51
505 #define GL_LINE_SMOOTH_HINT 0x0C52
506 #define GL_POLYGON_SMOOTH_HINT 0x0C53
507 #define GL_FOG_HINT 0x0C54
508 #define GL_TEXTURE_GEN_S 0x0C60
509 #define GL_TEXTURE_GEN_T 0x0C61
510 #define GL_TEXTURE_GEN_R 0x0C62
511 #define GL_TEXTURE_GEN_Q 0x0C63
512 #define GL_PIXEL_MAP_I_TO_I 0x0C70
513 #define GL_PIXEL_MAP_S_TO_S 0x0C71
514 #define GL_PIXEL_MAP_I_TO_R 0x0C72
515 #define GL_PIXEL_MAP_I_TO_G 0x0C73
516 #define GL_PIXEL_MAP_I_TO_B 0x0C74
517 #define GL_PIXEL_MAP_I_TO_A 0x0C75
518 #define GL_PIXEL_MAP_R_TO_R 0x0C76
519 #define GL_PIXEL_MAP_G_TO_G 0x0C77
520 #define GL_PIXEL_MAP_B_TO_B 0x0C78
521 #define GL_PIXEL_MAP_A_TO_A 0x0C79
522 #define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0
523 #define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1
524 #define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2
525 #define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3
526 #define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4
527 #define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5
528 #define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6
529 #define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7
530 #define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8
531 #define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9
532 #define GL_UNPACK_SWAP_BYTES 0x0CF0
533 #define GL_UNPACK_LSB_FIRST 0x0CF1
534 #define GL_UNPACK_ROW_LENGTH 0x0CF2
535 #define GL_UNPACK_SKIP_ROWS 0x0CF3
536 #define GL_UNPACK_SKIP_PIXELS 0x0CF4
537 #define GL_UNPACK_ALIGNMENT 0x0CF5
538 #define GL_PACK_SWAP_BYTES 0x0D00
539 #define GL_PACK_LSB_FIRST 0x0D01
540 #define GL_PACK_ROW_LENGTH 0x0D02
541 #define GL_PACK_SKIP_ROWS 0x0D03
542 #define GL_PACK_SKIP_PIXELS 0x0D04
543 #define GL_PACK_ALIGNMENT 0x0D05
544 #define GL_MAP_COLOR 0x0D10
545 #define GL_MAP_STENCIL 0x0D11
546 #define GL_INDEX_SHIFT 0x0D12
547 #define GL_INDEX_OFFSET 0x0D13
548 #define GL_RED_SCALE 0x0D14
549 #define GL_RED_BIAS 0x0D15
550 #define GL_ZOOM_X 0x0D16
551 #define GL_ZOOM_Y 0x0D17
552 #define GL_GREEN_SCALE 0x0D18
553 #define GL_GREEN_BIAS 0x0D19
554 #define GL_BLUE_SCALE 0x0D1A
555 #define GL_BLUE_BIAS 0x0D1B
556 #define GL_ALPHA_SCALE 0x0D1C
557 #define GL_ALPHA_BIAS 0x0D1D
558 #define GL_DEPTH_SCALE 0x0D1E
559 #define GL_DEPTH_BIAS 0x0D1F
560 #define GL_MAX_EVAL_ORDER 0x0D30
561 #define GL_MAX_LIGHTS 0x0D31
562 #define GL_MAX_CLIP_PLANES 0x0D32
563 #define GL_MAX_TEXTURE_SIZE 0x0D33
564 #define GL_MAX_PIXEL_MAP_TABLE 0x0D34
565 #define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35
566 #define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36
567 #define GL_MAX_NAME_STACK_DEPTH 0x0D37
568 #define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38
569 #define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39
570 #define GL_MAX_VIEWPORT_DIMS 0x0D3A
571 #define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B
572 #define GL_SUBPIXEL_BITS 0x0D50
573 #define GL_INDEX_BITS 0x0D51
574 #define GL_RED_BITS 0x0D52
575 #define GL_GREEN_BITS 0x0D53
576 #define GL_BLUE_BITS 0x0D54
577 #define GL_ALPHA_BITS 0x0D55
578 #define GL_DEPTH_BITS 0x0D56
579 #define GL_STENCIL_BITS 0x0D57
580 #define GL_ACCUM_RED_BITS 0x0D58
581 #define GL_ACCUM_GREEN_BITS 0x0D59
582 #define GL_ACCUM_BLUE_BITS 0x0D5A
583 #define GL_ACCUM_ALPHA_BITS 0x0D5B
584 #define GL_NAME_STACK_DEPTH 0x0D70
585 #define GL_AUTO_NORMAL 0x0D80
586 #define GL_MAP1_COLOR_4 0x0D90
587 #define GL_MAP1_INDEX 0x0D91
588 #define GL_MAP1_NORMAL 0x0D92
589 #define GL_MAP1_TEXTURE_COORD_1 0x0D93
590 #define GL_MAP1_TEXTURE_COORD_2 0x0D94
591 #define GL_MAP1_TEXTURE_COORD_3 0x0D95
592 #define GL_MAP1_TEXTURE_COORD_4 0x0D96
593 #define GL_MAP1_VERTEX_3 0x0D97
594 #define GL_MAP1_VERTEX_4 0x0D98
595 #define GL_MAP2_COLOR_4 0x0DB0
596 #define GL_MAP2_INDEX 0x0DB1
597 #define GL_MAP2_NORMAL 0x0DB2
598 #define GL_MAP2_TEXTURE_COORD_1 0x0DB3
599 #define GL_MAP2_TEXTURE_COORD_2 0x0DB4
600 #define GL_MAP2_TEXTURE_COORD_3 0x0DB5
601 #define GL_MAP2_TEXTURE_COORD_4 0x0DB6
602 #define GL_MAP2_VERTEX_3 0x0DB7
603 #define GL_MAP2_VERTEX_4 0x0DB8
604 #define GL_MAP1_GRID_DOMAIN 0x0DD0
605 #define GL_MAP1_GRID_SEGMENTS 0x0DD1
606 #define GL_MAP2_GRID_DOMAIN 0x0DD2
607 #define GL_MAP2_GRID_SEGMENTS 0x0DD3
608 #define GL_TEXTURE_1D 0x0DE0
609 #define GL_TEXTURE_2D 0x0DE1
610 #define GL_FEEDBACK_BUFFER_POINTER 0x0DF0
611 #define GL_FEEDBACK_BUFFER_SIZE 0x0DF1
612 #define GL_FEEDBACK_BUFFER_TYPE 0x0DF2
613 #define GL_SELECTION_BUFFER_POINTER 0x0DF3
614 #define GL_SELECTION_BUFFER_SIZE 0x0DF4
615 #define GL_TEXTURE_WIDTH 0x1000
616 #define GL_TRANSFORM_BIT 0x00001000
617 #define GL_TEXTURE_HEIGHT 0x1001
618 #define GL_TEXTURE_INTERNAL_FORMAT 0x1003
619 #define GL_TEXTURE_BORDER_COLOR 0x1004
620 #define GL_TEXTURE_BORDER 0x1005
621 #define GL_DONT_CARE 0x1100
622 #define GL_FASTEST 0x1101
623 #define GL_NICEST 0x1102
624 #define GL_AMBIENT 0x1200
625 #define GL_DIFFUSE 0x1201
626 #define GL_SPECULAR 0x1202
627 #define GL_POSITION 0x1203
628 #define GL_SPOT_DIRECTION 0x1204
629 #define GL_SPOT_EXPONENT 0x1205
630 #define GL_SPOT_CUTOFF 0x1206
631 #define GL_CONSTANT_ATTENUATION 0x1207
632 #define GL_LINEAR_ATTENUATION 0x1208
633 #define GL_QUADRATIC_ATTENUATION 0x1209
634 #define GL_COMPILE 0x1300
635 #define GL_COMPILE_AND_EXECUTE 0x1301
636 #define GL_BYTE 0x1400
637 #define GL_UNSIGNED_BYTE 0x1401
638 #define GL_SHORT 0x1402
639 #define GL_UNSIGNED_SHORT 0x1403
640 #define GL_INT 0x1404
641 #define GL_UNSIGNED_INT 0x1405
642 #define GL_FLOAT 0x1406
643 #define GL_2_BYTES 0x1407
644 #define GL_3_BYTES 0x1408
645 #define GL_4_BYTES 0x1409
646 #define GL_DOUBLE 0x140A
647 #define GL_CLEAR 0x1500
648 #define GL_AND 0x1501
649 #define GL_AND_REVERSE 0x1502
650 #define GL_COPY 0x1503
651 #define GL_AND_INVERTED 0x1504
652 #define GL_NOOP 0x1505
653 #define GL_XOR 0x1506
654 #define GL_OR 0x1507
655 #define GL_NOR 0x1508
656 #define GL_EQUIV 0x1509
657 #define GL_INVERT 0x150A
658 #define GL_OR_REVERSE 0x150B
659 #define GL_COPY_INVERTED 0x150C
660 #define GL_OR_INVERTED 0x150D
661 #define GL_NAND 0x150E
662 #define GL_SET 0x150F
663 #define GL_EMISSION 0x1600
664 #define GL_SHININESS 0x1601
665 #define GL_AMBIENT_AND_DIFFUSE 0x1602
666 #define GL_COLOR_INDEXES 0x1603
667 #define GL_MODELVIEW 0x1700
668 #define GL_PROJECTION 0x1701
669 #define GL_TEXTURE 0x1702
670 #define GL_COLOR 0x1800
671 #define GL_DEPTH 0x1801
672 #define GL_STENCIL 0x1802
673 #define GL_COLOR_INDEX 0x1900
674 #define GL_STENCIL_INDEX 0x1901
675 #define GL_DEPTH_COMPONENT 0x1902
676 #define GL_RED 0x1903
677 #define GL_GREEN 0x1904
678 #define GL_BLUE 0x1905
679 #define GL_ALPHA 0x1906
680 #define GL_RGB 0x1907
681 #define GL_RGBA 0x1908
682 #define GL_LUMINANCE 0x1909
683 #define GL_LUMINANCE_ALPHA 0x190A
684 #define GL_BITMAP 0x1A00
685 #define GL_POINT 0x1B00
686 #define GL_LINE 0x1B01
687 #define GL_FILL 0x1B02
688 #define GL_RENDER 0x1C00
689 #define GL_FEEDBACK 0x1C01
690 #define GL_SELECT 0x1C02
691 #define GL_FLAT 0x1D00
692 #define GL_SMOOTH 0x1D01
693 #define GL_KEEP 0x1E00
694 #define GL_REPLACE 0x1E01
695 #define GL_INCR 0x1E02
696 #define GL_DECR 0x1E03
697 #define GL_VENDOR 0x1F00
698 #define GL_RENDERER 0x1F01
699 #define GL_VERSION 0x1F02
700 #define GL_EXTENSIONS 0x1F03
701 #define GL_S 0x2000
702 #define GL_ENABLE_BIT 0x00002000
703 #define GL_T 0x2001
704 #define GL_R 0x2002
705 #define GL_Q 0x2003
706 #define GL_MODULATE 0x2100
707 #define GL_DECAL 0x2101
708 #define GL_TEXTURE_ENV_MODE 0x2200
709 #define GL_TEXTURE_ENV_COLOR 0x2201
710 #define GL_TEXTURE_ENV 0x2300
711 #define GL_EYE_LINEAR 0x2400
712 #define GL_OBJECT_LINEAR 0x2401
713 #define GL_SPHERE_MAP 0x2402
714 #define GL_TEXTURE_GEN_MODE 0x2500
715 #define GL_OBJECT_PLANE 0x2501
716 #define GL_EYE_PLANE 0x2502
717 #define GL_NEAREST 0x2600
718 #define GL_LINEAR 0x2601
719 #define GL_NEAREST_MIPMAP_NEAREST 0x2700
720 #define GL_LINEAR_MIPMAP_NEAREST 0x2701
721 #define GL_NEAREST_MIPMAP_LINEAR 0x2702
722 #define GL_LINEAR_MIPMAP_LINEAR 0x2703
723 #define GL_TEXTURE_MAG_FILTER 0x2800
724 #define GL_TEXTURE_MIN_FILTER 0x2801
725 #define GL_TEXTURE_WRAP_S 0x2802
726 #define GL_TEXTURE_WRAP_T 0x2803
727 #define GL_CLAMP 0x2900
728 #define GL_REPEAT 0x2901
729 #define GL_POLYGON_OFFSET_UNITS 0x2A00
730 #define GL_POLYGON_OFFSET_POINT 0x2A01
731 #define GL_POLYGON_OFFSET_LINE 0x2A02
732 #define GL_R3_G3_B2 0x2A10
733 #define GL_V2F 0x2A20
734 #define GL_V3F 0x2A21
735 #define GL_C4UB_V2F 0x2A22
736 #define GL_C4UB_V3F 0x2A23
737 #define GL_C3F_V3F 0x2A24
738 #define GL_N3F_V3F 0x2A25
739 #define GL_C4F_N3F_V3F 0x2A26
740 #define GL_T2F_V3F 0x2A27
741 #define GL_T4F_V4F 0x2A28
742 #define GL_T2F_C4UB_V3F 0x2A29
743 #define GL_T2F_C3F_V3F 0x2A2A
744 #define GL_T2F_N3F_V3F 0x2A2B
745 #define GL_T2F_C4F_N3F_V3F 0x2A2C
746 #define GL_T4F_C4F_N3F_V4F 0x2A2D
747 #define GL_CLIP_PLANE0 0x3000
748 #define GL_CLIP_PLANE1 0x3001
749 #define GL_CLIP_PLANE2 0x3002
750 #define GL_CLIP_PLANE3 0x3003
751 #define GL_CLIP_PLANE4 0x3004
752 #define GL_CLIP_PLANE5 0x3005
753 #define GL_LIGHT0 0x4000
754 #define GL_COLOR_BUFFER_BIT 0x00004000
755 #define GL_LIGHT1 0x4001
756 #define GL_LIGHT2 0x4002
757 #define GL_LIGHT3 0x4003
758 #define GL_LIGHT4 0x4004
759 #define GL_LIGHT5 0x4005
760 #define GL_LIGHT6 0x4006
761 #define GL_LIGHT7 0x4007
762 #define GL_HINT_BIT 0x00008000
763 #define GL_POLYGON_OFFSET_FILL 0x8037
764 #define GL_POLYGON_OFFSET_FACTOR 0x8038
765 #define GL_ALPHA4 0x803B
766 #define GL_ALPHA8 0x803C
767 #define GL_ALPHA12 0x803D
768 #define GL_ALPHA16 0x803E
769 #define GL_LUMINANCE4 0x803F
770 #define GL_LUMINANCE8 0x8040
771 #define GL_LUMINANCE12 0x8041
772 #define GL_LUMINANCE16 0x8042
773 #define GL_LUMINANCE4_ALPHA4 0x8043
774 #define GL_LUMINANCE6_ALPHA2 0x8044
775 #define GL_LUMINANCE8_ALPHA8 0x8045
776 #define GL_LUMINANCE12_ALPHA4 0x8046
777 #define GL_LUMINANCE12_ALPHA12 0x8047
778 #define GL_LUMINANCE16_ALPHA16 0x8048
779 #define GL_INTENSITY 0x8049
780 #define GL_INTENSITY4 0x804A
781 #define GL_INTENSITY8 0x804B
782 #define GL_INTENSITY12 0x804C
783 #define GL_INTENSITY16 0x804D
784 #define GL_RGB4 0x804F
785 #define GL_RGB5 0x8050
786 #define GL_RGB8 0x8051
787 #define GL_RGB10 0x8052
788 #define GL_RGB12 0x8053
789 #define GL_RGB16 0x8054
790 #define GL_RGBA2 0x8055
791 #define GL_RGBA4 0x8056
792 #define GL_RGB5_A1 0x8057
793 #define GL_RGBA8 0x8058
794 #define GL_RGB10_A2 0x8059
795 #define GL_RGBA12 0x805A
796 #define GL_RGBA16 0x805B
797 #define GL_TEXTURE_RED_SIZE 0x805C
798 #define GL_TEXTURE_GREEN_SIZE 0x805D
799 #define GL_TEXTURE_BLUE_SIZE 0x805E
800 #define GL_TEXTURE_ALPHA_SIZE 0x805F
801 #define GL_TEXTURE_LUMINANCE_SIZE 0x8060
802 #define GL_TEXTURE_INTENSITY_SIZE 0x8061
803 #define GL_PROXY_TEXTURE_1D 0x8063
804 #define GL_PROXY_TEXTURE_2D 0x8064
805 #define GL_TEXTURE_PRIORITY 0x8066
806 #define GL_TEXTURE_RESIDENT 0x8067
807 #define GL_TEXTURE_BINDING_1D 0x8068
808 #define GL_TEXTURE_BINDING_2D 0x8069
809 #define GL_VERTEX_ARRAY 0x8074
810 #define GL_NORMAL_ARRAY 0x8075
811 #define GL_COLOR_ARRAY 0x8076
812 #define GL_INDEX_ARRAY 0x8077
813 #define GL_TEXTURE_COORD_ARRAY 0x8078
814 #define GL_EDGE_FLAG_ARRAY 0x8079
815 #define GL_VERTEX_ARRAY_SIZE 0x807A
816 #define GL_VERTEX_ARRAY_TYPE 0x807B
817 #define GL_VERTEX_ARRAY_STRIDE 0x807C
818 #define GL_NORMAL_ARRAY_TYPE 0x807E
819 #define GL_NORMAL_ARRAY_STRIDE 0x807F
820 #define GL_COLOR_ARRAY_SIZE 0x8081
821 #define GL_COLOR_ARRAY_TYPE 0x8082
822 #define GL_COLOR_ARRAY_STRIDE 0x8083
823 #define GL_INDEX_ARRAY_TYPE 0x8085
824 #define GL_INDEX_ARRAY_STRIDE 0x8086
825 #define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088
826 #define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089
827 #define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A
828 #define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C
829 #define GL_VERTEX_ARRAY_POINTER 0x808E
830 #define GL_NORMAL_ARRAY_POINTER 0x808F
831 #define GL_COLOR_ARRAY_POINTER 0x8090
832 #define GL_INDEX_ARRAY_POINTER 0x8091
833 #define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092
834 #define GL_EDGE_FLAG_ARRAY_POINTER 0x8093
835 #define GL_COLOR_INDEX1_EXT 0x80E2
836 #define GL_COLOR_INDEX2_EXT 0x80E3
837 #define GL_COLOR_INDEX4_EXT 0x80E4
838 #define GL_COLOR_INDEX8_EXT 0x80E5
839 #define GL_COLOR_INDEX12_EXT 0x80E6
840 #define GL_COLOR_INDEX16_EXT 0x80E7
841 #define GL_EVAL_BIT 0x00010000
842 #define GL_LIST_BIT 0x00020000
843 #define GL_TEXTURE_BIT 0x00040000
844 #define GL_SCISSOR_BIT 0x00080000
845 #define GL_ALL_ATTRIB_BITS 0x000fffff
846 #define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff
847 
848 GLAPI void GLAPIENTRY glAccum (GLenum op, GLfloat value);
849 GLAPI void GLAPIENTRY glAlphaFunc (GLenum func, GLclampf ref);
850 GLAPI GLboolean GLAPIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences);
851 GLAPI void GLAPIENTRY glArrayElement (GLint i);
852 GLAPI void GLAPIENTRY glBegin (GLenum mode);
853 GLAPI void GLAPIENTRY glBindTexture (GLenum target, GLuint texture);
854 GLAPI void GLAPIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
855 GLAPI void GLAPIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
856 GLAPI void GLAPIENTRY glCallList (GLuint list);
857 GLAPI void GLAPIENTRY glCallLists (GLsizei n, GLenum type, const void *lists);
858 GLAPI void GLAPIENTRY glClear (GLbitfield mask);
859 GLAPI void GLAPIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
860 GLAPI void GLAPIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
861 GLAPI void GLAPIENTRY glClearDepth (GLclampd depth);
862 GLAPI void GLAPIENTRY glClearIndex (GLfloat c);
863 GLAPI void GLAPIENTRY glClearStencil (GLint s);
864 GLAPI void GLAPIENTRY glClipPlane (GLenum plane, const GLdouble *equation);
865 GLAPI void GLAPIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue);
866 GLAPI void GLAPIENTRY glColor3bv (const GLbyte *v);
867 GLAPI void GLAPIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue);
868 GLAPI void GLAPIENTRY glColor3dv (const GLdouble *v);
869 GLAPI void GLAPIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue);
870 GLAPI void GLAPIENTRY glColor3fv (const GLfloat *v);
871 GLAPI void GLAPIENTRY glColor3i (GLint red, GLint green, GLint blue);
872 GLAPI void GLAPIENTRY glColor3iv (const GLint *v);
873 GLAPI void GLAPIENTRY glColor3s (GLshort red, GLshort green, GLshort blue);
874 GLAPI void GLAPIENTRY glColor3sv (const GLshort *v);
875 GLAPI void GLAPIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue);
876 GLAPI void GLAPIENTRY glColor3ubv (const GLubyte *v);
877 GLAPI void GLAPIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue);
878 GLAPI void GLAPIENTRY glColor3uiv (const GLuint *v);
879 GLAPI void GLAPIENTRY glColor3us (GLushort red, GLushort green, GLushort blue);
880 GLAPI void GLAPIENTRY glColor3usv (const GLushort *v);
881 GLAPI void GLAPIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
882 GLAPI void GLAPIENTRY glColor4bv (const GLbyte *v);
883 GLAPI void GLAPIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
884 GLAPI void GLAPIENTRY glColor4dv (const GLdouble *v);
885 GLAPI void GLAPIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
886 GLAPI void GLAPIENTRY glColor4fv (const GLfloat *v);
887 GLAPI void GLAPIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha);
888 GLAPI void GLAPIENTRY glColor4iv (const GLint *v);
889 GLAPI void GLAPIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha);
890 GLAPI void GLAPIENTRY glColor4sv (const GLshort *v);
891 GLAPI void GLAPIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
892 GLAPI void GLAPIENTRY glColor4ubv (const GLubyte *v);
893 GLAPI void GLAPIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha);
894 GLAPI void GLAPIENTRY glColor4uiv (const GLuint *v);
895 GLAPI void GLAPIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha);
896 GLAPI void GLAPIENTRY glColor4usv (const GLushort *v);
897 GLAPI void GLAPIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
898 GLAPI void GLAPIENTRY glColorMaterial (GLenum face, GLenum mode);
899 GLAPI void GLAPIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
900 GLAPI void GLAPIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
901 GLAPI void GLAPIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
902 GLAPI void GLAPIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
903 GLAPI void GLAPIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
904 GLAPI void GLAPIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
905 GLAPI void GLAPIENTRY glCullFace (GLenum mode);
906 GLAPI void GLAPIENTRY glDeleteLists (GLuint list, GLsizei range);
907 GLAPI void GLAPIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
908 GLAPI void GLAPIENTRY glDepthFunc (GLenum func);
909 GLAPI void GLAPIENTRY glDepthMask (GLboolean flag);
910 GLAPI void GLAPIENTRY glDepthRange (GLclampd zNear, GLclampd zFar);
911 GLAPI void GLAPIENTRY glDisable (GLenum cap);
912 GLAPI void GLAPIENTRY glDisableClientState (GLenum array);
913 GLAPI void GLAPIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
914 GLAPI void GLAPIENTRY glDrawBuffer (GLenum mode);
915 GLAPI void GLAPIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices);
916 GLAPI void GLAPIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
917 GLAPI void GLAPIENTRY glEdgeFlag (GLboolean flag);
918 GLAPI void GLAPIENTRY glEdgeFlagPointer (GLsizei stride, const void *pointer);
919 GLAPI void GLAPIENTRY glEdgeFlagv (const GLboolean *flag);
920 GLAPI void GLAPIENTRY glEnable (GLenum cap);
921 GLAPI void GLAPIENTRY glEnableClientState (GLenum array);
922 GLAPI void GLAPIENTRY glEnd (void);
923 GLAPI void GLAPIENTRY glEndList (void);
924 GLAPI void GLAPIENTRY glEvalCoord1d (GLdouble u);
925 GLAPI void GLAPIENTRY glEvalCoord1dv (const GLdouble *u);
926 GLAPI void GLAPIENTRY glEvalCoord1f (GLfloat u);
927 GLAPI void GLAPIENTRY glEvalCoord1fv (const GLfloat *u);
928 GLAPI void GLAPIENTRY glEvalCoord2d (GLdouble u, GLdouble v);
929 GLAPI void GLAPIENTRY glEvalCoord2dv (const GLdouble *u);
930 GLAPI void GLAPIENTRY glEvalCoord2f (GLfloat u, GLfloat v);
931 GLAPI void GLAPIENTRY glEvalCoord2fv (const GLfloat *u);
932 GLAPI void GLAPIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2);
933 GLAPI void GLAPIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
934 GLAPI void GLAPIENTRY glEvalPoint1 (GLint i);
935 GLAPI void GLAPIENTRY glEvalPoint2 (GLint i, GLint j);
936 GLAPI void GLAPIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer);
937 GLAPI void GLAPIENTRY glFinish (void);
938 GLAPI void GLAPIENTRY glFlush (void);
939 GLAPI void GLAPIENTRY glFogf (GLenum pname, GLfloat param);
940 GLAPI void GLAPIENTRY glFogfv (GLenum pname, const GLfloat *params);
941 GLAPI void GLAPIENTRY glFogi (GLenum pname, GLint param);
942 GLAPI void GLAPIENTRY glFogiv (GLenum pname, const GLint *params);
943 GLAPI void GLAPIENTRY glFrontFace (GLenum mode);
944 GLAPI void GLAPIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
945 GLAPI GLuint GLAPIENTRY glGenLists (GLsizei range);
946 GLAPI void GLAPIENTRY glGenTextures (GLsizei n, GLuint *textures);
947 GLAPI void GLAPIENTRY glGetBooleanv (GLenum pname, GLboolean *params);
948 GLAPI void GLAPIENTRY glGetClipPlane (GLenum plane, GLdouble *equation);
949 GLAPI void GLAPIENTRY glGetDoublev (GLenum pname, GLdouble *params);
950 GLAPI GLenum GLAPIENTRY glGetError (void);
951 GLAPI void GLAPIENTRY glGetFloatv (GLenum pname, GLfloat *params);
952 GLAPI void GLAPIENTRY glGetIntegerv (GLenum pname, GLint *params);
953 GLAPI void GLAPIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params);
954 GLAPI void GLAPIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params);
955 GLAPI void GLAPIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v);
956 GLAPI void GLAPIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v);
957 GLAPI void GLAPIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v);
958 GLAPI void GLAPIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params);
959 GLAPI void GLAPIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params);
960 GLAPI void GLAPIENTRY glGetPixelMapfv (GLenum map, GLfloat *values);
961 GLAPI void GLAPIENTRY glGetPixelMapuiv (GLenum map, GLuint *values);
962 GLAPI void GLAPIENTRY glGetPixelMapusv (GLenum map, GLushort *values);
963 GLAPI void GLAPIENTRY glGetPointerv (GLenum pname, void* *params);
964 GLAPI void GLAPIENTRY glGetPolygonStipple (GLubyte *mask);
965 GLAPI const GLubyte * GLAPIENTRY glGetString (GLenum name);
966 GLAPI void GLAPIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params);
967 GLAPI void GLAPIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params);
968 GLAPI void GLAPIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params);
969 GLAPI void GLAPIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params);
970 GLAPI void GLAPIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params);
971 GLAPI void GLAPIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
972 GLAPI void GLAPIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params);
973 GLAPI void GLAPIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params);
974 GLAPI void GLAPIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
975 GLAPI void GLAPIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
976 GLAPI void GLAPIENTRY glHint (GLenum target, GLenum mode);
977 GLAPI void GLAPIENTRY glIndexMask (GLuint mask);
978 GLAPI void GLAPIENTRY glIndexPointer (GLenum type, GLsizei stride, const void *pointer);
979 GLAPI void GLAPIENTRY glIndexd (GLdouble c);
980 GLAPI void GLAPIENTRY glIndexdv (const GLdouble *c);
981 GLAPI void GLAPIENTRY glIndexf (GLfloat c);
982 GLAPI void GLAPIENTRY glIndexfv (const GLfloat *c);
983 GLAPI void GLAPIENTRY glIndexi (GLint c);
984 GLAPI void GLAPIENTRY glIndexiv (const GLint *c);
985 GLAPI void GLAPIENTRY glIndexs (GLshort c);
986 GLAPI void GLAPIENTRY glIndexsv (const GLshort *c);
987 GLAPI void GLAPIENTRY glIndexub (GLubyte c);
988 GLAPI void GLAPIENTRY glIndexubv (const GLubyte *c);
989 GLAPI void GLAPIENTRY glInitNames (void);
990 GLAPI void GLAPIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const void *pointer);
991 GLAPI GLboolean GLAPIENTRY glIsEnabled (GLenum cap);
992 GLAPI GLboolean GLAPIENTRY glIsList (GLuint list);
993 GLAPI GLboolean GLAPIENTRY glIsTexture (GLuint texture);
994 GLAPI void GLAPIENTRY glLightModelf (GLenum pname, GLfloat param);
995 GLAPI void GLAPIENTRY glLightModelfv (GLenum pname, const GLfloat *params);
996 GLAPI void GLAPIENTRY glLightModeli (GLenum pname, GLint param);
997 GLAPI void GLAPIENTRY glLightModeliv (GLenum pname, const GLint *params);
998 GLAPI void GLAPIENTRY glLightf (GLenum light, GLenum pname, GLfloat param);
999 GLAPI void GLAPIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params);
1000 GLAPI void GLAPIENTRY glLighti (GLenum light, GLenum pname, GLint param);
1001 GLAPI void GLAPIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params);
1002 GLAPI void GLAPIENTRY glLineStipple (GLint factor, GLushort pattern);
1003 GLAPI void GLAPIENTRY glLineWidth (GLfloat width);
1004 GLAPI void GLAPIENTRY glListBase (GLuint base);
1005 GLAPI void GLAPIENTRY glLoadIdentity (void);
1006 GLAPI void GLAPIENTRY glLoadMatrixd (const GLdouble *m);
1007 GLAPI void GLAPIENTRY glLoadMatrixf (const GLfloat *m);
1008 GLAPI void GLAPIENTRY glLoadName (GLuint name);
1009 GLAPI void GLAPIENTRY glLogicOp (GLenum opcode);
1010 GLAPI void GLAPIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
1011 GLAPI void GLAPIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
1012 GLAPI void GLAPIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
1013 GLAPI void GLAPIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
1014 GLAPI void GLAPIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2);
1015 GLAPI void GLAPIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2);
1016 GLAPI void GLAPIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
1017 GLAPI void GLAPIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
1018 GLAPI void GLAPIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param);
1019 GLAPI void GLAPIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params);
1020 GLAPI void GLAPIENTRY glMateriali (GLenum face, GLenum pname, GLint param);
1021 GLAPI void GLAPIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params);
1022 GLAPI void GLAPIENTRY glMatrixMode (GLenum mode);
1023 GLAPI void GLAPIENTRY glMultMatrixd (const GLdouble *m);
1024 GLAPI void GLAPIENTRY glMultMatrixf (const GLfloat *m);
1025 GLAPI void GLAPIENTRY glNewList (GLuint list, GLenum mode);
1026 GLAPI void GLAPIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz);
1027 GLAPI void GLAPIENTRY glNormal3bv (const GLbyte *v);
1028 GLAPI void GLAPIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz);
1029 GLAPI void GLAPIENTRY glNormal3dv (const GLdouble *v);
1030 GLAPI void GLAPIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
1031 GLAPI void GLAPIENTRY glNormal3fv (const GLfloat *v);
1032 GLAPI void GLAPIENTRY glNormal3i (GLint nx, GLint ny, GLint nz);
1033 GLAPI void GLAPIENTRY glNormal3iv (const GLint *v);
1034 GLAPI void GLAPIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz);
1035 GLAPI void GLAPIENTRY glNormal3sv (const GLshort *v);
1036 GLAPI void GLAPIENTRY glNormalPointer (GLenum type, GLsizei stride, const void *pointer);
1037 GLAPI void GLAPIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
1038 GLAPI void GLAPIENTRY glPassThrough (GLfloat token);
1039 GLAPI void GLAPIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values);
1040 GLAPI void GLAPIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values);
1041 GLAPI void GLAPIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values);
1042 GLAPI void GLAPIENTRY glPixelStoref (GLenum pname, GLfloat param);
1043 GLAPI void GLAPIENTRY glPixelStorei (GLenum pname, GLint param);
1044 GLAPI void GLAPIENTRY glPixelTransferf (GLenum pname, GLfloat param);
1045 GLAPI void GLAPIENTRY glPixelTransferi (GLenum pname, GLint param);
1046 GLAPI void GLAPIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor);
1047 GLAPI void GLAPIENTRY glPointSize (GLfloat size);
1048 GLAPI void GLAPIENTRY glPolygonMode (GLenum face, GLenum mode);
1049 GLAPI void GLAPIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
1050 GLAPI void GLAPIENTRY glPolygonStipple (const GLubyte *mask);
1051 GLAPI void GLAPIENTRY glPopAttrib (void);
1052 GLAPI void GLAPIENTRY glPopClientAttrib (void);
1053 GLAPI void GLAPIENTRY glPopMatrix (void);
1054 GLAPI void GLAPIENTRY glPopName (void);
1055 GLAPI void GLAPIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities);
1056 GLAPI void GLAPIENTRY glPushAttrib (GLbitfield mask);
1057 GLAPI void GLAPIENTRY glPushClientAttrib (GLbitfield mask);
1058 GLAPI void GLAPIENTRY glPushMatrix (void);
1059 GLAPI void GLAPIENTRY glPushName (GLuint name);
1060 GLAPI void GLAPIENTRY glRasterPos2d (GLdouble x, GLdouble y);
1061 GLAPI void GLAPIENTRY glRasterPos2dv (const GLdouble *v);
1062 GLAPI void GLAPIENTRY glRasterPos2f (GLfloat x, GLfloat y);
1063 GLAPI void GLAPIENTRY glRasterPos2fv (const GLfloat *v);
1064 GLAPI void GLAPIENTRY glRasterPos2i (GLint x, GLint y);
1065 GLAPI void GLAPIENTRY glRasterPos2iv (const GLint *v);
1066 GLAPI void GLAPIENTRY glRasterPos2s (GLshort x, GLshort y);
1067 GLAPI void GLAPIENTRY glRasterPos2sv (const GLshort *v);
1068 GLAPI void GLAPIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z);
1069 GLAPI void GLAPIENTRY glRasterPos3dv (const GLdouble *v);
1070 GLAPI void GLAPIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z);
1071 GLAPI void GLAPIENTRY glRasterPos3fv (const GLfloat *v);
1072 GLAPI void GLAPIENTRY glRasterPos3i (GLint x, GLint y, GLint z);
1073 GLAPI void GLAPIENTRY glRasterPos3iv (const GLint *v);
1074 GLAPI void GLAPIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z);
1075 GLAPI void GLAPIENTRY glRasterPos3sv (const GLshort *v);
1076 GLAPI void GLAPIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1077 GLAPI void GLAPIENTRY glRasterPos4dv (const GLdouble *v);
1078 GLAPI void GLAPIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1079 GLAPI void GLAPIENTRY glRasterPos4fv (const GLfloat *v);
1080 GLAPI void GLAPIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w);
1081 GLAPI void GLAPIENTRY glRasterPos4iv (const GLint *v);
1082 GLAPI void GLAPIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w);
1083 GLAPI void GLAPIENTRY glRasterPos4sv (const GLshort *v);
1084 GLAPI void GLAPIENTRY glReadBuffer (GLenum mode);
1085 GLAPI void GLAPIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
1086 GLAPI void GLAPIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
1087 GLAPI void GLAPIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2);
1088 GLAPI void GLAPIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
1089 GLAPI void GLAPIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2);
1090 GLAPI void GLAPIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2);
1091 GLAPI void GLAPIENTRY glRectiv (const GLint *v1, const GLint *v2);
1092 GLAPI void GLAPIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2);
1093 GLAPI void GLAPIENTRY glRectsv (const GLshort *v1, const GLshort *v2);
1094 GLAPI GLint GLAPIENTRY glRenderMode (GLenum mode);
1095 GLAPI void GLAPIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
1096 GLAPI void GLAPIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
1097 GLAPI void GLAPIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z);
1098 GLAPI void GLAPIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z);
1099 GLAPI void GLAPIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
1100 GLAPI void GLAPIENTRY glSelectBuffer (GLsizei size, GLuint *buffer);
1101 GLAPI void GLAPIENTRY glShadeModel (GLenum mode);
1102 GLAPI void GLAPIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
1103 GLAPI void GLAPIENTRY glStencilMask (GLuint mask);
1104 GLAPI void GLAPIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
1105 GLAPI void GLAPIENTRY glTexCoord1d (GLdouble s);
1106 GLAPI void GLAPIENTRY glTexCoord1dv (const GLdouble *v);
1107 GLAPI void GLAPIENTRY glTexCoord1f (GLfloat s);
1108 GLAPI void GLAPIENTRY glTexCoord1fv (const GLfloat *v);
1109 GLAPI void GLAPIENTRY glTexCoord1i (GLint s);
1110 GLAPI void GLAPIENTRY glTexCoord1iv (const GLint *v);
1111 GLAPI void GLAPIENTRY glTexCoord1s (GLshort s);
1112 GLAPI void GLAPIENTRY glTexCoord1sv (const GLshort *v);
1113 GLAPI void GLAPIENTRY glTexCoord2d (GLdouble s, GLdouble t);
1114 GLAPI void GLAPIENTRY glTexCoord2dv (const GLdouble *v);
1115 GLAPI void GLAPIENTRY glTexCoord2f (GLfloat s, GLfloat t);
1116 GLAPI void GLAPIENTRY glTexCoord2fv (const GLfloat *v);
1117 GLAPI void GLAPIENTRY glTexCoord2i (GLint s, GLint t);
1118 GLAPI void GLAPIENTRY glTexCoord2iv (const GLint *v);
1119 GLAPI void GLAPIENTRY glTexCoord2s (GLshort s, GLshort t);
1120 GLAPI void GLAPIENTRY glTexCoord2sv (const GLshort *v);
1121 GLAPI void GLAPIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r);
1122 GLAPI void GLAPIENTRY glTexCoord3dv (const GLdouble *v);
1123 GLAPI void GLAPIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r);
1124 GLAPI void GLAPIENTRY glTexCoord3fv (const GLfloat *v);
1125 GLAPI void GLAPIENTRY glTexCoord3i (GLint s, GLint t, GLint r);
1126 GLAPI void GLAPIENTRY glTexCoord3iv (const GLint *v);
1127 GLAPI void GLAPIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r);
1128 GLAPI void GLAPIENTRY glTexCoord3sv (const GLshort *v);
1129 GLAPI void GLAPIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q);
1130 GLAPI void GLAPIENTRY glTexCoord4dv (const GLdouble *v);
1131 GLAPI void GLAPIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q);
1132 GLAPI void GLAPIENTRY glTexCoord4fv (const GLfloat *v);
1133 GLAPI void GLAPIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q);
1134 GLAPI void GLAPIENTRY glTexCoord4iv (const GLint *v);
1135 GLAPI void GLAPIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q);
1136 GLAPI void GLAPIENTRY glTexCoord4sv (const GLshort *v);
1137 GLAPI void GLAPIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
1138 GLAPI void GLAPIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param);
1139 GLAPI void GLAPIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params);
1140 GLAPI void GLAPIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param);
1141 GLAPI void GLAPIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params);
1142 GLAPI void GLAPIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param);
1143 GLAPI void GLAPIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params);
1144 GLAPI void GLAPIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param);
1145 GLAPI void GLAPIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params);
1146 GLAPI void GLAPIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param);
1147 GLAPI void GLAPIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params);
1148 GLAPI void GLAPIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
1149 GLAPI void GLAPIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
1150 GLAPI void GLAPIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
1151 GLAPI void GLAPIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
1152 GLAPI void GLAPIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
1153 GLAPI void GLAPIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
1154 GLAPI void GLAPIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
1155 GLAPI void GLAPIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
1156 GLAPI void GLAPIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z);
1157 GLAPI void GLAPIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z);
1158 GLAPI void GLAPIENTRY glVertex2d (GLdouble x, GLdouble y);
1159 GLAPI void GLAPIENTRY glVertex2dv (const GLdouble *v);
1160 GLAPI void GLAPIENTRY glVertex2f (GLfloat x, GLfloat y);
1161 GLAPI void GLAPIENTRY glVertex2fv (const GLfloat *v);
1162 GLAPI void GLAPIENTRY glVertex2i (GLint x, GLint y);
1163 GLAPI void GLAPIENTRY glVertex2iv (const GLint *v);
1164 GLAPI void GLAPIENTRY glVertex2s (GLshort x, GLshort y);
1165 GLAPI void GLAPIENTRY glVertex2sv (const GLshort *v);
1166 GLAPI void GLAPIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z);
1167 GLAPI void GLAPIENTRY glVertex3dv (const GLdouble *v);
1168 GLAPI void GLAPIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z);
1169 GLAPI void GLAPIENTRY glVertex3fv (const GLfloat *v);
1170 GLAPI void GLAPIENTRY glVertex3i (GLint x, GLint y, GLint z);
1171 GLAPI void GLAPIENTRY glVertex3iv (const GLint *v);
1172 GLAPI void GLAPIENTRY glVertex3s (GLshort x, GLshort y, GLshort z);
1173 GLAPI void GLAPIENTRY glVertex3sv (const GLshort *v);
1174 GLAPI void GLAPIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1175 GLAPI void GLAPIENTRY glVertex4dv (const GLdouble *v);
1176 GLAPI void GLAPIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1177 GLAPI void GLAPIENTRY glVertex4fv (const GLfloat *v);
1178 GLAPI void GLAPIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w);
1179 GLAPI void GLAPIENTRY glVertex4iv (const GLint *v);
1180 GLAPI void GLAPIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w);
1181 GLAPI void GLAPIENTRY glVertex4sv (const GLshort *v);
1182 GLAPI void GLAPIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
1183 GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
1184 
1185 #define GLEW_VERSION_1_1 GLEW_GET_VAR(__GLEW_VERSION_1_1)
1186 
1187 #endif /* GL_VERSION_1_1 */
1188 
1189 /* ---------------------------------- GLU ---------------------------------- */
1190 
1191 #ifndef GLEW_NO_GLU
1192 # ifdef __APPLE__
1193 # include <Availability.h>
1194 # if defined(__IPHONE_OS_VERSION_MIN_REQUIRED)
1195 # define GLEW_NO_GLU
1196 # endif
1197 # endif
1198 #endif
1199 
1200 #ifndef GLEW_NO_GLU
1201 /* this is where we can safely include GLU */
1202 # if defined(__APPLE__) && defined(__MACH__)
1203 # include <OpenGL/glu.h>
1204 # else
1205 # include <GL/glu.h>
1206 # endif
1207 #endif
1208 
1209 /* ----------------------------- GL_VERSION_1_2 ---------------------------- */
1210 
1211 #ifndef GL_VERSION_1_2
1212 #define GL_VERSION_1_2 1
1213 
1214 #define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
1215 #define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
1216 #define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
1217 #define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
1218 #define GL_UNSIGNED_BYTE_3_3_2 0x8032
1219 #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
1220 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
1221 #define GL_UNSIGNED_INT_8_8_8_8 0x8035
1222 #define GL_UNSIGNED_INT_10_10_10_2 0x8036
1223 #define GL_RESCALE_NORMAL 0x803A
1224 #define GL_TEXTURE_BINDING_3D 0x806A
1225 #define GL_PACK_SKIP_IMAGES 0x806B
1226 #define GL_PACK_IMAGE_HEIGHT 0x806C
1227 #define GL_UNPACK_SKIP_IMAGES 0x806D
1228 #define GL_UNPACK_IMAGE_HEIGHT 0x806E
1229 #define GL_TEXTURE_3D 0x806F
1230 #define GL_PROXY_TEXTURE_3D 0x8070
1231 #define GL_TEXTURE_DEPTH 0x8071
1232 #define GL_TEXTURE_WRAP_R 0x8072
1233 #define GL_MAX_3D_TEXTURE_SIZE 0x8073
1234 #define GL_BGR 0x80E0
1235 #define GL_BGRA 0x80E1
1236 #define GL_MAX_ELEMENTS_VERTICES 0x80E8
1237 #define GL_MAX_ELEMENTS_INDICES 0x80E9
1238 #define GL_CLAMP_TO_EDGE 0x812F
1239 #define GL_TEXTURE_MIN_LOD 0x813A
1240 #define GL_TEXTURE_MAX_LOD 0x813B
1241 #define GL_TEXTURE_BASE_LEVEL 0x813C
1242 #define GL_TEXTURE_MAX_LEVEL 0x813D
1243 #define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8
1244 #define GL_SINGLE_COLOR 0x81F9
1245 #define GL_SEPARATE_SPECULAR_COLOR 0x81FA
1246 #define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
1247 #define GL_UNSIGNED_SHORT_5_6_5 0x8363
1248 #define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
1249 #define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
1250 #define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
1251 #define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
1252 #define GL_ALIASED_POINT_SIZE_RANGE 0x846D
1253 #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
1254 
1255 typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
1256 typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
1257 typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
1258 typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
1259 
1260 #define glCopyTexSubImage3D GLEW_GET_FUN(__glewCopyTexSubImage3D)
1261 #define glDrawRangeElements GLEW_GET_FUN(__glewDrawRangeElements)
1262 #define glTexImage3D GLEW_GET_FUN(__glewTexImage3D)
1263 #define glTexSubImage3D GLEW_GET_FUN(__glewTexSubImage3D)
1264 
1265 #define GLEW_VERSION_1_2 GLEW_GET_VAR(__GLEW_VERSION_1_2)
1266 
1267 #endif /* GL_VERSION_1_2 */
1268 
1269 /* ---------------------------- GL_VERSION_1_2_1 --------------------------- */
1270 
1271 #ifndef GL_VERSION_1_2_1
1272 #define GL_VERSION_1_2_1 1
1273 
1274 #define GLEW_VERSION_1_2_1 GLEW_GET_VAR(__GLEW_VERSION_1_2_1)
1275 
1276 #endif /* GL_VERSION_1_2_1 */
1277 
1278 /* ----------------------------- GL_VERSION_1_3 ---------------------------- */
1279 
1280 #ifndef GL_VERSION_1_3
1281 #define GL_VERSION_1_3 1
1282 
1283 #define GL_MULTISAMPLE 0x809D
1284 #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
1285 #define GL_SAMPLE_ALPHA_TO_ONE 0x809F
1286 #define GL_SAMPLE_COVERAGE 0x80A0
1287 #define GL_SAMPLE_BUFFERS 0x80A8
1288 #define GL_SAMPLES 0x80A9
1289 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA
1290 #define GL_SAMPLE_COVERAGE_INVERT 0x80AB
1291 #define GL_CLAMP_TO_BORDER 0x812D
1292 #define GL_TEXTURE0 0x84C0
1293 #define GL_TEXTURE1 0x84C1
1294 #define GL_TEXTURE2 0x84C2
1295 #define GL_TEXTURE3 0x84C3
1296 #define GL_TEXTURE4 0x84C4
1297 #define GL_TEXTURE5 0x84C5
1298 #define GL_TEXTURE6 0x84C6
1299 #define GL_TEXTURE7 0x84C7
1300 #define GL_TEXTURE8 0x84C8
1301 #define GL_TEXTURE9 0x84C9
1302 #define GL_TEXTURE10 0x84CA
1303 #define GL_TEXTURE11 0x84CB
1304 #define GL_TEXTURE12 0x84CC
1305 #define GL_TEXTURE13 0x84CD
1306 #define GL_TEXTURE14 0x84CE
1307 #define GL_TEXTURE15 0x84CF
1308 #define GL_TEXTURE16 0x84D0
1309 #define GL_TEXTURE17 0x84D1
1310 #define GL_TEXTURE18 0x84D2
1311 #define GL_TEXTURE19 0x84D3
1312 #define GL_TEXTURE20 0x84D4
1313 #define GL_TEXTURE21 0x84D5
1314 #define GL_TEXTURE22 0x84D6
1315 #define GL_TEXTURE23 0x84D7
1316 #define GL_TEXTURE24 0x84D8
1317 #define GL_TEXTURE25 0x84D9
1318 #define GL_TEXTURE26 0x84DA
1319 #define GL_TEXTURE27 0x84DB
1320 #define GL_TEXTURE28 0x84DC
1321 #define GL_TEXTURE29 0x84DD
1322 #define GL_TEXTURE30 0x84DE
1323 #define GL_TEXTURE31 0x84DF
1324 #define GL_ACTIVE_TEXTURE 0x84E0
1325 #define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
1326 #define GL_MAX_TEXTURE_UNITS 0x84E2
1327 #define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3
1328 #define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4
1329 #define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5
1330 #define GL_TRANSPOSE_COLOR_MATRIX 0x84E6
1331 #define GL_SUBTRACT 0x84E7
1332 #define GL_COMPRESSED_ALPHA 0x84E9
1333 #define GL_COMPRESSED_LUMINANCE 0x84EA
1334 #define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB
1335 #define GL_COMPRESSED_INTENSITY 0x84EC
1336 #define GL_COMPRESSED_RGB 0x84ED
1337 #define GL_COMPRESSED_RGBA 0x84EE
1338 #define GL_TEXTURE_COMPRESSION_HINT 0x84EF
1339 #define GL_NORMAL_MAP 0x8511
1340 #define GL_REFLECTION_MAP 0x8512
1341 #define GL_TEXTURE_CUBE_MAP 0x8513
1342 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
1343 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
1344 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
1345 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
1346 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
1347 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
1348 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
1349 #define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
1350 #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
1351 #define GL_COMBINE 0x8570
1352 #define GL_COMBINE_RGB 0x8571
1353 #define GL_COMBINE_ALPHA 0x8572
1354 #define GL_RGB_SCALE 0x8573
1355 #define GL_ADD_SIGNED 0x8574
1356 #define GL_INTERPOLATE 0x8575
1357 #define GL_CONSTANT 0x8576
1358 #define GL_PRIMARY_COLOR 0x8577
1359 #define GL_PREVIOUS 0x8578
1360 #define GL_SOURCE0_RGB 0x8580
1361 #define GL_SOURCE1_RGB 0x8581
1362 #define GL_SOURCE2_RGB 0x8582
1363 #define GL_SOURCE0_ALPHA 0x8588
1364 #define GL_SOURCE1_ALPHA 0x8589
1365 #define GL_SOURCE2_ALPHA 0x858A
1366 #define GL_OPERAND0_RGB 0x8590
1367 #define GL_OPERAND1_RGB 0x8591
1368 #define GL_OPERAND2_RGB 0x8592
1369 #define GL_OPERAND0_ALPHA 0x8598
1370 #define GL_OPERAND1_ALPHA 0x8599
1371 #define GL_OPERAND2_ALPHA 0x859A
1372 #define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
1373 #define GL_TEXTURE_COMPRESSED 0x86A1
1374 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
1375 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
1376 #define GL_DOT3_RGB 0x86AE
1377 #define GL_DOT3_RGBA 0x86AF
1378 #define GL_MULTISAMPLE_BIT 0x20000000
1379 
1380 typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture);
1381 typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture);
1382 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
1383 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
1384 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
1385 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
1386 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
1387 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
1388 typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, void *img);
1389 typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble m[16]);
1390 typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat m[16]);
1391 typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble m[16]);
1392 typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat m[16]);
1393 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s);
1394 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v);
1395 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s);
1396 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v);
1397 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s);
1398 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v);
1399 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s);
1400 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v);
1401 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t);
1402 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v);
1403 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
1404 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v);
1405 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t);
1406 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v);
1407 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t);
1408 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v);
1409 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
1410 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v);
1411 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
1412 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v);
1413 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r);
1414 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v);
1415 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
1416 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v);
1417 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
1418 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v);
1419 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
1420 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v);
1421 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
1422 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v);
1423 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
1424 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v);
1425 typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
1426 
1427 #define glActiveTexture GLEW_GET_FUN(__glewActiveTexture)
1428 #define glClientActiveTexture GLEW_GET_FUN(__glewClientActiveTexture)
1429 #define glCompressedTexImage1D GLEW_GET_FUN(__glewCompressedTexImage1D)
1430 #define glCompressedTexImage2D GLEW_GET_FUN(__glewCompressedTexImage2D)
1431 #define glCompressedTexImage3D GLEW_GET_FUN(__glewCompressedTexImage3D)
1432 #define glCompressedTexSubImage1D GLEW_GET_FUN(__glewCompressedTexSubImage1D)
1433 #define glCompressedTexSubImage2D GLEW_GET_FUN(__glewCompressedTexSubImage2D)
1434 #define glCompressedTexSubImage3D GLEW_GET_FUN(__glewCompressedTexSubImage3D)
1435 #define glGetCompressedTexImage GLEW_GET_FUN(__glewGetCompressedTexImage)
1436 #define glLoadTransposeMatrixd GLEW_GET_FUN(__glewLoadTransposeMatrixd)
1437 #define glLoadTransposeMatrixf GLEW_GET_FUN(__glewLoadTransposeMatrixf)
1438 #define glMultTransposeMatrixd GLEW_GET_FUN(__glewMultTransposeMatrixd)
1439 #define glMultTransposeMatrixf GLEW_GET_FUN(__glewMultTransposeMatrixf)
1440 #define glMultiTexCoord1d GLEW_GET_FUN(__glewMultiTexCoord1d)
1441 #define glMultiTexCoord1dv GLEW_GET_FUN(__glewMultiTexCoord1dv)
1442 #define glMultiTexCoord1f GLEW_GET_FUN(__glewMultiTexCoord1f)
1443 #define glMultiTexCoord1fv GLEW_GET_FUN(__glewMultiTexCoord1fv)
1444 #define glMultiTexCoord1i GLEW_GET_FUN(__glewMultiTexCoord1i)
1445 #define glMultiTexCoord1iv GLEW_GET_FUN(__glewMultiTexCoord1iv)
1446 #define glMultiTexCoord1s GLEW_GET_FUN(__glewMultiTexCoord1s)
1447 #define glMultiTexCoord1sv GLEW_GET_FUN(__glewMultiTexCoord1sv)
1448 #define glMultiTexCoord2d GLEW_GET_FUN(__glewMultiTexCoord2d)
1449 #define glMultiTexCoord2dv GLEW_GET_FUN(__glewMultiTexCoord2dv)
1450 #define glMultiTexCoord2f GLEW_GET_FUN(__glewMultiTexCoord2f)
1451 #define glMultiTexCoord2fv GLEW_GET_FUN(__glewMultiTexCoord2fv)
1452 #define glMultiTexCoord2i GLEW_GET_FUN(__glewMultiTexCoord2i)
1453 #define glMultiTexCoord2iv GLEW_GET_FUN(__glewMultiTexCoord2iv)
1454 #define glMultiTexCoord2s GLEW_GET_FUN(__glewMultiTexCoord2s)
1455 #define glMultiTexCoord2sv GLEW_GET_FUN(__glewMultiTexCoord2sv)
1456 #define glMultiTexCoord3d GLEW_GET_FUN(__glewMultiTexCoord3d)
1457 #define glMultiTexCoord3dv GLEW_GET_FUN(__glewMultiTexCoord3dv)
1458 #define glMultiTexCoord3f GLEW_GET_FUN(__glewMultiTexCoord3f)
1459 #define glMultiTexCoord3fv GLEW_GET_FUN(__glewMultiTexCoord3fv)
1460 #define glMultiTexCoord3i GLEW_GET_FUN(__glewMultiTexCoord3i)
1461 #define glMultiTexCoord3iv GLEW_GET_FUN(__glewMultiTexCoord3iv)
1462 #define glMultiTexCoord3s GLEW_GET_FUN(__glewMultiTexCoord3s)
1463 #define glMultiTexCoord3sv GLEW_GET_FUN(__glewMultiTexCoord3sv)
1464 #define glMultiTexCoord4d GLEW_GET_FUN(__glewMultiTexCoord4d)
1465 #define glMultiTexCoord4dv GLEW_GET_FUN(__glewMultiTexCoord4dv)
1466 #define glMultiTexCoord4f GLEW_GET_FUN(__glewMultiTexCoord4f)
1467 #define glMultiTexCoord4fv GLEW_GET_FUN(__glewMultiTexCoord4fv)
1468 #define glMultiTexCoord4i GLEW_GET_FUN(__glewMultiTexCoord4i)
1469 #define glMultiTexCoord4iv GLEW_GET_FUN(__glewMultiTexCoord4iv)
1470 #define glMultiTexCoord4s GLEW_GET_FUN(__glewMultiTexCoord4s)
1471 #define glMultiTexCoord4sv GLEW_GET_FUN(__glewMultiTexCoord4sv)
1472 #define glSampleCoverage GLEW_GET_FUN(__glewSampleCoverage)
1473 
1474 #define GLEW_VERSION_1_3 GLEW_GET_VAR(__GLEW_VERSION_1_3)
1475 
1476 #endif /* GL_VERSION_1_3 */
1477 
1478 /* ----------------------------- GL_VERSION_1_4 ---------------------------- */
1479 
1480 #ifndef GL_VERSION_1_4
1481 #define GL_VERSION_1_4 1
1482 
1483 #define GL_BLEND_DST_RGB 0x80C8
1484 #define GL_BLEND_SRC_RGB 0x80C9
1485 #define GL_BLEND_DST_ALPHA 0x80CA
1486 #define GL_BLEND_SRC_ALPHA 0x80CB
1487 #define GL_POINT_SIZE_MIN 0x8126
1488 #define GL_POINT_SIZE_MAX 0x8127
1489 #define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
1490 #define GL_POINT_DISTANCE_ATTENUATION 0x8129
1491 #define GL_GENERATE_MIPMAP 0x8191
1492 #define GL_GENERATE_MIPMAP_HINT 0x8192
1493 #define GL_DEPTH_COMPONENT16 0x81A5
1494 #define GL_DEPTH_COMPONENT24 0x81A6
1495 #define GL_DEPTH_COMPONENT32 0x81A7
1496 #define GL_MIRRORED_REPEAT 0x8370
1497 #define GL_FOG_COORDINATE_SOURCE 0x8450
1498 #define GL_FOG_COORDINATE 0x8451
1499 #define GL_FRAGMENT_DEPTH 0x8452
1500 #define GL_CURRENT_FOG_COORDINATE 0x8453
1501 #define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454
1502 #define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455
1503 #define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456
1504 #define GL_FOG_COORDINATE_ARRAY 0x8457
1505 #define GL_COLOR_SUM 0x8458
1506 #define GL_CURRENT_SECONDARY_COLOR 0x8459
1507 #define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A
1508 #define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B
1509 #define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C
1510 #define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D
1511 #define GL_SECONDARY_COLOR_ARRAY 0x845E
1512 #define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
1513 #define GL_TEXTURE_FILTER_CONTROL 0x8500
1514 #define GL_TEXTURE_LOD_BIAS 0x8501
1515 #define GL_INCR_WRAP 0x8507
1516 #define GL_DECR_WRAP 0x8508
1517 #define GL_TEXTURE_DEPTH_SIZE 0x884A
1518 #define GL_DEPTH_TEXTURE_MODE 0x884B
1519 #define GL_TEXTURE_COMPARE_MODE 0x884C
1520 #define GL_TEXTURE_COMPARE_FUNC 0x884D
1521 #define GL_COMPARE_R_TO_TEXTURE 0x884E
1522 
1523 typedef void (GLAPIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
1524 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode);
1525 typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
1526 typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const void *pointer);
1527 typedef void (GLAPIENTRY * PFNGLFOGCOORDDPROC) (GLdouble coord);
1528 typedef void (GLAPIENTRY * PFNGLFOGCOORDDVPROC) (const GLdouble *coord);
1529 typedef void (GLAPIENTRY * PFNGLFOGCOORDFPROC) (GLfloat coord);
1530 typedef void (GLAPIENTRY * PFNGLFOGCOORDFVPROC) (const GLfloat *coord);
1531 typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
1532 typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const* indices, GLsizei drawcount);
1533 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
1534 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params);
1535 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param);
1536 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params);
1537 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue);
1538 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v);
1539 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue);
1540 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v);
1541 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue);
1542 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v);
1543 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue);
1544 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v);
1545 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue);
1546 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v);
1547 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue);
1548 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v);
1549 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue);
1550 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v);
1551 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue);
1552 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v);
1553 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer);
1554 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y);
1555 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVPROC) (const GLdouble *p);
1556 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y);
1557 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVPROC) (const GLfloat *p);
1558 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IPROC) (GLint x, GLint y);
1559 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVPROC) (const GLint *p);
1560 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y);
1561 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVPROC) (const GLshort *p);
1562 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z);
1563 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVPROC) (const GLdouble *p);
1564 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z);
1565 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVPROC) (const GLfloat *p);
1566 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z);
1567 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVPROC) (const GLint *p);
1568 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z);
1569 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVPROC) (const GLshort *p);
1570 
1571 #define glBlendColor GLEW_GET_FUN(__glewBlendColor)
1572 #define glBlendEquation GLEW_GET_FUN(__glewBlendEquation)
1573 #define glBlendFuncSeparate GLEW_GET_FUN(__glewBlendFuncSeparate)
1574 #define glFogCoordPointer GLEW_GET_FUN(__glewFogCoordPointer)
1575 #define glFogCoordd GLEW_GET_FUN(__glewFogCoordd)
1576 #define glFogCoorddv GLEW_GET_FUN(__glewFogCoorddv)
1577 #define glFogCoordf GLEW_GET_FUN(__glewFogCoordf)
1578 #define glFogCoordfv GLEW_GET_FUN(__glewFogCoordfv)
1579 #define glMultiDrawArrays GLEW_GET_FUN(__glewMultiDrawArrays)
1580 #define glMultiDrawElements GLEW_GET_FUN(__glewMultiDrawElements)
1581 #define glPointParameterf GLEW_GET_FUN(__glewPointParameterf)
1582 #define glPointParameterfv GLEW_GET_FUN(__glewPointParameterfv)
1583 #define glPointParameteri GLEW_GET_FUN(__glewPointParameteri)
1584 #define glPointParameteriv GLEW_GET_FUN(__glewPointParameteriv)
1585 #define glSecondaryColor3b GLEW_GET_FUN(__glewSecondaryColor3b)
1586 #define glSecondaryColor3bv GLEW_GET_FUN(__glewSecondaryColor3bv)
1587 #define glSecondaryColor3d GLEW_GET_FUN(__glewSecondaryColor3d)
1588 #define glSecondaryColor3dv GLEW_GET_FUN(__glewSecondaryColor3dv)
1589 #define glSecondaryColor3f GLEW_GET_FUN(__glewSecondaryColor3f)
1590 #define glSecondaryColor3fv GLEW_GET_FUN(__glewSecondaryColor3fv)
1591 #define glSecondaryColor3i GLEW_GET_FUN(__glewSecondaryColor3i)
1592 #define glSecondaryColor3iv GLEW_GET_FUN(__glewSecondaryColor3iv)
1593 #define glSecondaryColor3s GLEW_GET_FUN(__glewSecondaryColor3s)
1594 #define glSecondaryColor3sv GLEW_GET_FUN(__glewSecondaryColor3sv)
1595 #define glSecondaryColor3ub GLEW_GET_FUN(__glewSecondaryColor3ub)
1596 #define glSecondaryColor3ubv GLEW_GET_FUN(__glewSecondaryColor3ubv)
1597 #define glSecondaryColor3ui GLEW_GET_FUN(__glewSecondaryColor3ui)
1598 #define glSecondaryColor3uiv GLEW_GET_FUN(__glewSecondaryColor3uiv)
1599 #define glSecondaryColor3us GLEW_GET_FUN(__glewSecondaryColor3us)
1600 #define glSecondaryColor3usv GLEW_GET_FUN(__glewSecondaryColor3usv)
1601 #define glSecondaryColorPointer GLEW_GET_FUN(__glewSecondaryColorPointer)
1602 #define glWindowPos2d GLEW_GET_FUN(__glewWindowPos2d)
1603 #define glWindowPos2dv GLEW_GET_FUN(__glewWindowPos2dv)
1604 #define glWindowPos2f GLEW_GET_FUN(__glewWindowPos2f)
1605 #define glWindowPos2fv GLEW_GET_FUN(__glewWindowPos2fv)
1606 #define glWindowPos2i GLEW_GET_FUN(__glewWindowPos2i)
1607 #define glWindowPos2iv GLEW_GET_FUN(__glewWindowPos2iv)
1608 #define glWindowPos2s GLEW_GET_FUN(__glewWindowPos2s)
1609 #define glWindowPos2sv GLEW_GET_FUN(__glewWindowPos2sv)
1610 #define glWindowPos3d GLEW_GET_FUN(__glewWindowPos3d)
1611 #define glWindowPos3dv GLEW_GET_FUN(__glewWindowPos3dv)
1612 #define glWindowPos3f GLEW_GET_FUN(__glewWindowPos3f)
1613 #define glWindowPos3fv GLEW_GET_FUN(__glewWindowPos3fv)
1614 #define glWindowPos3i GLEW_GET_FUN(__glewWindowPos3i)
1615 #define glWindowPos3iv GLEW_GET_FUN(__glewWindowPos3iv)
1616 #define glWindowPos3s GLEW_GET_FUN(__glewWindowPos3s)
1617 #define glWindowPos3sv GLEW_GET_FUN(__glewWindowPos3sv)
1618 
1619 #define GLEW_VERSION_1_4 GLEW_GET_VAR(__GLEW_VERSION_1_4)
1620 
1621 #endif /* GL_VERSION_1_4 */
1622 
1623 /* ----------------------------- GL_VERSION_1_5 ---------------------------- */
1624 
1625 #ifndef GL_VERSION_1_5
1626 #define GL_VERSION_1_5 1
1627 
1628 #define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE
1629 #define GL_FOG_COORD GL_FOG_COORDINATE
1630 #define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY
1631 #define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING
1632 #define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER
1633 #define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE
1634 #define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE
1635 #define GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE
1636 #define GL_SRC0_ALPHA GL_SOURCE0_ALPHA
1637 #define GL_SRC0_RGB GL_SOURCE0_RGB
1638 #define GL_SRC1_ALPHA GL_SOURCE1_ALPHA
1639 #define GL_SRC1_RGB GL_SOURCE1_RGB
1640 #define GL_SRC2_ALPHA GL_SOURCE2_ALPHA
1641 #define GL_SRC2_RGB GL_SOURCE2_RGB
1642 #define GL_BUFFER_SIZE 0x8764
1643 #define GL_BUFFER_USAGE 0x8765
1644 #define GL_QUERY_COUNTER_BITS 0x8864
1645 #define GL_CURRENT_QUERY 0x8865
1646 #define GL_QUERY_RESULT 0x8866
1647 #define GL_QUERY_RESULT_AVAILABLE 0x8867
1648 #define GL_ARRAY_BUFFER 0x8892
1649 #define GL_ELEMENT_ARRAY_BUFFER 0x8893
1650 #define GL_ARRAY_BUFFER_BINDING 0x8894
1651 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
1652 #define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896
1653 #define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897
1654 #define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898
1655 #define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899
1656 #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
1657 #define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B
1658 #define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C
1659 #define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D
1660 #define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E
1661 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
1662 #define GL_READ_ONLY 0x88B8
1663 #define GL_WRITE_ONLY 0x88B9
1664 #define GL_READ_WRITE 0x88BA
1665 #define GL_BUFFER_ACCESS 0x88BB
1666 #define GL_BUFFER_MAPPED 0x88BC
1667 #define GL_BUFFER_MAP_POINTER 0x88BD
1668 #define GL_STREAM_DRAW 0x88E0
1669 #define GL_STREAM_READ 0x88E1
1670 #define GL_STREAM_COPY 0x88E2
1671 #define GL_STATIC_DRAW 0x88E4
1672 #define GL_STATIC_READ 0x88E5
1673 #define GL_STATIC_COPY 0x88E6
1674 #define GL_DYNAMIC_DRAW 0x88E8
1675 #define GL_DYNAMIC_READ 0x88E9
1676 #define GL_DYNAMIC_COPY 0x88EA
1677 #define GL_SAMPLES_PASSED 0x8914
1678 
1679 typedef ptrdiff_t GLintptr;
1680 typedef ptrdiff_t GLsizeiptr;
1681 
1682 typedef void (GLAPIENTRY * PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
1683 typedef void (GLAPIENTRY * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
1684 typedef void (GLAPIENTRY * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void* data, GLenum usage);
1685 typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void* data);
1686 typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers);
1687 typedef void (GLAPIENTRY * PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint* ids);
1688 typedef void (GLAPIENTRY * PFNGLENDQUERYPROC) (GLenum target);
1689 typedef void (GLAPIENTRY * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint* buffers);
1690 typedef void (GLAPIENTRY * PFNGLGENQUERIESPROC) (GLsizei n, GLuint* ids);
1691 typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params);
1692 typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void** params);
1693 typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, void* data);
1694 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint* params);
1695 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint* params);
1696 typedef void (GLAPIENTRY * PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint* params);
1697 typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERPROC) (GLuint buffer);
1698 typedef GLboolean (GLAPIENTRY * PFNGLISQUERYPROC) (GLuint id);
1699 typedef void* (GLAPIENTRY * PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
1700 typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERPROC) (GLenum target);
1701 
1702 #define glBeginQuery GLEW_GET_FUN(__glewBeginQuery)
1703 #define glBindBuffer GLEW_GET_FUN(__glewBindBuffer)
1704 #define glBufferData GLEW_GET_FUN(__glewBufferData)
1705 #define glBufferSubData GLEW_GET_FUN(__glewBufferSubData)
1706 #define glDeleteBuffers GLEW_GET_FUN(__glewDeleteBuffers)
1707 #define glDeleteQueries GLEW_GET_FUN(__glewDeleteQueries)
1708 #define glEndQuery GLEW_GET_FUN(__glewEndQuery)
1709 #define glGenBuffers GLEW_GET_FUN(__glewGenBuffers)
1710 #define glGenQueries GLEW_GET_FUN(__glewGenQueries)
1711 #define glGetBufferParameteriv GLEW_GET_FUN(__glewGetBufferParameteriv)
1712 #define glGetBufferPointerv GLEW_GET_FUN(__glewGetBufferPointerv)
1713 #define glGetBufferSubData GLEW_GET_FUN(__glewGetBufferSubData)
1714 #define glGetQueryObjectiv GLEW_GET_FUN(__glewGetQueryObjectiv)
1715 #define glGetQueryObjectuiv GLEW_GET_FUN(__glewGetQueryObjectuiv)
1716 #define glGetQueryiv GLEW_GET_FUN(__glewGetQueryiv)
1717 #define glIsBuffer GLEW_GET_FUN(__glewIsBuffer)
1718 #define glIsQuery GLEW_GET_FUN(__glewIsQuery)
1719 #define glMapBuffer GLEW_GET_FUN(__glewMapBuffer)
1720 #define glUnmapBuffer GLEW_GET_FUN(__glewUnmapBuffer)
1721 
1722 #define GLEW_VERSION_1_5 GLEW_GET_VAR(__GLEW_VERSION_1_5)
1723 
1724 #endif /* GL_VERSION_1_5 */
1725 
1726 /* ----------------------------- GL_VERSION_2_0 ---------------------------- */
1727 
1728 #ifndef GL_VERSION_2_0
1729 #define GL_VERSION_2_0 1
1730 
1731 #define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION
1732 #define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
1733 #define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
1734 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
1735 #define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
1736 #define GL_CURRENT_VERTEX_ATTRIB 0x8626
1737 #define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
1738 #define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643
1739 #define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
1740 #define GL_STENCIL_BACK_FUNC 0x8800
1741 #define GL_STENCIL_BACK_FAIL 0x8801
1742 #define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
1743 #define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
1744 #define GL_MAX_DRAW_BUFFERS 0x8824
1745 #define GL_DRAW_BUFFER0 0x8825
1746 #define GL_DRAW_BUFFER1 0x8826
1747 #define GL_DRAW_BUFFER2 0x8827
1748 #define GL_DRAW_BUFFER3 0x8828
1749 #define GL_DRAW_BUFFER4 0x8829
1750 #define GL_DRAW_BUFFER5 0x882A
1751 #define GL_DRAW_BUFFER6 0x882B
1752 #define GL_DRAW_BUFFER7 0x882C
1753 #define GL_DRAW_BUFFER8 0x882D
1754 #define GL_DRAW_BUFFER9 0x882E
1755 #define GL_DRAW_BUFFER10 0x882F
1756 #define GL_DRAW_BUFFER11 0x8830
1757 #define GL_DRAW_BUFFER12 0x8831
1758 #define GL_DRAW_BUFFER13 0x8832
1759 #define GL_DRAW_BUFFER14 0x8833
1760 #define GL_DRAW_BUFFER15 0x8834
1761 #define GL_BLEND_EQUATION_ALPHA 0x883D
1762 #define GL_POINT_SPRITE 0x8861
1763 #define GL_COORD_REPLACE 0x8862
1764 #define GL_MAX_VERTEX_ATTRIBS 0x8869
1765 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
1766 #define GL_MAX_TEXTURE_COORDS 0x8871
1767 #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
1768 #define GL_FRAGMENT_SHADER 0x8B30
1769 #define GL_VERTEX_SHADER 0x8B31
1770 #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
1771 #define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
1772 #define GL_MAX_VARYING_FLOATS 0x8B4B
1773 #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
1774 #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
1775 #define GL_SHADER_TYPE 0x8B4F
1776 #define GL_FLOAT_VEC2 0x8B50
1777 #define GL_FLOAT_VEC3 0x8B51
1778 #define GL_FLOAT_VEC4 0x8B52
1779 #define GL_INT_VEC2 0x8B53
1780 #define GL_INT_VEC3 0x8B54
1781 #define GL_INT_VEC4 0x8B55
1782 #define GL_BOOL 0x8B56
1783 #define GL_BOOL_VEC2 0x8B57
1784 #define GL_BOOL_VEC3 0x8B58
1785 #define GL_BOOL_VEC4 0x8B59
1786 #define GL_FLOAT_MAT2 0x8B5A
1787 #define GL_FLOAT_MAT3 0x8B5B
1788 #define GL_FLOAT_MAT4 0x8B5C
1789 #define GL_SAMPLER_1D 0x8B5D
1790 #define GL_SAMPLER_2D 0x8B5E
1791 #define GL_SAMPLER_3D 0x8B5F
1792 #define GL_SAMPLER_CUBE 0x8B60
1793 #define GL_SAMPLER_1D_SHADOW 0x8B61
1794 #define GL_SAMPLER_2D_SHADOW 0x8B62
1795 #define GL_DELETE_STATUS 0x8B80
1796 #define GL_COMPILE_STATUS 0x8B81
1797 #define GL_LINK_STATUS 0x8B82
1798 #define GL_VALIDATE_STATUS 0x8B83
1799 #define GL_INFO_LOG_LENGTH 0x8B84
1800 #define GL_ATTACHED_SHADERS 0x8B85
1801 #define GL_ACTIVE_UNIFORMS 0x8B86
1802 #define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
1803 #define GL_SHADER_SOURCE_LENGTH 0x8B88
1804 #define GL_ACTIVE_ATTRIBUTES 0x8B89
1805 #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
1806 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
1807 #define GL_SHADING_LANGUAGE_VERSION 0x8B8C
1808 #define GL_CURRENT_PROGRAM 0x8B8D
1809 #define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
1810 #define GL_LOWER_LEFT 0x8CA1
1811 #define GL_UPPER_LEFT 0x8CA2
1812 #define GL_STENCIL_BACK_REF 0x8CA3
1813 #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
1814 #define GL_STENCIL_BACK_WRITEMASK 0x8CA5
1815 
1816 typedef void (GLAPIENTRY * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
1817 typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name);
1818 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
1819 typedef void (GLAPIENTRY * PFNGLCOMPILESHADERPROC) (GLuint shader);
1820 typedef GLuint (GLAPIENTRY * PFNGLCREATEPROGRAMPROC) (void);
1821 typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROC) (GLenum type);
1822 typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPROC) (GLuint program);
1823 typedef void (GLAPIENTRY * PFNGLDELETESHADERPROC) (GLuint shader);
1824 typedef void (GLAPIENTRY * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
1825 typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
1826 typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum* bufs);
1827 typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
1828 typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
1829 typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
1830 typedef void (GLAPIENTRY * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders);
1831 typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar* name);
1832 typedef void (GLAPIENTRY * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
1833 typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint* param);
1834 typedef void (GLAPIENTRY * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
1835 typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEPROC) (GLuint obj, GLsizei maxLength, GLsizei* length, GLchar* source);
1836 typedef void (GLAPIENTRY * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint* param);
1837 typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar* name);
1838 typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat* params);
1839 typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint* params);
1840 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void** pointer);
1841 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble* params);
1842 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat* params);
1843 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint* params);
1844 typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPROC) (GLuint program);
1845 typedef GLboolean (GLAPIENTRY * PFNGLISSHADERPROC) (GLuint shader);
1846 typedef void (GLAPIENTRY * PFNGLLINKPROGRAMPROC) (GLuint program);
1847 typedef void (GLAPIENTRY * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const* string, const GLint* length);
1848 typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
1849 typedef void (GLAPIENTRY * PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
1850 typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
1851 typedef void (GLAPIENTRY * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
1852 typedef void (GLAPIENTRY * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat* value);
1853 typedef void (GLAPIENTRY * PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
1854 typedef void (GLAPIENTRY * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint* value);
1855 typedef void (GLAPIENTRY * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
1856 typedef void (GLAPIENTRY * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat* value);
1857 typedef void (GLAPIENTRY * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
1858 typedef void (GLAPIENTRY * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint* value);
1859 typedef void (GLAPIENTRY * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
1860 typedef void (GLAPIENTRY * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat* value);
1861 typedef void (GLAPIENTRY * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
1862 typedef void (GLAPIENTRY * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint* value);
1863 typedef void (GLAPIENTRY * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
1864 typedef void (GLAPIENTRY * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat* value);
1865 typedef void (GLAPIENTRY * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
1866 typedef void (GLAPIENTRY * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint* value);
1867 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
1868 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
1869 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
1870 typedef void (GLAPIENTRY * PFNGLUSEPROGRAMPROC) (GLuint program);
1871 typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPROC) (GLuint program);
1872 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x);
1873 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble* v);
1874 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
1875 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat* v);
1876 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x);
1877 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort* v);
1878 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y);
1879 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble* v);
1880 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
1881 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat* v);
1882 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y);
1883 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort* v);
1884 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
1885 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble* v);
1886 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
1887 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat* v);
1888 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
1889 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort* v);
1890 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte* v);
1891 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint* v);
1892 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort* v);
1893 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
1894 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte* v);
1895 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint* v);
1896 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort* v);
1897 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte* v);
1898 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1899 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble* v);
1900 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1901 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat* v);
1902 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint* v);
1903 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
1904 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort* v);
1905 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte* v);
1906 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint* v);
1907 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort* v);
1908 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer);
1909 
1910 #define glAttachShader GLEW_GET_FUN(__glewAttachShader)
1911 #define glBindAttribLocation GLEW_GET_FUN(__glewBindAttribLocation)
1912 #define glBlendEquationSeparate GLEW_GET_FUN(__glewBlendEquationSeparate)
1913 #define glCompileShader GLEW_GET_FUN(__glewCompileShader)
1914 #define glCreateProgram GLEW_GET_FUN(__glewCreateProgram)
1915 #define glCreateShader GLEW_GET_FUN(__glewCreateShader)
1916 #define glDeleteProgram GLEW_GET_FUN(__glewDeleteProgram)
1917 #define glDeleteShader GLEW_GET_FUN(__glewDeleteShader)
1918 #define glDetachShader GLEW_GET_FUN(__glewDetachShader)
1919 #define glDisableVertexAttribArray GLEW_GET_FUN(__glewDisableVertexAttribArray)
1920 #define glDrawBuffers GLEW_GET_FUN(__glewDrawBuffers)
1921 #define glEnableVertexAttribArray GLEW_GET_FUN(__glewEnableVertexAttribArray)
1922 #define glGetActiveAttrib GLEW_GET_FUN(__glewGetActiveAttrib)
1923 #define glGetActiveUniform GLEW_GET_FUN(__glewGetActiveUniform)
1924 #define glGetAttachedShaders GLEW_GET_FUN(__glewGetAttachedShaders)
1925 #define glGetAttribLocation GLEW_GET_FUN(__glewGetAttribLocation)
1926 #define glGetProgramInfoLog GLEW_GET_FUN(__glewGetProgramInfoLog)
1927 #define glGetProgramiv GLEW_GET_FUN(__glewGetProgramiv)
1928 #define glGetShaderInfoLog GLEW_GET_FUN(__glewGetShaderInfoLog)
1929 #define glGetShaderSource GLEW_GET_FUN(__glewGetShaderSource)
1930 #define glGetShaderiv GLEW_GET_FUN(__glewGetShaderiv)
1931 #define glGetUniformLocation GLEW_GET_FUN(__glewGetUniformLocation)
1932 #define glGetUniformfv GLEW_GET_FUN(__glewGetUniformfv)
1933 #define glGetUniformiv GLEW_GET_FUN(__glewGetUniformiv)
1934 #define glGetVertexAttribPointerv GLEW_GET_FUN(__glewGetVertexAttribPointerv)
1935 #define glGetVertexAttribdv GLEW_GET_FUN(__glewGetVertexAttribdv)
1936 #define glGetVertexAttribfv GLEW_GET_FUN(__glewGetVertexAttribfv)
1937 #define glGetVertexAttribiv GLEW_GET_FUN(__glewGetVertexAttribiv)
1938 #define glIsProgram GLEW_GET_FUN(__glewIsProgram)
1939 #define glIsShader GLEW_GET_FUN(__glewIsShader)
1940 #define glLinkProgram GLEW_GET_FUN(__glewLinkProgram)
1941 #define glShaderSource GLEW_GET_FUN(__glewShaderSource)
1942 #define glStencilFuncSeparate GLEW_GET_FUN(__glewStencilFuncSeparate)
1943 #define glStencilMaskSeparate GLEW_GET_FUN(__glewStencilMaskSeparate)
1944 #define glStencilOpSeparate GLEW_GET_FUN(__glewStencilOpSeparate)
1945 #define glUniform1f GLEW_GET_FUN(__glewUniform1f)
1946 #define glUniform1fv GLEW_GET_FUN(__glewUniform1fv)
1947 #define glUniform1i GLEW_GET_FUN(__glewUniform1i)
1948 #define glUniform1iv GLEW_GET_FUN(__glewUniform1iv)
1949 #define glUniform2f GLEW_GET_FUN(__glewUniform2f)
1950 #define glUniform2fv GLEW_GET_FUN(__glewUniform2fv)
1951 #define glUniform2i GLEW_GET_FUN(__glewUniform2i)
1952 #define glUniform2iv GLEW_GET_FUN(__glewUniform2iv)
1953 #define glUniform3f GLEW_GET_FUN(__glewUniform3f)
1954 #define glUniform3fv GLEW_GET_FUN(__glewUniform3fv)
1955 #define glUniform3i GLEW_GET_FUN(__glewUniform3i)
1956 #define glUniform3iv GLEW_GET_FUN(__glewUniform3iv)
1957 #define glUniform4f GLEW_GET_FUN(__glewUniform4f)
1958 #define glUniform4fv GLEW_GET_FUN(__glewUniform4fv)
1959 #define glUniform4i GLEW_GET_FUN(__glewUniform4i)
1960 #define glUniform4iv GLEW_GET_FUN(__glewUniform4iv)
1961 #define glUniformMatrix2fv GLEW_GET_FUN(__glewUniformMatrix2fv)
1962 #define glUniformMatrix3fv GLEW_GET_FUN(__glewUniformMatrix3fv)
1963 #define glUniformMatrix4fv GLEW_GET_FUN(__glewUniformMatrix4fv)
1964 #define glUseProgram GLEW_GET_FUN(__glewUseProgram)
1965 #define glValidateProgram GLEW_GET_FUN(__glewValidateProgram)
1966 #define glVertexAttrib1d GLEW_GET_FUN(__glewVertexAttrib1d)
1967 #define glVertexAttrib1dv GLEW_GET_FUN(__glewVertexAttrib1dv)
1968 #define glVertexAttrib1f GLEW_GET_FUN(__glewVertexAttrib1f)
1969 #define glVertexAttrib1fv GLEW_GET_FUN(__glewVertexAttrib1fv)
1970 #define glVertexAttrib1s GLEW_GET_FUN(__glewVertexAttrib1s)
1971 #define glVertexAttrib1sv GLEW_GET_FUN(__glewVertexAttrib1sv)
1972 #define glVertexAttrib2d GLEW_GET_FUN(__glewVertexAttrib2d)
1973 #define glVertexAttrib2dv GLEW_GET_FUN(__glewVertexAttrib2dv)
1974 #define glVertexAttrib2f GLEW_GET_FUN(__glewVertexAttrib2f)
1975 #define glVertexAttrib2fv GLEW_GET_FUN(__glewVertexAttrib2fv)
1976 #define glVertexAttrib2s GLEW_GET_FUN(__glewVertexAttrib2s)
1977 #define glVertexAttrib2sv GLEW_GET_FUN(__glewVertexAttrib2sv)
1978 #define glVertexAttrib3d GLEW_GET_FUN(__glewVertexAttrib3d)
1979 #define glVertexAttrib3dv GLEW_GET_FUN(__glewVertexAttrib3dv)
1980 #define glVertexAttrib3f GLEW_GET_FUN(__glewVertexAttrib3f)
1981 #define glVertexAttrib3fv GLEW_GET_FUN(__glewVertexAttrib3fv)
1982 #define glVertexAttrib3s GLEW_GET_FUN(__glewVertexAttrib3s)
1983 #define glVertexAttrib3sv GLEW_GET_FUN(__glewVertexAttrib3sv)
1984 #define glVertexAttrib4Nbv GLEW_GET_FUN(__glewVertexAttrib4Nbv)
1985 #define glVertexAttrib4Niv GLEW_GET_FUN(__glewVertexAttrib4Niv)
1986 #define glVertexAttrib4Nsv GLEW_GET_FUN(__glewVertexAttrib4Nsv)
1987 #define glVertexAttrib4Nub GLEW_GET_FUN(__glewVertexAttrib4Nub)
1988 #define glVertexAttrib4Nubv GLEW_GET_FUN(__glewVertexAttrib4Nubv)
1989 #define glVertexAttrib4Nuiv GLEW_GET_FUN(__glewVertexAttrib4Nuiv)
1990 #define glVertexAttrib4Nusv GLEW_GET_FUN(__glewVertexAttrib4Nusv)
1991 #define glVertexAttrib4bv GLEW_GET_FUN(__glewVertexAttrib4bv)
1992 #define glVertexAttrib4d GLEW_GET_FUN(__glewVertexAttrib4d)
1993 #define glVertexAttrib4dv GLEW_GET_FUN(__glewVertexAttrib4dv)
1994 #define glVertexAttrib4f GLEW_GET_FUN(__glewVertexAttrib4f)
1995 #define glVertexAttrib4fv GLEW_GET_FUN(__glewVertexAttrib4fv)
1996 #define glVertexAttrib4iv GLEW_GET_FUN(__glewVertexAttrib4iv)
1997 #define glVertexAttrib4s GLEW_GET_FUN(__glewVertexAttrib4s)
1998 #define glVertexAttrib4sv GLEW_GET_FUN(__glewVertexAttrib4sv)
1999 #define glVertexAttrib4ubv GLEW_GET_FUN(__glewVertexAttrib4ubv)
2000 #define glVertexAttrib4uiv GLEW_GET_FUN(__glewVertexAttrib4uiv)
2001 #define glVertexAttrib4usv GLEW_GET_FUN(__glewVertexAttrib4usv)
2002 #define glVertexAttribPointer GLEW_GET_FUN(__glewVertexAttribPointer)
2003 
2004 #define GLEW_VERSION_2_0 GLEW_GET_VAR(__GLEW_VERSION_2_0)
2005 
2006 #endif /* GL_VERSION_2_0 */
2007 
2008 /* ----------------------------- GL_VERSION_2_1 ---------------------------- */
2009 
2010 #ifndef GL_VERSION_2_1
2011 #define GL_VERSION_2_1 1
2012 
2013 #define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F
2014 #define GL_PIXEL_PACK_BUFFER 0x88EB
2015 #define GL_PIXEL_UNPACK_BUFFER 0x88EC
2016 #define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
2017 #define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
2018 #define GL_FLOAT_MAT2x3 0x8B65
2019 #define GL_FLOAT_MAT2x4 0x8B66
2020 #define GL_FLOAT_MAT3x2 0x8B67
2021 #define GL_FLOAT_MAT3x4 0x8B68
2022 #define GL_FLOAT_MAT4x2 0x8B69
2023 #define GL_FLOAT_MAT4x3 0x8B6A
2024 #define GL_SRGB 0x8C40
2025 #define GL_SRGB8 0x8C41
2026 #define GL_SRGB_ALPHA 0x8C42
2027 #define GL_SRGB8_ALPHA8 0x8C43
2028 #define GL_SLUMINANCE_ALPHA 0x8C44
2029 #define GL_SLUMINANCE8_ALPHA8 0x8C45
2030 #define GL_SLUMINANCE 0x8C46
2031 #define GL_SLUMINANCE8 0x8C47
2032 #define GL_COMPRESSED_SRGB 0x8C48
2033 #define GL_COMPRESSED_SRGB_ALPHA 0x8C49
2034 #define GL_COMPRESSED_SLUMINANCE 0x8C4A
2035 #define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B
2036 
2037 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2038 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2039 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2040 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2041 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2042 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2043 
2044 #define glUniformMatrix2x3fv GLEW_GET_FUN(__glewUniformMatrix2x3fv)
2045 #define glUniformMatrix2x4fv GLEW_GET_FUN(__glewUniformMatrix2x4fv)
2046 #define glUniformMatrix3x2fv GLEW_GET_FUN(__glewUniformMatrix3x2fv)
2047 #define glUniformMatrix3x4fv GLEW_GET_FUN(__glewUniformMatrix3x4fv)
2048 #define glUniformMatrix4x2fv GLEW_GET_FUN(__glewUniformMatrix4x2fv)
2049 #define glUniformMatrix4x3fv GLEW_GET_FUN(__glewUniformMatrix4x3fv)
2050 
2051 #define GLEW_VERSION_2_1 GLEW_GET_VAR(__GLEW_VERSION_2_1)
2052 
2053 #endif /* GL_VERSION_2_1 */
2054 
2055 /* ----------------------------- GL_VERSION_3_0 ---------------------------- */
2056 
2057 #ifndef GL_VERSION_3_0
2058 #define GL_VERSION_3_0 1
2059 
2060 #define GL_CLIP_DISTANCE0 GL_CLIP_PLANE0
2061 #define GL_CLIP_DISTANCE1 GL_CLIP_PLANE1
2062 #define GL_CLIP_DISTANCE2 GL_CLIP_PLANE2
2063 #define GL_CLIP_DISTANCE3 GL_CLIP_PLANE3
2064 #define GL_CLIP_DISTANCE4 GL_CLIP_PLANE4
2065 #define GL_CLIP_DISTANCE5 GL_CLIP_PLANE5
2066 #define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB
2067 #define GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES
2068 #define GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS
2069 #define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001
2070 #define GL_MAJOR_VERSION 0x821B
2071 #define GL_MINOR_VERSION 0x821C
2072 #define GL_NUM_EXTENSIONS 0x821D
2073 #define GL_CONTEXT_FLAGS 0x821E
2074 #define GL_DEPTH_BUFFER 0x8223
2075 #define GL_STENCIL_BUFFER 0x8224
2076 #define GL_RGBA32F 0x8814
2077 #define GL_RGB32F 0x8815
2078 #define GL_RGBA16F 0x881A
2079 #define GL_RGB16F 0x881B
2080 #define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
2081 #define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
2082 #define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
2083 #define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
2084 #define GL_CLAMP_VERTEX_COLOR 0x891A
2085 #define GL_CLAMP_FRAGMENT_COLOR 0x891B
2086 #define GL_CLAMP_READ_COLOR 0x891C
2087 #define GL_FIXED_ONLY 0x891D
2088 #define GL_TEXTURE_RED_TYPE 0x8C10
2089 #define GL_TEXTURE_GREEN_TYPE 0x8C11
2090 #define GL_TEXTURE_BLUE_TYPE 0x8C12
2091 #define GL_TEXTURE_ALPHA_TYPE 0x8C13
2092 #define GL_TEXTURE_LUMINANCE_TYPE 0x8C14
2093 #define GL_TEXTURE_INTENSITY_TYPE 0x8C15
2094 #define GL_TEXTURE_DEPTH_TYPE 0x8C16
2095 #define GL_TEXTURE_1D_ARRAY 0x8C18
2096 #define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19
2097 #define GL_TEXTURE_2D_ARRAY 0x8C1A
2098 #define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B
2099 #define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
2100 #define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
2101 #define GL_R11F_G11F_B10F 0x8C3A
2102 #define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
2103 #define GL_RGB9_E5 0x8C3D
2104 #define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
2105 #define GL_TEXTURE_SHARED_SIZE 0x8C3F
2106 #define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
2107 #define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
2108 #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
2109 #define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
2110 #define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
2111 #define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
2112 #define GL_PRIMITIVES_GENERATED 0x8C87
2113 #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
2114 #define GL_RASTERIZER_DISCARD 0x8C89
2115 #define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
2116 #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
2117 #define GL_INTERLEAVED_ATTRIBS 0x8C8C
2118 #define GL_SEPARATE_ATTRIBS 0x8C8D
2119 #define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
2120 #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
2121 #define GL_RGBA32UI 0x8D70
2122 #define GL_RGB32UI 0x8D71
2123 #define GL_RGBA16UI 0x8D76
2124 #define GL_RGB16UI 0x8D77
2125 #define GL_RGBA8UI 0x8D7C
2126 #define GL_RGB8UI 0x8D7D
2127 #define GL_RGBA32I 0x8D82
2128 #define GL_RGB32I 0x8D83
2129 #define GL_RGBA16I 0x8D88
2130 #define GL_RGB16I 0x8D89
2131 #define GL_RGBA8I 0x8D8E
2132 #define GL_RGB8I 0x8D8F
2133 #define GL_RED_INTEGER 0x8D94
2134 #define GL_GREEN_INTEGER 0x8D95
2135 #define GL_BLUE_INTEGER 0x8D96
2136 #define GL_ALPHA_INTEGER 0x8D97
2137 #define GL_RGB_INTEGER 0x8D98
2138 #define GL_RGBA_INTEGER 0x8D99
2139 #define GL_BGR_INTEGER 0x8D9A
2140 #define GL_BGRA_INTEGER 0x8D9B
2141 #define GL_SAMPLER_1D_ARRAY 0x8DC0
2142 #define GL_SAMPLER_2D_ARRAY 0x8DC1
2143 #define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
2144 #define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
2145 #define GL_SAMPLER_CUBE_SHADOW 0x8DC5
2146 #define GL_UNSIGNED_INT_VEC2 0x8DC6
2147 #define GL_UNSIGNED_INT_VEC3 0x8DC7
2148 #define GL_UNSIGNED_INT_VEC4 0x8DC8
2149 #define GL_INT_SAMPLER_1D 0x8DC9
2150 #define GL_INT_SAMPLER_2D 0x8DCA
2151 #define GL_INT_SAMPLER_3D 0x8DCB
2152 #define GL_INT_SAMPLER_CUBE 0x8DCC
2153 #define GL_INT_SAMPLER_1D_ARRAY 0x8DCE
2154 #define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
2155 #define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
2156 #define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
2157 #define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
2158 #define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
2159 #define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
2160 #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
2161 #define GL_QUERY_WAIT 0x8E13
2162 #define GL_QUERY_NO_WAIT 0x8E14
2163 #define GL_QUERY_BY_REGION_WAIT 0x8E15
2164 #define GL_QUERY_BY_REGION_NO_WAIT 0x8E16
2165 
2166 typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode);
2167 typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode);
2168 typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint colorNumber, const GLchar* name);
2169 typedef void (GLAPIENTRY * PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp);
2170 typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil);
2171 typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawBuffer, const GLfloat* value);
2172 typedef void (GLAPIENTRY * PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawBuffer, const GLint* value);
2173 typedef void (GLAPIENTRY * PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawBuffer, const GLuint* value);
2174 typedef void (GLAPIENTRY * PFNGLCOLORMASKIPROC) (GLuint buf, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
2175 typedef void (GLAPIENTRY * PFNGLDISABLEIPROC) (GLenum cap, GLuint index);
2176 typedef void (GLAPIENTRY * PFNGLENABLEIPROC) (GLenum cap, GLuint index);
2177 typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERPROC) (void);
2178 typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKPROC) (void);
2179 typedef void (GLAPIENTRY * PFNGLGETBOOLEANI_VPROC) (GLenum pname, GLuint index, GLboolean* data);
2180 typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar* name);
2181 typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGIPROC) (GLenum name, GLuint index);
2182 typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint* params);
2183 typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint* params);
2184 typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name);
2185 typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint* params);
2186 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint* params);
2187 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint* params);
2188 typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIPROC) (GLenum cap, GLuint index);
2189 typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint* params);
2190 typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint* params);
2191 typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode);
2192 typedef void (GLAPIENTRY * PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0);
2193 typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint* value);
2194 typedef void (GLAPIENTRY * PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1);
2195 typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint* value);
2196 typedef void (GLAPIENTRY * PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
2197 typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint* value);
2198 typedef void (GLAPIENTRY * PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
2199 typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint* value);
2200 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint v0);
2201 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint* v0);
2202 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint v0);
2203 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint* v0);
2204 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint v0, GLint v1);
2205 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint* v0);
2206 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint v0, GLuint v1);
2207 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint* v0);
2208 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint v0, GLint v1, GLint v2);
2209 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint* v0);
2210 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint v0, GLuint v1, GLuint v2);
2211 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint* v0);
2212 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte* v0);
2213 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint v0, GLint v1, GLint v2, GLint v3);
2214 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint* v0);
2215 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort* v0);
2216 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte* v0);
2217 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
2218 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint* v0);
2219 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort* v0);
2220 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void*pointer);
2221 
2222 #define glBeginConditionalRender GLEW_GET_FUN(__glewBeginConditionalRender)
2223 #define glBeginTransformFeedback GLEW_GET_FUN(__glewBeginTransformFeedback)
2224 #define glBindFragDataLocation GLEW_GET_FUN(__glewBindFragDataLocation)
2225 #define glClampColor GLEW_GET_FUN(__glewClampColor)
2226 #define glClearBufferfi GLEW_GET_FUN(__glewClearBufferfi)
2227 #define glClearBufferfv GLEW_GET_FUN(__glewClearBufferfv)
2228 #define glClearBufferiv GLEW_GET_FUN(__glewClearBufferiv)
2229 #define glClearBufferuiv GLEW_GET_FUN(__glewClearBufferuiv)
2230 #define glColorMaski GLEW_GET_FUN(__glewColorMaski)
2231 #define glDisablei GLEW_GET_FUN(__glewDisablei)
2232 #define glEnablei GLEW_GET_FUN(__glewEnablei)
2233 #define glEndConditionalRender GLEW_GET_FUN(__glewEndConditionalRender)
2234 #define glEndTransformFeedback GLEW_GET_FUN(__glewEndTransformFeedback)
2235 #define glGetBooleani_v GLEW_GET_FUN(__glewGetBooleani_v)
2236 #define glGetFragDataLocation GLEW_GET_FUN(__glewGetFragDataLocation)
2237 #define glGetStringi GLEW_GET_FUN(__glewGetStringi)
2238 #define glGetTexParameterIiv GLEW_GET_FUN(__glewGetTexParameterIiv)
2239 #define glGetTexParameterIuiv GLEW_GET_FUN(__glewGetTexParameterIuiv)
2240 #define glGetTransformFeedbackVarying GLEW_GET_FUN(__glewGetTransformFeedbackVarying)
2241 #define glGetUniformuiv GLEW_GET_FUN(__glewGetUniformuiv)
2242 #define glGetVertexAttribIiv GLEW_GET_FUN(__glewGetVertexAttribIiv)
2243 #define glGetVertexAttribIuiv GLEW_GET_FUN(__glewGetVertexAttribIuiv)
2244 #define glIsEnabledi GLEW_GET_FUN(__glewIsEnabledi)
2245 #define glTexParameterIiv GLEW_GET_FUN(__glewTexParameterIiv)
2246 #define glTexParameterIuiv GLEW_GET_FUN(__glewTexParameterIuiv)
2247 #define glTransformFeedbackVaryings GLEW_GET_FUN(__glewTransformFeedbackVaryings)
2248 #define glUniform1ui GLEW_GET_FUN(__glewUniform1ui)
2249 #define glUniform1uiv GLEW_GET_FUN(__glewUniform1uiv)
2250 #define glUniform2ui GLEW_GET_FUN(__glewUniform2ui)
2251 #define glUniform2uiv GLEW_GET_FUN(__glewUniform2uiv)
2252 #define glUniform3ui GLEW_GET_FUN(__glewUniform3ui)
2253 #define glUniform3uiv GLEW_GET_FUN(__glewUniform3uiv)
2254 #define glUniform4ui GLEW_GET_FUN(__glewUniform4ui)
2255 #define glUniform4uiv GLEW_GET_FUN(__glewUniform4uiv)
2256 #define glVertexAttribI1i GLEW_GET_FUN(__glewVertexAttribI1i)
2257 #define glVertexAttribI1iv GLEW_GET_FUN(__glewVertexAttribI1iv)
2258 #define glVertexAttribI1ui GLEW_GET_FUN(__glewVertexAttribI1ui)
2259 #define glVertexAttribI1uiv GLEW_GET_FUN(__glewVertexAttribI1uiv)
2260 #define glVertexAttribI2i GLEW_GET_FUN(__glewVertexAttribI2i)
2261 #define glVertexAttribI2iv GLEW_GET_FUN(__glewVertexAttribI2iv)
2262 #define glVertexAttribI2ui GLEW_GET_FUN(__glewVertexAttribI2ui)
2263 #define glVertexAttribI2uiv GLEW_GET_FUN(__glewVertexAttribI2uiv)
2264 #define glVertexAttribI3i GLEW_GET_FUN(__glewVertexAttribI3i)
2265 #define glVertexAttribI3iv GLEW_GET_FUN(__glewVertexAttribI3iv)
2266 #define glVertexAttribI3ui GLEW_GET_FUN(__glewVertexAttribI3ui)
2267 #define glVertexAttribI3uiv GLEW_GET_FUN(__glewVertexAttribI3uiv)
2268 #define glVertexAttribI4bv GLEW_GET_FUN(__glewVertexAttribI4bv)
2269 #define glVertexAttribI4i GLEW_GET_FUN(__glewVertexAttribI4i)
2270 #define glVertexAttribI4iv GLEW_GET_FUN(__glewVertexAttribI4iv)
2271 #define glVertexAttribI4sv GLEW_GET_FUN(__glewVertexAttribI4sv)
2272 #define glVertexAttribI4ubv GLEW_GET_FUN(__glewVertexAttribI4ubv)
2273 #define glVertexAttribI4ui GLEW_GET_FUN(__glewVertexAttribI4ui)
2274 #define glVertexAttribI4uiv GLEW_GET_FUN(__glewVertexAttribI4uiv)
2275 #define glVertexAttribI4usv GLEW_GET_FUN(__glewVertexAttribI4usv)
2276 #define glVertexAttribIPointer GLEW_GET_FUN(__glewVertexAttribIPointer)
2277 
2278 #define GLEW_VERSION_3_0 GLEW_GET_VAR(__GLEW_VERSION_3_0)
2279 
2280 #endif /* GL_VERSION_3_0 */
2281 
2282 /* ----------------------------- GL_VERSION_3_1 ---------------------------- */
2283 
2284 #ifndef GL_VERSION_3_1
2285 #define GL_VERSION_3_1 1
2286 
2287 #define GL_TEXTURE_RECTANGLE 0x84F5
2288 #define GL_TEXTURE_BINDING_RECTANGLE 0x84F6
2289 #define GL_PROXY_TEXTURE_RECTANGLE 0x84F7
2290 #define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8
2291 #define GL_SAMPLER_2D_RECT 0x8B63
2292 #define GL_SAMPLER_2D_RECT_SHADOW 0x8B64
2293 #define GL_TEXTURE_BUFFER 0x8C2A
2294 #define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B
2295 #define GL_TEXTURE_BINDING_BUFFER 0x8C2C
2296 #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D
2297 #define GL_TEXTURE_BUFFER_FORMAT 0x8C2E
2298 #define GL_SAMPLER_BUFFER 0x8DC2
2299 #define GL_INT_SAMPLER_2D_RECT 0x8DCD
2300 #define GL_INT_SAMPLER_BUFFER 0x8DD0
2301 #define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5
2302 #define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
2303 #define GL_RED_SNORM 0x8F90
2304 #define GL_RG_SNORM 0x8F91
2305 #define GL_RGB_SNORM 0x8F92
2306 #define GL_RGBA_SNORM 0x8F93
2307 #define GL_R8_SNORM 0x8F94
2308 #define GL_RG8_SNORM 0x8F95
2309 #define GL_RGB8_SNORM 0x8F96
2310 #define GL_RGBA8_SNORM 0x8F97
2311 #define GL_R16_SNORM 0x8F98
2312 #define GL_RG16_SNORM 0x8F99
2313 #define GL_RGB16_SNORM 0x8F9A
2314 #define GL_RGBA16_SNORM 0x8F9B
2315 #define GL_SIGNED_NORMALIZED 0x8F9C
2316 #define GL_PRIMITIVE_RESTART 0x8F9D
2317 #define GL_PRIMITIVE_RESTART_INDEX 0x8F9E
2318 #define GL_BUFFER_ACCESS_FLAGS 0x911F
2319 #define GL_BUFFER_MAP_LENGTH 0x9120
2320 #define GL_BUFFER_MAP_OFFSET 0x9121
2321 
2322 typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
2323 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount);
2324 typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint buffer);
2325 typedef void (GLAPIENTRY * PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalFormat, GLuint buffer);
2326 
2327 #define glDrawArraysInstanced GLEW_GET_FUN(__glewDrawArraysInstanced)
2328 #define glDrawElementsInstanced GLEW_GET_FUN(__glewDrawElementsInstanced)
2329 #define glPrimitiveRestartIndex GLEW_GET_FUN(__glewPrimitiveRestartIndex)
2330 #define glTexBuffer GLEW_GET_FUN(__glewTexBuffer)
2331 
2332 #define GLEW_VERSION_3_1 GLEW_GET_VAR(__GLEW_VERSION_3_1)
2333 
2334 #endif /* GL_VERSION_3_1 */
2335 
2336 /* ----------------------------- GL_VERSION_3_2 ---------------------------- */
2337 
2338 #ifndef GL_VERSION_3_2
2339 #define GL_VERSION_3_2 1
2340 
2341 #define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
2342 #define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
2343 #define GL_LINES_ADJACENCY 0x000A
2344 #define GL_LINE_STRIP_ADJACENCY 0x000B
2345 #define GL_TRIANGLES_ADJACENCY 0x000C
2346 #define GL_TRIANGLE_STRIP_ADJACENCY 0x000D
2347 #define GL_PROGRAM_POINT_SIZE 0x8642
2348 #define GL_GEOMETRY_VERTICES_OUT 0x8916
2349 #define GL_GEOMETRY_INPUT_TYPE 0x8917
2350 #define GL_GEOMETRY_OUTPUT_TYPE 0x8918
2351 #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
2352 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
2353 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
2354 #define GL_GEOMETRY_SHADER 0x8DD9
2355 #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
2356 #define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
2357 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
2358 #define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
2359 #define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
2360 #define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
2361 #define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
2362 #define GL_CONTEXT_PROFILE_MASK 0x9126
2363 
2364 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
2365 typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum value, GLint64 * data);
2366 typedef void (GLAPIENTRY * PFNGLGETINTEGER64I_VPROC) (GLenum pname, GLuint index, GLint64 * data);
2367 
2368 #define glFramebufferTexture GLEW_GET_FUN(__glewFramebufferTexture)
2369 #define glGetBufferParameteri64v GLEW_GET_FUN(__glewGetBufferParameteri64v)
2370 #define glGetInteger64i_v GLEW_GET_FUN(__glewGetInteger64i_v)
2371 
2372 #define GLEW_VERSION_3_2 GLEW_GET_VAR(__GLEW_VERSION_3_2)
2373 
2374 #endif /* GL_VERSION_3_2 */
2375 
2376 /* ----------------------------- GL_VERSION_3_3 ---------------------------- */
2377 
2378 #ifndef GL_VERSION_3_3
2379 #define GL_VERSION_3_3 1
2380 
2381 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
2382 #define GL_RGB10_A2UI 0x906F
2383 
2384 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor);
2385 
2386 #define glVertexAttribDivisor GLEW_GET_FUN(__glewVertexAttribDivisor)
2387 
2388 #define GLEW_VERSION_3_3 GLEW_GET_VAR(__GLEW_VERSION_3_3)
2389 
2390 #endif /* GL_VERSION_3_3 */
2391 
2392 /* ----------------------------- GL_VERSION_4_0 ---------------------------- */
2393 
2394 #ifndef GL_VERSION_4_0
2395 #define GL_VERSION_4_0 1
2396 
2397 #define GL_SAMPLE_SHADING 0x8C36
2398 #define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37
2399 #define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E
2400 #define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F
2401 #define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS 0x8F9F
2402 #define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009
2403 #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A
2404 #define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B
2405 #define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C
2406 #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D
2407 #define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E
2408 #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F
2409 
2410 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
2411 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode);
2412 typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
2413 typedef void (GLAPIENTRY * PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst);
2414 typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGPROC) (GLclampf value);
2415 
2416 #define glBlendEquationSeparatei GLEW_GET_FUN(__glewBlendEquationSeparatei)
2417 #define glBlendEquationi GLEW_GET_FUN(__glewBlendEquationi)
2418 #define glBlendFuncSeparatei GLEW_GET_FUN(__glewBlendFuncSeparatei)
2419 #define glBlendFunci GLEW_GET_FUN(__glewBlendFunci)
2420 #define glMinSampleShading GLEW_GET_FUN(__glewMinSampleShading)
2421 
2422 #define GLEW_VERSION_4_0 GLEW_GET_VAR(__GLEW_VERSION_4_0)
2423 
2424 #endif /* GL_VERSION_4_0 */
2425 
2426 /* ----------------------------- GL_VERSION_4_1 ---------------------------- */
2427 
2428 #ifndef GL_VERSION_4_1
2429 #define GL_VERSION_4_1 1
2430 
2431 #define GLEW_VERSION_4_1 GLEW_GET_VAR(__GLEW_VERSION_4_1)
2432 
2433 #endif /* GL_VERSION_4_1 */
2434 
2435 /* ----------------------------- GL_VERSION_4_2 ---------------------------- */
2436 
2437 #ifndef GL_VERSION_4_2
2438 #define GL_VERSION_4_2 1
2439 
2440 #define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
2441 #define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
2442 #define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C
2443 #define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D
2444 #define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E
2445 #define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F
2446 #define GL_COPY_READ_BUFFER_BINDING 0x8F36
2447 #define GL_COPY_WRITE_BUFFER_BINDING 0x8F37
2448 
2449 #define GLEW_VERSION_4_2 GLEW_GET_VAR(__GLEW_VERSION_4_2)
2450 
2451 #endif /* GL_VERSION_4_2 */
2452 
2453 /* ----------------------------- GL_VERSION_4_3 ---------------------------- */
2454 
2455 #ifndef GL_VERSION_4_3
2456 #define GL_VERSION_4_3 1
2457 
2458 #define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9
2459 #define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E
2460 
2461 #define GLEW_VERSION_4_3 GLEW_GET_VAR(__GLEW_VERSION_4_3)
2462 
2463 #endif /* GL_VERSION_4_3 */
2464 
2465 /* ----------------------------- GL_VERSION_4_4 ---------------------------- */
2466 
2467 #ifndef GL_VERSION_4_4
2468 #define GL_VERSION_4_4 1
2469 
2470 #define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221
2471 #define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5
2472 #define GL_TEXTURE_BUFFER_BINDING 0x8C2A
2473 
2474 #define GLEW_VERSION_4_4 GLEW_GET_VAR(__GLEW_VERSION_4_4)
2475 
2476 #endif /* GL_VERSION_4_4 */
2477 
2478 /* ----------------------------- GL_VERSION_4_5 ---------------------------- */
2479 
2480 #ifndef GL_VERSION_4_5
2481 #define GL_VERSION_4_5 1
2482 
2483 #define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004
2484 
2485 typedef GLenum (GLAPIENTRY * PFNGLGETGRAPHICSRESETSTATUSPROC) (void);
2486 typedef void (GLAPIENTRY * PFNGLGETNCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, GLsizei bufSize, GLvoid *pixels);
2487 typedef void (GLAPIENTRY * PFNGLGETNTEXIMAGEPROC) (GLenum tex, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *pixels);
2488 typedef void (GLAPIENTRY * PFNGLGETNUNIFORMDVPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
2489 
2490 #define glGetGraphicsResetStatus GLEW_GET_FUN(__glewGetGraphicsResetStatus)
2491 #define glGetnCompressedTexImage GLEW_GET_FUN(__glewGetnCompressedTexImage)
2492 #define glGetnTexImage GLEW_GET_FUN(__glewGetnTexImage)
2493 #define glGetnUniformdv GLEW_GET_FUN(__glewGetnUniformdv)
2494 
2495 #define GLEW_VERSION_4_5 GLEW_GET_VAR(__GLEW_VERSION_4_5)
2496 
2497 #endif /* GL_VERSION_4_5 */
2498 
2499 /* ----------------------------- GL_VERSION_4_6 ---------------------------- */
2500 
2501 #ifndef GL_VERSION_4_6
2502 #define GL_VERSION_4_6 1
2503 
2504 #define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008
2505 #define GL_PARAMETER_BUFFER 0x80EE
2506 #define GL_PARAMETER_BUFFER_BINDING 0x80EF
2507 #define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC
2508 #define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED
2509 #define GL_VERTICES_SUBMITTED 0x82EE
2510 #define GL_PRIMITIVES_SUBMITTED 0x82EF
2511 #define GL_VERTEX_SHADER_INVOCATIONS 0x82F0
2512 #define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1
2513 #define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2
2514 #define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3
2515 #define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4
2516 #define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5
2517 #define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6
2518 #define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7
2519 #define GL_TEXTURE_MAX_ANISOTROPY 0x84FE
2520 #define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF
2521 #define GL_POLYGON_OFFSET_CLAMP 0x8E1B
2522 #define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551
2523 #define GL_SPIR_V_BINARY 0x9552
2524 #define GL_SPIR_V_EXTENSIONS 0x9553
2525 #define GL_NUM_SPIR_V_EXTENSIONS 0x9554
2526 
2527 typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC) (GLenum mode, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
2528 typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC) (GLenum mode, GLenum type, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
2529 typedef void (GLAPIENTRY * PFNGLSPECIALIZESHADERPROC) (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue);
2530 
2531 #define glMultiDrawArraysIndirectCount GLEW_GET_FUN(__glewMultiDrawArraysIndirectCount)
2532 #define glMultiDrawElementsIndirectCount GLEW_GET_FUN(__glewMultiDrawElementsIndirectCount)
2533 #define glSpecializeShader GLEW_GET_FUN(__glewSpecializeShader)
2534 
2535 #define GLEW_VERSION_4_6 GLEW_GET_VAR(__GLEW_VERSION_4_6)
2536 
2537 #endif /* GL_VERSION_4_6 */
2538 
2539 /* -------------------------- GL_3DFX_multisample -------------------------- */
2540 
2541 #ifndef GL_3DFX_multisample
2542 #define GL_3DFX_multisample 1
2543 
2544 #define GL_MULTISAMPLE_3DFX 0x86B2
2545 #define GL_SAMPLE_BUFFERS_3DFX 0x86B3
2546 #define GL_SAMPLES_3DFX 0x86B4
2547 #define GL_MULTISAMPLE_BIT_3DFX 0x20000000
2548 
2549 #define GLEW_3DFX_multisample GLEW_GET_VAR(__GLEW_3DFX_multisample)
2550 
2551 #endif /* GL_3DFX_multisample */
2552 
2553 /* ---------------------------- GL_3DFX_tbuffer ---------------------------- */
2554 
2555 #ifndef GL_3DFX_tbuffer
2556 #define GL_3DFX_tbuffer 1
2557 
2558 typedef void (GLAPIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask);
2559 
2560 #define glTbufferMask3DFX GLEW_GET_FUN(__glewTbufferMask3DFX)
2561 
2562 #define GLEW_3DFX_tbuffer GLEW_GET_VAR(__GLEW_3DFX_tbuffer)
2563 
2564 #endif /* GL_3DFX_tbuffer */
2565 
2566 /* -------------------- GL_3DFX_texture_compression_FXT1 ------------------- */
2567 
2568 #ifndef GL_3DFX_texture_compression_FXT1
2569 #define GL_3DFX_texture_compression_FXT1 1
2570 
2571 #define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0
2572 #define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1
2573 
2574 #define GLEW_3DFX_texture_compression_FXT1 GLEW_GET_VAR(__GLEW_3DFX_texture_compression_FXT1)
2575 
2576 #endif /* GL_3DFX_texture_compression_FXT1 */
2577 
2578 /* ----------------------- GL_AMD_blend_minmax_factor ---------------------- */
2579 
2580 #ifndef GL_AMD_blend_minmax_factor
2581 #define GL_AMD_blend_minmax_factor 1
2582 
2583 #define GL_FACTOR_MIN_AMD 0x901C
2584 #define GL_FACTOR_MAX_AMD 0x901D
2585 
2586 #define GLEW_AMD_blend_minmax_factor GLEW_GET_VAR(__GLEW_AMD_blend_minmax_factor)
2587 
2588 #endif /* GL_AMD_blend_minmax_factor */
2589 
2590 /* --------------------- GL_AMD_compressed_3DC_texture --------------------- */
2591 
2592 #ifndef GL_AMD_compressed_3DC_texture
2593 #define GL_AMD_compressed_3DC_texture 1
2594 
2595 #define GL_3DC_X_AMD 0x87F9
2596 #define GL_3DC_XY_AMD 0x87FA
2597 
2598 #define GLEW_AMD_compressed_3DC_texture GLEW_GET_VAR(__GLEW_AMD_compressed_3DC_texture)
2599 
2600 #endif /* GL_AMD_compressed_3DC_texture */
2601 
2602 /* --------------------- GL_AMD_compressed_ATC_texture --------------------- */
2603 
2604 #ifndef GL_AMD_compressed_ATC_texture
2605 #define GL_AMD_compressed_ATC_texture 1
2606 
2607 #define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE
2608 #define GL_ATC_RGB_AMD 0x8C92
2609 #define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93
2610 
2611 #define GLEW_AMD_compressed_ATC_texture GLEW_GET_VAR(__GLEW_AMD_compressed_ATC_texture)
2612 
2613 #endif /* GL_AMD_compressed_ATC_texture */
2614 
2615 /* ----------------------- GL_AMD_conservative_depth ----------------------- */
2616 
2617 #ifndef GL_AMD_conservative_depth
2618 #define GL_AMD_conservative_depth 1
2619 
2620 #define GLEW_AMD_conservative_depth GLEW_GET_VAR(__GLEW_AMD_conservative_depth)
2621 
2622 #endif /* GL_AMD_conservative_depth */
2623 
2624 /* -------------------------- GL_AMD_debug_output -------------------------- */
2625 
2626 #ifndef GL_AMD_debug_output
2627 #define GL_AMD_debug_output 1
2628 
2629 #define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143
2630 #define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144
2631 #define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145
2632 #define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146
2633 #define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147
2634 #define GL_DEBUG_SEVERITY_LOW_AMD 0x9148
2635 #define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149
2636 #define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A
2637 #define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B
2638 #define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C
2639 #define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D
2640 #define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E
2641 #define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F
2642 #define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150
2643 
2644 typedef void (GLAPIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, void* userParam);
2645 
2646 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void *userParam);
2647 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
2648 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar* buf);
2649 typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum* categories, GLuint* severities, GLuint* ids, GLsizei* lengths, GLchar* message);
2650 
2651 #define glDebugMessageCallbackAMD GLEW_GET_FUN(__glewDebugMessageCallbackAMD)
2652 #define glDebugMessageEnableAMD GLEW_GET_FUN(__glewDebugMessageEnableAMD)
2653 #define glDebugMessageInsertAMD GLEW_GET_FUN(__glewDebugMessageInsertAMD)
2654 #define glGetDebugMessageLogAMD GLEW_GET_FUN(__glewGetDebugMessageLogAMD)
2655 
2656 #define GLEW_AMD_debug_output GLEW_GET_VAR(__GLEW_AMD_debug_output)
2657 
2658 #endif /* GL_AMD_debug_output */
2659 
2660 /* ---------------------- GL_AMD_depth_clamp_separate ---------------------- */
2661 
2662 #ifndef GL_AMD_depth_clamp_separate
2663 #define GL_AMD_depth_clamp_separate 1
2664 
2665 #define GL_DEPTH_CLAMP_NEAR_AMD 0x901E
2666 #define GL_DEPTH_CLAMP_FAR_AMD 0x901F
2667 
2668 #define GLEW_AMD_depth_clamp_separate GLEW_GET_VAR(__GLEW_AMD_depth_clamp_separate)
2669 
2670 #endif /* GL_AMD_depth_clamp_separate */
2671 
2672 /* ----------------------- GL_AMD_draw_buffers_blend ----------------------- */
2673 
2674 #ifndef GL_AMD_draw_buffers_blend
2675 #define GL_AMD_draw_buffers_blend 1
2676 
2677 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode);
2678 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
2679 typedef void (GLAPIENTRY * PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst);
2680 typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
2681 
2682 #define glBlendEquationIndexedAMD GLEW_GET_FUN(__glewBlendEquationIndexedAMD)
2683 #define glBlendEquationSeparateIndexedAMD GLEW_GET_FUN(__glewBlendEquationSeparateIndexedAMD)
2684 #define glBlendFuncIndexedAMD GLEW_GET_FUN(__glewBlendFuncIndexedAMD)
2685 #define glBlendFuncSeparateIndexedAMD GLEW_GET_FUN(__glewBlendFuncSeparateIndexedAMD)
2686 
2687 #define GLEW_AMD_draw_buffers_blend GLEW_GET_VAR(__GLEW_AMD_draw_buffers_blend)
2688 
2689 #endif /* GL_AMD_draw_buffers_blend */
2690 
2691 /* ------------------ GL_AMD_framebuffer_sample_positions ------------------ */
2692 
2693 #ifndef GL_AMD_framebuffer_sample_positions
2694 #define GL_AMD_framebuffer_sample_positions 1
2695 
2696 #define GL_SUBSAMPLE_DISTANCE_AMD 0x883F
2697 #define GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD 0x91AE
2698 #define GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD 0x91AF
2699 #define GL_ALL_PIXELS_AMD 0xFFFFFFFF
2700 
2701 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat* values);
2702 typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC) (GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat* values);
2703 typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC) (GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat* values);
2704 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat* values);
2705 
2706 #define glFramebufferSamplePositionsfvAMD GLEW_GET_FUN(__glewFramebufferSamplePositionsfvAMD)
2707 #define glGetFramebufferParameterfvAMD GLEW_GET_FUN(__glewGetFramebufferParameterfvAMD)
2708 #define glGetNamedFramebufferParameterfvAMD GLEW_GET_FUN(__glewGetNamedFramebufferParameterfvAMD)
2709 #define glNamedFramebufferSamplePositionsfvAMD GLEW_GET_FUN(__glewNamedFramebufferSamplePositionsfvAMD)
2710 
2711 #define GLEW_AMD_framebuffer_sample_positions GLEW_GET_VAR(__GLEW_AMD_framebuffer_sample_positions)
2712 
2713 #endif /* GL_AMD_framebuffer_sample_positions */
2714 
2715 /* --------------------------- GL_AMD_gcn_shader --------------------------- */
2716 
2717 #ifndef GL_AMD_gcn_shader
2718 #define GL_AMD_gcn_shader 1
2719 
2720 #define GLEW_AMD_gcn_shader GLEW_GET_VAR(__GLEW_AMD_gcn_shader)
2721 
2722 #endif /* GL_AMD_gcn_shader */
2723 
2724 /* ---------------------- GL_AMD_gpu_shader_half_float --------------------- */
2725 
2726 #ifndef GL_AMD_gpu_shader_half_float
2727 #define GL_AMD_gpu_shader_half_float 1
2728 
2729 #define GL_FLOAT16_NV 0x8FF8
2730 #define GL_FLOAT16_VEC2_NV 0x8FF9
2731 #define GL_FLOAT16_VEC3_NV 0x8FFA
2732 #define GL_FLOAT16_VEC4_NV 0x8FFB
2733 #define GL_FLOAT16_MAT2_AMD 0x91C5
2734 #define GL_FLOAT16_MAT3_AMD 0x91C6
2735 #define GL_FLOAT16_MAT4_AMD 0x91C7
2736 #define GL_FLOAT16_MAT2x3_AMD 0x91C8
2737 #define GL_FLOAT16_MAT2x4_AMD 0x91C9
2738 #define GL_FLOAT16_MAT3x2_AMD 0x91CA
2739 #define GL_FLOAT16_MAT3x4_AMD 0x91CB
2740 #define GL_FLOAT16_MAT4x2_AMD 0x91CC
2741 #define GL_FLOAT16_MAT4x3_AMD 0x91CD
2742 
2743 #define GLEW_AMD_gpu_shader_half_float GLEW_GET_VAR(__GLEW_AMD_gpu_shader_half_float)
2744 
2745 #endif /* GL_AMD_gpu_shader_half_float */
2746 
2747 /* ------------------------ GL_AMD_gpu_shader_int16 ------------------------ */
2748 
2749 #ifndef GL_AMD_gpu_shader_int16
2750 #define GL_AMD_gpu_shader_int16 1
2751 
2752 #define GLEW_AMD_gpu_shader_int16 GLEW_GET_VAR(__GLEW_AMD_gpu_shader_int16)
2753 
2754 #endif /* GL_AMD_gpu_shader_int16 */
2755 
2756 /* ------------------------ GL_AMD_gpu_shader_int64 ------------------------ */
2757 
2758 #ifndef GL_AMD_gpu_shader_int64
2759 #define GL_AMD_gpu_shader_int64 1
2760 
2761 #define GLEW_AMD_gpu_shader_int64 GLEW_GET_VAR(__GLEW_AMD_gpu_shader_int64)
2762 
2763 #endif /* GL_AMD_gpu_shader_int64 */
2764 
2765 /* ---------------------- GL_AMD_interleaved_elements ---------------------- */
2766 
2767 #ifndef GL_AMD_interleaved_elements
2768 #define GL_AMD_interleaved_elements 1
2769 
2770 #define GL_RED 0x1903
2771 #define GL_GREEN 0x1904
2772 #define GL_BLUE 0x1905
2773 #define GL_ALPHA 0x1906
2774 #define GL_RG8UI 0x8238
2775 #define GL_RG16UI 0x823A
2776 #define GL_RGBA8UI 0x8D7C
2777 #define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4
2778 #define GL_VERTEX_ID_SWIZZLE_AMD 0x91A5
2779 
2780 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPARAMETERIAMDPROC) (GLuint index, GLenum pname, GLint param);
2781 
2782 #define glVertexAttribParameteriAMD GLEW_GET_FUN(__glewVertexAttribParameteriAMD)
2783 
2784 #define GLEW_AMD_interleaved_elements GLEW_GET_VAR(__GLEW_AMD_interleaved_elements)
2785 
2786 #endif /* GL_AMD_interleaved_elements */
2787 
2788 /* ----------------------- GL_AMD_multi_draw_indirect ---------------------- */
2789 
2790 #ifndef GL_AMD_multi_draw_indirect
2791 #define GL_AMD_multi_draw_indirect 1
2792 
2793 typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride);
2794 typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride);
2795 
2796 #define glMultiDrawArraysIndirectAMD GLEW_GET_FUN(__glewMultiDrawArraysIndirectAMD)
2797 #define glMultiDrawElementsIndirectAMD GLEW_GET_FUN(__glewMultiDrawElementsIndirectAMD)
2798 
2799 #define GLEW_AMD_multi_draw_indirect GLEW_GET_VAR(__GLEW_AMD_multi_draw_indirect)
2800 
2801 #endif /* GL_AMD_multi_draw_indirect */
2802 
2803 /* ------------------------- GL_AMD_name_gen_delete ------------------------ */
2804 
2805 #ifndef GL_AMD_name_gen_delete
2806 #define GL_AMD_name_gen_delete 1
2807 
2808 #define GL_DATA_BUFFER_AMD 0x9151
2809 #define GL_PERFORMANCE_MONITOR_AMD 0x9152
2810 #define GL_QUERY_OBJECT_AMD 0x9153
2811 #define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154
2812 #define GL_SAMPLER_OBJECT_AMD 0x9155
2813 
2814 typedef void (GLAPIENTRY * PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint* names);
2815 typedef void (GLAPIENTRY * PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint* names);
2816 typedef GLboolean (GLAPIENTRY * PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name);
2817 
2818 #define glDeleteNamesAMD GLEW_GET_FUN(__glewDeleteNamesAMD)
2819 #define glGenNamesAMD GLEW_GET_FUN(__glewGenNamesAMD)
2820 #define glIsNameAMD GLEW_GET_FUN(__glewIsNameAMD)
2821 
2822 #define GLEW_AMD_name_gen_delete GLEW_GET_VAR(__GLEW_AMD_name_gen_delete)
2823 
2824 #endif /* GL_AMD_name_gen_delete */
2825 
2826 /* ---------------------- GL_AMD_occlusion_query_event --------------------- */
2827 
2828 #ifndef GL_AMD_occlusion_query_event
2829 #define GL_AMD_occlusion_query_event 1
2830 
2831 #define GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD 0x00000001
2832 #define GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD 0x00000002
2833 #define GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD 0x00000004
2834 #define GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD 0x00000008
2835 #define GL_OCCLUSION_QUERY_EVENT_MASK_AMD 0x874F
2836 #define GL_QUERY_ALL_EVENT_BITS_AMD 0xFFFFFFFF
2837 
2838 typedef void (GLAPIENTRY * PFNGLQUERYOBJECTPARAMETERUIAMDPROC) (GLenum target, GLuint id, GLenum pname, GLuint param);
2839 
2840 #define glQueryObjectParameteruiAMD GLEW_GET_FUN(__glewQueryObjectParameteruiAMD)
2841 
2842 #define GLEW_AMD_occlusion_query_event GLEW_GET_VAR(__GLEW_AMD_occlusion_query_event)
2843 
2844 #endif /* GL_AMD_occlusion_query_event */
2845 
2846 /* ----------------------- GL_AMD_performance_monitor ---------------------- */
2847 
2848 #ifndef GL_AMD_performance_monitor
2849 #define GL_AMD_performance_monitor 1
2850 
2851 #define GL_COUNTER_TYPE_AMD 0x8BC0
2852 #define GL_COUNTER_RANGE_AMD 0x8BC1
2853 #define GL_UNSIGNED_INT64_AMD 0x8BC2
2854 #define GL_PERCENTAGE_AMD 0x8BC3
2855 #define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4
2856 #define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5
2857 #define GL_PERFMON_RESULT_AMD 0x8BC6
2858 
2859 typedef void (GLAPIENTRY * PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
2860 typedef void (GLAPIENTRY * PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors);
2861 typedef void (GLAPIENTRY * PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
2862 typedef void (GLAPIENTRY * PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors);
2863 typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint *bytesWritten);
2864 typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data);
2865 typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar *counterString);
2866 typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint* numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters);
2867 typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei* length, GLchar *groupString);
2868 typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint* numGroups, GLsizei groupsSize, GLuint *groups);
2869 typedef void (GLAPIENTRY * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* counterList);
2870 
2871 #define glBeginPerfMonitorAMD GLEW_GET_FUN(__glewBeginPerfMonitorAMD)
2872 #define glDeletePerfMonitorsAMD GLEW_GET_FUN(__glewDeletePerfMonitorsAMD)
2873 #define glEndPerfMonitorAMD GLEW_GET_FUN(__glewEndPerfMonitorAMD)
2874 #define glGenPerfMonitorsAMD GLEW_GET_FUN(__glewGenPerfMonitorsAMD)
2875 #define glGetPerfMonitorCounterDataAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterDataAMD)
2876 #define glGetPerfMonitorCounterInfoAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterInfoAMD)
2877 #define glGetPerfMonitorCounterStringAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterStringAMD)
2878 #define glGetPerfMonitorCountersAMD GLEW_GET_FUN(__glewGetPerfMonitorCountersAMD)
2879 #define glGetPerfMonitorGroupStringAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupStringAMD)
2880 #define glGetPerfMonitorGroupsAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupsAMD)
2881 #define glSelectPerfMonitorCountersAMD GLEW_GET_FUN(__glewSelectPerfMonitorCountersAMD)
2882 
2883 #define GLEW_AMD_performance_monitor GLEW_GET_VAR(__GLEW_AMD_performance_monitor)
2884 
2885 #endif /* GL_AMD_performance_monitor */
2886 
2887 /* -------------------------- GL_AMD_pinned_memory ------------------------- */
2888 
2889 #ifndef GL_AMD_pinned_memory
2890 #define GL_AMD_pinned_memory 1
2891 
2892 #define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160
2893 
2894 #define GLEW_AMD_pinned_memory GLEW_GET_VAR(__GLEW_AMD_pinned_memory)
2895 
2896 #endif /* GL_AMD_pinned_memory */
2897 
2898 /* ----------------------- GL_AMD_program_binary_Z400 ---------------------- */
2899 
2900 #ifndef GL_AMD_program_binary_Z400
2901 #define GL_AMD_program_binary_Z400 1
2902 
2903 #define GL_Z400_BINARY_AMD 0x8740
2904 
2905 #define GLEW_AMD_program_binary_Z400 GLEW_GET_VAR(__GLEW_AMD_program_binary_Z400)
2906 
2907 #endif /* GL_AMD_program_binary_Z400 */
2908 
2909 /* ----------------------- GL_AMD_query_buffer_object ---------------------- */
2910 
2911 #ifndef GL_AMD_query_buffer_object
2912 #define GL_AMD_query_buffer_object 1
2913 
2914 #define GL_QUERY_BUFFER_AMD 0x9192
2915 #define GL_QUERY_BUFFER_BINDING_AMD 0x9193
2916 #define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194
2917 
2918 #define GLEW_AMD_query_buffer_object GLEW_GET_VAR(__GLEW_AMD_query_buffer_object)
2919 
2920 #endif /* GL_AMD_query_buffer_object */
2921 
2922 /* ------------------------ GL_AMD_sample_positions ------------------------ */
2923 
2924 #ifndef GL_AMD_sample_positions
2925 #define GL_AMD_sample_positions 1
2926 
2927 #define GL_SUBSAMPLE_DISTANCE_AMD 0x883F
2928 
2929 typedef void (GLAPIENTRY * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat* val);
2930 
2931 #define glSetMultisamplefvAMD GLEW_GET_FUN(__glewSetMultisamplefvAMD)
2932 
2933 #define GLEW_AMD_sample_positions GLEW_GET_VAR(__GLEW_AMD_sample_positions)
2934 
2935 #endif /* GL_AMD_sample_positions */
2936 
2937 /* ------------------ GL_AMD_seamless_cubemap_per_texture ------------------ */
2938 
2939 #ifndef GL_AMD_seamless_cubemap_per_texture
2940 #define GL_AMD_seamless_cubemap_per_texture 1
2941 
2942 #define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
2943 
2944 #define GLEW_AMD_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_AMD_seamless_cubemap_per_texture)
2945 
2946 #endif /* GL_AMD_seamless_cubemap_per_texture */
2947 
2948 /* -------------------- GL_AMD_shader_atomic_counter_ops ------------------- */
2949 
2950 #ifndef GL_AMD_shader_atomic_counter_ops
2951 #define GL_AMD_shader_atomic_counter_ops 1
2952 
2953 #define GLEW_AMD_shader_atomic_counter_ops GLEW_GET_VAR(__GLEW_AMD_shader_atomic_counter_ops)
2954 
2955 #endif /* GL_AMD_shader_atomic_counter_ops */
2956 
2957 /* -------------------------- GL_AMD_shader_ballot ------------------------- */
2958 
2959 #ifndef GL_AMD_shader_ballot
2960 #define GL_AMD_shader_ballot 1
2961 
2962 #define GLEW_AMD_shader_ballot GLEW_GET_VAR(__GLEW_AMD_shader_ballot)
2963 
2964 #endif /* GL_AMD_shader_ballot */
2965 
2966 /* ---------------- GL_AMD_shader_explicit_vertex_parameter ---------------- */
2967 
2968 #ifndef GL_AMD_shader_explicit_vertex_parameter
2969 #define GL_AMD_shader_explicit_vertex_parameter 1
2970 
2971 #define GLEW_AMD_shader_explicit_vertex_parameter GLEW_GET_VAR(__GLEW_AMD_shader_explicit_vertex_parameter)
2972 
2973 #endif /* GL_AMD_shader_explicit_vertex_parameter */
2974 
2975 /* ---------------------- GL_AMD_shader_stencil_export --------------------- */
2976 
2977 #ifndef GL_AMD_shader_stencil_export
2978 #define GL_AMD_shader_stencil_export 1
2979 
2980 #define GLEW_AMD_shader_stencil_export GLEW_GET_VAR(__GLEW_AMD_shader_stencil_export)
2981 
2982 #endif /* GL_AMD_shader_stencil_export */
2983 
2984 /* ------------------- GL_AMD_shader_stencil_value_export ------------------ */
2985 
2986 #ifndef GL_AMD_shader_stencil_value_export
2987 #define GL_AMD_shader_stencil_value_export 1
2988 
2989 #define GLEW_AMD_shader_stencil_value_export GLEW_GET_VAR(__GLEW_AMD_shader_stencil_value_export)
2990 
2991 #endif /* GL_AMD_shader_stencil_value_export */
2992 
2993 /* ---------------------- GL_AMD_shader_trinary_minmax --------------------- */
2994 
2995 #ifndef GL_AMD_shader_trinary_minmax
2996 #define GL_AMD_shader_trinary_minmax 1
2997 
2998 #define GLEW_AMD_shader_trinary_minmax GLEW_GET_VAR(__GLEW_AMD_shader_trinary_minmax)
2999 
3000 #endif /* GL_AMD_shader_trinary_minmax */
3001 
3002 /* ------------------------- GL_AMD_sparse_texture ------------------------- */
3003 
3004 #ifndef GL_AMD_sparse_texture
3005 #define GL_AMD_sparse_texture 1
3006 
3007 #define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD 0x00000001
3008 #define GL_VIRTUAL_PAGE_SIZE_X_AMD 0x9195
3009 #define GL_VIRTUAL_PAGE_SIZE_Y_AMD 0x9196
3010 #define GL_VIRTUAL_PAGE_SIZE_Z_AMD 0x9197
3011 #define GL_MAX_SPARSE_TEXTURE_SIZE_AMD 0x9198
3012 #define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD 0x9199
3013 #define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919A
3014 #define GL_MIN_SPARSE_LEVEL_AMD 0x919B
3015 #define GL_MIN_LOD_WARNING_AMD 0x919C
3016 
3017 typedef void (GLAPIENTRY * PFNGLTEXSTORAGESPARSEAMDPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
3018 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGESPARSEAMDPROC) (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
3019 
3020 #define glTexStorageSparseAMD GLEW_GET_FUN(__glewTexStorageSparseAMD)
3021 #define glTextureStorageSparseAMD GLEW_GET_FUN(__glewTextureStorageSparseAMD)
3022 
3023 #define GLEW_AMD_sparse_texture GLEW_GET_VAR(__GLEW_AMD_sparse_texture)
3024 
3025 #endif /* GL_AMD_sparse_texture */
3026 
3027 /* ------------------- GL_AMD_stencil_operation_extended ------------------- */
3028 
3029 #ifndef GL_AMD_stencil_operation_extended
3030 #define GL_AMD_stencil_operation_extended 1
3031 
3032 #define GL_SET_AMD 0x874A
3033 #define GL_REPLACE_VALUE_AMD 0x874B
3034 #define GL_STENCIL_OP_VALUE_AMD 0x874C
3035 #define GL_STENCIL_BACK_OP_VALUE_AMD 0x874D
3036 
3037 typedef void (GLAPIENTRY * PFNGLSTENCILOPVALUEAMDPROC) (GLenum face, GLuint value);
3038 
3039 #define glStencilOpValueAMD GLEW_GET_FUN(__glewStencilOpValueAMD)
3040 
3041 #define GLEW_AMD_stencil_operation_extended GLEW_GET_VAR(__GLEW_AMD_stencil_operation_extended)
3042 
3043 #endif /* GL_AMD_stencil_operation_extended */
3044 
3045 /* --------------------- GL_AMD_texture_gather_bias_lod -------------------- */
3046 
3047 #ifndef GL_AMD_texture_gather_bias_lod
3048 #define GL_AMD_texture_gather_bias_lod 1
3049 
3050 #define GLEW_AMD_texture_gather_bias_lod GLEW_GET_VAR(__GLEW_AMD_texture_gather_bias_lod)
3051 
3052 #endif /* GL_AMD_texture_gather_bias_lod */
3053 
3054 /* ------------------------ GL_AMD_texture_texture4 ------------------------ */
3055 
3056 #ifndef GL_AMD_texture_texture4
3057 #define GL_AMD_texture_texture4 1
3058 
3059 #define GLEW_AMD_texture_texture4 GLEW_GET_VAR(__GLEW_AMD_texture_texture4)
3060 
3061 #endif /* GL_AMD_texture_texture4 */
3062 
3063 /* --------------- GL_AMD_transform_feedback3_lines_triangles -------------- */
3064 
3065 #ifndef GL_AMD_transform_feedback3_lines_triangles
3066 #define GL_AMD_transform_feedback3_lines_triangles 1
3067 
3068 #define GLEW_AMD_transform_feedback3_lines_triangles GLEW_GET_VAR(__GLEW_AMD_transform_feedback3_lines_triangles)
3069 
3070 #endif /* GL_AMD_transform_feedback3_lines_triangles */
3071 
3072 /* ----------------------- GL_AMD_transform_feedback4 ---------------------- */
3073 
3074 #ifndef GL_AMD_transform_feedback4
3075 #define GL_AMD_transform_feedback4 1
3076 
3077 #define GL_STREAM_RASTERIZATION_AMD 0x91A0
3078 
3079 #define GLEW_AMD_transform_feedback4 GLEW_GET_VAR(__GLEW_AMD_transform_feedback4)
3080 
3081 #endif /* GL_AMD_transform_feedback4 */
3082 
3083 /* ----------------------- GL_AMD_vertex_shader_layer ---------------------- */
3084 
3085 #ifndef GL_AMD_vertex_shader_layer
3086 #define GL_AMD_vertex_shader_layer 1
3087 
3088 #define GLEW_AMD_vertex_shader_layer GLEW_GET_VAR(__GLEW_AMD_vertex_shader_layer)
3089 
3090 #endif /* GL_AMD_vertex_shader_layer */
3091 
3092 /* -------------------- GL_AMD_vertex_shader_tessellator ------------------- */
3093 
3094 #ifndef GL_AMD_vertex_shader_tessellator
3095 #define GL_AMD_vertex_shader_tessellator 1
3096 
3097 #define GL_SAMPLER_BUFFER_AMD 0x9001
3098 #define GL_INT_SAMPLER_BUFFER_AMD 0x9002
3099 #define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003
3100 #define GL_TESSELLATION_MODE_AMD 0x9004
3101 #define GL_TESSELLATION_FACTOR_AMD 0x9005
3102 #define GL_DISCRETE_AMD 0x9006
3103 #define GL_CONTINUOUS_AMD 0x9007
3104 
3105 typedef void (GLAPIENTRY * PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor);
3106 typedef void (GLAPIENTRY * PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode);
3107 
3108 #define glTessellationFactorAMD GLEW_GET_FUN(__glewTessellationFactorAMD)
3109 #define glTessellationModeAMD GLEW_GET_FUN(__glewTessellationModeAMD)
3110 
3111 #define GLEW_AMD_vertex_shader_tessellator GLEW_GET_VAR(__GLEW_AMD_vertex_shader_tessellator)
3112 
3113 #endif /* GL_AMD_vertex_shader_tessellator */
3114 
3115 /* ------------------ GL_AMD_vertex_shader_viewport_index ------------------ */
3116 
3117 #ifndef GL_AMD_vertex_shader_viewport_index
3118 #define GL_AMD_vertex_shader_viewport_index 1
3119 
3120 #define GLEW_AMD_vertex_shader_viewport_index GLEW_GET_VAR(__GLEW_AMD_vertex_shader_viewport_index)
3121 
3122 #endif /* GL_AMD_vertex_shader_viewport_index */
3123 
3124 /* -------------------- GL_ANDROID_extension_pack_es31a -------------------- */
3125 
3126 #ifndef GL_ANDROID_extension_pack_es31a
3127 #define GL_ANDROID_extension_pack_es31a 1
3128 
3129 #define GLEW_ANDROID_extension_pack_es31a GLEW_GET_VAR(__GLEW_ANDROID_extension_pack_es31a)
3130 
3131 #endif /* GL_ANDROID_extension_pack_es31a */
3132 
3133 /* ------------------------- GL_ANGLE_depth_texture ------------------------ */
3134 
3135 #ifndef GL_ANGLE_depth_texture
3136 #define GL_ANGLE_depth_texture 1
3137 
3138 #define GLEW_ANGLE_depth_texture GLEW_GET_VAR(__GLEW_ANGLE_depth_texture)
3139 
3140 #endif /* GL_ANGLE_depth_texture */
3141 
3142 /* ----------------------- GL_ANGLE_framebuffer_blit ----------------------- */
3143 
3144 #ifndef GL_ANGLE_framebuffer_blit
3145 #define GL_ANGLE_framebuffer_blit 1
3146 
3147 #define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6
3148 #define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8
3149 #define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9
3150 #define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA
3151 
3152 typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
3153 
3154 #define glBlitFramebufferANGLE GLEW_GET_FUN(__glewBlitFramebufferANGLE)
3155 
3156 #define GLEW_ANGLE_framebuffer_blit GLEW_GET_VAR(__GLEW_ANGLE_framebuffer_blit)
3157 
3158 #endif /* GL_ANGLE_framebuffer_blit */
3159 
3160 /* -------------------- GL_ANGLE_framebuffer_multisample ------------------- */
3161 
3162 #ifndef GL_ANGLE_framebuffer_multisample
3163 #define GL_ANGLE_framebuffer_multisample 1
3164 
3165 #define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB
3166 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56
3167 #define GL_MAX_SAMPLES_ANGLE 0x8D57
3168 
3169 typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
3170 
3171 #define glRenderbufferStorageMultisampleANGLE GLEW_GET_FUN(__glewRenderbufferStorageMultisampleANGLE)
3172 
3173 #define GLEW_ANGLE_framebuffer_multisample GLEW_GET_VAR(__GLEW_ANGLE_framebuffer_multisample)
3174 
3175 #endif /* GL_ANGLE_framebuffer_multisample */
3176 
3177 /* ----------------------- GL_ANGLE_instanced_arrays ----------------------- */
3178 
3179 #ifndef GL_ANGLE_instanced_arrays
3180 #define GL_ANGLE_instanced_arrays 1
3181 
3182 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE
3183 
3184 typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
3185 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
3186 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor);
3187 
3188 #define glDrawArraysInstancedANGLE GLEW_GET_FUN(__glewDrawArraysInstancedANGLE)
3189 #define glDrawElementsInstancedANGLE GLEW_GET_FUN(__glewDrawElementsInstancedANGLE)
3190 #define glVertexAttribDivisorANGLE GLEW_GET_FUN(__glewVertexAttribDivisorANGLE)
3191 
3192 #define GLEW_ANGLE_instanced_arrays GLEW_GET_VAR(__GLEW_ANGLE_instanced_arrays)
3193 
3194 #endif /* GL_ANGLE_instanced_arrays */
3195 
3196 /* -------------------- GL_ANGLE_pack_reverse_row_order -------------------- */
3197 
3198 #ifndef GL_ANGLE_pack_reverse_row_order
3199 #define GL_ANGLE_pack_reverse_row_order 1
3200 
3201 #define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4
3202 
3203 #define GLEW_ANGLE_pack_reverse_row_order GLEW_GET_VAR(__GLEW_ANGLE_pack_reverse_row_order)
3204 
3205 #endif /* GL_ANGLE_pack_reverse_row_order */
3206 
3207 /* ------------------------ GL_ANGLE_program_binary ------------------------ */
3208 
3209 #ifndef GL_ANGLE_program_binary
3210 #define GL_ANGLE_program_binary 1
3211 
3212 #define GL_PROGRAM_BINARY_ANGLE 0x93A6
3213 
3214 #define GLEW_ANGLE_program_binary GLEW_GET_VAR(__GLEW_ANGLE_program_binary)
3215 
3216 #endif /* GL_ANGLE_program_binary */
3217 
3218 /* ------------------- GL_ANGLE_texture_compression_dxt1 ------------------- */
3219 
3220 #ifndef GL_ANGLE_texture_compression_dxt1
3221 #define GL_ANGLE_texture_compression_dxt1 1
3222 
3223 #define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0
3224 #define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1
3225 #define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2
3226 #define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3
3227 
3228 #define GLEW_ANGLE_texture_compression_dxt1 GLEW_GET_VAR(__GLEW_ANGLE_texture_compression_dxt1)
3229 
3230 #endif /* GL_ANGLE_texture_compression_dxt1 */
3231 
3232 /* ------------------- GL_ANGLE_texture_compression_dxt3 ------------------- */
3233 
3234 #ifndef GL_ANGLE_texture_compression_dxt3
3235 #define GL_ANGLE_texture_compression_dxt3 1
3236 
3237 #define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0
3238 #define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1
3239 #define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2
3240 #define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3
3241 
3242 #define GLEW_ANGLE_texture_compression_dxt3 GLEW_GET_VAR(__GLEW_ANGLE_texture_compression_dxt3)
3243 
3244 #endif /* GL_ANGLE_texture_compression_dxt3 */
3245 
3246 /* ------------------- GL_ANGLE_texture_compression_dxt5 ------------------- */
3247 
3248 #ifndef GL_ANGLE_texture_compression_dxt5
3249 #define GL_ANGLE_texture_compression_dxt5 1
3250 
3251 #define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0
3252 #define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1
3253 #define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2
3254 #define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3
3255 
3256 #define GLEW_ANGLE_texture_compression_dxt5 GLEW_GET_VAR(__GLEW_ANGLE_texture_compression_dxt5)
3257 
3258 #endif /* GL_ANGLE_texture_compression_dxt5 */
3259 
3260 /* ------------------------- GL_ANGLE_texture_usage ------------------------ */
3261 
3262 #ifndef GL_ANGLE_texture_usage
3263 #define GL_ANGLE_texture_usage 1
3264 
3265 #define GL_TEXTURE_USAGE_ANGLE 0x93A2
3266 #define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3
3267 
3268 #define GLEW_ANGLE_texture_usage GLEW_GET_VAR(__GLEW_ANGLE_texture_usage)
3269 
3270 #endif /* GL_ANGLE_texture_usage */
3271 
3272 /* -------------------------- GL_ANGLE_timer_query ------------------------- */
3273 
3274 #ifndef GL_ANGLE_timer_query
3275 #define GL_ANGLE_timer_query 1
3276 
3277 #define GL_QUERY_COUNTER_BITS_ANGLE 0x8864
3278 #define GL_CURRENT_QUERY_ANGLE 0x8865
3279 #define GL_QUERY_RESULT_ANGLE 0x8866
3280 #define GL_QUERY_RESULT_AVAILABLE_ANGLE 0x8867
3281 #define GL_TIME_ELAPSED_ANGLE 0x88BF
3282 #define GL_TIMESTAMP_ANGLE 0x8E28
3283 
3284 typedef void (GLAPIENTRY * PFNGLBEGINQUERYANGLEPROC) (GLenum target, GLuint id);
3285 typedef void (GLAPIENTRY * PFNGLDELETEQUERIESANGLEPROC) (GLsizei n, const GLuint* ids);
3286 typedef void (GLAPIENTRY * PFNGLENDQUERYANGLEPROC) (GLenum target);
3287 typedef void (GLAPIENTRY * PFNGLGENQUERIESANGLEPROC) (GLsizei n, GLuint* ids);
3288 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VANGLEPROC) (GLuint id, GLenum pname, GLint64* params);
3289 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVANGLEPROC) (GLuint id, GLenum pname, GLint* params);
3290 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VANGLEPROC) (GLuint id, GLenum pname, GLuint64* params);
3291 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVANGLEPROC) (GLuint id, GLenum pname, GLuint* params);
3292 typedef void (GLAPIENTRY * PFNGLGETQUERYIVANGLEPROC) (GLenum target, GLenum pname, GLint* params);
3293 typedef GLboolean (GLAPIENTRY * PFNGLISQUERYANGLEPROC) (GLuint id);
3294 typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERANGLEPROC) (GLuint id, GLenum target);
3295 
3296 #define glBeginQueryANGLE GLEW_GET_FUN(__glewBeginQueryANGLE)
3297 #define glDeleteQueriesANGLE GLEW_GET_FUN(__glewDeleteQueriesANGLE)
3298 #define glEndQueryANGLE GLEW_GET_FUN(__glewEndQueryANGLE)
3299 #define glGenQueriesANGLE GLEW_GET_FUN(__glewGenQueriesANGLE)
3300 #define glGetQueryObjecti64vANGLE GLEW_GET_FUN(__glewGetQueryObjecti64vANGLE)
3301 #define glGetQueryObjectivANGLE GLEW_GET_FUN(__glewGetQueryObjectivANGLE)
3302 #define glGetQueryObjectui64vANGLE GLEW_GET_FUN(__glewGetQueryObjectui64vANGLE)
3303 #define glGetQueryObjectuivANGLE GLEW_GET_FUN(__glewGetQueryObjectuivANGLE)
3304 #define glGetQueryivANGLE GLEW_GET_FUN(__glewGetQueryivANGLE)
3305 #define glIsQueryANGLE GLEW_GET_FUN(__glewIsQueryANGLE)
3306 #define glQueryCounterANGLE GLEW_GET_FUN(__glewQueryCounterANGLE)
3307 
3308 #define GLEW_ANGLE_timer_query GLEW_GET_VAR(__GLEW_ANGLE_timer_query)
3309 
3310 #endif /* GL_ANGLE_timer_query */
3311 
3312 /* ------------------- GL_ANGLE_translated_shader_source ------------------- */
3313 
3314 #ifndef GL_ANGLE_translated_shader_source
3315 #define GL_ANGLE_translated_shader_source 1
3316 
3317 #define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0
3318 
3319 typedef void (GLAPIENTRY * PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
3320 
3321 #define glGetTranslatedShaderSourceANGLE GLEW_GET_FUN(__glewGetTranslatedShaderSourceANGLE)
3322 
3323 #define GLEW_ANGLE_translated_shader_source GLEW_GET_VAR(__GLEW_ANGLE_translated_shader_source)
3324 
3325 #endif /* GL_ANGLE_translated_shader_source */
3326 
3327 /* ----------------------- GL_APPLE_aux_depth_stencil ---------------------- */
3328 
3329 #ifndef GL_APPLE_aux_depth_stencil
3330 #define GL_APPLE_aux_depth_stencil 1
3331 
3332 #define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14
3333 
3334 #define GLEW_APPLE_aux_depth_stencil GLEW_GET_VAR(__GLEW_APPLE_aux_depth_stencil)
3335 
3336 #endif /* GL_APPLE_aux_depth_stencil */
3337 
3338 /* ------------------------ GL_APPLE_client_storage ------------------------ */
3339 
3340 #ifndef GL_APPLE_client_storage
3341 #define GL_APPLE_client_storage 1
3342 
3343 #define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2
3344 
3345 #define GLEW_APPLE_client_storage GLEW_GET_VAR(__GLEW_APPLE_client_storage)
3346 
3347 #endif /* GL_APPLE_client_storage */
3348 
3349 /* ------------------------- GL_APPLE_clip_distance ------------------------ */
3350 
3351 #ifndef GL_APPLE_clip_distance
3352 #define GL_APPLE_clip_distance 1
3353 
3354 #define GL_MAX_CLIP_DISTANCES_APPLE 0x0D32
3355 #define GL_CLIP_DISTANCE0_APPLE 0x3000
3356 #define GL_CLIP_DISTANCE1_APPLE 0x3001
3357 #define GL_CLIP_DISTANCE2_APPLE 0x3002
3358 #define GL_CLIP_DISTANCE3_APPLE 0x3003
3359 #define GL_CLIP_DISTANCE4_APPLE 0x3004
3360 #define GL_CLIP_DISTANCE5_APPLE 0x3005
3361 #define GL_CLIP_DISTANCE6_APPLE 0x3006
3362 #define GL_CLIP_DISTANCE7_APPLE 0x3007
3363 
3364 #define GLEW_APPLE_clip_distance GLEW_GET_VAR(__GLEW_APPLE_clip_distance)
3365 
3366 #endif /* GL_APPLE_clip_distance */
3367 
3368 /* ------------------- GL_APPLE_color_buffer_packed_float ------------------ */
3369 
3370 #ifndef GL_APPLE_color_buffer_packed_float
3371 #define GL_APPLE_color_buffer_packed_float 1
3372 
3373 #define GLEW_APPLE_color_buffer_packed_float GLEW_GET_VAR(__GLEW_APPLE_color_buffer_packed_float)
3374 
3375 #endif /* GL_APPLE_color_buffer_packed_float */
3376 
3377 /* ---------------------- GL_APPLE_copy_texture_levels --------------------- */
3378 
3379 #ifndef GL_APPLE_copy_texture_levels
3380 #define GL_APPLE_copy_texture_levels 1
3381 
3382 typedef void (GLAPIENTRY * PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
3383 
3384 #define glCopyTextureLevelsAPPLE GLEW_GET_FUN(__glewCopyTextureLevelsAPPLE)
3385 
3386 #define GLEW_APPLE_copy_texture_levels GLEW_GET_VAR(__GLEW_APPLE_copy_texture_levels)
3387 
3388 #endif /* GL_APPLE_copy_texture_levels */
3389 
3390 /* ------------------------- GL_APPLE_element_array ------------------------ */
3391 
3392 #ifndef GL_APPLE_element_array
3393 #define GL_APPLE_element_array 1
3394 
3395 #define GL_ELEMENT_ARRAY_APPLE 0x8A0C
3396 #define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D
3397 #define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E
3398 
3399 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count);
3400 typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
3401 typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void *pointer);
3402 typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount);
3403 typedef void (GLAPIENTRY * PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint* first, const GLsizei *count, GLsizei primcount);
3404 
3405 #define glDrawElementArrayAPPLE GLEW_GET_FUN(__glewDrawElementArrayAPPLE)
3406 #define glDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewDrawRangeElementArrayAPPLE)
3407 #define glElementPointerAPPLE GLEW_GET_FUN(__glewElementPointerAPPLE)
3408 #define glMultiDrawElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawElementArrayAPPLE)
3409 #define glMultiDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawRangeElementArrayAPPLE)
3410 
3411 #define GLEW_APPLE_element_array GLEW_GET_VAR(__GLEW_APPLE_element_array)
3412 
3413 #endif /* GL_APPLE_element_array */
3414 
3415 /* ----------------------------- GL_APPLE_fence ---------------------------- */
3416 
3417 #ifndef GL_APPLE_fence
3418 #define GL_APPLE_fence 1
3419 
3420 #define GL_DRAW_PIXELS_APPLE 0x8A0A
3421 #define GL_FENCE_APPLE 0x8A0B
3422 
3423 typedef void (GLAPIENTRY * PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint* fences);
3424 typedef void (GLAPIENTRY * PFNGLFINISHFENCEAPPLEPROC) (GLuint fence);
3425 typedef void (GLAPIENTRY * PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name);
3426 typedef void (GLAPIENTRY * PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint* fences);
3427 typedef GLboolean (GLAPIENTRY * PFNGLISFENCEAPPLEPROC) (GLuint fence);
3428 typedef void (GLAPIENTRY * PFNGLSETFENCEAPPLEPROC) (GLuint fence);
3429 typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCEAPPLEPROC) (GLuint fence);
3430 typedef GLboolean (GLAPIENTRY * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name);
3431 
3432 #define glDeleteFencesAPPLE GLEW_GET_FUN(__glewDeleteFencesAPPLE)
3433 #define glFinishFenceAPPLE GLEW_GET_FUN(__glewFinishFenceAPPLE)
3434 #define glFinishObjectAPPLE GLEW_GET_FUN(__glewFinishObjectAPPLE)
3435 #define glGenFencesAPPLE GLEW_GET_FUN(__glewGenFencesAPPLE)
3436 #define glIsFenceAPPLE GLEW_GET_FUN(__glewIsFenceAPPLE)
3437 #define glSetFenceAPPLE GLEW_GET_FUN(__glewSetFenceAPPLE)
3438 #define glTestFenceAPPLE GLEW_GET_FUN(__glewTestFenceAPPLE)
3439 #define glTestObjectAPPLE GLEW_GET_FUN(__glewTestObjectAPPLE)
3440 
3441 #define GLEW_APPLE_fence GLEW_GET_VAR(__GLEW_APPLE_fence)
3442 
3443 #endif /* GL_APPLE_fence */
3444 
3445 /* ------------------------- GL_APPLE_float_pixels ------------------------- */
3446 
3447 #ifndef GL_APPLE_float_pixels
3448 #define GL_APPLE_float_pixels 1
3449 
3450 #define GL_HALF_APPLE 0x140B
3451 #define GL_RGBA_FLOAT32_APPLE 0x8814
3452 #define GL_RGB_FLOAT32_APPLE 0x8815
3453 #define GL_ALPHA_FLOAT32_APPLE 0x8816
3454 #define GL_INTENSITY_FLOAT32_APPLE 0x8817
3455 #define GL_LUMINANCE_FLOAT32_APPLE 0x8818
3456 #define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
3457 #define GL_RGBA_FLOAT16_APPLE 0x881A
3458 #define GL_RGB_FLOAT16_APPLE 0x881B
3459 #define GL_ALPHA_FLOAT16_APPLE 0x881C
3460 #define GL_INTENSITY_FLOAT16_APPLE 0x881D
3461 #define GL_LUMINANCE_FLOAT16_APPLE 0x881E
3462 #define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
3463 #define GL_COLOR_FLOAT_APPLE 0x8A0F
3464 
3465 #define GLEW_APPLE_float_pixels GLEW_GET_VAR(__GLEW_APPLE_float_pixels)
3466 
3467 #endif /* GL_APPLE_float_pixels */
3468 
3469 /* ---------------------- GL_APPLE_flush_buffer_range ---------------------- */
3470 
3471 #ifndef GL_APPLE_flush_buffer_range
3472 #define GL_APPLE_flush_buffer_range 1
3473 
3474 #define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12
3475 #define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13
3476 
3477 typedef void (GLAPIENTRY * PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param);
3478 typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size);
3479 
3480 #define glBufferParameteriAPPLE GLEW_GET_FUN(__glewBufferParameteriAPPLE)
3481 #define glFlushMappedBufferRangeAPPLE GLEW_GET_FUN(__glewFlushMappedBufferRangeAPPLE)
3482 
3483 #define GLEW_APPLE_flush_buffer_range GLEW_GET_VAR(__GLEW_APPLE_flush_buffer_range)
3484 
3485 #endif /* GL_APPLE_flush_buffer_range */
3486 
3487 /* -------------------- GL_APPLE_framebuffer_multisample ------------------- */
3488 
3489 #ifndef GL_APPLE_framebuffer_multisample
3490 #define GL_APPLE_framebuffer_multisample 1
3491 
3492 #define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6
3493 #define GL_READ_FRAMEBUFFER_APPLE 0x8CA8
3494 #define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9
3495 #define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA
3496 #define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB
3497 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56
3498 #define GL_MAX_SAMPLES_APPLE 0x8D57
3499 
3500 typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
3501 typedef void (GLAPIENTRY * PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void);
3502 
3503 #define glRenderbufferStorageMultisampleAPPLE GLEW_GET_FUN(__glewRenderbufferStorageMultisampleAPPLE)
3504 #define glResolveMultisampleFramebufferAPPLE GLEW_GET_FUN(__glewResolveMultisampleFramebufferAPPLE)
3505 
3506 #define GLEW_APPLE_framebuffer_multisample GLEW_GET_VAR(__GLEW_APPLE_framebuffer_multisample)
3507 
3508 #endif /* GL_APPLE_framebuffer_multisample */
3509 
3510 /* ----------------------- GL_APPLE_object_purgeable ----------------------- */
3511 
3512 #ifndef GL_APPLE_object_purgeable
3513 #define GL_APPLE_object_purgeable 1
3514 
3515 #define GL_BUFFER_OBJECT_APPLE 0x85B3
3516 #define GL_RELEASED_APPLE 0x8A19
3517 #define GL_VOLATILE_APPLE 0x8A1A
3518 #define GL_RETAINED_APPLE 0x8A1B
3519 #define GL_UNDEFINED_APPLE 0x8A1C
3520 #define GL_PURGEABLE_APPLE 0x8A1D
3521 
3522 typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint* params);
3523 typedef GLenum (GLAPIENTRY * PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option);
3524 typedef GLenum (GLAPIENTRY * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option);
3525 
3526 #define glGetObjectParameterivAPPLE GLEW_GET_FUN(__glewGetObjectParameterivAPPLE)
3527 #define glObjectPurgeableAPPLE GLEW_GET_FUN(__glewObjectPurgeableAPPLE)
3528 #define glObjectUnpurgeableAPPLE GLEW_GET_FUN(__glewObjectUnpurgeableAPPLE)
3529 
3530 #define GLEW_APPLE_object_purgeable GLEW_GET_VAR(__GLEW_APPLE_object_purgeable)
3531 
3532 #endif /* GL_APPLE_object_purgeable */
3533 
3534 /* ------------------------- GL_APPLE_pixel_buffer ------------------------- */
3535 
3536 #ifndef GL_APPLE_pixel_buffer
3537 #define GL_APPLE_pixel_buffer 1
3538 
3539 #define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10
3540 
3541 #define GLEW_APPLE_pixel_buffer GLEW_GET_VAR(__GLEW_APPLE_pixel_buffer)
3542 
3543 #endif /* GL_APPLE_pixel_buffer */
3544 
3545 /* ---------------------------- GL_APPLE_rgb_422 --------------------------- */
3546 
3547 #ifndef GL_APPLE_rgb_422
3548 #define GL_APPLE_rgb_422 1
3549 
3550 #define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
3551 #define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
3552 #define GL_RGB_422_APPLE 0x8A1F
3553 #define GL_RGB_RAW_422_APPLE 0x8A51
3554 
3555 #define GLEW_APPLE_rgb_422 GLEW_GET_VAR(__GLEW_APPLE_rgb_422)
3556 
3557 #endif /* GL_APPLE_rgb_422 */
3558 
3559 /* --------------------------- GL_APPLE_row_bytes -------------------------- */
3560 
3561 #ifndef GL_APPLE_row_bytes
3562 #define GL_APPLE_row_bytes 1
3563 
3564 #define GL_PACK_ROW_BYTES_APPLE 0x8A15
3565 #define GL_UNPACK_ROW_BYTES_APPLE 0x8A16
3566 
3567 #define GLEW_APPLE_row_bytes GLEW_GET_VAR(__GLEW_APPLE_row_bytes)
3568 
3569 #endif /* GL_APPLE_row_bytes */
3570 
3571 /* ------------------------ GL_APPLE_specular_vector ----------------------- */
3572 
3573 #ifndef GL_APPLE_specular_vector
3574 #define GL_APPLE_specular_vector 1
3575 
3576 #define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0
3577 
3578 #define GLEW_APPLE_specular_vector GLEW_GET_VAR(__GLEW_APPLE_specular_vector)
3579 
3580 #endif /* GL_APPLE_specular_vector */
3581 
3582 /* ----------------------------- GL_APPLE_sync ----------------------------- */
3583 
3584 #ifndef GL_APPLE_sync
3585 #define GL_APPLE_sync 1
3586 
3587 #define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001
3588 #define GL_SYNC_OBJECT_APPLE 0x8A53
3589 #define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111
3590 #define GL_OBJECT_TYPE_APPLE 0x9112
3591 #define GL_SYNC_CONDITION_APPLE 0x9113
3592 #define GL_SYNC_STATUS_APPLE 0x9114
3593 #define GL_SYNC_FLAGS_APPLE 0x9115
3594 #define GL_SYNC_FENCE_APPLE 0x9116
3595 #define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117
3596 #define GL_UNSIGNALED_APPLE 0x9118
3597 #define GL_SIGNALED_APPLE 0x9119
3598 #define GL_ALREADY_SIGNALED_APPLE 0x911A
3599 #define GL_TIMEOUT_EXPIRED_APPLE 0x911B
3600 #define GL_CONDITION_SATISFIED_APPLE 0x911C
3601 #define GL_WAIT_FAILED_APPLE 0x911D
3602 #define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull
3603 
3604 typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync GLsync, GLbitfield flags, GLuint64 timeout);
3605 typedef void (GLAPIENTRY * PFNGLDELETESYNCAPPLEPROC) (GLsync GLsync);
3606 typedef GLsync (GLAPIENTRY * PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags);
3607 typedef void (GLAPIENTRY * PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64* params);
3608 typedef void (GLAPIENTRY * PFNGLGETSYNCIVAPPLEPROC) (GLsync GLsync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values);
3609 typedef GLboolean (GLAPIENTRY * PFNGLISSYNCAPPLEPROC) (GLsync GLsync);
3610 typedef void (GLAPIENTRY * PFNGLWAITSYNCAPPLEPROC) (GLsync GLsync, GLbitfield flags, GLuint64 timeout);
3611 
3612 #define glClientWaitSyncAPPLE GLEW_GET_FUN(__glewClientWaitSyncAPPLE)
3613 #define glDeleteSyncAPPLE GLEW_GET_FUN(__glewDeleteSyncAPPLE)
3614 #define glFenceSyncAPPLE GLEW_GET_FUN(__glewFenceSyncAPPLE)
3615 #define glGetInteger64vAPPLE GLEW_GET_FUN(__glewGetInteger64vAPPLE)
3616 #define glGetSyncivAPPLE GLEW_GET_FUN(__glewGetSyncivAPPLE)
3617 #define glIsSyncAPPLE GLEW_GET_FUN(__glewIsSyncAPPLE)
3618 #define glWaitSyncAPPLE GLEW_GET_FUN(__glewWaitSyncAPPLE)
3619 
3620 #define GLEW_APPLE_sync GLEW_GET_VAR(__GLEW_APPLE_sync)
3621 
3622 #endif /* GL_APPLE_sync */
3623 
3624 /* -------------------- GL_APPLE_texture_2D_limited_npot ------------------- */
3625 
3626 #ifndef GL_APPLE_texture_2D_limited_npot
3627 #define GL_APPLE_texture_2D_limited_npot 1
3628 
3629 #define GLEW_APPLE_texture_2D_limited_npot GLEW_GET_VAR(__GLEW_APPLE_texture_2D_limited_npot)
3630 
3631 #endif /* GL_APPLE_texture_2D_limited_npot */
3632 
3633 /* -------------------- GL_APPLE_texture_format_BGRA8888 ------------------- */
3634 
3635 #ifndef GL_APPLE_texture_format_BGRA8888
3636 #define GL_APPLE_texture_format_BGRA8888 1
3637 
3638 #define GL_BGRA_EXT 0x80E1
3639 #define GL_BGRA8_EXT 0x93A1
3640 
3641 #define GLEW_APPLE_texture_format_BGRA8888 GLEW_GET_VAR(__GLEW_APPLE_texture_format_BGRA8888)
3642 
3643 #endif /* GL_APPLE_texture_format_BGRA8888 */
3644 
3645 /* ----------------------- GL_APPLE_texture_max_level ---------------------- */
3646 
3647 #ifndef GL_APPLE_texture_max_level
3648 #define GL_APPLE_texture_max_level 1
3649 
3650 #define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D
3651 
3652 #define GLEW_APPLE_texture_max_level GLEW_GET_VAR(__GLEW_APPLE_texture_max_level)
3653 
3654 #endif /* GL_APPLE_texture_max_level */
3655 
3656 /* --------------------- GL_APPLE_texture_packed_float --------------------- */
3657 
3658 #ifndef GL_APPLE_texture_packed_float
3659 #define GL_APPLE_texture_packed_float 1
3660 
3661 #define GL_R11F_G11F_B10F_APPLE 0x8C3A
3662 #define GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE 0x8C3B
3663 #define GL_RGB9_E5_APPLE 0x8C3D
3664 #define GL_UNSIGNED_INT_5_9_9_9_REV_APPLE 0x8C3E
3665 
3666 #define GLEW_APPLE_texture_packed_float GLEW_GET_VAR(__GLEW_APPLE_texture_packed_float)
3667 
3668 #endif /* GL_APPLE_texture_packed_float */
3669 
3670 /* ------------------------- GL_APPLE_texture_range ------------------------ */
3671 
3672 #ifndef GL_APPLE_texture_range
3673 #define GL_APPLE_texture_range 1
3674 
3675 #define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7
3676 #define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8
3677 #define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC
3678 #define GL_STORAGE_PRIVATE_APPLE 0x85BD
3679 #define GL_STORAGE_CACHED_APPLE 0x85BE
3680 #define GL_STORAGE_SHARED_APPLE 0x85BF
3681 
3682 typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, void **params);
3683 typedef void (GLAPIENTRY * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, void *pointer);
3684 
3685 #define glGetTexParameterPointervAPPLE GLEW_GET_FUN(__glewGetTexParameterPointervAPPLE)
3686 #define glTextureRangeAPPLE GLEW_GET_FUN(__glewTextureRangeAPPLE)
3687 
3688 #define GLEW_APPLE_texture_range GLEW_GET_VAR(__GLEW_APPLE_texture_range)
3689 
3690 #endif /* GL_APPLE_texture_range */
3691 
3692 /* ------------------------ GL_APPLE_transform_hint ------------------------ */
3693 
3694 #ifndef GL_APPLE_transform_hint
3695 #define GL_APPLE_transform_hint 1
3696 
3697 #define GL_TRANSFORM_HINT_APPLE 0x85B1
3698 
3699 #define GLEW_APPLE_transform_hint GLEW_GET_VAR(__GLEW_APPLE_transform_hint)
3700 
3701 #endif /* GL_APPLE_transform_hint */
3702 
3703 /* ---------------------- GL_APPLE_vertex_array_object --------------------- */
3704 
3705 #ifndef GL_APPLE_vertex_array_object
3706 #define GL_APPLE_vertex_array_object 1
3707 
3708 #define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5
3709 
3710 typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array);
3711 typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays);
3712 typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays);
3713 typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array);
3714 
3715 #define glBindVertexArrayAPPLE GLEW_GET_FUN(__glewBindVertexArrayAPPLE)
3716 #define glDeleteVertexArraysAPPLE GLEW_GET_FUN(__glewDeleteVertexArraysAPPLE)
3717 #define glGenVertexArraysAPPLE GLEW_GET_FUN(__glewGenVertexArraysAPPLE)
3718 #define glIsVertexArrayAPPLE GLEW_GET_FUN(__glewIsVertexArrayAPPLE)
3719 
3720 #define GLEW_APPLE_vertex_array_object GLEW_GET_VAR(__GLEW_APPLE_vertex_array_object)
3721 
3722 #endif /* GL_APPLE_vertex_array_object */
3723 
3724 /* ---------------------- GL_APPLE_vertex_array_range ---------------------- */
3725 
3726 #ifndef GL_APPLE_vertex_array_range
3727 #define GL_APPLE_vertex_array_range 1
3728 
3729 #define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D
3730 #define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E
3731 #define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F
3732 #define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520
3733 #define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521
3734 #define GL_STORAGE_CLIENT_APPLE 0x85B4
3735 #define GL_STORAGE_CACHED_APPLE 0x85BE
3736 #define GL_STORAGE_SHARED_APPLE 0x85BF
3737 
3738 typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer);
3739 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param);
3740 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer);
3741 
3742 #define glFlushVertexArrayRangeAPPLE GLEW_GET_FUN(__glewFlushVertexArrayRangeAPPLE)
3743 #define glVertexArrayParameteriAPPLE GLEW_GET_FUN(__glewVertexArrayParameteriAPPLE)
3744 #define glVertexArrayRangeAPPLE GLEW_GET_FUN(__glewVertexArrayRangeAPPLE)
3745 
3746 #define GLEW_APPLE_vertex_array_range GLEW_GET_VAR(__GLEW_APPLE_vertex_array_range)
3747 
3748 #endif /* GL_APPLE_vertex_array_range */
3749 
3750 /* ------------------- GL_APPLE_vertex_program_evaluators ------------------ */
3751 
3752 #ifndef GL_APPLE_vertex_program_evaluators
3753 #define GL_APPLE_vertex_program_evaluators 1
3754 
3755 #define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00
3756 #define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01
3757 #define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02
3758 #define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03
3759 #define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04
3760 #define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05
3761 #define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06
3762 #define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07
3763 #define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08
3764 #define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09
3765 
3766 typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
3767 typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
3768 typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname);
3769 typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
3770 typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
3771 typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
3772 typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
3773 
3774 #define glDisableVertexAttribAPPLE GLEW_GET_FUN(__glewDisableVertexAttribAPPLE)
3775 #define glEnableVertexAttribAPPLE GLEW_GET_FUN(__glewEnableVertexAttribAPPLE)
3776 #define glIsVertexAttribEnabledAPPLE GLEW_GET_FUN(__glewIsVertexAttribEnabledAPPLE)
3777 #define glMapVertexAttrib1dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1dAPPLE)
3778 #define glMapVertexAttrib1fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1fAPPLE)
3779 #define glMapVertexAttrib2dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2dAPPLE)
3780 #define glMapVertexAttrib2fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2fAPPLE)
3781 
3782 #define GLEW_APPLE_vertex_program_evaluators GLEW_GET_VAR(__GLEW_APPLE_vertex_program_evaluators)
3783 
3784 #endif /* GL_APPLE_vertex_program_evaluators */
3785 
3786 /* --------------------------- GL_APPLE_ycbcr_422 -------------------------- */
3787 
3788 #ifndef GL_APPLE_ycbcr_422
3789 #define GL_APPLE_ycbcr_422 1
3790 
3791 #define GL_YCBCR_422_APPLE 0x85B9
3792 
3793 #define GLEW_APPLE_ycbcr_422 GLEW_GET_VAR(__GLEW_APPLE_ycbcr_422)
3794 
3795 #endif /* GL_APPLE_ycbcr_422 */
3796 
3797 /* ------------------------ GL_ARB_ES2_compatibility ----------------------- */
3798 
3799 #ifndef GL_ARB_ES2_compatibility
3800 #define GL_ARB_ES2_compatibility 1
3801 
3802 #define GL_FIXED 0x140C
3803 #define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
3804 #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
3805 #define GL_RGB565 0x8D62
3806 #define GL_LOW_FLOAT 0x8DF0
3807 #define GL_MEDIUM_FLOAT 0x8DF1
3808 #define GL_HIGH_FLOAT 0x8DF2
3809 #define GL_LOW_INT 0x8DF3
3810 #define GL_MEDIUM_INT 0x8DF4
3811 #define GL_HIGH_INT 0x8DF5
3812 #define GL_SHADER_BINARY_FORMATS 0x8DF8
3813 #define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
3814 #define GL_SHADER_COMPILER 0x8DFA
3815 #define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
3816 #define GL_MAX_VARYING_VECTORS 0x8DFC
3817 #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
3818 
3819 typedef int GLfixed;
3820 
3821 typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFPROC) (GLclampf d);
3822 typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f);
3823 typedef void (GLAPIENTRY * PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint *precision);
3824 typedef void (GLAPIENTRY * PFNGLRELEASESHADERCOMPILERPROC) (void);
3825 typedef void (GLAPIENTRY * PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint* shaders, GLenum binaryformat, const void*binary, GLsizei length);
3826 
3827 #define glClearDepthf GLEW_GET_FUN(__glewClearDepthf)
3828 #define glDepthRangef GLEW_GET_FUN(__glewDepthRangef)
3829 #define glGetShaderPrecisionFormat GLEW_GET_FUN(__glewGetShaderPrecisionFormat)
3830 #define glReleaseShaderCompiler GLEW_GET_FUN(__glewReleaseShaderCompiler)
3831 #define glShaderBinary GLEW_GET_FUN(__glewShaderBinary)
3832 
3833 #define GLEW_ARB_ES2_compatibility GLEW_GET_VAR(__GLEW_ARB_ES2_compatibility)
3834 
3835 #endif /* GL_ARB_ES2_compatibility */
3836 
3837 /* ----------------------- GL_ARB_ES3_1_compatibility ---------------------- */
3838 
3839 #ifndef GL_ARB_ES3_1_compatibility
3840 #define GL_ARB_ES3_1_compatibility 1
3841 
3842 typedef void (GLAPIENTRY * PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers);
3843 
3844 #define glMemoryBarrierByRegion GLEW_GET_FUN(__glewMemoryBarrierByRegion)
3845 
3846 #define GLEW_ARB_ES3_1_compatibility GLEW_GET_VAR(__GLEW_ARB_ES3_1_compatibility)
3847 
3848 #endif /* GL_ARB_ES3_1_compatibility */
3849 
3850 /* ----------------------- GL_ARB_ES3_2_compatibility ---------------------- */
3851 
3852 #ifndef GL_ARB_ES3_2_compatibility
3853 #define GL_ARB_ES3_2_compatibility 1
3854 
3855 #define GL_PRIMITIVE_BOUNDING_BOX_ARB 0x92BE
3856 #define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB 0x9381
3857 #define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB 0x9382
3858 
3859 typedef void (GLAPIENTRY * PFNGLPRIMITIVEBOUNDINGBOXARBPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
3860 
3861 #define glPrimitiveBoundingBoxARB GLEW_GET_FUN(__glewPrimitiveBoundingBoxARB)
3862 
3863 #define GLEW_ARB_ES3_2_compatibility GLEW_GET_VAR(__GLEW_ARB_ES3_2_compatibility)
3864 
3865 #endif /* GL_ARB_ES3_2_compatibility */
3866 
3867 /* ------------------------ GL_ARB_ES3_compatibility ----------------------- */
3868 
3869 #ifndef GL_ARB_ES3_compatibility
3870 #define GL_ARB_ES3_compatibility 1
3871 
3872 #define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
3873 #define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
3874 #define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
3875 #define GL_MAX_ELEMENT_INDEX 0x8D6B
3876 #define GL_COMPRESSED_R11_EAC 0x9270
3877 #define GL_COMPRESSED_SIGNED_R11_EAC 0x9271
3878 #define GL_COMPRESSED_RG11_EAC 0x9272
3879 #define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273
3880 #define GL_COMPRESSED_RGB8_ETC2 0x9274
3881 #define GL_COMPRESSED_SRGB8_ETC2 0x9275
3882 #define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
3883 #define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
3884 #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
3885 #define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
3886 
3887 #define GLEW_ARB_ES3_compatibility GLEW_GET_VAR(__GLEW_ARB_ES3_compatibility)
3888 
3889 #endif /* GL_ARB_ES3_compatibility */
3890 
3891 /* ------------------------ GL_ARB_arrays_of_arrays ------------------------ */
3892 
3893 #ifndef GL_ARB_arrays_of_arrays
3894 #define GL_ARB_arrays_of_arrays 1
3895 
3896 #define GLEW_ARB_arrays_of_arrays GLEW_GET_VAR(__GLEW_ARB_arrays_of_arrays)
3897 
3898 #endif /* GL_ARB_arrays_of_arrays */
3899 
3900 /* -------------------------- GL_ARB_base_instance ------------------------- */
3901 
3902 #ifndef GL_ARB_base_instance
3903 #define GL_ARB_base_instance 1
3904 
3905 typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance);
3906 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLuint baseinstance);
3907 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance);
3908 
3909 #define glDrawArraysInstancedBaseInstance GLEW_GET_FUN(__glewDrawArraysInstancedBaseInstance)
3910 #define glDrawElementsInstancedBaseInstance GLEW_GET_FUN(__glewDrawElementsInstancedBaseInstance)
3911 #define glDrawElementsInstancedBaseVertexBaseInstance GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexBaseInstance)
3912 
3913 #define GLEW_ARB_base_instance GLEW_GET_VAR(__GLEW_ARB_base_instance)
3914 
3915 #endif /* GL_ARB_base_instance */
3916 
3917 /* ------------------------ GL_ARB_bindless_texture ------------------------ */
3918 
3919 #ifndef GL_ARB_bindless_texture
3920 #define GL_ARB_bindless_texture 1
3921 
3922 #define GL_UNSIGNED_INT64_ARB 0x140F
3923 
3924 typedef GLuint64 (GLAPIENTRY * PFNGLGETIMAGEHANDLEARBPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
3925 typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTUREHANDLEARBPROC) (GLuint texture);
3926 typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTURESAMPLERHANDLEARBPROC) (GLuint texture, GLuint sampler);
3927 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLUI64VARBPROC) (GLuint index, GLenum pname, GLuint64EXT* params);
3928 typedef GLboolean (GLAPIENTRY * PFNGLISIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle);
3929 typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle);
3930 typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC) (GLuint64 handle);
3931 typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle, GLenum access);
3932 typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC) (GLuint64 handle);
3933 typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle);
3934 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC) (GLuint program, GLint location, GLuint64 value);
3935 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* values);
3936 typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64ARBPROC) (GLint location, GLuint64 value);
3937 typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value);
3938 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64ARBPROC) (GLuint index, GLuint64EXT x);
3939 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64VARBPROC) (GLuint index, const GLuint64EXT* v);
3940 
3941 #define glGetImageHandleARB GLEW_GET_FUN(__glewGetImageHandleARB)
3942 #define glGetTextureHandleARB GLEW_GET_FUN(__glewGetTextureHandleARB)
3943 #define glGetTextureSamplerHandleARB GLEW_GET_FUN(__glewGetTextureSamplerHandleARB)
3944 #define glGetVertexAttribLui64vARB GLEW_GET_FUN(__glewGetVertexAttribLui64vARB)
3945 #define glIsImageHandleResidentARB GLEW_GET_FUN(__glewIsImageHandleResidentARB)
3946 #define glIsTextureHandleResidentARB GLEW_GET_FUN(__glewIsTextureHandleResidentARB)
3947 #define glMakeImageHandleNonResidentARB GLEW_GET_FUN(__glewMakeImageHandleNonResidentARB)
3948 #define glMakeImageHandleResidentARB GLEW_GET_FUN(__glewMakeImageHandleResidentARB)
3949 #define glMakeTextureHandleNonResidentARB GLEW_GET_FUN(__glewMakeTextureHandleNonResidentARB)
3950 #define glMakeTextureHandleResidentARB GLEW_GET_FUN(__glewMakeTextureHandleResidentARB)
3951 #define glProgramUniformHandleui64ARB GLEW_GET_FUN(__glewProgramUniformHandleui64ARB)
3952 #define glProgramUniformHandleui64vARB GLEW_GET_FUN(__glewProgramUniformHandleui64vARB)
3953 #define glUniformHandleui64ARB GLEW_GET_FUN(__glewUniformHandleui64ARB)
3954 #define glUniformHandleui64vARB GLEW_GET_FUN(__glewUniformHandleui64vARB)
3955 #define glVertexAttribL1ui64ARB GLEW_GET_FUN(__glewVertexAttribL1ui64ARB)
3956 #define glVertexAttribL1ui64vARB GLEW_GET_FUN(__glewVertexAttribL1ui64vARB)
3957 
3958 #define GLEW_ARB_bindless_texture GLEW_GET_VAR(__GLEW_ARB_bindless_texture)
3959 
3960 #endif /* GL_ARB_bindless_texture */
3961 
3962 /* ----------------------- GL_ARB_blend_func_extended ---------------------- */
3963 
3964 #ifndef GL_ARB_blend_func_extended
3965 #define GL_ARB_blend_func_extended 1
3966 
3967 #define GL_SRC1_COLOR 0x88F9
3968 #define GL_ONE_MINUS_SRC1_COLOR 0x88FA
3969 #define GL_ONE_MINUS_SRC1_ALPHA 0x88FB
3970 #define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC
3971 
3972 typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar * name);
3973 typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar * name);
3974 
3975 #define glBindFragDataLocationIndexed GLEW_GET_FUN(__glewBindFragDataLocationIndexed)
3976 #define glGetFragDataIndex GLEW_GET_FUN(__glewGetFragDataIndex)
3977 
3978 #define GLEW_ARB_blend_func_extended GLEW_GET_VAR(__GLEW_ARB_blend_func_extended)
3979 
3980 #endif /* GL_ARB_blend_func_extended */
3981 
3982 /* ------------------------- GL_ARB_buffer_storage ------------------------- */
3983 
3984 #ifndef GL_ARB_buffer_storage
3985 #define GL_ARB_buffer_storage 1
3986 
3987 #define GL_MAP_READ_BIT 0x0001
3988 #define GL_MAP_WRITE_BIT 0x0002
3989 #define GL_MAP_PERSISTENT_BIT 0x00000040
3990 #define GL_MAP_COHERENT_BIT 0x00000080
3991 #define GL_DYNAMIC_STORAGE_BIT 0x0100
3992 #define GL_CLIENT_STORAGE_BIT 0x0200
3993 #define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000
3994 #define GL_BUFFER_IMMUTABLE_STORAGE 0x821F
3995 #define GL_BUFFER_STORAGE_FLAGS 0x8220
3996 
3997 typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
3998 
3999 #define glBufferStorage GLEW_GET_FUN(__glewBufferStorage)
4000 
4001 #define GLEW_ARB_buffer_storage GLEW_GET_VAR(__GLEW_ARB_buffer_storage)
4002 
4003 #endif /* GL_ARB_buffer_storage */
4004 
4005 /* ---------------------------- GL_ARB_cl_event ---------------------------- */
4006 
4007 #ifndef GL_ARB_cl_event
4008 #define GL_ARB_cl_event 1
4009 
4010 #define GL_SYNC_CL_EVENT_ARB 0x8240
4011 #define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241
4012 
4013 typedef struct _cl_context *cl_context;
4014 typedef struct _cl_event *cl_event;
4015 
4016 typedef GLsync (GLAPIENTRY * PFNGLCREATESYNCFROMCLEVENTARBPROC) (cl_context context, cl_event event, GLbitfield flags);
4017 
4018 #define glCreateSyncFromCLeventARB GLEW_GET_FUN(__glewCreateSyncFromCLeventARB)
4019 
4020 #define GLEW_ARB_cl_event GLEW_GET_VAR(__GLEW_ARB_cl_event)
4021 
4022 #endif /* GL_ARB_cl_event */
4023 
4024 /* ----------------------- GL_ARB_clear_buffer_object ---------------------- */
4025 
4026 #ifndef GL_ARB_clear_buffer_object
4027 #define GL_ARB_clear_buffer_object 1
4028 
4029 typedef void (GLAPIENTRY * PFNGLCLEARBUFFERDATAPROC) (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data);
4030 typedef void (GLAPIENTRY * PFNGLCLEARBUFFERSUBDATAPROC) (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
4031 typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
4032 typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
4033 
4034 #define glClearBufferData GLEW_GET_FUN(__glewClearBufferData)
4035 #define glClearBufferSubData GLEW_GET_FUN(__glewClearBufferSubData)
4036 #define glClearNamedBufferDataEXT GLEW_GET_FUN(__glewClearNamedBufferDataEXT)
4037 #define glClearNamedBufferSubDataEXT GLEW_GET_FUN(__glewClearNamedBufferSubDataEXT)
4038 
4039 #define GLEW_ARB_clear_buffer_object GLEW_GET_VAR(__GLEW_ARB_clear_buffer_object)
4040 
4041 #endif /* GL_ARB_clear_buffer_object */
4042 
4043 /* -------------------------- GL_ARB_clear_texture ------------------------- */
4044 
4045 #ifndef GL_ARB_clear_texture
4046 #define GL_ARB_clear_texture 1
4047 
4048 #define GL_CLEAR_TEXTURE 0x9365
4049 
4050 typedef void (GLAPIENTRY * PFNGLCLEARTEXIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
4051 typedef void (GLAPIENTRY * PFNGLCLEARTEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
4052 
4053 #define glClearTexImage GLEW_GET_FUN(__glewClearTexImage)
4054 #define glClearTexSubImage GLEW_GET_FUN(__glewClearTexSubImage)
4055 
4056 #define GLEW_ARB_clear_texture GLEW_GET_VAR(__GLEW_ARB_clear_texture)
4057 
4058 #endif /* GL_ARB_clear_texture */
4059 
4060 /* -------------------------- GL_ARB_clip_control -------------------------- */
4061 
4062 #ifndef GL_ARB_clip_control
4063 #define GL_ARB_clip_control 1
4064 
4065 #define GL_LOWER_LEFT 0x8CA1
4066 #define GL_UPPER_LEFT 0x8CA2
4067 #define GL_CLIP_ORIGIN 0x935C
4068 #define GL_CLIP_DEPTH_MODE 0x935D
4069 #define GL_NEGATIVE_ONE_TO_ONE 0x935E
4070 #define GL_ZERO_TO_ONE 0x935F
4071 
4072 typedef void (GLAPIENTRY * PFNGLCLIPCONTROLPROC) (GLenum origin, GLenum depth);
4073 
4074 #define glClipControl GLEW_GET_FUN(__glewClipControl)
4075 
4076 #define GLEW_ARB_clip_control GLEW_GET_VAR(__GLEW_ARB_clip_control)
4077 
4078 #endif /* GL_ARB_clip_control */
4079 
4080 /* ----------------------- GL_ARB_color_buffer_float ----------------------- */
4081 
4082 #ifndef GL_ARB_color_buffer_float
4083 #define GL_ARB_color_buffer_float 1
4084 
4085 #define GL_RGBA_FLOAT_MODE_ARB 0x8820
4086 #define GL_CLAMP_VERTEX_COLOR_ARB 0x891A
4087 #define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B
4088 #define GL_CLAMP_READ_COLOR_ARB 0x891C
4089 #define GL_FIXED_ONLY_ARB 0x891D
4090 
4091 typedef void (GLAPIENTRY * PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp);
4092 
4093 #define glClampColorARB GLEW_GET_FUN(__glewClampColorARB)
4094 
4095 #define GLEW_ARB_color_buffer_float GLEW_GET_VAR(__GLEW_ARB_color_buffer_float)
4096 
4097 #endif /* GL_ARB_color_buffer_float */
4098 
4099 /* -------------------------- GL_ARB_compatibility ------------------------- */
4100 
4101 #ifndef GL_ARB_compatibility
4102 #define GL_ARB_compatibility 1
4103 
4104 #define GLEW_ARB_compatibility GLEW_GET_VAR(__GLEW_ARB_compatibility)
4105 
4106 #endif /* GL_ARB_compatibility */
4107 
4108 /* ---------------- GL_ARB_compressed_texture_pixel_storage ---------------- */
4109 
4110 #ifndef GL_ARB_compressed_texture_pixel_storage
4111 #define GL_ARB_compressed_texture_pixel_storage 1
4112 
4113 #define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127
4114 #define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128
4115 #define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129
4116 #define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A
4117 #define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B
4118 #define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C
4119 #define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D
4120 #define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E
4121 
4122 #define GLEW_ARB_compressed_texture_pixel_storage GLEW_GET_VAR(__GLEW_ARB_compressed_texture_pixel_storage)
4123 
4124 #endif /* GL_ARB_compressed_texture_pixel_storage */
4125 
4126 /* ------------------------- GL_ARB_compute_shader ------------------------- */
4127 
4128 #ifndef GL_ARB_compute_shader
4129 #define GL_ARB_compute_shader 1
4130 
4131 #define GL_COMPUTE_SHADER_BIT 0x00000020
4132 #define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262
4133 #define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263
4134 #define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264
4135 #define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265
4136 #define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266
4137 #define GL_COMPUTE_WORK_GROUP_SIZE 0x8267
4138 #define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB
4139 #define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC
4140 #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED
4141 #define GL_DISPATCH_INDIRECT_BUFFER 0x90EE
4142 #define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF
4143 #define GL_COMPUTE_SHADER 0x91B9
4144 #define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB
4145 #define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC
4146 #define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD
4147 #define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE
4148 #define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF
4149 
4150 typedef void (GLAPIENTRY * PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
4151 typedef void (GLAPIENTRY * PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect);
4152 
4153 #define glDispatchCompute GLEW_GET_FUN(__glewDispatchCompute)
4154 #define glDispatchComputeIndirect GLEW_GET_FUN(__glewDispatchComputeIndirect)
4155 
4156 #define GLEW_ARB_compute_shader GLEW_GET_VAR(__GLEW_ARB_compute_shader)
4157 
4158 #endif /* GL_ARB_compute_shader */
4159 
4160 /* ------------------- GL_ARB_compute_variable_group_size ------------------ */
4161 
4162 #ifndef GL_ARB_compute_variable_group_size
4163 #define GL_ARB_compute_variable_group_size 1
4164 
4165 #define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB
4166 #define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF
4167 #define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344
4168 #define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345
4169 
4170 typedef void (GLAPIENTRY * PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z);
4171 
4172 #define glDispatchComputeGroupSizeARB GLEW_GET_FUN(__glewDispatchComputeGroupSizeARB)
4173 
4174 #define GLEW_ARB_compute_variable_group_size GLEW_GET_VAR(__GLEW_ARB_compute_variable_group_size)
4175 
4176 #endif /* GL_ARB_compute_variable_group_size */
4177 
4178 /* ------------------- GL_ARB_conditional_render_inverted ------------------ */
4179 
4180 #ifndef GL_ARB_conditional_render_inverted
4181 #define GL_ARB_conditional_render_inverted 1
4182 
4183 #define GL_QUERY_WAIT_INVERTED 0x8E17
4184 #define GL_QUERY_NO_WAIT_INVERTED 0x8E18
4185 #define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19
4186 #define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A
4187 
4188 #define GLEW_ARB_conditional_render_inverted GLEW_GET_VAR(__GLEW_ARB_conditional_render_inverted)
4189 
4190 #endif /* GL_ARB_conditional_render_inverted */
4191 
4192 /* ----------------------- GL_ARB_conservative_depth ----------------------- */
4193 
4194 #ifndef GL_ARB_conservative_depth
4195 #define GL_ARB_conservative_depth 1
4196 
4197 #define GLEW_ARB_conservative_depth GLEW_GET_VAR(__GLEW_ARB_conservative_depth)
4198 
4199 #endif /* GL_ARB_conservative_depth */
4200 
4201 /* --------------------------- GL_ARB_copy_buffer -------------------------- */
4202 
4203 #ifndef GL_ARB_copy_buffer
4204 #define GL_ARB_copy_buffer 1
4205 
4206 #define GL_COPY_READ_BUFFER 0x8F36
4207 #define GL_COPY_WRITE_BUFFER 0x8F37
4208 
4209 typedef void (GLAPIENTRY * PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size);
4210 
4211 #define glCopyBufferSubData GLEW_GET_FUN(__glewCopyBufferSubData)
4212 
4213 #define GLEW_ARB_copy_buffer GLEW_GET_VAR(__GLEW_ARB_copy_buffer)
4214 
4215 #endif /* GL_ARB_copy_buffer */
4216 
4217 /* --------------------------- GL_ARB_copy_image --------------------------- */
4218 
4219 #ifndef GL_ARB_copy_image
4220 #define GL_ARB_copy_image 1
4221 
4222 typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
4223 
4224 #define glCopyImageSubData GLEW_GET_FUN(__glewCopyImageSubData)
4225 
4226 #define GLEW_ARB_copy_image GLEW_GET_VAR(__GLEW_ARB_copy_image)
4227 
4228 #endif /* GL_ARB_copy_image */
4229 
4230 /* -------------------------- GL_ARB_cull_distance ------------------------- */
4231 
4232 #ifndef GL_ARB_cull_distance
4233 #define GL_ARB_cull_distance 1
4234 
4235 #define GL_MAX_CULL_DISTANCES 0x82F9
4236 #define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA
4237 
4238 #define GLEW_ARB_cull_distance GLEW_GET_VAR(__GLEW_ARB_cull_distance)
4239 
4240 #endif /* GL_ARB_cull_distance */
4241 
4242 /* -------------------------- GL_ARB_debug_output -------------------------- */
4243 
4244 #ifndef GL_ARB_debug_output
4245 #define GL_ARB_debug_output 1
4246 
4247 #define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242
4248 #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243
4249 #define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244
4250 #define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245
4251 #define GL_DEBUG_SOURCE_API_ARB 0x8246
4252 #define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247
4253 #define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248
4254 #define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249
4255 #define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A
4256 #define GL_DEBUG_SOURCE_OTHER_ARB 0x824B
4257 #define GL_DEBUG_TYPE_ERROR_ARB 0x824C
4258 #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D
4259 #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E
4260 #define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F
4261 #define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250
4262 #define GL_DEBUG_TYPE_OTHER_ARB 0x8251
4263 #define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143
4264 #define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144
4265 #define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145
4266 #define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
4267 #define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
4268 #define GL_DEBUG_SEVERITY_LOW_ARB 0x9148
4269 
4270 typedef void (GLAPIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam);
4271 
4272 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const void *userParam);
4273 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
4274 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf);
4275 typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
4276 
4277 #define glDebugMessageCallbackARB GLEW_GET_FUN(__glewDebugMessageCallbackARB)
4278 #define glDebugMessageControlARB GLEW_GET_FUN(__glewDebugMessageControlARB)
4279 #define glDebugMessageInsertARB GLEW_GET_FUN(__glewDebugMessageInsertARB)
4280 #define glGetDebugMessageLogARB GLEW_GET_FUN(__glewGetDebugMessageLogARB)
4281 
4282 #define GLEW_ARB_debug_output GLEW_GET_VAR(__GLEW_ARB_debug_output)
4283 
4284 #endif /* GL_ARB_debug_output */
4285 
4286 /* ----------------------- GL_ARB_depth_buffer_float ----------------------- */
4287 
4288 #ifndef GL_ARB_depth_buffer_float
4289 #define GL_ARB_depth_buffer_float 1
4290 
4291 #define GL_DEPTH_COMPONENT32F 0x8CAC
4292 #define GL_DEPTH32F_STENCIL8 0x8CAD
4293 #define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
4294 
4295 #define GLEW_ARB_depth_buffer_float GLEW_GET_VAR(__GLEW_ARB_depth_buffer_float)
4296 
4297 #endif /* GL_ARB_depth_buffer_float */
4298 
4299 /* --------------------------- GL_ARB_depth_clamp -------------------------- */
4300 
4301 #ifndef GL_ARB_depth_clamp
4302 #define GL_ARB_depth_clamp 1
4303 
4304 #define GL_DEPTH_CLAMP 0x864F
4305 
4306 #define GLEW_ARB_depth_clamp GLEW_GET_VAR(__GLEW_ARB_depth_clamp)
4307 
4308 #endif /* GL_ARB_depth_clamp */
4309 
4310 /* -------------------------- GL_ARB_depth_texture ------------------------- */
4311 
4312 #ifndef GL_ARB_depth_texture
4313 #define GL_ARB_depth_texture 1
4314 
4315 #define GL_DEPTH_COMPONENT16_ARB 0x81A5
4316 #define GL_DEPTH_COMPONENT24_ARB 0x81A6
4317 #define GL_DEPTH_COMPONENT32_ARB 0x81A7
4318 #define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A
4319 #define GL_DEPTH_TEXTURE_MODE_ARB 0x884B
4320 
4321 #define GLEW_ARB_depth_texture GLEW_GET_VAR(__GLEW_ARB_depth_texture)
4322 
4323 #endif /* GL_ARB_depth_texture */
4324 
4325 /* ----------------------- GL_ARB_derivative_control ----------------------- */
4326 
4327 #ifndef GL_ARB_derivative_control
4328 #define GL_ARB_derivative_control 1
4329 
4330 #define GLEW_ARB_derivative_control GLEW_GET_VAR(__GLEW_ARB_derivative_control)
4331 
4332 #endif /* GL_ARB_derivative_control */
4333 
4334 /* ----------------------- GL_ARB_direct_state_access ---------------------- */
4335 
4336 #ifndef GL_ARB_direct_state_access
4337 #define GL_ARB_direct_state_access 1
4338 
4339 #define GL_TEXTURE_TARGET 0x1006
4340 #define GL_QUERY_TARGET 0x82EA
4341 
4342 typedef void (GLAPIENTRY * PFNGLBINDTEXTUREUNITPROC) (GLuint unit, GLuint texture);
4343 typedef void (GLAPIENTRY * PFNGLBLITNAMEDFRAMEBUFFERPROC) (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
4344 typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) (GLuint framebuffer, GLenum target);
4345 typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERDATAPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
4346 typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
4347 typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
4348 typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat* value);
4349 typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint* value);
4350 typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint* value);
4351 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
4352 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
4353 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
4354 typedef void (GLAPIENTRY * PFNGLCOPYNAMEDBUFFERSUBDATAPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
4355 typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
4356 typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
4357 typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
4358 typedef void (GLAPIENTRY * PFNGLCREATEBUFFERSPROC) (GLsizei n, GLuint* buffers);
4359 typedef void (GLAPIENTRY * PFNGLCREATEFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers);
4360 typedef void (GLAPIENTRY * PFNGLCREATEPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines);
4361 typedef void (GLAPIENTRY * PFNGLCREATEQUERIESPROC) (GLenum target, GLsizei n, GLuint* ids);
4362 typedef void (GLAPIENTRY * PFNGLCREATERENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers);
4363 typedef void (GLAPIENTRY * PFNGLCREATESAMPLERSPROC) (GLsizei n, GLuint* samplers);
4364 typedef void (GLAPIENTRY * PFNGLCREATETEXTURESPROC) (GLenum target, GLsizei n, GLuint* textures);
4365 typedef void (GLAPIENTRY * PFNGLCREATETRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids);
4366 typedef void (GLAPIENTRY * PFNGLCREATEVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays);
4367 typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index);
4368 typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index);
4369 typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
4370 typedef void (GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPPROC) (GLuint texture);
4371 typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLsizei bufSize, void *pixels);
4372 typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) (GLuint buffer, GLenum pname, GLint64* params);
4373 typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVPROC) (GLuint buffer, GLenum pname, GLint* params);
4374 typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVPROC) (GLuint buffer, GLenum pname, void** params);
4375 typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
4376 typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params);
4377 typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) (GLuint framebuffer, GLenum pname, GLint* param);
4378 typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) (GLuint renderbuffer, GLenum pname, GLint* params);
4379 typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
4380 typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
4381 typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
4382 typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
4383 typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
4384 typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVPROC) (GLuint texture, GLint level, GLenum pname, GLfloat* params);
4385 typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVPROC) (GLuint texture, GLint level, GLenum pname, GLint* params);
4386 typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, GLint* params);
4387 typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, GLuint* params);
4388 typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, GLfloat* params);
4389 typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, GLint* params);
4390 typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKI64_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint64* param);
4391 typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKI_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint* param);
4392 typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKIVPROC) (GLuint xfb, GLenum pname, GLint* param);
4393 typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINDEXED64IVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint64* param);
4394 typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINDEXEDIVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param);
4395 typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYIVPROC) (GLuint vaobj, GLenum pname, GLint* param);
4396 typedef void (GLAPIENTRY * PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments);
4397 typedef void (GLAPIENTRY * PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
4398 typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERPROC) (GLuint buffer, GLenum access);
4399 typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
4400 typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
4401 typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
4402 typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
4403 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC) (GLuint framebuffer, GLenum mode);
4404 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs);
4405 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) (GLuint framebuffer, GLenum pname, GLint param);
4406 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC) (GLuint framebuffer, GLenum mode);
4407 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
4408 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
4409 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
4410 typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
4411 typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
4412 typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERPROC) (GLuint texture, GLenum internalformat, GLuint buffer);
4413 typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERRANGEPROC) (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
4414 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, const GLint* params);
4415 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, const GLuint* params);
4416 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFPROC) (GLuint texture, GLenum pname, GLfloat param);
4417 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, const GLfloat* param);
4418 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIPROC) (GLuint texture, GLenum pname, GLint param);
4419 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, const GLint* param);
4420 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
4421 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
4422 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
4423 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
4424 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
4425 typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
4426 typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
4427 typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
4428 typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) (GLuint xfb, GLuint index, GLuint buffer);
4429 typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
4430 typedef GLboolean (GLAPIENTRY * PFNGLUNMAPNAMEDBUFFERPROC) (GLuint buffer);
4431 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBBINDINGPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex);
4432 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
4433 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBIFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
4434 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBLFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
4435 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYBINDINGDIVISORPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor);
4436 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYELEMENTBUFFERPROC) (GLuint vaobj, GLuint buffer);
4437 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBUFFERPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
4438 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBUFFERSPROC) (GLuint vaobj, GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizei *strides);
4439 
4440 #define glBindTextureUnit GLEW_GET_FUN(__glewBindTextureUnit)
4441 #define glBlitNamedFramebuffer GLEW_GET_FUN(__glewBlitNamedFramebuffer)
4442 #define glCheckNamedFramebufferStatus GLEW_GET_FUN(__glewCheckNamedFramebufferStatus)
4443 #define glClearNamedBufferData GLEW_GET_FUN(__glewClearNamedBufferData)
4444 #define glClearNamedBufferSubData GLEW_GET_FUN(__glewClearNamedBufferSubData)
4445 #define glClearNamedFramebufferfi GLEW_GET_FUN(__glewClearNamedFramebufferfi)
4446 #define glClearNamedFramebufferfv GLEW_GET_FUN(__glewClearNamedFramebufferfv)
4447 #define glClearNamedFramebufferiv GLEW_GET_FUN(__glewClearNamedFramebufferiv)
4448 #define glClearNamedFramebufferuiv GLEW_GET_FUN(__glewClearNamedFramebufferuiv)
4449 #define glCompressedTextureSubImage1D GLEW_GET_FUN(__glewCompressedTextureSubImage1D)
4450 #define glCompressedTextureSubImage2D GLEW_GET_FUN(__glewCompressedTextureSubImage2D)
4451 #define glCompressedTextureSubImage3D GLEW_GET_FUN(__glewCompressedTextureSubImage3D)
4452 #define glCopyNamedBufferSubData GLEW_GET_FUN(__glewCopyNamedBufferSubData)
4453 #define glCopyTextureSubImage1D GLEW_GET_FUN(__glewCopyTextureSubImage1D)
4454 #define glCopyTextureSubImage2D GLEW_GET_FUN(__glewCopyTextureSubImage2D)
4455 #define glCopyTextureSubImage3D GLEW_GET_FUN(__glewCopyTextureSubImage3D)
4456 #define glCreateBuffers GLEW_GET_FUN(__glewCreateBuffers)
4457 #define glCreateFramebuffers GLEW_GET_FUN(__glewCreateFramebuffers)
4458 #define glCreateProgramPipelines GLEW_GET_FUN(__glewCreateProgramPipelines)
4459 #define glCreateQueries GLEW_GET_FUN(__glewCreateQueries)
4460 #define glCreateRenderbuffers GLEW_GET_FUN(__glewCreateRenderbuffers)
4461 #define glCreateSamplers GLEW_GET_FUN(__glewCreateSamplers)
4462 #define glCreateTextures GLEW_GET_FUN(__glewCreateTextures)
4463 #define glCreateTransformFeedbacks GLEW_GET_FUN(__glewCreateTransformFeedbacks)
4464 #define glCreateVertexArrays GLEW_GET_FUN(__glewCreateVertexArrays)
4465 #define glDisableVertexArrayAttrib GLEW_GET_FUN(__glewDisableVertexArrayAttrib)
4466 #define glEnableVertexArrayAttrib GLEW_GET_FUN(__glewEnableVertexArrayAttrib)
4467 #define glFlushMappedNamedBufferRange GLEW_GET_FUN(__glewFlushMappedNamedBufferRange)
4468 #define glGenerateTextureMipmap GLEW_GET_FUN(__glewGenerateTextureMipmap)
4469 #define glGetCompressedTextureImage GLEW_GET_FUN(__glewGetCompressedTextureImage)
4470 #define glGetNamedBufferParameteri64v GLEW_GET_FUN(__glewGetNamedBufferParameteri64v)
4471 #define glGetNamedBufferParameteriv GLEW_GET_FUN(__glewGetNamedBufferParameteriv)
4472 #define glGetNamedBufferPointerv GLEW_GET_FUN(__glewGetNamedBufferPointerv)
4473 #define glGetNamedBufferSubData GLEW_GET_FUN(__glewGetNamedBufferSubData)
4474 #define glGetNamedFramebufferAttachmentParameteriv GLEW_GET_FUN(__glewGetNamedFramebufferAttachmentParameteriv)
4475 #define glGetNamedFramebufferParameteriv GLEW_GET_FUN(__glewGetNamedFramebufferParameteriv)
4476 #define glGetNamedRenderbufferParameteriv GLEW_GET_FUN(__glewGetNamedRenderbufferParameteriv)
4477 #define glGetQueryBufferObjecti64v GLEW_GET_FUN(__glewGetQueryBufferObjecti64v)
4478 #define glGetQueryBufferObjectiv GLEW_GET_FUN(__glewGetQueryBufferObjectiv)
4479 #define glGetQueryBufferObjectui64v GLEW_GET_FUN(__glewGetQueryBufferObjectui64v)
4480 #define glGetQueryBufferObjectuiv GLEW_GET_FUN(__glewGetQueryBufferObjectuiv)
4481 #define glGetTextureImage GLEW_GET_FUN(__glewGetTextureImage)
4482 #define glGetTextureLevelParameterfv GLEW_GET_FUN(__glewGetTextureLevelParameterfv)
4483 #define glGetTextureLevelParameteriv GLEW_GET_FUN(__glewGetTextureLevelParameteriv)
4484 #define glGetTextureParameterIiv GLEW_GET_FUN(__glewGetTextureParameterIiv)
4485 #define glGetTextureParameterIuiv GLEW_GET_FUN(__glewGetTextureParameterIuiv)
4486 #define glGetTextureParameterfv GLEW_GET_FUN(__glewGetTextureParameterfv)
4487 #define glGetTextureParameteriv GLEW_GET_FUN(__glewGetTextureParameteriv)
4488 #define glGetTransformFeedbacki64_v GLEW_GET_FUN(__glewGetTransformFeedbacki64_v)
4489 #define glGetTransformFeedbacki_v GLEW_GET_FUN(__glewGetTransformFeedbacki_v)
4490 #define glGetTransformFeedbackiv GLEW_GET_FUN(__glewGetTransformFeedbackiv)
4491 #define glGetVertexArrayIndexed64iv GLEW_GET_FUN(__glewGetVertexArrayIndexed64iv)
4492 #define glGetVertexArrayIndexediv GLEW_GET_FUN(__glewGetVertexArrayIndexediv)
4493 #define glGetVertexArrayiv GLEW_GET_FUN(__glewGetVertexArrayiv)
4494 #define glInvalidateNamedFramebufferData GLEW_GET_FUN(__glewInvalidateNamedFramebufferData)
4495 #define glInvalidateNamedFramebufferSubData GLEW_GET_FUN(__glewInvalidateNamedFramebufferSubData)
4496 #define glMapNamedBuffer GLEW_GET_FUN(__glewMapNamedBuffer)
4497 #define glMapNamedBufferRange GLEW_GET_FUN(__glewMapNamedBufferRange)
4498 #define glNamedBufferData GLEW_GET_FUN(__glewNamedBufferData)
4499 #define glNamedBufferStorage GLEW_GET_FUN(__glewNamedBufferStorage)
4500 #define glNamedBufferSubData GLEW_GET_FUN(__glewNamedBufferSubData)
4501 #define glNamedFramebufferDrawBuffer GLEW_GET_FUN(__glewNamedFramebufferDrawBuffer)
4502 #define glNamedFramebufferDrawBuffers GLEW_GET_FUN(__glewNamedFramebufferDrawBuffers)
4503 #define glNamedFramebufferParameteri GLEW_GET_FUN(__glewNamedFramebufferParameteri)
4504 #define glNamedFramebufferReadBuffer GLEW_GET_FUN(__glewNamedFramebufferReadBuffer)
4505 #define glNamedFramebufferRenderbuffer GLEW_GET_FUN(__glewNamedFramebufferRenderbuffer)
4506 #define glNamedFramebufferTexture GLEW_GET_FUN(__glewNamedFramebufferTexture)
4507 #define glNamedFramebufferTextureLayer GLEW_GET_FUN(__glewNamedFramebufferTextureLayer)
4508 #define glNamedRenderbufferStorage GLEW_GET_FUN(__glewNamedRenderbufferStorage)
4509 #define glNamedRenderbufferStorageMultisample GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisample)
4510 #define glTextureBuffer GLEW_GET_FUN(__glewTextureBuffer)
4511 #define glTextureBufferRange GLEW_GET_FUN(__glewTextureBufferRange)
4512 #define glTextureParameterIiv GLEW_GET_FUN(__glewTextureParameterIiv)
4513 #define glTextureParameterIuiv GLEW_GET_FUN(__glewTextureParameterIuiv)
4514 #define glTextureParameterf GLEW_GET_FUN(__glewTextureParameterf)
4515 #define glTextureParameterfv GLEW_GET_FUN(__glewTextureParameterfv)
4516 #define glTextureParameteri GLEW_GET_FUN(__glewTextureParameteri)
4517 #define glTextureParameteriv GLEW_GET_FUN(__glewTextureParameteriv)
4518 #define glTextureStorage1D GLEW_GET_FUN(__glewTextureStorage1D)
4519 #define glTextureStorage2D GLEW_GET_FUN(__glewTextureStorage2D)
4520 #define glTextureStorage2DMultisample GLEW_GET_FUN(__glewTextureStorage2DMultisample)
4521 #define glTextureStorage3D GLEW_GET_FUN(__glewTextureStorage3D)
4522 #define glTextureStorage3DMultisample GLEW_GET_FUN(__glewTextureStorage3DMultisample)
4523 #define glTextureSubImage1D GLEW_GET_FUN(__glewTextureSubImage1D)
4524 #define glTextureSubImage2D GLEW_GET_FUN(__glewTextureSubImage2D)
4525 #define glTextureSubImage3D GLEW_GET_FUN(__glewTextureSubImage3D)
4526 #define glTransformFeedbackBufferBase GLEW_GET_FUN(__glewTransformFeedbackBufferBase)
4527 #define glTransformFeedbackBufferRange GLEW_GET_FUN(__glewTransformFeedbackBufferRange)
4528 #define glUnmapNamedBuffer GLEW_GET_FUN(__glewUnmapNamedBuffer)
4529 #define glVertexArrayAttribBinding GLEW_GET_FUN(__glewVertexArrayAttribBinding)
4530 #define glVertexArrayAttribFormat GLEW_GET_FUN(__glewVertexArrayAttribFormat)
4531 #define glVertexArrayAttribIFormat GLEW_GET_FUN(__glewVertexArrayAttribIFormat)
4532 #define glVertexArrayAttribLFormat GLEW_GET_FUN(__glewVertexArrayAttribLFormat)
4533 #define glVertexArrayBindingDivisor GLEW_GET_FUN(__glewVertexArrayBindingDivisor)
4534 #define glVertexArrayElementBuffer GLEW_GET_FUN(__glewVertexArrayElementBuffer)
4535 #define glVertexArrayVertexBuffer GLEW_GET_FUN(__glewVertexArrayVertexBuffer)
4536 #define glVertexArrayVertexBuffers GLEW_GET_FUN(__glewVertexArrayVertexBuffers)
4537 
4538 #define GLEW_ARB_direct_state_access GLEW_GET_VAR(__GLEW_ARB_direct_state_access)
4539 
4540 #endif /* GL_ARB_direct_state_access */
4541 
4542 /* -------------------------- GL_ARB_draw_buffers -------------------------- */
4543 
4544 #ifndef GL_ARB_draw_buffers
4545 #define GL_ARB_draw_buffers 1
4546 
4547 #define GL_MAX_DRAW_BUFFERS_ARB 0x8824
4548 #define GL_DRAW_BUFFER0_ARB 0x8825
4549 #define GL_DRAW_BUFFER1_ARB 0x8826
4550 #define GL_DRAW_BUFFER2_ARB 0x8827
4551 #define GL_DRAW_BUFFER3_ARB 0x8828
4552 #define GL_DRAW_BUFFER4_ARB 0x8829
4553 #define GL_DRAW_BUFFER5_ARB 0x882A
4554 #define GL_DRAW_BUFFER6_ARB 0x882B
4555 #define GL_DRAW_BUFFER7_ARB 0x882C
4556 #define GL_DRAW_BUFFER8_ARB 0x882D
4557 #define GL_DRAW_BUFFER9_ARB 0x882E
4558 #define GL_DRAW_BUFFER10_ARB 0x882F
4559 #define GL_DRAW_BUFFER11_ARB 0x8830
4560 #define GL_DRAW_BUFFER12_ARB 0x8831
4561 #define GL_DRAW_BUFFER13_ARB 0x8832
4562 #define GL_DRAW_BUFFER14_ARB 0x8833
4563 #define GL_DRAW_BUFFER15_ARB 0x8834
4564 
4565 typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum* bufs);
4566 
4567 #define glDrawBuffersARB GLEW_GET_FUN(__glewDrawBuffersARB)
4568 
4569 #define GLEW_ARB_draw_buffers GLEW_GET_VAR(__GLEW_ARB_draw_buffers)
4570 
4571 #endif /* GL_ARB_draw_buffers */
4572 
4573 /* ----------------------- GL_ARB_draw_buffers_blend ----------------------- */
4574 
4575 #ifndef GL_ARB_draw_buffers_blend
4576 #define GL_ARB_draw_buffers_blend 1
4577 
4578 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
4579 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode);
4580 typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
4581 typedef void (GLAPIENTRY * PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst);
4582 
4583 #define glBlendEquationSeparateiARB GLEW_GET_FUN(__glewBlendEquationSeparateiARB)
4584 #define glBlendEquationiARB GLEW_GET_FUN(__glewBlendEquationiARB)
4585 #define glBlendFuncSeparateiARB GLEW_GET_FUN(__glewBlendFuncSeparateiARB)
4586 #define glBlendFunciARB GLEW_GET_FUN(__glewBlendFunciARB)
4587 
4588 #define GLEW_ARB_draw_buffers_blend GLEW_GET_VAR(__GLEW_ARB_draw_buffers_blend)
4589 
4590 #endif /* GL_ARB_draw_buffers_blend */
4591 
4592 /* -------------------- GL_ARB_draw_elements_base_vertex ------------------- */
4593 
4594 #ifndef GL_ARB_draw_elements_base_vertex
4595 #define GL_ARB_draw_elements_base_vertex 1
4596 
4597 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, void *indices, GLint basevertex);
4598 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex);
4599 typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, void *indices, GLint basevertex);
4600 typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei* count, GLenum type, void**indices, GLsizei primcount, GLint *basevertex);
4601 
4602 #define glDrawElementsBaseVertex GLEW_GET_FUN(__glewDrawElementsBaseVertex)
4603 #define glDrawElementsInstancedBaseVertex GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertex)
4604 #define glDrawRangeElementsBaseVertex GLEW_GET_FUN(__glewDrawRangeElementsBaseVertex)
4605 #define glMultiDrawElementsBaseVertex GLEW_GET_FUN(__glewMultiDrawElementsBaseVertex)
4606 
4607 #define GLEW_ARB_draw_elements_base_vertex GLEW_GET_VAR(__GLEW_ARB_draw_elements_base_vertex)
4608 
4609 #endif /* GL_ARB_draw_elements_base_vertex */
4610 
4611 /* -------------------------- GL_ARB_draw_indirect ------------------------- */
4612 
4613 #ifndef GL_ARB_draw_indirect
4614 #define GL_ARB_draw_indirect 1
4615 
4616 #define GL_DRAW_INDIRECT_BUFFER 0x8F3F
4617 #define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43
4618 
4619 typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect);
4620 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect);
4621 
4622 #define glDrawArraysIndirect GLEW_GET_FUN(__glewDrawArraysIndirect)
4623 #define glDrawElementsIndirect GLEW_GET_FUN(__glewDrawElementsIndirect)
4624 
4625 #define GLEW_ARB_draw_indirect GLEW_GET_VAR(__GLEW_ARB_draw_indirect)
4626 
4627 #endif /* GL_ARB_draw_indirect */
4628 
4629 /* ------------------------- GL_ARB_draw_instanced ------------------------- */
4630 
4631 #ifndef GL_ARB_draw_instanced
4632 #define GL_ARB_draw_instanced 1
4633 
4634 #define GLEW_ARB_draw_instanced GLEW_GET_VAR(__GLEW_ARB_draw_instanced)
4635 
4636 #endif /* GL_ARB_draw_instanced */
4637 
4638 /* ------------------------ GL_ARB_enhanced_layouts ------------------------ */
4639 
4640 #ifndef GL_ARB_enhanced_layouts
4641 #define GL_ARB_enhanced_layouts 1
4642 
4643 #define GL_LOCATION_COMPONENT 0x934A
4644 #define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B
4645 #define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C
4646 
4647 #define GLEW_ARB_enhanced_layouts GLEW_GET_VAR(__GLEW_ARB_enhanced_layouts)
4648 
4649 #endif /* GL_ARB_enhanced_layouts */
4650 
4651 /* -------------------- GL_ARB_explicit_attrib_location -------------------- */
4652 
4653 #ifndef GL_ARB_explicit_attrib_location
4654 #define GL_ARB_explicit_attrib_location 1
4655 
4656 #define GLEW_ARB_explicit_attrib_location GLEW_GET_VAR(__GLEW_ARB_explicit_attrib_location)
4657 
4658 #endif /* GL_ARB_explicit_attrib_location */
4659 
4660 /* -------------------- GL_ARB_explicit_uniform_location ------------------- */
4661 
4662 #ifndef GL_ARB_explicit_uniform_location
4663 #define GL_ARB_explicit_uniform_location 1
4664 
4665 #define GL_MAX_UNIFORM_LOCATIONS 0x826E
4666 
4667 #define GLEW_ARB_explicit_uniform_location GLEW_GET_VAR(__GLEW_ARB_explicit_uniform_location)
4668 
4669 #endif /* GL_ARB_explicit_uniform_location */
4670 
4671 /* ------------------- GL_ARB_fragment_coord_conventions ------------------- */
4672 
4673 #ifndef GL_ARB_fragment_coord_conventions
4674 #define GL_ARB_fragment_coord_conventions 1
4675 
4676 #define GLEW_ARB_fragment_coord_conventions GLEW_GET_VAR(__GLEW_ARB_fragment_coord_conventions)
4677 
4678 #endif /* GL_ARB_fragment_coord_conventions */
4679 
4680 /* --------------------- GL_ARB_fragment_layer_viewport -------------------- */
4681 
4682 #ifndef GL_ARB_fragment_layer_viewport
4683 #define GL_ARB_fragment_layer_viewport 1
4684 
4685 #define GLEW_ARB_fragment_layer_viewport GLEW_GET_VAR(__GLEW_ARB_fragment_layer_viewport)
4686 
4687 #endif /* GL_ARB_fragment_layer_viewport */
4688 
4689 /* ------------------------ GL_ARB_fragment_program ------------------------ */
4690 
4691 #ifndef GL_ARB_fragment_program
4692 #define GL_ARB_fragment_program 1
4693 
4694 #define GL_FRAGMENT_PROGRAM_ARB 0x8804
4695 #define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805
4696 #define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806
4697 #define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807
4698 #define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
4699 #define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
4700 #define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
4701 #define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
4702 #define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
4703 #define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
4704 #define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
4705 #define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
4706 #define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
4707 #define GL_MAX_TEXTURE_COORDS_ARB 0x8871
4708 #define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872
4709 
4710 #define GLEW_ARB_fragment_program GLEW_GET_VAR(__GLEW_ARB_fragment_program)
4711 
4712 #endif /* GL_ARB_fragment_program */
4713 
4714 /* --------------------- GL_ARB_fragment_program_shadow -------------------- */
4715 
4716 #ifndef GL_ARB_fragment_program_shadow
4717 #define GL_ARB_fragment_program_shadow 1
4718 
4719 #define GLEW_ARB_fragment_program_shadow GLEW_GET_VAR(__GLEW_ARB_fragment_program_shadow)
4720 
4721 #endif /* GL_ARB_fragment_program_shadow */
4722 
4723 /* ------------------------- GL_ARB_fragment_shader ------------------------ */
4724 
4725 #ifndef GL_ARB_fragment_shader
4726 #define GL_ARB_fragment_shader 1
4727 
4728 #define GL_FRAGMENT_SHADER_ARB 0x8B30
4729 #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49
4730 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B
4731 
4732 #define GLEW_ARB_fragment_shader GLEW_GET_VAR(__GLEW_ARB_fragment_shader)
4733 
4734 #endif /* GL_ARB_fragment_shader */
4735 
4736 /* -------------------- GL_ARB_fragment_shader_interlock ------------------- */
4737 
4738 #ifndef GL_ARB_fragment_shader_interlock
4739 #define GL_ARB_fragment_shader_interlock 1
4740 
4741 #define GLEW_ARB_fragment_shader_interlock GLEW_GET_VAR(__GLEW_ARB_fragment_shader_interlock)
4742 
4743 #endif /* GL_ARB_fragment_shader_interlock */
4744 
4745 /* ------------------- GL_ARB_framebuffer_no_attachments ------------------- */
4746 
4747 #ifndef GL_ARB_framebuffer_no_attachments
4748 #define GL_ARB_framebuffer_no_attachments 1
4749 
4750 #define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310
4751 #define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311
4752 #define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312
4753 #define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313
4754 #define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314
4755 #define GL_MAX_FRAMEBUFFER_WIDTH 0x9315
4756 #define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316
4757 #define GL_MAX_FRAMEBUFFER_LAYERS 0x9317
4758 #define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318
4759 
4760 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
4761 typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params);
4762 typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint* params);
4763 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC) (GLuint framebuffer, GLenum pname, GLint param);
4764 
4765 #define glFramebufferParameteri GLEW_GET_FUN(__glewFramebufferParameteri)
4766 #define glGetFramebufferParameteriv GLEW_GET_FUN(__glewGetFramebufferParameteriv)
4767 #define glGetNamedFramebufferParameterivEXT GLEW_GET_FUN(__glewGetNamedFramebufferParameterivEXT)
4768 #define glNamedFramebufferParameteriEXT GLEW_GET_FUN(__glewNamedFramebufferParameteriEXT)
4769 
4770 #define GLEW_ARB_framebuffer_no_attachments GLEW_GET_VAR(__GLEW_ARB_framebuffer_no_attachments)
4771 
4772 #endif /* GL_ARB_framebuffer_no_attachments */
4773 
4774 /* ----------------------- GL_ARB_framebuffer_object ----------------------- */
4775 
4776 #ifndef GL_ARB_framebuffer_object
4777 #define GL_ARB_framebuffer_object 1
4778 
4779 #define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
4780 #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
4781 #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
4782 #define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
4783 #define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
4784 #define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
4785 #define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
4786 #define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
4787 #define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
4788 #define GL_FRAMEBUFFER_DEFAULT 0x8218
4789 #define GL_FRAMEBUFFER_UNDEFINED 0x8219
4790 #define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
4791 #define GL_INDEX 0x8222
4792 #define GL_MAX_RENDERBUFFER_SIZE 0x84E8
4793 #define GL_DEPTH_STENCIL 0x84F9
4794 #define GL_UNSIGNED_INT_24_8 0x84FA
4795 #define GL_DEPTH24_STENCIL8 0x88F0
4796 #define GL_TEXTURE_STENCIL_SIZE 0x88F1
4797 #define GL_UNSIGNED_NORMALIZED 0x8C17
4798 #define GL_SRGB 0x8C40
4799 #define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
4800 #define GL_FRAMEBUFFER_BINDING 0x8CA6
4801 #define GL_RENDERBUFFER_BINDING 0x8CA7
4802 #define GL_READ_FRAMEBUFFER 0x8CA8
4803 #define GL_DRAW_FRAMEBUFFER 0x8CA9
4804 #define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
4805 #define GL_RENDERBUFFER_SAMPLES 0x8CAB
4806 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
4807 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
4808 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
4809 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
4810 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
4811 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5
4812 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
4813 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
4814 #define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
4815 #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
4816 #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
4817 #define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
4818 #define GL_COLOR_ATTACHMENT0 0x8CE0
4819 #define GL_COLOR_ATTACHMENT1 0x8CE1
4820 #define GL_COLOR_ATTACHMENT2 0x8CE2
4821 #define GL_COLOR_ATTACHMENT3 0x8CE3
4822 #define GL_COLOR_ATTACHMENT4 0x8CE4
4823 #define GL_COLOR_ATTACHMENT5 0x8CE5
4824 #define GL_COLOR_ATTACHMENT6 0x8CE6
4825 #define GL_COLOR_ATTACHMENT7 0x8CE7
4826 #define GL_COLOR_ATTACHMENT8 0x8CE8
4827 #define GL_COLOR_ATTACHMENT9 0x8CE9
4828 #define GL_COLOR_ATTACHMENT10 0x8CEA
4829 #define GL_COLOR_ATTACHMENT11 0x8CEB
4830 #define GL_COLOR_ATTACHMENT12 0x8CEC
4831 #define GL_COLOR_ATTACHMENT13 0x8CED
4832 #define GL_COLOR_ATTACHMENT14 0x8CEE
4833 #define GL_COLOR_ATTACHMENT15 0x8CEF
4834 #define GL_DEPTH_ATTACHMENT 0x8D00
4835 #define GL_STENCIL_ATTACHMENT 0x8D20
4836 #define GL_FRAMEBUFFER 0x8D40
4837 #define GL_RENDERBUFFER 0x8D41
4838 #define GL_RENDERBUFFER_WIDTH 0x8D42
4839 #define GL_RENDERBUFFER_HEIGHT 0x8D43
4840 #define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
4841 #define GL_STENCIL_INDEX1 0x8D46
4842 #define GL_STENCIL_INDEX4 0x8D47
4843 #define GL_STENCIL_INDEX8 0x8D48
4844 #define GL_STENCIL_INDEX16 0x8D49
4845 #define GL_RENDERBUFFER_RED_SIZE 0x8D50
4846 #define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
4847 #define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
4848 #define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
4849 #define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
4850 #define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
4851 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
4852 #define GL_MAX_SAMPLES 0x8D57
4853 
4854 typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
4855 typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
4856 typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
4857 typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
4858 typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint* framebuffers);
4859 typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint* renderbuffers);
4860 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
4861 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
4862 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
4863 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer);
4864 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target,GLenum attachment, GLuint texture,GLint level,GLint layer);
4865 typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers);
4866 typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers);
4867 typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPPROC) (GLenum target);
4868 typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params);
4869 typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params);
4870 typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
4871 typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
4872 typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
4873 typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
4874 
4875 #define glBindFramebuffer GLEW_GET_FUN(__glewBindFramebuffer)
4876 #define glBindRenderbuffer GLEW_GET_FUN(__glewBindRenderbuffer)
4877 #define glBlitFramebuffer GLEW_GET_FUN(__glewBlitFramebuffer)
4878 #define glCheckFramebufferStatus GLEW_GET_FUN(__glewCheckFramebufferStatus)
4879 #define glDeleteFramebuffers GLEW_GET_FUN(__glewDeleteFramebuffers)
4880 #define glDeleteRenderbuffers GLEW_GET_FUN(__glewDeleteRenderbuffers)
4881 #define glFramebufferRenderbuffer GLEW_GET_FUN(__glewFramebufferRenderbuffer)
4882 #define glFramebufferTexture1D GLEW_GET_FUN(__glewFramebufferTexture1D)
4883 #define glFramebufferTexture2D GLEW_GET_FUN(__glewFramebufferTexture2D)
4884 #define glFramebufferTexture3D GLEW_GET_FUN(__glewFramebufferTexture3D)
4885 #define glFramebufferTextureLayer GLEW_GET_FUN(__glewFramebufferTextureLayer)
4886 #define glGenFramebuffers GLEW_GET_FUN(__glewGenFramebuffers)
4887 #define glGenRenderbuffers GLEW_GET_FUN(__glewGenRenderbuffers)
4888 #define glGenerateMipmap GLEW_GET_FUN(__glewGenerateMipmap)
4889 #define glGetFramebufferAttachmentParameteriv GLEW_GET_FUN(__glewGetFramebufferAttachmentParameteriv)
4890 #define glGetRenderbufferParameteriv GLEW_GET_FUN(__glewGetRenderbufferParameteriv)
4891 #define glIsFramebuffer GLEW_GET_FUN(__glewIsFramebuffer)
4892 #define glIsRenderbuffer GLEW_GET_FUN(__glewIsRenderbuffer)
4893 #define glRenderbufferStorage GLEW_GET_FUN(__glewRenderbufferStorage)
4894 #define glRenderbufferStorageMultisample GLEW_GET_FUN(__glewRenderbufferStorageMultisample)
4895 
4896 #define GLEW_ARB_framebuffer_object GLEW_GET_VAR(__GLEW_ARB_framebuffer_object)
4897 
4898 #endif /* GL_ARB_framebuffer_object */
4899 
4900 /* ------------------------ GL_ARB_framebuffer_sRGB ------------------------ */
4901 
4902 #ifndef GL_ARB_framebuffer_sRGB
4903 #define GL_ARB_framebuffer_sRGB 1
4904 
4905 #define GL_FRAMEBUFFER_SRGB 0x8DB9
4906 
4907 #define GLEW_ARB_framebuffer_sRGB GLEW_GET_VAR(__GLEW_ARB_framebuffer_sRGB)
4908 
4909 #endif /* GL_ARB_framebuffer_sRGB */
4910 
4911 /* ------------------------ GL_ARB_geometry_shader4 ------------------------ */
4912 
4913 #ifndef GL_ARB_geometry_shader4
4914 #define GL_ARB_geometry_shader4 1
4915 
4916 #define GL_LINES_ADJACENCY_ARB 0xA
4917 #define GL_LINE_STRIP_ADJACENCY_ARB 0xB
4918 #define GL_TRIANGLES_ADJACENCY_ARB 0xC
4919 #define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0xD
4920 #define GL_PROGRAM_POINT_SIZE_ARB 0x8642
4921 #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29
4922 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
4923 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7
4924 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8
4925 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9
4926 #define GL_GEOMETRY_SHADER_ARB 0x8DD9
4927 #define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA
4928 #define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB
4929 #define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC
4930 #define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD
4931 #define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE
4932 #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF
4933 #define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0
4934 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1
4935 
4936 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
4937 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
4938 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
4939 typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value);
4940 
4941 #define glFramebufferTextureARB GLEW_GET_FUN(__glewFramebufferTextureARB)
4942 #define glFramebufferTextureFaceARB GLEW_GET_FUN(__glewFramebufferTextureFaceARB)
4943 #define glFramebufferTextureLayerARB GLEW_GET_FUN(__glewFramebufferTextureLayerARB)
4944 #define glProgramParameteriARB GLEW_GET_FUN(__glewProgramParameteriARB)
4945 
4946 #define GLEW_ARB_geometry_shader4 GLEW_GET_VAR(__GLEW_ARB_geometry_shader4)
4947 
4948 #endif /* GL_ARB_geometry_shader4 */
4949 
4950 /* ----------------------- GL_ARB_get_program_binary ----------------------- */
4951 
4952 #ifndef GL_ARB_get_program_binary
4953 #define GL_ARB_get_program_binary 1
4954 
4955 #define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
4956 #define GL_PROGRAM_BINARY_LENGTH 0x8741
4957 #define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
4958 #define GL_PROGRAM_BINARY_FORMATS 0x87FF
4959 
4960 typedef void (GLAPIENTRY * PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, void*binary);
4961 typedef void (GLAPIENTRY * PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
4962 typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value);
4963 
4964 #define glGetProgramBinary GLEW_GET_FUN(__glewGetProgramBinary)
4965 #define glProgramBinary GLEW_GET_FUN(__glewProgramBinary)
4966 #define glProgramParameteri GLEW_GET_FUN(__glewProgramParameteri)
4967 
4968 #define GLEW_ARB_get_program_binary GLEW_GET_VAR(__GLEW_ARB_get_program_binary)
4969 
4970 #endif /* GL_ARB_get_program_binary */
4971 
4972 /* ---------------------- GL_ARB_get_texture_sub_image --------------------- */
4973 
4974 #ifndef GL_ARB_get_texture_sub_image
4975 #define GL_ARB_get_texture_sub_image 1
4976 
4977 typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels);
4978 typedef void (GLAPIENTRY * PFNGLGETTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
4979 
4980 #define glGetCompressedTextureSubImage GLEW_GET_FUN(__glewGetCompressedTextureSubImage)
4981 #define glGetTextureSubImage GLEW_GET_FUN(__glewGetTextureSubImage)
4982 
4983 #define GLEW_ARB_get_texture_sub_image GLEW_GET_VAR(__GLEW_ARB_get_texture_sub_image)
4984 
4985 #endif /* GL_ARB_get_texture_sub_image */
4986 
4987 /* ---------------------------- GL_ARB_gl_spirv ---------------------------- */
4988 
4989 #ifndef GL_ARB_gl_spirv
4990 #define GL_ARB_gl_spirv 1
4991 
4992 #define GL_SHADER_BINARY_FORMAT_SPIR_V_ARB 0x9551
4993 #define GL_SPIR_V_BINARY_ARB 0x9552
4994 
4995 typedef void (GLAPIENTRY * PFNGLSPECIALIZESHADERARBPROC) (GLuint shader, const GLchar* pEntryPoint, GLuint numSpecializationConstants, const GLuint* pConstantIndex, const GLuint* pConstantValue);
4996 
4997 #define glSpecializeShaderARB GLEW_GET_FUN(__glewSpecializeShaderARB)
4998 
4999 #define GLEW_ARB_gl_spirv GLEW_GET_VAR(__GLEW_ARB_gl_spirv)
5000 
5001 #endif /* GL_ARB_gl_spirv */
5002 
5003 /* --------------------------- GL_ARB_gpu_shader5 -------------------------- */
5004 
5005 #ifndef GL_ARB_gpu_shader5
5006 #define GL_ARB_gpu_shader5 1
5007 
5008 #define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F
5009 #define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A
5010 #define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B
5011 #define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C
5012 #define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D
5013 #define GL_MAX_VERTEX_STREAMS 0x8E71
5014 
5015 #define GLEW_ARB_gpu_shader5 GLEW_GET_VAR(__GLEW_ARB_gpu_shader5)
5016 
5017 #endif /* GL_ARB_gpu_shader5 */
5018 
5019 /* ------------------------- GL_ARB_gpu_shader_fp64 ------------------------ */
5020 
5021 #ifndef GL_ARB_gpu_shader_fp64
5022 #define GL_ARB_gpu_shader_fp64 1
5023 
5024 #define GL_DOUBLE_MAT2 0x8F46
5025 #define GL_DOUBLE_MAT3 0x8F47
5026 #define GL_DOUBLE_MAT4 0x8F48
5027 #define GL_DOUBLE_MAT2x3 0x8F49
5028 #define GL_DOUBLE_MAT2x4 0x8F4A
5029 #define GL_DOUBLE_MAT3x2 0x8F4B
5030 #define GL_DOUBLE_MAT3x4 0x8F4C
5031 #define GL_DOUBLE_MAT4x2 0x8F4D
5032 #define GL_DOUBLE_MAT4x3 0x8F4E
5033 #define GL_DOUBLE_VEC2 0x8FFC
5034 #define GL_DOUBLE_VEC3 0x8FFD
5035 #define GL_DOUBLE_VEC4 0x8FFE
5036 
5037 typedef void (GLAPIENTRY * PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble* params);
5038 typedef void (GLAPIENTRY * PFNGLUNIFORM1DPROC) (GLint location, GLdouble x);
5039 typedef void (GLAPIENTRY * PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble* value);
5040 typedef void (GLAPIENTRY * PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y);
5041 typedef void (GLAPIENTRY * PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble* value);
5042 typedef void (GLAPIENTRY * PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z);
5043 typedef void (GLAPIENTRY * PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble* value);
5044 typedef void (GLAPIENTRY * PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
5045 typedef void (GLAPIENTRY * PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble* value);
5046 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
5047 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
5048 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
5049 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
5050 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
5051 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
5052 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
5053 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
5054 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
5055 
5056 #define glGetUniformdv GLEW_GET_FUN(__glewGetUniformdv)
5057 #define glUniform1d GLEW_GET_FUN(__glewUniform1d)
5058 #define glUniform1dv GLEW_GET_FUN(__glewUniform1dv)
5059 #define glUniform2d GLEW_GET_FUN(__glewUniform2d)
5060 #define glUniform2dv GLEW_GET_FUN(__glewUniform2dv)
5061 #define glUniform3d GLEW_GET_FUN(__glewUniform3d)
5062 #define glUniform3dv GLEW_GET_FUN(__glewUniform3dv)
5063 #define glUniform4d GLEW_GET_FUN(__glewUniform4d)
5064 #define glUniform4dv GLEW_GET_FUN(__glewUniform4dv)
5065 #define glUniformMatrix2dv GLEW_GET_FUN(__glewUniformMatrix2dv)
5066 #define glUniformMatrix2x3dv GLEW_GET_FUN(__glewUniformMatrix2x3dv)
5067 #define glUniformMatrix2x4dv GLEW_GET_FUN(__glewUniformMatrix2x4dv)
5068 #define glUniformMatrix3dv GLEW_GET_FUN(__glewUniformMatrix3dv)
5069 #define glUniformMatrix3x2dv GLEW_GET_FUN(__glewUniformMatrix3x2dv)
5070 #define glUniformMatrix3x4dv GLEW_GET_FUN(__glewUniformMatrix3x4dv)
5071 #define glUniformMatrix4dv GLEW_GET_FUN(__glewUniformMatrix4dv)
5072 #define glUniformMatrix4x2dv GLEW_GET_FUN(__glewUniformMatrix4x2dv)
5073 #define glUniformMatrix4x3dv GLEW_GET_FUN(__glewUniformMatrix4x3dv)
5074 
5075 #define GLEW_ARB_gpu_shader_fp64 GLEW_GET_VAR(__GLEW_ARB_gpu_shader_fp64)
5076 
5077 #endif /* GL_ARB_gpu_shader_fp64 */
5078 
5079 /* ------------------------ GL_ARB_gpu_shader_int64 ------------------------ */
5080 
5081 #ifndef GL_ARB_gpu_shader_int64
5082 #define GL_ARB_gpu_shader_int64 1
5083 
5084 #define GL_INT64_ARB 0x140E
5085 #define GL_UNSIGNED_INT64_ARB 0x140F
5086 #define GL_INT64_VEC2_ARB 0x8FE9
5087 #define GL_INT64_VEC3_ARB 0x8FEA
5088 #define GL_INT64_VEC4_ARB 0x8FEB
5089 #define GL_UNSIGNED_INT64_VEC2_ARB 0x8FF5
5090 #define GL_UNSIGNED_INT64_VEC3_ARB 0x8FF6
5091 #define GL_UNSIGNED_INT64_VEC4_ARB 0x8FF7
5092 
5093 typedef void (GLAPIENTRY * PFNGLGETUNIFORMI64VARBPROC) (GLuint program, GLint location, GLint64* params);
5094 typedef void (GLAPIENTRY * PFNGLGETUNIFORMUI64VARBPROC) (GLuint program, GLint location, GLuint64* params);
5095 typedef void (GLAPIENTRY * PFNGLGETNUNIFORMI64VARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint64* params);
5096 typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUI64VARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint64* params);
5097 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64ARBPROC) (GLuint program, GLint location, GLint64 x);
5098 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64* value);
5099 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64ARBPROC) (GLuint program, GLint location, GLuint64 x);
5100 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* value);
5101 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y);
5102 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64* value);
5103 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y);
5104 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* value);
5105 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z);
5106 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64* value);
5107 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z);
5108 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* value);
5109 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w);
5110 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64* value);
5111 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w);
5112 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* value);
5113 typedef void (GLAPIENTRY * PFNGLUNIFORM1I64ARBPROC) (GLint location, GLint64 x);
5114 typedef void (GLAPIENTRY * PFNGLUNIFORM1I64VARBPROC) (GLint location, GLsizei count, const GLint64* value);
5115 typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64ARBPROC) (GLint location, GLuint64 x);
5116 typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value);
5117 typedef void (GLAPIENTRY * PFNGLUNIFORM2I64ARBPROC) (GLint location, GLint64 x, GLint64 y);
5118 typedef void (GLAPIENTRY * PFNGLUNIFORM2I64VARBPROC) (GLint location, GLsizei count, const GLint64* value);
5119 typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y);
5120 typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value);
5121 typedef void (GLAPIENTRY * PFNGLUNIFORM3I64ARBPROC) (GLint location, GLint64 x, GLint64 y, GLint64 z);
5122 typedef void (GLAPIENTRY * PFNGLUNIFORM3I64VARBPROC) (GLint location, GLsizei count, const GLint64* value);
5123 typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y, GLuint64 z);
5124 typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value);
5125 typedef void (GLAPIENTRY * PFNGLUNIFORM4I64ARBPROC) (GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w);
5126 typedef void (GLAPIENTRY * PFNGLUNIFORM4I64VARBPROC) (GLint location, GLsizei count, const GLint64* value);
5127 typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w);
5128 typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value);
5129 
5130 #define glGetUniformi64vARB GLEW_GET_FUN(__glewGetUniformi64vARB)
5131 #define glGetUniformui64vARB GLEW_GET_FUN(__glewGetUniformui64vARB)
5132 #define glGetnUniformi64vARB GLEW_GET_FUN(__glewGetnUniformi64vARB)
5133 #define glGetnUniformui64vARB GLEW_GET_FUN(__glewGetnUniformui64vARB)
5134 #define glProgramUniform1i64ARB GLEW_GET_FUN(__glewProgramUniform1i64ARB)
5135 #define glProgramUniform1i64vARB GLEW_GET_FUN(__glewProgramUniform1i64vARB)
5136 #define glProgramUniform1ui64ARB GLEW_GET_FUN(__glewProgramUniform1ui64ARB)
5137 #define glProgramUniform1ui64vARB GLEW_GET_FUN(__glewProgramUniform1ui64vARB)
5138 #define glProgramUniform2i64ARB GLEW_GET_FUN(__glewProgramUniform2i64ARB)
5139 #define glProgramUniform2i64vARB GLEW_GET_FUN(__glewProgramUniform2i64vARB)
5140 #define glProgramUniform2ui64ARB GLEW_GET_FUN(__glewProgramUniform2ui64ARB)
5141 #define glProgramUniform2ui64vARB GLEW_GET_FUN(__glewProgramUniform2ui64vARB)
5142 #define glProgramUniform3i64ARB GLEW_GET_FUN(__glewProgramUniform3i64ARB)
5143 #define glProgramUniform3i64vARB GLEW_GET_FUN(__glewProgramUniform3i64vARB)
5144 #define glProgramUniform3ui64ARB GLEW_GET_FUN(__glewProgramUniform3ui64ARB)
5145 #define glProgramUniform3ui64vARB GLEW_GET_FUN(__glewProgramUniform3ui64vARB)
5146 #define glProgramUniform4i64ARB GLEW_GET_FUN(__glewProgramUniform4i64ARB)
5147 #define glProgramUniform4i64vARB GLEW_GET_FUN(__glewProgramUniform4i64vARB)
5148 #define glProgramUniform4ui64ARB GLEW_GET_FUN(__glewProgramUniform4ui64ARB)
5149 #define glProgramUniform4ui64vARB GLEW_GET_FUN(__glewProgramUniform4ui64vARB)
5150 #define glUniform1i64ARB GLEW_GET_FUN(__glewUniform1i64ARB)
5151 #define glUniform1i64vARB GLEW_GET_FUN(__glewUniform1i64vARB)
5152 #define glUniform1ui64ARB GLEW_GET_FUN(__glewUniform1ui64ARB)
5153 #define glUniform1ui64vARB GLEW_GET_FUN(__glewUniform1ui64vARB)
5154 #define glUniform2i64ARB GLEW_GET_FUN(__glewUniform2i64ARB)
5155 #define glUniform2i64vARB GLEW_GET_FUN(__glewUniform2i64vARB)
5156 #define glUniform2ui64ARB GLEW_GET_FUN(__glewUniform2ui64ARB)
5157 #define glUniform2ui64vARB GLEW_GET_FUN(__glewUniform2ui64vARB)
5158 #define glUniform3i64ARB GLEW_GET_FUN(__glewUniform3i64ARB)
5159 #define glUniform3i64vARB GLEW_GET_FUN(__glewUniform3i64vARB)
5160 #define glUniform3ui64ARB GLEW_GET_FUN(__glewUniform3ui64ARB)
5161 #define glUniform3ui64vARB GLEW_GET_FUN(__glewUniform3ui64vARB)
5162 #define glUniform4i64ARB GLEW_GET_FUN(__glewUniform4i64ARB)
5163 #define glUniform4i64vARB GLEW_GET_FUN(__glewUniform4i64vARB)
5164 #define glUniform4ui64ARB GLEW_GET_FUN(__glewUniform4ui64ARB)
5165 #define glUniform4ui64vARB GLEW_GET_FUN(__glewUniform4ui64vARB)
5166 
5167 #define GLEW_ARB_gpu_shader_int64 GLEW_GET_VAR(__GLEW_ARB_gpu_shader_int64)
5168 
5169 #endif /* GL_ARB_gpu_shader_int64 */
5170 
5171 /* ------------------------ GL_ARB_half_float_pixel ------------------------ */
5172 
5173 #ifndef GL_ARB_half_float_pixel
5174 #define GL_ARB_half_float_pixel 1
5175 
5176 #define GL_HALF_FLOAT_ARB 0x140B
5177 
5178 #define GLEW_ARB_half_float_pixel GLEW_GET_VAR(__GLEW_ARB_half_float_pixel)
5179 
5180 #endif /* GL_ARB_half_float_pixel */
5181 
5182 /* ------------------------ GL_ARB_half_float_vertex ----------------------- */
5183 
5184 #ifndef GL_ARB_half_float_vertex
5185 #define GL_ARB_half_float_vertex 1
5186 
5187 #define GL_HALF_FLOAT 0x140B
5188 
5189 #define GLEW_ARB_half_float_vertex GLEW_GET_VAR(__GLEW_ARB_half_float_vertex)
5190 
5191 #endif /* GL_ARB_half_float_vertex */
5192 
5193 /* ----------------------------- GL_ARB_imaging ---------------------------- */
5194 
5195 #ifndef GL_ARB_imaging
5196 #define GL_ARB_imaging 1
5197 
5198 #define GL_CONSTANT_COLOR 0x8001
5199 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
5200 #define GL_CONSTANT_ALPHA 0x8003
5201 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
5202 #define GL_BLEND_COLOR 0x8005
5203 #define GL_FUNC_ADD 0x8006
5204 #define GL_MIN 0x8007
5205 #define GL_MAX 0x8008
5206 #define GL_BLEND_EQUATION 0x8009
5207 #define GL_FUNC_SUBTRACT 0x800A
5208 #define GL_FUNC_REVERSE_SUBTRACT 0x800B
5209 #define GL_CONVOLUTION_1D 0x8010
5210 #define GL_CONVOLUTION_2D 0x8011
5211 #define GL_SEPARABLE_2D 0x8012
5212 #define GL_CONVOLUTION_BORDER_MODE 0x8013
5213 #define GL_CONVOLUTION_FILTER_SCALE 0x8014
5214 #define GL_CONVOLUTION_FILTER_BIAS 0x8015
5215 #define GL_REDUCE 0x8016
5216 #define GL_CONVOLUTION_FORMAT 0x8017
5217 #define GL_CONVOLUTION_WIDTH 0x8018
5218 #define GL_CONVOLUTION_HEIGHT 0x8019
5219 #define GL_MAX_CONVOLUTION_WIDTH 0x801A
5220 #define GL_MAX_CONVOLUTION_HEIGHT 0x801B
5221 #define GL_POST_CONVOLUTION_RED_SCALE 0x801C
5222 #define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D
5223 #define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E
5224 #define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F
5225 #define GL_POST_CONVOLUTION_RED_BIAS 0x8020
5226 #define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021
5227 #define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022
5228 #define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023
5229 #define GL_HISTOGRAM 0x8024
5230 #define GL_PROXY_HISTOGRAM 0x8025
5231 #define GL_HISTOGRAM_WIDTH 0x8026
5232 #define GL_HISTOGRAM_FORMAT 0x8027
5233 #define GL_HISTOGRAM_RED_SIZE 0x8028
5234 #define GL_HISTOGRAM_GREEN_SIZE 0x8029
5235 #define GL_HISTOGRAM_BLUE_SIZE 0x802A
5236 #define GL_HISTOGRAM_ALPHA_SIZE 0x802B
5237 #define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C
5238 #define GL_HISTOGRAM_SINK 0x802D
5239 #define GL_MINMAX 0x802E
5240 #define GL_MINMAX_FORMAT 0x802F
5241 #define GL_MINMAX_SINK 0x8030
5242 #define GL_TABLE_TOO_LARGE 0x8031
5243 #define GL_COLOR_MATRIX 0x80B1
5244 #define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2
5245 #define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3
5246 #define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4
5247 #define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5
5248 #define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6
5249 #define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7
5250 #define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8
5251 #define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9
5252 #define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA
5253 #define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB
5254 #define GL_COLOR_TABLE 0x80D0
5255 #define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1
5256 #define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2
5257 #define GL_PROXY_COLOR_TABLE 0x80D3
5258 #define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4
5259 #define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
5260 #define GL_COLOR_TABLE_SCALE 0x80D6
5261 #define GL_COLOR_TABLE_BIAS 0x80D7
5262 #define GL_COLOR_TABLE_FORMAT 0x80D8
5263 #define GL_COLOR_TABLE_WIDTH 0x80D9
5264 #define GL_COLOR_TABLE_RED_SIZE 0x80DA
5265 #define GL_COLOR_TABLE_GREEN_SIZE 0x80DB
5266 #define GL_COLOR_TABLE_BLUE_SIZE 0x80DC
5267 #define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD
5268 #define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE
5269 #define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF
5270 #define GL_IGNORE_BORDER 0x8150
5271 #define GL_CONSTANT_BORDER 0x8151
5272 #define GL_WRAP_BORDER 0x8152
5273 #define GL_REPLICATE_BORDER 0x8153
5274 #define GL_CONVOLUTION_BORDER_COLOR 0x8154
5275 
5276 typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data);
5277 typedef void (GLAPIENTRY * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table);
5278 typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
5279 typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
5280 typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image);
5281 typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image);
5282 typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params);
5283 typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
5284 typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params);
5285 typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
5286 typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
5287 typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
5288 typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
5289 typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
5290 typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, void *table);
5291 typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
5292 typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
5293 typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, void *image);
5294 typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
5295 typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
5296 typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values);
5297 typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
5298 typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
5299 typedef void (GLAPIENTRY * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum types, void *values);
5300 typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
5301 typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
5302 typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span);
5303 typedef void (GLAPIENTRY * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
5304 typedef void (GLAPIENTRY * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink);
5305 typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMPROC) (GLenum target);
5306 typedef void (GLAPIENTRY * PFNGLRESETMINMAXPROC) (GLenum target);
5307 typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column);
5308 
5309 #define glColorSubTable GLEW_GET_FUN(__glewColorSubTable)
5310 #define glColorTable GLEW_GET_FUN(__glewColorTable)
5311 #define glColorTableParameterfv GLEW_GET_FUN(__glewColorTableParameterfv)
5312 #define glColorTableParameteriv GLEW_GET_FUN(__glewColorTableParameteriv)
5313 #define glConvolutionFilter1D GLEW_GET_FUN(__glewConvolutionFilter1D)
5314 #define glConvolutionFilter2D GLEW_GET_FUN(__glewConvolutionFilter2D)
5315 #define glConvolutionParameterf GLEW_GET_FUN(__glewConvolutionParameterf)
5316 #define glConvolutionParameterfv GLEW_GET_FUN(__glewConvolutionParameterfv)
5317 #define glConvolutionParameteri GLEW_GET_FUN(__glewConvolutionParameteri)
5318 #define glConvolutionParameteriv GLEW_GET_FUN(__glewConvolutionParameteriv)
5319 #define glCopyColorSubTable GLEW_GET_FUN(__glewCopyColorSubTable)
5320 #define glCopyColorTable GLEW_GET_FUN(__glewCopyColorTable)
5321 #define glCopyConvolutionFilter1D GLEW_GET_FUN(__glewCopyConvolutionFilter1D)
5322 #define glCopyConvolutionFilter2D GLEW_GET_FUN(__glewCopyConvolutionFilter2D)
5323 #define glGetColorTable GLEW_GET_FUN(__glewGetColorTable)
5324 #define glGetColorTableParameterfv GLEW_GET_FUN(__glewGetColorTableParameterfv)
5325 #define glGetColorTableParameteriv GLEW_GET_FUN(__glewGetColorTableParameteriv)
5326 #define glGetConvolutionFilter GLEW_GET_FUN(__glewGetConvolutionFilter)
5327 #define glGetConvolutionParameterfv GLEW_GET_FUN(__glewGetConvolutionParameterfv)
5328 #define glGetConvolutionParameteriv GLEW_GET_FUN(__glewGetConvolutionParameteriv)
5329 #define glGetHistogram GLEW_GET_FUN(__glewGetHistogram)
5330 #define glGetHistogramParameterfv GLEW_GET_FUN(__glewGetHistogramParameterfv)
5331 #define glGetHistogramParameteriv GLEW_GET_FUN(__glewGetHistogramParameteriv)
5332 #define glGetMinmax GLEW_GET_FUN(__glewGetMinmax)
5333 #define glGetMinmaxParameterfv GLEW_GET_FUN(__glewGetMinmaxParameterfv)
5334 #define glGetMinmaxParameteriv GLEW_GET_FUN(__glewGetMinmaxParameteriv)
5335 #define glGetSeparableFilter GLEW_GET_FUN(__glewGetSeparableFilter)
5336 #define glHistogram GLEW_GET_FUN(__glewHistogram)
5337 #define glMinmax GLEW_GET_FUN(__glewMinmax)
5338 #define glResetHistogram GLEW_GET_FUN(__glewResetHistogram)
5339 #define glResetMinmax GLEW_GET_FUN(__glewResetMinmax)
5340 #define glSeparableFilter2D GLEW_GET_FUN(__glewSeparableFilter2D)
5341 
5342 #define GLEW_ARB_imaging GLEW_GET_VAR(__GLEW_ARB_imaging)
5343 
5344 #endif /* GL_ARB_imaging */
5345 
5346 /* ----------------------- GL_ARB_indirect_parameters ---------------------- */
5347 
5348 #ifndef GL_ARB_indirect_parameters
5349 #define GL_ARB_indirect_parameters 1
5350 
5351 #define GL_PARAMETER_BUFFER_ARB 0x80EE
5352 #define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF
5353 
5354 typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
5355 typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
5356 
5357 #define glMultiDrawArraysIndirectCountARB GLEW_GET_FUN(__glewMultiDrawArraysIndirectCountARB)
5358 #define glMultiDrawElementsIndirectCountARB GLEW_GET_FUN(__glewMultiDrawElementsIndirectCountARB)
5359 
5360 #define GLEW_ARB_indirect_parameters GLEW_GET_VAR(__GLEW_ARB_indirect_parameters)
5361 
5362 #endif /* GL_ARB_indirect_parameters */
5363 
5364 /* ------------------------ GL_ARB_instanced_arrays ------------------------ */
5365 
5366 #ifndef GL_ARB_instanced_arrays
5367 #define GL_ARB_instanced_arrays 1
5368 
5369 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE
5370 
5371 typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
5372 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount);
5373 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor);
5374 
5375 #define glDrawArraysInstancedARB GLEW_GET_FUN(__glewDrawArraysInstancedARB)
5376 #define glDrawElementsInstancedARB GLEW_GET_FUN(__glewDrawElementsInstancedARB)
5377 #define glVertexAttribDivisorARB GLEW_GET_FUN(__glewVertexAttribDivisorARB)
5378 
5379 #define GLEW_ARB_instanced_arrays GLEW_GET_VAR(__GLEW_ARB_instanced_arrays)
5380 
5381 #endif /* GL_ARB_instanced_arrays */
5382 
5383 /* ---------------------- GL_ARB_internalformat_query ---------------------- */
5384 
5385 #ifndef GL_ARB_internalformat_query
5386 #define GL_ARB_internalformat_query 1
5387 
5388 #define GL_NUM_SAMPLE_COUNTS 0x9380
5389 
5390 typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params);
5391 
5392 #define glGetInternalformativ GLEW_GET_FUN(__glewGetInternalformativ)
5393 
5394 #define GLEW_ARB_internalformat_query GLEW_GET_VAR(__GLEW_ARB_internalformat_query)
5395 
5396 #endif /* GL_ARB_internalformat_query */
5397 
5398 /* ---------------------- GL_ARB_internalformat_query2 --------------------- */
5399 
5400 #ifndef GL_ARB_internalformat_query2
5401 #define GL_ARB_internalformat_query2 1
5402 
5403 #define GL_INTERNALFORMAT_SUPPORTED 0x826F
5404 #define GL_INTERNALFORMAT_PREFERRED 0x8270
5405 #define GL_INTERNALFORMAT_RED_SIZE 0x8271
5406 #define GL_INTERNALFORMAT_GREEN_SIZE 0x8272
5407 #define GL_INTERNALFORMAT_BLUE_SIZE 0x8273
5408 #define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274
5409 #define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275
5410 #define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276
5411 #define GL_INTERNALFORMAT_SHARED_SIZE 0x8277
5412 #define GL_INTERNALFORMAT_RED_TYPE 0x8278
5413 #define GL_INTERNALFORMAT_GREEN_TYPE 0x8279
5414 #define GL_INTERNALFORMAT_BLUE_TYPE 0x827A
5415 #define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B
5416 #define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C
5417 #define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D
5418 #define GL_MAX_WIDTH 0x827E
5419 #define GL_MAX_HEIGHT 0x827F
5420 #define GL_MAX_DEPTH 0x8280
5421 #define GL_MAX_LAYERS 0x8281
5422 #define GL_MAX_COMBINED_DIMENSIONS 0x8282
5423 #define GL_COLOR_COMPONENTS 0x8283
5424 #define GL_DEPTH_COMPONENTS 0x8284
5425 #define GL_STENCIL_COMPONENTS 0x8285
5426 #define GL_COLOR_RENDERABLE 0x8286
5427 #define GL_DEPTH_RENDERABLE 0x8287
5428 #define GL_STENCIL_RENDERABLE 0x8288
5429 #define GL_FRAMEBUFFER_RENDERABLE 0x8289
5430 #define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A
5431 #define GL_FRAMEBUFFER_BLEND 0x828B
5432 #define GL_READ_PIXELS 0x828C
5433 #define GL_READ_PIXELS_FORMAT 0x828D
5434 #define GL_READ_PIXELS_TYPE 0x828E
5435 #define GL_TEXTURE_IMAGE_FORMAT 0x828F
5436 #define GL_TEXTURE_IMAGE_TYPE 0x8290
5437 #define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291
5438 #define GL_GET_TEXTURE_IMAGE_TYPE 0x8292
5439 #define GL_MIPMAP 0x8293
5440 #define GL_MANUAL_GENERATE_MIPMAP 0x8294
5441 #define GL_AUTO_GENERATE_MIPMAP 0x8295
5442 #define GL_COLOR_ENCODING 0x8296
5443 #define GL_SRGB_READ 0x8297
5444 #define GL_SRGB_WRITE 0x8298
5445 #define GL_SRGB_DECODE_ARB 0x8299
5446 #define GL_FILTER 0x829A
5447 #define GL_VERTEX_TEXTURE 0x829B
5448 #define GL_TESS_CONTROL_TEXTURE 0x829C
5449 #define GL_TESS_EVALUATION_TEXTURE 0x829D
5450 #define GL_GEOMETRY_TEXTURE 0x829E
5451 #define GL_FRAGMENT_TEXTURE 0x829F
5452 #define GL_COMPUTE_TEXTURE 0x82A0
5453 #define GL_TEXTURE_SHADOW 0x82A1
5454 #define GL_TEXTURE_GATHER 0x82A2
5455 #define GL_TEXTURE_GATHER_SHADOW 0x82A3
5456 #define GL_SHADER_IMAGE_LOAD 0x82A4
5457 #define GL_SHADER_IMAGE_STORE 0x82A5
5458 #define GL_SHADER_IMAGE_ATOMIC 0x82A6
5459 #define GL_IMAGE_TEXEL_SIZE 0x82A7
5460 #define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8
5461 #define GL_IMAGE_PIXEL_FORMAT 0x82A9
5462 #define GL_IMAGE_PIXEL_TYPE 0x82AA
5463 #define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC
5464 #define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD
5465 #define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE
5466 #define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF
5467 #define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1
5468 #define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2
5469 #define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3
5470 #define GL_CLEAR_BUFFER 0x82B4
5471 #define GL_TEXTURE_VIEW 0x82B5
5472 #define GL_VIEW_COMPATIBILITY_CLASS 0x82B6
5473 #define GL_FULL_SUPPORT 0x82B7
5474 #define GL_CAVEAT_SUPPORT 0x82B8
5475 #define GL_IMAGE_CLASS_4_X_32 0x82B9
5476 #define GL_IMAGE_CLASS_2_X_32 0x82BA
5477 #define GL_IMAGE_CLASS_1_X_32 0x82BB
5478 #define GL_IMAGE_CLASS_4_X_16 0x82BC
5479 #define GL_IMAGE_CLASS_2_X_16 0x82BD
5480 #define GL_IMAGE_CLASS_1_X_16 0x82BE
5481 #define GL_IMAGE_CLASS_4_X_8 0x82BF
5482 #define GL_IMAGE_CLASS_2_X_8 0x82C0
5483 #define GL_IMAGE_CLASS_1_X_8 0x82C1
5484 #define GL_IMAGE_CLASS_11_11_10 0x82C2
5485 #define GL_IMAGE_CLASS_10_10_10_2 0x82C3
5486 #define GL_VIEW_CLASS_128_BITS 0x82C4
5487 #define GL_VIEW_CLASS_96_BITS 0x82C5
5488 #define GL_VIEW_CLASS_64_BITS 0x82C6
5489 #define GL_VIEW_CLASS_48_BITS 0x82C7
5490 #define GL_VIEW_CLASS_32_BITS 0x82C8
5491 #define GL_VIEW_CLASS_24_BITS 0x82C9
5492 #define GL_VIEW_CLASS_16_BITS 0x82CA
5493 #define GL_VIEW_CLASS_8_BITS 0x82CB
5494 #define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC
5495 #define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD
5496 #define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE
5497 #define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF
5498 #define GL_VIEW_CLASS_RGTC1_RED 0x82D0
5499 #define GL_VIEW_CLASS_RGTC2_RG 0x82D1
5500 #define GL_VIEW_CLASS_BPTC_UNORM 0x82D2
5501 #define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3
5502 
5503 typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATI64VPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64* params);
5504 
5505 #define glGetInternalformati64v GLEW_GET_FUN(__glewGetInternalformati64v)
5506 
5507 #define GLEW_ARB_internalformat_query2 GLEW_GET_VAR(__GLEW_ARB_internalformat_query2)
5508 
5509 #endif /* GL_ARB_internalformat_query2 */
5510 
5511 /* ----------------------- GL_ARB_invalidate_subdata ----------------------- */
5512 
5513 #ifndef GL_ARB_invalidate_subdata
5514 #define GL_ARB_invalidate_subdata 1
5515 
5516 typedef void (GLAPIENTRY * PFNGLINVALIDATEBUFFERDATAPROC) (GLuint buffer);
5517 typedef void (GLAPIENTRY * PFNGLINVALIDATEBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
5518 typedef void (GLAPIENTRY * PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum* attachments);
5519 typedef void (GLAPIENTRY * PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
5520 typedef void (GLAPIENTRY * PFNGLINVALIDATETEXIMAGEPROC) (GLuint texture, GLint level);
5521 typedef void (GLAPIENTRY * PFNGLINVALIDATETEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
5522 
5523 #define glInvalidateBufferData GLEW_GET_FUN(__glewInvalidateBufferData)
5524 #define glInvalidateBufferSubData GLEW_GET_FUN(__glewInvalidateBufferSubData)
5525 #define glInvalidateFramebuffer GLEW_GET_FUN(__glewInvalidateFramebuffer)
5526 #define glInvalidateSubFramebuffer GLEW_GET_FUN(__glewInvalidateSubFramebuffer)
5527 #define glInvalidateTexImage GLEW_GET_FUN(__glewInvalidateTexImage)
5528 #define glInvalidateTexSubImage GLEW_GET_FUN(__glewInvalidateTexSubImage)
5529 
5530 #define GLEW_ARB_invalidate_subdata GLEW_GET_VAR(__GLEW_ARB_invalidate_subdata)
5531 
5532 #endif /* GL_ARB_invalidate_subdata */
5533 
5534 /* ---------------------- GL_ARB_map_buffer_alignment ---------------------- */
5535 
5536 #ifndef GL_ARB_map_buffer_alignment
5537 #define GL_ARB_map_buffer_alignment 1
5538 
5539 #define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC
5540 
5541 #define GLEW_ARB_map_buffer_alignment GLEW_GET_VAR(__GLEW_ARB_map_buffer_alignment)
5542 
5543 #endif /* GL_ARB_map_buffer_alignment */
5544 
5545 /* ------------------------ GL_ARB_map_buffer_range ------------------------ */
5546 
5547 #ifndef GL_ARB_map_buffer_range
5548 #define GL_ARB_map_buffer_range 1
5549 
5550 #define GL_MAP_READ_BIT 0x0001
5551 #define GL_MAP_WRITE_BIT 0x0002
5552 #define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
5553 #define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
5554 #define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
5555 #define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
5556 
5557 typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
5558 typedef void * (GLAPIENTRY * PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
5559 
5560 #define glFlushMappedBufferRange GLEW_GET_FUN(__glewFlushMappedBufferRange)
5561 #define glMapBufferRange GLEW_GET_FUN(__glewMapBufferRange)
5562 
5563 #define GLEW_ARB_map_buffer_range GLEW_GET_VAR(__GLEW_ARB_map_buffer_range)
5564 
5565 #endif /* GL_ARB_map_buffer_range */
5566 
5567 /* ------------------------- GL_ARB_matrix_palette ------------------------- */
5568 
5569 #ifndef GL_ARB_matrix_palette
5570 #define GL_ARB_matrix_palette 1
5571 
5572 #define GL_MATRIX_PALETTE_ARB 0x8840
5573 #define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841
5574 #define GL_MAX_PALETTE_MATRICES_ARB 0x8842
5575 #define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843
5576 #define GL_MATRIX_INDEX_ARRAY_ARB 0x8844
5577 #define GL_CURRENT_MATRIX_INDEX_ARB 0x8845
5578 #define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846
5579 #define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847
5580 #define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848
5581 #define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849
5582 
5583 typedef void (GLAPIENTRY * PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index);
5584 typedef void (GLAPIENTRY * PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, void *pointer);
5585 typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUBVARBPROC) (GLint size, GLubyte *indices);
5586 typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUIVARBPROC) (GLint size, GLuint *indices);
5587 typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUSVARBPROC) (GLint size, GLushort *indices);
5588 
5589 #define glCurrentPaletteMatrixARB GLEW_GET_FUN(__glewCurrentPaletteMatrixARB)
5590 #define glMatrixIndexPointerARB GLEW_GET_FUN(__glewMatrixIndexPointerARB)
5591 #define glMatrixIndexubvARB GLEW_GET_FUN(__glewMatrixIndexubvARB)
5592 #define glMatrixIndexuivARB GLEW_GET_FUN(__glewMatrixIndexuivARB)
5593 #define glMatrixIndexusvARB GLEW_GET_FUN(__glewMatrixIndexusvARB)
5594 
5595 #define GLEW_ARB_matrix_palette GLEW_GET_VAR(__GLEW_ARB_matrix_palette)
5596 
5597 #endif /* GL_ARB_matrix_palette */
5598 
5599 /* --------------------------- GL_ARB_multi_bind --------------------------- */
5600 
5601 #ifndef GL_ARB_multi_bind
5602 #define GL_ARB_multi_bind 1
5603 
5604 typedef void (GLAPIENTRY * PFNGLBINDBUFFERSBASEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint* buffers);
5605 typedef void (GLAPIENTRY * PFNGLBINDBUFFERSRANGEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
5606 typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTURESPROC) (GLuint first, GLsizei count, const GLuint* textures);
5607 typedef void (GLAPIENTRY * PFNGLBINDSAMPLERSPROC) (GLuint first, GLsizei count, const GLuint* samplers);
5608 typedef void (GLAPIENTRY * PFNGLBINDTEXTURESPROC) (GLuint first, GLsizei count, const GLuint* textures);
5609 typedef void (GLAPIENTRY * PFNGLBINDVERTEXBUFFERSPROC) (GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizei *strides);
5610 
5611 #define glBindBuffersBase GLEW_GET_FUN(__glewBindBuffersBase)
5612 #define glBindBuffersRange GLEW_GET_FUN(__glewBindBuffersRange)
5613 #define glBindImageTextures GLEW_GET_FUN(__glewBindImageTextures)
5614 #define glBindSamplers GLEW_GET_FUN(__glewBindSamplers)
5615 #define glBindTextures GLEW_GET_FUN(__glewBindTextures)
5616 #define glBindVertexBuffers GLEW_GET_FUN(__glewBindVertexBuffers)
5617 
5618 #define GLEW_ARB_multi_bind GLEW_GET_VAR(__GLEW_ARB_multi_bind)
5619 
5620 #endif /* GL_ARB_multi_bind */
5621 
5622 /* ----------------------- GL_ARB_multi_draw_indirect ---------------------- */
5623 
5624 #ifndef GL_ARB_multi_draw_indirect
5625 #define GL_ARB_multi_draw_indirect 1
5626 
5627 typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride);
5628 typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride);
5629 
5630 #define glMultiDrawArraysIndirect GLEW_GET_FUN(__glewMultiDrawArraysIndirect)
5631 #define glMultiDrawElementsIndirect GLEW_GET_FUN(__glewMultiDrawElementsIndirect)
5632 
5633 #define GLEW_ARB_multi_draw_indirect GLEW_GET_VAR(__GLEW_ARB_multi_draw_indirect)
5634 
5635 #endif /* GL_ARB_multi_draw_indirect */
5636 
5637 /* --------------------------- GL_ARB_multisample -------------------------- */
5638 
5639 #ifndef GL_ARB_multisample
5640 #define GL_ARB_multisample 1
5641 
5642 #define GL_MULTISAMPLE_ARB 0x809D
5643 #define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E
5644 #define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F
5645 #define GL_SAMPLE_COVERAGE_ARB 0x80A0
5646 #define GL_SAMPLE_BUFFERS_ARB 0x80A8
5647 #define GL_SAMPLES_ARB 0x80A9
5648 #define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA
5649 #define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB
5650 #define GL_MULTISAMPLE_BIT_ARB 0x20000000
5651 
5652 typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert);
5653 
5654 #define glSampleCoverageARB GLEW_GET_FUN(__glewSampleCoverageARB)
5655 
5656 #define GLEW_ARB_multisample GLEW_GET_VAR(__GLEW_ARB_multisample)
5657 
5658 #endif /* GL_ARB_multisample */
5659 
5660 /* -------------------------- GL_ARB_multitexture -------------------------- */
5661 
5662 #ifndef GL_ARB_multitexture
5663 #define GL_ARB_multitexture 1
5664 
5665 #define GL_TEXTURE0_ARB 0x84C0
5666 #define GL_TEXTURE1_ARB 0x84C1
5667 #define GL_TEXTURE2_ARB 0x84C2
5668 #define GL_TEXTURE3_ARB 0x84C3
5669 #define GL_TEXTURE4_ARB 0x84C4
5670 #define GL_TEXTURE5_ARB 0x84C5
5671 #define GL_TEXTURE6_ARB 0x84C6
5672 #define GL_TEXTURE7_ARB 0x84C7
5673 #define GL_TEXTURE8_ARB 0x84C8
5674 #define GL_TEXTURE9_ARB 0x84C9
5675 #define GL_TEXTURE10_ARB 0x84CA
5676 #define GL_TEXTURE11_ARB 0x84CB
5677 #define GL_TEXTURE12_ARB 0x84CC
5678 #define GL_TEXTURE13_ARB 0x84CD
5679 #define GL_TEXTURE14_ARB 0x84CE
5680 #define GL_TEXTURE15_ARB 0x84CF
5681 #define GL_TEXTURE16_ARB 0x84D0
5682 #define GL_TEXTURE17_ARB 0x84D1
5683 #define GL_TEXTURE18_ARB 0x84D2
5684 #define GL_TEXTURE19_ARB 0x84D3
5685 #define GL_TEXTURE20_ARB 0x84D4
5686 #define GL_TEXTURE21_ARB 0x84D5
5687 #define GL_TEXTURE22_ARB 0x84D6
5688 #define GL_TEXTURE23_ARB 0x84D7
5689 #define GL_TEXTURE24_ARB 0x84D8
5690 #define GL_TEXTURE25_ARB 0x84D9
5691 #define GL_TEXTURE26_ARB 0x84DA
5692 #define GL_TEXTURE27_ARB 0x84DB
5693 #define GL_TEXTURE28_ARB 0x84DC
5694 #define GL_TEXTURE29_ARB 0x84DD
5695 #define GL_TEXTURE30_ARB 0x84DE
5696 #define GL_TEXTURE31_ARB 0x84DF
5697 #define GL_ACTIVE_TEXTURE_ARB 0x84E0
5698 #define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
5699 #define GL_MAX_TEXTURE_UNITS_ARB 0x84E2
5700 
5701 typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
5702 typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
5703 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
5704 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
5705 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
5706 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
5707 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
5708 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
5709 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
5710 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
5711 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
5712 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
5713 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
5714 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
5715 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
5716 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
5717 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
5718 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
5719 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
5720 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
5721 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
5722 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
5723 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
5724 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
5725 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
5726 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
5727 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
5728 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
5729 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
5730 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
5731 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
5732 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
5733 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
5734 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
5735 
5736 #define glActiveTextureARB GLEW_GET_FUN(__glewActiveTextureARB)
5737 #define glClientActiveTextureARB GLEW_GET_FUN(__glewClientActiveTextureARB)
5738 #define glMultiTexCoord1dARB GLEW_GET_FUN(__glewMultiTexCoord1dARB)
5739 #define glMultiTexCoord1dvARB GLEW_GET_FUN(__glewMultiTexCoord1dvARB)
5740 #define glMultiTexCoord1fARB GLEW_GET_FUN(__glewMultiTexCoord1fARB)
5741 #define glMultiTexCoord1fvARB GLEW_GET_FUN(__glewMultiTexCoord1fvARB)
5742 #define glMultiTexCoord1iARB GLEW_GET_FUN(__glewMultiTexCoord1iARB)
5743 #define glMultiTexCoord1ivARB GLEW_GET_FUN(__glewMultiTexCoord1ivARB)
5744 #define glMultiTexCoord1sARB GLEW_GET_FUN(__glewMultiTexCoord1sARB)
5745 #define glMultiTexCoord1svARB GLEW_GET_FUN(__glewMultiTexCoord1svARB)
5746 #define glMultiTexCoord2dARB GLEW_GET_FUN(__glewMultiTexCoord2dARB)
5747 #define glMultiTexCoord2dvARB GLEW_GET_FUN(__glewMultiTexCoord2dvARB)
5748 #define glMultiTexCoord2fARB GLEW_GET_FUN(__glewMultiTexCoord2fARB)
5749 #define glMultiTexCoord2fvARB GLEW_GET_FUN(__glewMultiTexCoord2fvARB)
5750 #define glMultiTexCoord2iARB GLEW_GET_FUN(__glewMultiTexCoord2iARB)
5751 #define glMultiTexCoord2ivARB GLEW_GET_FUN(__glewMultiTexCoord2ivARB)
5752 #define glMultiTexCoord2sARB GLEW_GET_FUN(__glewMultiTexCoord2sARB)
5753 #define glMultiTexCoord2svARB GLEW_GET_FUN(__glewMultiTexCoord2svARB)
5754 #define glMultiTexCoord3dARB GLEW_GET_FUN(__glewMultiTexCoord3dARB)
5755 #define glMultiTexCoord3dvARB GLEW_GET_FUN(__glewMultiTexCoord3dvARB)
5756 #define glMultiTexCoord3fARB GLEW_GET_FUN(__glewMultiTexCoord3fARB)
5757 #define glMultiTexCoord3fvARB GLEW_GET_FUN(__glewMultiTexCoord3fvARB)
5758 #define glMultiTexCoord3iARB GLEW_GET_FUN(__glewMultiTexCoord3iARB)
5759 #define glMultiTexCoord3ivARB GLEW_GET_FUN(__glewMultiTexCoord3ivARB)
5760 #define glMultiTexCoord3sARB GLEW_GET_FUN(__glewMultiTexCoord3sARB)
5761 #define glMultiTexCoord3svARB GLEW_GET_FUN(__glewMultiTexCoord3svARB)
5762 #define glMultiTexCoord4dARB GLEW_GET_FUN(__glewMultiTexCoord4dARB)
5763 #define glMultiTexCoord4dvARB GLEW_GET_FUN(__glewMultiTexCoord4dvARB)
5764 #define glMultiTexCoord4fARB GLEW_GET_FUN(__glewMultiTexCoord4fARB)
5765 #define glMultiTexCoord4fvARB GLEW_GET_FUN(__glewMultiTexCoord4fvARB)
5766 #define glMultiTexCoord4iARB GLEW_GET_FUN(__glewMultiTexCoord4iARB)
5767 #define glMultiTexCoord4ivARB GLEW_GET_FUN(__glewMultiTexCoord4ivARB)
5768 #define glMultiTexCoord4sARB GLEW_GET_FUN(__glewMultiTexCoord4sARB)
5769 #define glMultiTexCoord4svARB GLEW_GET_FUN(__glewMultiTexCoord4svARB)
5770 
5771 #define GLEW_ARB_multitexture GLEW_GET_VAR(__GLEW_ARB_multitexture)
5772 
5773 #endif /* GL_ARB_multitexture */
5774 
5775 /* ------------------------- GL_ARB_occlusion_query ------------------------ */
5776 
5777 #ifndef GL_ARB_occlusion_query
5778 #define GL_ARB_occlusion_query 1
5779 
5780 #define GL_QUERY_COUNTER_BITS_ARB 0x8864
5781 #define GL_CURRENT_QUERY_ARB 0x8865
5782 #define GL_QUERY_RESULT_ARB 0x8866
5783 #define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867
5784 #define GL_SAMPLES_PASSED_ARB 0x8914
5785 
5786 typedef void (GLAPIENTRY * PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id);
5787 typedef void (GLAPIENTRY * PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint* ids);
5788 typedef void (GLAPIENTRY * PFNGLENDQUERYARBPROC) (GLenum target);
5789 typedef void (GLAPIENTRY * PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint* ids);
5790 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint* params);
5791 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint* params);
5792 typedef void (GLAPIENTRY * PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint* params);
5793 typedef GLboolean (GLAPIENTRY * PFNGLISQUERYARBPROC) (GLuint id);
5794 
5795 #define glBeginQueryARB GLEW_GET_FUN(__glewBeginQueryARB)
5796 #define glDeleteQueriesARB GLEW_GET_FUN(__glewDeleteQueriesARB)
5797 #define glEndQueryARB GLEW_GET_FUN(__glewEndQueryARB)
5798 #define glGenQueriesARB GLEW_GET_FUN(__glewGenQueriesARB)
5799 #define glGetQueryObjectivARB GLEW_GET_FUN(__glewGetQueryObjectivARB)
5800 #define glGetQueryObjectuivARB GLEW_GET_FUN(__glewGetQueryObjectuivARB)
5801 #define glGetQueryivARB GLEW_GET_FUN(__glewGetQueryivARB)
5802 #define glIsQueryARB GLEW_GET_FUN(__glewIsQueryARB)
5803 
5804 #define GLEW_ARB_occlusion_query GLEW_GET_VAR(__GLEW_ARB_occlusion_query)
5805 
5806 #endif /* GL_ARB_occlusion_query */
5807 
5808 /* ------------------------ GL_ARB_occlusion_query2 ------------------------ */
5809 
5810 #ifndef GL_ARB_occlusion_query2
5811 #define GL_ARB_occlusion_query2 1
5812 
5813 #define GL_ANY_SAMPLES_PASSED 0x8C2F
5814 
5815 #define GLEW_ARB_occlusion_query2 GLEW_GET_VAR(__GLEW_ARB_occlusion_query2)
5816 
5817 #endif /* GL_ARB_occlusion_query2 */
5818 
5819 /* --------------------- GL_ARB_parallel_shader_compile -------------------- */
5820 
5821 #ifndef GL_ARB_parallel_shader_compile
5822 #define GL_ARB_parallel_shader_compile 1
5823 
5824 #define GL_MAX_SHADER_COMPILER_THREADS_ARB 0x91B0
5825 #define GL_COMPLETION_STATUS_ARB 0x91B1
5826 
5827 typedef void (GLAPIENTRY * PFNGLMAXSHADERCOMPILERTHREADSARBPROC) (GLuint count);
5828 
5829 #define glMaxShaderCompilerThreadsARB GLEW_GET_FUN(__glewMaxShaderCompilerThreadsARB)
5830 
5831 #define GLEW_ARB_parallel_shader_compile GLEW_GET_VAR(__GLEW_ARB_parallel_shader_compile)
5832 
5833 #endif /* GL_ARB_parallel_shader_compile */
5834 
5835 /* -------------------- GL_ARB_pipeline_statistics_query ------------------- */
5836 
5837 #ifndef GL_ARB_pipeline_statistics_query
5838 #define GL_ARB_pipeline_statistics_query 1
5839 
5840 #define GL_VERTICES_SUBMITTED_ARB 0x82EE
5841 #define GL_PRIMITIVES_SUBMITTED_ARB 0x82EF
5842 #define GL_VERTEX_SHADER_INVOCATIONS_ARB 0x82F0
5843 #define GL_TESS_CONTROL_SHADER_PATCHES_ARB 0x82F1
5844 #define GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB 0x82F2
5845 #define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 0x82F3
5846 #define GL_FRAGMENT_SHADER_INVOCATIONS_ARB 0x82F4
5847 #define GL_COMPUTE_SHADER_INVOCATIONS_ARB 0x82F5
5848 #define GL_CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6
5849 #define GL_CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7
5850 #define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F
5851 
5852 #define GLEW_ARB_pipeline_statistics_query GLEW_GET_VAR(__GLEW_ARB_pipeline_statistics_query)
5853 
5854 #endif /* GL_ARB_pipeline_statistics_query */
5855 
5856 /* ----------------------- GL_ARB_pixel_buffer_object ---------------------- */
5857 
5858 #ifndef GL_ARB_pixel_buffer_object
5859 #define GL_ARB_pixel_buffer_object 1
5860 
5861 #define GL_PIXEL_PACK_BUFFER_ARB 0x88EB
5862 #define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC
5863 #define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED
5864 #define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF
5865 
5866 #define GLEW_ARB_pixel_buffer_object GLEW_GET_VAR(__GLEW_ARB_pixel_buffer_object)
5867 
5868 #endif /* GL_ARB_pixel_buffer_object */
5869 
5870 /* ------------------------ GL_ARB_point_parameters ------------------------ */
5871 
5872 #ifndef GL_ARB_point_parameters
5873 #define GL_ARB_point_parameters 1
5874 
5875 #define GL_POINT_SIZE_MIN_ARB 0x8126
5876 #define GL_POINT_SIZE_MAX_ARB 0x8127
5877 #define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128
5878 #define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129
5879 
5880 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param);
5881 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat* params);
5882 
5883 #define glPointParameterfARB GLEW_GET_FUN(__glewPointParameterfARB)
5884 #define glPointParameterfvARB GLEW_GET_FUN(__glewPointParameterfvARB)
5885 
5886 #define GLEW_ARB_point_parameters GLEW_GET_VAR(__GLEW_ARB_point_parameters)
5887 
5888 #endif /* GL_ARB_point_parameters */
5889 
5890 /* -------------------------- GL_ARB_point_sprite -------------------------- */
5891 
5892 #ifndef GL_ARB_point_sprite
5893 #define GL_ARB_point_sprite 1
5894 
5895 #define GL_POINT_SPRITE_ARB 0x8861
5896 #define GL_COORD_REPLACE_ARB 0x8862
5897 
5898 #define GLEW_ARB_point_sprite GLEW_GET_VAR(__GLEW_ARB_point_sprite)
5899 
5900 #endif /* GL_ARB_point_sprite */
5901 
5902 /* ---------------------- GL_ARB_polygon_offset_clamp ---------------------- */
5903 
5904 #ifndef GL_ARB_polygon_offset_clamp
5905 #define GL_ARB_polygon_offset_clamp 1
5906 
5907 #define GL_POLYGON_OFFSET_CLAMP 0x8E1B
5908 
5909 typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETCLAMPPROC) (GLfloat factor, GLfloat units, GLfloat clamp);
5910 
5911 #define glPolygonOffsetClamp GLEW_GET_FUN(__glewPolygonOffsetClamp)
5912 
5913 #define GLEW_ARB_polygon_offset_clamp GLEW_GET_VAR(__GLEW_ARB_polygon_offset_clamp)
5914 
5915 #endif /* GL_ARB_polygon_offset_clamp */
5916 
5917 /* ----------------------- GL_ARB_post_depth_coverage ---------------------- */
5918 
5919 #ifndef GL_ARB_post_depth_coverage
5920 #define GL_ARB_post_depth_coverage 1
5921 
5922 #define GLEW_ARB_post_depth_coverage GLEW_GET_VAR(__GLEW_ARB_post_depth_coverage)
5923 
5924 #endif /* GL_ARB_post_depth_coverage */
5925 
5926 /* --------------------- GL_ARB_program_interface_query -------------------- */
5927 
5928 #ifndef GL_ARB_program_interface_query
5929 #define GL_ARB_program_interface_query 1
5930 
5931 #define GL_UNIFORM 0x92E1
5932 #define GL_UNIFORM_BLOCK 0x92E2
5933 #define GL_PROGRAM_INPUT 0x92E3
5934 #define GL_PROGRAM_OUTPUT 0x92E4
5935 #define GL_BUFFER_VARIABLE 0x92E5
5936 #define GL_SHADER_STORAGE_BLOCK 0x92E6
5937 #define GL_IS_PER_PATCH 0x92E7
5938 #define GL_VERTEX_SUBROUTINE 0x92E8
5939 #define GL_TESS_CONTROL_SUBROUTINE 0x92E9
5940 #define GL_TESS_EVALUATION_SUBROUTINE 0x92EA
5941 #define GL_GEOMETRY_SUBROUTINE 0x92EB
5942 #define GL_FRAGMENT_SUBROUTINE 0x92EC
5943 #define GL_COMPUTE_SUBROUTINE 0x92ED
5944 #define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE
5945 #define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF
5946 #define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0
5947 #define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1
5948 #define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2
5949 #define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3
5950 #define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4
5951 #define GL_ACTIVE_RESOURCES 0x92F5
5952 #define GL_MAX_NAME_LENGTH 0x92F6
5953 #define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7
5954 #define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8
5955 #define GL_NAME_LENGTH 0x92F9
5956 #define GL_TYPE 0x92FA
5957 #define GL_ARRAY_SIZE 0x92FB
5958 #define GL_OFFSET 0x92FC
5959 #define GL_BLOCK_INDEX 0x92FD
5960 #define GL_ARRAY_STRIDE 0x92FE
5961 #define GL_MATRIX_STRIDE 0x92FF
5962 #define GL_IS_ROW_MAJOR 0x9300
5963 #define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301
5964 #define GL_BUFFER_BINDING 0x9302
5965 #define GL_BUFFER_DATA_SIZE 0x9303
5966 #define GL_NUM_ACTIVE_VARIABLES 0x9304
5967 #define GL_ACTIVE_VARIABLES 0x9305
5968 #define GL_REFERENCED_BY_VERTEX_SHADER 0x9306
5969 #define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307
5970 #define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308
5971 #define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309
5972 #define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A
5973 #define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B
5974 #define GL_TOP_LEVEL_ARRAY_SIZE 0x930C
5975 #define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D
5976 #define GL_LOCATION 0x930E
5977 #define GL_LOCATION_INDEX 0x930F
5978 
5979 typedef void (GLAPIENTRY * PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint* params);
5980 typedef GLuint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar* name);
5981 typedef GLint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar* name);
5982 typedef GLint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) (GLuint program, GLenum programInterface, const GLchar* name);
5983 typedef void (GLAPIENTRY * PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar *name);
5984 typedef void (GLAPIENTRY * PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei *length, GLint *params);
5985 
5986 #define glGetProgramInterfaceiv GLEW_GET_FUN(__glewGetProgramInterfaceiv)
5987 #define glGetProgramResourceIndex GLEW_GET_FUN(__glewGetProgramResourceIndex)
5988 #define glGetProgramResourceLocation GLEW_GET_FUN(__glewGetProgramResourceLocation)
5989 #define glGetProgramResourceLocationIndex GLEW_GET_FUN(__glewGetProgramResourceLocationIndex)
5990 #define glGetProgramResourceName GLEW_GET_FUN(__glewGetProgramResourceName)
5991 #define glGetProgramResourceiv GLEW_GET_FUN(__glewGetProgramResourceiv)
5992 
5993 #define GLEW_ARB_program_interface_query GLEW_GET_VAR(__GLEW_ARB_program_interface_query)
5994 
5995 #endif /* GL_ARB_program_interface_query */
5996 
5997 /* ------------------------ GL_ARB_provoking_vertex ------------------------ */
5998 
5999 #ifndef GL_ARB_provoking_vertex
6000 #define GL_ARB_provoking_vertex 1
6001 
6002 #define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
6003 #define GL_FIRST_VERTEX_CONVENTION 0x8E4D
6004 #define GL_LAST_VERTEX_CONVENTION 0x8E4E
6005 #define GL_PROVOKING_VERTEX 0x8E4F
6006 
6007 typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXPROC) (GLenum mode);
6008 
6009 #define glProvokingVertex GLEW_GET_FUN(__glewProvokingVertex)
6010 
6011 #define GLEW_ARB_provoking_vertex GLEW_GET_VAR(__GLEW_ARB_provoking_vertex)
6012 
6013 #endif /* GL_ARB_provoking_vertex */
6014 
6015 /* ----------------------- GL_ARB_query_buffer_object ---------------------- */
6016 
6017 #ifndef GL_ARB_query_buffer_object
6018 #define GL_ARB_query_buffer_object 1
6019 
6020 #define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000
6021 #define GL_QUERY_BUFFER 0x9192
6022 #define GL_QUERY_BUFFER_BINDING 0x9193
6023 #define GL_QUERY_RESULT_NO_WAIT 0x9194
6024 
6025 #define GLEW_ARB_query_buffer_object GLEW_GET_VAR(__GLEW_ARB_query_buffer_object)
6026 
6027 #endif /* GL_ARB_query_buffer_object */
6028 
6029 /* ------------------ GL_ARB_robust_buffer_access_behavior ----------------- */
6030 
6031 #ifndef GL_ARB_robust_buffer_access_behavior
6032 #define GL_ARB_robust_buffer_access_behavior 1
6033 
6034 #define GLEW_ARB_robust_buffer_access_behavior GLEW_GET_VAR(__GLEW_ARB_robust_buffer_access_behavior)
6035 
6036 #endif /* GL_ARB_robust_buffer_access_behavior */
6037 
6038 /* --------------------------- GL_ARB_robustness --------------------------- */
6039 
6040 #ifndef GL_ARB_robustness
6041 #define GL_ARB_robustness 1
6042 
6043 #define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004
6044 #define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
6045 #define GL_GUILTY_CONTEXT_RESET_ARB 0x8253
6046 #define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
6047 #define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
6048 #define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
6049 #define GL_NO_RESET_NOTIFICATION_ARB 0x8261
6050 
6051 typedef GLenum (GLAPIENTRY * PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void);
6052 typedef void (GLAPIENTRY * PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table);
6053 typedef void (GLAPIENTRY * PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void* img);
6054 typedef void (GLAPIENTRY * PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image);
6055 typedef void (GLAPIENTRY * PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values);
6056 typedef void (GLAPIENTRY * PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble* v);
6057 typedef void (GLAPIENTRY * PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat* v);
6058 typedef void (GLAPIENTRY * PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint* v);
6059 typedef void (GLAPIENTRY * PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values);
6060 typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat* values);
6061 typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint* values);
6062 typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort* values);
6063 typedef void (GLAPIENTRY * PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte* pattern);
6064 typedef void (GLAPIENTRY * PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void* row, GLsizei columnBufSize, void*column, void*span);
6065 typedef void (GLAPIENTRY * PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img);
6066 typedef void (GLAPIENTRY * PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble* params);
6067 typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params);
6068 typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params);
6069 typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params);
6070 typedef void (GLAPIENTRY * PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data);
6071 
6072 #define glGetGraphicsResetStatusARB GLEW_GET_FUN(__glewGetGraphicsResetStatusARB)
6073 #define glGetnColorTableARB GLEW_GET_FUN(__glewGetnColorTableARB)
6074 #define glGetnCompressedTexImageARB GLEW_GET_FUN(__glewGetnCompressedTexImageARB)
6075 #define glGetnConvolutionFilterARB GLEW_GET_FUN(__glewGetnConvolutionFilterARB)
6076 #define glGetnHistogramARB GLEW_GET_FUN(__glewGetnHistogramARB)
6077 #define glGetnMapdvARB GLEW_GET_FUN(__glewGetnMapdvARB)
6078 #define glGetnMapfvARB GLEW_GET_FUN(__glewGetnMapfvARB)
6079 #define glGetnMapivARB GLEW_GET_FUN(__glewGetnMapivARB)
6080 #define glGetnMinmaxARB GLEW_GET_FUN(__glewGetnMinmaxARB)
6081 #define glGetnPixelMapfvARB GLEW_GET_FUN(__glewGetnPixelMapfvARB)
6082 #define glGetnPixelMapuivARB GLEW_GET_FUN(__glewGetnPixelMapuivARB)
6083 #define glGetnPixelMapusvARB GLEW_GET_FUN(__glewGetnPixelMapusvARB)
6084 #define glGetnPolygonStippleARB GLEW_GET_FUN(__glewGetnPolygonStippleARB)
6085 #define glGetnSeparableFilterARB GLEW_GET_FUN(__glewGetnSeparableFilterARB)
6086 #define glGetnTexImageARB GLEW_GET_FUN(__glewGetnTexImageARB)
6087 #define glGetnUniformdvARB GLEW_GET_FUN(__glewGetnUniformdvARB)
6088 #define glGetnUniformfvARB GLEW_GET_FUN(__glewGetnUniformfvARB)
6089 #define glGetnUniformivARB GLEW_GET_FUN(__glewGetnUniformivARB)
6090 #define glGetnUniformuivARB GLEW_GET_FUN(__glewGetnUniformuivARB)
6091 #define glReadnPixelsARB GLEW_GET_FUN(__glewReadnPixelsARB)
6092 
6093 #define GLEW_ARB_robustness GLEW_GET_VAR(__GLEW_ARB_robustness)
6094 
6095 #endif /* GL_ARB_robustness */
6096 
6097 /* ---------------- GL_ARB_robustness_application_isolation ---------------- */
6098 
6099 #ifndef GL_ARB_robustness_application_isolation
6100 #define GL_ARB_robustness_application_isolation 1
6101 
6102 #define GLEW_ARB_robustness_application_isolation GLEW_GET_VAR(__GLEW_ARB_robustness_application_isolation)
6103 
6104 #endif /* GL_ARB_robustness_application_isolation */
6105 
6106 /* ---------------- GL_ARB_robustness_share_group_isolation ---------------- */
6107 
6108 #ifndef GL_ARB_robustness_share_group_isolation
6109 #define GL_ARB_robustness_share_group_isolation 1
6110 
6111 #define GLEW_ARB_robustness_share_group_isolation GLEW_GET_VAR(__GLEW_ARB_robustness_share_group_isolation)
6112 
6113 #endif /* GL_ARB_robustness_share_group_isolation */
6114 
6115 /* ------------------------ GL_ARB_sample_locations ------------------------ */
6116 
6117 #ifndef GL_ARB_sample_locations
6118 #define GL_ARB_sample_locations 1
6119 
6120 #define GL_SAMPLE_LOCATION_ARB 0x8E50
6121 #define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB 0x933D
6122 #define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB 0x933E
6123 #define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB 0x933F
6124 #define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB 0x9340
6125 #define GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB 0x9341
6126 #define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB 0x9342
6127 #define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB 0x9343
6128 
6129 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat* v);
6130 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v);
6131 
6132 #define glFramebufferSampleLocationsfvARB GLEW_GET_FUN(__glewFramebufferSampleLocationsfvARB)
6133 #define glNamedFramebufferSampleLocationsfvARB GLEW_GET_FUN(__glewNamedFramebufferSampleLocationsfvARB)
6134 
6135 #define GLEW_ARB_sample_locations GLEW_GET_VAR(__GLEW_ARB_sample_locations)
6136 
6137 #endif /* GL_ARB_sample_locations */
6138 
6139 /* ------------------------- GL_ARB_sample_shading ------------------------- */
6140 
6141 #ifndef GL_ARB_sample_shading
6142 #define GL_ARB_sample_shading 1
6143 
6144 #define GL_SAMPLE_SHADING_ARB 0x8C36
6145 #define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37
6146 
6147 typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value);
6148 
6149 #define glMinSampleShadingARB GLEW_GET_FUN(__glewMinSampleShadingARB)
6150 
6151 #define GLEW_ARB_sample_shading GLEW_GET_VAR(__GLEW_ARB_sample_shading)
6152 
6153 #endif /* GL_ARB_sample_shading */
6154 
6155 /* ------------------------- GL_ARB_sampler_objects ------------------------ */
6156 
6157 #ifndef GL_ARB_sampler_objects
6158 #define GL_ARB_sampler_objects 1
6159 
6160 #define GL_SAMPLER_BINDING 0x8919
6161 
6162 typedef void (GLAPIENTRY * PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler);
6163 typedef void (GLAPIENTRY * PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint * samplers);
6164 typedef void (GLAPIENTRY * PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint* samplers);
6165 typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint* params);
6166 typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint* params);
6167 typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat* params);
6168 typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint* params);
6169 typedef GLboolean (GLAPIENTRY * PFNGLISSAMPLERPROC) (GLuint sampler);
6170 typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint* params);
6171 typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint* params);
6172 typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param);
6173 typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat* params);
6174 typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param);
6175 typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint* params);
6176 
6177 #define glBindSampler GLEW_GET_FUN(__glewBindSampler)
6178 #define glDeleteSamplers GLEW_GET_FUN(__glewDeleteSamplers)
6179 #define glGenSamplers GLEW_GET_FUN(__glewGenSamplers)
6180 #define glGetSamplerParameterIiv GLEW_GET_FUN(__glewGetSamplerParameterIiv)
6181 #define glGetSamplerParameterIuiv GLEW_GET_FUN(__glewGetSamplerParameterIuiv)
6182 #define glGetSamplerParameterfv GLEW_GET_FUN(__glewGetSamplerParameterfv)
6183 #define glGetSamplerParameteriv GLEW_GET_FUN(__glewGetSamplerParameteriv)
6184 #define glIsSampler GLEW_GET_FUN(__glewIsSampler)
6185 #define glSamplerParameterIiv GLEW_GET_FUN(__glewSamplerParameterIiv)
6186 #define glSamplerParameterIuiv GLEW_GET_FUN(__glewSamplerParameterIuiv)
6187 #define glSamplerParameterf GLEW_GET_FUN(__glewSamplerParameterf)
6188 #define glSamplerParameterfv GLEW_GET_FUN(__glewSamplerParameterfv)
6189 #define glSamplerParameteri GLEW_GET_FUN(__glewSamplerParameteri)
6190 #define glSamplerParameteriv GLEW_GET_FUN(__glewSamplerParameteriv)
6191 
6192 #define GLEW_ARB_sampler_objects GLEW_GET_VAR(__GLEW_ARB_sampler_objects)
6193 
6194 #endif /* GL_ARB_sampler_objects */
6195 
6196 /* ------------------------ GL_ARB_seamless_cube_map ----------------------- */
6197 
6198 #ifndef GL_ARB_seamless_cube_map
6199 #define GL_ARB_seamless_cube_map 1
6200 
6201 #define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
6202 
6203 #define GLEW_ARB_seamless_cube_map GLEW_GET_VAR(__GLEW_ARB_seamless_cube_map)
6204 
6205 #endif /* GL_ARB_seamless_cube_map */
6206 
6207 /* ------------------ GL_ARB_seamless_cubemap_per_texture ------------------ */
6208 
6209 #ifndef GL_ARB_seamless_cubemap_per_texture
6210 #define GL_ARB_seamless_cubemap_per_texture 1
6211 
6212 #define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
6213 
6214 #define GLEW_ARB_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_ARB_seamless_cubemap_per_texture)
6215 
6216 #endif /* GL_ARB_seamless_cubemap_per_texture */
6217 
6218 /* --------------------- GL_ARB_separate_shader_objects -------------------- */
6219 
6220 #ifndef GL_ARB_separate_shader_objects
6221 #define GL_ARB_separate_shader_objects 1
6222 
6223 #define GL_VERTEX_SHADER_BIT 0x00000001
6224 #define GL_FRAGMENT_SHADER_BIT 0x00000002
6225 #define GL_GEOMETRY_SHADER_BIT 0x00000004
6226 #define GL_TESS_CONTROL_SHADER_BIT 0x00000008
6227 #define GL_TESS_EVALUATION_SHADER_BIT 0x00000010
6228 #define GL_PROGRAM_SEPARABLE 0x8258
6229 #define GL_ACTIVE_PROGRAM 0x8259
6230 #define GL_PROGRAM_PIPELINE_BINDING 0x825A
6231 #define GL_ALL_SHADER_BITS 0xFFFFFFFF
6232 
6233 typedef void (GLAPIENTRY * PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program);
6234 typedef void (GLAPIENTRY * PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline);
6235 typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar * const * strings);
6236 typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint* pipelines);
6237 typedef void (GLAPIENTRY * PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines);
6238 typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar *infoLog);
6239 typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint* params);
6240 typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline);
6241 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble x);
6242 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value);
6243 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat x);
6244 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
6245 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint x);
6246 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
6247 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint x);
6248 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
6249 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y);
6250 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value);
6251 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y);
6252 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
6253 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint x, GLint y);
6254 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
6255 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint x, GLuint y);
6256 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
6257 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
6258 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value);
6259 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
6260 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
6261 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z);
6262 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
6263 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z);
6264 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
6265 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
6266 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value);
6267 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
6268 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
6269 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
6270 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
6271 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w);
6272 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
6273 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
6274 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
6275 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
6276 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
6277 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
6278 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
6279 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
6280 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
6281 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
6282 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
6283 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
6284 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
6285 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
6286 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
6287 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
6288 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
6289 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
6290 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
6291 typedef void (GLAPIENTRY * PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
6292 typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline);
6293 
6294 #define glActiveShaderProgram GLEW_GET_FUN(__glewActiveShaderProgram)
6295 #define glBindProgramPipeline GLEW_GET_FUN(__glewBindProgramPipeline)
6296 #define glCreateShaderProgramv GLEW_GET_FUN(__glewCreateShaderProgramv)
6297 #define glDeleteProgramPipelines GLEW_GET_FUN(__glewDeleteProgramPipelines)
6298 #define glGenProgramPipelines GLEW_GET_FUN(__glewGenProgramPipelines)
6299 #define glGetProgramPipelineInfoLog GLEW_GET_FUN(__glewGetProgramPipelineInfoLog)
6300 #define glGetProgramPipelineiv GLEW_GET_FUN(__glewGetProgramPipelineiv)
6301 #define glIsProgramPipeline GLEW_GET_FUN(__glewIsProgramPipeline)
6302 #define glProgramUniform1d GLEW_GET_FUN(__glewProgramUniform1d)
6303 #define glProgramUniform1dv GLEW_GET_FUN(__glewProgramUniform1dv)
6304 #define glProgramUniform1f GLEW_GET_FUN(__glewProgramUniform1f)
6305 #define glProgramUniform1fv GLEW_GET_FUN(__glewProgramUniform1fv)
6306 #define glProgramUniform1i GLEW_GET_FUN(__glewProgramUniform1i)
6307 #define glProgramUniform1iv GLEW_GET_FUN(__glewProgramUniform1iv)
6308 #define glProgramUniform1ui GLEW_GET_FUN(__glewProgramUniform1ui)
6309 #define glProgramUniform1uiv GLEW_GET_FUN(__glewProgramUniform1uiv)
6310 #define glProgramUniform2d GLEW_GET_FUN(__glewProgramUniform2d)
6311 #define glProgramUniform2dv GLEW_GET_FUN(__glewProgramUniform2dv)
6312 #define glProgramUniform2f GLEW_GET_FUN(__glewProgramUniform2f)
6313 #define glProgramUniform2fv GLEW_GET_FUN(__glewProgramUniform2fv)
6314 #define glProgramUniform2i GLEW_GET_FUN(__glewProgramUniform2i)
6315 #define glProgramUniform2iv GLEW_GET_FUN(__glewProgramUniform2iv)
6316 #define glProgramUniform2ui GLEW_GET_FUN(__glewProgramUniform2ui)
6317 #define glProgramUniform2uiv GLEW_GET_FUN(__glewProgramUniform2uiv)
6318 #define glProgramUniform3d GLEW_GET_FUN(__glewProgramUniform3d)
6319 #define glProgramUniform3dv GLEW_GET_FUN(__glewProgramUniform3dv)
6320 #define glProgramUniform3f GLEW_GET_FUN(__glewProgramUniform3f)
6321 #define glProgramUniform3fv GLEW_GET_FUN(__glewProgramUniform3fv)
6322 #define glProgramUniform3i GLEW_GET_FUN(__glewProgramUniform3i)
6323 #define glProgramUniform3iv GLEW_GET_FUN(__glewProgramUniform3iv)
6324 #define glProgramUniform3ui GLEW_GET_FUN(__glewProgramUniform3ui)
6325 #define glProgramUniform3uiv GLEW_GET_FUN(__glewProgramUniform3uiv)
6326 #define glProgramUniform4d GLEW_GET_FUN(__glewProgramUniform4d)
6327 #define glProgramUniform4dv GLEW_GET_FUN(__glewProgramUniform4dv)
6328 #define glProgramUniform4f GLEW_GET_FUN(__glewProgramUniform4f)
6329 #define glProgramUniform4fv GLEW_GET_FUN(__glewProgramUniform4fv)
6330 #define glProgramUniform4i GLEW_GET_FUN(__glewProgramUniform4i)
6331 #define glProgramUniform4iv GLEW_GET_FUN(__glewProgramUniform4iv)
6332 #define glProgramUniform4ui GLEW_GET_FUN(__glewProgramUniform4ui)
6333 #define glProgramUniform4uiv GLEW_GET_FUN(__glewProgramUniform4uiv)
6334 #define glProgramUniformMatrix2dv GLEW_GET_FUN(__glewProgramUniformMatrix2dv)
6335 #define glProgramUniformMatrix2fv GLEW_GET_FUN(__glewProgramUniformMatrix2fv)
6336 #define glProgramUniformMatrix2x3dv GLEW_GET_FUN(__glewProgramUniformMatrix2x3dv)
6337 #define glProgramUniformMatrix2x3fv GLEW_GET_FUN(__glewProgramUniformMatrix2x3fv)
6338 #define glProgramUniformMatrix2x4dv GLEW_GET_FUN(__glewProgramUniformMatrix2x4dv)
6339 #define glProgramUniformMatrix2x4fv GLEW_GET_FUN(__glewProgramUniformMatrix2x4fv)
6340 #define glProgramUniformMatrix3dv GLEW_GET_FUN(__glewProgramUniformMatrix3dv)
6341 #define glProgramUniformMatrix3fv GLEW_GET_FUN(__glewProgramUniformMatrix3fv)
6342 #define glProgramUniformMatrix3x2dv GLEW_GET_FUN(__glewProgramUniformMatrix3x2dv)
6343 #define glProgramUniformMatrix3x2fv GLEW_GET_FUN(__glewProgramUniformMatrix3x2fv)
6344 #define glProgramUniformMatrix3x4dv GLEW_GET_FUN(__glewProgramUniformMatrix3x4dv)
6345 #define glProgramUniformMatrix3x4fv GLEW_GET_FUN(__glewProgramUniformMatrix3x4fv)
6346 #define glProgramUniformMatrix4dv GLEW_GET_FUN(__glewProgramUniformMatrix4dv)
6347 #define glProgramUniformMatrix4fv GLEW_GET_FUN(__glewProgramUniformMatrix4fv)
6348 #define glProgramUniformMatrix4x2dv GLEW_GET_FUN(__glewProgramUniformMatrix4x2dv)
6349 #define glProgramUniformMatrix4x2fv GLEW_GET_FUN(__glewProgramUniformMatrix4x2fv)
6350 #define glProgramUniformMatrix4x3dv GLEW_GET_FUN(__glewProgramUniformMatrix4x3dv)
6351 #define glProgramUniformMatrix4x3fv GLEW_GET_FUN(__glewProgramUniformMatrix4x3fv)
6352 #define glUseProgramStages GLEW_GET_FUN(__glewUseProgramStages)
6353 #define glValidateProgramPipeline GLEW_GET_FUN(__glewValidateProgramPipeline)
6354 
6355 #define GLEW_ARB_separate_shader_objects GLEW_GET_VAR(__GLEW_ARB_separate_shader_objects)
6356 
6357 #endif /* GL_ARB_separate_shader_objects */
6358 
6359 /* -------------------- GL_ARB_shader_atomic_counter_ops ------------------- */
6360 
6361 #ifndef GL_ARB_shader_atomic_counter_ops
6362 #define GL_ARB_shader_atomic_counter_ops 1
6363 
6364 #define GLEW_ARB_shader_atomic_counter_ops GLEW_GET_VAR(__GLEW_ARB_shader_atomic_counter_ops)
6365 
6366 #endif /* GL_ARB_shader_atomic_counter_ops */
6367 
6368 /* --------------------- GL_ARB_shader_atomic_counters --------------------- */
6369 
6370 #ifndef GL_ARB_shader_atomic_counters
6371 #define GL_ARB_shader_atomic_counters 1
6372 
6373 #define GL_ATOMIC_COUNTER_BUFFER 0x92C0
6374 #define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1
6375 #define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2
6376 #define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3
6377 #define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4
6378 #define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5
6379 #define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6
6380 #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7
6381 #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8
6382 #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9
6383 #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA
6384 #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB
6385 #define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC
6386 #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD
6387 #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE
6388 #define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF
6389 #define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0
6390 #define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1
6391 #define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2
6392 #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3
6393 #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4
6394 #define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5
6395 #define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6
6396 #define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7
6397 #define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8
6398 #define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9
6399 #define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA
6400 #define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB
6401 #define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC
6402 
6403 typedef void (GLAPIENTRY * PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint* params);
6404 
6405 #define glGetActiveAtomicCounterBufferiv GLEW_GET_FUN(__glewGetActiveAtomicCounterBufferiv)
6406 
6407 #define GLEW_ARB_shader_atomic_counters GLEW_GET_VAR(__GLEW_ARB_shader_atomic_counters)
6408 
6409 #endif /* GL_ARB_shader_atomic_counters */
6410 
6411 /* -------------------------- GL_ARB_shader_ballot ------------------------- */
6412 
6413 #ifndef GL_ARB_shader_ballot
6414 #define GL_ARB_shader_ballot 1
6415 
6416 #define GLEW_ARB_shader_ballot GLEW_GET_VAR(__GLEW_ARB_shader_ballot)
6417 
6418 #endif /* GL_ARB_shader_ballot */
6419 
6420 /* ----------------------- GL_ARB_shader_bit_encoding ---------------------- */
6421 
6422 #ifndef GL_ARB_shader_bit_encoding
6423 #define GL_ARB_shader_bit_encoding 1
6424 
6425 #define GLEW_ARB_shader_bit_encoding GLEW_GET_VAR(__GLEW_ARB_shader_bit_encoding)
6426 
6427 #endif /* GL_ARB_shader_bit_encoding */
6428 
6429 /* -------------------------- GL_ARB_shader_clock -------------------------- */
6430 
6431 #ifndef GL_ARB_shader_clock
6432 #define GL_ARB_shader_clock 1
6433 
6434 #define GLEW_ARB_shader_clock GLEW_GET_VAR(__GLEW_ARB_shader_clock)
6435 
6436 #endif /* GL_ARB_shader_clock */
6437 
6438 /* --------------------- GL_ARB_shader_draw_parameters --------------------- */
6439 
6440 #ifndef GL_ARB_shader_draw_parameters
6441 #define GL_ARB_shader_draw_parameters 1
6442 
6443 #define GLEW_ARB_shader_draw_parameters GLEW_GET_VAR(__GLEW_ARB_shader_draw_parameters)
6444 
6445 #endif /* GL_ARB_shader_draw_parameters */
6446 
6447 /* ------------------------ GL_ARB_shader_group_vote ----------------------- */
6448 
6449 #ifndef GL_ARB_shader_group_vote
6450 #define GL_ARB_shader_group_vote 1
6451 
6452 #define GLEW_ARB_shader_group_vote GLEW_GET_VAR(__GLEW_ARB_shader_group_vote)
6453 
6454 #endif /* GL_ARB_shader_group_vote */
6455 
6456 /* --------------------- GL_ARB_shader_image_load_store -------------------- */
6457 
6458 #ifndef GL_ARB_shader_image_load_store
6459 #define GL_ARB_shader_image_load_store 1
6460 
6461 #define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001
6462 #define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002
6463 #define GL_UNIFORM_BARRIER_BIT 0x00000004
6464 #define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008
6465 #define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020
6466 #define GL_COMMAND_BARRIER_BIT 0x00000040
6467 #define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080
6468 #define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100
6469 #define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200
6470 #define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400
6471 #define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800
6472 #define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000
6473 #define GL_MAX_IMAGE_UNITS 0x8F38
6474 #define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39
6475 #define GL_IMAGE_BINDING_NAME 0x8F3A
6476 #define GL_IMAGE_BINDING_LEVEL 0x8F3B
6477 #define GL_IMAGE_BINDING_LAYERED 0x8F3C
6478 #define GL_IMAGE_BINDING_LAYER 0x8F3D
6479 #define GL_IMAGE_BINDING_ACCESS 0x8F3E
6480 #define GL_IMAGE_1D 0x904C
6481 #define GL_IMAGE_2D 0x904D
6482 #define GL_IMAGE_3D 0x904E
6483 #define GL_IMAGE_2D_RECT 0x904F
6484 #define GL_IMAGE_CUBE 0x9050
6485 #define GL_IMAGE_BUFFER 0x9051
6486 #define GL_IMAGE_1D_ARRAY 0x9052
6487 #define GL_IMAGE_2D_ARRAY 0x9053
6488 #define GL_IMAGE_CUBE_MAP_ARRAY 0x9054
6489 #define GL_IMAGE_2D_MULTISAMPLE 0x9055
6490 #define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056
6491 #define GL_INT_IMAGE_1D 0x9057
6492 #define GL_INT_IMAGE_2D 0x9058
6493 #define GL_INT_IMAGE_3D 0x9059
6494 #define GL_INT_IMAGE_2D_RECT 0x905A
6495 #define GL_INT_IMAGE_CUBE 0x905B
6496 #define GL_INT_IMAGE_BUFFER 0x905C
6497 #define GL_INT_IMAGE_1D_ARRAY 0x905D
6498 #define GL_INT_IMAGE_2D_ARRAY 0x905E
6499 #define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F
6500 #define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060
6501 #define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061
6502 #define GL_UNSIGNED_INT_IMAGE_1D 0x9062
6503 #define GL_UNSIGNED_INT_IMAGE_2D 0x9063
6504 #define GL_UNSIGNED_INT_IMAGE_3D 0x9064
6505 #define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065
6506 #define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066
6507 #define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067
6508 #define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068
6509 #define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069
6510 #define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A
6511 #define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B
6512 #define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C
6513 #define GL_MAX_IMAGE_SAMPLES 0x906D
6514 #define GL_IMAGE_BINDING_FORMAT 0x906E
6515 #define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7
6516 #define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8
6517 #define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9
6518 #define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA
6519 #define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB
6520 #define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC
6521 #define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD
6522 #define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE
6523 #define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF
6524 #define GL_ALL_BARRIER_BITS 0xFFFFFFFF
6525 
6526 typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
6527 typedef void (GLAPIENTRY * PFNGLMEMORYBARRIERPROC) (GLbitfield barriers);
6528 
6529 #define glBindImageTexture GLEW_GET_FUN(__glewBindImageTexture)
6530 #define glMemoryBarrier GLEW_GET_FUN(__glewMemoryBarrier)
6531 
6532 #define GLEW_ARB_shader_image_load_store GLEW_GET_VAR(__GLEW_ARB_shader_image_load_store)
6533 
6534 #endif /* GL_ARB_shader_image_load_store */
6535 
6536 /* ------------------------ GL_ARB_shader_image_size ----------------------- */
6537 
6538 #ifndef GL_ARB_shader_image_size
6539 #define GL_ARB_shader_image_size 1
6540 
6541 #define GLEW_ARB_shader_image_size GLEW_GET_VAR(__GLEW_ARB_shader_image_size)
6542 
6543 #endif /* GL_ARB_shader_image_size */
6544 
6545 /* ------------------------- GL_ARB_shader_objects ------------------------- */
6546 
6547 #ifndef GL_ARB_shader_objects
6548 #define GL_ARB_shader_objects 1
6549 
6550 #define GL_PROGRAM_OBJECT_ARB 0x8B40
6551 #define GL_SHADER_OBJECT_ARB 0x8B48
6552 #define GL_OBJECT_TYPE_ARB 0x8B4E
6553 #define GL_OBJECT_SUBTYPE_ARB 0x8B4F
6554 #define GL_FLOAT_VEC2_ARB 0x8B50
6555 #define GL_FLOAT_VEC3_ARB 0x8B51
6556 #define GL_FLOAT_VEC4_ARB 0x8B52
6557 #define GL_INT_VEC2_ARB 0x8B53
6558 #define GL_INT_VEC3_ARB 0x8B54
6559 #define GL_INT_VEC4_ARB 0x8B55
6560 #define GL_BOOL_ARB 0x8B56
6561 #define GL_BOOL_VEC2_ARB 0x8B57
6562 #define GL_BOOL_VEC3_ARB 0x8B58
6563 #define GL_BOOL_VEC4_ARB 0x8B59
6564 #define GL_FLOAT_MAT2_ARB 0x8B5A
6565 #define GL_FLOAT_MAT3_ARB 0x8B5B
6566 #define GL_FLOAT_MAT4_ARB 0x8B5C
6567 #define GL_SAMPLER_1D_ARB 0x8B5D
6568 #define GL_SAMPLER_2D_ARB 0x8B5E
6569 #define GL_SAMPLER_3D_ARB 0x8B5F
6570 #define GL_SAMPLER_CUBE_ARB 0x8B60
6571 #define GL_SAMPLER_1D_SHADOW_ARB 0x8B61
6572 #define GL_SAMPLER_2D_SHADOW_ARB 0x8B62
6573 #define GL_SAMPLER_2D_RECT_ARB 0x8B63
6574 #define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64
6575 #define GL_OBJECT_DELETE_STATUS_ARB 0x8B80
6576 #define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81
6577 #define GL_OBJECT_LINK_STATUS_ARB 0x8B82
6578 #define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83
6579 #define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84
6580 #define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85
6581 #define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86
6582 #define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87
6583 #define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88
6584 
6585 typedef char GLcharARB;
6586 typedef unsigned int GLhandleARB;
6587 
6588 typedef void (GLAPIENTRY * PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj);
6589 typedef void (GLAPIENTRY * PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj);
6590 typedef GLhandleARB (GLAPIENTRY * PFNGLCREATEPROGRAMOBJECTARBPROC) (void);
6591 typedef GLhandleARB (GLAPIENTRY * PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType);
6592 typedef void (GLAPIENTRY * PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj);
6593 typedef void (GLAPIENTRY * PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj);
6594 typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name);
6595 typedef void (GLAPIENTRY * PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei* count, GLhandleARB *obj);
6596 typedef GLhandleARB (GLAPIENTRY * PFNGLGETHANDLEARBPROC) (GLenum pname);
6597 typedef void (GLAPIENTRY * PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *infoLog);
6598 typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat* params);
6599 typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint* params);
6600 typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *source);
6601 typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name);
6602 typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat* params);
6603 typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint* params);
6604 typedef void (GLAPIENTRY * PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj);
6605 typedef void (GLAPIENTRY * PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB ** string, const GLint *length);
6606 typedef void (GLAPIENTRY * PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0);
6607 typedef void (GLAPIENTRY * PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat* value);
6608 typedef void (GLAPIENTRY * PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0);
6609 typedef void (GLAPIENTRY * PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint* value);
6610 typedef void (GLAPIENTRY * PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1);
6611 typedef void (GLAPIENTRY * PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat* value);
6612 typedef void (GLAPIENTRY * PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1);
6613 typedef void (GLAPIENTRY * PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint* value);
6614 typedef void (GLAPIENTRY * PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
6615 typedef void (GLAPIENTRY * PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat* value);
6616 typedef void (GLAPIENTRY * PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2);
6617 typedef void (GLAPIENTRY * PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint* value);
6618 typedef void (GLAPIENTRY * PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
6619 typedef void (GLAPIENTRY * PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat* value);
6620 typedef void (GLAPIENTRY * PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
6621 typedef void (GLAPIENTRY * PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint* value);
6622 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
6623 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
6624 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
6625 typedef void (GLAPIENTRY * PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj);
6626 typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj);
6627 
6628 #define glAttachObjectARB GLEW_GET_FUN(__glewAttachObjectARB)
6629 #define glCompileShaderARB GLEW_GET_FUN(__glewCompileShaderARB)
6630 #define glCreateProgramObjectARB GLEW_GET_FUN(__glewCreateProgramObjectARB)
6631 #define glCreateShaderObjectARB GLEW_GET_FUN(__glewCreateShaderObjectARB)
6632 #define glDeleteObjectARB GLEW_GET_FUN(__glewDeleteObjectARB)
6633 #define glDetachObjectARB GLEW_GET_FUN(__glewDetachObjectARB)
6634 #define glGetActiveUniformARB GLEW_GET_FUN(__glewGetActiveUniformARB)
6635 #define glGetAttachedObjectsARB GLEW_GET_FUN(__glewGetAttachedObjectsARB)
6636 #define glGetHandleARB GLEW_GET_FUN(__glewGetHandleARB)
6637 #define glGetInfoLogARB GLEW_GET_FUN(__glewGetInfoLogARB)
6638 #define glGetObjectParameterfvARB GLEW_GET_FUN(__glewGetObjectParameterfvARB)
6639 #define glGetObjectParameterivARB GLEW_GET_FUN(__glewGetObjectParameterivARB)
6640 #define glGetShaderSourceARB GLEW_GET_FUN(__glewGetShaderSourceARB)
6641 #define glGetUniformLocationARB GLEW_GET_FUN(__glewGetUniformLocationARB)
6642 #define glGetUniformfvARB GLEW_GET_FUN(__glewGetUniformfvARB)
6643 #define glGetUniformivARB GLEW_GET_FUN(__glewGetUniformivARB)
6644 #define glLinkProgramARB GLEW_GET_FUN(__glewLinkProgramARB)
6645 #define glShaderSourceARB GLEW_GET_FUN(__glewShaderSourceARB)
6646 #define glUniform1fARB GLEW_GET_FUN(__glewUniform1fARB)
6647 #define glUniform1fvARB GLEW_GET_FUN(__glewUniform1fvARB)
6648 #define glUniform1iARB GLEW_GET_FUN(__glewUniform1iARB)
6649 #define glUniform1ivARB GLEW_GET_FUN(__glewUniform1ivARB)
6650 #define glUniform2fARB GLEW_GET_FUN(__glewUniform2fARB)
6651 #define glUniform2fvARB GLEW_GET_FUN(__glewUniform2fvARB)
6652 #define glUniform2iARB GLEW_GET_FUN(__glewUniform2iARB)
6653 #define glUniform2ivARB GLEW_GET_FUN(__glewUniform2ivARB)
6654 #define glUniform3fARB GLEW_GET_FUN(__glewUniform3fARB)
6655 #define glUniform3fvARB GLEW_GET_FUN(__glewUniform3fvARB)
6656 #define glUniform3iARB GLEW_GET_FUN(__glewUniform3iARB)
6657 #define glUniform3ivARB GLEW_GET_FUN(__glewUniform3ivARB)
6658 #define glUniform4fARB GLEW_GET_FUN(__glewUniform4fARB)
6659 #define glUniform4fvARB GLEW_GET_FUN(__glewUniform4fvARB)
6660 #define glUniform4iARB GLEW_GET_FUN(__glewUniform4iARB)
6661 #define glUniform4ivARB GLEW_GET_FUN(__glewUniform4ivARB)
6662 #define glUniformMatrix2fvARB GLEW_GET_FUN(__glewUniformMatrix2fvARB)
6663 #define glUniformMatrix3fvARB GLEW_GET_FUN(__glewUniformMatrix3fvARB)
6664 #define glUniformMatrix4fvARB GLEW_GET_FUN(__glewUniformMatrix4fvARB)
6665 #define glUseProgramObjectARB GLEW_GET_FUN(__glewUseProgramObjectARB)
6666 #define glValidateProgramARB GLEW_GET_FUN(__glewValidateProgramARB)
6667 
6668 #define GLEW_ARB_shader_objects GLEW_GET_VAR(__GLEW_ARB_shader_objects)
6669 
6670 #endif /* GL_ARB_shader_objects */
6671 
6672 /* ------------------------ GL_ARB_shader_precision ------------------------ */
6673 
6674 #ifndef GL_ARB_shader_precision
6675 #define GL_ARB_shader_precision 1
6676 
6677 #define GLEW_ARB_shader_precision GLEW_GET_VAR(__GLEW_ARB_shader_precision)
6678 
6679 #endif /* GL_ARB_shader_precision */
6680 
6681 /* ---------------------- GL_ARB_shader_stencil_export --------------------- */
6682 
6683 #ifndef GL_ARB_shader_stencil_export
6684 #define GL_ARB_shader_stencil_export 1
6685 
6686 #define GLEW_ARB_shader_stencil_export GLEW_GET_VAR(__GLEW_ARB_shader_stencil_export)
6687 
6688 #endif /* GL_ARB_shader_stencil_export */
6689 
6690 /* ------------------ GL_ARB_shader_storage_buffer_object ------------------ */
6691 
6692 #ifndef GL_ARB_shader_storage_buffer_object
6693 #define GL_ARB_shader_storage_buffer_object 1
6694 
6695 #define GL_SHADER_STORAGE_BARRIER_BIT 0x2000
6696 #define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39
6697 #define GL_SHADER_STORAGE_BUFFER 0x90D2
6698 #define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3
6699 #define GL_SHADER_STORAGE_BUFFER_START 0x90D4
6700 #define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5
6701 #define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6
6702 #define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7
6703 #define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8
6704 #define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9
6705 #define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA
6706 #define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB
6707 #define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC
6708 #define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD
6709 #define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE
6710 #define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF
6711 
6712 typedef void (GLAPIENTRY * PFNGLSHADERSTORAGEBLOCKBINDINGPROC) (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
6713 
6714 #define glShaderStorageBlockBinding GLEW_GET_FUN(__glewShaderStorageBlockBinding)
6715 
6716 #define GLEW_ARB_shader_storage_buffer_object GLEW_GET_VAR(__GLEW_ARB_shader_storage_buffer_object)
6717 
6718 #endif /* GL_ARB_shader_storage_buffer_object */
6719 
6720 /* ------------------------ GL_ARB_shader_subroutine ----------------------- */
6721 
6722 #ifndef GL_ARB_shader_subroutine
6723 #define GL_ARB_shader_subroutine 1
6724 
6725 #define GL_ACTIVE_SUBROUTINES 0x8DE5
6726 #define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6
6727 #define GL_MAX_SUBROUTINES 0x8DE7
6728 #define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8
6729 #define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47
6730 #define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48
6731 #define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49
6732 #define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A
6733 #define GL_COMPATIBLE_SUBROUTINES 0x8E4B
6734 
6735 typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar *name);
6736 typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar *name);
6737 typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values);
6738 typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint* values);
6739 typedef GLuint (GLAPIENTRY * PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar* name);
6740 typedef GLint (GLAPIENTRY * PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar* name);
6741 typedef void (GLAPIENTRY * PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint* params);
6742 typedef void (GLAPIENTRY * PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint* indices);
6743 
6744 #define glGetActiveSubroutineName GLEW_GET_FUN(__glewGetActiveSubroutineName)
6745 #define glGetActiveSubroutineUniformName GLEW_GET_FUN(__glewGetActiveSubroutineUniformName)
6746 #define glGetActiveSubroutineUniformiv GLEW_GET_FUN(__glewGetActiveSubroutineUniformiv)
6747 #define glGetProgramStageiv GLEW_GET_FUN(__glewGetProgramStageiv)
6748 #define glGetSubroutineIndex GLEW_GET_FUN(__glewGetSubroutineIndex)
6749 #define glGetSubroutineUniformLocation GLEW_GET_FUN(__glewGetSubroutineUniformLocation)
6750 #define glGetUniformSubroutineuiv GLEW_GET_FUN(__glewGetUniformSubroutineuiv)
6751 #define glUniformSubroutinesuiv GLEW_GET_FUN(__glewUniformSubroutinesuiv)
6752 
6753 #define GLEW_ARB_shader_subroutine GLEW_GET_VAR(__GLEW_ARB_shader_subroutine)
6754 
6755 #endif /* GL_ARB_shader_subroutine */
6756 
6757 /* ------------------ GL_ARB_shader_texture_image_samples ------------------ */
6758 
6759 #ifndef GL_ARB_shader_texture_image_samples
6760 #define GL_ARB_shader_texture_image_samples 1
6761 
6762 #define GLEW_ARB_shader_texture_image_samples GLEW_GET_VAR(__GLEW_ARB_shader_texture_image_samples)
6763 
6764 #endif /* GL_ARB_shader_texture_image_samples */
6765 
6766 /* ----------------------- GL_ARB_shader_texture_lod ----------------------- */
6767 
6768 #ifndef GL_ARB_shader_texture_lod
6769 #define GL_ARB_shader_texture_lod 1
6770 
6771 #define GLEW_ARB_shader_texture_lod GLEW_GET_VAR(__GLEW_ARB_shader_texture_lod)
6772 
6773 #endif /* GL_ARB_shader_texture_lod */
6774 
6775 /* ------------------- GL_ARB_shader_viewport_layer_array ------------------ */
6776 
6777 #ifndef GL_ARB_shader_viewport_layer_array
6778 #define GL_ARB_shader_viewport_layer_array 1
6779 
6780 #define GLEW_ARB_shader_viewport_layer_array GLEW_GET_VAR(__GLEW_ARB_shader_viewport_layer_array)
6781 
6782 #endif /* GL_ARB_shader_viewport_layer_array */
6783 
6784 /* ---------------------- GL_ARB_shading_language_100 ---------------------- */
6785 
6786 #ifndef GL_ARB_shading_language_100
6787 #define GL_ARB_shading_language_100 1
6788 
6789 #define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C
6790 
6791 #define GLEW_ARB_shading_language_100 GLEW_GET_VAR(__GLEW_ARB_shading_language_100)
6792 
6793 #endif /* GL_ARB_shading_language_100 */
6794 
6795 /* -------------------- GL_ARB_shading_language_420pack -------------------- */
6796 
6797 #ifndef GL_ARB_shading_language_420pack
6798 #define GL_ARB_shading_language_420pack 1
6799 
6800 #define GLEW_ARB_shading_language_420pack GLEW_GET_VAR(__GLEW_ARB_shading_language_420pack)
6801 
6802 #endif /* GL_ARB_shading_language_420pack */
6803 
6804 /* -------------------- GL_ARB_shading_language_include -------------------- */
6805 
6806 #ifndef GL_ARB_shading_language_include
6807 #define GL_ARB_shading_language_include 1
6808 
6809 #define GL_SHADER_INCLUDE_ARB 0x8DAE
6810 #define GL_NAMED_STRING_LENGTH_ARB 0x8DE9
6811 #define GL_NAMED_STRING_TYPE_ARB 0x8DEA
6812 
6813 typedef void (GLAPIENTRY * PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar* const *path, const GLint *length);
6814 typedef void (GLAPIENTRY * PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar* name);
6815 typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar* name, GLsizei bufSize, GLint *stringlen, GLchar *string);
6816 typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar* name, GLenum pname, GLint *params);
6817 typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar* name);
6818 typedef void (GLAPIENTRY * PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar* name, GLint stringlen, const GLchar *string);
6819 
6820 #define glCompileShaderIncludeARB GLEW_GET_FUN(__glewCompileShaderIncludeARB)
6821 #define glDeleteNamedStringARB GLEW_GET_FUN(__glewDeleteNamedStringARB)
6822 #define glGetNamedStringARB GLEW_GET_FUN(__glewGetNamedStringARB)
6823 #define glGetNamedStringivARB GLEW_GET_FUN(__glewGetNamedStringivARB)
6824 #define glIsNamedStringARB GLEW_GET_FUN(__glewIsNamedStringARB)
6825 #define glNamedStringARB GLEW_GET_FUN(__glewNamedStringARB)
6826 
6827 #define GLEW_ARB_shading_language_include GLEW_GET_VAR(__GLEW_ARB_shading_language_include)
6828 
6829 #endif /* GL_ARB_shading_language_include */
6830 
6831 /* -------------------- GL_ARB_shading_language_packing -------------------- */
6832 
6833 #ifndef GL_ARB_shading_language_packing
6834 #define GL_ARB_shading_language_packing 1
6835 
6836 #define GLEW_ARB_shading_language_packing GLEW_GET_VAR(__GLEW_ARB_shading_language_packing)
6837 
6838 #endif /* GL_ARB_shading_language_packing */
6839 
6840 /* ----------------------------- GL_ARB_shadow ----------------------------- */
6841 
6842 #ifndef GL_ARB_shadow
6843 #define GL_ARB_shadow 1
6844 
6845 #define GL_TEXTURE_COMPARE_MODE_ARB 0x884C
6846 #define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D
6847 #define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E
6848 
6849 #define GLEW_ARB_shadow GLEW_GET_VAR(__GLEW_ARB_shadow)
6850 
6851 #endif /* GL_ARB_shadow */
6852 
6853 /* ------------------------- GL_ARB_shadow_ambient ------------------------- */
6854 
6855 #ifndef GL_ARB_shadow_ambient
6856 #define GL_ARB_shadow_ambient 1
6857 
6858 #define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF
6859 
6860 #define GLEW_ARB_shadow_ambient GLEW_GET_VAR(__GLEW_ARB_shadow_ambient)
6861 
6862 #endif /* GL_ARB_shadow_ambient */
6863 
6864 /* -------------------------- GL_ARB_sparse_buffer ------------------------- */
6865 
6866 #ifndef GL_ARB_sparse_buffer
6867 #define GL_ARB_sparse_buffer 1
6868 
6869 #define GL_SPARSE_STORAGE_BIT_ARB 0x0400
6870 #define GL_SPARSE_BUFFER_PAGE_SIZE_ARB 0x82F8
6871 
6872 typedef void (GLAPIENTRY * PFNGLBUFFERPAGECOMMITMENTARBPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit);
6873 
6874 #define glBufferPageCommitmentARB GLEW_GET_FUN(__glewBufferPageCommitmentARB)
6875 
6876 #define GLEW_ARB_sparse_buffer GLEW_GET_VAR(__GLEW_ARB_sparse_buffer)
6877 
6878 #endif /* GL_ARB_sparse_buffer */
6879 
6880 /* ------------------------- GL_ARB_sparse_texture ------------------------- */
6881 
6882 #ifndef GL_ARB_sparse_texture
6883 #define GL_ARB_sparse_texture 1
6884 
6885 #define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195
6886 #define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196
6887 #define GL_VIRTUAL_PAGE_SIZE_Z_ARB 0x9197
6888 #define GL_MAX_SPARSE_TEXTURE_SIZE_ARB 0x9198
6889 #define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199
6890 #define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A
6891 #define GL_TEXTURE_SPARSE_ARB 0x91A6
6892 #define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7
6893 #define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8
6894 #define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9
6895 #define GL_NUM_SPARSE_LEVELS_ARB 0x91AA
6896 
6897 typedef void (GLAPIENTRY * PFNGLTEXPAGECOMMITMENTARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
6898 
6899 #define glTexPageCommitmentARB GLEW_GET_FUN(__glewTexPageCommitmentARB)
6900 
6901 #define GLEW_ARB_sparse_texture GLEW_GET_VAR(__GLEW_ARB_sparse_texture)
6902 
6903 #endif /* GL_ARB_sparse_texture */
6904 
6905 /* ------------------------- GL_ARB_sparse_texture2 ------------------------ */
6906 
6907 #ifndef GL_ARB_sparse_texture2
6908 #define GL_ARB_sparse_texture2 1
6909 
6910 #define GLEW_ARB_sparse_texture2 GLEW_GET_VAR(__GLEW_ARB_sparse_texture2)
6911 
6912 #endif /* GL_ARB_sparse_texture2 */
6913 
6914 /* ---------------------- GL_ARB_sparse_texture_clamp ---------------------- */
6915 
6916 #ifndef GL_ARB_sparse_texture_clamp
6917 #define GL_ARB_sparse_texture_clamp 1
6918 
6919 #define GLEW_ARB_sparse_texture_clamp GLEW_GET_VAR(__GLEW_ARB_sparse_texture_clamp)
6920 
6921 #endif /* GL_ARB_sparse_texture_clamp */
6922 
6923 /* ------------------------ GL_ARB_spirv_extensions ------------------------ */
6924 
6925 #ifndef GL_ARB_spirv_extensions
6926 #define GL_ARB_spirv_extensions 1
6927 
6928 #define GL_SPIR_V_EXTENSIONS 0x9553
6929 #define GL_NUM_SPIR_V_EXTENSIONS 0x9554
6930 
6931 #define GLEW_ARB_spirv_extensions GLEW_GET_VAR(__GLEW_ARB_spirv_extensions)
6932 
6933 #endif /* GL_ARB_spirv_extensions */
6934 
6935 /* ------------------------ GL_ARB_stencil_texturing ----------------------- */
6936 
6937 #ifndef GL_ARB_stencil_texturing
6938 #define GL_ARB_stencil_texturing 1
6939 
6940 #define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA
6941 
6942 #define GLEW_ARB_stencil_texturing GLEW_GET_VAR(__GLEW_ARB_stencil_texturing)
6943 
6944 #endif /* GL_ARB_stencil_texturing */
6945 
6946 /* ------------------------------ GL_ARB_sync ------------------------------ */
6947 
6948 #ifndef GL_ARB_sync
6949 #define GL_ARB_sync 1
6950 
6951 #define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
6952 #define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
6953 #define GL_OBJECT_TYPE 0x9112
6954 #define GL_SYNC_CONDITION 0x9113
6955 #define GL_SYNC_STATUS 0x9114
6956 #define GL_SYNC_FLAGS 0x9115
6957 #define GL_SYNC_FENCE 0x9116
6958 #define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
6959 #define GL_UNSIGNALED 0x9118
6960 #define GL_SIGNALED 0x9119
6961 #define GL_ALREADY_SIGNALED 0x911A
6962 #define GL_TIMEOUT_EXPIRED 0x911B
6963 #define GL_CONDITION_SATISFIED 0x911C
6964 #define GL_WAIT_FAILED 0x911D
6965 #define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull
6966 
6967 typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout);
6968 typedef void (GLAPIENTRY * PFNGLDELETESYNCPROC) (GLsync GLsync);
6969 typedef GLsync (GLAPIENTRY * PFNGLFENCESYNCPROC) (GLenum condition,GLbitfield flags);
6970 typedef void (GLAPIENTRY * PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64* params);
6971 typedef void (GLAPIENTRY * PFNGLGETSYNCIVPROC) (GLsync GLsync,GLenum pname,GLsizei bufSize,GLsizei* length, GLint *values);
6972 typedef GLboolean (GLAPIENTRY * PFNGLISSYNCPROC) (GLsync GLsync);
6973 typedef void (GLAPIENTRY * PFNGLWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout);
6974 
6975 #define glClientWaitSync GLEW_GET_FUN(__glewClientWaitSync)
6976 #define glDeleteSync GLEW_GET_FUN(__glewDeleteSync)
6977 #define glFenceSync GLEW_GET_FUN(__glewFenceSync)
6978 #define glGetInteger64v GLEW_GET_FUN(__glewGetInteger64v)
6979 #define glGetSynciv GLEW_GET_FUN(__glewGetSynciv)
6980 #define glIsSync GLEW_GET_FUN(__glewIsSync)
6981 #define glWaitSync GLEW_GET_FUN(__glewWaitSync)
6982 
6983 #define GLEW_ARB_sync GLEW_GET_VAR(__GLEW_ARB_sync)
6984 
6985 #endif /* GL_ARB_sync */
6986 
6987 /* ----------------------- GL_ARB_tessellation_shader ---------------------- */
6988 
6989 #ifndef GL_ARB_tessellation_shader
6990 #define GL_ARB_tessellation_shader 1
6991 
6992 #define GL_PATCHES 0xE
6993 #define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0
6994 #define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1
6995 #define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C
6996 #define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D
6997 #define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E
6998 #define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F
6999 #define GL_PATCH_VERTICES 0x8E72
7000 #define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73
7001 #define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74
7002 #define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75
7003 #define GL_TESS_GEN_MODE 0x8E76
7004 #define GL_TESS_GEN_SPACING 0x8E77
7005 #define GL_TESS_GEN_VERTEX_ORDER 0x8E78
7006 #define GL_TESS_GEN_POINT_MODE 0x8E79
7007 #define GL_ISOLINES 0x8E7A
7008 #define GL_FRACTIONAL_ODD 0x8E7B
7009 #define GL_FRACTIONAL_EVEN 0x8E7C
7010 #define GL_MAX_PATCH_VERTICES 0x8E7D
7011 #define GL_MAX_TESS_GEN_LEVEL 0x8E7E
7012 #define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F
7013 #define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80
7014 #define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81
7015 #define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82
7016 #define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83
7017 #define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84
7018 #define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85
7019 #define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86
7020 #define GL_TESS_EVALUATION_SHADER 0x8E87
7021 #define GL_TESS_CONTROL_SHADER 0x8E88
7022 #define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89
7023 #define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A
7024 
7025 typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat* values);
7026 typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value);
7027 
7028 #define glPatchParameterfv GLEW_GET_FUN(__glewPatchParameterfv)
7029 #define glPatchParameteri GLEW_GET_FUN(__glewPatchParameteri)
7030 
7031 #define GLEW_ARB_tessellation_shader GLEW_GET_VAR(__GLEW_ARB_tessellation_shader)
7032 
7033 #endif /* GL_ARB_tessellation_shader */
7034 
7035 /* ------------------------- GL_ARB_texture_barrier ------------------------ */
7036 
7037 #ifndef GL_ARB_texture_barrier
7038 #define GL_ARB_texture_barrier 1
7039 
7040 typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERPROC) (void);
7041 
7042 #define glTextureBarrier GLEW_GET_FUN(__glewTextureBarrier)
7043 
7044 #define GLEW_ARB_texture_barrier GLEW_GET_VAR(__GLEW_ARB_texture_barrier)
7045 
7046 #endif /* GL_ARB_texture_barrier */
7047 
7048 /* ---------------------- GL_ARB_texture_border_clamp ---------------------- */
7049 
7050 #ifndef GL_ARB_texture_border_clamp
7051 #define GL_ARB_texture_border_clamp 1
7052 
7053 #define GL_CLAMP_TO_BORDER_ARB 0x812D
7054 
7055 #define GLEW_ARB_texture_border_clamp GLEW_GET_VAR(__GLEW_ARB_texture_border_clamp)
7056 
7057 #endif /* GL_ARB_texture_border_clamp */
7058 
7059 /* ---------------------- GL_ARB_texture_buffer_object --------------------- */
7060 
7061 #ifndef GL_ARB_texture_buffer_object
7062 #define GL_ARB_texture_buffer_object 1
7063 
7064 #define GL_TEXTURE_BUFFER_ARB 0x8C2A
7065 #define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B
7066 #define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C
7067 #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D
7068 #define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E
7069 
7070 typedef void (GLAPIENTRY * PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer);
7071 
7072 #define glTexBufferARB GLEW_GET_FUN(__glewTexBufferARB)
7073 
7074 #define GLEW_ARB_texture_buffer_object GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object)
7075 
7076 #endif /* GL_ARB_texture_buffer_object */
7077 
7078 /* ------------------- GL_ARB_texture_buffer_object_rgb32 ------------------ */
7079 
7080 #ifndef GL_ARB_texture_buffer_object_rgb32
7081 #define GL_ARB_texture_buffer_object_rgb32 1
7082 
7083 #define GLEW_ARB_texture_buffer_object_rgb32 GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object_rgb32)
7084 
7085 #endif /* GL_ARB_texture_buffer_object_rgb32 */
7086 
7087 /* ---------------------- GL_ARB_texture_buffer_range ---------------------- */
7088 
7089 #ifndef GL_ARB_texture_buffer_range
7090 #define GL_ARB_texture_buffer_range 1
7091 
7092 #define GL_TEXTURE_BUFFER_OFFSET 0x919D
7093 #define GL_TEXTURE_BUFFER_SIZE 0x919E
7094 #define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F
7095 
7096 typedef void (GLAPIENTRY * PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
7097 typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERRANGEEXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
7098 
7099 #define glTexBufferRange GLEW_GET_FUN(__glewTexBufferRange)
7100 #define glTextureBufferRangeEXT GLEW_GET_FUN(__glewTextureBufferRangeEXT)
7101 
7102 #define GLEW_ARB_texture_buffer_range GLEW_GET_VAR(__GLEW_ARB_texture_buffer_range)
7103 
7104 #endif /* GL_ARB_texture_buffer_range */
7105 
7106 /* ----------------------- GL_ARB_texture_compression ---------------------- */
7107 
7108 #ifndef GL_ARB_texture_compression
7109 #define GL_ARB_texture_compression 1
7110 
7111 #define GL_COMPRESSED_ALPHA_ARB 0x84E9
7112 #define GL_COMPRESSED_LUMINANCE_ARB 0x84EA
7113 #define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
7114 #define GL_COMPRESSED_INTENSITY_ARB 0x84EC
7115 #define GL_COMPRESSED_RGB_ARB 0x84ED
7116 #define GL_COMPRESSED_RGBA_ARB 0x84EE
7117 #define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF
7118 #define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0
7119 #define GL_TEXTURE_COMPRESSED_ARB 0x86A1
7120 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
7121 #define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
7122 
7123 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
7124 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
7125 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
7126 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
7127 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
7128 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
7129 typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, void *img);
7130 
7131 #define glCompressedTexImage1DARB GLEW_GET_FUN(__glewCompressedTexImage1DARB)
7132 #define glCompressedTexImage2DARB GLEW_GET_FUN(__glewCompressedTexImage2DARB)
7133 #define glCompressedTexImage3DARB GLEW_GET_FUN(__glewCompressedTexImage3DARB)
7134 #define glCompressedTexSubImage1DARB GLEW_GET_FUN(__glewCompressedTexSubImage1DARB)
7135 #define glCompressedTexSubImage2DARB GLEW_GET_FUN(__glewCompressedTexSubImage2DARB)
7136 #define glCompressedTexSubImage3DARB GLEW_GET_FUN(__glewCompressedTexSubImage3DARB)
7137 #define glGetCompressedTexImageARB GLEW_GET_FUN(__glewGetCompressedTexImageARB)
7138 
7139 #define GLEW_ARB_texture_compression GLEW_GET_VAR(__GLEW_ARB_texture_compression)
7140 
7141 #endif /* GL_ARB_texture_compression */
7142 
7143 /* -------------------- GL_ARB_texture_compression_bptc -------------------- */
7144 
7145 #ifndef GL_ARB_texture_compression_bptc
7146 #define GL_ARB_texture_compression_bptc 1
7147 
7148 #define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C
7149 #define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D
7150 #define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E
7151 #define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F
7152 
7153 #define GLEW_ARB_texture_compression_bptc GLEW_GET_VAR(__GLEW_ARB_texture_compression_bptc)
7154 
7155 #endif /* GL_ARB_texture_compression_bptc */
7156 
7157 /* -------------------- GL_ARB_texture_compression_rgtc -------------------- */
7158 
7159 #ifndef GL_ARB_texture_compression_rgtc
7160 #define GL_ARB_texture_compression_rgtc 1
7161 
7162 #define GL_COMPRESSED_RED_RGTC1 0x8DBB
7163 #define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC
7164 #define GL_COMPRESSED_RG_RGTC2 0x8DBD
7165 #define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE
7166 
7167 #define GLEW_ARB_texture_compression_rgtc GLEW_GET_VAR(__GLEW_ARB_texture_compression_rgtc)
7168 
7169 #endif /* GL_ARB_texture_compression_rgtc */
7170 
7171 /* ------------------------ GL_ARB_texture_cube_map ------------------------ */
7172 
7173 #ifndef GL_ARB_texture_cube_map
7174 #define GL_ARB_texture_cube_map 1
7175 
7176 #define GL_NORMAL_MAP_ARB 0x8511
7177 #define GL_REFLECTION_MAP_ARB 0x8512
7178 #define GL_TEXTURE_CUBE_MAP_ARB 0x8513
7179 #define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514
7180 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515
7181 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516
7182 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517
7183 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518
7184 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519
7185 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A
7186 #define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B
7187 #define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C
7188 
7189 #define GLEW_ARB_texture_cube_map GLEW_GET_VAR(__GLEW_ARB_texture_cube_map)
7190 
7191 #endif /* GL_ARB_texture_cube_map */
7192 
7193 /* --------------------- GL_ARB_texture_cube_map_array --------------------- */
7194 
7195 #ifndef GL_ARB_texture_cube_map_array
7196 #define GL_ARB_texture_cube_map_array 1
7197 
7198 #define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009
7199 #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A
7200 #define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B
7201 #define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C
7202 #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D
7203 #define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E
7204 #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F
7205 
7206 #define GLEW_ARB_texture_cube_map_array GLEW_GET_VAR(__GLEW_ARB_texture_cube_map_array)
7207 
7208 #endif /* GL_ARB_texture_cube_map_array */
7209 
7210 /* ------------------------- GL_ARB_texture_env_add ------------------------ */
7211 
7212 #ifndef GL_ARB_texture_env_add
7213 #define GL_ARB_texture_env_add 1
7214 
7215 #define GLEW_ARB_texture_env_add GLEW_GET_VAR(__GLEW_ARB_texture_env_add)
7216 
7217 #endif /* GL_ARB_texture_env_add */
7218 
7219 /* ----------------------- GL_ARB_texture_env_combine ---------------------- */
7220 
7221 #ifndef GL_ARB_texture_env_combine
7222 #define GL_ARB_texture_env_combine 1
7223 
7224 #define GL_SUBTRACT_ARB 0x84E7
7225 #define GL_COMBINE_ARB 0x8570
7226 #define GL_COMBINE_RGB_ARB 0x8571
7227 #define GL_COMBINE_ALPHA_ARB 0x8572
7228 #define GL_RGB_SCALE_ARB 0x8573
7229 #define GL_ADD_SIGNED_ARB 0x8574
7230 #define GL_INTERPOLATE_ARB 0x8575
7231 #define GL_CONSTANT_ARB 0x8576
7232 #define GL_PRIMARY_COLOR_ARB 0x8577
7233 #define GL_PREVIOUS_ARB 0x8578
7234 #define GL_SOURCE0_RGB_ARB 0x8580
7235 #define GL_SOURCE1_RGB_ARB 0x8581
7236 #define GL_SOURCE2_RGB_ARB 0x8582
7237 #define GL_SOURCE0_ALPHA_ARB 0x8588
7238 #define GL_SOURCE1_ALPHA_ARB 0x8589
7239 #define GL_SOURCE2_ALPHA_ARB 0x858A
7240 #define GL_OPERAND0_RGB_ARB 0x8590
7241 #define GL_OPERAND1_RGB_ARB 0x8591
7242 #define GL_OPERAND2_RGB_ARB 0x8592
7243 #define GL_OPERAND0_ALPHA_ARB 0x8598
7244 #define GL_OPERAND1_ALPHA_ARB 0x8599
7245 #define GL_OPERAND2_ALPHA_ARB 0x859A
7246 
7247 #define GLEW_ARB_texture_env_combine GLEW_GET_VAR(__GLEW_ARB_texture_env_combine)
7248 
7249 #endif /* GL_ARB_texture_env_combine */
7250 
7251 /* ---------------------- GL_ARB_texture_env_crossbar ---------------------- */
7252 
7253 #ifndef GL_ARB_texture_env_crossbar
7254 #define GL_ARB_texture_env_crossbar 1
7255 
7256 #define GLEW_ARB_texture_env_crossbar GLEW_GET_VAR(__GLEW_ARB_texture_env_crossbar)
7257 
7258 #endif /* GL_ARB_texture_env_crossbar */
7259 
7260 /* ------------------------ GL_ARB_texture_env_dot3 ------------------------ */
7261 
7262 #ifndef GL_ARB_texture_env_dot3
7263 #define GL_ARB_texture_env_dot3 1
7264 
7265 #define GL_DOT3_RGB_ARB 0x86AE
7266 #define GL_DOT3_RGBA_ARB 0x86AF
7267 
7268 #define GLEW_ARB_texture_env_dot3 GLEW_GET_VAR(__GLEW_ARB_texture_env_dot3)
7269 
7270 #endif /* GL_ARB_texture_env_dot3 */
7271 
7272 /* ------------------- GL_ARB_texture_filter_anisotropic ------------------- */
7273 
7274 #ifndef GL_ARB_texture_filter_anisotropic
7275 #define GL_ARB_texture_filter_anisotropic 1
7276 
7277 #define GL_TEXTURE_MAX_ANISOTROPY 0x84FE
7278 #define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF
7279 
7280 #define GLEW_ARB_texture_filter_anisotropic GLEW_GET_VAR(__GLEW_ARB_texture_filter_anisotropic)
7281 
7282 #endif /* GL_ARB_texture_filter_anisotropic */
7283 
7284 /* ---------------------- GL_ARB_texture_filter_minmax --------------------- */
7285 
7286 #ifndef GL_ARB_texture_filter_minmax
7287 #define GL_ARB_texture_filter_minmax 1
7288 
7289 #define GL_TEXTURE_REDUCTION_MODE_ARB 0x9366
7290 #define GL_WEIGHTED_AVERAGE_ARB 0x9367
7291 
7292 #define GLEW_ARB_texture_filter_minmax GLEW_GET_VAR(__GLEW_ARB_texture_filter_minmax)
7293 
7294 #endif /* GL_ARB_texture_filter_minmax */
7295 
7296 /* -------------------------- GL_ARB_texture_float ------------------------- */
7297 
7298 #ifndef GL_ARB_texture_float
7299 #define GL_ARB_texture_float 1
7300 
7301 #define GL_RGBA32F_ARB 0x8814
7302 #define GL_RGB32F_ARB 0x8815
7303 #define GL_ALPHA32F_ARB 0x8816
7304 #define GL_INTENSITY32F_ARB 0x8817
7305 #define GL_LUMINANCE32F_ARB 0x8818
7306 #define GL_LUMINANCE_ALPHA32F_ARB 0x8819
7307 #define GL_RGBA16F_ARB 0x881A
7308 #define GL_RGB16F_ARB 0x881B
7309 #define GL_ALPHA16F_ARB 0x881C
7310 #define GL_INTENSITY16F_ARB 0x881D
7311 #define GL_LUMINANCE16F_ARB 0x881E
7312 #define GL_LUMINANCE_ALPHA16F_ARB 0x881F
7313 #define GL_TEXTURE_RED_TYPE_ARB 0x8C10
7314 #define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11
7315 #define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12
7316 #define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13
7317 #define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14
7318 #define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15
7319 #define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16
7320 #define GL_UNSIGNED_NORMALIZED_ARB 0x8C17
7321 
7322 #define GLEW_ARB_texture_float GLEW_GET_VAR(__GLEW_ARB_texture_float)
7323 
7324 #endif /* GL_ARB_texture_float */
7325 
7326 /* ------------------------- GL_ARB_texture_gather ------------------------- */
7327 
7328 #ifndef GL_ARB_texture_gather
7329 #define GL_ARB_texture_gather 1
7330 
7331 #define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E
7332 #define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F
7333 #define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F
7334 
7335 #define GLEW_ARB_texture_gather GLEW_GET_VAR(__GLEW_ARB_texture_gather)
7336 
7337 #endif /* GL_ARB_texture_gather */
7338 
7339 /* ------------------ GL_ARB_texture_mirror_clamp_to_edge ------------------ */
7340 
7341 #ifndef GL_ARB_texture_mirror_clamp_to_edge
7342 #define GL_ARB_texture_mirror_clamp_to_edge 1
7343 
7344 #define GL_MIRROR_CLAMP_TO_EDGE 0x8743
7345 
7346 #define GLEW_ARB_texture_mirror_clamp_to_edge GLEW_GET_VAR(__GLEW_ARB_texture_mirror_clamp_to_edge)
7347 
7348 #endif /* GL_ARB_texture_mirror_clamp_to_edge */
7349 
7350 /* --------------------- GL_ARB_texture_mirrored_repeat -------------------- */
7351 
7352 #ifndef GL_ARB_texture_mirrored_repeat
7353 #define GL_ARB_texture_mirrored_repeat 1
7354 
7355 #define GL_MIRRORED_REPEAT_ARB 0x8370
7356 
7357 #define GLEW_ARB_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_ARB_texture_mirrored_repeat)
7358 
7359 #endif /* GL_ARB_texture_mirrored_repeat */
7360 
7361 /* ----------------------- GL_ARB_texture_multisample ---------------------- */
7362 
7363 #ifndef GL_ARB_texture_multisample
7364 #define GL_ARB_texture_multisample 1
7365 
7366 #define GL_SAMPLE_POSITION 0x8E50
7367 #define GL_SAMPLE_MASK 0x8E51
7368 #define GL_SAMPLE_MASK_VALUE 0x8E52
7369 #define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
7370 #define GL_TEXTURE_2D_MULTISAMPLE 0x9100
7371 #define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
7372 #define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
7373 #define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
7374 #define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
7375 #define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
7376 #define GL_TEXTURE_SAMPLES 0x9106
7377 #define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
7378 #define GL_SAMPLER_2D_MULTISAMPLE 0x9108
7379 #define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
7380 #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
7381 #define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
7382 #define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
7383 #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
7384 #define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
7385 #define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
7386 #define GL_MAX_INTEGER_SAMPLES 0x9110
7387 
7388 typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat* val);
7389 typedef void (GLAPIENTRY * PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask);
7390 typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
7391 typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
7392 
7393 #define glGetMultisamplefv GLEW_GET_FUN(__glewGetMultisamplefv)
7394 #define glSampleMaski GLEW_GET_FUN(__glewSampleMaski)
7395 #define glTexImage2DMultisample GLEW_GET_FUN(__glewTexImage2DMultisample)
7396 #define glTexImage3DMultisample GLEW_GET_FUN(__glewTexImage3DMultisample)
7397 
7398 #define GLEW_ARB_texture_multisample GLEW_GET_VAR(__GLEW_ARB_texture_multisample)
7399 
7400 #endif /* GL_ARB_texture_multisample */
7401 
7402 /* -------------------- GL_ARB_texture_non_power_of_two -------------------- */
7403 
7404 #ifndef GL_ARB_texture_non_power_of_two
7405 #define GL_ARB_texture_non_power_of_two 1
7406 
7407 #define GLEW_ARB_texture_non_power_of_two GLEW_GET_VAR(__GLEW_ARB_texture_non_power_of_two)
7408 
7409 #endif /* GL_ARB_texture_non_power_of_two */
7410 
7411 /* ---------------------- GL_ARB_texture_query_levels ---------------------- */
7412 
7413 #ifndef GL_ARB_texture_query_levels
7414 #define GL_ARB_texture_query_levels 1
7415 
7416 #define GLEW_ARB_texture_query_levels GLEW_GET_VAR(__GLEW_ARB_texture_query_levels)
7417 
7418 #endif /* GL_ARB_texture_query_levels */
7419 
7420 /* ------------------------ GL_ARB_texture_query_lod ----------------------- */
7421 
7422 #ifndef GL_ARB_texture_query_lod
7423 #define GL_ARB_texture_query_lod 1
7424 
7425 #define GLEW_ARB_texture_query_lod GLEW_GET_VAR(__GLEW_ARB_texture_query_lod)
7426 
7427 #endif /* GL_ARB_texture_query_lod */
7428 
7429 /* ------------------------ GL_ARB_texture_rectangle ----------------------- */
7430 
7431 #ifndef GL_ARB_texture_rectangle
7432 #define GL_ARB_texture_rectangle 1
7433 
7434 #define GL_TEXTURE_RECTANGLE_ARB 0x84F5
7435 #define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
7436 #define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7
7437 #define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
7438 #define GL_SAMPLER_2D_RECT_ARB 0x8B63
7439 #define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64
7440 
7441 #define GLEW_ARB_texture_rectangle GLEW_GET_VAR(__GLEW_ARB_texture_rectangle)
7442 
7443 #endif /* GL_ARB_texture_rectangle */
7444 
7445 /* --------------------------- GL_ARB_texture_rg --------------------------- */
7446 
7447 #ifndef GL_ARB_texture_rg
7448 #define GL_ARB_texture_rg 1
7449 
7450 #define GL_COMPRESSED_RED 0x8225
7451 #define GL_COMPRESSED_RG 0x8226
7452 #define GL_RG 0x8227
7453 #define GL_RG_INTEGER 0x8228
7454 #define GL_R8 0x8229
7455 #define GL_R16 0x822A
7456 #define GL_RG8 0x822B
7457 #define GL_RG16 0x822C
7458 #define GL_R16F 0x822D
7459 #define GL_R32F 0x822E
7460 #define GL_RG16F 0x822F
7461 #define GL_RG32F 0x8230
7462 #define GL_R8I 0x8231
7463 #define GL_R8UI 0x8232
7464 #define GL_R16I 0x8233
7465 #define GL_R16UI 0x8234
7466 #define GL_R32I 0x8235
7467 #define GL_R32UI 0x8236
7468 #define GL_RG8I 0x8237
7469 #define GL_RG8UI 0x8238
7470 #define GL_RG16I 0x8239
7471 #define GL_RG16UI 0x823A
7472 #define GL_RG32I 0x823B
7473 #define GL_RG32UI 0x823C
7474 
7475 #define GLEW_ARB_texture_rg GLEW_GET_VAR(__GLEW_ARB_texture_rg)
7476 
7477 #endif /* GL_ARB_texture_rg */
7478 
7479 /* ----------------------- GL_ARB_texture_rgb10_a2ui ----------------------- */
7480 
7481 #ifndef GL_ARB_texture_rgb10_a2ui
7482 #define GL_ARB_texture_rgb10_a2ui 1
7483 
7484 #define GL_RGB10_A2UI 0x906F
7485 
7486 #define GLEW_ARB_texture_rgb10_a2ui GLEW_GET_VAR(__GLEW_ARB_texture_rgb10_a2ui)
7487 
7488 #endif /* GL_ARB_texture_rgb10_a2ui */
7489 
7490 /* ------------------------ GL_ARB_texture_stencil8 ------------------------ */
7491 
7492 #ifndef GL_ARB_texture_stencil8
7493 #define GL_ARB_texture_stencil8 1
7494 
7495 #define GL_STENCIL_INDEX 0x1901
7496 #define GL_STENCIL_INDEX8 0x8D48
7497 
7498 #define GLEW_ARB_texture_stencil8 GLEW_GET_VAR(__GLEW_ARB_texture_stencil8)
7499 
7500 #endif /* GL_ARB_texture_stencil8 */
7501 
7502 /* ------------------------- GL_ARB_texture_storage ------------------------ */
7503 
7504 #ifndef GL_ARB_texture_storage
7505 #define GL_ARB_texture_storage 1
7506 
7507 #define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
7508 
7509 typedef void (GLAPIENTRY * PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
7510 typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
7511 typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
7512 
7513 #define glTexStorage1D GLEW_GET_FUN(__glewTexStorage1D)
7514 #define glTexStorage2D GLEW_GET_FUN(__glewTexStorage2D)
7515 #define glTexStorage3D GLEW_GET_FUN(__glewTexStorage3D)
7516 
7517 #define GLEW_ARB_texture_storage GLEW_GET_VAR(__GLEW_ARB_texture_storage)
7518 
7519 #endif /* GL_ARB_texture_storage */
7520 
7521 /* ------------------- GL_ARB_texture_storage_multisample ------------------ */
7522 
7523 #ifndef GL_ARB_texture_storage_multisample
7524 #define GL_ARB_texture_storage_multisample 1
7525 
7526 typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
7527 typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
7528 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
7529 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
7530 
7531 #define glTexStorage2DMultisample GLEW_GET_FUN(__glewTexStorage2DMultisample)
7532 #define glTexStorage3DMultisample GLEW_GET_FUN(__glewTexStorage3DMultisample)
7533 #define glTextureStorage2DMultisampleEXT GLEW_GET_FUN(__glewTextureStorage2DMultisampleEXT)
7534 #define glTextureStorage3DMultisampleEXT GLEW_GET_FUN(__glewTextureStorage3DMultisampleEXT)
7535 
7536 #define GLEW_ARB_texture_storage_multisample GLEW_GET_VAR(__GLEW_ARB_texture_storage_multisample)
7537 
7538 #endif /* GL_ARB_texture_storage_multisample */
7539 
7540 /* ------------------------- GL_ARB_texture_swizzle ------------------------ */
7541 
7542 #ifndef GL_ARB_texture_swizzle
7543 #define GL_ARB_texture_swizzle 1
7544 
7545 #define GL_TEXTURE_SWIZZLE_R 0x8E42
7546 #define GL_TEXTURE_SWIZZLE_G 0x8E43
7547 #define GL_TEXTURE_SWIZZLE_B 0x8E44
7548 #define GL_TEXTURE_SWIZZLE_A 0x8E45
7549 #define GL_TEXTURE_SWIZZLE_RGBA 0x8E46
7550 
7551 #define GLEW_ARB_texture_swizzle GLEW_GET_VAR(__GLEW_ARB_texture_swizzle)
7552 
7553 #endif /* GL_ARB_texture_swizzle */
7554 
7555 /* -------------------------- GL_ARB_texture_view -------------------------- */
7556 
7557 #ifndef GL_ARB_texture_view
7558 #define GL_ARB_texture_view 1
7559 
7560 #define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB
7561 #define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC
7562 #define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD
7563 #define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE
7564 #define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
7565 
7566 typedef void (GLAPIENTRY * PFNGLTEXTUREVIEWPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
7567 
7568 #define glTextureView GLEW_GET_FUN(__glewTextureView)
7569 
7570 #define GLEW_ARB_texture_view GLEW_GET_VAR(__GLEW_ARB_texture_view)
7571 
7572 #endif /* GL_ARB_texture_view */
7573 
7574 /* --------------------------- GL_ARB_timer_query -------------------------- */
7575 
7576 #ifndef GL_ARB_timer_query
7577 #define GL_ARB_timer_query 1
7578 
7579 #define GL_TIME_ELAPSED 0x88BF
7580 #define GL_TIMESTAMP 0x8E28
7581 
7582 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64* params);
7583 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64* params);
7584 typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target);
7585 
7586 #define glGetQueryObjecti64v GLEW_GET_FUN(__glewGetQueryObjecti64v)
7587 #define glGetQueryObjectui64v GLEW_GET_FUN(__glewGetQueryObjectui64v)
7588 #define glQueryCounter GLEW_GET_FUN(__glewQueryCounter)
7589 
7590 #define GLEW_ARB_timer_query GLEW_GET_VAR(__GLEW_ARB_timer_query)
7591 
7592 #endif /* GL_ARB_timer_query */
7593 
7594 /* ----------------------- GL_ARB_transform_feedback2 ---------------------- */
7595 
7596 #ifndef GL_ARB_transform_feedback2
7597 #define GL_ARB_transform_feedback2 1
7598 
7599 #define GL_TRANSFORM_FEEDBACK 0x8E22
7600 #define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23
7601 #define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24
7602 #define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25
7603 
7604 typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id);
7605 typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint* ids);
7606 typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id);
7607 typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids);
7608 typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id);
7609 typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKPROC) (void);
7610 typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKPROC) (void);
7611 
7612 #define glBindTransformFeedback GLEW_GET_FUN(__glewBindTransformFeedback)
7613 #define glDeleteTransformFeedbacks GLEW_GET_FUN(__glewDeleteTransformFeedbacks)
7614 #define glDrawTransformFeedback GLEW_GET_FUN(__glewDrawTransformFeedback)
7615 #define glGenTransformFeedbacks GLEW_GET_FUN(__glewGenTransformFeedbacks)
7616 #define glIsTransformFeedback GLEW_GET_FUN(__glewIsTransformFeedback)
7617 #define glPauseTransformFeedback GLEW_GET_FUN(__glewPauseTransformFeedback)
7618 #define glResumeTransformFeedback GLEW_GET_FUN(__glewResumeTransformFeedback)
7619 
7620 #define GLEW_ARB_transform_feedback2 GLEW_GET_VAR(__GLEW_ARB_transform_feedback2)
7621 
7622 #endif /* GL_ARB_transform_feedback2 */
7623 
7624 /* ----------------------- GL_ARB_transform_feedback3 ---------------------- */
7625 
7626 #ifndef GL_ARB_transform_feedback3
7627 #define GL_ARB_transform_feedback3 1
7628 
7629 #define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70
7630 #define GL_MAX_VERTEX_STREAMS 0x8E71
7631 
7632 typedef void (GLAPIENTRY * PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id);
7633 typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream);
7634 typedef void (GLAPIENTRY * PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index);
7635 typedef void (GLAPIENTRY * PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params);
7636 
7637 #define glBeginQueryIndexed GLEW_GET_FUN(__glewBeginQueryIndexed)
7638 #define glDrawTransformFeedbackStream GLEW_GET_FUN(__glewDrawTransformFeedbackStream)
7639 #define glEndQueryIndexed GLEW_GET_FUN(__glewEndQueryIndexed)
7640 #define glGetQueryIndexediv GLEW_GET_FUN(__glewGetQueryIndexediv)
7641 
7642 #define GLEW_ARB_transform_feedback3 GLEW_GET_VAR(__GLEW_ARB_transform_feedback3)
7643 
7644 #endif /* GL_ARB_transform_feedback3 */
7645 
7646 /* ------------------ GL_ARB_transform_feedback_instanced ------------------ */
7647 
7648 #ifndef GL_ARB_transform_feedback_instanced
7649 #define GL_ARB_transform_feedback_instanced 1
7650 
7651 typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei primcount);
7652 typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei primcount);
7653 
7654 #define glDrawTransformFeedbackInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackInstanced)
7655 #define glDrawTransformFeedbackStreamInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackStreamInstanced)
7656 
7657 #define GLEW_ARB_transform_feedback_instanced GLEW_GET_VAR(__GLEW_ARB_transform_feedback_instanced)
7658 
7659 #endif /* GL_ARB_transform_feedback_instanced */
7660 
7661 /* ---------------- GL_ARB_transform_feedback_overflow_query --------------- */
7662 
7663 #ifndef GL_ARB_transform_feedback_overflow_query
7664 #define GL_ARB_transform_feedback_overflow_query 1
7665 
7666 #define GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB 0x82EC
7667 #define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB 0x82ED
7668 
7669 #define GLEW_ARB_transform_feedback_overflow_query GLEW_GET_VAR(__GLEW_ARB_transform_feedback_overflow_query)
7670 
7671 #endif /* GL_ARB_transform_feedback_overflow_query */
7672 
7673 /* ------------------------ GL_ARB_transpose_matrix ------------------------ */
7674 
7675 #ifndef GL_ARB_transpose_matrix
7676 #define GL_ARB_transpose_matrix 1
7677 
7678 #define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3
7679 #define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4
7680 #define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5
7681 #define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6
7682 
7683 typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]);
7684 typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]);
7685 typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]);
7686 typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]);
7687 
7688 #define glLoadTransposeMatrixdARB GLEW_GET_FUN(__glewLoadTransposeMatrixdARB)
7689 #define glLoadTransposeMatrixfARB GLEW_GET_FUN(__glewLoadTransposeMatrixfARB)
7690 #define glMultTransposeMatrixdARB GLEW_GET_FUN(__glewMultTransposeMatrixdARB)
7691 #define glMultTransposeMatrixfARB GLEW_GET_FUN(__glewMultTransposeMatrixfARB)
7692 
7693 #define GLEW_ARB_transpose_matrix GLEW_GET_VAR(__GLEW_ARB_transpose_matrix)
7694 
7695 #endif /* GL_ARB_transpose_matrix */
7696 
7697 /* ---------------------- GL_ARB_uniform_buffer_object --------------------- */
7698 
7699 #ifndef GL_ARB_uniform_buffer_object
7700 #define GL_ARB_uniform_buffer_object 1
7701 
7702 #define GL_UNIFORM_BUFFER 0x8A11
7703 #define GL_UNIFORM_BUFFER_BINDING 0x8A28
7704 #define GL_UNIFORM_BUFFER_START 0x8A29
7705 #define GL_UNIFORM_BUFFER_SIZE 0x8A2A
7706 #define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
7707 #define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C
7708 #define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
7709 #define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
7710 #define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
7711 #define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
7712 #define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
7713 #define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32
7714 #define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
7715 #define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
7716 #define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
7717 #define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
7718 #define GL_UNIFORM_TYPE 0x8A37
7719 #define GL_UNIFORM_SIZE 0x8A38
7720 #define GL_UNIFORM_NAME_LENGTH 0x8A39
7721 #define GL_UNIFORM_BLOCK_INDEX 0x8A3A
7722 #define GL_UNIFORM_OFFSET 0x8A3B
7723 #define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
7724 #define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
7725 #define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
7726 #define GL_UNIFORM_BLOCK_BINDING 0x8A3F
7727 #define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
7728 #define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
7729 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
7730 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
7731 #define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
7732 #define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
7733 #define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
7734 #define GL_INVALID_INDEX 0xFFFFFFFFu
7735 
7736 typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
7737 typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
7738 typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
7739 typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
7740 typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
7741 typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
7742 typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint* data);
7743 typedef GLuint (GLAPIENTRY * PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar* uniformBlockName);
7744 typedef void (GLAPIENTRY * PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* const * uniformNames, GLuint* uniformIndices);
7745 typedef void (GLAPIENTRY * PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
7746 
7747 #define glBindBufferBase GLEW_GET_FUN(__glewBindBufferBase)
7748 #define glBindBufferRange GLEW_GET_FUN(__glewBindBufferRange)
7749 #define glGetActiveUniformBlockName GLEW_GET_FUN(__glewGetActiveUniformBlockName)
7750 #define glGetActiveUniformBlockiv GLEW_GET_FUN(__glewGetActiveUniformBlockiv)
7751 #define glGetActiveUniformName GLEW_GET_FUN(__glewGetActiveUniformName)
7752 #define glGetActiveUniformsiv GLEW_GET_FUN(__glewGetActiveUniformsiv)
7753 #define glGetIntegeri_v GLEW_GET_FUN(__glewGetIntegeri_v)
7754 #define glGetUniformBlockIndex GLEW_GET_FUN(__glewGetUniformBlockIndex)
7755 #define glGetUniformIndices GLEW_GET_FUN(__glewGetUniformIndices)
7756 #define glUniformBlockBinding GLEW_GET_FUN(__glewUniformBlockBinding)
7757 
7758 #define GLEW_ARB_uniform_buffer_object GLEW_GET_VAR(__GLEW_ARB_uniform_buffer_object)
7759 
7760 #endif /* GL_ARB_uniform_buffer_object */
7761 
7762 /* ------------------------ GL_ARB_vertex_array_bgra ----------------------- */
7763 
7764 #ifndef GL_ARB_vertex_array_bgra
7765 #define GL_ARB_vertex_array_bgra 1
7766 
7767 #define GL_BGRA 0x80E1
7768 
7769 #define GLEW_ARB_vertex_array_bgra GLEW_GET_VAR(__GLEW_ARB_vertex_array_bgra)
7770 
7771 #endif /* GL_ARB_vertex_array_bgra */
7772 
7773 /* ----------------------- GL_ARB_vertex_array_object ---------------------- */
7774 
7775 #ifndef GL_ARB_vertex_array_object
7776 #define GL_ARB_vertex_array_object 1
7777 
7778 #define GL_VERTEX_ARRAY_BINDING 0x85B5
7779 
7780 typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYPROC) (GLuint array);
7781 typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint* arrays);
7782 typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays);
7783 typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYPROC) (GLuint array);
7784 
7785 #define glBindVertexArray GLEW_GET_FUN(__glewBindVertexArray)
7786 #define glDeleteVertexArrays GLEW_GET_FUN(__glewDeleteVertexArrays)
7787 #define glGenVertexArrays GLEW_GET_FUN(__glewGenVertexArrays)
7788 #define glIsVertexArray GLEW_GET_FUN(__glewIsVertexArray)
7789 
7790 #define GLEW_ARB_vertex_array_object GLEW_GET_VAR(__GLEW_ARB_vertex_array_object)
7791 
7792 #endif /* GL_ARB_vertex_array_object */
7793 
7794 /* ----------------------- GL_ARB_vertex_attrib_64bit ---------------------- */
7795 
7796 #ifndef GL_ARB_vertex_attrib_64bit
7797 #define GL_ARB_vertex_attrib_64bit 1
7798 
7799 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble* params);
7800 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x);
7801 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble* v);
7802 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y);
7803 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble* v);
7804 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
7805 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble* v);
7806 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
7807 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble* v);
7808 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer);
7809 
7810 #define glGetVertexAttribLdv GLEW_GET_FUN(__glewGetVertexAttribLdv)
7811 #define glVertexAttribL1d GLEW_GET_FUN(__glewVertexAttribL1d)
7812 #define glVertexAttribL1dv GLEW_GET_FUN(__glewVertexAttribL1dv)
7813 #define glVertexAttribL2d GLEW_GET_FUN(__glewVertexAttribL2d)
7814 #define glVertexAttribL2dv GLEW_GET_FUN(__glewVertexAttribL2dv)
7815 #define glVertexAttribL3d GLEW_GET_FUN(__glewVertexAttribL3d)
7816 #define glVertexAttribL3dv GLEW_GET_FUN(__glewVertexAttribL3dv)
7817 #define glVertexAttribL4d GLEW_GET_FUN(__glewVertexAttribL4d)
7818 #define glVertexAttribL4dv GLEW_GET_FUN(__glewVertexAttribL4dv)
7819 #define glVertexAttribLPointer GLEW_GET_FUN(__glewVertexAttribLPointer)
7820 
7821 #define GLEW_ARB_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_ARB_vertex_attrib_64bit)
7822 
7823 #endif /* GL_ARB_vertex_attrib_64bit */
7824 
7825 /* ---------------------- GL_ARB_vertex_attrib_binding --------------------- */
7826 
7827 #ifndef GL_ARB_vertex_attrib_binding
7828 #define GL_ARB_vertex_attrib_binding 1
7829 
7830 #define GL_VERTEX_ATTRIB_BINDING 0x82D4
7831 #define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5
7832 #define GL_VERTEX_BINDING_DIVISOR 0x82D6
7833 #define GL_VERTEX_BINDING_OFFSET 0x82D7
7834 #define GL_VERTEX_BINDING_STRIDE 0x82D8
7835 #define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
7836 #define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
7837 #define GL_VERTEX_BINDING_BUFFER 0x8F4F
7838 
7839 typedef void (GLAPIENTRY * PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
7840 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
7841 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex);
7842 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
7843 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
7844 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
7845 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor);
7846 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex);
7847 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
7848 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
7849 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
7850 typedef void (GLAPIENTRY * PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor);
7851 
7852 #define glBindVertexBuffer GLEW_GET_FUN(__glewBindVertexBuffer)
7853 #define glVertexArrayBindVertexBufferEXT GLEW_GET_FUN(__glewVertexArrayBindVertexBufferEXT)
7854 #define glVertexArrayVertexAttribBindingEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribBindingEXT)
7855 #define glVertexArrayVertexAttribFormatEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribFormatEXT)
7856 #define glVertexArrayVertexAttribIFormatEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribIFormatEXT)
7857 #define glVertexArrayVertexAttribLFormatEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribLFormatEXT)
7858 #define glVertexArrayVertexBindingDivisorEXT GLEW_GET_FUN(__glewVertexArrayVertexBindingDivisorEXT)
7859 #define glVertexAttribBinding GLEW_GET_FUN(__glewVertexAttribBinding)
7860 #define glVertexAttribFormat GLEW_GET_FUN(__glewVertexAttribFormat)
7861 #define glVertexAttribIFormat GLEW_GET_FUN(__glewVertexAttribIFormat)
7862 #define glVertexAttribLFormat GLEW_GET_FUN(__glewVertexAttribLFormat)
7863 #define glVertexBindingDivisor GLEW_GET_FUN(__glewVertexBindingDivisor)
7864 
7865 #define GLEW_ARB_vertex_attrib_binding GLEW_GET_VAR(__GLEW_ARB_vertex_attrib_binding)
7866 
7867 #endif /* GL_ARB_vertex_attrib_binding */
7868 
7869 /* -------------------------- GL_ARB_vertex_blend -------------------------- */
7870 
7871 #ifndef GL_ARB_vertex_blend
7872 #define GL_ARB_vertex_blend 1
7873 
7874 #define GL_MODELVIEW0_ARB 0x1700
7875 #define GL_MODELVIEW1_ARB 0x850A
7876 #define GL_MAX_VERTEX_UNITS_ARB 0x86A4
7877 #define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5
7878 #define GL_WEIGHT_SUM_UNITY_ARB 0x86A6
7879 #define GL_VERTEX_BLEND_ARB 0x86A7
7880 #define GL_CURRENT_WEIGHT_ARB 0x86A8
7881 #define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9
7882 #define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA
7883 #define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB
7884 #define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC
7885 #define GL_WEIGHT_ARRAY_ARB 0x86AD
7886 #define GL_MODELVIEW2_ARB 0x8722
7887 #define GL_MODELVIEW3_ARB 0x8723
7888 #define GL_MODELVIEW4_ARB 0x8724
7889 #define GL_MODELVIEW5_ARB 0x8725
7890 #define GL_MODELVIEW6_ARB 0x8726
7891 #define GL_MODELVIEW7_ARB 0x8727
7892 #define GL_MODELVIEW8_ARB 0x8728
7893 #define GL_MODELVIEW9_ARB 0x8729
7894 #define GL_MODELVIEW10_ARB 0x872A
7895 #define GL_MODELVIEW11_ARB 0x872B
7896 #define GL_MODELVIEW12_ARB 0x872C
7897 #define GL_MODELVIEW13_ARB 0x872D
7898 #define GL_MODELVIEW14_ARB 0x872E
7899 #define GL_MODELVIEW15_ARB 0x872F
7900 #define GL_MODELVIEW16_ARB 0x8730
7901 #define GL_MODELVIEW17_ARB 0x8731
7902 #define GL_MODELVIEW18_ARB 0x8732
7903 #define GL_MODELVIEW19_ARB 0x8733
7904 #define GL_MODELVIEW20_ARB 0x8734
7905 #define GL_MODELVIEW21_ARB 0x8735
7906 #define GL_MODELVIEW22_ARB 0x8736
7907 #define GL_MODELVIEW23_ARB 0x8737
7908 #define GL_MODELVIEW24_ARB 0x8738
7909 #define GL_MODELVIEW25_ARB 0x8739
7910 #define GL_MODELVIEW26_ARB 0x873A
7911 #define GL_MODELVIEW27_ARB 0x873B
7912 #define GL_MODELVIEW28_ARB 0x873C
7913 #define GL_MODELVIEW29_ARB 0x873D
7914 #define GL_MODELVIEW30_ARB 0x873E
7915 #define GL_MODELVIEW31_ARB 0x873F
7916 
7917 typedef void (GLAPIENTRY * PFNGLVERTEXBLENDARBPROC) (GLint count);
7918 typedef void (GLAPIENTRY * PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, void *pointer);
7919 typedef void (GLAPIENTRY * PFNGLWEIGHTBVARBPROC) (GLint size, GLbyte *weights);
7920 typedef void (GLAPIENTRY * PFNGLWEIGHTDVARBPROC) (GLint size, GLdouble *weights);
7921 typedef void (GLAPIENTRY * PFNGLWEIGHTFVARBPROC) (GLint size, GLfloat *weights);
7922 typedef void (GLAPIENTRY * PFNGLWEIGHTIVARBPROC) (GLint size, GLint *weights);
7923 typedef void (GLAPIENTRY * PFNGLWEIGHTSVARBPROC) (GLint size, GLshort *weights);
7924 typedef void (GLAPIENTRY * PFNGLWEIGHTUBVARBPROC) (GLint size, GLubyte *weights);
7925 typedef void (GLAPIENTRY * PFNGLWEIGHTUIVARBPROC) (GLint size, GLuint *weights);
7926 typedef void (GLAPIENTRY * PFNGLWEIGHTUSVARBPROC) (GLint size, GLushort *weights);
7927 
7928 #define glVertexBlendARB GLEW_GET_FUN(__glewVertexBlendARB)
7929 #define glWeightPointerARB GLEW_GET_FUN(__glewWeightPointerARB)
7930 #define glWeightbvARB GLEW_GET_FUN(__glewWeightbvARB)
7931 #define glWeightdvARB GLEW_GET_FUN(__glewWeightdvARB)
7932 #define glWeightfvARB GLEW_GET_FUN(__glewWeightfvARB)
7933 #define glWeightivARB GLEW_GET_FUN(__glewWeightivARB)
7934 #define glWeightsvARB GLEW_GET_FUN(__glewWeightsvARB)
7935 #define glWeightubvARB GLEW_GET_FUN(__glewWeightubvARB)
7936 #define glWeightuivARB GLEW_GET_FUN(__glewWeightuivARB)
7937 #define glWeightusvARB GLEW_GET_FUN(__glewWeightusvARB)
7938 
7939 #define GLEW_ARB_vertex_blend GLEW_GET_VAR(__GLEW_ARB_vertex_blend)
7940 
7941 #endif /* GL_ARB_vertex_blend */
7942 
7943 /* ---------------------- GL_ARB_vertex_buffer_object ---------------------- */
7944 
7945 #ifndef GL_ARB_vertex_buffer_object
7946 #define GL_ARB_vertex_buffer_object 1
7947 
7948 #define GL_BUFFER_SIZE_ARB 0x8764
7949 #define GL_BUFFER_USAGE_ARB 0x8765
7950 #define GL_ARRAY_BUFFER_ARB 0x8892
7951 #define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893
7952 #define GL_ARRAY_BUFFER_BINDING_ARB 0x8894
7953 #define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
7954 #define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
7955 #define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
7956 #define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
7957 #define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
7958 #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
7959 #define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
7960 #define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
7961 #define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
7962 #define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
7963 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
7964 #define GL_READ_ONLY_ARB 0x88B8
7965 #define GL_WRITE_ONLY_ARB 0x88B9
7966 #define GL_READ_WRITE_ARB 0x88BA
7967 #define GL_BUFFER_ACCESS_ARB 0x88BB
7968 #define GL_BUFFER_MAPPED_ARB 0x88BC
7969 #define GL_BUFFER_MAP_POINTER_ARB 0x88BD
7970 #define GL_STREAM_DRAW_ARB 0x88E0
7971 #define GL_STREAM_READ_ARB 0x88E1
7972 #define GL_STREAM_COPY_ARB 0x88E2
7973 #define GL_STATIC_DRAW_ARB 0x88E4
7974 #define GL_STATIC_READ_ARB 0x88E5
7975 #define GL_STATIC_COPY_ARB 0x88E6
7976 #define GL_DYNAMIC_DRAW_ARB 0x88E8
7977 #define GL_DYNAMIC_READ_ARB 0x88E9
7978 #define GL_DYNAMIC_COPY_ARB 0x88EA
7979 
7980 typedef ptrdiff_t GLintptrARB;
7981 typedef ptrdiff_t GLsizeiptrARB;
7982 
7983 typedef void (GLAPIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
7984 typedef void (GLAPIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage);
7985 typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data);
7986 typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint* buffers);
7987 typedef void (GLAPIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint* buffers);
7988 typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint* params);
7989 typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, void** params);
7990 typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data);
7991 typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERARBPROC) (GLuint buffer);
7992 typedef void * (GLAPIENTRY * PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access);
7993 typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERARBPROC) (GLenum target);
7994 
7995 #define glBindBufferARB GLEW_GET_FUN(__glewBindBufferARB)
7996 #define glBufferDataARB GLEW_GET_FUN(__glewBufferDataARB)
7997 #define glBufferSubDataARB GLEW_GET_FUN(__glewBufferSubDataARB)
7998 #define glDeleteBuffersARB GLEW_GET_FUN(__glewDeleteBuffersARB)
7999 #define glGenBuffersARB GLEW_GET_FUN(__glewGenBuffersARB)
8000 #define glGetBufferParameterivARB GLEW_GET_FUN(__glewGetBufferParameterivARB)
8001 #define glGetBufferPointervARB GLEW_GET_FUN(__glewGetBufferPointervARB)
8002 #define glGetBufferSubDataARB GLEW_GET_FUN(__glewGetBufferSubDataARB)
8003 #define glIsBufferARB GLEW_GET_FUN(__glewIsBufferARB)
8004 #define glMapBufferARB GLEW_GET_FUN(__glewMapBufferARB)
8005 #define glUnmapBufferARB GLEW_GET_FUN(__glewUnmapBufferARB)
8006 
8007 #define GLEW_ARB_vertex_buffer_object GLEW_GET_VAR(__GLEW_ARB_vertex_buffer_object)
8008 
8009 #endif /* GL_ARB_vertex_buffer_object */
8010 
8011 /* ------------------------- GL_ARB_vertex_program ------------------------- */
8012 
8013 #ifndef GL_ARB_vertex_program
8014 #define GL_ARB_vertex_program 1
8015 
8016 #define GL_COLOR_SUM_ARB 0x8458
8017 #define GL_VERTEX_PROGRAM_ARB 0x8620
8018 #define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
8019 #define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
8020 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
8021 #define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
8022 #define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
8023 #define GL_PROGRAM_LENGTH_ARB 0x8627
8024 #define GL_PROGRAM_STRING_ARB 0x8628
8025 #define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
8026 #define GL_MAX_PROGRAM_MATRICES_ARB 0x862F
8027 #define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
8028 #define GL_CURRENT_MATRIX_ARB 0x8641
8029 #define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
8030 #define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643
8031 #define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
8032 #define GL_PROGRAM_ERROR_POSITION_ARB 0x864B
8033 #define GL_PROGRAM_BINDING_ARB 0x8677
8034 #define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
8035 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
8036 #define GL_PROGRAM_ERROR_STRING_ARB 0x8874
8037 #define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
8038 #define GL_PROGRAM_FORMAT_ARB 0x8876
8039 #define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
8040 #define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
8041 #define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
8042 #define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
8043 #define GL_PROGRAM_TEMPORARIES_ARB 0x88A4
8044 #define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
8045 #define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
8046 #define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
8047 #define GL_PROGRAM_PARAMETERS_ARB 0x88A8
8048 #define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
8049 #define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
8050 #define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
8051 #define GL_PROGRAM_ATTRIBS_ARB 0x88AC
8052 #define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
8053 #define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
8054 #define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
8055 #define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0
8056 #define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
8057 #define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
8058 #define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
8059 #define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
8060 #define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
8061 #define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
8062 #define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
8063 #define GL_MATRIX0_ARB 0x88C0
8064 #define GL_MATRIX1_ARB 0x88C1
8065 #define GL_MATRIX2_ARB 0x88C2
8066 #define GL_MATRIX3_ARB 0x88C3
8067 #define GL_MATRIX4_ARB 0x88C4
8068 #define GL_MATRIX5_ARB 0x88C5
8069 #define GL_MATRIX6_ARB 0x88C6
8070 #define GL_MATRIX7_ARB 0x88C7
8071 #define GL_MATRIX8_ARB 0x88C8
8072 #define GL_MATRIX9_ARB 0x88C9
8073 #define GL_MATRIX10_ARB 0x88CA
8074 #define GL_MATRIX11_ARB 0x88CB
8075 #define GL_MATRIX12_ARB 0x88CC
8076 #define GL_MATRIX13_ARB 0x88CD
8077 #define GL_MATRIX14_ARB 0x88CE
8078 #define GL_MATRIX15_ARB 0x88CF
8079 #define GL_MATRIX16_ARB 0x88D0
8080 #define GL_MATRIX17_ARB 0x88D1
8081 #define GL_MATRIX18_ARB 0x88D2
8082 #define GL_MATRIX19_ARB 0x88D3
8083 #define GL_MATRIX20_ARB 0x88D4
8084 #define GL_MATRIX21_ARB 0x88D5
8085 #define GL_MATRIX22_ARB 0x88D6
8086 #define GL_MATRIX23_ARB 0x88D7
8087 #define GL_MATRIX24_ARB 0x88D8
8088 #define GL_MATRIX25_ARB 0x88D9
8089 #define GL_MATRIX26_ARB 0x88DA
8090 #define GL_MATRIX27_ARB 0x88DB
8091 #define GL_MATRIX28_ARB 0x88DC
8092 #define GL_MATRIX29_ARB 0x88DD
8093 #define GL_MATRIX30_ARB 0x88DE
8094 #define GL_MATRIX31_ARB 0x88DF
8095 
8096 typedef void (GLAPIENTRY * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program);
8097 typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint* programs);
8098 typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
8099 typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
8100 typedef void (GLAPIENTRY * PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint* programs);
8101 typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params);
8102 typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params);
8103 typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params);
8104 typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params);
8105 typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void *string);
8106 typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint* params);
8107 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, void** pointer);
8108 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble* params);
8109 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat* params);
8110 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint* params);
8111 typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMARBPROC) (GLuint program);
8112 typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
8113 typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params);
8114 typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
8115 typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params);
8116 typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
8117 typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params);
8118 typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
8119 typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params);
8120 typedef void (GLAPIENTRY * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void *string);
8121 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x);
8122 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble* v);
8123 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x);
8124 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat* v);
8125 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x);
8126 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort* v);
8127 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y);
8128 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble* v);
8129 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y);
8130 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat* v);
8131 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y);
8132 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort* v);
8133 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
8134 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble* v);
8135 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
8136 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat* v);
8137 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
8138 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort* v);
8139 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte* v);
8140 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint* v);
8141 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort* v);
8142 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
8143 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte* v);
8144 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint* v);
8145 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort* v);
8146 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte* v);
8147 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
8148 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble* v);
8149 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
8150 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat* v);
8151 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint* v);
8152 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
8153 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort* v);
8154 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte* v);
8155 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint* v);
8156 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort* v);
8157 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
8158 
8159 #define glBindProgramARB GLEW_GET_FUN(__glewBindProgramARB)
8160 #define glDeleteProgramsARB GLEW_GET_FUN(__glewDeleteProgramsARB)
8161 #define glDisableVertexAttribArrayARB GLEW_GET_FUN(__glewDisableVertexAttribArrayARB)
8162 #define glEnableVertexAttribArrayARB GLEW_GET_FUN(__glewEnableVertexAttribArrayARB)
8163 #define glGenProgramsARB GLEW_GET_FUN(__glewGenProgramsARB)
8164 #define glGetProgramEnvParameterdvARB GLEW_GET_FUN(__glewGetProgramEnvParameterdvARB)
8165 #define glGetProgramEnvParameterfvARB GLEW_GET_FUN(__glewGetProgramEnvParameterfvARB)
8166 #define glGetProgramLocalParameterdvARB GLEW_GET_FUN(__glewGetProgramLocalParameterdvARB)
8167 #define glGetProgramLocalParameterfvARB GLEW_GET_FUN(__glewGetProgramLocalParameterfvARB)
8168 #define glGetProgramStringARB GLEW_GET_FUN(__glewGetProgramStringARB)
8169 #define glGetProgramivARB GLEW_GET_FUN(__glewGetProgramivARB)
8170 #define glGetVertexAttribPointervARB GLEW_GET_FUN(__glewGetVertexAttribPointervARB)
8171 #define glGetVertexAttribdvARB GLEW_GET_FUN(__glewGetVertexAttribdvARB)
8172 #define glGetVertexAttribfvARB GLEW_GET_FUN(__glewGetVertexAttribfvARB)
8173 #define glGetVertexAttribivARB GLEW_GET_FUN(__glewGetVertexAttribivARB)
8174 #define glIsProgramARB GLEW_GET_FUN(__glewIsProgramARB)
8175 #define glProgramEnvParameter4dARB GLEW_GET_FUN(__glewProgramEnvParameter4dARB)
8176 #define glProgramEnvParameter4dvARB GLEW_GET_FUN(__glewProgramEnvParameter4dvARB)
8177 #define glProgramEnvParameter4fARB GLEW_GET_FUN(__glewProgramEnvParameter4fARB)
8178 #define glProgramEnvParameter4fvARB GLEW_GET_FUN(__glewProgramEnvParameter4fvARB)
8179 #define glProgramLocalParameter4dARB GLEW_GET_FUN(__glewProgramLocalParameter4dARB)
8180 #define glProgramLocalParameter4dvARB GLEW_GET_FUN(__glewProgramLocalParameter4dvARB)
8181 #define glProgramLocalParameter4fARB GLEW_GET_FUN(__glewProgramLocalParameter4fARB)
8182 #define glProgramLocalParameter4fvARB GLEW_GET_FUN(__glewProgramLocalParameter4fvARB)
8183 #define glProgramStringARB GLEW_GET_FUN(__glewProgramStringARB)
8184 #define glVertexAttrib1dARB GLEW_GET_FUN(__glewVertexAttrib1dARB)
8185 #define glVertexAttrib1dvARB GLEW_GET_FUN(__glewVertexAttrib1dvARB)
8186 #define glVertexAttrib1fARB GLEW_GET_FUN(__glewVertexAttrib1fARB)
8187 #define glVertexAttrib1fvARB GLEW_GET_FUN(__glewVertexAttrib1fvARB)
8188 #define glVertexAttrib1sARB GLEW_GET_FUN(__glewVertexAttrib1sARB)
8189 #define glVertexAttrib1svARB GLEW_GET_FUN(__glewVertexAttrib1svARB)
8190 #define glVertexAttrib2dARB GLEW_GET_FUN(__glewVertexAttrib2dARB)
8191 #define glVertexAttrib2dvARB GLEW_GET_FUN(__glewVertexAttrib2dvARB)
8192 #define glVertexAttrib2fARB GLEW_GET_FUN(__glewVertexAttrib2fARB)
8193 #define glVertexAttrib2fvARB GLEW_GET_FUN(__glewVertexAttrib2fvARB)
8194 #define glVertexAttrib2sARB GLEW_GET_FUN(__glewVertexAttrib2sARB)
8195 #define glVertexAttrib2svARB GLEW_GET_FUN(__glewVertexAttrib2svARB)
8196 #define glVertexAttrib3dARB GLEW_GET_FUN(__glewVertexAttrib3dARB)
8197 #define glVertexAttrib3dvARB GLEW_GET_FUN(__glewVertexAttrib3dvARB)
8198 #define glVertexAttrib3fARB GLEW_GET_FUN(__glewVertexAttrib3fARB)
8199 #define glVertexAttrib3fvARB GLEW_GET_FUN(__glewVertexAttrib3fvARB)
8200 #define glVertexAttrib3sARB GLEW_GET_FUN(__glewVertexAttrib3sARB)
8201 #define glVertexAttrib3svARB GLEW_GET_FUN(__glewVertexAttrib3svARB)
8202 #define glVertexAttrib4NbvARB GLEW_GET_FUN(__glewVertexAttrib4NbvARB)
8203 #define glVertexAttrib4NivARB GLEW_GET_FUN(__glewVertexAttrib4NivARB)
8204 #define glVertexAttrib4NsvARB GLEW_GET_FUN(__glewVertexAttrib4NsvARB)
8205 #define glVertexAttrib4NubARB GLEW_GET_FUN(__glewVertexAttrib4NubARB)
8206 #define glVertexAttrib4NubvARB GLEW_GET_FUN(__glewVertexAttrib4NubvARB)
8207 #define glVertexAttrib4NuivARB GLEW_GET_FUN(__glewVertexAttrib4NuivARB)
8208 #define glVertexAttrib4NusvARB GLEW_GET_FUN(__glewVertexAttrib4NusvARB)
8209 #define glVertexAttrib4bvARB GLEW_GET_FUN(__glewVertexAttrib4bvARB)
8210 #define glVertexAttrib4dARB GLEW_GET_FUN(__glewVertexAttrib4dARB)
8211 #define glVertexAttrib4dvARB GLEW_GET_FUN(__glewVertexAttrib4dvARB)
8212 #define glVertexAttrib4fARB GLEW_GET_FUN(__glewVertexAttrib4fARB)
8213 #define glVertexAttrib4fvARB GLEW_GET_FUN(__glewVertexAttrib4fvARB)
8214 #define glVertexAttrib4ivARB GLEW_GET_FUN(__glewVertexAttrib4ivARB)
8215 #define glVertexAttrib4sARB GLEW_GET_FUN(__glewVertexAttrib4sARB)
8216 #define glVertexAttrib4svARB GLEW_GET_FUN(__glewVertexAttrib4svARB)
8217 #define glVertexAttrib4ubvARB GLEW_GET_FUN(__glewVertexAttrib4ubvARB)
8218 #define glVertexAttrib4uivARB GLEW_GET_FUN(__glewVertexAttrib4uivARB)
8219 #define glVertexAttrib4usvARB GLEW_GET_FUN(__glewVertexAttrib4usvARB)
8220 #define glVertexAttribPointerARB GLEW_GET_FUN(__glewVertexAttribPointerARB)
8221 
8222 #define GLEW_ARB_vertex_program GLEW_GET_VAR(__GLEW_ARB_vertex_program)
8223 
8224 #endif /* GL_ARB_vertex_program */
8225 
8226 /* -------------------------- GL_ARB_vertex_shader ------------------------- */
8227 
8228 #ifndef GL_ARB_vertex_shader
8229 #define GL_ARB_vertex_shader 1
8230 
8231 #define GL_VERTEX_SHADER_ARB 0x8B31
8232 #define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A
8233 #define GL_MAX_VARYING_FLOATS_ARB 0x8B4B
8234 #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
8235 #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D
8236 #define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89
8237 #define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A
8238 
8239 typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB* name);
8240 typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name);
8241 typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name);
8242 
8243 #define glBindAttribLocationARB GLEW_GET_FUN(__glewBindAttribLocationARB)
8244 #define glGetActiveAttribARB GLEW_GET_FUN(__glewGetActiveAttribARB)
8245 #define glGetAttribLocationARB GLEW_GET_FUN(__glewGetAttribLocationARB)
8246 
8247 #define GLEW_ARB_vertex_shader GLEW_GET_VAR(__GLEW_ARB_vertex_shader)
8248 
8249 #endif /* GL_ARB_vertex_shader */
8250 
8251 /* ------------------- GL_ARB_vertex_type_10f_11f_11f_rev ------------------ */
8252 
8253 #ifndef GL_ARB_vertex_type_10f_11f_11f_rev
8254 #define GL_ARB_vertex_type_10f_11f_11f_rev 1
8255 
8256 #define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
8257 
8258 #define GLEW_ARB_vertex_type_10f_11f_11f_rev GLEW_GET_VAR(__GLEW_ARB_vertex_type_10f_11f_11f_rev)
8259 
8260 #endif /* GL_ARB_vertex_type_10f_11f_11f_rev */
8261 
8262 /* ------------------- GL_ARB_vertex_type_2_10_10_10_rev ------------------- */
8263 
8264 #ifndef GL_ARB_vertex_type_2_10_10_10_rev
8265 #define GL_ARB_vertex_type_2_10_10_10_rev 1
8266 
8267 #define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
8268 #define GL_INT_2_10_10_10_REV 0x8D9F
8269 
8270 typedef void (GLAPIENTRY * PFNGLCOLORP3UIPROC) (GLenum type, GLuint color);
8271 typedef void (GLAPIENTRY * PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint* color);
8272 typedef void (GLAPIENTRY * PFNGLCOLORP4UIPROC) (GLenum type, GLuint color);
8273 typedef void (GLAPIENTRY * PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint* color);
8274 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords);
8275 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint* coords);
8276 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords);
8277 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint* coords);
8278 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords);
8279 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint* coords);
8280 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords);
8281 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint* coords);
8282 typedef void (GLAPIENTRY * PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords);
8283 typedef void (GLAPIENTRY * PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint* coords);
8284 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color);
8285 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint* color);
8286 typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords);
8287 typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint* coords);
8288 typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords);
8289 typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint* coords);
8290 typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords);
8291 typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint* coords);
8292 typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords);
8293 typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint* coords);
8294 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
8295 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value);
8296 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
8297 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value);
8298 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
8299 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value);
8300 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
8301 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value);
8302 typedef void (GLAPIENTRY * PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value);
8303 typedef void (GLAPIENTRY * PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint* value);
8304 typedef void (GLAPIENTRY * PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value);
8305 typedef void (GLAPIENTRY * PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint* value);
8306 typedef void (GLAPIENTRY * PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value);
8307 typedef void (GLAPIENTRY * PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint* value);
8308 
8309 #define glColorP3ui GLEW_GET_FUN(__glewColorP3ui)
8310 #define glColorP3uiv GLEW_GET_FUN(__glewColorP3uiv)
8311 #define glColorP4ui GLEW_GET_FUN(__glewColorP4ui)
8312 #define glColorP4uiv GLEW_GET_FUN(__glewColorP4uiv)
8313 #define glMultiTexCoordP1ui GLEW_GET_FUN(__glewMultiTexCoordP1ui)
8314 #define glMultiTexCoordP1uiv GLEW_GET_FUN(__glewMultiTexCoordP1uiv)
8315 #define glMultiTexCoordP2ui GLEW_GET_FUN(__glewMultiTexCoordP2ui)
8316 #define glMultiTexCoordP2uiv GLEW_GET_FUN(__glewMultiTexCoordP2uiv)
8317 #define glMultiTexCoordP3ui GLEW_GET_FUN(__glewMultiTexCoordP3ui)
8318 #define glMultiTexCoordP3uiv GLEW_GET_FUN(__glewMultiTexCoordP3uiv)
8319 #define glMultiTexCoordP4ui GLEW_GET_FUN(__glewMultiTexCoordP4ui)
8320 #define glMultiTexCoordP4uiv GLEW_GET_FUN(__glewMultiTexCoordP4uiv)
8321 #define glNormalP3ui GLEW_GET_FUN(__glewNormalP3ui)
8322 #define glNormalP3uiv GLEW_GET_FUN(__glewNormalP3uiv)
8323 #define glSecondaryColorP3ui GLEW_GET_FUN(__glewSecondaryColorP3ui)
8324 #define glSecondaryColorP3uiv GLEW_GET_FUN(__glewSecondaryColorP3uiv)
8325 #define glTexCoordP1ui GLEW_GET_FUN(__glewTexCoordP1ui)
8326 #define glTexCoordP1uiv GLEW_GET_FUN(__glewTexCoordP1uiv)
8327 #define glTexCoordP2ui GLEW_GET_FUN(__glewTexCoordP2ui)
8328 #define glTexCoordP2uiv GLEW_GET_FUN(__glewTexCoordP2uiv)
8329 #define glTexCoordP3ui GLEW_GET_FUN(__glewTexCoordP3ui)
8330 #define glTexCoordP3uiv GLEW_GET_FUN(__glewTexCoordP3uiv)
8331 #define glTexCoordP4ui GLEW_GET_FUN(__glewTexCoordP4ui)
8332 #define glTexCoordP4uiv GLEW_GET_FUN(__glewTexCoordP4uiv)
8333 #define glVertexAttribP1ui GLEW_GET_FUN(__glewVertexAttribP1ui)
8334 #define glVertexAttribP1uiv GLEW_GET_FUN(__glewVertexAttribP1uiv)
8335 #define glVertexAttribP2ui GLEW_GET_FUN(__glewVertexAttribP2ui)
8336 #define glVertexAttribP2uiv GLEW_GET_FUN(__glewVertexAttribP2uiv)
8337 #define glVertexAttribP3ui GLEW_GET_FUN(__glewVertexAttribP3ui)
8338 #define glVertexAttribP3uiv GLEW_GET_FUN(__glewVertexAttribP3uiv)
8339 #define glVertexAttribP4ui GLEW_GET_FUN(__glewVertexAttribP4ui)
8340 #define glVertexAttribP4uiv GLEW_GET_FUN(__glewVertexAttribP4uiv)
8341 #define glVertexP2ui GLEW_GET_FUN(__glewVertexP2ui)
8342 #define glVertexP2uiv GLEW_GET_FUN(__glewVertexP2uiv)
8343 #define glVertexP3ui GLEW_GET_FUN(__glewVertexP3ui)
8344 #define glVertexP3uiv GLEW_GET_FUN(__glewVertexP3uiv)
8345 #define glVertexP4ui GLEW_GET_FUN(__glewVertexP4ui)
8346 #define glVertexP4uiv GLEW_GET_FUN(__glewVertexP4uiv)
8347 
8348 #define GLEW_ARB_vertex_type_2_10_10_10_rev GLEW_GET_VAR(__GLEW_ARB_vertex_type_2_10_10_10_rev)
8349 
8350 #endif /* GL_ARB_vertex_type_2_10_10_10_rev */
8351 
8352 /* ------------------------- GL_ARB_viewport_array ------------------------- */
8353 
8354 #ifndef GL_ARB_viewport_array
8355 #define GL_ARB_viewport_array 1
8356 
8357 #define GL_DEPTH_RANGE 0x0B70
8358 #define GL_VIEWPORT 0x0BA2
8359 #define GL_SCISSOR_BOX 0x0C10
8360 #define GL_SCISSOR_TEST 0x0C11
8361 #define GL_MAX_VIEWPORTS 0x825B
8362 #define GL_VIEWPORT_SUBPIXEL_BITS 0x825C
8363 #define GL_VIEWPORT_BOUNDS_RANGE 0x825D
8364 #define GL_LAYER_PROVOKING_VERTEX 0x825E
8365 #define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F
8366 #define GL_UNDEFINED_VERTEX 0x8260
8367 #define GL_FIRST_VERTEX_CONVENTION 0x8E4D
8368 #define GL_LAST_VERTEX_CONVENTION 0x8E4E
8369 #define GL_PROVOKING_VERTEX 0x8E4F
8370 
8371 typedef void (GLAPIENTRY * PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd * v);
8372 typedef void (GLAPIENTRY * PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f);
8373 typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble* data);
8374 typedef void (GLAPIENTRY * PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat* data);
8375 typedef void (GLAPIENTRY * PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint * v);
8376 typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
8377 typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint * v);
8378 typedef void (GLAPIENTRY * PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat * v);
8379 typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
8380 typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat * v);
8381 
8382 #define glDepthRangeArrayv GLEW_GET_FUN(__glewDepthRangeArrayv)
8383 #define glDepthRangeIndexed GLEW_GET_FUN(__glewDepthRangeIndexed)
8384 #define glGetDoublei_v GLEW_GET_FUN(__glewGetDoublei_v)
8385 #define glGetFloati_v GLEW_GET_FUN(__glewGetFloati_v)
8386 #define glScissorArrayv GLEW_GET_FUN(__glewScissorArrayv)
8387 #define glScissorIndexed GLEW_GET_FUN(__glewScissorIndexed)
8388 #define glScissorIndexedv GLEW_GET_FUN(__glewScissorIndexedv)
8389 #define glViewportArrayv GLEW_GET_FUN(__glewViewportArrayv)
8390 #define glViewportIndexedf GLEW_GET_FUN(__glewViewportIndexedf)
8391 #define glViewportIndexedfv GLEW_GET_FUN(__glewViewportIndexedfv)
8392 
8393 #define GLEW_ARB_viewport_array GLEW_GET_VAR(__GLEW_ARB_viewport_array)
8394 
8395 #endif /* GL_ARB_viewport_array */
8396 
8397 /* --------------------------- GL_ARB_window_pos --------------------------- */
8398 
8399 #ifndef GL_ARB_window_pos
8400 #define GL_ARB_window_pos 1
8401 
8402 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y);
8403 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVARBPROC) (const GLdouble* p);
8404 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y);
8405 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVARBPROC) (const GLfloat* p);
8406 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y);
8407 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVARBPROC) (const GLint* p);
8408 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y);
8409 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVARBPROC) (const GLshort* p);
8410 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z);
8411 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVARBPROC) (const GLdouble* p);
8412 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z);
8413 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVARBPROC) (const GLfloat* p);
8414 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z);
8415 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVARBPROC) (const GLint* p);
8416 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z);
8417 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVARBPROC) (const GLshort* p);
8418 
8419 #define glWindowPos2dARB GLEW_GET_FUN(__glewWindowPos2dARB)
8420 #define glWindowPos2dvARB GLEW_GET_FUN(__glewWindowPos2dvARB)
8421 #define glWindowPos2fARB GLEW_GET_FUN(__glewWindowPos2fARB)
8422 #define glWindowPos2fvARB GLEW_GET_FUN(__glewWindowPos2fvARB)
8423 #define glWindowPos2iARB GLEW_GET_FUN(__glewWindowPos2iARB)
8424 #define glWindowPos2ivARB GLEW_GET_FUN(__glewWindowPos2ivARB)
8425 #define glWindowPos2sARB GLEW_GET_FUN(__glewWindowPos2sARB)
8426 #define glWindowPos2svARB GLEW_GET_FUN(__glewWindowPos2svARB)
8427 #define glWindowPos3dARB GLEW_GET_FUN(__glewWindowPos3dARB)
8428 #define glWindowPos3dvARB GLEW_GET_FUN(__glewWindowPos3dvARB)
8429 #define glWindowPos3fARB GLEW_GET_FUN(__glewWindowPos3fARB)
8430 #define glWindowPos3fvARB GLEW_GET_FUN(__glewWindowPos3fvARB)
8431 #define glWindowPos3iARB GLEW_GET_FUN(__glewWindowPos3iARB)
8432 #define glWindowPos3ivARB GLEW_GET_FUN(__glewWindowPos3ivARB)
8433 #define glWindowPos3sARB GLEW_GET_FUN(__glewWindowPos3sARB)
8434 #define glWindowPos3svARB GLEW_GET_FUN(__glewWindowPos3svARB)
8435 
8436 #define GLEW_ARB_window_pos GLEW_GET_VAR(__GLEW_ARB_window_pos)
8437 
8438 #endif /* GL_ARB_window_pos */
8439 
8440 /* ----------------------- GL_ARM_mali_program_binary ---------------------- */
8441 
8442 #ifndef GL_ARM_mali_program_binary
8443 #define GL_ARM_mali_program_binary 1
8444 
8445 #define GL_MALI_PROGRAM_BINARY_ARM 0x8F61
8446 
8447 #define GLEW_ARM_mali_program_binary GLEW_GET_VAR(__GLEW_ARM_mali_program_binary)
8448 
8449 #endif /* GL_ARM_mali_program_binary */
8450 
8451 /* ----------------------- GL_ARM_mali_shader_binary ----------------------- */
8452 
8453 #ifndef GL_ARM_mali_shader_binary
8454 #define GL_ARM_mali_shader_binary 1
8455 
8456 #define GL_MALI_SHADER_BINARY_ARM 0x8F60
8457 
8458 #define GLEW_ARM_mali_shader_binary GLEW_GET_VAR(__GLEW_ARM_mali_shader_binary)
8459 
8460 #endif /* GL_ARM_mali_shader_binary */
8461 
8462 /* ------------------------------ GL_ARM_rgba8 ----------------------------- */
8463 
8464 #ifndef GL_ARM_rgba8
8465 #define GL_ARM_rgba8 1
8466 
8467 #define GL_RGBA8_OES 0x8058
8468 
8469 #define GLEW_ARM_rgba8 GLEW_GET_VAR(__GLEW_ARM_rgba8)
8470 
8471 #endif /* GL_ARM_rgba8 */
8472 
8473 /* -------------------- GL_ARM_shader_framebuffer_fetch -------------------- */
8474 
8475 #ifndef GL_ARM_shader_framebuffer_fetch
8476 #define GL_ARM_shader_framebuffer_fetch 1
8477 
8478 #define GL_FETCH_PER_SAMPLE_ARM 0x8F65
8479 #define GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM 0x8F66
8480 
8481 #define GLEW_ARM_shader_framebuffer_fetch GLEW_GET_VAR(__GLEW_ARM_shader_framebuffer_fetch)
8482 
8483 #endif /* GL_ARM_shader_framebuffer_fetch */
8484 
8485 /* ------------- GL_ARM_shader_framebuffer_fetch_depth_stencil ------------- */
8486 
8487 #ifndef GL_ARM_shader_framebuffer_fetch_depth_stencil
8488 #define GL_ARM_shader_framebuffer_fetch_depth_stencil 1
8489 
8490 #define GLEW_ARM_shader_framebuffer_fetch_depth_stencil GLEW_GET_VAR(__GLEW_ARM_shader_framebuffer_fetch_depth_stencil)
8491 
8492 #endif /* GL_ARM_shader_framebuffer_fetch_depth_stencil */
8493 
8494 /* ------------------------- GL_ATIX_point_sprites ------------------------- */
8495 
8496 #ifndef GL_ATIX_point_sprites
8497 #define GL_ATIX_point_sprites 1
8498 
8499 #define GL_TEXTURE_POINT_MODE_ATIX 0x60B0
8500 #define GL_TEXTURE_POINT_ONE_COORD_ATIX 0x60B1
8501 #define GL_TEXTURE_POINT_SPRITE_ATIX 0x60B2
8502 #define GL_POINT_SPRITE_CULL_MODE_ATIX 0x60B3
8503 #define GL_POINT_SPRITE_CULL_CENTER_ATIX 0x60B4
8504 #define GL_POINT_SPRITE_CULL_CLIP_ATIX 0x60B5
8505 
8506 #define GLEW_ATIX_point_sprites GLEW_GET_VAR(__GLEW_ATIX_point_sprites)
8507 
8508 #endif /* GL_ATIX_point_sprites */
8509 
8510 /* ---------------------- GL_ATIX_texture_env_combine3 --------------------- */
8511 
8512 #ifndef GL_ATIX_texture_env_combine3
8513 #define GL_ATIX_texture_env_combine3 1
8514 
8515 #define GL_MODULATE_ADD_ATIX 0x8744
8516 #define GL_MODULATE_SIGNED_ADD_ATIX 0x8745
8517 #define GL_MODULATE_SUBTRACT_ATIX 0x8746
8518 
8519 #define GLEW_ATIX_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATIX_texture_env_combine3)
8520 
8521 #endif /* GL_ATIX_texture_env_combine3 */
8522 
8523 /* ----------------------- GL_ATIX_texture_env_route ----------------------- */
8524 
8525 #ifndef GL_ATIX_texture_env_route
8526 #define GL_ATIX_texture_env_route 1
8527 
8528 #define GL_SECONDARY_COLOR_ATIX 0x8747
8529 #define GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748
8530 #define GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749
8531 
8532 #define GLEW_ATIX_texture_env_route GLEW_GET_VAR(__GLEW_ATIX_texture_env_route)
8533 
8534 #endif /* GL_ATIX_texture_env_route */
8535 
8536 /* ---------------- GL_ATIX_vertex_shader_output_point_size ---------------- */
8537 
8538 #ifndef GL_ATIX_vertex_shader_output_point_size
8539 #define GL_ATIX_vertex_shader_output_point_size 1
8540 
8541 #define GL_OUTPUT_POINT_SIZE_ATIX 0x610E
8542 
8543 #define GLEW_ATIX_vertex_shader_output_point_size GLEW_GET_VAR(__GLEW_ATIX_vertex_shader_output_point_size)
8544 
8545 #endif /* GL_ATIX_vertex_shader_output_point_size */
8546 
8547 /* -------------------------- GL_ATI_draw_buffers -------------------------- */
8548 
8549 #ifndef GL_ATI_draw_buffers
8550 #define GL_ATI_draw_buffers 1
8551 
8552 #define GL_MAX_DRAW_BUFFERS_ATI 0x8824
8553 #define GL_DRAW_BUFFER0_ATI 0x8825
8554 #define GL_DRAW_BUFFER1_ATI 0x8826
8555 #define GL_DRAW_BUFFER2_ATI 0x8827
8556 #define GL_DRAW_BUFFER3_ATI 0x8828
8557 #define GL_DRAW_BUFFER4_ATI 0x8829
8558 #define GL_DRAW_BUFFER5_ATI 0x882A
8559 #define GL_DRAW_BUFFER6_ATI 0x882B
8560 #define GL_DRAW_BUFFER7_ATI 0x882C
8561 #define GL_DRAW_BUFFER8_ATI 0x882D
8562 #define GL_DRAW_BUFFER9_ATI 0x882E
8563 #define GL_DRAW_BUFFER10_ATI 0x882F
8564 #define GL_DRAW_BUFFER11_ATI 0x8830
8565 #define GL_DRAW_BUFFER12_ATI 0x8831
8566 #define GL_DRAW_BUFFER13_ATI 0x8832
8567 #define GL_DRAW_BUFFER14_ATI 0x8833
8568 #define GL_DRAW_BUFFER15_ATI 0x8834
8569 
8570 typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum* bufs);
8571 
8572 #define glDrawBuffersATI GLEW_GET_FUN(__glewDrawBuffersATI)
8573 
8574 #define GLEW_ATI_draw_buffers GLEW_GET_VAR(__GLEW_ATI_draw_buffers)
8575 
8576 #endif /* GL_ATI_draw_buffers */
8577 
8578 /* -------------------------- GL_ATI_element_array ------------------------- */
8579 
8580 #ifndef GL_ATI_element_array
8581 #define GL_ATI_element_array 1
8582 
8583 #define GL_ELEMENT_ARRAY_ATI 0x8768
8584 #define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769
8585 #define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A
8586 
8587 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count);
8588 typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count);
8589 typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERATIPROC) (GLenum type, const void *pointer);
8590 
8591 #define glDrawElementArrayATI GLEW_GET_FUN(__glewDrawElementArrayATI)
8592 #define glDrawRangeElementArrayATI GLEW_GET_FUN(__glewDrawRangeElementArrayATI)
8593 #define glElementPointerATI GLEW_GET_FUN(__glewElementPointerATI)
8594 
8595 #define GLEW_ATI_element_array GLEW_GET_VAR(__GLEW_ATI_element_array)
8596 
8597 #endif /* GL_ATI_element_array */
8598 
8599 /* ------------------------- GL_ATI_envmap_bumpmap ------------------------- */
8600 
8601 #ifndef GL_ATI_envmap_bumpmap
8602 #define GL_ATI_envmap_bumpmap 1
8603 
8604 #define GL_BUMP_ROT_MATRIX_ATI 0x8775
8605 #define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776
8606 #define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777
8607 #define GL_BUMP_TEX_UNITS_ATI 0x8778
8608 #define GL_DUDV_ATI 0x8779
8609 #define GL_DU8DV8_ATI 0x877A
8610 #define GL_BUMP_ENVMAP_ATI 0x877B
8611 #define GL_BUMP_TARGET_ATI 0x877C
8612 
8613 typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param);
8614 typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param);
8615 typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param);
8616 typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param);
8617 
8618 #define glGetTexBumpParameterfvATI GLEW_GET_FUN(__glewGetTexBumpParameterfvATI)
8619 #define glGetTexBumpParameterivATI GLEW_GET_FUN(__glewGetTexBumpParameterivATI)
8620 #define glTexBumpParameterfvATI GLEW_GET_FUN(__glewTexBumpParameterfvATI)
8621 #define glTexBumpParameterivATI GLEW_GET_FUN(__glewTexBumpParameterivATI)
8622 
8623 #define GLEW_ATI_envmap_bumpmap GLEW_GET_VAR(__GLEW_ATI_envmap_bumpmap)
8624 
8625 #endif /* GL_ATI_envmap_bumpmap */
8626 
8627 /* ------------------------- GL_ATI_fragment_shader ------------------------ */
8628 
8629 #ifndef GL_ATI_fragment_shader
8630 #define GL_ATI_fragment_shader 1
8631 
8632 #define GL_2X_BIT_ATI 0x00000001
8633 #define GL_RED_BIT_ATI 0x00000001
8634 #define GL_4X_BIT_ATI 0x00000002
8635 #define GL_COMP_BIT_ATI 0x00000002
8636 #define GL_GREEN_BIT_ATI 0x00000002
8637 #define GL_8X_BIT_ATI 0x00000004
8638 #define GL_BLUE_BIT_ATI 0x00000004
8639 #define GL_NEGATE_BIT_ATI 0x00000004
8640 #define GL_BIAS_BIT_ATI 0x00000008
8641 #define GL_HALF_BIT_ATI 0x00000008
8642 #define GL_QUARTER_BIT_ATI 0x00000010
8643 #define GL_EIGHTH_BIT_ATI 0x00000020
8644 #define GL_SATURATE_BIT_ATI 0x00000040
8645 #define GL_FRAGMENT_SHADER_ATI 0x8920
8646 #define GL_REG_0_ATI 0x8921
8647 #define GL_REG_1_ATI 0x8922
8648 #define GL_REG_2_ATI 0x8923
8649 #define GL_REG_3_ATI 0x8924
8650 #define GL_REG_4_ATI 0x8925
8651 #define GL_REG_5_ATI 0x8926
8652 #define GL_CON_0_ATI 0x8941
8653 #define GL_CON_1_ATI 0x8942
8654 #define GL_CON_2_ATI 0x8943
8655 #define GL_CON_3_ATI 0x8944
8656 #define GL_CON_4_ATI 0x8945
8657 #define GL_CON_5_ATI 0x8946
8658 #define GL_CON_6_ATI 0x8947
8659 #define GL_CON_7_ATI 0x8948
8660 #define GL_MOV_ATI 0x8961
8661 #define GL_ADD_ATI 0x8963
8662 #define GL_MUL_ATI 0x8964
8663 #define GL_SUB_ATI 0x8965
8664 #define GL_DOT3_ATI 0x8966
8665 #define GL_DOT4_ATI 0x8967
8666 #define GL_MAD_ATI 0x8968
8667 #define GL_LERP_ATI 0x8969
8668 #define GL_CND_ATI 0x896A
8669 #define GL_CND0_ATI 0x896B
8670 #define GL_DOT2_ADD_ATI 0x896C
8671 #define GL_SECONDARY_INTERPOLATOR_ATI 0x896D
8672 #define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
8673 #define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F
8674 #define GL_NUM_PASSES_ATI 0x8970
8675 #define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971
8676 #define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972
8677 #define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973
8678 #define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974
8679 #define GL_COLOR_ALPHA_PAIRING_ATI 0x8975
8680 #define GL_SWIZZLE_STR_ATI 0x8976
8681 #define GL_SWIZZLE_STQ_ATI 0x8977
8682 #define GL_SWIZZLE_STR_DR_ATI 0x8978
8683 #define GL_SWIZZLE_STQ_DQ_ATI 0x8979
8684 #define GL_SWIZZLE_STRQ_ATI 0x897A
8685 #define GL_SWIZZLE_STRQ_DQ_ATI 0x897B
8686 
8687 typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
8688 typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
8689 typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
8690 typedef void (GLAPIENTRY * PFNGLBEGINFRAGMENTSHADERATIPROC) (void);
8691 typedef void (GLAPIENTRY * PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id);
8692 typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
8693 typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
8694 typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
8695 typedef void (GLAPIENTRY * PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id);
8696 typedef void (GLAPIENTRY * PFNGLENDFRAGMENTSHADERATIPROC) (void);
8697 typedef GLuint (GLAPIENTRY * PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range);
8698 typedef void (GLAPIENTRY * PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle);
8699 typedef void (GLAPIENTRY * PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle);
8700 typedef void (GLAPIENTRY * PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat* value);
8701 
8702 #define glAlphaFragmentOp1ATI GLEW_GET_FUN(__glewAlphaFragmentOp1ATI)
8703 #define glAlphaFragmentOp2ATI GLEW_GET_FUN(__glewAlphaFragmentOp2ATI)
8704 #define glAlphaFragmentOp3ATI GLEW_GET_FUN(__glewAlphaFragmentOp3ATI)
8705 #define glBeginFragmentShaderATI GLEW_GET_FUN(__glewBeginFragmentShaderATI)
8706 #define glBindFragmentShaderATI GLEW_GET_FUN(__glewBindFragmentShaderATI)
8707 #define glColorFragmentOp1ATI GLEW_GET_FUN(__glewColorFragmentOp1ATI)
8708 #define glColorFragmentOp2ATI GLEW_GET_FUN(__glewColorFragmentOp2ATI)
8709 #define glColorFragmentOp3ATI GLEW_GET_FUN(__glewColorFragmentOp3ATI)
8710 #define glDeleteFragmentShaderATI GLEW_GET_FUN(__glewDeleteFragmentShaderATI)
8711 #define glEndFragmentShaderATI GLEW_GET_FUN(__glewEndFragmentShaderATI)
8712 #define glGenFragmentShadersATI GLEW_GET_FUN(__glewGenFragmentShadersATI)
8713 #define glPassTexCoordATI GLEW_GET_FUN(__glewPassTexCoordATI)
8714 #define glSampleMapATI GLEW_GET_FUN(__glewSampleMapATI)
8715 #define glSetFragmentShaderConstantATI GLEW_GET_FUN(__glewSetFragmentShaderConstantATI)
8716 
8717 #define GLEW_ATI_fragment_shader GLEW_GET_VAR(__GLEW_ATI_fragment_shader)
8718 
8719 #endif /* GL_ATI_fragment_shader */
8720 
8721 /* ------------------------ GL_ATI_map_object_buffer ----------------------- */
8722 
8723 #ifndef GL_ATI_map_object_buffer
8724 #define GL_ATI_map_object_buffer 1
8725 
8726 typedef void * (GLAPIENTRY * PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer);
8727 typedef void (GLAPIENTRY * PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer);
8728 
8729 #define glMapObjectBufferATI GLEW_GET_FUN(__glewMapObjectBufferATI)
8730 #define glUnmapObjectBufferATI GLEW_GET_FUN(__glewUnmapObjectBufferATI)
8731 
8732 #define GLEW_ATI_map_object_buffer GLEW_GET_VAR(__GLEW_ATI_map_object_buffer)
8733 
8734 #endif /* GL_ATI_map_object_buffer */
8735 
8736 /* ----------------------------- GL_ATI_meminfo ---------------------------- */
8737 
8738 #ifndef GL_ATI_meminfo
8739 #define GL_ATI_meminfo 1
8740 
8741 #define GL_VBO_FREE_MEMORY_ATI 0x87FB
8742 #define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC
8743 #define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD
8744 
8745 #define GLEW_ATI_meminfo GLEW_GET_VAR(__GLEW_ATI_meminfo)
8746 
8747 #endif /* GL_ATI_meminfo */
8748 
8749 /* -------------------------- GL_ATI_pn_triangles -------------------------- */
8750 
8751 #ifndef GL_ATI_pn_triangles
8752 #define GL_ATI_pn_triangles 1
8753 
8754 #define GL_PN_TRIANGLES_ATI 0x87F0
8755 #define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1
8756 #define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2
8757 #define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3
8758 #define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4
8759 #define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5
8760 #define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6
8761 #define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7
8762 #define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8
8763 
8764 typedef void (GLAPIENTRY * PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param);
8765 typedef void (GLAPIENTRY * PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param);
8766 
8767 #define glPNTrianglesfATI GLEW_GET_FUN(__glewPNTrianglesfATI)
8768 #define glPNTrianglesiATI GLEW_GET_FUN(__glewPNTrianglesiATI)
8769 
8770 #define GLEW_ATI_pn_triangles GLEW_GET_VAR(__GLEW_ATI_pn_triangles)
8771 
8772 #endif /* GL_ATI_pn_triangles */
8773 
8774 /* ------------------------ GL_ATI_separate_stencil ------------------------ */
8775 
8776 #ifndef GL_ATI_separate_stencil
8777 #define GL_ATI_separate_stencil 1
8778 
8779 #define GL_STENCIL_BACK_FUNC_ATI 0x8800
8780 #define GL_STENCIL_BACK_FAIL_ATI 0x8801
8781 #define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802
8782 #define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803
8783 
8784 typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
8785 typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
8786 
8787 #define glStencilFuncSeparateATI GLEW_GET_FUN(__glewStencilFuncSeparateATI)
8788 #define glStencilOpSeparateATI GLEW_GET_FUN(__glewStencilOpSeparateATI)
8789 
8790 #define GLEW_ATI_separate_stencil GLEW_GET_VAR(__GLEW_ATI_separate_stencil)
8791 
8792 #endif /* GL_ATI_separate_stencil */
8793 
8794 /* ----------------------- GL_ATI_shader_texture_lod ----------------------- */
8795 
8796 #ifndef GL_ATI_shader_texture_lod
8797 #define GL_ATI_shader_texture_lod 1
8798 
8799 #define GLEW_ATI_shader_texture_lod GLEW_GET_VAR(__GLEW_ATI_shader_texture_lod)
8800 
8801 #endif /* GL_ATI_shader_texture_lod */
8802 
8803 /* ---------------------- GL_ATI_text_fragment_shader ---------------------- */
8804 
8805 #ifndef GL_ATI_text_fragment_shader
8806 #define GL_ATI_text_fragment_shader 1
8807 
8808 #define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200
8809 
8810 #define GLEW_ATI_text_fragment_shader GLEW_GET_VAR(__GLEW_ATI_text_fragment_shader)
8811 
8812 #endif /* GL_ATI_text_fragment_shader */
8813 
8814 /* --------------------- GL_ATI_texture_compression_3dc -------------------- */
8815 
8816 #ifndef GL_ATI_texture_compression_3dc
8817 #define GL_ATI_texture_compression_3dc 1
8818 
8819 #define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837
8820 
8821 #define GLEW_ATI_texture_compression_3dc GLEW_GET_VAR(__GLEW_ATI_texture_compression_3dc)
8822 
8823 #endif /* GL_ATI_texture_compression_3dc */
8824 
8825 /* ---------------------- GL_ATI_texture_env_combine3 ---------------------- */
8826 
8827 #ifndef GL_ATI_texture_env_combine3
8828 #define GL_ATI_texture_env_combine3 1
8829 
8830 #define GL_MODULATE_ADD_ATI 0x8744
8831 #define GL_MODULATE_SIGNED_ADD_ATI 0x8745
8832 #define GL_MODULATE_SUBTRACT_ATI 0x8746
8833 
8834 #define GLEW_ATI_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATI_texture_env_combine3)
8835 
8836 #endif /* GL_ATI_texture_env_combine3 */
8837 
8838 /* -------------------------- GL_ATI_texture_float ------------------------- */
8839 
8840 #ifndef GL_ATI_texture_float
8841 #define GL_ATI_texture_float 1
8842 
8843 #define GL_RGBA_FLOAT32_ATI 0x8814
8844 #define GL_RGB_FLOAT32_ATI 0x8815
8845 #define GL_ALPHA_FLOAT32_ATI 0x8816
8846 #define GL_INTENSITY_FLOAT32_ATI 0x8817
8847 #define GL_LUMINANCE_FLOAT32_ATI 0x8818
8848 #define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819
8849 #define GL_RGBA_FLOAT16_ATI 0x881A
8850 #define GL_RGB_FLOAT16_ATI 0x881B
8851 #define GL_ALPHA_FLOAT16_ATI 0x881C
8852 #define GL_INTENSITY_FLOAT16_ATI 0x881D
8853 #define GL_LUMINANCE_FLOAT16_ATI 0x881E
8854 #define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F
8855 
8856 #define GLEW_ATI_texture_float GLEW_GET_VAR(__GLEW_ATI_texture_float)
8857 
8858 #endif /* GL_ATI_texture_float */
8859 
8860 /* ----------------------- GL_ATI_texture_mirror_once ---------------------- */
8861 
8862 #ifndef GL_ATI_texture_mirror_once
8863 #define GL_ATI_texture_mirror_once 1
8864 
8865 #define GL_MIRROR_CLAMP_ATI 0x8742
8866 #define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743
8867 
8868 #define GLEW_ATI_texture_mirror_once GLEW_GET_VAR(__GLEW_ATI_texture_mirror_once)
8869 
8870 #endif /* GL_ATI_texture_mirror_once */
8871 
8872 /* ----------------------- GL_ATI_vertex_array_object ---------------------- */
8873 
8874 #ifndef GL_ATI_vertex_array_object
8875 #define GL_ATI_vertex_array_object 1
8876 
8877 #define GL_STATIC_ATI 0x8760
8878 #define GL_DYNAMIC_ATI 0x8761
8879 #define GL_PRESERVE_ATI 0x8762
8880 #define GL_DISCARD_ATI 0x8763
8881 #define GL_OBJECT_BUFFER_SIZE_ATI 0x8764
8882 #define GL_OBJECT_BUFFER_USAGE_ATI 0x8765
8883 #define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766
8884 #define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767
8885 
8886 typedef void (GLAPIENTRY * PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
8887 typedef void (GLAPIENTRY * PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer);
8888 typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat* params);
8889 typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint* params);
8890 typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat* params);
8891 typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint* params);
8892 typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat* params);
8893 typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint* params);
8894 typedef GLboolean (GLAPIENTRY * PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer);
8895 typedef GLuint (GLAPIENTRY * PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const void *pointer, GLenum usage);
8896 typedef void (GLAPIENTRY * PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve);
8897 typedef void (GLAPIENTRY * PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
8898 
8899 #define glArrayObjectATI GLEW_GET_FUN(__glewArrayObjectATI)
8900 #define glFreeObjectBufferATI GLEW_GET_FUN(__glewFreeObjectBufferATI)
8901 #define glGetArrayObjectfvATI GLEW_GET_FUN(__glewGetArrayObjectfvATI)
8902 #define glGetArrayObjectivATI GLEW_GET_FUN(__glewGetArrayObjectivATI)
8903 #define glGetObjectBufferfvATI GLEW_GET_FUN(__glewGetObjectBufferfvATI)
8904 #define glGetObjectBufferivATI GLEW_GET_FUN(__glewGetObjectBufferivATI)
8905 #define glGetVariantArrayObjectfvATI GLEW_GET_FUN(__glewGetVariantArrayObjectfvATI)
8906 #define glGetVariantArrayObjectivATI GLEW_GET_FUN(__glewGetVariantArrayObjectivATI)
8907 #define glIsObjectBufferATI GLEW_GET_FUN(__glewIsObjectBufferATI)
8908 #define glNewObjectBufferATI GLEW_GET_FUN(__glewNewObjectBufferATI)
8909 #define glUpdateObjectBufferATI GLEW_GET_FUN(__glewUpdateObjectBufferATI)
8910 #define glVariantArrayObjectATI GLEW_GET_FUN(__glewVariantArrayObjectATI)
8911 
8912 #define GLEW_ATI_vertex_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_array_object)
8913 
8914 #endif /* GL_ATI_vertex_array_object */
8915 
8916 /* ------------------- GL_ATI_vertex_attrib_array_object ------------------- */
8917 
8918 #ifndef GL_ATI_vertex_attrib_array_object
8919 #define GL_ATI_vertex_attrib_array_object 1
8920 
8921 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat* params);
8922 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint* params);
8923 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
8924 
8925 #define glGetVertexAttribArrayObjectfvATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectfvATI)
8926 #define glGetVertexAttribArrayObjectivATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectivATI)
8927 #define glVertexAttribArrayObjectATI GLEW_GET_FUN(__glewVertexAttribArrayObjectATI)
8928 
8929 #define GLEW_ATI_vertex_attrib_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_attrib_array_object)
8930 
8931 #endif /* GL_ATI_vertex_attrib_array_object */
8932 
8933 /* ------------------------- GL_ATI_vertex_streams ------------------------- */
8934 
8935 #ifndef GL_ATI_vertex_streams
8936 #define GL_ATI_vertex_streams 1
8937 
8938 #define GL_MAX_VERTEX_STREAMS_ATI 0x876B
8939 #define GL_VERTEX_SOURCE_ATI 0x876C
8940 #define GL_VERTEX_STREAM0_ATI 0x876D
8941 #define GL_VERTEX_STREAM1_ATI 0x876E
8942 #define GL_VERTEX_STREAM2_ATI 0x876F
8943 #define GL_VERTEX_STREAM3_ATI 0x8770
8944 #define GL_VERTEX_STREAM4_ATI 0x8771
8945 #define GL_VERTEX_STREAM5_ATI 0x8772
8946 #define GL_VERTEX_STREAM6_ATI 0x8773
8947 #define GL_VERTEX_STREAM7_ATI 0x8774
8948 
8949 typedef void (GLAPIENTRY * PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream);
8950 typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte x, GLbyte y, GLbyte z);
8951 typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords);
8952 typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
8953 typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
8954 typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
8955 typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
8956 typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z);
8957 typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
8958 typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);
8959 typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
8960 typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param);
8961 typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param);
8962 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x);
8963 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords);
8964 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x);
8965 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords);
8966 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x);
8967 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords);
8968 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x);
8969 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords);
8970 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y);
8971 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords);
8972 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y);
8973 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords);
8974 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y);
8975 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords);
8976 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y);
8977 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords);
8978 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
8979 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
8980 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
8981 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
8982 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z);
8983 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
8984 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);
8985 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
8986 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
8987 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords);
8988 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
8989 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords);
8990 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w);
8991 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords);
8992 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
8993 typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords);
8994 
8995 #define glClientActiveVertexStreamATI GLEW_GET_FUN(__glewClientActiveVertexStreamATI)
8996 #define glNormalStream3bATI GLEW_GET_FUN(__glewNormalStream3bATI)
8997 #define glNormalStream3bvATI GLEW_GET_FUN(__glewNormalStream3bvATI)
8998 #define glNormalStream3dATI GLEW_GET_FUN(__glewNormalStream3dATI)
8999 #define glNormalStream3dvATI GLEW_GET_FUN(__glewNormalStream3dvATI)
9000 #define glNormalStream3fATI GLEW_GET_FUN(__glewNormalStream3fATI)
9001 #define glNormalStream3fvATI GLEW_GET_FUN(__glewNormalStream3fvATI)
9002 #define glNormalStream3iATI GLEW_GET_FUN(__glewNormalStream3iATI)
9003 #define glNormalStream3ivATI GLEW_GET_FUN(__glewNormalStream3ivATI)
9004 #define glNormalStream3sATI GLEW_GET_FUN(__glewNormalStream3sATI)
9005 #define glNormalStream3svATI GLEW_GET_FUN(__glewNormalStream3svATI)
9006 #define glVertexBlendEnvfATI GLEW_GET_FUN(__glewVertexBlendEnvfATI)
9007 #define glVertexBlendEnviATI GLEW_GET_FUN(__glewVertexBlendEnviATI)
9008 #define glVertexStream1dATI GLEW_GET_FUN(__glewVertexStream1dATI)
9009 #define glVertexStream1dvATI GLEW_GET_FUN(__glewVertexStream1dvATI)
9010 #define glVertexStream1fATI GLEW_GET_FUN(__glewVertexStream1fATI)
9011 #define glVertexStream1fvATI GLEW_GET_FUN(__glewVertexStream1fvATI)
9012 #define glVertexStream1iATI GLEW_GET_FUN(__glewVertexStream1iATI)
9013 #define glVertexStream1ivATI GLEW_GET_FUN(__glewVertexStream1ivATI)
9014 #define glVertexStream1sATI GLEW_GET_FUN(__glewVertexStream1sATI)
9015 #define glVertexStream1svATI GLEW_GET_FUN(__glewVertexStream1svATI)
9016 #define glVertexStream2dATI GLEW_GET_FUN(__glewVertexStream2dATI)
9017 #define glVertexStream2dvATI GLEW_GET_FUN(__glewVertexStream2dvATI)
9018 #define glVertexStream2fATI GLEW_GET_FUN(__glewVertexStream2fATI)
9019 #define glVertexStream2fvATI GLEW_GET_FUN(__glewVertexStream2fvATI)
9020 #define glVertexStream2iATI GLEW_GET_FUN(__glewVertexStream2iATI)
9021 #define glVertexStream2ivATI GLEW_GET_FUN(__glewVertexStream2ivATI)
9022 #define glVertexStream2sATI GLEW_GET_FUN(__glewVertexStream2sATI)
9023 #define glVertexStream2svATI GLEW_GET_FUN(__glewVertexStream2svATI)
9024 #define glVertexStream3dATI GLEW_GET_FUN(__glewVertexStream3dATI)
9025 #define glVertexStream3dvATI GLEW_GET_FUN(__glewVertexStream3dvATI)
9026 #define glVertexStream3fATI GLEW_GET_FUN(__glewVertexStream3fATI)
9027 #define glVertexStream3fvATI GLEW_GET_FUN(__glewVertexStream3fvATI)
9028 #define glVertexStream3iATI GLEW_GET_FUN(__glewVertexStream3iATI)
9029 #define glVertexStream3ivATI GLEW_GET_FUN(__glewVertexStream3ivATI)
9030 #define glVertexStream3sATI GLEW_GET_FUN(__glewVertexStream3sATI)
9031 #define glVertexStream3svATI GLEW_GET_FUN(__glewVertexStream3svATI)
9032 #define glVertexStream4dATI GLEW_GET_FUN(__glewVertexStream4dATI)
9033 #define glVertexStream4dvATI GLEW_GET_FUN(__glewVertexStream4dvATI)
9034 #define glVertexStream4fATI GLEW_GET_FUN(__glewVertexStream4fATI)
9035 #define glVertexStream4fvATI GLEW_GET_FUN(__glewVertexStream4fvATI)
9036 #define glVertexStream4iATI GLEW_GET_FUN(__glewVertexStream4iATI)
9037 #define glVertexStream4ivATI GLEW_GET_FUN(__glewVertexStream4ivATI)
9038 #define glVertexStream4sATI GLEW_GET_FUN(__glewVertexStream4sATI)
9039 #define glVertexStream4svATI GLEW_GET_FUN(__glewVertexStream4svATI)
9040 
9041 #define GLEW_ATI_vertex_streams GLEW_GET_VAR(__GLEW_ATI_vertex_streams)
9042 
9043 #endif /* GL_ATI_vertex_streams */
9044 
9045 /* -------------------- GL_EGL_KHR_context_flush_control ------------------- */
9046 
9047 #ifndef GL_EGL_KHR_context_flush_control
9048 #define GL_EGL_KHR_context_flush_control 1
9049 
9050 #define GLEW_EGL_KHR_context_flush_control GLEW_GET_VAR(__GLEW_EGL_KHR_context_flush_control)
9051 
9052 #endif /* GL_EGL_KHR_context_flush_control */
9053 
9054 /* ---------------- GL_EGL_NV_robustness_video_memory_purge ---------------- */
9055 
9056 #ifndef GL_EGL_NV_robustness_video_memory_purge
9057 #define GL_EGL_NV_robustness_video_memory_purge 1
9058 
9059 #define GL_EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C
9060 #define GL_PURGED_CONTEXT_RESET_NV 0x92BB
9061 
9062 #define GLEW_EGL_NV_robustness_video_memory_purge GLEW_GET_VAR(__GLEW_EGL_NV_robustness_video_memory_purge)
9063 
9064 #endif /* GL_EGL_NV_robustness_video_memory_purge */
9065 
9066 /* --------------------------- GL_EXT_422_pixels --------------------------- */
9067 
9068 #ifndef GL_EXT_422_pixels
9069 #define GL_EXT_422_pixels 1
9070 
9071 #define GL_422_EXT 0x80CC
9072 #define GL_422_REV_EXT 0x80CD
9073 #define GL_422_AVERAGE_EXT 0x80CE
9074 #define GL_422_REV_AVERAGE_EXT 0x80CF
9075 
9076 #define GLEW_EXT_422_pixels GLEW_GET_VAR(__GLEW_EXT_422_pixels)
9077 
9078 #endif /* GL_EXT_422_pixels */
9079 
9080 /* ---------------------------- GL_EXT_Cg_shader --------------------------- */
9081 
9082 #ifndef GL_EXT_Cg_shader
9083 #define GL_EXT_Cg_shader 1
9084 
9085 #define GL_CG_VERTEX_SHADER_EXT 0x890E
9086 #define GL_CG_FRAGMENT_SHADER_EXT 0x890F
9087 
9088 #define GLEW_EXT_Cg_shader GLEW_GET_VAR(__GLEW_EXT_Cg_shader)
9089 
9090 #endif /* GL_EXT_Cg_shader */
9091 
9092 /* ------------------------- GL_EXT_EGL_image_array ------------------------ */
9093 
9094 #ifndef GL_EXT_EGL_image_array
9095 #define GL_EXT_EGL_image_array 1
9096 
9097 #define GLEW_EXT_EGL_image_array GLEW_GET_VAR(__GLEW_EXT_EGL_image_array)
9098 
9099 #endif /* GL_EXT_EGL_image_array */
9100 
9101 /* --------------------------- GL_EXT_YUV_target --------------------------- */
9102 
9103 #ifndef GL_EXT_YUV_target
9104 #define GL_EXT_YUV_target 1
9105 
9106 #define GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT 0x8BE7
9107 
9108 #define GLEW_EXT_YUV_target GLEW_GET_VAR(__GLEW_EXT_YUV_target)
9109 
9110 #endif /* GL_EXT_YUV_target */
9111 
9112 /* ------------------------------ GL_EXT_abgr ------------------------------ */
9113 
9114 #ifndef GL_EXT_abgr
9115 #define GL_EXT_abgr 1
9116 
9117 #define GL_ABGR_EXT 0x8000
9118 
9119 #define GLEW_EXT_abgr GLEW_GET_VAR(__GLEW_EXT_abgr)
9120 
9121 #endif /* GL_EXT_abgr */
9122 
9123 /* -------------------------- GL_EXT_base_instance ------------------------- */
9124 
9125 #ifndef GL_EXT_base_instance
9126 #define GL_EXT_base_instance 1
9127 
9128 typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
9129 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
9130 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
9131 
9132 #define glDrawArraysInstancedBaseInstanceEXT GLEW_GET_FUN(__glewDrawArraysInstancedBaseInstanceEXT)
9133 #define glDrawElementsInstancedBaseInstanceEXT GLEW_GET_FUN(__glewDrawElementsInstancedBaseInstanceEXT)
9134 #define glDrawElementsInstancedBaseVertexBaseInstanceEXT GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexBaseInstanceEXT)
9135 
9136 #define GLEW_EXT_base_instance GLEW_GET_VAR(__GLEW_EXT_base_instance)
9137 
9138 #endif /* GL_EXT_base_instance */
9139 
9140 /* ------------------------------ GL_EXT_bgra ------------------------------ */
9141 
9142 #ifndef GL_EXT_bgra
9143 #define GL_EXT_bgra 1
9144 
9145 #define GL_BGR_EXT 0x80E0
9146 #define GL_BGRA_EXT 0x80E1
9147 
9148 #define GLEW_EXT_bgra GLEW_GET_VAR(__GLEW_EXT_bgra)
9149 
9150 #endif /* GL_EXT_bgra */
9151 
9152 /* ------------------------ GL_EXT_bindable_uniform ------------------------ */
9153 
9154 #ifndef GL_EXT_bindable_uniform
9155 #define GL_EXT_bindable_uniform 1
9156 
9157 #define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2
9158 #define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3
9159 #define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4
9160 #define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED
9161 #define GL_UNIFORM_BUFFER_EXT 0x8DEE
9162 #define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF
9163 
9164 typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location);
9165 typedef GLintptr (GLAPIENTRY * PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location);
9166 typedef void (GLAPIENTRY * PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer);
9167 
9168 #define glGetUniformBufferSizeEXT GLEW_GET_FUN(__glewGetUniformBufferSizeEXT)
9169 #define glGetUniformOffsetEXT GLEW_GET_FUN(__glewGetUniformOffsetEXT)
9170 #define glUniformBufferEXT GLEW_GET_FUN(__glewUniformBufferEXT)
9171 
9172 #define GLEW_EXT_bindable_uniform GLEW_GET_VAR(__GLEW_EXT_bindable_uniform)
9173 
9174 #endif /* GL_EXT_bindable_uniform */
9175 
9176 /* --------------------------- GL_EXT_blend_color -------------------------- */
9177 
9178 #ifndef GL_EXT_blend_color
9179 #define GL_EXT_blend_color 1
9180 
9181 #define GL_CONSTANT_COLOR_EXT 0x8001
9182 #define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002
9183 #define GL_CONSTANT_ALPHA_EXT 0x8003
9184 #define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004
9185 #define GL_BLEND_COLOR_EXT 0x8005
9186 
9187 typedef void (GLAPIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
9188 
9189 #define glBlendColorEXT GLEW_GET_FUN(__glewBlendColorEXT)
9190 
9191 #define GLEW_EXT_blend_color GLEW_GET_VAR(__GLEW_EXT_blend_color)
9192 
9193 #endif /* GL_EXT_blend_color */
9194 
9195 /* --------------------- GL_EXT_blend_equation_separate -------------------- */
9196 
9197 #ifndef GL_EXT_blend_equation_separate
9198 #define GL_EXT_blend_equation_separate 1
9199 
9200 #define GL_BLEND_EQUATION_RGB_EXT 0x8009
9201 #define GL_BLEND_EQUATION_ALPHA_EXT 0x883D
9202 
9203 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha);
9204 
9205 #define glBlendEquationSeparateEXT GLEW_GET_FUN(__glewBlendEquationSeparateEXT)
9206 
9207 #define GLEW_EXT_blend_equation_separate GLEW_GET_VAR(__GLEW_EXT_blend_equation_separate)
9208 
9209 #endif /* GL_EXT_blend_equation_separate */
9210 
9211 /* ----------------------- GL_EXT_blend_func_extended ---------------------- */
9212 
9213 #ifndef GL_EXT_blend_func_extended
9214 #define GL_EXT_blend_func_extended 1
9215 
9216 #define GL_SRC_ALPHA_SATURATE_EXT 0x0308
9217 #define GL_SRC1_ALPHA_EXT 0x8589
9218 #define GL_SRC1_COLOR_EXT 0x88F9
9219 #define GL_ONE_MINUS_SRC1_COLOR_EXT 0x88FA
9220 #define GL_ONE_MINUS_SRC1_ALPHA_EXT 0x88FB
9221 #define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT 0x88FC
9222 #define GL_LOCATION_INDEX_EXT 0x930F
9223 
9224 typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar * name);
9225 typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXEXTPROC) (GLuint program, const GLchar * name);
9226 typedef GLint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC) (GLuint program, GLenum programInterface, const GLchar* name);
9227 
9228 #define glBindFragDataLocationIndexedEXT GLEW_GET_FUN(__glewBindFragDataLocationIndexedEXT)
9229 #define glGetFragDataIndexEXT GLEW_GET_FUN(__glewGetFragDataIndexEXT)
9230 #define glGetProgramResourceLocationIndexEXT GLEW_GET_FUN(__glewGetProgramResourceLocationIndexEXT)
9231 
9232 #define GLEW_EXT_blend_func_extended GLEW_GET_VAR(__GLEW_EXT_blend_func_extended)
9233 
9234 #endif /* GL_EXT_blend_func_extended */
9235 
9236 /* ----------------------- GL_EXT_blend_func_separate ---------------------- */
9237 
9238 #ifndef GL_EXT_blend_func_separate
9239 #define GL_EXT_blend_func_separate 1
9240 
9241 #define GL_BLEND_DST_RGB_EXT 0x80C8
9242 #define GL_BLEND_SRC_RGB_EXT 0x80C9
9243 #define GL_BLEND_DST_ALPHA_EXT 0x80CA
9244 #define GL_BLEND_SRC_ALPHA_EXT 0x80CB
9245 
9246 typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
9247 
9248 #define glBlendFuncSeparateEXT GLEW_GET_FUN(__glewBlendFuncSeparateEXT)
9249 
9250 #define GLEW_EXT_blend_func_separate GLEW_GET_VAR(__GLEW_EXT_blend_func_separate)
9251 
9252 #endif /* GL_EXT_blend_func_separate */
9253 
9254 /* ------------------------- GL_EXT_blend_logic_op ------------------------- */
9255 
9256 #ifndef GL_EXT_blend_logic_op
9257 #define GL_EXT_blend_logic_op 1
9258 
9259 #define GLEW_EXT_blend_logic_op GLEW_GET_VAR(__GLEW_EXT_blend_logic_op)
9260 
9261 #endif /* GL_EXT_blend_logic_op */
9262 
9263 /* -------------------------- GL_EXT_blend_minmax -------------------------- */
9264 
9265 #ifndef GL_EXT_blend_minmax
9266 #define GL_EXT_blend_minmax 1
9267 
9268 #define GL_FUNC_ADD_EXT 0x8006
9269 #define GL_MIN_EXT 0x8007
9270 #define GL_MAX_EXT 0x8008
9271 #define GL_BLEND_EQUATION_EXT 0x8009
9272 
9273 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode);
9274 
9275 #define glBlendEquationEXT GLEW_GET_FUN(__glewBlendEquationEXT)
9276 
9277 #define GLEW_EXT_blend_minmax GLEW_GET_VAR(__GLEW_EXT_blend_minmax)
9278 
9279 #endif /* GL_EXT_blend_minmax */
9280 
9281 /* ------------------------- GL_EXT_blend_subtract ------------------------- */
9282 
9283 #ifndef GL_EXT_blend_subtract
9284 #define GL_EXT_blend_subtract 1
9285 
9286 #define GL_FUNC_SUBTRACT_EXT 0x800A
9287 #define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B
9288 
9289 #define GLEW_EXT_blend_subtract GLEW_GET_VAR(__GLEW_EXT_blend_subtract)
9290 
9291 #endif /* GL_EXT_blend_subtract */
9292 
9293 /* ------------------------- GL_EXT_buffer_storage ------------------------- */
9294 
9295 #ifndef GL_EXT_buffer_storage
9296 #define GL_EXT_buffer_storage 1
9297 
9298 #define GL_MAP_READ_BIT 0x0001
9299 #define GL_MAP_WRITE_BIT 0x0002
9300 #define GL_MAP_PERSISTENT_BIT_EXT 0x0040
9301 #define GL_MAP_COHERENT_BIT_EXT 0x0080
9302 #define GL_DYNAMIC_STORAGE_BIT_EXT 0x0100
9303 #define GL_CLIENT_STORAGE_BIT_EXT 0x0200
9304 #define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT 0x00004000
9305 #define GL_BUFFER_IMMUTABLE_STORAGE_EXT 0x821F
9306 #define GL_BUFFER_STORAGE_FLAGS_EXT 0x8220
9307 
9308 typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEEXTPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
9309 typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
9310 
9311 #define glBufferStorageEXT GLEW_GET_FUN(__glewBufferStorageEXT)
9312 #define glNamedBufferStorageEXT GLEW_GET_FUN(__glewNamedBufferStorageEXT)
9313 
9314 #define GLEW_EXT_buffer_storage GLEW_GET_VAR(__GLEW_EXT_buffer_storage)
9315 
9316 #endif /* GL_EXT_buffer_storage */
9317 
9318 /* -------------------------- GL_EXT_clear_texture ------------------------- */
9319 
9320 #ifndef GL_EXT_clear_texture
9321 #define GL_EXT_clear_texture 1
9322 
9323 typedef void (GLAPIENTRY * PFNGLCLEARTEXIMAGEEXTPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
9324 typedef void (GLAPIENTRY * PFNGLCLEARTEXSUBIMAGEEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
9325 
9326 #define glClearTexImageEXT GLEW_GET_FUN(__glewClearTexImageEXT)
9327 #define glClearTexSubImageEXT GLEW_GET_FUN(__glewClearTexSubImageEXT)
9328 
9329 #define GLEW_EXT_clear_texture GLEW_GET_VAR(__GLEW_EXT_clear_texture)
9330 
9331 #endif /* GL_EXT_clear_texture */
9332 
9333 /* ----------------------- GL_EXT_clip_cull_distance ----------------------- */
9334 
9335 #ifndef GL_EXT_clip_cull_distance
9336 #define GL_EXT_clip_cull_distance 1
9337 
9338 #define GL_MAX_CLIP_DISTANCES_EXT 0x0D32
9339 #define GL_CLIP_DISTANCE0_EXT 0x3000
9340 #define GL_CLIP_DISTANCE1_EXT 0x3001
9341 #define GL_CLIP_DISTANCE2_EXT 0x3002
9342 #define GL_CLIP_DISTANCE3_EXT 0x3003
9343 #define GL_CLIP_DISTANCE4_EXT 0x3004
9344 #define GL_CLIP_DISTANCE5_EXT 0x3005
9345 #define GL_CLIP_DISTANCE6_EXT 0x3006
9346 #define GL_CLIP_DISTANCE7_EXT 0x3007
9347 #define GL_MAX_CULL_DISTANCES_EXT 0x82F9
9348 #define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT 0x82FA
9349 
9350 #define GLEW_EXT_clip_cull_distance GLEW_GET_VAR(__GLEW_EXT_clip_cull_distance)
9351 
9352 #endif /* GL_EXT_clip_cull_distance */
9353 
9354 /* ------------------------ GL_EXT_clip_volume_hint ------------------------ */
9355 
9356 #ifndef GL_EXT_clip_volume_hint
9357 #define GL_EXT_clip_volume_hint 1
9358 
9359 #define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0
9360 
9361 #define GLEW_EXT_clip_volume_hint GLEW_GET_VAR(__GLEW_EXT_clip_volume_hint)
9362 
9363 #endif /* GL_EXT_clip_volume_hint */
9364 
9365 /* ------------------------------ GL_EXT_cmyka ----------------------------- */
9366 
9367 #ifndef GL_EXT_cmyka
9368 #define GL_EXT_cmyka 1
9369 
9370 #define GL_CMYK_EXT 0x800C
9371 #define GL_CMYKA_EXT 0x800D
9372 #define GL_PACK_CMYK_HINT_EXT 0x800E
9373 #define GL_UNPACK_CMYK_HINT_EXT 0x800F
9374 
9375 #define GLEW_EXT_cmyka GLEW_GET_VAR(__GLEW_EXT_cmyka)
9376 
9377 #endif /* GL_EXT_cmyka */
9378 
9379 /* ----------------------- GL_EXT_color_buffer_float ----------------------- */
9380 
9381 #ifndef GL_EXT_color_buffer_float
9382 #define GL_EXT_color_buffer_float 1
9383 
9384 #define GLEW_EXT_color_buffer_float GLEW_GET_VAR(__GLEW_EXT_color_buffer_float)
9385 
9386 #endif /* GL_EXT_color_buffer_float */
9387 
9388 /* --------------------- GL_EXT_color_buffer_half_float -------------------- */
9389 
9390 #ifndef GL_EXT_color_buffer_half_float
9391 #define GL_EXT_color_buffer_half_float 1
9392 
9393 #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211
9394 #define GL_R16F_EXT 0x822D
9395 #define GL_RG16F_EXT 0x822F
9396 #define GL_RGBA16F_EXT 0x881A
9397 #define GL_RGB16F_EXT 0x881B
9398 #define GL_UNSIGNED_NORMALIZED_EXT 0x8C17
9399 
9400 #define GLEW_EXT_color_buffer_half_float GLEW_GET_VAR(__GLEW_EXT_color_buffer_half_float)
9401 
9402 #endif /* GL_EXT_color_buffer_half_float */
9403 
9404 /* ------------------------- GL_EXT_color_subtable ------------------------- */
9405 
9406 #ifndef GL_EXT_color_subtable
9407 #define GL_EXT_color_subtable 1
9408 
9409 typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data);
9410 typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
9411 
9412 #define glColorSubTableEXT GLEW_GET_FUN(__glewColorSubTableEXT)
9413 #define glCopyColorSubTableEXT GLEW_GET_FUN(__glewCopyColorSubTableEXT)
9414 
9415 #define GLEW_EXT_color_subtable GLEW_GET_VAR(__GLEW_EXT_color_subtable)
9416 
9417 #endif /* GL_EXT_color_subtable */
9418 
9419 /* ---------------------- GL_EXT_compiled_vertex_array --------------------- */
9420 
9421 #ifndef GL_EXT_compiled_vertex_array
9422 #define GL_EXT_compiled_vertex_array 1
9423 
9424 #define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8
9425 #define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9
9426 
9427 typedef void (GLAPIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count);
9428 typedef void (GLAPIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void);
9429 
9430 #define glLockArraysEXT GLEW_GET_FUN(__glewLockArraysEXT)
9431 #define glUnlockArraysEXT GLEW_GET_FUN(__glewUnlockArraysEXT)
9432 
9433 #define GLEW_EXT_compiled_vertex_array GLEW_GET_VAR(__GLEW_EXT_compiled_vertex_array)
9434 
9435 #endif /* GL_EXT_compiled_vertex_array */
9436 
9437 /* ---------------- GL_EXT_compressed_ETC1_RGB8_sub_texture ---------------- */
9438 
9439 #ifndef GL_EXT_compressed_ETC1_RGB8_sub_texture
9440 #define GL_EXT_compressed_ETC1_RGB8_sub_texture 1
9441 
9442 #define GLEW_EXT_compressed_ETC1_RGB8_sub_texture GLEW_GET_VAR(__GLEW_EXT_compressed_ETC1_RGB8_sub_texture)
9443 
9444 #endif /* GL_EXT_compressed_ETC1_RGB8_sub_texture */
9445 
9446 /* ----------------------- GL_EXT_conservative_depth ----------------------- */
9447 
9448 #ifndef GL_EXT_conservative_depth
9449 #define GL_EXT_conservative_depth 1
9450 
9451 #define GLEW_EXT_conservative_depth GLEW_GET_VAR(__GLEW_EXT_conservative_depth)
9452 
9453 #endif /* GL_EXT_conservative_depth */
9454 
9455 /* --------------------------- GL_EXT_convolution -------------------------- */
9456 
9457 #ifndef GL_EXT_convolution
9458 #define GL_EXT_convolution 1
9459 
9460 #define GL_CONVOLUTION_1D_EXT 0x8010
9461 #define GL_CONVOLUTION_2D_EXT 0x8011
9462 #define GL_SEPARABLE_2D_EXT 0x8012
9463 #define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013
9464 #define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014
9465 #define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015
9466 #define GL_REDUCE_EXT 0x8016
9467 #define GL_CONVOLUTION_FORMAT_EXT 0x8017
9468 #define GL_CONVOLUTION_WIDTH_EXT 0x8018
9469 #define GL_CONVOLUTION_HEIGHT_EXT 0x8019
9470 #define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A
9471 #define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B
9472 #define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C
9473 #define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D
9474 #define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E
9475 #define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F
9476 #define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020
9477 #define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021
9478 #define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022
9479 #define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023
9480 
9481 typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image);
9482 typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image);
9483 typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param);
9484 typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params);
9485 typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param);
9486 typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params);
9487 typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
9488 typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
9489 typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *image);
9490 typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params);
9491 typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params);
9492 typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span);
9493 typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column);
9494 
9495 #define glConvolutionFilter1DEXT GLEW_GET_FUN(__glewConvolutionFilter1DEXT)
9496 #define glConvolutionFilter2DEXT GLEW_GET_FUN(__glewConvolutionFilter2DEXT)
9497 #define glConvolutionParameterfEXT GLEW_GET_FUN(__glewConvolutionParameterfEXT)
9498 #define glConvolutionParameterfvEXT GLEW_GET_FUN(__glewConvolutionParameterfvEXT)
9499 #define glConvolutionParameteriEXT GLEW_GET_FUN(__glewConvolutionParameteriEXT)
9500 #define glConvolutionParameterivEXT GLEW_GET_FUN(__glewConvolutionParameterivEXT)
9501 #define glCopyConvolutionFilter1DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter1DEXT)
9502 #define glCopyConvolutionFilter2DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter2DEXT)
9503 #define glGetConvolutionFilterEXT GLEW_GET_FUN(__glewGetConvolutionFilterEXT)
9504 #define glGetConvolutionParameterfvEXT GLEW_GET_FUN(__glewGetConvolutionParameterfvEXT)
9505 #define glGetConvolutionParameterivEXT GLEW_GET_FUN(__glewGetConvolutionParameterivEXT)
9506 #define glGetSeparableFilterEXT GLEW_GET_FUN(__glewGetSeparableFilterEXT)
9507 #define glSeparableFilter2DEXT GLEW_GET_FUN(__glewSeparableFilter2DEXT)
9508 
9509 #define GLEW_EXT_convolution GLEW_GET_VAR(__GLEW_EXT_convolution)
9510 
9511 #endif /* GL_EXT_convolution */
9512 
9513 /* ------------------------ GL_EXT_coordinate_frame ------------------------ */
9514 
9515 #ifndef GL_EXT_coordinate_frame
9516 #define GL_EXT_coordinate_frame 1
9517 
9518 #define GL_TANGENT_ARRAY_EXT 0x8439
9519 #define GL_BINORMAL_ARRAY_EXT 0x843A
9520 #define GL_CURRENT_TANGENT_EXT 0x843B
9521 #define GL_CURRENT_BINORMAL_EXT 0x843C
9522 #define GL_TANGENT_ARRAY_TYPE_EXT 0x843E
9523 #define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F
9524 #define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440
9525 #define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441
9526 #define GL_TANGENT_ARRAY_POINTER_EXT 0x8442
9527 #define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443
9528 #define GL_MAP1_TANGENT_EXT 0x8444
9529 #define GL_MAP2_TANGENT_EXT 0x8445
9530 #define GL_MAP1_BINORMAL_EXT 0x8446
9531 #define GL_MAP2_BINORMAL_EXT 0x8447
9532 
9533 typedef void (GLAPIENTRY * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, void *pointer);
9534 typedef void (GLAPIENTRY * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, void *pointer);
9535 
9536 #define glBinormalPointerEXT GLEW_GET_FUN(__glewBinormalPointerEXT)
9537 #define glTangentPointerEXT GLEW_GET_FUN(__glewTangentPointerEXT)
9538 
9539 #define GLEW_EXT_coordinate_frame GLEW_GET_VAR(__GLEW_EXT_coordinate_frame)
9540 
9541 #endif /* GL_EXT_coordinate_frame */
9542 
9543 /* --------------------------- GL_EXT_copy_image --------------------------- */
9544 
9545 #ifndef GL_EXT_copy_image
9546 #define GL_EXT_copy_image 1
9547 
9548 typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATAEXTPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
9549 
9550 #define glCopyImageSubDataEXT GLEW_GET_FUN(__glewCopyImageSubDataEXT)
9551 
9552 #define GLEW_EXT_copy_image GLEW_GET_VAR(__GLEW_EXT_copy_image)
9553 
9554 #endif /* GL_EXT_copy_image */
9555 
9556 /* -------------------------- GL_EXT_copy_texture -------------------------- */
9557 
9558 #ifndef GL_EXT_copy_texture
9559 #define GL_EXT_copy_texture 1
9560 
9561 typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
9562 typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
9563 typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
9564 typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
9565 typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
9566 
9567 #define glCopyTexImage1DEXT GLEW_GET_FUN(__glewCopyTexImage1DEXT)
9568 #define glCopyTexImage2DEXT GLEW_GET_FUN(__glewCopyTexImage2DEXT)
9569 #define glCopyTexSubImage1DEXT GLEW_GET_FUN(__glewCopyTexSubImage1DEXT)
9570 #define glCopyTexSubImage2DEXT GLEW_GET_FUN(__glewCopyTexSubImage2DEXT)
9571 #define glCopyTexSubImage3DEXT GLEW_GET_FUN(__glewCopyTexSubImage3DEXT)
9572 
9573 #define GLEW_EXT_copy_texture GLEW_GET_VAR(__GLEW_EXT_copy_texture)
9574 
9575 #endif /* GL_EXT_copy_texture */
9576 
9577 /* --------------------------- GL_EXT_cull_vertex -------------------------- */
9578 
9579 #ifndef GL_EXT_cull_vertex
9580 #define GL_EXT_cull_vertex 1
9581 
9582 #define GL_CULL_VERTEX_EXT 0x81AA
9583 #define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB
9584 #define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC
9585 
9586 typedef void (GLAPIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble* params);
9587 typedef void (GLAPIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat* params);
9588 
9589 #define glCullParameterdvEXT GLEW_GET_FUN(__glewCullParameterdvEXT)
9590 #define glCullParameterfvEXT GLEW_GET_FUN(__glewCullParameterfvEXT)
9591 
9592 #define GLEW_EXT_cull_vertex GLEW_GET_VAR(__GLEW_EXT_cull_vertex)
9593 
9594 #endif /* GL_EXT_cull_vertex */
9595 
9596 /* --------------------------- GL_EXT_debug_label -------------------------- */
9597 
9598 #ifndef GL_EXT_debug_label
9599 #define GL_EXT_debug_label 1
9600 
9601 #define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F
9602 #define GL_PROGRAM_OBJECT_EXT 0x8B40
9603 #define GL_SHADER_OBJECT_EXT 0x8B48
9604 #define GL_BUFFER_OBJECT_EXT 0x9151
9605 #define GL_QUERY_OBJECT_EXT 0x9153
9606 #define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154
9607 
9608 typedef void (GLAPIENTRY * PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei* length, GLchar *label);
9609 typedef void (GLAPIENTRY * PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar* label);
9610 
9611 #define glGetObjectLabelEXT GLEW_GET_FUN(__glewGetObjectLabelEXT)
9612 #define glLabelObjectEXT GLEW_GET_FUN(__glewLabelObjectEXT)
9613 
9614 #define GLEW_EXT_debug_label GLEW_GET_VAR(__GLEW_EXT_debug_label)
9615 
9616 #endif /* GL_EXT_debug_label */
9617 
9618 /* -------------------------- GL_EXT_debug_marker -------------------------- */
9619 
9620 #ifndef GL_EXT_debug_marker
9621 #define GL_EXT_debug_marker 1
9622 
9623 typedef void (GLAPIENTRY * PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar* marker);
9624 typedef void (GLAPIENTRY * PFNGLPOPGROUPMARKEREXTPROC) (void);
9625 typedef void (GLAPIENTRY * PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar* marker);
9626 
9627 #define glInsertEventMarkerEXT GLEW_GET_FUN(__glewInsertEventMarkerEXT)
9628 #define glPopGroupMarkerEXT GLEW_GET_FUN(__glewPopGroupMarkerEXT)
9629 #define glPushGroupMarkerEXT GLEW_GET_FUN(__glewPushGroupMarkerEXT)
9630 
9631 #define GLEW_EXT_debug_marker GLEW_GET_VAR(__GLEW_EXT_debug_marker)
9632 
9633 #endif /* GL_EXT_debug_marker */
9634 
9635 /* ------------------------ GL_EXT_depth_bounds_test ----------------------- */
9636 
9637 #ifndef GL_EXT_depth_bounds_test
9638 #define GL_EXT_depth_bounds_test 1
9639 
9640 #define GL_DEPTH_BOUNDS_TEST_EXT 0x8890
9641 #define GL_DEPTH_BOUNDS_EXT 0x8891
9642 
9643 typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax);
9644 
9645 #define glDepthBoundsEXT GLEW_GET_FUN(__glewDepthBoundsEXT)
9646 
9647 #define GLEW_EXT_depth_bounds_test GLEW_GET_VAR(__GLEW_EXT_depth_bounds_test)
9648 
9649 #endif /* GL_EXT_depth_bounds_test */
9650 
9651 /* ----------------------- GL_EXT_direct_state_access ---------------------- */
9652 
9653 #ifndef GL_EXT_direct_state_access
9654 #define GL_EXT_direct_state_access 1
9655 
9656 #define GL_PROGRAM_MATRIX_EXT 0x8E2D
9657 #define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E
9658 #define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F
9659 
9660 typedef void (GLAPIENTRY * PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture);
9661 typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target);
9662 typedef void (GLAPIENTRY * PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask);
9663 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
9664 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
9665 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
9666 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
9667 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
9668 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
9669 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
9670 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
9671 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
9672 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
9673 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
9674 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
9675 typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
9676 typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
9677 typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
9678 typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
9679 typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
9680 typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
9681 typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
9682 typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
9683 typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
9684 typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
9685 typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index);
9686 typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index);
9687 typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index);
9688 typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array);
9689 typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index);
9690 typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index);
9691 typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index);
9692 typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array);
9693 typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
9694 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode);
9695 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs);
9696 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode);
9697 typedef void (GLAPIENTRY * PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target);
9698 typedef void (GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target);
9699 typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, void *img);
9700 typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, void *img);
9701 typedef void (GLAPIENTRY * PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble* params);
9702 typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble* params);
9703 typedef void (GLAPIENTRY * PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat* params);
9704 typedef void (GLAPIENTRY * PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat* params);
9705 typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint* param);
9706 typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params);
9707 typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params);
9708 typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble* params);
9709 typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat* params);
9710 typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint* params);
9711 typedef void (GLAPIENTRY * PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
9712 typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat* params);
9713 typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint* params);
9714 typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params);
9715 typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint* params);
9716 typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params);
9717 typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params);
9718 typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint* params);
9719 typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void** params);
9720 typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
9721 typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params);
9722 typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint* params);
9723 typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint* params);
9724 typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble* params);
9725 typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat* params);
9726 typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void *string);
9727 typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint* params);
9728 typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint* params);
9729 typedef void (GLAPIENTRY * PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, void** params);
9730 typedef void (GLAPIENTRY * PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, void** params);
9731 typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
9732 typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat* params);
9733 typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint* params);
9734 typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params);
9735 typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint* params);
9736 typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat* params);
9737 typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params);
9738 typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param);
9739 typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint* param);
9740 typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, void** param);
9741 typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, void** param);
9742 typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access);
9743 typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
9744 typedef void (GLAPIENTRY * PFNGLMATRIXFRUSTUMEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f);
9745 typedef void (GLAPIENTRY * PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum matrixMode);
9746 typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m);
9747 typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m);
9748 typedef void (GLAPIENTRY * PFNGLMATRIXLOADDEXTPROC) (GLenum matrixMode, const GLdouble* m);
9749 typedef void (GLAPIENTRY * PFNGLMATRIXLOADFEXTPROC) (GLenum matrixMode, const GLfloat* m);
9750 typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m);
9751 typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m);
9752 typedef void (GLAPIENTRY * PFNGLMATRIXMULTDEXTPROC) (GLenum matrixMode, const GLdouble* m);
9753 typedef void (GLAPIENTRY * PFNGLMATRIXMULTFEXTPROC) (GLenum matrixMode, const GLfloat* m);
9754 typedef void (GLAPIENTRY * PFNGLMATRIXORTHOEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f);
9755 typedef void (GLAPIENTRY * PFNGLMATRIXPOPEXTPROC) (GLenum matrixMode);
9756 typedef void (GLAPIENTRY * PFNGLMATRIXPUSHEXTPROC) (GLenum matrixMode);
9757 typedef void (GLAPIENTRY * PFNGLMATRIXROTATEDEXTPROC) (GLenum matrixMode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
9758 typedef void (GLAPIENTRY * PFNGLMATRIXROTATEFEXTPROC) (GLenum matrixMode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
9759 typedef void (GLAPIENTRY * PFNGLMATRIXSCALEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z);
9760 typedef void (GLAPIENTRY * PFNGLMATRIXSCALEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z);
9761 typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z);
9762 typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z);
9763 typedef void (GLAPIENTRY * PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer);
9764 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer);
9765 typedef void (GLAPIENTRY * PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
9766 typedef void (GLAPIENTRY * PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* params);
9767 typedef void (GLAPIENTRY * PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param);
9768 typedef void (GLAPIENTRY * PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params);
9769 typedef void (GLAPIENTRY * PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
9770 typedef void (GLAPIENTRY * PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble* params);
9771 typedef void (GLAPIENTRY * PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
9772 typedef void (GLAPIENTRY * PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat* params);
9773 typedef void (GLAPIENTRY * PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param);
9774 typedef void (GLAPIENTRY * PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint* params);
9775 typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
9776 typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
9777 typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
9778 typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params);
9779 typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint* params);
9780 typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
9781 typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* param);
9782 typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param);
9783 typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* param);
9784 typedef void (GLAPIENTRY * PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer);
9785 typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
9786 typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
9787 typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
9788 typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
9789 typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
9790 typedef void (GLAPIENTRY * PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
9791 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
9792 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
9793 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
9794 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
9795 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
9796 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
9797 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
9798 typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
9799 typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble* params);
9800 typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
9801 typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat* params);
9802 typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
9803 typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint* params);
9804 typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
9805 typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint* params);
9806 typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat* params);
9807 typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint* params);
9808 typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint* params);
9809 typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string);
9810 typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
9811 typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
9812 typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
9813 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0);
9814 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
9815 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0);
9816 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
9817 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0);
9818 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
9819 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1);
9820 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
9821 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1);
9822 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
9823 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1);
9824 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
9825 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
9826 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
9827 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
9828 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
9829 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
9830 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
9831 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
9832 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
9833 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
9834 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
9835 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
9836 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
9837 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
9838 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
9839 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
9840 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
9841 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
9842 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
9843 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
9844 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
9845 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
9846 typedef void (GLAPIENTRY * PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask);
9847 typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
9848 typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
9849 typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
9850 typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
9851 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* params);
9852 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint* params);
9853 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param);
9854 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat* param);
9855 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param);
9856 typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* param);
9857 typedef void (GLAPIENTRY * PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer);
9858 typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
9859 typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
9860 typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
9861 typedef GLboolean (GLAPIENTRY * PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer);
9862 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
9863 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset);
9864 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
9865 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
9866 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset);
9867 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
9868 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
9869 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
9870 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC) (GLuint vaobj, GLuint index, GLuint divisor);
9871 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
9872 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset);
9873 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
9874 
9875 #define glBindMultiTextureEXT GLEW_GET_FUN(__glewBindMultiTextureEXT)
9876 #define glCheckNamedFramebufferStatusEXT GLEW_GET_FUN(__glewCheckNamedFramebufferStatusEXT)
9877 #define glClientAttribDefaultEXT GLEW_GET_FUN(__glewClientAttribDefaultEXT)
9878 #define glCompressedMultiTexImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage1DEXT)
9879 #define glCompressedMultiTexImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage2DEXT)
9880 #define glCompressedMultiTexImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage3DEXT)
9881 #define glCompressedMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage1DEXT)
9882 #define glCompressedMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage2DEXT)
9883 #define glCompressedMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage3DEXT)
9884 #define glCompressedTextureImage1DEXT GLEW_GET_FUN(__glewCompressedTextureImage1DEXT)
9885 #define glCompressedTextureImage2DEXT GLEW_GET_FUN(__glewCompressedTextureImage2DEXT)
9886 #define glCompressedTextureImage3DEXT GLEW_GET_FUN(__glewCompressedTextureImage3DEXT)
9887 #define glCompressedTextureSubImage1DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage1DEXT)
9888 #define glCompressedTextureSubImage2DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage2DEXT)
9889 #define glCompressedTextureSubImage3DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage3DEXT)
9890 #define glCopyMultiTexImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexImage1DEXT)
9891 #define glCopyMultiTexImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexImage2DEXT)
9892 #define glCopyMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage1DEXT)
9893 #define glCopyMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage2DEXT)
9894 #define glCopyMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage3DEXT)
9895 #define glCopyTextureImage1DEXT GLEW_GET_FUN(__glewCopyTextureImage1DEXT)
9896 #define glCopyTextureImage2DEXT GLEW_GET_FUN(__glewCopyTextureImage2DEXT)
9897 #define glCopyTextureSubImage1DEXT GLEW_GET_FUN(__glewCopyTextureSubImage1DEXT)
9898 #define glCopyTextureSubImage2DEXT GLEW_GET_FUN(__glewCopyTextureSubImage2DEXT)
9899 #define glCopyTextureSubImage3DEXT GLEW_GET_FUN(__glewCopyTextureSubImage3DEXT)
9900 #define glDisableClientStateIndexedEXT GLEW_GET_FUN(__glewDisableClientStateIndexedEXT)
9901 #define glDisableClientStateiEXT GLEW_GET_FUN(__glewDisableClientStateiEXT)
9902 #define glDisableVertexArrayAttribEXT GLEW_GET_FUN(__glewDisableVertexArrayAttribEXT)
9903 #define glDisableVertexArrayEXT GLEW_GET_FUN(__glewDisableVertexArrayEXT)
9904 #define glEnableClientStateIndexedEXT GLEW_GET_FUN(__glewEnableClientStateIndexedEXT)
9905 #define glEnableClientStateiEXT GLEW_GET_FUN(__glewEnableClientStateiEXT)
9906 #define glEnableVertexArrayAttribEXT GLEW_GET_FUN(__glewEnableVertexArrayAttribEXT)
9907 #define glEnableVertexArrayEXT GLEW_GET_FUN(__glewEnableVertexArrayEXT)
9908 #define glFlushMappedNamedBufferRangeEXT GLEW_GET_FUN(__glewFlushMappedNamedBufferRangeEXT)
9909 #define glFramebufferDrawBufferEXT GLEW_GET_FUN(__glewFramebufferDrawBufferEXT)
9910 #define glFramebufferDrawBuffersEXT GLEW_GET_FUN(__glewFramebufferDrawBuffersEXT)
9911 #define glFramebufferReadBufferEXT GLEW_GET_FUN(__glewFramebufferReadBufferEXT)
9912 #define glGenerateMultiTexMipmapEXT GLEW_GET_FUN(__glewGenerateMultiTexMipmapEXT)
9913 #define glGenerateTextureMipmapEXT GLEW_GET_FUN(__glewGenerateTextureMipmapEXT)
9914 #define glGetCompressedMultiTexImageEXT GLEW_GET_FUN(__glewGetCompressedMultiTexImageEXT)
9915 #define glGetCompressedTextureImageEXT GLEW_GET_FUN(__glewGetCompressedTextureImageEXT)
9916 #define glGetDoubleIndexedvEXT GLEW_GET_FUN(__glewGetDoubleIndexedvEXT)
9917 #define glGetDoublei_vEXT GLEW_GET_FUN(__glewGetDoublei_vEXT)
9918 #define glGetFloatIndexedvEXT GLEW_GET_FUN(__glewGetFloatIndexedvEXT)
9919 #define glGetFloati_vEXT GLEW_GET_FUN(__glewGetFloati_vEXT)
9920 #define glGetFramebufferParameterivEXT GLEW_GET_FUN(__glewGetFramebufferParameterivEXT)
9921 #define glGetMultiTexEnvfvEXT GLEW_GET_FUN(__glewGetMultiTexEnvfvEXT)
9922 #define glGetMultiTexEnvivEXT GLEW_GET_FUN(__glewGetMultiTexEnvivEXT)
9923 #define glGetMultiTexGendvEXT GLEW_GET_FUN(__glewGetMultiTexGendvEXT)
9924 #define glGetMultiTexGenfvEXT GLEW_GET_FUN(__glewGetMultiTexGenfvEXT)
9925 #define glGetMultiTexGenivEXT GLEW_GET_FUN(__glewGetMultiTexGenivEXT)
9926 #define glGetMultiTexImageEXT GLEW_GET_FUN(__glewGetMultiTexImageEXT)
9927 #define glGetMultiTexLevelParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterfvEXT)
9928 #define glGetMultiTexLevelParameterivEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterivEXT)
9929 #define glGetMultiTexParameterIivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIivEXT)
9930 #define glGetMultiTexParameterIuivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIuivEXT)
9931 #define glGetMultiTexParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexParameterfvEXT)
9932 #define glGetMultiTexParameterivEXT GLEW_GET_FUN(__glewGetMultiTexParameterivEXT)
9933 #define glGetNamedBufferParameterivEXT GLEW_GET_FUN(__glewGetNamedBufferParameterivEXT)
9934 #define glGetNamedBufferPointervEXT GLEW_GET_FUN(__glewGetNamedBufferPointervEXT)
9935 #define glGetNamedBufferSubDataEXT GLEW_GET_FUN(__glewGetNamedBufferSubDataEXT)
9936 #define glGetNamedFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetNamedFramebufferAttachmentParameterivEXT)
9937 #define glGetNamedProgramLocalParameterIivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIivEXT)
9938 #define glGetNamedProgramLocalParameterIuivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIuivEXT)
9939 #define glGetNamedProgramLocalParameterdvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterdvEXT)
9940 #define glGetNamedProgramLocalParameterfvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterfvEXT)
9941 #define glGetNamedProgramStringEXT GLEW_GET_FUN(__glewGetNamedProgramStringEXT)
9942 #define glGetNamedProgramivEXT GLEW_GET_FUN(__glewGetNamedProgramivEXT)
9943 #define glGetNamedRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetNamedRenderbufferParameterivEXT)
9944 #define glGetPointerIndexedvEXT GLEW_GET_FUN(__glewGetPointerIndexedvEXT)
9945 #define glGetPointeri_vEXT GLEW_GET_FUN(__glewGetPointeri_vEXT)
9946 #define glGetTextureImageEXT GLEW_GET_FUN(__glewGetTextureImageEXT)
9947 #define glGetTextureLevelParameterfvEXT GLEW_GET_FUN(__glewGetTextureLevelParameterfvEXT)
9948 #define glGetTextureLevelParameterivEXT GLEW_GET_FUN(__glewGetTextureLevelParameterivEXT)
9949 #define glGetTextureParameterIivEXT GLEW_GET_FUN(__glewGetTextureParameterIivEXT)
9950 #define glGetTextureParameterIuivEXT GLEW_GET_FUN(__glewGetTextureParameterIuivEXT)
9951 #define glGetTextureParameterfvEXT GLEW_GET_FUN(__glewGetTextureParameterfvEXT)
9952 #define glGetTextureParameterivEXT GLEW_GET_FUN(__glewGetTextureParameterivEXT)
9953 #define glGetVertexArrayIntegeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayIntegeri_vEXT)
9954 #define glGetVertexArrayIntegervEXT GLEW_GET_FUN(__glewGetVertexArrayIntegervEXT)
9955 #define glGetVertexArrayPointeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayPointeri_vEXT)
9956 #define glGetVertexArrayPointervEXT GLEW_GET_FUN(__glewGetVertexArrayPointervEXT)
9957 #define glMapNamedBufferEXT GLEW_GET_FUN(__glewMapNamedBufferEXT)
9958 #define glMapNamedBufferRangeEXT GLEW_GET_FUN(__glewMapNamedBufferRangeEXT)
9959 #define glMatrixFrustumEXT GLEW_GET_FUN(__glewMatrixFrustumEXT)
9960 #define glMatrixLoadIdentityEXT GLEW_GET_FUN(__glewMatrixLoadIdentityEXT)
9961 #define glMatrixLoadTransposedEXT GLEW_GET_FUN(__glewMatrixLoadTransposedEXT)
9962 #define glMatrixLoadTransposefEXT GLEW_GET_FUN(__glewMatrixLoadTransposefEXT)
9963 #define glMatrixLoaddEXT GLEW_GET_FUN(__glewMatrixLoaddEXT)
9964 #define glMatrixLoadfEXT GLEW_GET_FUN(__glewMatrixLoadfEXT)
9965 #define glMatrixMultTransposedEXT GLEW_GET_FUN(__glewMatrixMultTransposedEXT)
9966 #define glMatrixMultTransposefEXT GLEW_GET_FUN(__glewMatrixMultTransposefEXT)
9967 #define glMatrixMultdEXT GLEW_GET_FUN(__glewMatrixMultdEXT)
9968 #define glMatrixMultfEXT GLEW_GET_FUN(__glewMatrixMultfEXT)
9969 #define glMatrixOrthoEXT GLEW_GET_FUN(__glewMatrixOrthoEXT)
9970 #define glMatrixPopEXT GLEW_GET_FUN(__glewMatrixPopEXT)
9971 #define glMatrixPushEXT GLEW_GET_FUN(__glewMatrixPushEXT)
9972 #define glMatrixRotatedEXT GLEW_GET_FUN(__glewMatrixRotatedEXT)
9973 #define glMatrixRotatefEXT GLEW_GET_FUN(__glewMatrixRotatefEXT)
9974 #define glMatrixScaledEXT GLEW_GET_FUN(__glewMatrixScaledEXT)
9975 #define glMatrixScalefEXT GLEW_GET_FUN(__glewMatrixScalefEXT)
9976 #define glMatrixTranslatedEXT GLEW_GET_FUN(__glewMatrixTranslatedEXT)
9977 #define glMatrixTranslatefEXT GLEW_GET_FUN(__glewMatrixTranslatefEXT)
9978 #define glMultiTexBufferEXT GLEW_GET_FUN(__glewMultiTexBufferEXT)
9979 #define glMultiTexCoordPointerEXT GLEW_GET_FUN(__glewMultiTexCoordPointerEXT)
9980 #define glMultiTexEnvfEXT GLEW_GET_FUN(__glewMultiTexEnvfEXT)
9981 #define glMultiTexEnvfvEXT GLEW_GET_FUN(__glewMultiTexEnvfvEXT)
9982 #define glMultiTexEnviEXT GLEW_GET_FUN(__glewMultiTexEnviEXT)
9983 #define glMultiTexEnvivEXT GLEW_GET_FUN(__glewMultiTexEnvivEXT)
9984 #define glMultiTexGendEXT GLEW_GET_FUN(__glewMultiTexGendEXT)
9985 #define glMultiTexGendvEXT GLEW_GET_FUN(__glewMultiTexGendvEXT)
9986 #define glMultiTexGenfEXT GLEW_GET_FUN(__glewMultiTexGenfEXT)
9987 #define glMultiTexGenfvEXT GLEW_GET_FUN(__glewMultiTexGenfvEXT)
9988 #define glMultiTexGeniEXT GLEW_GET_FUN(__glewMultiTexGeniEXT)
9989 #define glMultiTexGenivEXT GLEW_GET_FUN(__glewMultiTexGenivEXT)
9990 #define glMultiTexImage1DEXT GLEW_GET_FUN(__glewMultiTexImage1DEXT)
9991 #define glMultiTexImage2DEXT GLEW_GET_FUN(__glewMultiTexImage2DEXT)
9992 #define glMultiTexImage3DEXT GLEW_GET_FUN(__glewMultiTexImage3DEXT)
9993 #define glMultiTexParameterIivEXT GLEW_GET_FUN(__glewMultiTexParameterIivEXT)
9994 #define glMultiTexParameterIuivEXT GLEW_GET_FUN(__glewMultiTexParameterIuivEXT)
9995 #define glMultiTexParameterfEXT GLEW_GET_FUN(__glewMultiTexParameterfEXT)
9996 #define glMultiTexParameterfvEXT GLEW_GET_FUN(__glewMultiTexParameterfvEXT)
9997 #define glMultiTexParameteriEXT GLEW_GET_FUN(__glewMultiTexParameteriEXT)
9998 #define glMultiTexParameterivEXT GLEW_GET_FUN(__glewMultiTexParameterivEXT)
9999 #define glMultiTexRenderbufferEXT GLEW_GET_FUN(__glewMultiTexRenderbufferEXT)
10000 #define glMultiTexSubImage1DEXT GLEW_GET_FUN(__glewMultiTexSubImage1DEXT)
10001 #define glMultiTexSubImage2DEXT GLEW_GET_FUN(__glewMultiTexSubImage2DEXT)
10002 #define glMultiTexSubImage3DEXT GLEW_GET_FUN(__glewMultiTexSubImage3DEXT)
10003 #define glNamedBufferDataEXT GLEW_GET_FUN(__glewNamedBufferDataEXT)
10004 #define glNamedBufferSubDataEXT GLEW_GET_FUN(__glewNamedBufferSubDataEXT)
10005 #define glNamedCopyBufferSubDataEXT GLEW_GET_FUN(__glewNamedCopyBufferSubDataEXT)
10006 #define glNamedFramebufferRenderbufferEXT GLEW_GET_FUN(__glewNamedFramebufferRenderbufferEXT)
10007 #define glNamedFramebufferTexture1DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture1DEXT)
10008 #define glNamedFramebufferTexture2DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture2DEXT)
10009 #define glNamedFramebufferTexture3DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture3DEXT)
10010 #define glNamedFramebufferTextureEXT GLEW_GET_FUN(__glewNamedFramebufferTextureEXT)
10011 #define glNamedFramebufferTextureFaceEXT GLEW_GET_FUN(__glewNamedFramebufferTextureFaceEXT)
10012 #define glNamedFramebufferTextureLayerEXT GLEW_GET_FUN(__glewNamedFramebufferTextureLayerEXT)
10013 #define glNamedProgramLocalParameter4dEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dEXT)
10014 #define glNamedProgramLocalParameter4dvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dvEXT)
10015 #define glNamedProgramLocalParameter4fEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fEXT)
10016 #define glNamedProgramLocalParameter4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fvEXT)
10017 #define glNamedProgramLocalParameterI4iEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4iEXT)
10018 #define glNamedProgramLocalParameterI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4ivEXT)
10019 #define glNamedProgramLocalParameterI4uiEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uiEXT)
10020 #define glNamedProgramLocalParameterI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uivEXT)
10021 #define glNamedProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameters4fvEXT)
10022 #define glNamedProgramLocalParametersI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4ivEXT)
10023 #define glNamedProgramLocalParametersI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4uivEXT)
10024 #define glNamedProgramStringEXT GLEW_GET_FUN(__glewNamedProgramStringEXT)
10025 #define glNamedRenderbufferStorageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageEXT)
10026 #define glNamedRenderbufferStorageMultisampleCoverageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleCoverageEXT)
10027 #define glNamedRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleEXT)
10028 #define glProgramUniform1fEXT GLEW_GET_FUN(__glewProgramUniform1fEXT)
10029 #define glProgramUniform1fvEXT GLEW_GET_FUN(__glewProgramUniform1fvEXT)
10030 #define glProgramUniform1iEXT GLEW_GET_FUN(__glewProgramUniform1iEXT)
10031 #define glProgramUniform1ivEXT GLEW_GET_FUN(__glewProgramUniform1ivEXT)
10032 #define glProgramUniform1uiEXT GLEW_GET_FUN(__glewProgramUniform1uiEXT)
10033 #define glProgramUniform1uivEXT GLEW_GET_FUN(__glewProgramUniform1uivEXT)
10034 #define glProgramUniform2fEXT GLEW_GET_FUN(__glewProgramUniform2fEXT)
10035 #define glProgramUniform2fvEXT GLEW_GET_FUN(__glewProgramUniform2fvEXT)
10036 #define glProgramUniform2iEXT GLEW_GET_FUN(__glewProgramUniform2iEXT)
10037 #define glProgramUniform2ivEXT GLEW_GET_FUN(__glewProgramUniform2ivEXT)
10038 #define glProgramUniform2uiEXT GLEW_GET_FUN(__glewProgramUniform2uiEXT)
10039 #define glProgramUniform2uivEXT GLEW_GET_FUN(__glewProgramUniform2uivEXT)
10040 #define glProgramUniform3fEXT GLEW_GET_FUN(__glewProgramUniform3fEXT)
10041 #define glProgramUniform3fvEXT GLEW_GET_FUN(__glewProgramUniform3fvEXT)
10042 #define glProgramUniform3iEXT GLEW_GET_FUN(__glewProgramUniform3iEXT)
10043 #define glProgramUniform3ivEXT GLEW_GET_FUN(__glewProgramUniform3ivEXT)
10044 #define glProgramUniform3uiEXT GLEW_GET_FUN(__glewProgramUniform3uiEXT)
10045 #define glProgramUniform3uivEXT GLEW_GET_FUN(__glewProgramUniform3uivEXT)
10046 #define glProgramUniform4fEXT GLEW_GET_FUN(__glewProgramUniform4fEXT)
10047 #define glProgramUniform4fvEXT GLEW_GET_FUN(__glewProgramUniform4fvEXT)
10048 #define glProgramUniform4iEXT GLEW_GET_FUN(__glewProgramUniform4iEXT)
10049 #define glProgramUniform4ivEXT GLEW_GET_FUN(__glewProgramUniform4ivEXT)
10050 #define glProgramUniform4uiEXT GLEW_GET_FUN(__glewProgramUniform4uiEXT)
10051 #define glProgramUniform4uivEXT GLEW_GET_FUN(__glewProgramUniform4uivEXT)
10052 #define glProgramUniformMatrix2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2fvEXT)
10053 #define glProgramUniformMatrix2x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x3fvEXT)
10054 #define glProgramUniformMatrix2x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x4fvEXT)
10055 #define glProgramUniformMatrix3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3fvEXT)
10056 #define glProgramUniformMatrix3x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x2fvEXT)
10057 #define glProgramUniformMatrix3x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x4fvEXT)
10058 #define glProgramUniformMatrix4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4fvEXT)
10059 #define glProgramUniformMatrix4x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x2fvEXT)
10060 #define glProgramUniformMatrix4x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x3fvEXT)
10061 #define glPushClientAttribDefaultEXT GLEW_GET_FUN(__glewPushClientAttribDefaultEXT)
10062 #define glTextureBufferEXT GLEW_GET_FUN(__glewTextureBufferEXT)
10063 #define glTextureImage1DEXT GLEW_GET_FUN(__glewTextureImage1DEXT)
10064 #define glTextureImage2DEXT GLEW_GET_FUN(__glewTextureImage2DEXT)
10065 #define glTextureImage3DEXT GLEW_GET_FUN(__glewTextureImage3DEXT)
10066 #define glTextureParameterIivEXT GLEW_GET_FUN(__glewTextureParameterIivEXT)
10067 #define glTextureParameterIuivEXT GLEW_GET_FUN(__glewTextureParameterIuivEXT)
10068 #define glTextureParameterfEXT GLEW_GET_FUN(__glewTextureParameterfEXT)
10069 #define glTextureParameterfvEXT GLEW_GET_FUN(__glewTextureParameterfvEXT)
10070 #define glTextureParameteriEXT GLEW_GET_FUN(__glewTextureParameteriEXT)
10071 #define glTextureParameterivEXT GLEW_GET_FUN(__glewTextureParameterivEXT)
10072 #define glTextureRenderbufferEXT GLEW_GET_FUN(__glewTextureRenderbufferEXT)
10073 #define glTextureSubImage1DEXT GLEW_GET_FUN(__glewTextureSubImage1DEXT)
10074 #define glTextureSubImage2DEXT GLEW_GET_FUN(__glewTextureSubImage2DEXT)
10075 #define glTextureSubImage3DEXT GLEW_GET_FUN(__glewTextureSubImage3DEXT)
10076 #define glUnmapNamedBufferEXT GLEW_GET_FUN(__glewUnmapNamedBufferEXT)
10077 #define glVertexArrayColorOffsetEXT GLEW_GET_FUN(__glewVertexArrayColorOffsetEXT)
10078 #define glVertexArrayEdgeFlagOffsetEXT GLEW_GET_FUN(__glewVertexArrayEdgeFlagOffsetEXT)
10079 #define glVertexArrayFogCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayFogCoordOffsetEXT)
10080 #define glVertexArrayIndexOffsetEXT GLEW_GET_FUN(__glewVertexArrayIndexOffsetEXT)
10081 #define glVertexArrayMultiTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayMultiTexCoordOffsetEXT)
10082 #define glVertexArrayNormalOffsetEXT GLEW_GET_FUN(__glewVertexArrayNormalOffsetEXT)
10083 #define glVertexArraySecondaryColorOffsetEXT GLEW_GET_FUN(__glewVertexArraySecondaryColorOffsetEXT)
10084 #define glVertexArrayTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayTexCoordOffsetEXT)
10085 #define glVertexArrayVertexAttribDivisorEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribDivisorEXT)
10086 #define glVertexArrayVertexAttribIOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribIOffsetEXT)
10087 #define glVertexArrayVertexAttribOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribOffsetEXT)
10088 #define glVertexArrayVertexOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexOffsetEXT)
10089 
10090 #define GLEW_EXT_direct_state_access GLEW_GET_VAR(__GLEW_EXT_direct_state_access)
10091 
10092 #endif /* GL_EXT_direct_state_access */
10093 
10094 /* ----------------------- GL_EXT_discard_framebuffer ---------------------- */
10095 
10096 #ifndef GL_EXT_discard_framebuffer
10097 #define GL_EXT_discard_framebuffer 1
10098 
10099 #define GL_COLOR_EXT 0x1800
10100 #define GL_DEPTH_EXT 0x1801
10101 #define GL_STENCIL_EXT 0x1802
10102 
10103 typedef void (GLAPIENTRY * PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum* attachments);
10104 
10105 #define glDiscardFramebufferEXT GLEW_GET_FUN(__glewDiscardFramebufferEXT)
10106 
10107 #define GLEW_EXT_discard_framebuffer GLEW_GET_VAR(__GLEW_EXT_discard_framebuffer)
10108 
10109 #endif /* GL_EXT_discard_framebuffer */
10110 
10111 /* -------------------------- GL_EXT_draw_buffers -------------------------- */
10112 
10113 #ifndef GL_EXT_draw_buffers
10114 #define GL_EXT_draw_buffers 1
10115 
10116 #define GL_MAX_DRAW_BUFFERS_EXT 0x8824
10117 #define GL_DRAW_BUFFER0_EXT 0x8825
10118 #define GL_DRAW_BUFFER1_EXT 0x8826
10119 #define GL_DRAW_BUFFER2_EXT 0x8827
10120 #define GL_DRAW_BUFFER3_EXT 0x8828
10121 #define GL_DRAW_BUFFER4_EXT 0x8829
10122 #define GL_DRAW_BUFFER5_EXT 0x882A
10123 #define GL_DRAW_BUFFER6_EXT 0x882B
10124 #define GL_DRAW_BUFFER7_EXT 0x882C
10125 #define GL_DRAW_BUFFER8_EXT 0x882D
10126 #define GL_DRAW_BUFFER9_EXT 0x882E
10127 #define GL_DRAW_BUFFER10_EXT 0x882F
10128 #define GL_DRAW_BUFFER11_EXT 0x8830
10129 #define GL_DRAW_BUFFER12_EXT 0x8831
10130 #define GL_DRAW_BUFFER13_EXT 0x8832
10131 #define GL_DRAW_BUFFER14_EXT 0x8833
10132 #define GL_DRAW_BUFFER15_EXT 0x8834
10133 #define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
10134 #define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
10135 #define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
10136 #define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
10137 #define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
10138 #define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
10139 #define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
10140 #define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
10141 #define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
10142 #define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
10143 #define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
10144 #define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
10145 #define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
10146 #define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
10147 #define GL_COLOR_ATTACHMENT13_EXT 0x8CED
10148 #define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
10149 #define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
10150 
10151 typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSEXTPROC) (GLsizei n, const GLenum* bufs);
10152 
10153 #define glDrawBuffersEXT GLEW_GET_FUN(__glewDrawBuffersEXT)
10154 
10155 #define GLEW_EXT_draw_buffers GLEW_GET_VAR(__GLEW_EXT_draw_buffers)
10156 
10157 #endif /* GL_EXT_draw_buffers */
10158 
10159 /* -------------------------- GL_EXT_draw_buffers2 ------------------------- */
10160 
10161 #ifndef GL_EXT_draw_buffers2
10162 #define GL_EXT_draw_buffers2 1
10163 
10164 typedef void (GLAPIENTRY * PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
10165 typedef void (GLAPIENTRY * PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
10166 typedef void (GLAPIENTRY * PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
10167 typedef void (GLAPIENTRY * PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum value, GLuint index, GLboolean* data);
10168 typedef void (GLAPIENTRY * PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum value, GLuint index, GLint* data);
10169 typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index);
10170 
10171 #define glColorMaskIndexedEXT GLEW_GET_FUN(__glewColorMaskIndexedEXT)
10172 #define glDisableIndexedEXT GLEW_GET_FUN(__glewDisableIndexedEXT)
10173 #define glEnableIndexedEXT GLEW_GET_FUN(__glewEnableIndexedEXT)
10174 #define glGetBooleanIndexedvEXT GLEW_GET_FUN(__glewGetBooleanIndexedvEXT)
10175 #define glGetIntegerIndexedvEXT GLEW_GET_FUN(__glewGetIntegerIndexedvEXT)
10176 #define glIsEnabledIndexedEXT GLEW_GET_FUN(__glewIsEnabledIndexedEXT)
10177 
10178 #define GLEW_EXT_draw_buffers2 GLEW_GET_VAR(__GLEW_EXT_draw_buffers2)
10179 
10180 #endif /* GL_EXT_draw_buffers2 */
10181 
10182 /* ---------------------- GL_EXT_draw_buffers_indexed ---------------------- */
10183 
10184 #ifndef GL_EXT_draw_buffers_indexed
10185 #define GL_EXT_draw_buffers_indexed 1
10186 
10187 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIEXTPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
10188 typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIEXTPROC) (GLuint buf, GLenum mode);
10189 typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIEXTPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
10190 typedef void (GLAPIENTRY * PFNGLBLENDFUNCIEXTPROC) (GLuint buf, GLenum src, GLenum dst);
10191 typedef void (GLAPIENTRY * PFNGLCOLORMASKIEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
10192 typedef void (GLAPIENTRY * PFNGLDISABLEIEXTPROC) (GLenum target, GLuint index);
10193 typedef void (GLAPIENTRY * PFNGLENABLEIEXTPROC) (GLenum target, GLuint index);
10194 typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIEXTPROC) (GLenum target, GLuint index);
10195 
10196 #define glBlendEquationSeparateiEXT GLEW_GET_FUN(__glewBlendEquationSeparateiEXT)
10197 #define glBlendEquationiEXT GLEW_GET_FUN(__glewBlendEquationiEXT)
10198 #define glBlendFuncSeparateiEXT GLEW_GET_FUN(__glewBlendFuncSeparateiEXT)
10199 #define glBlendFunciEXT GLEW_GET_FUN(__glewBlendFunciEXT)
10200 #define glColorMaskiEXT GLEW_GET_FUN(__glewColorMaskiEXT)
10201 #define glDisableiEXT GLEW_GET_FUN(__glewDisableiEXT)
10202 #define glEnableiEXT GLEW_GET_FUN(__glewEnableiEXT)
10203 #define glIsEnablediEXT GLEW_GET_FUN(__glewIsEnablediEXT)
10204 
10205 #define GLEW_EXT_draw_buffers_indexed GLEW_GET_VAR(__GLEW_EXT_draw_buffers_indexed)
10206 
10207 #endif /* GL_EXT_draw_buffers_indexed */
10208 
10209 /* -------------------- GL_EXT_draw_elements_base_vertex ------------------- */
10210 
10211 #ifndef GL_EXT_draw_elements_base_vertex
10212 #define GL_EXT_draw_elements_base_vertex 1
10213 
10214 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
10215 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
10216 typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
10217 typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, const GLsizei* count, GLenum type, const void *const *indices, GLsizei primcount, const GLint *basevertex);
10218 
10219 #define glDrawElementsBaseVertexEXT GLEW_GET_FUN(__glewDrawElementsBaseVertexEXT)
10220 #define glDrawElementsInstancedBaseVertexEXT GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexEXT)
10221 #define glDrawRangeElementsBaseVertexEXT GLEW_GET_FUN(__glewDrawRangeElementsBaseVertexEXT)
10222 #define glMultiDrawElementsBaseVertexEXT GLEW_GET_FUN(__glewMultiDrawElementsBaseVertexEXT)
10223 
10224 #define GLEW_EXT_draw_elements_base_vertex GLEW_GET_VAR(__GLEW_EXT_draw_elements_base_vertex)
10225 
10226 #endif /* GL_EXT_draw_elements_base_vertex */
10227 
10228 /* ------------------------- GL_EXT_draw_instanced ------------------------- */
10229 
10230 #ifndef GL_EXT_draw_instanced
10231 #define GL_EXT_draw_instanced 1
10232 
10233 typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount);
10234 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
10235 
10236 #define glDrawArraysInstancedEXT GLEW_GET_FUN(__glewDrawArraysInstancedEXT)
10237 #define glDrawElementsInstancedEXT GLEW_GET_FUN(__glewDrawElementsInstancedEXT)
10238 
10239 #define GLEW_EXT_draw_instanced GLEW_GET_VAR(__GLEW_EXT_draw_instanced)
10240 
10241 #endif /* GL_EXT_draw_instanced */
10242 
10243 /* ----------------------- GL_EXT_draw_range_elements ---------------------- */
10244 
10245 #ifndef GL_EXT_draw_range_elements
10246 #define GL_EXT_draw_range_elements 1
10247 
10248 #define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8
10249 #define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9
10250 
10251 typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
10252 
10253 #define glDrawRangeElementsEXT GLEW_GET_FUN(__glewDrawRangeElementsEXT)
10254 
10255 #define GLEW_EXT_draw_range_elements GLEW_GET_VAR(__GLEW_EXT_draw_range_elements)
10256 
10257 #endif /* GL_EXT_draw_range_elements */
10258 
10259 /* ------------------------- GL_EXT_external_buffer ------------------------ */
10260 
10261 #ifndef GL_EXT_external_buffer
10262 #define GL_EXT_external_buffer 1
10263 
10264 typedef void* GLeglClientBufferEXT;
10265 
10266 typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEEXTERNALEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
10267 typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
10268 
10269 #define glBufferStorageExternalEXT GLEW_GET_FUN(__glewBufferStorageExternalEXT)
10270 #define glNamedBufferStorageExternalEXT GLEW_GET_FUN(__glewNamedBufferStorageExternalEXT)
10271 
10272 #define GLEW_EXT_external_buffer GLEW_GET_VAR(__GLEW_EXT_external_buffer)
10273 
10274 #endif /* GL_EXT_external_buffer */
10275 
10276 /* --------------------------- GL_EXT_float_blend -------------------------- */
10277 
10278 #ifndef GL_EXT_float_blend
10279 #define GL_EXT_float_blend 1
10280 
10281 #define GLEW_EXT_float_blend GLEW_GET_VAR(__GLEW_EXT_float_blend)
10282 
10283 #endif /* GL_EXT_float_blend */
10284 
10285 /* ---------------------------- GL_EXT_fog_coord --------------------------- */
10286 
10287 #ifndef GL_EXT_fog_coord
10288 #define GL_EXT_fog_coord 1
10289 
10290 #define GL_FOG_COORDINATE_SOURCE_EXT 0x8450
10291 #define GL_FOG_COORDINATE_EXT 0x8451
10292 #define GL_FRAGMENT_DEPTH_EXT 0x8452
10293 #define GL_CURRENT_FOG_COORDINATE_EXT 0x8453
10294 #define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454
10295 #define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
10296 #define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
10297 #define GL_FOG_COORDINATE_ARRAY_EXT 0x8457
10298 
10299 typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer);
10300 typedef void (GLAPIENTRY * PFNGLFOGCOORDDEXTPROC) (GLdouble coord);
10301 typedef void (GLAPIENTRY * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord);
10302 typedef void (GLAPIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat coord);
10303 typedef void (GLAPIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord);
10304 
10305 #define glFogCoordPointerEXT GLEW_GET_FUN(__glewFogCoordPointerEXT)
10306 #define glFogCoorddEXT GLEW_GET_FUN(__glewFogCoorddEXT)
10307 #define glFogCoorddvEXT GLEW_GET_FUN(__glewFogCoorddvEXT)
10308 #define glFogCoordfEXT GLEW_GET_FUN(__glewFogCoordfEXT)
10309 #define glFogCoordfvEXT GLEW_GET_FUN(__glewFogCoordfvEXT)
10310 
10311 #define GLEW_EXT_fog_coord GLEW_GET_VAR(__GLEW_EXT_fog_coord)
10312 
10313 #endif /* GL_EXT_fog_coord */
10314 
10315 /* --------------------------- GL_EXT_frag_depth --------------------------- */
10316 
10317 #ifndef GL_EXT_frag_depth
10318 #define GL_EXT_frag_depth 1
10319 
10320 #define GLEW_EXT_frag_depth GLEW_GET_VAR(__GLEW_EXT_frag_depth)
10321 
10322 #endif /* GL_EXT_frag_depth */
10323 
10324 /* ------------------------ GL_EXT_fragment_lighting ----------------------- */
10325 
10326 #ifndef GL_EXT_fragment_lighting
10327 #define GL_EXT_fragment_lighting 1
10328 
10329 #define GL_FRAGMENT_LIGHTING_EXT 0x8400
10330 #define GL_FRAGMENT_COLOR_MATERIAL_EXT 0x8401
10331 #define GL_FRAGMENT_COLOR_MATERIAL_FACE_EXT 0x8402
10332 #define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_EXT 0x8403
10333 #define GL_MAX_FRAGMENT_LIGHTS_EXT 0x8404
10334 #define GL_MAX_ACTIVE_LIGHTS_EXT 0x8405
10335 #define GL_CURRENT_RASTER_NORMAL_EXT 0x8406
10336 #define GL_LIGHT_ENV_MODE_EXT 0x8407
10337 #define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_EXT 0x8408
10338 #define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_EXT 0x8409
10339 #define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_EXT 0x840A
10340 #define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_EXT 0x840B
10341 #define GL_FRAGMENT_LIGHT0_EXT 0x840C
10342 #define GL_FRAGMENT_LIGHT7_EXT 0x8413
10343 
10344 typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALEXTPROC) (GLenum face, GLenum mode);
10345 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFEXTPROC) (GLenum pname, GLfloat param);
10346 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVEXTPROC) (GLenum pname, GLfloat* params);
10347 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIEXTPROC) (GLenum pname, GLint param);
10348 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVEXTPROC) (GLenum pname, GLint* params);
10349 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFEXTPROC) (GLenum light, GLenum pname, GLfloat param);
10350 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params);
10351 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIEXTPROC) (GLenum light, GLenum pname, GLint param);
10352 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params);
10353 typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFEXTPROC) (GLenum face, GLenum pname, const GLfloat param);
10354 typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params);
10355 typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIEXTPROC) (GLenum face, GLenum pname, const GLint param);
10356 typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params);
10357 typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params);
10358 typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params);
10359 typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params);
10360 typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params);
10361 typedef void (GLAPIENTRY * PFNGLLIGHTENVIEXTPROC) (GLenum pname, GLint param);
10362 
10363 #define glFragmentColorMaterialEXT GLEW_GET_FUN(__glewFragmentColorMaterialEXT)
10364 #define glFragmentLightModelfEXT GLEW_GET_FUN(__glewFragmentLightModelfEXT)
10365 #define glFragmentLightModelfvEXT GLEW_GET_FUN(__glewFragmentLightModelfvEXT)
10366 #define glFragmentLightModeliEXT GLEW_GET_FUN(__glewFragmentLightModeliEXT)
10367 #define glFragmentLightModelivEXT GLEW_GET_FUN(__glewFragmentLightModelivEXT)
10368 #define glFragmentLightfEXT GLEW_GET_FUN(__glewFragmentLightfEXT)
10369 #define glFragmentLightfvEXT GLEW_GET_FUN(__glewFragmentLightfvEXT)
10370 #define glFragmentLightiEXT GLEW_GET_FUN(__glewFragmentLightiEXT)
10371 #define glFragmentLightivEXT GLEW_GET_FUN(__glewFragmentLightivEXT)
10372 #define glFragmentMaterialfEXT GLEW_GET_FUN(__glewFragmentMaterialfEXT)
10373 #define glFragmentMaterialfvEXT GLEW_GET_FUN(__glewFragmentMaterialfvEXT)
10374 #define glFragmentMaterialiEXT GLEW_GET_FUN(__glewFragmentMaterialiEXT)
10375 #define glFragmentMaterialivEXT GLEW_GET_FUN(__glewFragmentMaterialivEXT)
10376 #define glGetFragmentLightfvEXT GLEW_GET_FUN(__glewGetFragmentLightfvEXT)
10377 #define glGetFragmentLightivEXT GLEW_GET_FUN(__glewGetFragmentLightivEXT)
10378 #define glGetFragmentMaterialfvEXT GLEW_GET_FUN(__glewGetFragmentMaterialfvEXT)
10379 #define glGetFragmentMaterialivEXT GLEW_GET_FUN(__glewGetFragmentMaterialivEXT)
10380 #define glLightEnviEXT GLEW_GET_FUN(__glewLightEnviEXT)
10381 
10382 #define GLEW_EXT_fragment_lighting GLEW_GET_VAR(__GLEW_EXT_fragment_lighting)
10383 
10384 #endif /* GL_EXT_fragment_lighting */
10385 
10386 /* ------------------------ GL_EXT_framebuffer_blit ------------------------ */
10387 
10388 #ifndef GL_EXT_framebuffer_blit
10389 #define GL_EXT_framebuffer_blit 1
10390 
10391 #define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6
10392 #define GL_READ_FRAMEBUFFER_EXT 0x8CA8
10393 #define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9
10394 #define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA
10395 
10396 typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
10397 
10398 #define glBlitFramebufferEXT GLEW_GET_FUN(__glewBlitFramebufferEXT)
10399 
10400 #define GLEW_EXT_framebuffer_blit GLEW_GET_VAR(__GLEW_EXT_framebuffer_blit)
10401 
10402 #endif /* GL_EXT_framebuffer_blit */
10403 
10404 /* --------------------- GL_EXT_framebuffer_multisample -------------------- */
10405 
10406 #ifndef GL_EXT_framebuffer_multisample
10407 #define GL_EXT_framebuffer_multisample 1
10408 
10409 #define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
10410 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
10411 #define GL_MAX_SAMPLES_EXT 0x8D57
10412 
10413 typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
10414 
10415 #define glRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewRenderbufferStorageMultisampleEXT)
10416 
10417 #define GLEW_EXT_framebuffer_multisample GLEW_GET_VAR(__GLEW_EXT_framebuffer_multisample)
10418 
10419 #endif /* GL_EXT_framebuffer_multisample */
10420 
10421 /* --------------- GL_EXT_framebuffer_multisample_blit_scaled -------------- */
10422 
10423 #ifndef GL_EXT_framebuffer_multisample_blit_scaled
10424 #define GL_EXT_framebuffer_multisample_blit_scaled 1
10425 
10426 #define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA
10427 #define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB
10428 
10429 #define GLEW_EXT_framebuffer_multisample_blit_scaled GLEW_GET_VAR(__GLEW_EXT_framebuffer_multisample_blit_scaled)
10430 
10431 #endif /* GL_EXT_framebuffer_multisample_blit_scaled */
10432 
10433 /* ----------------------- GL_EXT_framebuffer_object ----------------------- */
10434 
10435 #ifndef GL_EXT_framebuffer_object
10436 #define GL_EXT_framebuffer_object 1
10437 
10438 #define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
10439 #define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8
10440 #define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6
10441 #define GL_RENDERBUFFER_BINDING_EXT 0x8CA7
10442 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
10443 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
10444 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
10445 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
10446 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
10447 #define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
10448 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
10449 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
10450 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
10451 #define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
10452 #define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
10453 #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
10454 #define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD
10455 #define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
10456 #define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
10457 #define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
10458 #define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
10459 #define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
10460 #define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
10461 #define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
10462 #define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
10463 #define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
10464 #define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
10465 #define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
10466 #define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
10467 #define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
10468 #define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
10469 #define GL_COLOR_ATTACHMENT13_EXT 0x8CED
10470 #define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
10471 #define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
10472 #define GL_DEPTH_ATTACHMENT_EXT 0x8D00
10473 #define GL_STENCIL_ATTACHMENT_EXT 0x8D20
10474 #define GL_FRAMEBUFFER_EXT 0x8D40
10475 #define GL_RENDERBUFFER_EXT 0x8D41
10476 #define GL_RENDERBUFFER_WIDTH_EXT 0x8D42
10477 #define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43
10478 #define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
10479 #define GL_STENCIL_INDEX1_EXT 0x8D46
10480 #define GL_STENCIL_INDEX4_EXT 0x8D47
10481 #define GL_STENCIL_INDEX8_EXT 0x8D48
10482 #define GL_STENCIL_INDEX16_EXT 0x8D49
10483 #define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50
10484 #define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51
10485 #define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52
10486 #define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
10487 #define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
10488 #define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
10489 
10490 typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer);
10491 typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer);
10492 typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target);
10493 typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint* framebuffers);
10494 typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint* renderbuffers);
10495 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
10496 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
10497 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
10498 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
10499 typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint* framebuffers);
10500 typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint* renderbuffers);
10501 typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPEXTPROC) (GLenum target);
10502 typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params);
10503 typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params);
10504 typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer);
10505 typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer);
10506 typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
10507 
10508 #define glBindFramebufferEXT GLEW_GET_FUN(__glewBindFramebufferEXT)
10509 #define glBindRenderbufferEXT GLEW_GET_FUN(__glewBindRenderbufferEXT)
10510 #define glCheckFramebufferStatusEXT GLEW_GET_FUN(__glewCheckFramebufferStatusEXT)
10511 #define glDeleteFramebuffersEXT GLEW_GET_FUN(__glewDeleteFramebuffersEXT)
10512 #define glDeleteRenderbuffersEXT GLEW_GET_FUN(__glewDeleteRenderbuffersEXT)
10513 #define glFramebufferRenderbufferEXT GLEW_GET_FUN(__glewFramebufferRenderbufferEXT)
10514 #define glFramebufferTexture1DEXT GLEW_GET_FUN(__glewFramebufferTexture1DEXT)
10515 #define glFramebufferTexture2DEXT GLEW_GET_FUN(__glewFramebufferTexture2DEXT)
10516 #define glFramebufferTexture3DEXT GLEW_GET_FUN(__glewFramebufferTexture3DEXT)
10517 #define glGenFramebuffersEXT GLEW_GET_FUN(__glewGenFramebuffersEXT)
10518 #define glGenRenderbuffersEXT GLEW_GET_FUN(__glewGenRenderbuffersEXT)
10519 #define glGenerateMipmapEXT GLEW_GET_FUN(__glewGenerateMipmapEXT)
10520 #define glGetFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetFramebufferAttachmentParameterivEXT)
10521 #define glGetRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetRenderbufferParameterivEXT)
10522 #define glIsFramebufferEXT GLEW_GET_FUN(__glewIsFramebufferEXT)
10523 #define glIsRenderbufferEXT GLEW_GET_FUN(__glewIsRenderbufferEXT)
10524 #define glRenderbufferStorageEXT GLEW_GET_FUN(__glewRenderbufferStorageEXT)
10525 
10526 #define GLEW_EXT_framebuffer_object GLEW_GET_VAR(__GLEW_EXT_framebuffer_object)
10527 
10528 #endif /* GL_EXT_framebuffer_object */
10529 
10530 /* ------------------------ GL_EXT_framebuffer_sRGB ------------------------ */
10531 
10532 #ifndef GL_EXT_framebuffer_sRGB
10533 #define GL_EXT_framebuffer_sRGB 1
10534 
10535 #define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
10536 #define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA
10537 
10538 #define GLEW_EXT_framebuffer_sRGB GLEW_GET_VAR(__GLEW_EXT_framebuffer_sRGB)
10539 
10540 #endif /* GL_EXT_framebuffer_sRGB */
10541 
10542 /* ----------------------- GL_EXT_geometry_point_size ---------------------- */
10543 
10544 #ifndef GL_EXT_geometry_point_size
10545 #define GL_EXT_geometry_point_size 1
10546 
10547 #define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004
10548 #define GL_LINES_ADJACENCY_EXT 0xA
10549 #define GL_LINE_STRIP_ADJACENCY_EXT 0xB
10550 #define GL_TRIANGLES_ADJACENCY_EXT 0xC
10551 #define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD
10552 #define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E
10553 #define GL_UNDEFINED_VERTEX_EXT 0x8260
10554 #define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F
10555 #define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916
10556 #define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917
10557 #define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918
10558 #define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C
10559 #define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32
10560 #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
10561 #define GL_PRIMITIVES_GENERATED_EXT 0x8C87
10562 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
10563 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
10564 #define GL_GEOMETRY_SHADER_EXT 0x8DD9
10565 #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
10566 #define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
10567 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
10568 #define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D
10569 #define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E
10570 #define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A
10571 #define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD
10572 #define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7
10573 #define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123
10574 #define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124
10575 #define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF
10576 #define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5
10577 #define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309
10578 #define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312
10579 #define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317
10580 
10581 #define GLEW_EXT_geometry_point_size GLEW_GET_VAR(__GLEW_EXT_geometry_point_size)
10582 
10583 #endif /* GL_EXT_geometry_point_size */
10584 
10585 /* ------------------------- GL_EXT_geometry_shader ------------------------ */
10586 
10587 #ifndef GL_EXT_geometry_shader
10588 #define GL_EXT_geometry_shader 1
10589 
10590 #define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004
10591 #define GL_LINES_ADJACENCY_EXT 0xA
10592 #define GL_LINE_STRIP_ADJACENCY_EXT 0xB
10593 #define GL_TRIANGLES_ADJACENCY_EXT 0xC
10594 #define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD
10595 #define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E
10596 #define GL_UNDEFINED_VERTEX_EXT 0x8260
10597 #define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F
10598 #define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916
10599 #define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917
10600 #define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918
10601 #define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C
10602 #define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32
10603 #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
10604 #define GL_PRIMITIVES_GENERATED_EXT 0x8C87
10605 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
10606 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
10607 #define GL_GEOMETRY_SHADER_EXT 0x8DD9
10608 #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
10609 #define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
10610 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
10611 #define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D
10612 #define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E
10613 #define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A
10614 #define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD
10615 #define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7
10616 #define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123
10617 #define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124
10618 #define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF
10619 #define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5
10620 #define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309
10621 #define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312
10622 #define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317
10623 
10624 #define GLEW_EXT_geometry_shader GLEW_GET_VAR(__GLEW_EXT_geometry_shader)
10625 
10626 #endif /* GL_EXT_geometry_shader */
10627 
10628 /* ------------------------ GL_EXT_geometry_shader4 ------------------------ */
10629 
10630 #ifndef GL_EXT_geometry_shader4
10631 #define GL_EXT_geometry_shader4 1
10632 
10633 #define GL_LINES_ADJACENCY_EXT 0xA
10634 #define GL_LINE_STRIP_ADJACENCY_EXT 0xB
10635 #define GL_TRIANGLES_ADJACENCY_EXT 0xC
10636 #define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD
10637 #define GL_PROGRAM_POINT_SIZE_EXT 0x8642
10638 #define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B
10639 #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
10640 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
10641 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
10642 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
10643 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9
10644 #define GL_GEOMETRY_SHADER_EXT 0x8DD9
10645 #define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA
10646 #define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB
10647 #define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC
10648 #define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD
10649 #define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE
10650 #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
10651 #define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
10652 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
10653 
10654 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
10655 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
10656 typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value);
10657 
10658 #define glFramebufferTextureEXT GLEW_GET_FUN(__glewFramebufferTextureEXT)
10659 #define glFramebufferTextureFaceEXT GLEW_GET_FUN(__glewFramebufferTextureFaceEXT)
10660 #define glProgramParameteriEXT GLEW_GET_FUN(__glewProgramParameteriEXT)
10661 
10662 #define GLEW_EXT_geometry_shader4 GLEW_GET_VAR(__GLEW_EXT_geometry_shader4)
10663 
10664 #endif /* GL_EXT_geometry_shader4 */
10665 
10666 /* --------------------- GL_EXT_gpu_program_parameters --------------------- */
10667 
10668 #ifndef GL_EXT_gpu_program_parameters
10669 #define GL_EXT_gpu_program_parameters 1
10670 
10671 typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params);
10672 typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params);
10673 
10674 #define glProgramEnvParameters4fvEXT GLEW_GET_FUN(__glewProgramEnvParameters4fvEXT)
10675 #define glProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewProgramLocalParameters4fvEXT)
10676 
10677 #define GLEW_EXT_gpu_program_parameters GLEW_GET_VAR(__GLEW_EXT_gpu_program_parameters)
10678 
10679 #endif /* GL_EXT_gpu_program_parameters */
10680 
10681 /* --------------------------- GL_EXT_gpu_shader4 -------------------------- */
10682 
10683 #ifndef GL_EXT_gpu_shader4
10684 #define GL_EXT_gpu_shader4 1
10685 
10686 #define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD
10687 #define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0
10688 #define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1
10689 #define GL_SAMPLER_BUFFER_EXT 0x8DC2
10690 #define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3
10691 #define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4
10692 #define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5
10693 #define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6
10694 #define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7
10695 #define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8
10696 #define GL_INT_SAMPLER_1D_EXT 0x8DC9
10697 #define GL_INT_SAMPLER_2D_EXT 0x8DCA
10698 #define GL_INT_SAMPLER_3D_EXT 0x8DCB
10699 #define GL_INT_SAMPLER_CUBE_EXT 0x8DCC
10700 #define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD
10701 #define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE
10702 #define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF
10703 #define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0
10704 #define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1
10705 #define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2
10706 #define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3
10707 #define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4
10708 #define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5
10709 #define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6
10710 #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7
10711 #define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8
10712 
10713 typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name);
10714 typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name);
10715 typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params);
10716 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params);
10717 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params);
10718 typedef void (GLAPIENTRY * PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0);
10719 typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
10720 typedef void (GLAPIENTRY * PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1);
10721 typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
10722 typedef void (GLAPIENTRY * PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
10723 typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
10724 typedef void (GLAPIENTRY * PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
10725 typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
10726 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x);
10727 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v);
10728 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x);
10729 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v);
10730 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y);
10731 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v);
10732 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y);
10733 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v);
10734 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z);
10735 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v);
10736 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z);
10737 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v);
10738 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v);
10739 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
10740 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v);
10741 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v);
10742 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v);
10743 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
10744 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v);
10745 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v);
10746 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
10747 
10748 #define glBindFragDataLocationEXT GLEW_GET_FUN(__glewBindFragDataLocationEXT)
10749 #define glGetFragDataLocationEXT GLEW_GET_FUN(__glewGetFragDataLocationEXT)
10750 #define glGetUniformuivEXT GLEW_GET_FUN(__glewGetUniformuivEXT)
10751 #define glGetVertexAttribIivEXT GLEW_GET_FUN(__glewGetVertexAttribIivEXT)
10752 #define glGetVertexAttribIuivEXT GLEW_GET_FUN(__glewGetVertexAttribIuivEXT)
10753 #define glUniform1uiEXT GLEW_GET_FUN(__glewUniform1uiEXT)
10754 #define glUniform1uivEXT GLEW_GET_FUN(__glewUniform1uivEXT)
10755 #define glUniform2uiEXT GLEW_GET_FUN(__glewUniform2uiEXT)
10756 #define glUniform2uivEXT GLEW_GET_FUN(__glewUniform2uivEXT)
10757 #define glUniform3uiEXT GLEW_GET_FUN(__glewUniform3uiEXT)
10758 #define glUniform3uivEXT GLEW_GET_FUN(__glewUniform3uivEXT)
10759 #define glUniform4uiEXT GLEW_GET_FUN(__glewUniform4uiEXT)
10760 #define glUniform4uivEXT GLEW_GET_FUN(__glewUniform4uivEXT)
10761 #define glVertexAttribI1iEXT GLEW_GET_FUN(__glewVertexAttribI1iEXT)
10762 #define glVertexAttribI1ivEXT GLEW_GET_FUN(__glewVertexAttribI1ivEXT)
10763 #define glVertexAttribI1uiEXT GLEW_GET_FUN(__glewVertexAttribI1uiEXT)
10764 #define glVertexAttribI1uivEXT GLEW_GET_FUN(__glewVertexAttribI1uivEXT)
10765 #define glVertexAttribI2iEXT GLEW_GET_FUN(__glewVertexAttribI2iEXT)
10766 #define glVertexAttribI2ivEXT GLEW_GET_FUN(__glewVertexAttribI2ivEXT)
10767 #define glVertexAttribI2uiEXT GLEW_GET_FUN(__glewVertexAttribI2uiEXT)
10768 #define glVertexAttribI2uivEXT GLEW_GET_FUN(__glewVertexAttribI2uivEXT)
10769 #define glVertexAttribI3iEXT GLEW_GET_FUN(__glewVertexAttribI3iEXT)
10770 #define glVertexAttribI3ivEXT GLEW_GET_FUN(__glewVertexAttribI3ivEXT)
10771 #define glVertexAttribI3uiEXT GLEW_GET_FUN(__glewVertexAttribI3uiEXT)
10772 #define glVertexAttribI3uivEXT GLEW_GET_FUN(__glewVertexAttribI3uivEXT)
10773 #define glVertexAttribI4bvEXT GLEW_GET_FUN(__glewVertexAttribI4bvEXT)
10774 #define glVertexAttribI4iEXT GLEW_GET_FUN(__glewVertexAttribI4iEXT)
10775 #define glVertexAttribI4ivEXT GLEW_GET_FUN(__glewVertexAttribI4ivEXT)
10776 #define glVertexAttribI4svEXT GLEW_GET_FUN(__glewVertexAttribI4svEXT)
10777 #define glVertexAttribI4ubvEXT GLEW_GET_FUN(__glewVertexAttribI4ubvEXT)
10778 #define glVertexAttribI4uiEXT GLEW_GET_FUN(__glewVertexAttribI4uiEXT)
10779 #define glVertexAttribI4uivEXT GLEW_GET_FUN(__glewVertexAttribI4uivEXT)
10780 #define glVertexAttribI4usvEXT GLEW_GET_FUN(__glewVertexAttribI4usvEXT)
10781 #define glVertexAttribIPointerEXT GLEW_GET_FUN(__glewVertexAttribIPointerEXT)
10782 
10783 #define GLEW_EXT_gpu_shader4 GLEW_GET_VAR(__GLEW_EXT_gpu_shader4)
10784 
10785 #endif /* GL_EXT_gpu_shader4 */
10786 
10787 /* --------------------------- GL_EXT_gpu_shader5 -------------------------- */
10788 
10789 #ifndef GL_EXT_gpu_shader5
10790 #define GL_EXT_gpu_shader5 1
10791 
10792 #define GLEW_EXT_gpu_shader5 GLEW_GET_VAR(__GLEW_EXT_gpu_shader5)
10793 
10794 #endif /* GL_EXT_gpu_shader5 */
10795 
10796 /* ---------------------------- GL_EXT_histogram --------------------------- */
10797 
10798 #ifndef GL_EXT_histogram
10799 #define GL_EXT_histogram 1
10800 
10801 #define GL_HISTOGRAM_EXT 0x8024
10802 #define GL_PROXY_HISTOGRAM_EXT 0x8025
10803 #define GL_HISTOGRAM_WIDTH_EXT 0x8026
10804 #define GL_HISTOGRAM_FORMAT_EXT 0x8027
10805 #define GL_HISTOGRAM_RED_SIZE_EXT 0x8028
10806 #define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029
10807 #define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A
10808 #define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B
10809 #define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C
10810 #define GL_HISTOGRAM_SINK_EXT 0x802D
10811 #define GL_MINMAX_EXT 0x802E
10812 #define GL_MINMAX_FORMAT_EXT 0x802F
10813 #define GL_MINMAX_SINK_EXT 0x8030
10814 
10815 typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values);
10816 typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params);
10817 typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params);
10818 typedef void (GLAPIENTRY * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values);
10819 typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params);
10820 typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params);
10821 typedef void (GLAPIENTRY * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
10822 typedef void (GLAPIENTRY * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink);
10823 typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target);
10824 typedef void (GLAPIENTRY * PFNGLRESETMINMAXEXTPROC) (GLenum target);
10825 
10826 #define glGetHistogramEXT GLEW_GET_FUN(__glewGetHistogramEXT)
10827 #define glGetHistogramParameterfvEXT GLEW_GET_FUN(__glewGetHistogramParameterfvEXT)
10828 #define glGetHistogramParameterivEXT GLEW_GET_FUN(__glewGetHistogramParameterivEXT)
10829 #define glGetMinmaxEXT GLEW_GET_FUN(__glewGetMinmaxEXT)
10830 #define glGetMinmaxParameterfvEXT GLEW_GET_FUN(__glewGetMinmaxParameterfvEXT)
10831 #define glGetMinmaxParameterivEXT GLEW_GET_FUN(__glewGetMinmaxParameterivEXT)
10832 #define glHistogramEXT GLEW_GET_FUN(__glewHistogramEXT)
10833 #define glMinmaxEXT GLEW_GET_FUN(__glewMinmaxEXT)
10834 #define glResetHistogramEXT GLEW_GET_FUN(__glewResetHistogramEXT)
10835 #define glResetMinmaxEXT GLEW_GET_FUN(__glewResetMinmaxEXT)
10836 
10837 #define GLEW_EXT_histogram GLEW_GET_VAR(__GLEW_EXT_histogram)
10838 
10839 #endif /* GL_EXT_histogram */
10840 
10841 /* ----------------------- GL_EXT_index_array_formats ---------------------- */
10842 
10843 #ifndef GL_EXT_index_array_formats
10844 #define GL_EXT_index_array_formats 1
10845 
10846 #define GLEW_EXT_index_array_formats GLEW_GET_VAR(__GLEW_EXT_index_array_formats)
10847 
10848 #endif /* GL_EXT_index_array_formats */
10849 
10850 /* --------------------------- GL_EXT_index_func --------------------------- */
10851 
10852 #ifndef GL_EXT_index_func
10853 #define GL_EXT_index_func 1
10854 
10855 typedef void (GLAPIENTRY * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLfloat ref);
10856 
10857 #define glIndexFuncEXT GLEW_GET_FUN(__glewIndexFuncEXT)
10858 
10859 #define GLEW_EXT_index_func GLEW_GET_VAR(__GLEW_EXT_index_func)
10860 
10861 #endif /* GL_EXT_index_func */
10862 
10863 /* ------------------------- GL_EXT_index_material ------------------------- */
10864 
10865 #ifndef GL_EXT_index_material
10866 #define GL_EXT_index_material 1
10867 
10868 typedef void (GLAPIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode);
10869 
10870 #define glIndexMaterialEXT GLEW_GET_FUN(__glewIndexMaterialEXT)
10871 
10872 #define GLEW_EXT_index_material GLEW_GET_VAR(__GLEW_EXT_index_material)
10873 
10874 #endif /* GL_EXT_index_material */
10875 
10876 /* -------------------------- GL_EXT_index_texture ------------------------- */
10877 
10878 #ifndef GL_EXT_index_texture
10879 #define GL_EXT_index_texture 1
10880 
10881 #define GLEW_EXT_index_texture GLEW_GET_VAR(__GLEW_EXT_index_texture)
10882 
10883 #endif /* GL_EXT_index_texture */
10884 
10885 /* ------------------------ GL_EXT_instanced_arrays ------------------------ */
10886 
10887 #ifndef GL_EXT_instanced_arrays
10888 #define GL_EXT_instanced_arrays 1
10889 
10890 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT 0x88FE
10891 
10892 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor);
10893 
10894 #define glVertexAttribDivisorEXT GLEW_GET_FUN(__glewVertexAttribDivisorEXT)
10895 
10896 #define GLEW_EXT_instanced_arrays GLEW_GET_VAR(__GLEW_EXT_instanced_arrays)
10897 
10898 #endif /* GL_EXT_instanced_arrays */
10899 
10900 /* -------------------------- GL_EXT_light_texture ------------------------- */
10901 
10902 #ifndef GL_EXT_light_texture
10903 #define GL_EXT_light_texture 1
10904 
10905 #define GL_FRAGMENT_MATERIAL_EXT 0x8349
10906 #define GL_FRAGMENT_NORMAL_EXT 0x834A
10907 #define GL_FRAGMENT_COLOR_EXT 0x834C
10908 #define GL_ATTENUATION_EXT 0x834D
10909 #define GL_SHADOW_ATTENUATION_EXT 0x834E
10910 #define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F
10911 #define GL_TEXTURE_LIGHT_EXT 0x8350
10912 #define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351
10913 #define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352
10914 
10915 typedef void (GLAPIENTRY * PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode);
10916 typedef void (GLAPIENTRY * PFNGLTEXTURELIGHTEXTPROC) (GLenum pname);
10917 typedef void (GLAPIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode);
10918 
10919 #define glApplyTextureEXT GLEW_GET_FUN(__glewApplyTextureEXT)
10920 #define glTextureLightEXT GLEW_GET_FUN(__glewTextureLightEXT)
10921 #define glTextureMaterialEXT GLEW_GET_FUN(__glewTextureMaterialEXT)
10922 
10923 #define GLEW_EXT_light_texture GLEW_GET_VAR(__GLEW_EXT_light_texture)
10924 
10925 #endif /* GL_EXT_light_texture */
10926 
10927 /* ------------------------ GL_EXT_map_buffer_range ------------------------ */
10928 
10929 #ifndef GL_EXT_map_buffer_range
10930 #define GL_EXT_map_buffer_range 1
10931 
10932 #define GL_MAP_READ_BIT_EXT 0x0001
10933 #define GL_MAP_WRITE_BIT_EXT 0x0002
10934 #define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004
10935 #define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008
10936 #define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010
10937 #define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020
10938 
10939 typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
10940 typedef void * (GLAPIENTRY * PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
10941 
10942 #define glFlushMappedBufferRangeEXT GLEW_GET_FUN(__glewFlushMappedBufferRangeEXT)
10943 #define glMapBufferRangeEXT GLEW_GET_FUN(__glewMapBufferRangeEXT)
10944 
10945 #define GLEW_EXT_map_buffer_range GLEW_GET_VAR(__GLEW_EXT_map_buffer_range)
10946 
10947 #endif /* GL_EXT_map_buffer_range */
10948 
10949 /* -------------------------- GL_EXT_memory_object ------------------------- */
10950 
10951 #ifndef GL_EXT_memory_object
10952 #define GL_EXT_memory_object 1
10953 
10954 #define GL_UUID_SIZE_EXT 16
10955 #define GL_TEXTURE_TILING_EXT 0x9580
10956 #define GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581
10957 #define GL_NUM_TILING_TYPES_EXT 0x9582
10958 #define GL_TILING_TYPES_EXT 0x9583
10959 #define GL_OPTIMAL_TILING_EXT 0x9584
10960 #define GL_LINEAR_TILING_EXT 0x9585
10961 #define GL_LAYOUT_GENERAL_EXT 0x958D
10962 #define GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E
10963 #define GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F
10964 #define GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590
10965 #define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591
10966 #define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592
10967 #define GL_LAYOUT_TRANSFER_DST_EXT 0x9593
10968 #define GL_NUM_DEVICE_UUIDS_EXT 0x9596
10969 #define GL_DEVICE_UUID_EXT 0x9597
10970 #define GL_DRIVER_UUID_EXT 0x9598
10971 #define GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B
10972 
10973 typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEMEMEXTPROC) (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset);
10974 typedef void (GLAPIENTRY * PFNGLCREATEMEMORYOBJECTSEXTPROC) (GLsizei n, GLuint* memoryObjects);
10975 typedef void (GLAPIENTRY * PFNGLDELETEMEMORYOBJECTSEXTPROC) (GLsizei n, const GLuint* memoryObjects);
10976 typedef void (GLAPIENTRY * PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, GLint* params);
10977 typedef void (GLAPIENTRY * PFNGLGETUNSIGNEDBYTEI_VEXTPROC) (GLenum target, GLuint index, GLubyte* data);
10978 typedef void (GLAPIENTRY * PFNGLGETUNSIGNEDBYTEVEXTPROC) (GLenum pname, GLubyte* data);
10979 typedef GLboolean (GLAPIENTRY * PFNGLISMEMORYOBJECTEXTPROC) (GLuint memoryObject);
10980 typedef void (GLAPIENTRY * PFNGLMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, const GLint* params);
10981 typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC) (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset);
10982 typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset);
10983 typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset);
10984 typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
10985 typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset);
10986 typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
10987 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM1DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset);
10988 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM2DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset);
10989 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
10990 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM3DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset);
10991 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
10992 
10993 #define glBufferStorageMemEXT GLEW_GET_FUN(__glewBufferStorageMemEXT)
10994 #define glCreateMemoryObjectsEXT GLEW_GET_FUN(__glewCreateMemoryObjectsEXT)
10995 #define glDeleteMemoryObjectsEXT GLEW_GET_FUN(__glewDeleteMemoryObjectsEXT)
10996 #define glGetMemoryObjectParameterivEXT GLEW_GET_FUN(__glewGetMemoryObjectParameterivEXT)
10997 #define glGetUnsignedBytei_vEXT GLEW_GET_FUN(__glewGetUnsignedBytei_vEXT)
10998 #define glGetUnsignedBytevEXT GLEW_GET_FUN(__glewGetUnsignedBytevEXT)
10999 #define glIsMemoryObjectEXT GLEW_GET_FUN(__glewIsMemoryObjectEXT)
11000 #define glMemoryObjectParameterivEXT GLEW_GET_FUN(__glewMemoryObjectParameterivEXT)
11001 #define glNamedBufferStorageMemEXT GLEW_GET_FUN(__glewNamedBufferStorageMemEXT)
11002 #define glTexStorageMem1DEXT GLEW_GET_FUN(__glewTexStorageMem1DEXT)
11003 #define glTexStorageMem2DEXT GLEW_GET_FUN(__glewTexStorageMem2DEXT)
11004 #define glTexStorageMem2DMultisampleEXT GLEW_GET_FUN(__glewTexStorageMem2DMultisampleEXT)
11005 #define glTexStorageMem3DEXT GLEW_GET_FUN(__glewTexStorageMem3DEXT)
11006 #define glTexStorageMem3DMultisampleEXT GLEW_GET_FUN(__glewTexStorageMem3DMultisampleEXT)
11007 #define glTextureStorageMem1DEXT GLEW_GET_FUN(__glewTextureStorageMem1DEXT)
11008 #define glTextureStorageMem2DEXT GLEW_GET_FUN(__glewTextureStorageMem2DEXT)
11009 #define glTextureStorageMem2DMultisampleEXT GLEW_GET_FUN(__glewTextureStorageMem2DMultisampleEXT)
11010 #define glTextureStorageMem3DEXT GLEW_GET_FUN(__glewTextureStorageMem3DEXT)
11011 #define glTextureStorageMem3DMultisampleEXT GLEW_GET_FUN(__glewTextureStorageMem3DMultisampleEXT)
11012 
11013 #define GLEW_EXT_memory_object GLEW_GET_VAR(__GLEW_EXT_memory_object)
11014 
11015 #endif /* GL_EXT_memory_object */
11016 
11017 /* ------------------------ GL_EXT_memory_object_fd ------------------------ */
11018 
11019 #ifndef GL_EXT_memory_object_fd
11020 #define GL_EXT_memory_object_fd 1
11021 
11022 #define GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586
11023 
11024 typedef void (GLAPIENTRY * PFNGLIMPORTMEMORYFDEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, GLint fd);
11025 
11026 #define glImportMemoryFdEXT GLEW_GET_FUN(__glewImportMemoryFdEXT)
11027 
11028 #define GLEW_EXT_memory_object_fd GLEW_GET_VAR(__GLEW_EXT_memory_object_fd)
11029 
11030 #endif /* GL_EXT_memory_object_fd */
11031 
11032 /* ----------------------- GL_EXT_memory_object_win32 ---------------------- */
11033 
11034 #ifndef GL_EXT_memory_object_win32
11035 #define GL_EXT_memory_object_win32 1
11036 
11037 #define GL_LUID_SIZE_EXT 8
11038 #define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587
11039 #define GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588
11040 #define GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589
11041 #define GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A
11042 #define GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B
11043 #define GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C
11044 #define GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594
11045 #define GL_D3D12_FENCE_VALUE_EXT 0x9595
11046 #define GL_DEVICE_LUID_EXT 0x9599
11047 #define GL_DEVICE_NODE_MASK_EXT 0x959A
11048 
11049 typedef void (GLAPIENTRY * PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, void *handle);
11050 typedef void (GLAPIENTRY * PFNGLIMPORTMEMORYWIN32NAMEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, const void *name);
11051 
11052 #define glImportMemoryWin32HandleEXT GLEW_GET_FUN(__glewImportMemoryWin32HandleEXT)
11053 #define glImportMemoryWin32NameEXT GLEW_GET_FUN(__glewImportMemoryWin32NameEXT)
11054 
11055 #define GLEW_EXT_memory_object_win32 GLEW_GET_VAR(__GLEW_EXT_memory_object_win32)
11056 
11057 #endif /* GL_EXT_memory_object_win32 */
11058 
11059 /* ------------------------- GL_EXT_misc_attribute ------------------------- */
11060 
11061 #ifndef GL_EXT_misc_attribute
11062 #define GL_EXT_misc_attribute 1
11063 
11064 #define GLEW_EXT_misc_attribute GLEW_GET_VAR(__GLEW_EXT_misc_attribute)
11065 
11066 #endif /* GL_EXT_misc_attribute */
11067 
11068 /* ------------------------ GL_EXT_multi_draw_arrays ----------------------- */
11069 
11070 #ifndef GL_EXT_multi_draw_arrays
11071 #define GL_EXT_multi_draw_arrays 1
11072 
11073 typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount);
11074 typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, GLsizei* count, GLenum type, const void *const *indices, GLsizei primcount);
11075 
11076 #define glMultiDrawArraysEXT GLEW_GET_FUN(__glewMultiDrawArraysEXT)
11077 #define glMultiDrawElementsEXT GLEW_GET_FUN(__glewMultiDrawElementsEXT)
11078 
11079 #define GLEW_EXT_multi_draw_arrays GLEW_GET_VAR(__GLEW_EXT_multi_draw_arrays)
11080 
11081 #endif /* GL_EXT_multi_draw_arrays */
11082 
11083 /* ----------------------- GL_EXT_multi_draw_indirect ---------------------- */
11084 
11085 #ifndef GL_EXT_multi_draw_indirect
11086 #define GL_EXT_multi_draw_indirect 1
11087 
11088 typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride);
11089 typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride);
11090 
11091 #define glMultiDrawArraysIndirectEXT GLEW_GET_FUN(__glewMultiDrawArraysIndirectEXT)
11092 #define glMultiDrawElementsIndirectEXT GLEW_GET_FUN(__glewMultiDrawElementsIndirectEXT)
11093 
11094 #define GLEW_EXT_multi_draw_indirect GLEW_GET_VAR(__GLEW_EXT_multi_draw_indirect)
11095 
11096 #endif /* GL_EXT_multi_draw_indirect */
11097 
11098 /* ------------------------ GL_EXT_multiple_textures ----------------------- */
11099 
11100 #ifndef GL_EXT_multiple_textures
11101 #define GL_EXT_multiple_textures 1
11102 
11103 #define GLEW_EXT_multiple_textures GLEW_GET_VAR(__GLEW_EXT_multiple_textures)
11104 
11105 #endif /* GL_EXT_multiple_textures */
11106 
11107 /* --------------------------- GL_EXT_multisample -------------------------- */
11108 
11109 #ifndef GL_EXT_multisample
11110 #define GL_EXT_multisample 1
11111 
11112 #define GL_MULTISAMPLE_EXT 0x809D
11113 #define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E
11114 #define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F
11115 #define GL_SAMPLE_MASK_EXT 0x80A0
11116 #define GL_1PASS_EXT 0x80A1
11117 #define GL_2PASS_0_EXT 0x80A2
11118 #define GL_2PASS_1_EXT 0x80A3
11119 #define GL_4PASS_0_EXT 0x80A4
11120 #define GL_4PASS_1_EXT 0x80A5
11121 #define GL_4PASS_2_EXT 0x80A6
11122 #define GL_4PASS_3_EXT 0x80A7
11123 #define GL_SAMPLE_BUFFERS_EXT 0x80A8
11124 #define GL_SAMPLES_EXT 0x80A9
11125 #define GL_SAMPLE_MASK_VALUE_EXT 0x80AA
11126 #define GL_SAMPLE_MASK_INVERT_EXT 0x80AB
11127 #define GL_SAMPLE_PATTERN_EXT 0x80AC
11128 #define GL_MULTISAMPLE_BIT_EXT 0x20000000
11129 
11130 typedef void (GLAPIENTRY * PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert);
11131 typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern);
11132 
11133 #define glSampleMaskEXT GLEW_GET_FUN(__glewSampleMaskEXT)
11134 #define glSamplePatternEXT GLEW_GET_FUN(__glewSamplePatternEXT)
11135 
11136 #define GLEW_EXT_multisample GLEW_GET_VAR(__GLEW_EXT_multisample)
11137 
11138 #endif /* GL_EXT_multisample */
11139 
11140 /* -------------------- GL_EXT_multisample_compatibility ------------------- */
11141 
11142 #ifndef GL_EXT_multisample_compatibility
11143 #define GL_EXT_multisample_compatibility 1
11144 
11145 #define GL_MULTISAMPLE_EXT 0x809D
11146 #define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F
11147 
11148 #define GLEW_EXT_multisample_compatibility GLEW_GET_VAR(__GLEW_EXT_multisample_compatibility)
11149 
11150 #endif /* GL_EXT_multisample_compatibility */
11151 
11152 /* ----------------- GL_EXT_multisampled_render_to_texture ----------------- */
11153 
11154 #ifndef GL_EXT_multisampled_render_to_texture
11155 #define GL_EXT_multisampled_render_to_texture 1
11156 
11157 #define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
11158 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
11159 #define GL_MAX_SAMPLES_EXT 0x8D57
11160 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C
11161 
11162 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
11163 
11164 #define glFramebufferTexture2DMultisampleEXT GLEW_GET_FUN(__glewFramebufferTexture2DMultisampleEXT)
11165 
11166 #define GLEW_EXT_multisampled_render_to_texture GLEW_GET_VAR(__GLEW_EXT_multisampled_render_to_texture)
11167 
11168 #endif /* GL_EXT_multisampled_render_to_texture */
11169 
11170 /* ----------------- GL_EXT_multisampled_render_to_texture2 ---------------- */
11171 
11172 #ifndef GL_EXT_multisampled_render_to_texture2
11173 #define GL_EXT_multisampled_render_to_texture2 1
11174 
11175 #define GLEW_EXT_multisampled_render_to_texture2 GLEW_GET_VAR(__GLEW_EXT_multisampled_render_to_texture2)
11176 
11177 #endif /* GL_EXT_multisampled_render_to_texture2 */
11178 
11179 /* --------------------- GL_EXT_multiview_draw_buffers --------------------- */
11180 
11181 #ifndef GL_EXT_multiview_draw_buffers
11182 #define GL_EXT_multiview_draw_buffers 1
11183 
11184 #define GL_DRAW_BUFFER_EXT 0x0C01
11185 #define GL_READ_BUFFER_EXT 0x0C02
11186 #define GL_COLOR_ATTACHMENT_EXT 0x90F0
11187 #define GL_MULTIVIEW_EXT 0x90F1
11188 #define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2
11189 
11190 typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum* location, const GLint *indices);
11191 typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint* data);
11192 typedef void (GLAPIENTRY * PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index);
11193 
11194 #define glDrawBuffersIndexedEXT GLEW_GET_FUN(__glewDrawBuffersIndexedEXT)
11195 #define glGetIntegeri_vEXT GLEW_GET_FUN(__glewGetIntegeri_vEXT)
11196 #define glReadBufferIndexedEXT GLEW_GET_FUN(__glewReadBufferIndexedEXT)
11197 
11198 #define GLEW_EXT_multiview_draw_buffers GLEW_GET_VAR(__GLEW_EXT_multiview_draw_buffers)
11199 
11200 #endif /* GL_EXT_multiview_draw_buffers */
11201 
11202 /* ---------------------- GL_EXT_packed_depth_stencil ---------------------- */
11203 
11204 #ifndef GL_EXT_packed_depth_stencil
11205 #define GL_EXT_packed_depth_stencil 1
11206 
11207 #define GL_DEPTH_STENCIL_EXT 0x84F9
11208 #define GL_UNSIGNED_INT_24_8_EXT 0x84FA
11209 #define GL_DEPTH24_STENCIL8_EXT 0x88F0
11210 #define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1
11211 
11212 #define GLEW_EXT_packed_depth_stencil GLEW_GET_VAR(__GLEW_EXT_packed_depth_stencil)
11213 
11214 #endif /* GL_EXT_packed_depth_stencil */
11215 
11216 /* -------------------------- GL_EXT_packed_float -------------------------- */
11217 
11218 #ifndef GL_EXT_packed_float
11219 #define GL_EXT_packed_float 1
11220 
11221 #define GL_R11F_G11F_B10F_EXT 0x8C3A
11222 #define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B
11223 #define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C
11224 
11225 #define GLEW_EXT_packed_float GLEW_GET_VAR(__GLEW_EXT_packed_float)
11226 
11227 #endif /* GL_EXT_packed_float */
11228 
11229 /* -------------------------- GL_EXT_packed_pixels ------------------------- */
11230 
11231 #ifndef GL_EXT_packed_pixels
11232 #define GL_EXT_packed_pixels 1
11233 
11234 #define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032
11235 #define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033
11236 #define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034
11237 #define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035
11238 #define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036
11239 
11240 #define GLEW_EXT_packed_pixels GLEW_GET_VAR(__GLEW_EXT_packed_pixels)
11241 
11242 #endif /* GL_EXT_packed_pixels */
11243 
11244 /* ------------------------ GL_EXT_paletted_texture ------------------------ */
11245 
11246 #ifndef GL_EXT_paletted_texture
11247 #define GL_EXT_paletted_texture 1
11248 
11249 #define GL_TEXTURE_1D 0x0DE0
11250 #define GL_TEXTURE_2D 0x0DE1
11251 #define GL_PROXY_TEXTURE_1D 0x8063
11252 #define GL_PROXY_TEXTURE_2D 0x8064
11253 #define GL_COLOR_TABLE_FORMAT_EXT 0x80D8
11254 #define GL_COLOR_TABLE_WIDTH_EXT 0x80D9
11255 #define GL_COLOR_TABLE_RED_SIZE_EXT 0x80DA
11256 #define GL_COLOR_TABLE_GREEN_SIZE_EXT 0x80DB
11257 #define GL_COLOR_TABLE_BLUE_SIZE_EXT 0x80DC
11258 #define GL_COLOR_TABLE_ALPHA_SIZE_EXT 0x80DD
11259 #define GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80DE
11260 #define GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80DF
11261 #define GL_COLOR_INDEX1_EXT 0x80E2
11262 #define GL_COLOR_INDEX2_EXT 0x80E3
11263 #define GL_COLOR_INDEX4_EXT 0x80E4
11264 #define GL_COLOR_INDEX8_EXT 0x80E5
11265 #define GL_COLOR_INDEX12_EXT 0x80E6
11266 #define GL_COLOR_INDEX16_EXT 0x80E7
11267 #define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED
11268 #define GL_TEXTURE_CUBE_MAP_ARB 0x8513
11269 #define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B
11270 
11271 typedef void (GLAPIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *data);
11272 typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, void *data);
11273 typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params);
11274 typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params);
11275 
11276 #define glColorTableEXT GLEW_GET_FUN(__glewColorTableEXT)
11277 #define glGetColorTableEXT GLEW_GET_FUN(__glewGetColorTableEXT)
11278 #define glGetColorTableParameterfvEXT GLEW_GET_FUN(__glewGetColorTableParameterfvEXT)
11279 #define glGetColorTableParameterivEXT GLEW_GET_FUN(__glewGetColorTableParameterivEXT)
11280 
11281 #define GLEW_EXT_paletted_texture GLEW_GET_VAR(__GLEW_EXT_paletted_texture)
11282 
11283 #endif /* GL_EXT_paletted_texture */
11284 
11285 /* ----------------------- GL_EXT_pixel_buffer_object ---------------------- */
11286 
11287 #ifndef GL_EXT_pixel_buffer_object
11288 #define GL_EXT_pixel_buffer_object 1
11289 
11290 #define GL_PIXEL_PACK_BUFFER_EXT 0x88EB
11291 #define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC
11292 #define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED
11293 #define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF
11294 
11295 #define GLEW_EXT_pixel_buffer_object GLEW_GET_VAR(__GLEW_EXT_pixel_buffer_object)
11296 
11297 #endif /* GL_EXT_pixel_buffer_object */
11298 
11299 /* ------------------------- GL_EXT_pixel_transform ------------------------ */
11300 
11301 #ifndef GL_EXT_pixel_transform
11302 #define GL_EXT_pixel_transform 1
11303 
11304 #define GL_PIXEL_TRANSFORM_2D_EXT 0x8330
11305 #define GL_PIXEL_MAG_FILTER_EXT 0x8331
11306 #define GL_PIXEL_MIN_FILTER_EXT 0x8332
11307 #define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333
11308 #define GL_CUBIC_EXT 0x8334
11309 #define GL_AVERAGE_EXT 0x8335
11310 #define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336
11311 #define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337
11312 #define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338
11313 
11314 typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params);
11315 typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params);
11316 typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, const GLfloat param);
11317 typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params);
11318 typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, const GLint param);
11319 typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params);
11320 
11321 #define glGetPixelTransformParameterfvEXT GLEW_GET_FUN(__glewGetPixelTransformParameterfvEXT)
11322 #define glGetPixelTransformParameterivEXT GLEW_GET_FUN(__glewGetPixelTransformParameterivEXT)
11323 #define glPixelTransformParameterfEXT GLEW_GET_FUN(__glewPixelTransformParameterfEXT)
11324 #define glPixelTransformParameterfvEXT GLEW_GET_FUN(__glewPixelTransformParameterfvEXT)
11325 #define glPixelTransformParameteriEXT GLEW_GET_FUN(__glewPixelTransformParameteriEXT)
11326 #define glPixelTransformParameterivEXT GLEW_GET_FUN(__glewPixelTransformParameterivEXT)
11327 
11328 #define GLEW_EXT_pixel_transform GLEW_GET_VAR(__GLEW_EXT_pixel_transform)
11329 
11330 #endif /* GL_EXT_pixel_transform */
11331 
11332 /* ------------------- GL_EXT_pixel_transform_color_table ------------------ */
11333 
11334 #ifndef GL_EXT_pixel_transform_color_table
11335 #define GL_EXT_pixel_transform_color_table 1
11336 
11337 #define GLEW_EXT_pixel_transform_color_table GLEW_GET_VAR(__GLEW_EXT_pixel_transform_color_table)
11338 
11339 #endif /* GL_EXT_pixel_transform_color_table */
11340 
11341 /* ------------------------ GL_EXT_point_parameters ------------------------ */
11342 
11343 #ifndef GL_EXT_point_parameters
11344 #define GL_EXT_point_parameters 1
11345 
11346 #define GL_POINT_SIZE_MIN_EXT 0x8126
11347 #define GL_POINT_SIZE_MAX_EXT 0x8127
11348 #define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128
11349 #define GL_DISTANCE_ATTENUATION_EXT 0x8129
11350 
11351 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param);
11352 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat* params);
11353 
11354 #define glPointParameterfEXT GLEW_GET_FUN(__glewPointParameterfEXT)
11355 #define glPointParameterfvEXT GLEW_GET_FUN(__glewPointParameterfvEXT)
11356 
11357 #define GLEW_EXT_point_parameters GLEW_GET_VAR(__GLEW_EXT_point_parameters)
11358 
11359 #endif /* GL_EXT_point_parameters */
11360 
11361 /* ------------------------- GL_EXT_polygon_offset ------------------------- */
11362 
11363 #ifndef GL_EXT_polygon_offset
11364 #define GL_EXT_polygon_offset 1
11365 
11366 #define GL_POLYGON_OFFSET_EXT 0x8037
11367 #define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038
11368 #define GL_POLYGON_OFFSET_BIAS_EXT 0x8039
11369 
11370 typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias);
11371 
11372 #define glPolygonOffsetEXT GLEW_GET_FUN(__glewPolygonOffsetEXT)
11373 
11374 #define GLEW_EXT_polygon_offset GLEW_GET_VAR(__GLEW_EXT_polygon_offset)
11375 
11376 #endif /* GL_EXT_polygon_offset */
11377 
11378 /* ---------------------- GL_EXT_polygon_offset_clamp ---------------------- */
11379 
11380 #ifndef GL_EXT_polygon_offset_clamp
11381 #define GL_EXT_polygon_offset_clamp 1
11382 
11383 #define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B
11384 
11385 typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETCLAMPEXTPROC) (GLfloat factor, GLfloat units, GLfloat clamp);
11386 
11387 #define glPolygonOffsetClampEXT GLEW_GET_FUN(__glewPolygonOffsetClampEXT)
11388 
11389 #define GLEW_EXT_polygon_offset_clamp GLEW_GET_VAR(__GLEW_EXT_polygon_offset_clamp)
11390 
11391 #endif /* GL_EXT_polygon_offset_clamp */
11392 
11393 /* ----------------------- GL_EXT_post_depth_coverage ---------------------- */
11394 
11395 #ifndef GL_EXT_post_depth_coverage
11396 #define GL_EXT_post_depth_coverage 1
11397 
11398 #define GLEW_EXT_post_depth_coverage GLEW_GET_VAR(__GLEW_EXT_post_depth_coverage)
11399 
11400 #endif /* GL_EXT_post_depth_coverage */
11401 
11402 /* ------------------------ GL_EXT_provoking_vertex ------------------------ */
11403 
11404 #ifndef GL_EXT_provoking_vertex
11405 #define GL_EXT_provoking_vertex 1
11406 
11407 #define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C
11408 #define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D
11409 #define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E
11410 #define GL_PROVOKING_VERTEX_EXT 0x8E4F
11411 
11412 typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode);
11413 
11414 #define glProvokingVertexEXT GLEW_GET_FUN(__glewProvokingVertexEXT)
11415 
11416 #define GLEW_EXT_provoking_vertex GLEW_GET_VAR(__GLEW_EXT_provoking_vertex)
11417 
11418 #endif /* GL_EXT_provoking_vertex */
11419 
11420 /* --------------------------- GL_EXT_pvrtc_sRGB --------------------------- */
11421 
11422 #ifndef GL_EXT_pvrtc_sRGB
11423 #define GL_EXT_pvrtc_sRGB 1
11424 
11425 #define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54
11426 #define GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT 0x8A55
11427 #define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT 0x8A56
11428 #define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT 0x8A57
11429 
11430 #define GLEW_EXT_pvrtc_sRGB GLEW_GET_VAR(__GLEW_EXT_pvrtc_sRGB)
11431 
11432 #endif /* GL_EXT_pvrtc_sRGB */
11433 
11434 /* ----------------------- GL_EXT_raster_multisample ----------------------- */
11435 
11436 #ifndef GL_EXT_raster_multisample
11437 #define GL_EXT_raster_multisample 1
11438 
11439 #define GL_COLOR_SAMPLES_NV 0x8E20
11440 #define GL_RASTER_MULTISAMPLE_EXT 0x9327
11441 #define GL_RASTER_SAMPLES_EXT 0x9328
11442 #define GL_MAX_RASTER_SAMPLES_EXT 0x9329
11443 #define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A
11444 #define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B
11445 #define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C
11446 #define GL_DEPTH_SAMPLES_NV 0x932D
11447 #define GL_STENCIL_SAMPLES_NV 0x932E
11448 #define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F
11449 #define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330
11450 #define GL_COVERAGE_MODULATION_TABLE_NV 0x9331
11451 #define GL_COVERAGE_MODULATION_NV 0x9332
11452 #define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333
11453 
11454 typedef void (GLAPIENTRY * PFNGLCOVERAGEMODULATIONNVPROC) (GLenum components);
11455 typedef void (GLAPIENTRY * PFNGLCOVERAGEMODULATIONTABLENVPROC) (GLsizei n, const GLfloat* v);
11456 typedef void (GLAPIENTRY * PFNGLGETCOVERAGEMODULATIONTABLENVPROC) (GLsizei bufsize, GLfloat* v);
11457 typedef void (GLAPIENTRY * PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean fixedsamplelocations);
11458 
11459 #define glCoverageModulationNV GLEW_GET_FUN(__glewCoverageModulationNV)
11460 #define glCoverageModulationTableNV GLEW_GET_FUN(__glewCoverageModulationTableNV)
11461 #define glGetCoverageModulationTableNV GLEW_GET_FUN(__glewGetCoverageModulationTableNV)
11462 #define glRasterSamplesEXT GLEW_GET_FUN(__glewRasterSamplesEXT)
11463 
11464 #define GLEW_EXT_raster_multisample GLEW_GET_VAR(__GLEW_EXT_raster_multisample)
11465 
11466 #endif /* GL_EXT_raster_multisample */
11467 
11468 /* ------------------------ GL_EXT_read_format_bgra ------------------------ */
11469 
11470 #ifndef GL_EXT_read_format_bgra
11471 #define GL_EXT_read_format_bgra 1
11472 
11473 #define GL_BGRA_EXT 0x80E1
11474 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365
11475 #define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366
11476 
11477 #define GLEW_EXT_read_format_bgra GLEW_GET_VAR(__GLEW_EXT_read_format_bgra)
11478 
11479 #endif /* GL_EXT_read_format_bgra */
11480 
11481 /* -------------------------- GL_EXT_render_snorm -------------------------- */
11482 
11483 #ifndef GL_EXT_render_snorm
11484 #define GL_EXT_render_snorm 1
11485 
11486 #define GL_BYTE 0x1400
11487 #define GL_SHORT 0x1402
11488 #define GL_R8_SNORM 0x8F94
11489 #define GL_RG8_SNORM 0x8F95
11490 #define GL_RGBA8_SNORM 0x8F97
11491 #define GL_R16_SNORM_EXT 0x8F98
11492 #define GL_RG16_SNORM_EXT 0x8F99
11493 #define GL_RGBA16_SNORM_EXT 0x8F9B
11494 
11495 #define GLEW_EXT_render_snorm GLEW_GET_VAR(__GLEW_EXT_render_snorm)
11496 
11497 #endif /* GL_EXT_render_snorm */
11498 
11499 /* ------------------------- GL_EXT_rescale_normal ------------------------- */
11500 
11501 #ifndef GL_EXT_rescale_normal
11502 #define GL_EXT_rescale_normal 1
11503 
11504 #define GL_RESCALE_NORMAL_EXT 0x803A
11505 
11506 #define GLEW_EXT_rescale_normal GLEW_GET_VAR(__GLEW_EXT_rescale_normal)
11507 
11508 #endif /* GL_EXT_rescale_normal */
11509 
11510 /* ------------------------------ GL_EXT_sRGB ------------------------------ */
11511 
11512 #ifndef GL_EXT_sRGB
11513 #define GL_EXT_sRGB 1
11514 
11515 #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210
11516 #define GL_SRGB_EXT 0x8C40
11517 #define GL_SRGB_ALPHA_EXT 0x8C42
11518 #define GL_SRGB8_ALPHA8_EXT 0x8C43
11519 
11520 #define GLEW_EXT_sRGB GLEW_GET_VAR(__GLEW_EXT_sRGB)
11521 
11522 #endif /* GL_EXT_sRGB */
11523 
11524 /* ----------------------- GL_EXT_sRGB_write_control ----------------------- */
11525 
11526 #ifndef GL_EXT_sRGB_write_control
11527 #define GL_EXT_sRGB_write_control 1
11528 
11529 #define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
11530 
11531 #define GLEW_EXT_sRGB_write_control GLEW_GET_VAR(__GLEW_EXT_sRGB_write_control)
11532 
11533 #endif /* GL_EXT_sRGB_write_control */
11534 
11535 /* -------------------------- GL_EXT_scene_marker -------------------------- */
11536 
11537 #ifndef GL_EXT_scene_marker
11538 #define GL_EXT_scene_marker 1
11539 
11540 typedef void (GLAPIENTRY * PFNGLBEGINSCENEEXTPROC) (void);
11541 typedef void (GLAPIENTRY * PFNGLENDSCENEEXTPROC) (void);
11542 
11543 #define glBeginSceneEXT GLEW_GET_FUN(__glewBeginSceneEXT)
11544 #define glEndSceneEXT GLEW_GET_FUN(__glewEndSceneEXT)
11545 
11546 #define GLEW_EXT_scene_marker GLEW_GET_VAR(__GLEW_EXT_scene_marker)
11547 
11548 #endif /* GL_EXT_scene_marker */
11549 
11550 /* ------------------------- GL_EXT_secondary_color ------------------------ */
11551 
11552 #ifndef GL_EXT_secondary_color
11553 #define GL_EXT_secondary_color 1
11554 
11555 #define GL_COLOR_SUM_EXT 0x8458
11556 #define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459
11557 #define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A
11558 #define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B
11559 #define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C
11560 #define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D
11561 #define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E
11562 
11563 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue);
11564 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v);
11565 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue);
11566 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v);
11567 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue);
11568 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v);
11569 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue);
11570 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v);
11571 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue);
11572 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v);
11573 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue);
11574 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v);
11575 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue);
11576 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v);
11577 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue);
11578 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v);
11579 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer);
11580 
11581 #define glSecondaryColor3bEXT GLEW_GET_FUN(__glewSecondaryColor3bEXT)
11582 #define glSecondaryColor3bvEXT GLEW_GET_FUN(__glewSecondaryColor3bvEXT)
11583 #define glSecondaryColor3dEXT GLEW_GET_FUN(__glewSecondaryColor3dEXT)
11584 #define glSecondaryColor3dvEXT GLEW_GET_FUN(__glewSecondaryColor3dvEXT)
11585 #define glSecondaryColor3fEXT GLEW_GET_FUN(__glewSecondaryColor3fEXT)
11586 #define glSecondaryColor3fvEXT GLEW_GET_FUN(__glewSecondaryColor3fvEXT)
11587 #define glSecondaryColor3iEXT GLEW_GET_FUN(__glewSecondaryColor3iEXT)
11588 #define glSecondaryColor3ivEXT GLEW_GET_FUN(__glewSecondaryColor3ivEXT)
11589 #define glSecondaryColor3sEXT GLEW_GET_FUN(__glewSecondaryColor3sEXT)
11590 #define glSecondaryColor3svEXT GLEW_GET_FUN(__glewSecondaryColor3svEXT)
11591 #define glSecondaryColor3ubEXT GLEW_GET_FUN(__glewSecondaryColor3ubEXT)
11592 #define glSecondaryColor3ubvEXT GLEW_GET_FUN(__glewSecondaryColor3ubvEXT)
11593 #define glSecondaryColor3uiEXT GLEW_GET_FUN(__glewSecondaryColor3uiEXT)
11594 #define glSecondaryColor3uivEXT GLEW_GET_FUN(__glewSecondaryColor3uivEXT)
11595 #define glSecondaryColor3usEXT GLEW_GET_FUN(__glewSecondaryColor3usEXT)
11596 #define glSecondaryColor3usvEXT GLEW_GET_FUN(__glewSecondaryColor3usvEXT)
11597 #define glSecondaryColorPointerEXT GLEW_GET_FUN(__glewSecondaryColorPointerEXT)
11598 
11599 #define GLEW_EXT_secondary_color GLEW_GET_VAR(__GLEW_EXT_secondary_color)
11600 
11601 #endif /* GL_EXT_secondary_color */
11602 
11603 /* ---------------------------- GL_EXT_semaphore --------------------------- */
11604 
11605 #ifndef GL_EXT_semaphore
11606 #define GL_EXT_semaphore 1
11607 
11608 typedef void (GLAPIENTRY * PFNGLDELETESEMAPHORESEXTPROC) (GLsizei n, const GLuint* semaphores);
11609 typedef void (GLAPIENTRY * PFNGLGENSEMAPHORESEXTPROC) (GLsizei n, GLuint* semaphores);
11610 typedef void (GLAPIENTRY * PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, GLuint64* params);
11611 typedef GLboolean (GLAPIENTRY * PFNGLISSEMAPHOREEXTPROC) (GLuint semaphore);
11612 typedef void (GLAPIENTRY * PFNGLSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, const GLuint64* params);
11613 typedef void (GLAPIENTRY * PFNGLSIGNALSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts);
11614 typedef void (GLAPIENTRY * PFNGLWAITSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts);
11615 
11616 #define glDeleteSemaphoresEXT GLEW_GET_FUN(__glewDeleteSemaphoresEXT)
11617 #define glGenSemaphoresEXT GLEW_GET_FUN(__glewGenSemaphoresEXT)
11618 #define glGetSemaphoreParameterui64vEXT GLEW_GET_FUN(__glewGetSemaphoreParameterui64vEXT)
11619 #define glIsSemaphoreEXT GLEW_GET_FUN(__glewIsSemaphoreEXT)
11620 #define glSemaphoreParameterui64vEXT GLEW_GET_FUN(__glewSemaphoreParameterui64vEXT)
11621 #define glSignalSemaphoreEXT GLEW_GET_FUN(__glewSignalSemaphoreEXT)
11622 #define glWaitSemaphoreEXT GLEW_GET_FUN(__glewWaitSemaphoreEXT)
11623 
11624 #define GLEW_EXT_semaphore GLEW_GET_VAR(__GLEW_EXT_semaphore)
11625 
11626 #endif /* GL_EXT_semaphore */
11627 
11628 /* -------------------------- GL_EXT_semaphore_fd -------------------------- */
11629 
11630 #ifndef GL_EXT_semaphore_fd
11631 #define GL_EXT_semaphore_fd 1
11632 
11633 typedef void (GLAPIENTRY * PFNGLIMPORTSEMAPHOREFDEXTPROC) (GLuint semaphore, GLenum handleType, GLint fd);
11634 
11635 #define glImportSemaphoreFdEXT GLEW_GET_FUN(__glewImportSemaphoreFdEXT)
11636 
11637 #define GLEW_EXT_semaphore_fd GLEW_GET_VAR(__GLEW_EXT_semaphore_fd)
11638 
11639 #endif /* GL_EXT_semaphore_fd */
11640 
11641 /* ------------------------- GL_EXT_semaphore_win32 ------------------------ */
11642 
11643 #ifndef GL_EXT_semaphore_win32
11644 #define GL_EXT_semaphore_win32 1
11645 
11646 typedef void (GLAPIENTRY * PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC) (GLuint semaphore, GLenum handleType, void *handle);
11647 typedef void (GLAPIENTRY * PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC) (GLuint semaphore, GLenum handleType, const void *name);
11648 
11649 #define glImportSemaphoreWin32HandleEXT GLEW_GET_FUN(__glewImportSemaphoreWin32HandleEXT)
11650 #define glImportSemaphoreWin32NameEXT GLEW_GET_FUN(__glewImportSemaphoreWin32NameEXT)
11651 
11652 #define GLEW_EXT_semaphore_win32 GLEW_GET_VAR(__GLEW_EXT_semaphore_win32)
11653 
11654 #endif /* GL_EXT_semaphore_win32 */
11655 
11656 /* --------------------- GL_EXT_separate_shader_objects -------------------- */
11657 
11658 #ifndef GL_EXT_separate_shader_objects
11659 #define GL_EXT_separate_shader_objects 1
11660 
11661 #define GL_ACTIVE_PROGRAM_EXT 0x8B8D
11662 
11663 typedef void (GLAPIENTRY * PFNGLACTIVEPROGRAMEXTPROC) (GLuint program);
11664 typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const GLchar* string);
11665 typedef void (GLAPIENTRY * PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program);
11666 
11667 #define glActiveProgramEXT GLEW_GET_FUN(__glewActiveProgramEXT)
11668 #define glCreateShaderProgramEXT GLEW_GET_FUN(__glewCreateShaderProgramEXT)
11669 #define glUseShaderProgramEXT GLEW_GET_FUN(__glewUseShaderProgramEXT)
11670 
11671 #define GLEW_EXT_separate_shader_objects GLEW_GET_VAR(__GLEW_EXT_separate_shader_objects)
11672 
11673 #endif /* GL_EXT_separate_shader_objects */
11674 
11675 /* --------------------- GL_EXT_separate_specular_color -------------------- */
11676 
11677 #ifndef GL_EXT_separate_specular_color
11678 #define GL_EXT_separate_specular_color 1
11679 
11680 #define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8
11681 #define GL_SINGLE_COLOR_EXT 0x81F9
11682 #define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
11683 
11684 #define GLEW_EXT_separate_specular_color GLEW_GET_VAR(__GLEW_EXT_separate_specular_color)
11685 
11686 #endif /* GL_EXT_separate_specular_color */
11687 
11688 /* -------------------- GL_EXT_shader_framebuffer_fetch -------------------- */
11689 
11690 #ifndef GL_EXT_shader_framebuffer_fetch
11691 #define GL_EXT_shader_framebuffer_fetch 1
11692 
11693 #define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
11694 
11695 #define GLEW_EXT_shader_framebuffer_fetch GLEW_GET_VAR(__GLEW_EXT_shader_framebuffer_fetch)
11696 
11697 #endif /* GL_EXT_shader_framebuffer_fetch */
11698 
11699 /* ------------------------ GL_EXT_shader_group_vote ----------------------- */
11700 
11701 #ifndef GL_EXT_shader_group_vote
11702 #define GL_EXT_shader_group_vote 1
11703 
11704 #define GLEW_EXT_shader_group_vote GLEW_GET_VAR(__GLEW_EXT_shader_group_vote)
11705 
11706 #endif /* GL_EXT_shader_group_vote */
11707 
11708 /* ------------------- GL_EXT_shader_image_load_formatted ------------------ */
11709 
11710 #ifndef GL_EXT_shader_image_load_formatted
11711 #define GL_EXT_shader_image_load_formatted 1
11712 
11713 #define GLEW_EXT_shader_image_load_formatted GLEW_GET_VAR(__GLEW_EXT_shader_image_load_formatted)
11714 
11715 #endif /* GL_EXT_shader_image_load_formatted */
11716 
11717 /* --------------------- GL_EXT_shader_image_load_store -------------------- */
11718 
11719 #ifndef GL_EXT_shader_image_load_store
11720 #define GL_EXT_shader_image_load_store 1
11721 
11722 #define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001
11723 #define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002
11724 #define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004
11725 #define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008
11726 #define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020
11727 #define GL_COMMAND_BARRIER_BIT_EXT 0x00000040
11728 #define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080
11729 #define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100
11730 #define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200
11731 #define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400
11732 #define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800
11733 #define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000
11734 #define GL_MAX_IMAGE_UNITS_EXT 0x8F38
11735 #define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39
11736 #define GL_IMAGE_BINDING_NAME_EXT 0x8F3A
11737 #define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B
11738 #define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C
11739 #define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D
11740 #define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E
11741 #define GL_IMAGE_1D_EXT 0x904C
11742 #define GL_IMAGE_2D_EXT 0x904D
11743 #define GL_IMAGE_3D_EXT 0x904E
11744 #define GL_IMAGE_2D_RECT_EXT 0x904F
11745 #define GL_IMAGE_CUBE_EXT 0x9050
11746 #define GL_IMAGE_BUFFER_EXT 0x9051
11747 #define GL_IMAGE_1D_ARRAY_EXT 0x9052
11748 #define GL_IMAGE_2D_ARRAY_EXT 0x9053
11749 #define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054
11750 #define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055
11751 #define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056
11752 #define GL_INT_IMAGE_1D_EXT 0x9057
11753 #define GL_INT_IMAGE_2D_EXT 0x9058
11754 #define GL_INT_IMAGE_3D_EXT 0x9059
11755 #define GL_INT_IMAGE_2D_RECT_EXT 0x905A
11756 #define GL_INT_IMAGE_CUBE_EXT 0x905B
11757 #define GL_INT_IMAGE_BUFFER_EXT 0x905C
11758 #define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D
11759 #define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E
11760 #define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F
11761 #define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060
11762 #define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061
11763 #define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062
11764 #define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063
11765 #define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064
11766 #define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065
11767 #define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066
11768 #define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067
11769 #define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068
11770 #define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069
11771 #define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A
11772 #define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B
11773 #define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C
11774 #define GL_MAX_IMAGE_SAMPLES_EXT 0x906D
11775 #define GL_IMAGE_BINDING_FORMAT_EXT 0x906E
11776 #define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF
11777 
11778 typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format);
11779 typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers);
11780 
11781 #define glBindImageTextureEXT GLEW_GET_FUN(__glewBindImageTextureEXT)
11782 #define glMemoryBarrierEXT GLEW_GET_FUN(__glewMemoryBarrierEXT)
11783 
11784 #define GLEW_EXT_shader_image_load_store GLEW_GET_VAR(__GLEW_EXT_shader_image_load_store)
11785 
11786 #endif /* GL_EXT_shader_image_load_store */
11787 
11788 /* ------------------- GL_EXT_shader_implicit_conversions ------------------ */
11789 
11790 #ifndef GL_EXT_shader_implicit_conversions
11791 #define GL_EXT_shader_implicit_conversions 1
11792 
11793 #define GLEW_EXT_shader_implicit_conversions GLEW_GET_VAR(__GLEW_EXT_shader_implicit_conversions)
11794 
11795 #endif /* GL_EXT_shader_implicit_conversions */
11796 
11797 /* ----------------------- GL_EXT_shader_integer_mix ----------------------- */
11798 
11799 #ifndef GL_EXT_shader_integer_mix
11800 #define GL_EXT_shader_integer_mix 1
11801 
11802 #define GLEW_EXT_shader_integer_mix GLEW_GET_VAR(__GLEW_EXT_shader_integer_mix)
11803 
11804 #endif /* GL_EXT_shader_integer_mix */
11805 
11806 /* ------------------------ GL_EXT_shader_io_blocks ------------------------ */
11807 
11808 #ifndef GL_EXT_shader_io_blocks
11809 #define GL_EXT_shader_io_blocks 1
11810 
11811 #define GLEW_EXT_shader_io_blocks GLEW_GET_VAR(__GLEW_EXT_shader_io_blocks)
11812 
11813 #endif /* GL_EXT_shader_io_blocks */
11814 
11815 /* ------------- GL_EXT_shader_non_constant_global_initializers ------------ */
11816 
11817 #ifndef GL_EXT_shader_non_constant_global_initializers
11818 #define GL_EXT_shader_non_constant_global_initializers 1
11819 
11820 #define GLEW_EXT_shader_non_constant_global_initializers GLEW_GET_VAR(__GLEW_EXT_shader_non_constant_global_initializers)
11821 
11822 #endif /* GL_EXT_shader_non_constant_global_initializers */
11823 
11824 /* ------------------- GL_EXT_shader_pixel_local_storage ------------------- */
11825 
11826 #ifndef GL_EXT_shader_pixel_local_storage
11827 #define GL_EXT_shader_pixel_local_storage 1
11828 
11829 #define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT 0x8F63
11830 #define GL_SHADER_PIXEL_LOCAL_STORAGE_EXT 0x8F64
11831 #define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT 0x8F67
11832 
11833 #define GLEW_EXT_shader_pixel_local_storage GLEW_GET_VAR(__GLEW_EXT_shader_pixel_local_storage)
11834 
11835 #endif /* GL_EXT_shader_pixel_local_storage */
11836 
11837 /* ------------------- GL_EXT_shader_pixel_local_storage2 ------------------ */
11838 
11839 #ifndef GL_EXT_shader_pixel_local_storage2
11840 #define GL_EXT_shader_pixel_local_storage2 1
11841 
11842 #define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT 0x9650
11843 #define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT 0x9651
11844 #define GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT 0x9652
11845 
11846 typedef void (GLAPIENTRY * PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC) (GLsizei offset, GLsizei n, const GLuint* values);
11847 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target, GLsizei size);
11848 typedef GLsizei (GLAPIENTRY * PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target);
11849 
11850 #define glClearPixelLocalStorageuiEXT GLEW_GET_FUN(__glewClearPixelLocalStorageuiEXT)
11851 #define glFramebufferPixelLocalStorageSizeEXT GLEW_GET_FUN(__glewFramebufferPixelLocalStorageSizeEXT)
11852 #define glGetFramebufferPixelLocalStorageSizeEXT GLEW_GET_FUN(__glewGetFramebufferPixelLocalStorageSizeEXT)
11853 
11854 #define GLEW_EXT_shader_pixel_local_storage2 GLEW_GET_VAR(__GLEW_EXT_shader_pixel_local_storage2)
11855 
11856 #endif /* GL_EXT_shader_pixel_local_storage2 */
11857 
11858 /* ----------------------- GL_EXT_shader_texture_lod ----------------------- */
11859 
11860 #ifndef GL_EXT_shader_texture_lod
11861 #define GL_EXT_shader_texture_lod 1
11862 
11863 #define GLEW_EXT_shader_texture_lod GLEW_GET_VAR(__GLEW_EXT_shader_texture_lod)
11864 
11865 #endif /* GL_EXT_shader_texture_lod */
11866 
11867 /* -------------------------- GL_EXT_shadow_funcs -------------------------- */
11868 
11869 #ifndef GL_EXT_shadow_funcs
11870 #define GL_EXT_shadow_funcs 1
11871 
11872 #define GLEW_EXT_shadow_funcs GLEW_GET_VAR(__GLEW_EXT_shadow_funcs)
11873 
11874 #endif /* GL_EXT_shadow_funcs */
11875 
11876 /* ------------------------- GL_EXT_shadow_samplers ------------------------ */
11877 
11878 #ifndef GL_EXT_shadow_samplers
11879 #define GL_EXT_shadow_samplers 1
11880 
11881 #define GL_TEXTURE_COMPARE_MODE_EXT 0x884C
11882 #define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D
11883 #define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E
11884 #define GL_SAMPLER_2D_SHADOW_EXT 0x8B62
11885 
11886 #define GLEW_EXT_shadow_samplers GLEW_GET_VAR(__GLEW_EXT_shadow_samplers)
11887 
11888 #endif /* GL_EXT_shadow_samplers */
11889 
11890 /* --------------------- GL_EXT_shared_texture_palette --------------------- */
11891 
11892 #ifndef GL_EXT_shared_texture_palette
11893 #define GL_EXT_shared_texture_palette 1
11894 
11895 #define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB
11896 
11897 #define GLEW_EXT_shared_texture_palette GLEW_GET_VAR(__GLEW_EXT_shared_texture_palette)
11898 
11899 #endif /* GL_EXT_shared_texture_palette */
11900 
11901 /* ------------------------- GL_EXT_sparse_texture ------------------------- */
11902 
11903 #ifndef GL_EXT_sparse_texture
11904 #define GL_EXT_sparse_texture 1
11905 
11906 #define GL_TEXTURE_2D 0x0DE1
11907 #define GL_TEXTURE_3D 0x806F
11908 #define GL_TEXTURE_CUBE_MAP 0x8513
11909 #define GL_TEXTURE_2D_ARRAY 0x8C1A
11910 #define GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009
11911 #define GL_VIRTUAL_PAGE_SIZE_X_EXT 0x9195
11912 #define GL_VIRTUAL_PAGE_SIZE_Y_EXT 0x9196
11913 #define GL_VIRTUAL_PAGE_SIZE_Z_EXT 0x9197
11914 #define GL_MAX_SPARSE_TEXTURE_SIZE_EXT 0x9198
11915 #define GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT 0x9199
11916 #define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT 0x919A
11917 #define GL_TEXTURE_SPARSE_EXT 0x91A6
11918 #define GL_VIRTUAL_PAGE_SIZE_INDEX_EXT 0x91A7
11919 #define GL_NUM_VIRTUAL_PAGE_SIZES_EXT 0x91A8
11920 #define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT 0x91A9
11921 #define GL_NUM_SPARSE_LEVELS_EXT 0x91AA
11922 
11923 typedef void (GLAPIENTRY * PFNGLTEXPAGECOMMITMENTEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
11924 typedef void (GLAPIENTRY * PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
11925 
11926 #define glTexPageCommitmentEXT GLEW_GET_FUN(__glewTexPageCommitmentEXT)
11927 #define glTexturePageCommitmentEXT GLEW_GET_FUN(__glewTexturePageCommitmentEXT)
11928 
11929 #define GLEW_EXT_sparse_texture GLEW_GET_VAR(__GLEW_EXT_sparse_texture)
11930 
11931 #endif /* GL_EXT_sparse_texture */
11932 
11933 /* ------------------------- GL_EXT_sparse_texture2 ------------------------ */
11934 
11935 #ifndef GL_EXT_sparse_texture2
11936 #define GL_EXT_sparse_texture2 1
11937 
11938 #define GLEW_EXT_sparse_texture2 GLEW_GET_VAR(__GLEW_EXT_sparse_texture2)
11939 
11940 #endif /* GL_EXT_sparse_texture2 */
11941 
11942 /* ------------------------ GL_EXT_stencil_clear_tag ----------------------- */
11943 
11944 #ifndef GL_EXT_stencil_clear_tag
11945 #define GL_EXT_stencil_clear_tag 1
11946 
11947 #define GL_STENCIL_TAG_BITS_EXT 0x88F2
11948 #define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3
11949 
11950 #define GLEW_EXT_stencil_clear_tag GLEW_GET_VAR(__GLEW_EXT_stencil_clear_tag)
11951 
11952 #endif /* GL_EXT_stencil_clear_tag */
11953 
11954 /* ------------------------ GL_EXT_stencil_two_side ------------------------ */
11955 
11956 #ifndef GL_EXT_stencil_two_side
11957 #define GL_EXT_stencil_two_side 1
11958 
11959 #define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910
11960 #define GL_ACTIVE_STENCIL_FACE_EXT 0x8911
11961 
11962 typedef void (GLAPIENTRY * PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face);
11963 
11964 #define glActiveStencilFaceEXT GLEW_GET_FUN(__glewActiveStencilFaceEXT)
11965 
11966 #define GLEW_EXT_stencil_two_side GLEW_GET_VAR(__GLEW_EXT_stencil_two_side)
11967 
11968 #endif /* GL_EXT_stencil_two_side */
11969 
11970 /* -------------------------- GL_EXT_stencil_wrap -------------------------- */
11971 
11972 #ifndef GL_EXT_stencil_wrap
11973 #define GL_EXT_stencil_wrap 1
11974 
11975 #define GL_INCR_WRAP_EXT 0x8507
11976 #define GL_DECR_WRAP_EXT 0x8508
11977 
11978 #define GLEW_EXT_stencil_wrap GLEW_GET_VAR(__GLEW_EXT_stencil_wrap)
11979 
11980 #endif /* GL_EXT_stencil_wrap */
11981 
11982 /* --------------------------- GL_EXT_subtexture --------------------------- */
11983 
11984 #ifndef GL_EXT_subtexture
11985 #define GL_EXT_subtexture 1
11986 
11987 typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
11988 typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
11989 typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
11990 
11991 #define glTexSubImage1DEXT GLEW_GET_FUN(__glewTexSubImage1DEXT)
11992 #define glTexSubImage2DEXT GLEW_GET_FUN(__glewTexSubImage2DEXT)
11993 #define glTexSubImage3DEXT GLEW_GET_FUN(__glewTexSubImage3DEXT)
11994 
11995 #define GLEW_EXT_subtexture GLEW_GET_VAR(__GLEW_EXT_subtexture)
11996 
11997 #endif /* GL_EXT_subtexture */
11998 
11999 /* ----------------------------- GL_EXT_texture ---------------------------- */
12000 
12001 #ifndef GL_EXT_texture
12002 #define GL_EXT_texture 1
12003 
12004 #define GL_ALPHA4_EXT 0x803B
12005 #define GL_ALPHA8_EXT 0x803C
12006 #define GL_ALPHA12_EXT 0x803D
12007 #define GL_ALPHA16_EXT 0x803E
12008 #define GL_LUMINANCE4_EXT 0x803F
12009 #define GL_LUMINANCE8_EXT 0x8040
12010 #define GL_LUMINANCE12_EXT 0x8041
12011 #define GL_LUMINANCE16_EXT 0x8042
12012 #define GL_LUMINANCE4_ALPHA4_EXT 0x8043
12013 #define GL_LUMINANCE6_ALPHA2_EXT 0x8044
12014 #define GL_LUMINANCE8_ALPHA8_EXT 0x8045
12015 #define GL_LUMINANCE12_ALPHA4_EXT 0x8046
12016 #define GL_LUMINANCE12_ALPHA12_EXT 0x8047
12017 #define GL_LUMINANCE16_ALPHA16_EXT 0x8048
12018 #define GL_INTENSITY_EXT 0x8049
12019 #define GL_INTENSITY4_EXT 0x804A
12020 #define GL_INTENSITY8_EXT 0x804B
12021 #define GL_INTENSITY12_EXT 0x804C
12022 #define GL_INTENSITY16_EXT 0x804D
12023 #define GL_RGB2_EXT 0x804E
12024 #define GL_RGB4_EXT 0x804F
12025 #define GL_RGB5_EXT 0x8050
12026 #define GL_RGB8_EXT 0x8051
12027 #define GL_RGB10_EXT 0x8052
12028 #define GL_RGB12_EXT 0x8053
12029 #define GL_RGB16_EXT 0x8054
12030 #define GL_RGBA2_EXT 0x8055
12031 #define GL_RGBA4_EXT 0x8056
12032 #define GL_RGB5_A1_EXT 0x8057
12033 #define GL_RGBA8_EXT 0x8058
12034 #define GL_RGB10_A2_EXT 0x8059
12035 #define GL_RGBA12_EXT 0x805A
12036 #define GL_RGBA16_EXT 0x805B
12037 #define GL_TEXTURE_RED_SIZE_EXT 0x805C
12038 #define GL_TEXTURE_GREEN_SIZE_EXT 0x805D
12039 #define GL_TEXTURE_BLUE_SIZE_EXT 0x805E
12040 #define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F
12041 #define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060
12042 #define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061
12043 #define GL_REPLACE_EXT 0x8062
12044 #define GL_PROXY_TEXTURE_1D_EXT 0x8063
12045 #define GL_PROXY_TEXTURE_2D_EXT 0x8064
12046 
12047 #define GLEW_EXT_texture GLEW_GET_VAR(__GLEW_EXT_texture)
12048 
12049 #endif /* GL_EXT_texture */
12050 
12051 /* ---------------------------- GL_EXT_texture3D --------------------------- */
12052 
12053 #ifndef GL_EXT_texture3D
12054 #define GL_EXT_texture3D 1
12055 
12056 #define GL_PACK_SKIP_IMAGES_EXT 0x806B
12057 #define GL_PACK_IMAGE_HEIGHT_EXT 0x806C
12058 #define GL_UNPACK_SKIP_IMAGES_EXT 0x806D
12059 #define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E
12060 #define GL_TEXTURE_3D_EXT 0x806F
12061 #define GL_PROXY_TEXTURE_3D_EXT 0x8070
12062 #define GL_TEXTURE_DEPTH_EXT 0x8071
12063 #define GL_TEXTURE_WRAP_R_EXT 0x8072
12064 #define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073
12065 
12066 typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
12067 
12068 #define glTexImage3DEXT GLEW_GET_FUN(__glewTexImage3DEXT)
12069 
12070 #define GLEW_EXT_texture3D GLEW_GET_VAR(__GLEW_EXT_texture3D)
12071 
12072 #endif /* GL_EXT_texture3D */
12073 
12074 /* -------------------------- GL_EXT_texture_array ------------------------- */
12075 
12076 #ifndef GL_EXT_texture_array
12077 #define GL_EXT_texture_array 1
12078 
12079 #define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E
12080 #define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF
12081 #define GL_TEXTURE_1D_ARRAY_EXT 0x8C18
12082 #define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19
12083 #define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A
12084 #define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B
12085 #define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C
12086 #define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D
12087 
12088 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
12089 
12090 #define glFramebufferTextureLayerEXT GLEW_GET_FUN(__glewFramebufferTextureLayerEXT)
12091 
12092 #define GLEW_EXT_texture_array GLEW_GET_VAR(__GLEW_EXT_texture_array)
12093 
12094 #endif /* GL_EXT_texture_array */
12095 
12096 /* ---------------------- GL_EXT_texture_buffer_object --------------------- */
12097 
12098 #ifndef GL_EXT_texture_buffer_object
12099 #define GL_EXT_texture_buffer_object 1
12100 
12101 #define GL_TEXTURE_BUFFER_EXT 0x8C2A
12102 #define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B
12103 #define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C
12104 #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D
12105 #define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E
12106 
12107 typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer);
12108 
12109 #define glTexBufferEXT GLEW_GET_FUN(__glewTexBufferEXT)
12110 
12111 #define GLEW_EXT_texture_buffer_object GLEW_GET_VAR(__GLEW_EXT_texture_buffer_object)
12112 
12113 #endif /* GL_EXT_texture_buffer_object */
12114 
12115 /* -------------- GL_EXT_texture_compression_astc_decode_mode -------------- */
12116 
12117 #ifndef GL_EXT_texture_compression_astc_decode_mode
12118 #define GL_EXT_texture_compression_astc_decode_mode 1
12119 
12120 #define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69
12121 
12122 #define GLEW_EXT_texture_compression_astc_decode_mode GLEW_GET_VAR(__GLEW_EXT_texture_compression_astc_decode_mode)
12123 
12124 #endif /* GL_EXT_texture_compression_astc_decode_mode */
12125 
12126 /* ----------- GL_EXT_texture_compression_astc_decode_mode_rgb9e5 ---------- */
12127 
12128 #ifndef GL_EXT_texture_compression_astc_decode_mode_rgb9e5
12129 #define GL_EXT_texture_compression_astc_decode_mode_rgb9e5 1
12130 
12131 #define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69
12132 
12133 #define GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5 GLEW_GET_VAR(__GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5)
12134 
12135 #endif /* GL_EXT_texture_compression_astc_decode_mode_rgb9e5 */
12136 
12137 /* -------------------- GL_EXT_texture_compression_bptc -------------------- */
12138 
12139 #ifndef GL_EXT_texture_compression_bptc
12140 #define GL_EXT_texture_compression_bptc 1
12141 
12142 #define GL_COMPRESSED_RGBA_BPTC_UNORM_EXT 0x8E8C
12143 #define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT 0x8E8D
12144 #define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT 0x8E8E
12145 #define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT 0x8E8F
12146 
12147 #define GLEW_EXT_texture_compression_bptc GLEW_GET_VAR(__GLEW_EXT_texture_compression_bptc)
12148 
12149 #endif /* GL_EXT_texture_compression_bptc */
12150 
12151 /* -------------------- GL_EXT_texture_compression_dxt1 -------------------- */
12152 
12153 #ifndef GL_EXT_texture_compression_dxt1
12154 #define GL_EXT_texture_compression_dxt1 1
12155 
12156 #define GLEW_EXT_texture_compression_dxt1 GLEW_GET_VAR(__GLEW_EXT_texture_compression_dxt1)
12157 
12158 #endif /* GL_EXT_texture_compression_dxt1 */
12159 
12160 /* -------------------- GL_EXT_texture_compression_latc -------------------- */
12161 
12162 #ifndef GL_EXT_texture_compression_latc
12163 #define GL_EXT_texture_compression_latc 1
12164 
12165 #define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70
12166 #define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71
12167 #define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72
12168 #define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73
12169 
12170 #define GLEW_EXT_texture_compression_latc GLEW_GET_VAR(__GLEW_EXT_texture_compression_latc)
12171 
12172 #endif /* GL_EXT_texture_compression_latc */
12173 
12174 /* -------------------- GL_EXT_texture_compression_rgtc -------------------- */
12175 
12176 #ifndef GL_EXT_texture_compression_rgtc
12177 #define GL_EXT_texture_compression_rgtc 1
12178 
12179 #define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
12180 #define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
12181 #define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
12182 #define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE
12183 
12184 #define GLEW_EXT_texture_compression_rgtc GLEW_GET_VAR(__GLEW_EXT_texture_compression_rgtc)
12185 
12186 #endif /* GL_EXT_texture_compression_rgtc */
12187 
12188 /* -------------------- GL_EXT_texture_compression_s3tc -------------------- */
12189 
12190 #ifndef GL_EXT_texture_compression_s3tc
12191 #define GL_EXT_texture_compression_s3tc 1
12192 
12193 #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
12194 #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
12195 #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
12196 #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
12197 
12198 #define GLEW_EXT_texture_compression_s3tc GLEW_GET_VAR(__GLEW_EXT_texture_compression_s3tc)
12199 
12200 #endif /* GL_EXT_texture_compression_s3tc */
12201 
12202 /* ------------------------ GL_EXT_texture_cube_map ------------------------ */
12203 
12204 #ifndef GL_EXT_texture_cube_map
12205 #define GL_EXT_texture_cube_map 1
12206 
12207 #define GL_NORMAL_MAP_EXT 0x8511
12208 #define GL_REFLECTION_MAP_EXT 0x8512
12209 #define GL_TEXTURE_CUBE_MAP_EXT 0x8513
12210 #define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514
12211 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515
12212 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516
12213 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517
12214 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518
12215 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519
12216 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A
12217 #define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B
12218 #define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C
12219 
12220 #define GLEW_EXT_texture_cube_map GLEW_GET_VAR(__GLEW_EXT_texture_cube_map)
12221 
12222 #endif /* GL_EXT_texture_cube_map */
12223 
12224 /* --------------------- GL_EXT_texture_cube_map_array --------------------- */
12225 
12226 #ifndef GL_EXT_texture_cube_map_array
12227 #define GL_EXT_texture_cube_map_array 1
12228 
12229 #define GL_TEXTURE_CUBE_MAP_ARRAY_EXT 0x9009
12230 #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT 0x900A
12231 #define GL_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900C
12232 #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT 0x900D
12233 #define GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900E
12234 #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900F
12235 #define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054
12236 #define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F
12237 #define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A
12238 
12239 #define GLEW_EXT_texture_cube_map_array GLEW_GET_VAR(__GLEW_EXT_texture_cube_map_array)
12240 
12241 #endif /* GL_EXT_texture_cube_map_array */
12242 
12243 /* ----------------------- GL_EXT_texture_edge_clamp ----------------------- */
12244 
12245 #ifndef GL_EXT_texture_edge_clamp
12246 #define GL_EXT_texture_edge_clamp 1
12247 
12248 #define GL_CLAMP_TO_EDGE_EXT 0x812F
12249 
12250 #define GLEW_EXT_texture_edge_clamp GLEW_GET_VAR(__GLEW_EXT_texture_edge_clamp)
12251 
12252 #endif /* GL_EXT_texture_edge_clamp */
12253 
12254 /* --------------------------- GL_EXT_texture_env -------------------------- */
12255 
12256 #ifndef GL_EXT_texture_env
12257 #define GL_EXT_texture_env 1
12258 
12259 #define GLEW_EXT_texture_env GLEW_GET_VAR(__GLEW_EXT_texture_env)
12260 
12261 #endif /* GL_EXT_texture_env */
12262 
12263 /* ------------------------- GL_EXT_texture_env_add ------------------------ */
12264 
12265 #ifndef GL_EXT_texture_env_add
12266 #define GL_EXT_texture_env_add 1
12267 
12268 #define GLEW_EXT_texture_env_add GLEW_GET_VAR(__GLEW_EXT_texture_env_add)
12269 
12270 #endif /* GL_EXT_texture_env_add */
12271 
12272 /* ----------------------- GL_EXT_texture_env_combine ---------------------- */
12273 
12274 #ifndef GL_EXT_texture_env_combine
12275 #define GL_EXT_texture_env_combine 1
12276 
12277 #define GL_COMBINE_EXT 0x8570
12278 #define GL_COMBINE_RGB_EXT 0x8571
12279 #define GL_COMBINE_ALPHA_EXT 0x8572
12280 #define GL_RGB_SCALE_EXT 0x8573
12281 #define GL_ADD_SIGNED_EXT 0x8574
12282 #define GL_INTERPOLATE_EXT 0x8575
12283 #define GL_CONSTANT_EXT 0x8576
12284 #define GL_PRIMARY_COLOR_EXT 0x8577
12285 #define GL_PREVIOUS_EXT 0x8578
12286 #define GL_SOURCE0_RGB_EXT 0x8580
12287 #define GL_SOURCE1_RGB_EXT 0x8581
12288 #define GL_SOURCE2_RGB_EXT 0x8582
12289 #define GL_SOURCE0_ALPHA_EXT 0x8588
12290 #define GL_SOURCE1_ALPHA_EXT 0x8589
12291 #define GL_SOURCE2_ALPHA_EXT 0x858A
12292 #define GL_OPERAND0_RGB_EXT 0x8590
12293 #define GL_OPERAND1_RGB_EXT 0x8591
12294 #define GL_OPERAND2_RGB_EXT 0x8592
12295 #define GL_OPERAND0_ALPHA_EXT 0x8598
12296 #define GL_OPERAND1_ALPHA_EXT 0x8599
12297 #define GL_OPERAND2_ALPHA_EXT 0x859A
12298 
12299 #define GLEW_EXT_texture_env_combine GLEW_GET_VAR(__GLEW_EXT_texture_env_combine)
12300 
12301 #endif /* GL_EXT_texture_env_combine */
12302 
12303 /* ------------------------ GL_EXT_texture_env_dot3 ------------------------ */
12304 
12305 #ifndef GL_EXT_texture_env_dot3
12306 #define GL_EXT_texture_env_dot3 1
12307 
12308 #define GL_DOT3_RGB_EXT 0x8740
12309 #define GL_DOT3_RGBA_EXT 0x8741
12310 
12311 #define GLEW_EXT_texture_env_dot3 GLEW_GET_VAR(__GLEW_EXT_texture_env_dot3)
12312 
12313 #endif /* GL_EXT_texture_env_dot3 */
12314 
12315 /* ------------------- GL_EXT_texture_filter_anisotropic ------------------- */
12316 
12317 #ifndef GL_EXT_texture_filter_anisotropic
12318 #define GL_EXT_texture_filter_anisotropic 1
12319 
12320 #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
12321 #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
12322 
12323 #define GLEW_EXT_texture_filter_anisotropic GLEW_GET_VAR(__GLEW_EXT_texture_filter_anisotropic)
12324 
12325 #endif /* GL_EXT_texture_filter_anisotropic */
12326 
12327 /* ---------------------- GL_EXT_texture_filter_minmax --------------------- */
12328 
12329 #ifndef GL_EXT_texture_filter_minmax
12330 #define GL_EXT_texture_filter_minmax 1
12331 
12332 #define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366
12333 #define GL_WEIGHTED_AVERAGE_EXT 0x9367
12334 
12335 #define GLEW_EXT_texture_filter_minmax GLEW_GET_VAR(__GLEW_EXT_texture_filter_minmax)
12336 
12337 #endif /* GL_EXT_texture_filter_minmax */
12338 
12339 /* --------------------- GL_EXT_texture_format_BGRA8888 -------------------- */
12340 
12341 #ifndef GL_EXT_texture_format_BGRA8888
12342 #define GL_EXT_texture_format_BGRA8888 1
12343 
12344 #define GL_BGRA_EXT 0x80E1
12345 
12346 #define GLEW_EXT_texture_format_BGRA8888 GLEW_GET_VAR(__GLEW_EXT_texture_format_BGRA8888)
12347 
12348 #endif /* GL_EXT_texture_format_BGRA8888 */
12349 
12350 /* ------------------------- GL_EXT_texture_integer ------------------------ */
12351 
12352 #ifndef GL_EXT_texture_integer
12353 #define GL_EXT_texture_integer 1
12354 
12355 #define GL_RGBA32UI_EXT 0x8D70
12356 #define GL_RGB32UI_EXT 0x8D71
12357 #define GL_ALPHA32UI_EXT 0x8D72
12358 #define GL_INTENSITY32UI_EXT 0x8D73
12359 #define GL_LUMINANCE32UI_EXT 0x8D74
12360 #define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75
12361 #define GL_RGBA16UI_EXT 0x8D76
12362 #define GL_RGB16UI_EXT 0x8D77
12363 #define GL_ALPHA16UI_EXT 0x8D78
12364 #define GL_INTENSITY16UI_EXT 0x8D79
12365 #define GL_LUMINANCE16UI_EXT 0x8D7A
12366 #define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B
12367 #define GL_RGBA8UI_EXT 0x8D7C
12368 #define GL_RGB8UI_EXT 0x8D7D
12369 #define GL_ALPHA8UI_EXT 0x8D7E
12370 #define GL_INTENSITY8UI_EXT 0x8D7F
12371 #define GL_LUMINANCE8UI_EXT 0x8D80
12372 #define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81
12373 #define GL_RGBA32I_EXT 0x8D82
12374 #define GL_RGB32I_EXT 0x8D83
12375 #define GL_ALPHA32I_EXT 0x8D84
12376 #define GL_INTENSITY32I_EXT 0x8D85
12377 #define GL_LUMINANCE32I_EXT 0x8D86
12378 #define GL_LUMINANCE_ALPHA32I_EXT 0x8D87
12379 #define GL_RGBA16I_EXT 0x8D88
12380 #define GL_RGB16I_EXT 0x8D89
12381 #define GL_ALPHA16I_EXT 0x8D8A
12382 #define GL_INTENSITY16I_EXT 0x8D8B
12383 #define GL_LUMINANCE16I_EXT 0x8D8C
12384 #define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D
12385 #define GL_RGBA8I_EXT 0x8D8E
12386 #define GL_RGB8I_EXT 0x8D8F
12387 #define GL_ALPHA8I_EXT 0x8D90
12388 #define GL_INTENSITY8I_EXT 0x8D91
12389 #define GL_LUMINANCE8I_EXT 0x8D92
12390 #define GL_LUMINANCE_ALPHA8I_EXT 0x8D93
12391 #define GL_RED_INTEGER_EXT 0x8D94
12392 #define GL_GREEN_INTEGER_EXT 0x8D95
12393 #define GL_BLUE_INTEGER_EXT 0x8D96
12394 #define GL_ALPHA_INTEGER_EXT 0x8D97
12395 #define GL_RGB_INTEGER_EXT 0x8D98
12396 #define GL_RGBA_INTEGER_EXT 0x8D99
12397 #define GL_BGR_INTEGER_EXT 0x8D9A
12398 #define GL_BGRA_INTEGER_EXT 0x8D9B
12399 #define GL_LUMINANCE_INTEGER_EXT 0x8D9C
12400 #define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D
12401 #define GL_RGBA_INTEGER_MODE_EXT 0x8D9E
12402 
12403 typedef void (GLAPIENTRY * PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha);
12404 typedef void (GLAPIENTRY * PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha);
12405 typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
12406 typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params);
12407 typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
12408 typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params);
12409 
12410 #define glClearColorIiEXT GLEW_GET_FUN(__glewClearColorIiEXT)
12411 #define glClearColorIuiEXT GLEW_GET_FUN(__glewClearColorIuiEXT)
12412 #define glGetTexParameterIivEXT GLEW_GET_FUN(__glewGetTexParameterIivEXT)
12413 #define glGetTexParameterIuivEXT GLEW_GET_FUN(__glewGetTexParameterIuivEXT)
12414 #define glTexParameterIivEXT GLEW_GET_FUN(__glewTexParameterIivEXT)
12415 #define glTexParameterIuivEXT GLEW_GET_FUN(__glewTexParameterIuivEXT)
12416 
12417 #define GLEW_EXT_texture_integer GLEW_GET_VAR(__GLEW_EXT_texture_integer)
12418 
12419 #endif /* GL_EXT_texture_integer */
12420 
12421 /* ------------------------ GL_EXT_texture_lod_bias ------------------------ */
12422 
12423 #ifndef GL_EXT_texture_lod_bias
12424 #define GL_EXT_texture_lod_bias 1
12425 
12426 #define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD
12427 #define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500
12428 #define GL_TEXTURE_LOD_BIAS_EXT 0x8501
12429 
12430 #define GLEW_EXT_texture_lod_bias GLEW_GET_VAR(__GLEW_EXT_texture_lod_bias)
12431 
12432 #endif /* GL_EXT_texture_lod_bias */
12433 
12434 /* ---------------------- GL_EXT_texture_mirror_clamp ---------------------- */
12435 
12436 #ifndef GL_EXT_texture_mirror_clamp
12437 #define GL_EXT_texture_mirror_clamp 1
12438 
12439 #define GL_MIRROR_CLAMP_EXT 0x8742
12440 #define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743
12441 #define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912
12442 
12443 #define GLEW_EXT_texture_mirror_clamp GLEW_GET_VAR(__GLEW_EXT_texture_mirror_clamp)
12444 
12445 #endif /* GL_EXT_texture_mirror_clamp */
12446 
12447 /* ------------------------- GL_EXT_texture_norm16 ------------------------- */
12448 
12449 #ifndef GL_EXT_texture_norm16
12450 #define GL_EXT_texture_norm16 1
12451 
12452 #define GL_RGB16_EXT 0x8054
12453 #define GL_RGBA16_EXT 0x805B
12454 #define GL_R16_EXT 0x822A
12455 #define GL_RG16_EXT 0x822C
12456 #define GL_R16_SNORM_EXT 0x8F98
12457 #define GL_RG16_SNORM_EXT 0x8F99
12458 #define GL_RGB16_SNORM_EXT 0x8F9A
12459 #define GL_RGBA16_SNORM_EXT 0x8F9B
12460 
12461 #define GLEW_EXT_texture_norm16 GLEW_GET_VAR(__GLEW_EXT_texture_norm16)
12462 
12463 #endif /* GL_EXT_texture_norm16 */
12464 
12465 /* ------------------------- GL_EXT_texture_object ------------------------- */
12466 
12467 #ifndef GL_EXT_texture_object
12468 #define GL_EXT_texture_object 1
12469 
12470 #define GL_TEXTURE_PRIORITY_EXT 0x8066
12471 #define GL_TEXTURE_RESIDENT_EXT 0x8067
12472 #define GL_TEXTURE_1D_BINDING_EXT 0x8068
12473 #define GL_TEXTURE_2D_BINDING_EXT 0x8069
12474 #define GL_TEXTURE_3D_BINDING_EXT 0x806A
12475 
12476 typedef GLboolean (GLAPIENTRY * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint* textures, GLboolean* residences);
12477 typedef void (GLAPIENTRY * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture);
12478 typedef void (GLAPIENTRY * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint* textures);
12479 typedef void (GLAPIENTRY * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint* textures);
12480 typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREEXTPROC) (GLuint texture);
12481 typedef void (GLAPIENTRY * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint* textures, const GLclampf* priorities);
12482 
12483 #define glAreTexturesResidentEXT GLEW_GET_FUN(__glewAreTexturesResidentEXT)
12484 #define glBindTextureEXT GLEW_GET_FUN(__glewBindTextureEXT)
12485 #define glDeleteTexturesEXT GLEW_GET_FUN(__glewDeleteTexturesEXT)
12486 #define glGenTexturesEXT GLEW_GET_FUN(__glewGenTexturesEXT)
12487 #define glIsTextureEXT GLEW_GET_FUN(__glewIsTextureEXT)
12488 #define glPrioritizeTexturesEXT GLEW_GET_FUN(__glewPrioritizeTexturesEXT)
12489 
12490 #define GLEW_EXT_texture_object GLEW_GET_VAR(__GLEW_EXT_texture_object)
12491 
12492 #endif /* GL_EXT_texture_object */
12493 
12494 /* --------------------- GL_EXT_texture_perturb_normal --------------------- */
12495 
12496 #ifndef GL_EXT_texture_perturb_normal
12497 #define GL_EXT_texture_perturb_normal 1
12498 
12499 #define GL_PERTURB_EXT 0x85AE
12500 #define GL_TEXTURE_NORMAL_EXT 0x85AF
12501 
12502 typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode);
12503 
12504 #define glTextureNormalEXT GLEW_GET_FUN(__glewTextureNormalEXT)
12505 
12506 #define GLEW_EXT_texture_perturb_normal GLEW_GET_VAR(__GLEW_EXT_texture_perturb_normal)
12507 
12508 #endif /* GL_EXT_texture_perturb_normal */
12509 
12510 /* ------------------------ GL_EXT_texture_rectangle ----------------------- */
12511 
12512 #ifndef GL_EXT_texture_rectangle
12513 #define GL_EXT_texture_rectangle 1
12514 
12515 #define GL_TEXTURE_RECTANGLE_EXT 0x84F5
12516 #define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6
12517 #define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7
12518 #define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8
12519 
12520 #define GLEW_EXT_texture_rectangle GLEW_GET_VAR(__GLEW_EXT_texture_rectangle)
12521 
12522 #endif /* GL_EXT_texture_rectangle */
12523 
12524 /* --------------------------- GL_EXT_texture_rg --------------------------- */
12525 
12526 #ifndef GL_EXT_texture_rg
12527 #define GL_EXT_texture_rg 1
12528 
12529 #define GL_RED_EXT 0x1903
12530 #define GL_RG_EXT 0x8227
12531 #define GL_R8_EXT 0x8229
12532 #define GL_RG8_EXT 0x822B
12533 
12534 #define GLEW_EXT_texture_rg GLEW_GET_VAR(__GLEW_EXT_texture_rg)
12535 
12536 #endif /* GL_EXT_texture_rg */
12537 
12538 /* -------------------------- GL_EXT_texture_sRGB -------------------------- */
12539 
12540 #ifndef GL_EXT_texture_sRGB
12541 #define GL_EXT_texture_sRGB 1
12542 
12543 #define GL_SRGB_EXT 0x8C40
12544 #define GL_SRGB8_EXT 0x8C41
12545 #define GL_SRGB_ALPHA_EXT 0x8C42
12546 #define GL_SRGB8_ALPHA8_EXT 0x8C43
12547 #define GL_SLUMINANCE_ALPHA_EXT 0x8C44
12548 #define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45
12549 #define GL_SLUMINANCE_EXT 0x8C46
12550 #define GL_SLUMINANCE8_EXT 0x8C47
12551 #define GL_COMPRESSED_SRGB_EXT 0x8C48
12552 #define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49
12553 #define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A
12554 #define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B
12555 #define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
12556 #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
12557 #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
12558 #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
12559 
12560 #define GLEW_EXT_texture_sRGB GLEW_GET_VAR(__GLEW_EXT_texture_sRGB)
12561 
12562 #endif /* GL_EXT_texture_sRGB */
12563 
12564 /* ------------------------- GL_EXT_texture_sRGB_R8 ------------------------ */
12565 
12566 #ifndef GL_EXT_texture_sRGB_R8
12567 #define GL_EXT_texture_sRGB_R8 1
12568 
12569 #define GL_SR8_EXT 0x8FBD
12570 
12571 #define GLEW_EXT_texture_sRGB_R8 GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_R8)
12572 
12573 #endif /* GL_EXT_texture_sRGB_R8 */
12574 
12575 /* ------------------------ GL_EXT_texture_sRGB_RG8 ------------------------ */
12576 
12577 #ifndef GL_EXT_texture_sRGB_RG8
12578 #define GL_EXT_texture_sRGB_RG8 1
12579 
12580 #define GL_SRG8_EXT 0x8FBE
12581 
12582 #define GLEW_EXT_texture_sRGB_RG8 GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_RG8)
12583 
12584 #endif /* GL_EXT_texture_sRGB_RG8 */
12585 
12586 /* ----------------------- GL_EXT_texture_sRGB_decode ---------------------- */
12587 
12588 #ifndef GL_EXT_texture_sRGB_decode
12589 #define GL_EXT_texture_sRGB_decode 1
12590 
12591 #define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48
12592 #define GL_DECODE_EXT 0x8A49
12593 #define GL_SKIP_DECODE_EXT 0x8A4A
12594 
12595 #define GLEW_EXT_texture_sRGB_decode GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_decode)
12596 
12597 #endif /* GL_EXT_texture_sRGB_decode */
12598 
12599 /* --------------------- GL_EXT_texture_shared_exponent -------------------- */
12600 
12601 #ifndef GL_EXT_texture_shared_exponent
12602 #define GL_EXT_texture_shared_exponent 1
12603 
12604 #define GL_RGB9_E5_EXT 0x8C3D
12605 #define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E
12606 #define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F
12607 
12608 #define GLEW_EXT_texture_shared_exponent GLEW_GET_VAR(__GLEW_EXT_texture_shared_exponent)
12609 
12610 #endif /* GL_EXT_texture_shared_exponent */
12611 
12612 /* -------------------------- GL_EXT_texture_snorm ------------------------- */
12613 
12614 #ifndef GL_EXT_texture_snorm
12615 #define GL_EXT_texture_snorm 1
12616 
12617 #define GL_RED_SNORM 0x8F90
12618 #define GL_RG_SNORM 0x8F91
12619 #define GL_RGB_SNORM 0x8F92
12620 #define GL_RGBA_SNORM 0x8F93
12621 #define GL_R8_SNORM 0x8F94
12622 #define GL_RG8_SNORM 0x8F95
12623 #define GL_RGB8_SNORM 0x8F96
12624 #define GL_RGBA8_SNORM 0x8F97
12625 #define GL_R16_SNORM 0x8F98
12626 #define GL_RG16_SNORM 0x8F99
12627 #define GL_RGB16_SNORM 0x8F9A
12628 #define GL_RGBA16_SNORM 0x8F9B
12629 #define GL_SIGNED_NORMALIZED 0x8F9C
12630 #define GL_ALPHA_SNORM 0x9010
12631 #define GL_LUMINANCE_SNORM 0x9011
12632 #define GL_LUMINANCE_ALPHA_SNORM 0x9012
12633 #define GL_INTENSITY_SNORM 0x9013
12634 #define GL_ALPHA8_SNORM 0x9014
12635 #define GL_LUMINANCE8_SNORM 0x9015
12636 #define GL_LUMINANCE8_ALPHA8_SNORM 0x9016
12637 #define GL_INTENSITY8_SNORM 0x9017
12638 #define GL_ALPHA16_SNORM 0x9018
12639 #define GL_LUMINANCE16_SNORM 0x9019
12640 #define GL_LUMINANCE16_ALPHA16_SNORM 0x901A
12641 #define GL_INTENSITY16_SNORM 0x901B
12642 
12643 #define GLEW_EXT_texture_snorm GLEW_GET_VAR(__GLEW_EXT_texture_snorm)
12644 
12645 #endif /* GL_EXT_texture_snorm */
12646 
12647 /* ------------------------- GL_EXT_texture_storage ------------------------ */
12648 
12649 #ifndef GL_EXT_texture_storage
12650 #define GL_EXT_texture_storage 1
12651 
12652 #define GL_ALPHA8_EXT 0x803C
12653 #define GL_LUMINANCE8_EXT 0x8040
12654 #define GL_LUMINANCE8_ALPHA8_EXT 0x8045
12655 #define GL_RGB10_EXT 0x8052
12656 #define GL_RGB10_A2_EXT 0x8059
12657 #define GL_R8_EXT 0x8229
12658 #define GL_RG8_EXT 0x822B
12659 #define GL_R16F_EXT 0x822D
12660 #define GL_R32F_EXT 0x822E
12661 #define GL_RG16F_EXT 0x822F
12662 #define GL_RG32F_EXT 0x8230
12663 #define GL_RGBA32F_EXT 0x8814
12664 #define GL_RGB32F_EXT 0x8815
12665 #define GL_ALPHA32F_EXT 0x8816
12666 #define GL_LUMINANCE32F_EXT 0x8818
12667 #define GL_LUMINANCE_ALPHA32F_EXT 0x8819
12668 #define GL_RGBA16F_EXT 0x881A
12669 #define GL_RGB16F_EXT 0x881B
12670 #define GL_ALPHA16F_EXT 0x881C
12671 #define GL_LUMINANCE16F_EXT 0x881E
12672 #define GL_LUMINANCE_ALPHA16F_EXT 0x881F
12673 #define GL_RGB_RAW_422_APPLE 0x8A51
12674 #define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F
12675 #define GL_BGRA8_EXT 0x93A1
12676 
12677 typedef void (GLAPIENTRY * PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
12678 typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
12679 typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
12680 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
12681 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
12682 typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
12683 
12684 #define glTexStorage1DEXT GLEW_GET_FUN(__glewTexStorage1DEXT)
12685 #define glTexStorage2DEXT GLEW_GET_FUN(__glewTexStorage2DEXT)
12686 #define glTexStorage3DEXT GLEW_GET_FUN(__glewTexStorage3DEXT)
12687 #define glTextureStorage1DEXT GLEW_GET_FUN(__glewTextureStorage1DEXT)
12688 #define glTextureStorage2DEXT GLEW_GET_FUN(__glewTextureStorage2DEXT)
12689 #define glTextureStorage3DEXT GLEW_GET_FUN(__glewTextureStorage3DEXT)
12690 
12691 #define GLEW_EXT_texture_storage GLEW_GET_VAR(__GLEW_EXT_texture_storage)
12692 
12693 #endif /* GL_EXT_texture_storage */
12694 
12695 /* ------------------------- GL_EXT_texture_swizzle ------------------------ */
12696 
12697 #ifndef GL_EXT_texture_swizzle
12698 #define GL_EXT_texture_swizzle 1
12699 
12700 #define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42
12701 #define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43
12702 #define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44
12703 #define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45
12704 #define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46
12705 
12706 #define GLEW_EXT_texture_swizzle GLEW_GET_VAR(__GLEW_EXT_texture_swizzle)
12707 
12708 #endif /* GL_EXT_texture_swizzle */
12709 
12710 /* ------------------- GL_EXT_texture_type_2_10_10_10_REV ------------------ */
12711 
12712 #ifndef GL_EXT_texture_type_2_10_10_10_REV
12713 #define GL_EXT_texture_type_2_10_10_10_REV 1
12714 
12715 #define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368
12716 
12717 #define GLEW_EXT_texture_type_2_10_10_10_REV GLEW_GET_VAR(__GLEW_EXT_texture_type_2_10_10_10_REV)
12718 
12719 #endif /* GL_EXT_texture_type_2_10_10_10_REV */
12720 
12721 /* -------------------------- GL_EXT_texture_view -------------------------- */
12722 
12723 #ifndef GL_EXT_texture_view
12724 #define GL_EXT_texture_view 1
12725 
12726 #define GL_TEXTURE_VIEW_MIN_LEVEL_EXT 0x82DB
12727 #define GL_TEXTURE_VIEW_NUM_LEVELS_EXT 0x82DC
12728 #define GL_TEXTURE_VIEW_MIN_LAYER_EXT 0x82DD
12729 #define GL_TEXTURE_VIEW_NUM_LAYERS_EXT 0x82DE
12730 #define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
12731 
12732 typedef void (GLAPIENTRY * PFNGLTEXTUREVIEWEXTPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
12733 
12734 #define glTextureViewEXT GLEW_GET_FUN(__glewTextureViewEXT)
12735 
12736 #define GLEW_EXT_texture_view GLEW_GET_VAR(__GLEW_EXT_texture_view)
12737 
12738 #endif /* GL_EXT_texture_view */
12739 
12740 /* --------------------------- GL_EXT_timer_query -------------------------- */
12741 
12742 #ifndef GL_EXT_timer_query
12743 #define GL_EXT_timer_query 1
12744 
12745 #define GL_TIME_ELAPSED_EXT 0x88BF
12746 
12747 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params);
12748 typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params);
12749 
12750 #define glGetQueryObjecti64vEXT GLEW_GET_FUN(__glewGetQueryObjecti64vEXT)
12751 #define glGetQueryObjectui64vEXT GLEW_GET_FUN(__glewGetQueryObjectui64vEXT)
12752 
12753 #define GLEW_EXT_timer_query GLEW_GET_VAR(__GLEW_EXT_timer_query)
12754 
12755 #endif /* GL_EXT_timer_query */
12756 
12757 /* ----------------------- GL_EXT_transform_feedback ----------------------- */
12758 
12759 #ifndef GL_EXT_transform_feedback
12760 #define GL_EXT_transform_feedback 1
12761 
12762 #define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76
12763 #define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F
12764 #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80
12765 #define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83
12766 #define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84
12767 #define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85
12768 #define GL_PRIMITIVES_GENERATED_EXT 0x8C87
12769 #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88
12770 #define GL_RASTERIZER_DISCARD_EXT 0x8C89
12771 #define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A
12772 #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B
12773 #define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C
12774 #define GL_SEPARATE_ATTRIBS_EXT 0x8C8D
12775 #define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E
12776 #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F
12777 
12778 typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode);
12779 typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer);
12780 typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
12781 typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
12782 typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void);
12783 typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei *size, GLenum *type, GLchar *name);
12784 typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar * const* varyings, GLenum bufferMode);
12785 
12786 #define glBeginTransformFeedbackEXT GLEW_GET_FUN(__glewBeginTransformFeedbackEXT)
12787 #define glBindBufferBaseEXT GLEW_GET_FUN(__glewBindBufferBaseEXT)
12788 #define glBindBufferOffsetEXT GLEW_GET_FUN(__glewBindBufferOffsetEXT)
12789 #define glBindBufferRangeEXT GLEW_GET_FUN(__glewBindBufferRangeEXT)
12790 #define glEndTransformFeedbackEXT GLEW_GET_FUN(__glewEndTransformFeedbackEXT)
12791 #define glGetTransformFeedbackVaryingEXT GLEW_GET_FUN(__glewGetTransformFeedbackVaryingEXT)
12792 #define glTransformFeedbackVaryingsEXT GLEW_GET_FUN(__glewTransformFeedbackVaryingsEXT)
12793 
12794 #define GLEW_EXT_transform_feedback GLEW_GET_VAR(__GLEW_EXT_transform_feedback)
12795 
12796 #endif /* GL_EXT_transform_feedback */
12797 
12798 /* ------------------------- GL_EXT_unpack_subimage ------------------------ */
12799 
12800 #ifndef GL_EXT_unpack_subimage
12801 #define GL_EXT_unpack_subimage 1
12802 
12803 #define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2
12804 #define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3
12805 #define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4
12806 
12807 #define GLEW_EXT_unpack_subimage GLEW_GET_VAR(__GLEW_EXT_unpack_subimage)
12808 
12809 #endif /* GL_EXT_unpack_subimage */
12810 
12811 /* -------------------------- GL_EXT_vertex_array -------------------------- */
12812 
12813 #ifndef GL_EXT_vertex_array
12814 #define GL_EXT_vertex_array 1
12815 
12816 #define GL_DOUBLE_EXT 0x140A
12817 #define GL_VERTEX_ARRAY_EXT 0x8074
12818 #define GL_NORMAL_ARRAY_EXT 0x8075
12819 #define GL_COLOR_ARRAY_EXT 0x8076
12820 #define GL_INDEX_ARRAY_EXT 0x8077
12821 #define GL_TEXTURE_COORD_ARRAY_EXT 0x8078
12822 #define GL_EDGE_FLAG_ARRAY_EXT 0x8079
12823 #define GL_VERTEX_ARRAY_SIZE_EXT 0x807A
12824 #define GL_VERTEX_ARRAY_TYPE_EXT 0x807B
12825 #define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C
12826 #define GL_VERTEX_ARRAY_COUNT_EXT 0x807D
12827 #define GL_NORMAL_ARRAY_TYPE_EXT 0x807E
12828 #define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F
12829 #define GL_NORMAL_ARRAY_COUNT_EXT 0x8080
12830 #define GL_COLOR_ARRAY_SIZE_EXT 0x8081
12831 #define GL_COLOR_ARRAY_TYPE_EXT 0x8082
12832 #define GL_COLOR_ARRAY_STRIDE_EXT 0x8083
12833 #define GL_COLOR_ARRAY_COUNT_EXT 0x8084
12834 #define GL_INDEX_ARRAY_TYPE_EXT 0x8085
12835 #define GL_INDEX_ARRAY_STRIDE_EXT 0x8086
12836 #define GL_INDEX_ARRAY_COUNT_EXT 0x8087
12837 #define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088
12838 #define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089
12839 #define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A
12840 #define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B
12841 #define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C
12842 #define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D
12843 #define GL_VERTEX_ARRAY_POINTER_EXT 0x808E
12844 #define GL_NORMAL_ARRAY_POINTER_EXT 0x808F
12845 #define GL_COLOR_ARRAY_POINTER_EXT 0x8090
12846 #define GL_INDEX_ARRAY_POINTER_EXT 0x8091
12847 #define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092
12848 #define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093
12849 
12850 typedef void (GLAPIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i);
12851 typedef void (GLAPIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer);
12852 typedef void (GLAPIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count);
12853 typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean* pointer);
12854 typedef void (GLAPIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer);
12855 typedef void (GLAPIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer);
12856 typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer);
12857 typedef void (GLAPIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer);
12858 
12859 #define glArrayElementEXT GLEW_GET_FUN(__glewArrayElementEXT)
12860 #define glColorPointerEXT GLEW_GET_FUN(__glewColorPointerEXT)
12861 #define glDrawArraysEXT GLEW_GET_FUN(__glewDrawArraysEXT)
12862 #define glEdgeFlagPointerEXT GLEW_GET_FUN(__glewEdgeFlagPointerEXT)
12863 #define glIndexPointerEXT GLEW_GET_FUN(__glewIndexPointerEXT)
12864 #define glNormalPointerEXT GLEW_GET_FUN(__glewNormalPointerEXT)
12865 #define glTexCoordPointerEXT GLEW_GET_FUN(__glewTexCoordPointerEXT)
12866 #define glVertexPointerEXT GLEW_GET_FUN(__glewVertexPointerEXT)
12867 
12868 #define GLEW_EXT_vertex_array GLEW_GET_VAR(__GLEW_EXT_vertex_array)
12869 
12870 #endif /* GL_EXT_vertex_array */
12871 
12872 /* ------------------------ GL_EXT_vertex_array_bgra ----------------------- */
12873 
12874 #ifndef GL_EXT_vertex_array_bgra
12875 #define GL_EXT_vertex_array_bgra 1
12876 
12877 #define GL_BGRA 0x80E1
12878 
12879 #define GLEW_EXT_vertex_array_bgra GLEW_GET_VAR(__GLEW_EXT_vertex_array_bgra)
12880 
12881 #endif /* GL_EXT_vertex_array_bgra */
12882 
12883 /* ----------------------- GL_EXT_vertex_array_setXXX ---------------------- */
12884 
12885 #ifndef GL_EXT_vertex_array_setXXX
12886 #define GL_EXT_vertex_array_setXXX 1
12887 
12888 typedef void (GLAPIENTRY * PFNGLBINDARRAYSETEXTPROC) (const void *arrayset);
12889 typedef const void * (GLAPIENTRY * PFNGLCREATEARRAYSETEXTPROC) (void);
12890 typedef void (GLAPIENTRY * PFNGLDELETEARRAYSETSEXTPROC) (GLsizei n, const void *arrayset[]);
12891 
12892 #define glBindArraySetEXT GLEW_GET_FUN(__glewBindArraySetEXT)
12893 #define glCreateArraySetExt GLEW_GET_FUN(__glewCreateArraySetExt)
12894 #define glDeleteArraySetsEXT GLEW_GET_FUN(__glewDeleteArraySetsEXT)
12895 
12896 #define GLEW_EXT_vertex_array_setXXX GLEW_GET_VAR(__GLEW_EXT_vertex_array_setXXX)
12897 
12898 #endif /* GL_EXT_vertex_array_setXXX */
12899 
12900 /* ----------------------- GL_EXT_vertex_attrib_64bit ---------------------- */
12901 
12902 #ifndef GL_EXT_vertex_attrib_64bit
12903 #define GL_EXT_vertex_attrib_64bit 1
12904 
12905 #define GL_DOUBLE_MAT2_EXT 0x8F46
12906 #define GL_DOUBLE_MAT3_EXT 0x8F47
12907 #define GL_DOUBLE_MAT4_EXT 0x8F48
12908 #define GL_DOUBLE_MAT2x3_EXT 0x8F49
12909 #define GL_DOUBLE_MAT2x4_EXT 0x8F4A
12910 #define GL_DOUBLE_MAT3x2_EXT 0x8F4B
12911 #define GL_DOUBLE_MAT3x4_EXT 0x8F4C
12912 #define GL_DOUBLE_MAT4x2_EXT 0x8F4D
12913 #define GL_DOUBLE_MAT4x3_EXT 0x8F4E
12914 #define GL_DOUBLE_VEC2_EXT 0x8FFC
12915 #define GL_DOUBLE_VEC3_EXT 0x8FFD
12916 #define GL_DOUBLE_VEC4_EXT 0x8FFE
12917 
12918 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble* params);
12919 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
12920 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x);
12921 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble* v);
12922 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y);
12923 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble* v);
12924 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
12925 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble* v);
12926 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
12927 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble* v);
12928 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
12929 
12930 #define glGetVertexAttribLdvEXT GLEW_GET_FUN(__glewGetVertexAttribLdvEXT)
12931 #define glVertexArrayVertexAttribLOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribLOffsetEXT)
12932 #define glVertexAttribL1dEXT GLEW_GET_FUN(__glewVertexAttribL1dEXT)
12933 #define glVertexAttribL1dvEXT GLEW_GET_FUN(__glewVertexAttribL1dvEXT)
12934 #define glVertexAttribL2dEXT GLEW_GET_FUN(__glewVertexAttribL2dEXT)
12935 #define glVertexAttribL2dvEXT GLEW_GET_FUN(__glewVertexAttribL2dvEXT)
12936 #define glVertexAttribL3dEXT GLEW_GET_FUN(__glewVertexAttribL3dEXT)
12937 #define glVertexAttribL3dvEXT GLEW_GET_FUN(__glewVertexAttribL3dvEXT)
12938 #define glVertexAttribL4dEXT GLEW_GET_FUN(__glewVertexAttribL4dEXT)
12939 #define glVertexAttribL4dvEXT GLEW_GET_FUN(__glewVertexAttribL4dvEXT)
12940 #define glVertexAttribLPointerEXT GLEW_GET_FUN(__glewVertexAttribLPointerEXT)
12941 
12942 #define GLEW_EXT_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_EXT_vertex_attrib_64bit)
12943 
12944 #endif /* GL_EXT_vertex_attrib_64bit */
12945 
12946 /* -------------------------- GL_EXT_vertex_shader ------------------------- */
12947 
12948 #ifndef GL_EXT_vertex_shader
12949 #define GL_EXT_vertex_shader 1
12950 
12951 #define GL_VERTEX_SHADER_EXT 0x8780
12952 #define GL_VERTEX_SHADER_BINDING_EXT 0x8781
12953 #define GL_OP_INDEX_EXT 0x8782
12954 #define GL_OP_NEGATE_EXT 0x8783
12955 #define GL_OP_DOT3_EXT 0x8784
12956 #define GL_OP_DOT4_EXT 0x8785
12957 #define GL_OP_MUL_EXT 0x8786
12958 #define GL_OP_ADD_EXT 0x8787
12959 #define GL_OP_MADD_EXT 0x8788
12960 #define GL_OP_FRAC_EXT 0x8789
12961 #define GL_OP_MAX_EXT 0x878A
12962 #define GL_OP_MIN_EXT 0x878B
12963 #define GL_OP_SET_GE_EXT 0x878C
12964 #define GL_OP_SET_LT_EXT 0x878D
12965 #define GL_OP_CLAMP_EXT 0x878E
12966 #define GL_OP_FLOOR_EXT 0x878F
12967 #define GL_OP_ROUND_EXT 0x8790
12968 #define GL_OP_EXP_BASE_2_EXT 0x8791
12969 #define GL_OP_LOG_BASE_2_EXT 0x8792
12970 #define GL_OP_POWER_EXT 0x8793
12971 #define GL_OP_RECIP_EXT 0x8794
12972 #define GL_OP_RECIP_SQRT_EXT 0x8795
12973 #define GL_OP_SUB_EXT 0x8796
12974 #define GL_OP_CROSS_PRODUCT_EXT 0x8797
12975 #define GL_OP_MULTIPLY_MATRIX_EXT 0x8798
12976 #define GL_OP_MOV_EXT 0x8799
12977 #define GL_OUTPUT_VERTEX_EXT 0x879A
12978 #define GL_OUTPUT_COLOR0_EXT 0x879B
12979 #define GL_OUTPUT_COLOR1_EXT 0x879C
12980 #define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D
12981 #define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E
12982 #define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F
12983 #define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0
12984 #define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1
12985 #define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2
12986 #define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3
12987 #define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4
12988 #define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5
12989 #define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6
12990 #define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7
12991 #define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8
12992 #define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9
12993 #define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA
12994 #define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB
12995 #define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC
12996 #define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD
12997 #define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE
12998 #define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF
12999 #define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0
13000 #define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1
13001 #define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2
13002 #define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3
13003 #define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4
13004 #define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5
13005 #define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6
13006 #define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7
13007 #define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8
13008 #define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9
13009 #define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA
13010 #define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB
13011 #define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC
13012 #define GL_OUTPUT_FOG_EXT 0x87BD
13013 #define GL_SCALAR_EXT 0x87BE
13014 #define GL_VECTOR_EXT 0x87BF
13015 #define GL_MATRIX_EXT 0x87C0
13016 #define GL_VARIANT_EXT 0x87C1
13017 #define GL_INVARIANT_EXT 0x87C2
13018 #define GL_LOCAL_CONSTANT_EXT 0x87C3
13019 #define GL_LOCAL_EXT 0x87C4
13020 #define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5
13021 #define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6
13022 #define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7
13023 #define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8
13024 #define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9
13025 #define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA
13026 #define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB
13027 #define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CC
13028 #define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CD
13029 #define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE
13030 #define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF
13031 #define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0
13032 #define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1
13033 #define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2
13034 #define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3
13035 #define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4
13036 #define GL_X_EXT 0x87D5
13037 #define GL_Y_EXT 0x87D6
13038 #define GL_Z_EXT 0x87D7
13039 #define GL_W_EXT 0x87D8
13040 #define GL_NEGATIVE_X_EXT 0x87D9
13041 #define GL_NEGATIVE_Y_EXT 0x87DA
13042 #define GL_NEGATIVE_Z_EXT 0x87DB
13043 #define GL_NEGATIVE_W_EXT 0x87DC
13044 #define GL_ZERO_EXT 0x87DD
13045 #define GL_ONE_EXT 0x87DE
13046 #define GL_NEGATIVE_ONE_EXT 0x87DF
13047 #define GL_NORMALIZED_RANGE_EXT 0x87E0
13048 #define GL_FULL_RANGE_EXT 0x87E1
13049 #define GL_CURRENT_VERTEX_EXT 0x87E2
13050 #define GL_MVP_MATRIX_EXT 0x87E3
13051 #define GL_VARIANT_VALUE_EXT 0x87E4
13052 #define GL_VARIANT_DATATYPE_EXT 0x87E5
13053 #define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6
13054 #define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7
13055 #define GL_VARIANT_ARRAY_EXT 0x87E8
13056 #define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9
13057 #define GL_INVARIANT_VALUE_EXT 0x87EA
13058 #define GL_INVARIANT_DATATYPE_EXT 0x87EB
13059 #define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC
13060 #define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED
13061 
13062 typedef void (GLAPIENTRY * PFNGLBEGINVERTEXSHADEREXTPROC) (void);
13063 typedef GLuint (GLAPIENTRY * PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value);
13064 typedef GLuint (GLAPIENTRY * PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value);
13065 typedef GLuint (GLAPIENTRY * PFNGLBINDPARAMETEREXTPROC) (GLenum value);
13066 typedef GLuint (GLAPIENTRY * PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value);
13067 typedef GLuint (GLAPIENTRY * PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value);
13068 typedef void (GLAPIENTRY * PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id);
13069 typedef void (GLAPIENTRY * PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id);
13070 typedef void (GLAPIENTRY * PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
13071 typedef void (GLAPIENTRY * PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
13072 typedef void (GLAPIENTRY * PFNGLENDVERTEXSHADEREXTPROC) (void);
13073 typedef void (GLAPIENTRY * PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
13074 typedef GLuint (GLAPIENTRY * PFNGLGENSYMBOLSEXTPROC) (GLenum dataType, GLenum storageType, GLenum range, GLuint components);
13075 typedef GLuint (GLAPIENTRY * PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range);
13076 typedef void (GLAPIENTRY * PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
13077 typedef void (GLAPIENTRY * PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
13078 typedef void (GLAPIENTRY * PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
13079 typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
13080 typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
13081 typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
13082 typedef void (GLAPIENTRY * PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
13083 typedef void (GLAPIENTRY * PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
13084 typedef void (GLAPIENTRY * PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
13085 typedef void (GLAPIENTRY * PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, void **data);
13086 typedef void (GLAPIENTRY * PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
13087 typedef GLboolean (GLAPIENTRY * PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap);
13088 typedef void (GLAPIENTRY * PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, void *addr);
13089 typedef void (GLAPIENTRY * PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, void *addr);
13090 typedef void (GLAPIENTRY * PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1);
13091 typedef void (GLAPIENTRY * PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2);
13092 typedef void (GLAPIENTRY * PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
13093 typedef void (GLAPIENTRY * PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
13094 typedef void (GLAPIENTRY * PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, void *addr);
13095 typedef void (GLAPIENTRY * PFNGLVARIANTBVEXTPROC) (GLuint id, GLbyte *addr);
13096 typedef void (GLAPIENTRY * PFNGLVARIANTDVEXTPROC) (GLuint id, GLdouble *addr);
13097 typedef void (GLAPIENTRY * PFNGLVARIANTFVEXTPROC) (GLuint id, GLfloat *addr);
13098 typedef void (GLAPIENTRY * PFNGLVARIANTIVEXTPROC) (GLuint id, GLint *addr);
13099 typedef void (GLAPIENTRY * PFNGLVARIANTSVEXTPROC) (GLuint id, GLshort *addr);
13100 typedef void (GLAPIENTRY * PFNGLVARIANTUBVEXTPROC) (GLuint id, GLubyte *addr);
13101 typedef void (GLAPIENTRY * PFNGLVARIANTUIVEXTPROC) (GLuint id, GLuint *addr);
13102 typedef void (GLAPIENTRY * PFNGLVARIANTUSVEXTPROC) (GLuint id, GLushort *addr);
13103 typedef void (GLAPIENTRY * PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
13104 
13105 #define glBeginVertexShaderEXT GLEW_GET_FUN(__glewBeginVertexShaderEXT)
13106 #define glBindLightParameterEXT GLEW_GET_FUN(__glewBindLightParameterEXT)
13107 #define glBindMaterialParameterEXT GLEW_GET_FUN(__glewBindMaterialParameterEXT)
13108 #define glBindParameterEXT GLEW_GET_FUN(__glewBindParameterEXT)
13109 #define glBindTexGenParameterEXT GLEW_GET_FUN(__glewBindTexGenParameterEXT)
13110 #define glBindTextureUnitParameterEXT GLEW_GET_FUN(__glewBindTextureUnitParameterEXT)
13111 #define glBindVertexShaderEXT GLEW_GET_FUN(__glewBindVertexShaderEXT)
13112 #define glDeleteVertexShaderEXT GLEW_GET_FUN(__glewDeleteVertexShaderEXT)
13113 #define glDisableVariantClientStateEXT GLEW_GET_FUN(__glewDisableVariantClientStateEXT)
13114 #define glEnableVariantClientStateEXT GLEW_GET_FUN(__glewEnableVariantClientStateEXT)
13115 #define glEndVertexShaderEXT GLEW_GET_FUN(__glewEndVertexShaderEXT)
13116 #define glExtractComponentEXT GLEW_GET_FUN(__glewExtractComponentEXT)
13117 #define glGenSymbolsEXT GLEW_GET_FUN(__glewGenSymbolsEXT)
13118 #define glGenVertexShadersEXT GLEW_GET_FUN(__glewGenVertexShadersEXT)
13119 #define glGetInvariantBooleanvEXT GLEW_GET_FUN(__glewGetInvariantBooleanvEXT)
13120 #define glGetInvariantFloatvEXT GLEW_GET_FUN(__glewGetInvariantFloatvEXT)
13121 #define glGetInvariantIntegervEXT GLEW_GET_FUN(__glewGetInvariantIntegervEXT)
13122 #define glGetLocalConstantBooleanvEXT GLEW_GET_FUN(__glewGetLocalConstantBooleanvEXT)
13123 #define glGetLocalConstantFloatvEXT GLEW_GET_FUN(__glewGetLocalConstantFloatvEXT)
13124 #define glGetLocalConstantIntegervEXT GLEW_GET_FUN(__glewGetLocalConstantIntegervEXT)
13125 #define glGetVariantBooleanvEXT GLEW_GET_FUN(__glewGetVariantBooleanvEXT)
13126 #define glGetVariantFloatvEXT GLEW_GET_FUN(__glewGetVariantFloatvEXT)
13127 #define glGetVariantIntegervEXT GLEW_GET_FUN(__glewGetVariantIntegervEXT)
13128 #define glGetVariantPointervEXT GLEW_GET_FUN(__glewGetVariantPointervEXT)
13129 #define glInsertComponentEXT GLEW_GET_FUN(__glewInsertComponentEXT)
13130 #define glIsVariantEnabledEXT GLEW_GET_FUN(__glewIsVariantEnabledEXT)
13131 #define glSetInvariantEXT GLEW_GET_FUN(__glewSetInvariantEXT)
13132 #define glSetLocalConstantEXT GLEW_GET_FUN(__glewSetLocalConstantEXT)
13133 #define glShaderOp1EXT GLEW_GET_FUN(__glewShaderOp1EXT)
13134 #define glShaderOp2EXT GLEW_GET_FUN(__glewShaderOp2EXT)
13135 #define glShaderOp3EXT GLEW_GET_FUN(__glewShaderOp3EXT)
13136 #define glSwizzleEXT GLEW_GET_FUN(__glewSwizzleEXT)
13137 #define glVariantPointerEXT GLEW_GET_FUN(__glewVariantPointerEXT)
13138 #define glVariantbvEXT GLEW_GET_FUN(__glewVariantbvEXT)
13139 #define glVariantdvEXT GLEW_GET_FUN(__glewVariantdvEXT)
13140 #define glVariantfvEXT GLEW_GET_FUN(__glewVariantfvEXT)
13141 #define glVariantivEXT GLEW_GET_FUN(__glewVariantivEXT)
13142 #define glVariantsvEXT GLEW_GET_FUN(__glewVariantsvEXT)
13143 #define glVariantubvEXT GLEW_GET_FUN(__glewVariantubvEXT)
13144 #define glVariantuivEXT GLEW_GET_FUN(__glewVariantuivEXT)
13145 #define glVariantusvEXT GLEW_GET_FUN(__glewVariantusvEXT)
13146 #define glWriteMaskEXT GLEW_GET_FUN(__glewWriteMaskEXT)
13147 
13148 #define GLEW_EXT_vertex_shader GLEW_GET_VAR(__GLEW_EXT_vertex_shader)
13149 
13150 #endif /* GL_EXT_vertex_shader */
13151 
13152 /* ------------------------ GL_EXT_vertex_weighting ------------------------ */
13153 
13154 #ifndef GL_EXT_vertex_weighting
13155 #define GL_EXT_vertex_weighting 1
13156 
13157 #define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3
13158 #define GL_MODELVIEW0_MATRIX_EXT 0x0BA6
13159 #define GL_MODELVIEW0_EXT 0x1700
13160 #define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502
13161 #define GL_MODELVIEW1_MATRIX_EXT 0x8506
13162 #define GL_VERTEX_WEIGHTING_EXT 0x8509
13163 #define GL_MODELVIEW1_EXT 0x850A
13164 #define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B
13165 #define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C
13166 #define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D
13167 #define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E
13168 #define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F
13169 #define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510
13170 
13171 typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, void *pointer);
13172 typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight);
13173 typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (GLfloat* weight);
13174 
13175 #define glVertexWeightPointerEXT GLEW_GET_FUN(__glewVertexWeightPointerEXT)
13176 #define glVertexWeightfEXT GLEW_GET_FUN(__glewVertexWeightfEXT)
13177 #define glVertexWeightfvEXT GLEW_GET_FUN(__glewVertexWeightfvEXT)
13178 
13179 #define GLEW_EXT_vertex_weighting GLEW_GET_VAR(__GLEW_EXT_vertex_weighting)
13180 
13181 #endif /* GL_EXT_vertex_weighting */
13182 
13183 /* ------------------------ GL_EXT_win32_keyed_mutex ----------------------- */
13184 
13185 #ifndef GL_EXT_win32_keyed_mutex
13186 #define GL_EXT_win32_keyed_mutex 1
13187 
13188 typedef GLboolean (GLAPIENTRY * PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key, GLuint timeout);
13189 typedef GLboolean (GLAPIENTRY * PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key);
13190 
13191 #define glAcquireKeyedMutexWin32EXT GLEW_GET_FUN(__glewAcquireKeyedMutexWin32EXT)
13192 #define glReleaseKeyedMutexWin32EXT GLEW_GET_FUN(__glewReleaseKeyedMutexWin32EXT)
13193 
13194 #define GLEW_EXT_win32_keyed_mutex GLEW_GET_VAR(__GLEW_EXT_win32_keyed_mutex)
13195 
13196 #endif /* GL_EXT_win32_keyed_mutex */
13197 
13198 /* ------------------------ GL_EXT_window_rectangles ----------------------- */
13199 
13200 #ifndef GL_EXT_window_rectangles
13201 #define GL_EXT_window_rectangles 1
13202 
13203 #define GL_INCLUSIVE_EXT 0x8F10
13204 #define GL_EXCLUSIVE_EXT 0x8F11
13205 #define GL_WINDOW_RECTANGLE_EXT 0x8F12
13206 #define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13
13207 #define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14
13208 #define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15
13209 
13210 typedef void (GLAPIENTRY * PFNGLWINDOWRECTANGLESEXTPROC) (GLenum mode, GLsizei count, const GLint box[]);
13211 
13212 #define glWindowRectanglesEXT GLEW_GET_FUN(__glewWindowRectanglesEXT)
13213 
13214 #define GLEW_EXT_window_rectangles GLEW_GET_VAR(__GLEW_EXT_window_rectangles)
13215 
13216 #endif /* GL_EXT_window_rectangles */
13217 
13218 /* ------------------------- GL_EXT_x11_sync_object ------------------------ */
13219 
13220 #ifndef GL_EXT_x11_sync_object
13221 #define GL_EXT_x11_sync_object 1
13222 
13223 #define GL_SYNC_X11_FENCE_EXT 0x90E1
13224 
13225 typedef GLsync (GLAPIENTRY * PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags);
13226 
13227 #define glImportSyncEXT GLEW_GET_FUN(__glewImportSyncEXT)
13228 
13229 #define GLEW_EXT_x11_sync_object GLEW_GET_VAR(__GLEW_EXT_x11_sync_object)
13230 
13231 #endif /* GL_EXT_x11_sync_object */
13232 
13233 /* ---------------------- GL_GREMEDY_frame_terminator ---------------------- */
13234 
13235 #ifndef GL_GREMEDY_frame_terminator
13236 #define GL_GREMEDY_frame_terminator 1
13237 
13238 typedef void (GLAPIENTRY * PFNGLFRAMETERMINATORGREMEDYPROC) (void);
13239 
13240 #define glFrameTerminatorGREMEDY GLEW_GET_FUN(__glewFrameTerminatorGREMEDY)
13241 
13242 #define GLEW_GREMEDY_frame_terminator GLEW_GET_VAR(__GLEW_GREMEDY_frame_terminator)
13243 
13244 #endif /* GL_GREMEDY_frame_terminator */
13245 
13246 /* ------------------------ GL_GREMEDY_string_marker ----------------------- */
13247 
13248 #ifndef GL_GREMEDY_string_marker
13249 #define GL_GREMEDY_string_marker 1
13250 
13251 typedef void (GLAPIENTRY * PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const void *string);
13252 
13253 #define glStringMarkerGREMEDY GLEW_GET_FUN(__glewStringMarkerGREMEDY)
13254 
13255 #define GLEW_GREMEDY_string_marker GLEW_GET_VAR(__GLEW_GREMEDY_string_marker)
13256 
13257 #endif /* GL_GREMEDY_string_marker */
13258 
13259 /* --------------------- GL_HP_convolution_border_modes -------------------- */
13260 
13261 #ifndef GL_HP_convolution_border_modes
13262 #define GL_HP_convolution_border_modes 1
13263 
13264 #define GLEW_HP_convolution_border_modes GLEW_GET_VAR(__GLEW_HP_convolution_border_modes)
13265 
13266 #endif /* GL_HP_convolution_border_modes */
13267 
13268 /* ------------------------- GL_HP_image_transform ------------------------- */
13269 
13270 #ifndef GL_HP_image_transform
13271 #define GL_HP_image_transform 1
13272 
13273 typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params);
13274 typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params);
13275 typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, const GLfloat param);
13276 typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params);
13277 typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, const GLint param);
13278 typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params);
13279 
13280 #define glGetImageTransformParameterfvHP GLEW_GET_FUN(__glewGetImageTransformParameterfvHP)
13281 #define glGetImageTransformParameterivHP GLEW_GET_FUN(__glewGetImageTransformParameterivHP)
13282 #define glImageTransformParameterfHP GLEW_GET_FUN(__glewImageTransformParameterfHP)
13283 #define glImageTransformParameterfvHP GLEW_GET_FUN(__glewImageTransformParameterfvHP)
13284 #define glImageTransformParameteriHP GLEW_GET_FUN(__glewImageTransformParameteriHP)
13285 #define glImageTransformParameterivHP GLEW_GET_FUN(__glewImageTransformParameterivHP)
13286 
13287 #define GLEW_HP_image_transform GLEW_GET_VAR(__GLEW_HP_image_transform)
13288 
13289 #endif /* GL_HP_image_transform */
13290 
13291 /* -------------------------- GL_HP_occlusion_test ------------------------- */
13292 
13293 #ifndef GL_HP_occlusion_test
13294 #define GL_HP_occlusion_test 1
13295 
13296 #define GLEW_HP_occlusion_test GLEW_GET_VAR(__GLEW_HP_occlusion_test)
13297 
13298 #endif /* GL_HP_occlusion_test */
13299 
13300 /* ------------------------- GL_HP_texture_lighting ------------------------ */
13301 
13302 #ifndef GL_HP_texture_lighting
13303 #define GL_HP_texture_lighting 1
13304 
13305 #define GLEW_HP_texture_lighting GLEW_GET_VAR(__GLEW_HP_texture_lighting)
13306 
13307 #endif /* GL_HP_texture_lighting */
13308 
13309 /* --------------------------- GL_IBM_cull_vertex -------------------------- */
13310 
13311 #ifndef GL_IBM_cull_vertex
13312 #define GL_IBM_cull_vertex 1
13313 
13314 #define GL_CULL_VERTEX_IBM 103050
13315 
13316 #define GLEW_IBM_cull_vertex GLEW_GET_VAR(__GLEW_IBM_cull_vertex)
13317 
13318 #endif /* GL_IBM_cull_vertex */
13319 
13320 /* ---------------------- GL_IBM_multimode_draw_arrays --------------------- */
13321 
13322 #ifndef GL_IBM_multimode_draw_arrays
13323 #define GL_IBM_multimode_draw_arrays 1
13324 
13325 typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum* mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride);
13326 typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum* mode, const GLsizei *count, GLenum type, const void *const *indices, GLsizei primcount, GLint modestride);
13327 
13328 #define glMultiModeDrawArraysIBM GLEW_GET_FUN(__glewMultiModeDrawArraysIBM)
13329 #define glMultiModeDrawElementsIBM GLEW_GET_FUN(__glewMultiModeDrawElementsIBM)
13330 
13331 #define GLEW_IBM_multimode_draw_arrays GLEW_GET_VAR(__GLEW_IBM_multimode_draw_arrays)
13332 
13333 #endif /* GL_IBM_multimode_draw_arrays */
13334 
13335 /* ------------------------- GL_IBM_rasterpos_clip ------------------------- */
13336 
13337 #ifndef GL_IBM_rasterpos_clip
13338 #define GL_IBM_rasterpos_clip 1
13339 
13340 #define GL_RASTER_POSITION_UNCLIPPED_IBM 103010
13341 
13342 #define GLEW_IBM_rasterpos_clip GLEW_GET_VAR(__GLEW_IBM_rasterpos_clip)
13343 
13344 #endif /* GL_IBM_rasterpos_clip */
13345 
13346 /* --------------------------- GL_IBM_static_data -------------------------- */
13347 
13348 #ifndef GL_IBM_static_data
13349 #define GL_IBM_static_data 1
13350 
13351 #define GL_ALL_STATIC_DATA_IBM 103060
13352 #define GL_STATIC_VERTEX_ARRAY_IBM 103061
13353 
13354 #define GLEW_IBM_static_data GLEW_GET_VAR(__GLEW_IBM_static_data)
13355 
13356 #endif /* GL_IBM_static_data */
13357 
13358 /* --------------------- GL_IBM_texture_mirrored_repeat -------------------- */
13359 
13360 #ifndef GL_IBM_texture_mirrored_repeat
13361 #define GL_IBM_texture_mirrored_repeat 1
13362 
13363 #define GL_MIRRORED_REPEAT_IBM 0x8370
13364 
13365 #define GLEW_IBM_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_IBM_texture_mirrored_repeat)
13366 
13367 #endif /* GL_IBM_texture_mirrored_repeat */
13368 
13369 /* ----------------------- GL_IBM_vertex_array_lists ----------------------- */
13370 
13371 #ifndef GL_IBM_vertex_array_lists
13372 #define GL_IBM_vertex_array_lists 1
13373 
13374 #define GL_VERTEX_ARRAY_LIST_IBM 103070
13375 #define GL_NORMAL_ARRAY_LIST_IBM 103071
13376 #define GL_COLOR_ARRAY_LIST_IBM 103072
13377 #define GL_INDEX_ARRAY_LIST_IBM 103073
13378 #define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074
13379 #define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075
13380 #define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076
13381 #define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077
13382 #define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080
13383 #define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081
13384 #define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082
13385 #define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083
13386 #define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084
13387 #define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085
13388 #define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086
13389 #define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087
13390 
13391 typedef void (GLAPIENTRY * PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride);
13392 typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean ** pointer, GLint ptrstride);
13393 typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void** pointer, GLint ptrstride);
13394 typedef void (GLAPIENTRY * PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void** pointer, GLint ptrstride);
13395 typedef void (GLAPIENTRY * PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void** pointer, GLint ptrstride);
13396 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride);
13397 typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride);
13398 typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride);
13399 
13400 #define glColorPointerListIBM GLEW_GET_FUN(__glewColorPointerListIBM)
13401 #define glEdgeFlagPointerListIBM GLEW_GET_FUN(__glewEdgeFlagPointerListIBM)
13402 #define glFogCoordPointerListIBM GLEW_GET_FUN(__glewFogCoordPointerListIBM)
13403 #define glIndexPointerListIBM GLEW_GET_FUN(__glewIndexPointerListIBM)
13404 #define glNormalPointerListIBM GLEW_GET_FUN(__glewNormalPointerListIBM)
13405 #define glSecondaryColorPointerListIBM GLEW_GET_FUN(__glewSecondaryColorPointerListIBM)
13406 #define glTexCoordPointerListIBM GLEW_GET_FUN(__glewTexCoordPointerListIBM)
13407 #define glVertexPointerListIBM GLEW_GET_FUN(__glewVertexPointerListIBM)
13408 
13409 #define GLEW_IBM_vertex_array_lists GLEW_GET_VAR(__GLEW_IBM_vertex_array_lists)
13410 
13411 #endif /* GL_IBM_vertex_array_lists */
13412 
13413 /* -------------------------- GL_INGR_color_clamp -------------------------- */
13414 
13415 #ifndef GL_INGR_color_clamp
13416 #define GL_INGR_color_clamp 1
13417 
13418 #define GL_RED_MIN_CLAMP_INGR 0x8560
13419 #define GL_GREEN_MIN_CLAMP_INGR 0x8561
13420 #define GL_BLUE_MIN_CLAMP_INGR 0x8562
13421 #define GL_ALPHA_MIN_CLAMP_INGR 0x8563
13422 #define GL_RED_MAX_CLAMP_INGR 0x8564
13423 #define GL_GREEN_MAX_CLAMP_INGR 0x8565
13424 #define GL_BLUE_MAX_CLAMP_INGR 0x8566
13425 #define GL_ALPHA_MAX_CLAMP_INGR 0x8567
13426 
13427 #define GLEW_INGR_color_clamp GLEW_GET_VAR(__GLEW_INGR_color_clamp)
13428 
13429 #endif /* GL_INGR_color_clamp */
13430 
13431 /* ------------------------- GL_INGR_interlace_read ------------------------ */
13432 
13433 #ifndef GL_INGR_interlace_read
13434 #define GL_INGR_interlace_read 1
13435 
13436 #define GL_INTERLACE_READ_INGR 0x8568
13437 
13438 #define GLEW_INGR_interlace_read GLEW_GET_VAR(__GLEW_INGR_interlace_read)
13439 
13440 #endif /* GL_INGR_interlace_read */
13441 
13442 /* ------------------ GL_INTEL_conservative_rasterization ------------------ */
13443 
13444 #ifndef GL_INTEL_conservative_rasterization
13445 #define GL_INTEL_conservative_rasterization 1
13446 
13447 #define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE
13448 
13449 #define GLEW_INTEL_conservative_rasterization GLEW_GET_VAR(__GLEW_INTEL_conservative_rasterization)
13450 
13451 #endif /* GL_INTEL_conservative_rasterization */
13452 
13453 /* ------------------- GL_INTEL_fragment_shader_ordering ------------------- */
13454 
13455 #ifndef GL_INTEL_fragment_shader_ordering
13456 #define GL_INTEL_fragment_shader_ordering 1
13457 
13458 #define GLEW_INTEL_fragment_shader_ordering GLEW_GET_VAR(__GLEW_INTEL_fragment_shader_ordering)
13459 
13460 #endif /* GL_INTEL_fragment_shader_ordering */
13461 
13462 /* ----------------------- GL_INTEL_framebuffer_CMAA ----------------------- */
13463 
13464 #ifndef GL_INTEL_framebuffer_CMAA
13465 #define GL_INTEL_framebuffer_CMAA 1
13466 
13467 #define GLEW_INTEL_framebuffer_CMAA GLEW_GET_VAR(__GLEW_INTEL_framebuffer_CMAA)
13468 
13469 #endif /* GL_INTEL_framebuffer_CMAA */
13470 
13471 /* -------------------------- GL_INTEL_map_texture ------------------------- */
13472 
13473 #ifndef GL_INTEL_map_texture
13474 #define GL_INTEL_map_texture 1
13475 
13476 #define GL_LAYOUT_DEFAULT_INTEL 0
13477 #define GL_LAYOUT_LINEAR_INTEL 1
13478 #define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 2
13479 #define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF
13480 
13481 typedef void * (GLAPIENTRY * PFNGLMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level, GLbitfield access, GLint* stride, GLenum *layout);
13482 typedef void (GLAPIENTRY * PFNGLSYNCTEXTUREINTELPROC) (GLuint texture);
13483 typedef void (GLAPIENTRY * PFNGLUNMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level);
13484 
13485 #define glMapTexture2DINTEL GLEW_GET_FUN(__glewMapTexture2DINTEL)
13486 #define glSyncTextureINTEL GLEW_GET_FUN(__glewSyncTextureINTEL)
13487 #define glUnmapTexture2DINTEL GLEW_GET_FUN(__glewUnmapTexture2DINTEL)
13488 
13489 #define GLEW_INTEL_map_texture GLEW_GET_VAR(__GLEW_INTEL_map_texture)
13490 
13491 #endif /* GL_INTEL_map_texture */
13492 
13493 /* ------------------------ GL_INTEL_parallel_arrays ----------------------- */
13494 
13495 #ifndef GL_INTEL_parallel_arrays
13496 #define GL_INTEL_parallel_arrays 1
13497 
13498 #define GL_PARALLEL_ARRAYS_INTEL 0x83F4
13499 #define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5
13500 #define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6
13501 #define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7
13502 #define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8
13503 
13504 typedef void (GLAPIENTRY * PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer);
13505 typedef void (GLAPIENTRY * PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const void** pointer);
13506 typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer);
13507 typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer);
13508 
13509 #define glColorPointervINTEL GLEW_GET_FUN(__glewColorPointervINTEL)
13510 #define glNormalPointervINTEL GLEW_GET_FUN(__glewNormalPointervINTEL)
13511 #define glTexCoordPointervINTEL GLEW_GET_FUN(__glewTexCoordPointervINTEL)
13512 #define glVertexPointervINTEL GLEW_GET_FUN(__glewVertexPointervINTEL)
13513 
13514 #define GLEW_INTEL_parallel_arrays GLEW_GET_VAR(__GLEW_INTEL_parallel_arrays)
13515 
13516 #endif /* GL_INTEL_parallel_arrays */
13517 
13518 /* ----------------------- GL_INTEL_performance_query ---------------------- */
13519 
13520 #ifndef GL_INTEL_performance_query
13521 #define GL_INTEL_performance_query 1
13522 
13523 #define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x0000
13524 #define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x0001
13525 #define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9
13526 #define GL_PERFQUERY_FLUSH_INTEL 0x83FA
13527 #define GL_PERFQUERY_WAIT_INTEL 0x83FB
13528 #define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0
13529 #define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1
13530 #define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2
13531 #define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3
13532 #define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4
13533 #define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5
13534 #define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8
13535 #define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9
13536 #define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA
13537 #define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB
13538 #define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC
13539 #define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD
13540 #define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE
13541 #define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF
13542 #define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500
13543 
13544 typedef void (GLAPIENTRY * PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle);
13545 typedef void (GLAPIENTRY * PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint* queryHandle);
13546 typedef void (GLAPIENTRY * PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle);
13547 typedef void (GLAPIENTRY * PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle);
13548 typedef void (GLAPIENTRY * PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint* queryId);
13549 typedef void (GLAPIENTRY * PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint* nextQueryId);
13550 typedef void (GLAPIENTRY * PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar* counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue);
13551 typedef void (GLAPIENTRY * PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten);
13552 typedef void (GLAPIENTRY * PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar* queryName, GLuint *queryId);
13553 typedef void (GLAPIENTRY * PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar* queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask);
13554 
13555 #define glBeginPerfQueryINTEL GLEW_GET_FUN(__glewBeginPerfQueryINTEL)
13556 #define glCreatePerfQueryINTEL GLEW_GET_FUN(__glewCreatePerfQueryINTEL)
13557 #define glDeletePerfQueryINTEL GLEW_GET_FUN(__glewDeletePerfQueryINTEL)
13558 #define glEndPerfQueryINTEL GLEW_GET_FUN(__glewEndPerfQueryINTEL)
13559 #define glGetFirstPerfQueryIdINTEL GLEW_GET_FUN(__glewGetFirstPerfQueryIdINTEL)
13560 #define glGetNextPerfQueryIdINTEL GLEW_GET_FUN(__glewGetNextPerfQueryIdINTEL)
13561 #define glGetPerfCounterInfoINTEL GLEW_GET_FUN(__glewGetPerfCounterInfoINTEL)
13562 #define glGetPerfQueryDataINTEL GLEW_GET_FUN(__glewGetPerfQueryDataINTEL)
13563 #define glGetPerfQueryIdByNameINTEL GLEW_GET_FUN(__glewGetPerfQueryIdByNameINTEL)
13564 #define glGetPerfQueryInfoINTEL GLEW_GET_FUN(__glewGetPerfQueryInfoINTEL)
13565 
13566 #define GLEW_INTEL_performance_query GLEW_GET_VAR(__GLEW_INTEL_performance_query)
13567 
13568 #endif /* GL_INTEL_performance_query */
13569 
13570 /* ------------------------ GL_INTEL_texture_scissor ----------------------- */
13571 
13572 #ifndef GL_INTEL_texture_scissor
13573 #define GL_INTEL_texture_scissor 1
13574 
13575 typedef void (GLAPIENTRY * PFNGLTEXSCISSORFUNCINTELPROC) (GLenum target, GLenum lfunc, GLenum hfunc);
13576 typedef void (GLAPIENTRY * PFNGLTEXSCISSORINTELPROC) (GLenum target, GLclampf tlow, GLclampf thigh);
13577 
13578 #define glTexScissorFuncINTEL GLEW_GET_FUN(__glewTexScissorFuncINTEL)
13579 #define glTexScissorINTEL GLEW_GET_FUN(__glewTexScissorINTEL)
13580 
13581 #define GLEW_INTEL_texture_scissor GLEW_GET_VAR(__GLEW_INTEL_texture_scissor)
13582 
13583 #endif /* GL_INTEL_texture_scissor */
13584 
13585 /* --------------------- GL_KHR_blend_equation_advanced -------------------- */
13586 
13587 #ifndef GL_KHR_blend_equation_advanced
13588 #define GL_KHR_blend_equation_advanced 1
13589 
13590 #define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285
13591 #define GL_MULTIPLY_KHR 0x9294
13592 #define GL_SCREEN_KHR 0x9295
13593 #define GL_OVERLAY_KHR 0x9296
13594 #define GL_DARKEN_KHR 0x9297
13595 #define GL_LIGHTEN_KHR 0x9298
13596 #define GL_COLORDODGE_KHR 0x9299
13597 #define GL_COLORBURN_KHR 0x929A
13598 #define GL_HARDLIGHT_KHR 0x929B
13599 #define GL_SOFTLIGHT_KHR 0x929C
13600 #define GL_DIFFERENCE_KHR 0x929E
13601 #define GL_EXCLUSION_KHR 0x92A0
13602 #define GL_HSL_HUE_KHR 0x92AD
13603 #define GL_HSL_SATURATION_KHR 0x92AE
13604 #define GL_HSL_COLOR_KHR 0x92AF
13605 #define GL_HSL_LUMINOSITY_KHR 0x92B0
13606 
13607 typedef void (GLAPIENTRY * PFNGLBLENDBARRIERKHRPROC) (void);
13608 
13609 #define glBlendBarrierKHR GLEW_GET_FUN(__glewBlendBarrierKHR)
13610 
13611 #define GLEW_KHR_blend_equation_advanced GLEW_GET_VAR(__GLEW_KHR_blend_equation_advanced)
13612 
13613 #endif /* GL_KHR_blend_equation_advanced */
13614 
13615 /* ---------------- GL_KHR_blend_equation_advanced_coherent ---------------- */
13616 
13617 #ifndef GL_KHR_blend_equation_advanced_coherent
13618 #define GL_KHR_blend_equation_advanced_coherent 1
13619 
13620 #define GLEW_KHR_blend_equation_advanced_coherent GLEW_GET_VAR(__GLEW_KHR_blend_equation_advanced_coherent)
13621 
13622 #endif /* GL_KHR_blend_equation_advanced_coherent */
13623 
13624 /* ---------------------- GL_KHR_context_flush_control --------------------- */
13625 
13626 #ifndef GL_KHR_context_flush_control
13627 #define GL_KHR_context_flush_control 1
13628 
13629 #define GLEW_KHR_context_flush_control GLEW_GET_VAR(__GLEW_KHR_context_flush_control)
13630 
13631 #endif /* GL_KHR_context_flush_control */
13632 
13633 /* ------------------------------ GL_KHR_debug ----------------------------- */
13634 
13635 #ifndef GL_KHR_debug
13636 #define GL_KHR_debug 1
13637 
13638 #define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002
13639 #define GL_STACK_OVERFLOW 0x0503
13640 #define GL_STACK_UNDERFLOW 0x0504
13641 #define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
13642 #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243
13643 #define GL_DEBUG_CALLBACK_FUNCTION 0x8244
13644 #define GL_DEBUG_CALLBACK_USER_PARAM 0x8245
13645 #define GL_DEBUG_SOURCE_API 0x8246
13646 #define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247
13647 #define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248
13648 #define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249
13649 #define GL_DEBUG_SOURCE_APPLICATION 0x824A
13650 #define GL_DEBUG_SOURCE_OTHER 0x824B
13651 #define GL_DEBUG_TYPE_ERROR 0x824C
13652 #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D
13653 #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E
13654 #define GL_DEBUG_TYPE_PORTABILITY 0x824F
13655 #define GL_DEBUG_TYPE_PERFORMANCE 0x8250
13656 #define GL_DEBUG_TYPE_OTHER 0x8251
13657 #define GL_DEBUG_TYPE_MARKER 0x8268
13658 #define GL_DEBUG_TYPE_PUSH_GROUP 0x8269
13659 #define GL_DEBUG_TYPE_POP_GROUP 0x826A
13660 #define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B
13661 #define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C
13662 #define GL_DEBUG_GROUP_STACK_DEPTH 0x826D
13663 #define GL_BUFFER 0x82E0
13664 #define GL_SHADER 0x82E1
13665 #define GL_PROGRAM 0x82E2
13666 #define GL_QUERY 0x82E3
13667 #define GL_PROGRAM_PIPELINE 0x82E4
13668 #define GL_SAMPLER 0x82E6
13669 #define GL_DISPLAY_LIST 0x82E7
13670 #define GL_MAX_LABEL_LENGTH 0x82E8
13671 #define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143
13672 #define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144
13673 #define GL_DEBUG_LOGGED_MESSAGES 0x9145
13674 #define GL_DEBUG_SEVERITY_HIGH 0x9146
13675 #define GL_DEBUG_SEVERITY_MEDIUM 0x9147
13676 #define GL_DEBUG_SEVERITY_LOW 0x9148
13677 #define GL_DEBUG_OUTPUT 0x92E0
13678 
13679 typedef void (GLAPIENTRY *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam);
13680 
13681 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam);
13682 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
13683 typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf);
13684 typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
13685 typedef void (GLAPIENTRY * PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar *label);
13686 typedef void (GLAPIENTRY * PFNGLGETOBJECTPTRLABELPROC) (void* ptr, GLsizei bufSize, GLsizei* length, GLchar *label);
13687 typedef void (GLAPIENTRY * PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar* label);
13688 typedef void (GLAPIENTRY * PFNGLOBJECTPTRLABELPROC) (void* ptr, GLsizei length, const GLchar* label);
13689 typedef void (GLAPIENTRY * PFNGLPOPDEBUGGROUPPROC) (void);
13690 typedef void (GLAPIENTRY * PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar * message);
13691 
13692 #define glDebugMessageCallback GLEW_GET_FUN(__glewDebugMessageCallback)
13693 #define glDebugMessageControl GLEW_GET_FUN(__glewDebugMessageControl)
13694 #define glDebugMessageInsert GLEW_GET_FUN(__glewDebugMessageInsert)
13695 #define glGetDebugMessageLog GLEW_GET_FUN(__glewGetDebugMessageLog)
13696 #define glGetObjectLabel GLEW_GET_FUN(__glewGetObjectLabel)
13697 #define glGetObjectPtrLabel GLEW_GET_FUN(__glewGetObjectPtrLabel)
13698 #define glObjectLabel GLEW_GET_FUN(__glewObjectLabel)
13699 #define glObjectPtrLabel GLEW_GET_FUN(__glewObjectPtrLabel)
13700 #define glPopDebugGroup GLEW_GET_FUN(__glewPopDebugGroup)
13701 #define glPushDebugGroup GLEW_GET_FUN(__glewPushDebugGroup)
13702 
13703 #define GLEW_KHR_debug GLEW_GET_VAR(__GLEW_KHR_debug)
13704 
13705 #endif /* GL_KHR_debug */
13706 
13707 /* ---------------------------- GL_KHR_no_error ---------------------------- */
13708 
13709 #ifndef GL_KHR_no_error
13710 #define GL_KHR_no_error 1
13711 
13712 #define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008
13713 
13714 #define GLEW_KHR_no_error GLEW_GET_VAR(__GLEW_KHR_no_error)
13715 
13716 #endif /* GL_KHR_no_error */
13717 
13718 /* --------------------- GL_KHR_parallel_shader_compile -------------------- */
13719 
13720 #ifndef GL_KHR_parallel_shader_compile
13721 #define GL_KHR_parallel_shader_compile 1
13722 
13723 #define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0
13724 #define GL_COMPLETION_STATUS_KHR 0x91B1
13725 
13726 typedef void (GLAPIENTRY * PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) (GLuint count);
13727 
13728 #define glMaxShaderCompilerThreadsKHR GLEW_GET_FUN(__glewMaxShaderCompilerThreadsKHR)
13729 
13730 #define GLEW_KHR_parallel_shader_compile GLEW_GET_VAR(__GLEW_KHR_parallel_shader_compile)
13731 
13732 #endif /* GL_KHR_parallel_shader_compile */
13733 
13734 /* ------------------ GL_KHR_robust_buffer_access_behavior ----------------- */
13735 
13736 #ifndef GL_KHR_robust_buffer_access_behavior
13737 #define GL_KHR_robust_buffer_access_behavior 1
13738 
13739 #define GLEW_KHR_robust_buffer_access_behavior GLEW_GET_VAR(__GLEW_KHR_robust_buffer_access_behavior)
13740 
13741 #endif /* GL_KHR_robust_buffer_access_behavior */
13742 
13743 /* --------------------------- GL_KHR_robustness --------------------------- */
13744 
13745 #ifndef GL_KHR_robustness
13746 #define GL_KHR_robustness 1
13747 
13748 #define GL_CONTEXT_LOST 0x0507
13749 #define GL_LOSE_CONTEXT_ON_RESET 0x8252
13750 #define GL_GUILTY_CONTEXT_RESET 0x8253
13751 #define GL_INNOCENT_CONTEXT_RESET 0x8254
13752 #define GL_UNKNOWN_CONTEXT_RESET 0x8255
13753 #define GL_RESET_NOTIFICATION_STRATEGY 0x8256
13754 #define GL_NO_RESET_NOTIFICATION 0x8261
13755 #define GL_CONTEXT_ROBUST_ACCESS 0x90F3
13756 
13757 typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params);
13758 typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params);
13759 typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params);
13760 typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
13761 
13762 #define glGetnUniformfv GLEW_GET_FUN(__glewGetnUniformfv)
13763 #define glGetnUniformiv GLEW_GET_FUN(__glewGetnUniformiv)
13764 #define glGetnUniformuiv GLEW_GET_FUN(__glewGetnUniformuiv)
13765 #define glReadnPixels GLEW_GET_FUN(__glewReadnPixels)
13766 
13767 #define GLEW_KHR_robustness GLEW_GET_VAR(__GLEW_KHR_robustness)
13768 
13769 #endif /* GL_KHR_robustness */
13770 
13771 /* ------------------ GL_KHR_texture_compression_astc_hdr ------------------ */
13772 
13773 #ifndef GL_KHR_texture_compression_astc_hdr
13774 #define GL_KHR_texture_compression_astc_hdr 1
13775 
13776 #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
13777 #define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
13778 #define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
13779 #define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
13780 #define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
13781 #define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
13782 #define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
13783 #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
13784 #define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
13785 #define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
13786 #define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
13787 #define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
13788 #define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
13789 #define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
13790 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
13791 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
13792 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
13793 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
13794 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
13795 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
13796 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
13797 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
13798 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
13799 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
13800 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
13801 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
13802 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
13803 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
13804 
13805 #define GLEW_KHR_texture_compression_astc_hdr GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_hdr)
13806 
13807 #endif /* GL_KHR_texture_compression_astc_hdr */
13808 
13809 /* ------------------ GL_KHR_texture_compression_astc_ldr ------------------ */
13810 
13811 #ifndef GL_KHR_texture_compression_astc_ldr
13812 #define GL_KHR_texture_compression_astc_ldr 1
13813 
13814 #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
13815 #define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
13816 #define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
13817 #define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
13818 #define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
13819 #define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
13820 #define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
13821 #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
13822 #define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
13823 #define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
13824 #define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
13825 #define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
13826 #define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
13827 #define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
13828 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
13829 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
13830 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
13831 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
13832 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
13833 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
13834 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
13835 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
13836 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
13837 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
13838 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
13839 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
13840 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
13841 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
13842 
13843 #define GLEW_KHR_texture_compression_astc_ldr GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_ldr)
13844 
13845 #endif /* GL_KHR_texture_compression_astc_ldr */
13846 
13847 /* --------------- GL_KHR_texture_compression_astc_sliced_3d --------------- */
13848 
13849 #ifndef GL_KHR_texture_compression_astc_sliced_3d
13850 #define GL_KHR_texture_compression_astc_sliced_3d 1
13851 
13852 #define GLEW_KHR_texture_compression_astc_sliced_3d GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_sliced_3d)
13853 
13854 #endif /* GL_KHR_texture_compression_astc_sliced_3d */
13855 
13856 /* -------------------------- GL_KTX_buffer_region ------------------------- */
13857 
13858 #ifndef GL_KTX_buffer_region
13859 #define GL_KTX_buffer_region 1
13860 
13861 #define GL_KTX_FRONT_REGION 0x0
13862 #define GL_KTX_BACK_REGION 0x1
13863 #define GL_KTX_Z_REGION 0x2
13864 #define GL_KTX_STENCIL_REGION 0x3
13865 
13866 typedef GLuint (GLAPIENTRY * PFNGLBUFFERREGIONENABLEDPROC) (void);
13867 typedef void (GLAPIENTRY * PFNGLDELETEBUFFERREGIONPROC) (GLenum region);
13868 typedef void (GLAPIENTRY * PFNGLDRAWBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest);
13869 typedef GLuint (GLAPIENTRY * PFNGLNEWBUFFERREGIONPROC) (GLenum region);
13870 typedef void (GLAPIENTRY * PFNGLREADBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height);
13871 
13872 #define glBufferRegionEnabled GLEW_GET_FUN(__glewBufferRegionEnabled)
13873 #define glDeleteBufferRegion GLEW_GET_FUN(__glewDeleteBufferRegion)
13874 #define glDrawBufferRegion GLEW_GET_FUN(__glewDrawBufferRegion)
13875 #define glNewBufferRegion GLEW_GET_FUN(__glewNewBufferRegion)
13876 #define glReadBufferRegion GLEW_GET_FUN(__glewReadBufferRegion)
13877 
13878 #define GLEW_KTX_buffer_region GLEW_GET_VAR(__GLEW_KTX_buffer_region)
13879 
13880 #endif /* GL_KTX_buffer_region */
13881 
13882 /* ------------------------- GL_MESAX_texture_stack ------------------------ */
13883 
13884 #ifndef GL_MESAX_texture_stack
13885 #define GL_MESAX_texture_stack 1
13886 
13887 #define GL_TEXTURE_1D_STACK_MESAX 0x8759
13888 #define GL_TEXTURE_2D_STACK_MESAX 0x875A
13889 #define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B
13890 #define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C
13891 #define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D
13892 #define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E
13893 
13894 #define GLEW_MESAX_texture_stack GLEW_GET_VAR(__GLEW_MESAX_texture_stack)
13895 
13896 #endif /* GL_MESAX_texture_stack */
13897 
13898 /* -------------------------- GL_MESA_pack_invert -------------------------- */
13899 
13900 #ifndef GL_MESA_pack_invert
13901 #define GL_MESA_pack_invert 1
13902 
13903 #define GL_PACK_INVERT_MESA 0x8758
13904 
13905 #define GLEW_MESA_pack_invert GLEW_GET_VAR(__GLEW_MESA_pack_invert)
13906 
13907 #endif /* GL_MESA_pack_invert */
13908 
13909 /* ------------------------- GL_MESA_resize_buffers ------------------------ */
13910 
13911 #ifndef GL_MESA_resize_buffers
13912 #define GL_MESA_resize_buffers 1
13913 
13914 typedef void (GLAPIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void);
13915 
13916 #define glResizeBuffersMESA GLEW_GET_FUN(__glewResizeBuffersMESA)
13917 
13918 #define GLEW_MESA_resize_buffers GLEW_GET_VAR(__GLEW_MESA_resize_buffers)
13919 
13920 #endif /* GL_MESA_resize_buffers */
13921 
13922 /* -------------------- GL_MESA_shader_integer_functions ------------------- */
13923 
13924 #ifndef GL_MESA_shader_integer_functions
13925 #define GL_MESA_shader_integer_functions 1
13926 
13927 #define GLEW_MESA_shader_integer_functions GLEW_GET_VAR(__GLEW_MESA_shader_integer_functions)
13928 
13929 #endif /* GL_MESA_shader_integer_functions */
13930 
13931 /* --------------------------- GL_MESA_window_pos -------------------------- */
13932 
13933 #ifndef GL_MESA_window_pos
13934 #define GL_MESA_window_pos 1
13935 
13936 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y);
13937 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble* p);
13938 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y);
13939 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat* p);
13940 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y);
13941 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVMESAPROC) (const GLint* p);
13942 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y);
13943 typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort* p);
13944 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z);
13945 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble* p);
13946 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z);
13947 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat* p);
13948 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z);
13949 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVMESAPROC) (const GLint* p);
13950 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z);
13951 typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort* p);
13952 typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble);
13953 typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble* p);
13954 typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
13955 typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat* p);
13956 typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w);
13957 typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IVMESAPROC) (const GLint* p);
13958 typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w);
13959 typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort* p);
13960 
13961 #define glWindowPos2dMESA GLEW_GET_FUN(__glewWindowPos2dMESA)
13962 #define glWindowPos2dvMESA GLEW_GET_FUN(__glewWindowPos2dvMESA)
13963 #define glWindowPos2fMESA GLEW_GET_FUN(__glewWindowPos2fMESA)
13964 #define glWindowPos2fvMESA GLEW_GET_FUN(__glewWindowPos2fvMESA)
13965 #define glWindowPos2iMESA GLEW_GET_FUN(__glewWindowPos2iMESA)
13966 #define glWindowPos2ivMESA GLEW_GET_FUN(__glewWindowPos2ivMESA)
13967 #define glWindowPos2sMESA GLEW_GET_FUN(__glewWindowPos2sMESA)
13968 #define glWindowPos2svMESA GLEW_GET_FUN(__glewWindowPos2svMESA)
13969 #define glWindowPos3dMESA GLEW_GET_FUN(__glewWindowPos3dMESA)
13970 #define glWindowPos3dvMESA GLEW_GET_FUN(__glewWindowPos3dvMESA)
13971 #define glWindowPos3fMESA GLEW_GET_FUN(__glewWindowPos3fMESA)
13972 #define glWindowPos3fvMESA GLEW_GET_FUN(__glewWindowPos3fvMESA)
13973 #define glWindowPos3iMESA GLEW_GET_FUN(__glewWindowPos3iMESA)
13974 #define glWindowPos3ivMESA GLEW_GET_FUN(__glewWindowPos3ivMESA)
13975 #define glWindowPos3sMESA GLEW_GET_FUN(__glewWindowPos3sMESA)
13976 #define glWindowPos3svMESA GLEW_GET_FUN(__glewWindowPos3svMESA)
13977 #define glWindowPos4dMESA GLEW_GET_FUN(__glewWindowPos4dMESA)
13978 #define glWindowPos4dvMESA GLEW_GET_FUN(__glewWindowPos4dvMESA)
13979 #define glWindowPos4fMESA GLEW_GET_FUN(__glewWindowPos4fMESA)
13980 #define glWindowPos4fvMESA GLEW_GET_FUN(__glewWindowPos4fvMESA)
13981 #define glWindowPos4iMESA GLEW_GET_FUN(__glewWindowPos4iMESA)
13982 #define glWindowPos4ivMESA GLEW_GET_FUN(__glewWindowPos4ivMESA)
13983 #define glWindowPos4sMESA GLEW_GET_FUN(__glewWindowPos4sMESA)
13984 #define glWindowPos4svMESA GLEW_GET_FUN(__glewWindowPos4svMESA)
13985 
13986 #define GLEW_MESA_window_pos GLEW_GET_VAR(__GLEW_MESA_window_pos)
13987 
13988 #endif /* GL_MESA_window_pos */
13989 
13990 /* ------------------------- GL_MESA_ycbcr_texture ------------------------- */
13991 
13992 #ifndef GL_MESA_ycbcr_texture
13993 #define GL_MESA_ycbcr_texture 1
13994 
13995 #define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA
13996 #define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB
13997 #define GL_YCBCR_MESA 0x8757
13998 
13999 #define GLEW_MESA_ycbcr_texture GLEW_GET_VAR(__GLEW_MESA_ycbcr_texture)
14000 
14001 #endif /* GL_MESA_ycbcr_texture */
14002 
14003 /* ----------- GL_NVX_blend_equation_advanced_multi_draw_buffers ----------- */
14004 
14005 #ifndef GL_NVX_blend_equation_advanced_multi_draw_buffers
14006 #define GL_NVX_blend_equation_advanced_multi_draw_buffers 1
14007 
14008 #define GLEW_NVX_blend_equation_advanced_multi_draw_buffers GLEW_GET_VAR(__GLEW_NVX_blend_equation_advanced_multi_draw_buffers)
14009 
14010 #endif /* GL_NVX_blend_equation_advanced_multi_draw_buffers */
14011 
14012 /* ----------------------- GL_NVX_conditional_render ----------------------- */
14013 
14014 #ifndef GL_NVX_conditional_render
14015 #define GL_NVX_conditional_render 1
14016 
14017 typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERNVXPROC) (GLuint id);
14018 typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVXPROC) (void);
14019 
14020 #define glBeginConditionalRenderNVX GLEW_GET_FUN(__glewBeginConditionalRenderNVX)
14021 #define glEndConditionalRenderNVX GLEW_GET_FUN(__glewEndConditionalRenderNVX)
14022 
14023 #define GLEW_NVX_conditional_render GLEW_GET_VAR(__GLEW_NVX_conditional_render)
14024 
14025 #endif /* GL_NVX_conditional_render */
14026 
14027 /* ------------------------- GL_NVX_gpu_memory_info ------------------------ */
14028 
14029 #ifndef GL_NVX_gpu_memory_info
14030 #define GL_NVX_gpu_memory_info 1
14031 
14032 #define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047
14033 #define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048
14034 #define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049
14035 #define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A
14036 #define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B
14037 
14038 #define GLEW_NVX_gpu_memory_info GLEW_GET_VAR(__GLEW_NVX_gpu_memory_info)
14039 
14040 #endif /* GL_NVX_gpu_memory_info */
14041 
14042 /* ---------------------- GL_NVX_linked_gpu_multicast ---------------------- */
14043 
14044 #ifndef GL_NVX_linked_gpu_multicast
14045 #define GL_NVX_linked_gpu_multicast 1
14046 
14047 #define GL_LGPU_SEPARATE_STORAGE_BIT_NVX 0x0800
14048 #define GL_MAX_LGPU_GPUS_NVX 0x92BA
14049 
14050 typedef void (GLAPIENTRY * PFNGLLGPUCOPYIMAGESUBDATANVXPROC) (GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
14051 typedef void (GLAPIENTRY * PFNGLLGPUINTERLOCKNVXPROC) (void);
14052 typedef void (GLAPIENTRY * PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
14053 
14054 #define glLGPUCopyImageSubDataNVX GLEW_GET_FUN(__glewLGPUCopyImageSubDataNVX)
14055 #define glLGPUInterlockNVX GLEW_GET_FUN(__glewLGPUInterlockNVX)
14056 #define glLGPUNamedBufferSubDataNVX GLEW_GET_FUN(__glewLGPUNamedBufferSubDataNVX)
14057 
14058 #define GLEW_NVX_linked_gpu_multicast GLEW_GET_VAR(__GLEW_NVX_linked_gpu_multicast)
14059 
14060 #endif /* GL_NVX_linked_gpu_multicast */
14061 
14062 /* ------------------------ GL_NV_3dvision_settings ------------------------ */
14063 
14064 #ifndef GL_NV_3dvision_settings
14065 #define GL_NV_3dvision_settings 1
14066 
14067 #define GL_3DVISION_STEREO_NV 0x90F4
14068 #define GL_STEREO_SEPARATION_NV 0x90F5
14069 #define GL_STEREO_CONVERGENCE_NV 0x90F6
14070 #define GL_STEREO_CUTOFF_NV 0x90F7
14071 #define GL_STEREO_PROJECTION_NV 0x90F8
14072 #define GL_STEREO_PROJECTION_PERSPECTIVE_NV 0x90F9
14073 #define GL_STEREO_PROJECTION_ORTHO_NV 0x90FA
14074 
14075 typedef void (GLAPIENTRY * PFNGLSTEREOPARAMETERFNVPROC) (GLenum pname, GLfloat param);
14076 typedef void (GLAPIENTRY * PFNGLSTEREOPARAMETERINVPROC) (GLenum pname, GLint param);
14077 
14078 #define glStereoParameterfNV GLEW_GET_FUN(__glewStereoParameterfNV)
14079 #define glStereoParameteriNV GLEW_GET_FUN(__glewStereoParameteriNV)
14080 
14081 #define GLEW_NV_3dvision_settings GLEW_GET_VAR(__GLEW_NV_3dvision_settings)
14082 
14083 #endif /* GL_NV_3dvision_settings */
14084 
14085 /* ------------------- GL_NV_EGL_stream_consumer_external ------------------ */
14086 
14087 #ifndef GL_NV_EGL_stream_consumer_external
14088 #define GL_NV_EGL_stream_consumer_external 1
14089 
14090 #define GL_TEXTURE_EXTERNAL_OES 0x8D65
14091 #define GL_SAMPLER_EXTERNAL_OES 0x8D66
14092 #define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67
14093 #define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68
14094 
14095 #define GLEW_NV_EGL_stream_consumer_external GLEW_GET_VAR(__GLEW_NV_EGL_stream_consumer_external)
14096 
14097 #endif /* GL_NV_EGL_stream_consumer_external */
14098 
14099 /* ----------------- GL_NV_alpha_to_coverage_dither_control ---------------- */
14100 
14101 #ifndef GL_NV_alpha_to_coverage_dither_control
14102 #define GL_NV_alpha_to_coverage_dither_control 1
14103 
14104 #define GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV 0x92BF
14105 #define GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV 0x934D
14106 #define GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV 0x934E
14107 #define GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV 0x934F
14108 
14109 #define GLEW_NV_alpha_to_coverage_dither_control GLEW_GET_VAR(__GLEW_NV_alpha_to_coverage_dither_control)
14110 
14111 #endif /* GL_NV_alpha_to_coverage_dither_control */
14112 
14113 /* ------------------------------- GL_NV_bgr ------------------------------- */
14114 
14115 #ifndef GL_NV_bgr
14116 #define GL_NV_bgr 1
14117 
14118 #define GL_BGR_NV 0x80E0
14119 
14120 #define GLEW_NV_bgr GLEW_GET_VAR(__GLEW_NV_bgr)
14121 
14122 #endif /* GL_NV_bgr */
14123 
14124 /* ------------------- GL_NV_bindless_multi_draw_indirect ------------------ */
14125 
14126 #ifndef GL_NV_bindless_multi_draw_indirect
14127 #define GL_NV_bindless_multi_draw_indirect 1
14128 
14129 typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
14130 typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
14131 
14132 #define glMultiDrawArraysIndirectBindlessNV GLEW_GET_FUN(__glewMultiDrawArraysIndirectBindlessNV)
14133 #define glMultiDrawElementsIndirectBindlessNV GLEW_GET_FUN(__glewMultiDrawElementsIndirectBindlessNV)
14134 
14135 #define GLEW_NV_bindless_multi_draw_indirect GLEW_GET_VAR(__GLEW_NV_bindless_multi_draw_indirect)
14136 
14137 #endif /* GL_NV_bindless_multi_draw_indirect */
14138 
14139 /* ---------------- GL_NV_bindless_multi_draw_indirect_count --------------- */
14140 
14141 #ifndef GL_NV_bindless_multi_draw_indirect_count
14142 #define GL_NV_bindless_multi_draw_indirect_count 1
14143 
14144 typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, const void *indirect, GLintptr drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount);
14145 typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount);
14146 
14147 #define glMultiDrawArraysIndirectBindlessCountNV GLEW_GET_FUN(__glewMultiDrawArraysIndirectBindlessCountNV)
14148 #define glMultiDrawElementsIndirectBindlessCountNV GLEW_GET_FUN(__glewMultiDrawElementsIndirectBindlessCountNV)
14149 
14150 #define GLEW_NV_bindless_multi_draw_indirect_count GLEW_GET_VAR(__GLEW_NV_bindless_multi_draw_indirect_count)
14151 
14152 #endif /* GL_NV_bindless_multi_draw_indirect_count */
14153 
14154 /* ------------------------- GL_NV_bindless_texture ------------------------ */
14155 
14156 #ifndef GL_NV_bindless_texture
14157 #define GL_NV_bindless_texture 1
14158 
14159 typedef GLuint64 (GLAPIENTRY * PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
14160 typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture);
14161 typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler);
14162 typedef GLboolean (GLAPIENTRY * PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle);
14163 typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle);
14164 typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle);
14165 typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access);
14166 typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle);
14167 typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle);
14168 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value);
14169 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* values);
14170 typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value);
14171 typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64* value);
14172 
14173 #define glGetImageHandleNV GLEW_GET_FUN(__glewGetImageHandleNV)
14174 #define glGetTextureHandleNV GLEW_GET_FUN(__glewGetTextureHandleNV)
14175 #define glGetTextureSamplerHandleNV GLEW_GET_FUN(__glewGetTextureSamplerHandleNV)
14176 #define glIsImageHandleResidentNV GLEW_GET_FUN(__glewIsImageHandleResidentNV)
14177 #define glIsTextureHandleResidentNV GLEW_GET_FUN(__glewIsTextureHandleResidentNV)
14178 #define glMakeImageHandleNonResidentNV GLEW_GET_FUN(__glewMakeImageHandleNonResidentNV)
14179 #define glMakeImageHandleResidentNV GLEW_GET_FUN(__glewMakeImageHandleResidentNV)
14180 #define glMakeTextureHandleNonResidentNV GLEW_GET_FUN(__glewMakeTextureHandleNonResidentNV)
14181 #define glMakeTextureHandleResidentNV GLEW_GET_FUN(__glewMakeTextureHandleResidentNV)
14182 #define glProgramUniformHandleui64NV GLEW_GET_FUN(__glewProgramUniformHandleui64NV)
14183 #define glProgramUniformHandleui64vNV GLEW_GET_FUN(__glewProgramUniformHandleui64vNV)
14184 #define glUniformHandleui64NV GLEW_GET_FUN(__glewUniformHandleui64NV)
14185 #define glUniformHandleui64vNV GLEW_GET_FUN(__glewUniformHandleui64vNV)
14186 
14187 #define GLEW_NV_bindless_texture GLEW_GET_VAR(__GLEW_NV_bindless_texture)
14188 
14189 #endif /* GL_NV_bindless_texture */
14190 
14191 /* --------------------- GL_NV_blend_equation_advanced --------------------- */
14192 
14193 #ifndef GL_NV_blend_equation_advanced
14194 #define GL_NV_blend_equation_advanced 1
14195 
14196 #define GL_XOR_NV 0x1506
14197 #define GL_RED_NV 0x1903
14198 #define GL_GREEN_NV 0x1904
14199 #define GL_BLUE_NV 0x1905
14200 #define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280
14201 #define GL_BLEND_OVERLAP_NV 0x9281
14202 #define GL_UNCORRELATED_NV 0x9282
14203 #define GL_DISJOINT_NV 0x9283
14204 #define GL_CONJOINT_NV 0x9284
14205 #define GL_BLEND_ADVANCED_COHERENT_NV 0x9285
14206 #define GL_SRC_NV 0x9286
14207 #define GL_DST_NV 0x9287
14208 #define GL_SRC_OVER_NV 0x9288
14209 #define GL_DST_OVER_NV 0x9289
14210 #define GL_SRC_IN_NV 0x928A
14211 #define GL_DST_IN_NV 0x928B
14212 #define GL_SRC_OUT_NV 0x928C
14213 #define GL_DST_OUT_NV 0x928D
14214 #define GL_SRC_ATOP_NV 0x928E
14215 #define GL_DST_ATOP_NV 0x928F
14216 #define GL_PLUS_NV 0x9291
14217 #define GL_PLUS_DARKER_NV 0x9292
14218 #define GL_MULTIPLY_NV 0x9294
14219 #define GL_SCREEN_NV 0x9295
14220 #define GL_OVERLAY_NV 0x9296
14221 #define GL_DARKEN_NV 0x9297
14222 #define GL_LIGHTEN_NV 0x9298
14223 #define GL_COLORDODGE_NV 0x9299
14224 #define GL_COLORBURN_NV 0x929A
14225 #define GL_HARDLIGHT_NV 0x929B
14226 #define GL_SOFTLIGHT_NV 0x929C
14227 #define GL_DIFFERENCE_NV 0x929E
14228 #define GL_MINUS_NV 0x929F
14229 #define GL_EXCLUSION_NV 0x92A0
14230 #define GL_CONTRAST_NV 0x92A1
14231 #define GL_INVERT_RGB_NV 0x92A3
14232 #define GL_LINEARDODGE_NV 0x92A4
14233 #define GL_LINEARBURN_NV 0x92A5
14234 #define GL_VIVIDLIGHT_NV 0x92A6
14235 #define GL_LINEARLIGHT_NV 0x92A7
14236 #define GL_PINLIGHT_NV 0x92A8
14237 #define GL_HARDMIX_NV 0x92A9
14238 #define GL_HSL_HUE_NV 0x92AD
14239 #define GL_HSL_SATURATION_NV 0x92AE
14240 #define GL_HSL_COLOR_NV 0x92AF
14241 #define GL_HSL_LUMINOSITY_NV 0x92B0
14242 #define GL_PLUS_CLAMPED_NV 0x92B1
14243 #define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2
14244 #define GL_MINUS_CLAMPED_NV 0x92B3
14245 #define GL_INVERT_OVG_NV 0x92B4
14246 
14247 typedef void (GLAPIENTRY * PFNGLBLENDBARRIERNVPROC) (void);
14248 typedef void (GLAPIENTRY * PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value);
14249 
14250 #define glBlendBarrierNV GLEW_GET_FUN(__glewBlendBarrierNV)
14251 #define glBlendParameteriNV GLEW_GET_FUN(__glewBlendParameteriNV)
14252 
14253 #define GLEW_NV_blend_equation_advanced GLEW_GET_VAR(__GLEW_NV_blend_equation_advanced)
14254 
14255 #endif /* GL_NV_blend_equation_advanced */
14256 
14257 /* ----------------- GL_NV_blend_equation_advanced_coherent ---------------- */
14258 
14259 #ifndef GL_NV_blend_equation_advanced_coherent
14260 #define GL_NV_blend_equation_advanced_coherent 1
14261 
14262 #define GLEW_NV_blend_equation_advanced_coherent GLEW_GET_VAR(__GLEW_NV_blend_equation_advanced_coherent)
14263 
14264 #endif /* GL_NV_blend_equation_advanced_coherent */
14265 
14266 /* ----------------------- GL_NV_blend_minmax_factor ----------------------- */
14267 
14268 #ifndef GL_NV_blend_minmax_factor
14269 #define GL_NV_blend_minmax_factor 1
14270 
14271 #define GL_FACTOR_MIN_AMD 0x901C
14272 #define GL_FACTOR_MAX_AMD 0x901D
14273 
14274 #define GLEW_NV_blend_minmax_factor GLEW_GET_VAR(__GLEW_NV_blend_minmax_factor)
14275 
14276 #endif /* GL_NV_blend_minmax_factor */
14277 
14278 /* --------------------------- GL_NV_blend_square -------------------------- */
14279 
14280 #ifndef GL_NV_blend_square
14281 #define GL_NV_blend_square 1
14282 
14283 #define GLEW_NV_blend_square GLEW_GET_VAR(__GLEW_NV_blend_square)
14284 
14285 #endif /* GL_NV_blend_square */
14286 
14287 /* ----------------------- GL_NV_clip_space_w_scaling ---------------------- */
14288 
14289 #ifndef GL_NV_clip_space_w_scaling
14290 #define GL_NV_clip_space_w_scaling 1
14291 
14292 #define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C
14293 #define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D
14294 #define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E
14295 
14296 typedef void (GLAPIENTRY * PFNGLVIEWPORTPOSITIONWSCALENVPROC) (GLuint index, GLfloat xcoeff, GLfloat ycoeff);
14297 
14298 #define glViewportPositionWScaleNV GLEW_GET_FUN(__glewViewportPositionWScaleNV)
14299 
14300 #define GLEW_NV_clip_space_w_scaling GLEW_GET_VAR(__GLEW_NV_clip_space_w_scaling)
14301 
14302 #endif /* GL_NV_clip_space_w_scaling */
14303 
14304 /* --------------------------- GL_NV_command_list -------------------------- */
14305 
14306 #ifndef GL_NV_command_list
14307 #define GL_NV_command_list 1
14308 
14309 #define GL_TERMINATE_SEQUENCE_COMMAND_NV 0x0000
14310 #define GL_NOP_COMMAND_NV 0x0001
14311 #define GL_DRAW_ELEMENTS_COMMAND_NV 0x0002
14312 #define GL_DRAW_ARRAYS_COMMAND_NV 0x0003
14313 #define GL_DRAW_ELEMENTS_STRIP_COMMAND_NV 0x0004
14314 #define GL_DRAW_ARRAYS_STRIP_COMMAND_NV 0x0005
14315 #define GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV 0x0006
14316 #define GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV 0x0007
14317 #define GL_ELEMENT_ADDRESS_COMMAND_NV 0x0008
14318 #define GL_ATTRIBUTE_ADDRESS_COMMAND_NV 0x0009
14319 #define GL_UNIFORM_ADDRESS_COMMAND_NV 0x000a
14320 #define GL_BLEND_COLOR_COMMAND_NV 0x000b
14321 #define GL_STENCIL_REF_COMMAND_NV 0x000c
14322 #define GL_LINE_WIDTH_COMMAND_NV 0x000d
14323 #define GL_POLYGON_OFFSET_COMMAND_NV 0x000e
14324 #define GL_ALPHA_REF_COMMAND_NV 0x000f
14325 #define GL_VIEWPORT_COMMAND_NV 0x0010
14326 #define GL_SCISSOR_COMMAND_NV 0x0011
14327 #define GL_FRONT_FACE_COMMAND_NV 0x0012
14328 
14329 typedef void (GLAPIENTRY * PFNGLCALLCOMMANDLISTNVPROC) (GLuint list);
14330 typedef void (GLAPIENTRY * PFNGLCOMMANDLISTSEGMENTSNVPROC) (GLuint list, GLuint segments);
14331 typedef void (GLAPIENTRY * PFNGLCOMPILECOMMANDLISTNVPROC) (GLuint list);
14332 typedef void (GLAPIENTRY * PFNGLCREATECOMMANDLISTSNVPROC) (GLsizei n, GLuint* lists);
14333 typedef void (GLAPIENTRY * PFNGLCREATESTATESNVPROC) (GLsizei n, GLuint* states);
14334 typedef void (GLAPIENTRY * PFNGLDELETECOMMANDLISTSNVPROC) (GLsizei n, const GLuint* lists);
14335 typedef void (GLAPIENTRY * PFNGLDELETESTATESNVPROC) (GLsizei n, const GLuint* states);
14336 typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSADDRESSNVPROC) (GLenum primitiveMode, const GLuint64* indirects, const GLsizei* sizes, GLuint count);
14337 typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSNVPROC) (GLenum primitiveMode, GLuint buffer, const GLintptr* indirects, const GLsizei* sizes, GLuint count);
14338 typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC) (const GLuint64* indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count);
14339 typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSSTATESNVPROC) (GLuint buffer, const GLintptr* indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count);
14340 typedef GLuint (GLAPIENTRY * PFNGLGETCOMMANDHEADERNVPROC) (GLenum tokenID, GLuint size);
14341 typedef GLushort (GLAPIENTRY * PFNGLGETSTAGEINDEXNVPROC) (GLenum shadertype);
14342 typedef GLboolean (GLAPIENTRY * PFNGLISCOMMANDLISTNVPROC) (GLuint list);
14343 typedef GLboolean (GLAPIENTRY * PFNGLISSTATENVPROC) (GLuint state);
14344 typedef void (GLAPIENTRY * PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC) (GLuint list, GLuint segment, const void** indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count);
14345 typedef void (GLAPIENTRY * PFNGLSTATECAPTURENVPROC) (GLuint state, GLenum mode);
14346 
14347 #define glCallCommandListNV GLEW_GET_FUN(__glewCallCommandListNV)
14348 #define glCommandListSegmentsNV GLEW_GET_FUN(__glewCommandListSegmentsNV)
14349 #define glCompileCommandListNV GLEW_GET_FUN(__glewCompileCommandListNV)
14350 #define glCreateCommandListsNV GLEW_GET_FUN(__glewCreateCommandListsNV)
14351 #define glCreateStatesNV GLEW_GET_FUN(__glewCreateStatesNV)
14352 #define glDeleteCommandListsNV GLEW_GET_FUN(__glewDeleteCommandListsNV)
14353 #define glDeleteStatesNV GLEW_GET_FUN(__glewDeleteStatesNV)
14354 #define glDrawCommandsAddressNV GLEW_GET_FUN(__glewDrawCommandsAddressNV)
14355 #define glDrawCommandsNV GLEW_GET_FUN(__glewDrawCommandsNV)
14356 #define glDrawCommandsStatesAddressNV GLEW_GET_FUN(__glewDrawCommandsStatesAddressNV)
14357 #define glDrawCommandsStatesNV GLEW_GET_FUN(__glewDrawCommandsStatesNV)
14358 #define glGetCommandHeaderNV GLEW_GET_FUN(__glewGetCommandHeaderNV)
14359 #define glGetStageIndexNV GLEW_GET_FUN(__glewGetStageIndexNV)
14360 #define glIsCommandListNV GLEW_GET_FUN(__glewIsCommandListNV)
14361 #define glIsStateNV GLEW_GET_FUN(__glewIsStateNV)
14362 #define glListDrawCommandsStatesClientNV GLEW_GET_FUN(__glewListDrawCommandsStatesClientNV)
14363 #define glStateCaptureNV GLEW_GET_FUN(__glewStateCaptureNV)
14364 
14365 #define GLEW_NV_command_list GLEW_GET_VAR(__GLEW_NV_command_list)
14366 
14367 #endif /* GL_NV_command_list */
14368 
14369 /* ------------------------- GL_NV_compute_program5 ------------------------ */
14370 
14371 #ifndef GL_NV_compute_program5
14372 #define GL_NV_compute_program5 1
14373 
14374 #define GL_COMPUTE_PROGRAM_NV 0x90FB
14375 #define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90FC
14376 
14377 #define GLEW_NV_compute_program5 GLEW_GET_VAR(__GLEW_NV_compute_program5)
14378 
14379 #endif /* GL_NV_compute_program5 */
14380 
14381 /* ------------------------ GL_NV_conditional_render ----------------------- */
14382 
14383 #ifndef GL_NV_conditional_render
14384 #define GL_NV_conditional_render 1
14385 
14386 #define GL_QUERY_WAIT_NV 0x8E13
14387 #define GL_QUERY_NO_WAIT_NV 0x8E14
14388 #define GL_QUERY_BY_REGION_WAIT_NV 0x8E15
14389 #define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16
14390 
14391 typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode);
14392 typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVPROC) (void);
14393 
14394 #define glBeginConditionalRenderNV GLEW_GET_FUN(__glewBeginConditionalRenderNV)
14395 #define glEndConditionalRenderNV GLEW_GET_FUN(__glewEndConditionalRenderNV)
14396 
14397 #define GLEW_NV_conditional_render GLEW_GET_VAR(__GLEW_NV_conditional_render)
14398 
14399 #endif /* GL_NV_conditional_render */
14400 
14401 /* ----------------------- GL_NV_conservative_raster ----------------------- */
14402 
14403 #ifndef GL_NV_conservative_raster
14404 #define GL_NV_conservative_raster 1
14405 
14406 #define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346
14407 #define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347
14408 #define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348
14409 #define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349
14410 
14411 typedef void (GLAPIENTRY * PFNGLSUBPIXELPRECISIONBIASNVPROC) (GLuint xbits, GLuint ybits);
14412 
14413 #define glSubpixelPrecisionBiasNV GLEW_GET_FUN(__glewSubpixelPrecisionBiasNV)
14414 
14415 #define GLEW_NV_conservative_raster GLEW_GET_VAR(__GLEW_NV_conservative_raster)
14416 
14417 #endif /* GL_NV_conservative_raster */
14418 
14419 /* -------------------- GL_NV_conservative_raster_dilate ------------------- */
14420 
14421 #ifndef GL_NV_conservative_raster_dilate
14422 #define GL_NV_conservative_raster_dilate 1
14423 
14424 #define GL_CONSERVATIVE_RASTER_DILATE_NV 0x9379
14425 #define GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV 0x937A
14426 #define GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV 0x937B
14427 
14428 typedef void (GLAPIENTRY * PFNGLCONSERVATIVERASTERPARAMETERFNVPROC) (GLenum pname, GLfloat value);
14429 
14430 #define glConservativeRasterParameterfNV GLEW_GET_FUN(__glewConservativeRasterParameterfNV)
14431 
14432 #define GLEW_NV_conservative_raster_dilate GLEW_GET_VAR(__GLEW_NV_conservative_raster_dilate)
14433 
14434 #endif /* GL_NV_conservative_raster_dilate */
14435 
14436 /* -------------- GL_NV_conservative_raster_pre_snap_triangles ------------- */
14437 
14438 #ifndef GL_NV_conservative_raster_pre_snap_triangles
14439 #define GL_NV_conservative_raster_pre_snap_triangles 1
14440 
14441 #define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D
14442 #define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E
14443 #define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F
14444 
14445 typedef void (GLAPIENTRY * PFNGLCONSERVATIVERASTERPARAMETERINVPROC) (GLenum pname, GLint param);
14446 
14447 #define glConservativeRasterParameteriNV GLEW_GET_FUN(__glewConservativeRasterParameteriNV)
14448 
14449 #define GLEW_NV_conservative_raster_pre_snap_triangles GLEW_GET_VAR(__GLEW_NV_conservative_raster_pre_snap_triangles)
14450 
14451 #endif /* GL_NV_conservative_raster_pre_snap_triangles */
14452 
14453 /* --------------------------- GL_NV_copy_buffer --------------------------- */
14454 
14455 #ifndef GL_NV_copy_buffer
14456 #define GL_NV_copy_buffer 1
14457 
14458 #define GL_COPY_READ_BUFFER_NV 0x8F36
14459 #define GL_COPY_WRITE_BUFFER_NV 0x8F37
14460 
14461 typedef void (GLAPIENTRY * PFNGLCOPYBUFFERSUBDATANVPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size);
14462 
14463 #define glCopyBufferSubDataNV GLEW_GET_FUN(__glewCopyBufferSubDataNV)
14464 
14465 #define GLEW_NV_copy_buffer GLEW_GET_VAR(__GLEW_NV_copy_buffer)
14466 
14467 #endif /* GL_NV_copy_buffer */
14468 
14469 /* ----------------------- GL_NV_copy_depth_to_color ----------------------- */
14470 
14471 #ifndef GL_NV_copy_depth_to_color
14472 #define GL_NV_copy_depth_to_color 1
14473 
14474 #define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E
14475 #define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F
14476 
14477 #define GLEW_NV_copy_depth_to_color GLEW_GET_VAR(__GLEW_NV_copy_depth_to_color)
14478 
14479 #endif /* GL_NV_copy_depth_to_color */
14480 
14481 /* ---------------------------- GL_NV_copy_image --------------------------- */
14482 
14483 #ifndef GL_NV_copy_image
14484 #define GL_NV_copy_image 1
14485 
14486 typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
14487 
14488 #define glCopyImageSubDataNV GLEW_GET_FUN(__glewCopyImageSubDataNV)
14489 
14490 #define GLEW_NV_copy_image GLEW_GET_VAR(__GLEW_NV_copy_image)
14491 
14492 #endif /* GL_NV_copy_image */
14493 
14494 /* -------------------------- GL_NV_deep_texture3D ------------------------- */
14495 
14496 #ifndef GL_NV_deep_texture3D
14497 #define GL_NV_deep_texture3D 1
14498 
14499 #define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0
14500 #define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1
14501 
14502 #define GLEW_NV_deep_texture3D GLEW_GET_VAR(__GLEW_NV_deep_texture3D)
14503 
14504 #endif /* GL_NV_deep_texture3D */
14505 
14506 /* ------------------------ GL_NV_depth_buffer_float ----------------------- */
14507 
14508 #ifndef GL_NV_depth_buffer_float
14509 #define GL_NV_depth_buffer_float 1
14510 
14511 #define GL_DEPTH_COMPONENT32F_NV 0x8DAB
14512 #define GL_DEPTH32F_STENCIL8_NV 0x8DAC
14513 #define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD
14514 #define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF
14515 
14516 typedef void (GLAPIENTRY * PFNGLCLEARDEPTHDNVPROC) (GLdouble depth);
14517 typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax);
14518 typedef void (GLAPIENTRY * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar);
14519 
14520 #define glClearDepthdNV GLEW_GET_FUN(__glewClearDepthdNV)
14521 #define glDepthBoundsdNV GLEW_GET_FUN(__glewDepthBoundsdNV)
14522 #define glDepthRangedNV GLEW_GET_FUN(__glewDepthRangedNV)
14523 
14524 #define GLEW_NV_depth_buffer_float GLEW_GET_VAR(__GLEW_NV_depth_buffer_float)
14525 
14526 #endif /* GL_NV_depth_buffer_float */
14527 
14528 /* --------------------------- GL_NV_depth_clamp --------------------------- */
14529 
14530 #ifndef GL_NV_depth_clamp
14531 #define GL_NV_depth_clamp 1
14532 
14533 #define GL_DEPTH_CLAMP_NV 0x864F
14534 
14535 #define GLEW_NV_depth_clamp GLEW_GET_VAR(__GLEW_NV_depth_clamp)
14536 
14537 #endif /* GL_NV_depth_clamp */
14538 
14539 /* ---------------------- GL_NV_depth_range_unclamped ---------------------- */
14540 
14541 #ifndef GL_NV_depth_range_unclamped
14542 #define GL_NV_depth_range_unclamped 1
14543 
14544 #define GL_SAMPLE_COUNT_BITS_NV 0x8864
14545 #define GL_CURRENT_SAMPLE_COUNT_QUERY_NV 0x8865
14546 #define GL_QUERY_RESULT_NV 0x8866
14547 #define GL_QUERY_RESULT_AVAILABLE_NV 0x8867
14548 #define GL_SAMPLE_COUNT_NV 0x8914
14549 
14550 #define GLEW_NV_depth_range_unclamped GLEW_GET_VAR(__GLEW_NV_depth_range_unclamped)
14551 
14552 #endif /* GL_NV_depth_range_unclamped */
14553 
14554 /* --------------------------- GL_NV_draw_buffers -------------------------- */
14555 
14556 #ifndef GL_NV_draw_buffers
14557 #define GL_NV_draw_buffers 1
14558 
14559 #define GL_MAX_DRAW_BUFFERS_NV 0x8824
14560 #define GL_DRAW_BUFFER0_NV 0x8825
14561 #define GL_DRAW_BUFFER1_NV 0x8826
14562 #define GL_DRAW_BUFFER2_NV 0x8827
14563 #define GL_DRAW_BUFFER3_NV 0x8828
14564 #define GL_DRAW_BUFFER4_NV 0x8829
14565 #define GL_DRAW_BUFFER5_NV 0x882A
14566 #define GL_DRAW_BUFFER6_NV 0x882B
14567 #define GL_DRAW_BUFFER7_NV 0x882C
14568 #define GL_DRAW_BUFFER8_NV 0x882D
14569 #define GL_DRAW_BUFFER9_NV 0x882E
14570 #define GL_DRAW_BUFFER10_NV 0x882F
14571 #define GL_DRAW_BUFFER11_NV 0x8830
14572 #define GL_DRAW_BUFFER12_NV 0x8831
14573 #define GL_DRAW_BUFFER13_NV 0x8832
14574 #define GL_DRAW_BUFFER14_NV 0x8833
14575 #define GL_DRAW_BUFFER15_NV 0x8834
14576 #define GL_COLOR_ATTACHMENT0_NV 0x8CE0
14577 #define GL_COLOR_ATTACHMENT1_NV 0x8CE1
14578 #define GL_COLOR_ATTACHMENT2_NV 0x8CE2
14579 #define GL_COLOR_ATTACHMENT3_NV 0x8CE3
14580 #define GL_COLOR_ATTACHMENT4_NV 0x8CE4
14581 #define GL_COLOR_ATTACHMENT5_NV 0x8CE5
14582 #define GL_COLOR_ATTACHMENT6_NV 0x8CE6
14583 #define GL_COLOR_ATTACHMENT7_NV 0x8CE7
14584 #define GL_COLOR_ATTACHMENT8_NV 0x8CE8
14585 #define GL_COLOR_ATTACHMENT9_NV 0x8CE9
14586 #define GL_COLOR_ATTACHMENT10_NV 0x8CEA
14587 #define GL_COLOR_ATTACHMENT11_NV 0x8CEB
14588 #define GL_COLOR_ATTACHMENT12_NV 0x8CEC
14589 #define GL_COLOR_ATTACHMENT13_NV 0x8CED
14590 #define GL_COLOR_ATTACHMENT14_NV 0x8CEE
14591 #define GL_COLOR_ATTACHMENT15_NV 0x8CEF
14592 
14593 typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum* bufs);
14594 
14595 #define glDrawBuffersNV GLEW_GET_FUN(__glewDrawBuffersNV)
14596 
14597 #define GLEW_NV_draw_buffers GLEW_GET_VAR(__GLEW_NV_draw_buffers)
14598 
14599 #endif /* GL_NV_draw_buffers */
14600 
14601 /* -------------------------- GL_NV_draw_instanced ------------------------- */
14602 
14603 #ifndef GL_NV_draw_instanced
14604 #define GL_NV_draw_instanced 1
14605 
14606 typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDNVPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
14607 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDNVPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
14608 
14609 #define glDrawArraysInstancedNV GLEW_GET_FUN(__glewDrawArraysInstancedNV)
14610 #define glDrawElementsInstancedNV GLEW_GET_FUN(__glewDrawElementsInstancedNV)
14611 
14612 #define GLEW_NV_draw_instanced GLEW_GET_VAR(__GLEW_NV_draw_instanced)
14613 
14614 #endif /* GL_NV_draw_instanced */
14615 
14616 /* --------------------------- GL_NV_draw_texture -------------------------- */
14617 
14618 #ifndef GL_NV_draw_texture
14619 #define GL_NV_draw_texture 1
14620 
14621 typedef void (GLAPIENTRY * PFNGLDRAWTEXTURENVPROC) (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
14622 
14623 #define glDrawTextureNV GLEW_GET_FUN(__glewDrawTextureNV)
14624 
14625 #define GLEW_NV_draw_texture GLEW_GET_VAR(__GLEW_NV_draw_texture)
14626 
14627 #endif /* GL_NV_draw_texture */
14628 
14629 /* ------------------------ GL_NV_draw_vulkan_image ------------------------ */
14630 
14631 #ifndef GL_NV_draw_vulkan_image
14632 #define GL_NV_draw_vulkan_image 1
14633 
14634 typedef void (APIENTRY *GLVULKANPROCNV)(void);
14635 
14636 typedef void (GLAPIENTRY * PFNGLDRAWVKIMAGENVPROC) (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
14637 typedef GLVULKANPROCNV (GLAPIENTRY * PFNGLGETVKPROCADDRNVPROC) (const GLchar* name);
14638 typedef void (GLAPIENTRY * PFNGLSIGNALVKFENCENVPROC) (GLuint64 vkFence);
14639 typedef void (GLAPIENTRY * PFNGLSIGNALVKSEMAPHORENVPROC) (GLuint64 vkSemaphore);
14640 typedef void (GLAPIENTRY * PFNGLWAITVKSEMAPHORENVPROC) (GLuint64 vkSemaphore);
14641 
14642 #define glDrawVkImageNV GLEW_GET_FUN(__glewDrawVkImageNV)
14643 #define glGetVkProcAddrNV GLEW_GET_FUN(__glewGetVkProcAddrNV)
14644 #define glSignalVkFenceNV GLEW_GET_FUN(__glewSignalVkFenceNV)
14645 #define glSignalVkSemaphoreNV GLEW_GET_FUN(__glewSignalVkSemaphoreNV)
14646 #define glWaitVkSemaphoreNV GLEW_GET_FUN(__glewWaitVkSemaphoreNV)
14647 
14648 #define GLEW_NV_draw_vulkan_image GLEW_GET_VAR(__GLEW_NV_draw_vulkan_image)
14649 
14650 #endif /* GL_NV_draw_vulkan_image */
14651 
14652 /* ---------------------------- GL_NV_evaluators --------------------------- */
14653 
14654 #ifndef GL_NV_evaluators
14655 #define GL_NV_evaluators 1
14656 
14657 #define GL_EVAL_2D_NV 0x86C0
14658 #define GL_EVAL_TRIANGULAR_2D_NV 0x86C1
14659 #define GL_MAP_TESSELLATION_NV 0x86C2
14660 #define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3
14661 #define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4
14662 #define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5
14663 #define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6
14664 #define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7
14665 #define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8
14666 #define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9
14667 #define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA
14668 #define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB
14669 #define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC
14670 #define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD
14671 #define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE
14672 #define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF
14673 #define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0
14674 #define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1
14675 #define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2
14676 #define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3
14677 #define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4
14678 #define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5
14679 #define GL_MAX_MAP_TESSELLATION_NV 0x86D6
14680 #define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7
14681 
14682 typedef void (GLAPIENTRY * PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode);
14683 typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params);
14684 typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params);
14685 typedef void (GLAPIENTRY * PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points);
14686 typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat* params);
14687 typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint* params);
14688 typedef void (GLAPIENTRY * PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points);
14689 typedef void (GLAPIENTRY * PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat* params);
14690 typedef void (GLAPIENTRY * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint* params);
14691 
14692 #define glEvalMapsNV GLEW_GET_FUN(__glewEvalMapsNV)
14693 #define glGetMapAttribParameterfvNV GLEW_GET_FUN(__glewGetMapAttribParameterfvNV)
14694 #define glGetMapAttribParameterivNV GLEW_GET_FUN(__glewGetMapAttribParameterivNV)
14695 #define glGetMapControlPointsNV GLEW_GET_FUN(__glewGetMapControlPointsNV)
14696 #define glGetMapParameterfvNV GLEW_GET_FUN(__glewGetMapParameterfvNV)
14697 #define glGetMapParameterivNV GLEW_GET_FUN(__glewGetMapParameterivNV)
14698 #define glMapControlPointsNV GLEW_GET_FUN(__glewMapControlPointsNV)
14699 #define glMapParameterfvNV GLEW_GET_FUN(__glewMapParameterfvNV)
14700 #define glMapParameterivNV GLEW_GET_FUN(__glewMapParameterivNV)
14701 
14702 #define GLEW_NV_evaluators GLEW_GET_VAR(__GLEW_NV_evaluators)
14703 
14704 #endif /* GL_NV_evaluators */
14705 
14706 /* --------------------- GL_NV_explicit_attrib_location -------------------- */
14707 
14708 #ifndef GL_NV_explicit_attrib_location
14709 #define GL_NV_explicit_attrib_location 1
14710 
14711 #define GLEW_NV_explicit_attrib_location GLEW_GET_VAR(__GLEW_NV_explicit_attrib_location)
14712 
14713 #endif /* GL_NV_explicit_attrib_location */
14714 
14715 /* ----------------------- GL_NV_explicit_multisample ---------------------- */
14716 
14717 #ifndef GL_NV_explicit_multisample
14718 #define GL_NV_explicit_multisample 1
14719 
14720 #define GL_SAMPLE_POSITION_NV 0x8E50
14721 #define GL_SAMPLE_MASK_NV 0x8E51
14722 #define GL_SAMPLE_MASK_VALUE_NV 0x8E52
14723 #define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53
14724 #define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54
14725 #define GL_TEXTURE_RENDERBUFFER_NV 0x8E55
14726 #define GL_SAMPLER_RENDERBUFFER_NV 0x8E56
14727 #define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57
14728 #define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58
14729 #define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59
14730 
14731 typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat* val);
14732 typedef void (GLAPIENTRY * PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask);
14733 typedef void (GLAPIENTRY * PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer);
14734 
14735 #define glGetMultisamplefvNV GLEW_GET_FUN(__glewGetMultisamplefvNV)
14736 #define glSampleMaskIndexedNV GLEW_GET_FUN(__glewSampleMaskIndexedNV)
14737 #define glTexRenderbufferNV GLEW_GET_FUN(__glewTexRenderbufferNV)
14738 
14739 #define GLEW_NV_explicit_multisample GLEW_GET_VAR(__GLEW_NV_explicit_multisample)
14740 
14741 #endif /* GL_NV_explicit_multisample */
14742 
14743 /* ---------------------- GL_NV_fbo_color_attachments ---------------------- */
14744 
14745 #ifndef GL_NV_fbo_color_attachments
14746 #define GL_NV_fbo_color_attachments 1
14747 
14748 #define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF
14749 #define GL_COLOR_ATTACHMENT0_NV 0x8CE0
14750 #define GL_COLOR_ATTACHMENT1_NV 0x8CE1
14751 #define GL_COLOR_ATTACHMENT2_NV 0x8CE2
14752 #define GL_COLOR_ATTACHMENT3_NV 0x8CE3
14753 #define GL_COLOR_ATTACHMENT4_NV 0x8CE4
14754 #define GL_COLOR_ATTACHMENT5_NV 0x8CE5
14755 #define GL_COLOR_ATTACHMENT6_NV 0x8CE6
14756 #define GL_COLOR_ATTACHMENT7_NV 0x8CE7
14757 #define GL_COLOR_ATTACHMENT8_NV 0x8CE8
14758 #define GL_COLOR_ATTACHMENT9_NV 0x8CE9
14759 #define GL_COLOR_ATTACHMENT10_NV 0x8CEA
14760 #define GL_COLOR_ATTACHMENT11_NV 0x8CEB
14761 #define GL_COLOR_ATTACHMENT12_NV 0x8CEC
14762 #define GL_COLOR_ATTACHMENT13_NV 0x8CED
14763 #define GL_COLOR_ATTACHMENT14_NV 0x8CEE
14764 #define GL_COLOR_ATTACHMENT15_NV 0x8CEF
14765 
14766 #define GLEW_NV_fbo_color_attachments GLEW_GET_VAR(__GLEW_NV_fbo_color_attachments)
14767 
14768 #endif /* GL_NV_fbo_color_attachments */
14769 
14770 /* ------------------------------ GL_NV_fence ------------------------------ */
14771 
14772 #ifndef GL_NV_fence
14773 #define GL_NV_fence 1
14774 
14775 #define GL_ALL_COMPLETED_NV 0x84F2
14776 #define GL_FENCE_STATUS_NV 0x84F3
14777 #define GL_FENCE_CONDITION_NV 0x84F4
14778 
14779 typedef void (GLAPIENTRY * PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint* fences);
14780 typedef void (GLAPIENTRY * PFNGLFINISHFENCENVPROC) (GLuint fence);
14781 typedef void (GLAPIENTRY * PFNGLGENFENCESNVPROC) (GLsizei n, GLuint* fences);
14782 typedef void (GLAPIENTRY * PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint* params);
14783 typedef GLboolean (GLAPIENTRY * PFNGLISFENCENVPROC) (GLuint fence);
14784 typedef void (GLAPIENTRY * PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
14785 typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCENVPROC) (GLuint fence);
14786 
14787 #define glDeleteFencesNV GLEW_GET_FUN(__glewDeleteFencesNV)
14788 #define glFinishFenceNV GLEW_GET_FUN(__glewFinishFenceNV)
14789 #define glGenFencesNV GLEW_GET_FUN(__glewGenFencesNV)
14790 #define glGetFenceivNV GLEW_GET_FUN(__glewGetFenceivNV)
14791 #define glIsFenceNV GLEW_GET_FUN(__glewIsFenceNV)
14792 #define glSetFenceNV GLEW_GET_FUN(__glewSetFenceNV)
14793 #define glTestFenceNV GLEW_GET_FUN(__glewTestFenceNV)
14794 
14795 #define GLEW_NV_fence GLEW_GET_VAR(__GLEW_NV_fence)
14796 
14797 #endif /* GL_NV_fence */
14798 
14799 /* -------------------------- GL_NV_fill_rectangle ------------------------- */
14800 
14801 #ifndef GL_NV_fill_rectangle
14802 #define GL_NV_fill_rectangle 1
14803 
14804 #define GL_FILL_RECTANGLE_NV 0x933C
14805 
14806 #define GLEW_NV_fill_rectangle GLEW_GET_VAR(__GLEW_NV_fill_rectangle)
14807 
14808 #endif /* GL_NV_fill_rectangle */
14809 
14810 /* --------------------------- GL_NV_float_buffer -------------------------- */
14811 
14812 #ifndef GL_NV_float_buffer
14813 #define GL_NV_float_buffer 1
14814 
14815 #define GL_FLOAT_R_NV 0x8880
14816 #define GL_FLOAT_RG_NV 0x8881
14817 #define GL_FLOAT_RGB_NV 0x8882
14818 #define GL_FLOAT_RGBA_NV 0x8883
14819 #define GL_FLOAT_R16_NV 0x8884
14820 #define GL_FLOAT_R32_NV 0x8885
14821 #define GL_FLOAT_RG16_NV 0x8886
14822 #define GL_FLOAT_RG32_NV 0x8887
14823 #define GL_FLOAT_RGB16_NV 0x8888
14824 #define GL_FLOAT_RGB32_NV 0x8889
14825 #define GL_FLOAT_RGBA16_NV 0x888A
14826 #define GL_FLOAT_RGBA32_NV 0x888B
14827 #define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C
14828 #define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D
14829 #define GL_FLOAT_RGBA_MODE_NV 0x888E
14830 
14831 #define GLEW_NV_float_buffer GLEW_GET_VAR(__GLEW_NV_float_buffer)
14832 
14833 #endif /* GL_NV_float_buffer */
14834 
14835 /* --------------------------- GL_NV_fog_distance -------------------------- */
14836 
14837 #ifndef GL_NV_fog_distance
14838 #define GL_NV_fog_distance 1
14839 
14840 #define GL_FOG_DISTANCE_MODE_NV 0x855A
14841 #define GL_EYE_RADIAL_NV 0x855B
14842 #define GL_EYE_PLANE_ABSOLUTE_NV 0x855C
14843 
14844 #define GLEW_NV_fog_distance GLEW_GET_VAR(__GLEW_NV_fog_distance)
14845 
14846 #endif /* GL_NV_fog_distance */
14847 
14848 /* -------------------- GL_NV_fragment_coverage_to_color ------------------- */
14849 
14850 #ifndef GL_NV_fragment_coverage_to_color
14851 #define GL_NV_fragment_coverage_to_color 1
14852 
14853 #define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD
14854 #define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE
14855 
14856 typedef void (GLAPIENTRY * PFNGLFRAGMENTCOVERAGECOLORNVPROC) (GLuint color);
14857 
14858 #define glFragmentCoverageColorNV GLEW_GET_FUN(__glewFragmentCoverageColorNV)
14859 
14860 #define GLEW_NV_fragment_coverage_to_color GLEW_GET_VAR(__GLEW_NV_fragment_coverage_to_color)
14861 
14862 #endif /* GL_NV_fragment_coverage_to_color */
14863 
14864 /* ------------------------- GL_NV_fragment_program ------------------------ */
14865 
14866 #ifndef GL_NV_fragment_program
14867 #define GL_NV_fragment_program 1
14868 
14869 #define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868
14870 #define GL_FRAGMENT_PROGRAM_NV 0x8870
14871 #define GL_MAX_TEXTURE_COORDS_NV 0x8871
14872 #define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872
14873 #define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873
14874 #define GL_PROGRAM_ERROR_STRING_NV 0x8874
14875 
14876 typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble *params);
14877 typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat *params);
14878 typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
14879 typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLdouble v[]);
14880 typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
14881 typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLfloat v[]);
14882 
14883 #define glGetProgramNamedParameterdvNV GLEW_GET_FUN(__glewGetProgramNamedParameterdvNV)
14884 #define glGetProgramNamedParameterfvNV GLEW_GET_FUN(__glewGetProgramNamedParameterfvNV)
14885 #define glProgramNamedParameter4dNV GLEW_GET_FUN(__glewProgramNamedParameter4dNV)
14886 #define glProgramNamedParameter4dvNV GLEW_GET_FUN(__glewProgramNamedParameter4dvNV)
14887 #define glProgramNamedParameter4fNV GLEW_GET_FUN(__glewProgramNamedParameter4fNV)
14888 #define glProgramNamedParameter4fvNV GLEW_GET_FUN(__glewProgramNamedParameter4fvNV)
14889 
14890 #define GLEW_NV_fragment_program GLEW_GET_VAR(__GLEW_NV_fragment_program)
14891 
14892 #endif /* GL_NV_fragment_program */
14893 
14894 /* ------------------------ GL_NV_fragment_program2 ------------------------ */
14895 
14896 #ifndef GL_NV_fragment_program2
14897 #define GL_NV_fragment_program2 1
14898 
14899 #define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4
14900 #define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5
14901 #define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6
14902 #define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7
14903 #define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8
14904 
14905 #define GLEW_NV_fragment_program2 GLEW_GET_VAR(__GLEW_NV_fragment_program2)
14906 
14907 #endif /* GL_NV_fragment_program2 */
14908 
14909 /* ------------------------ GL_NV_fragment_program4 ------------------------ */
14910 
14911 #ifndef GL_NV_fragment_program4
14912 #define GL_NV_fragment_program4 1
14913 
14914 #define GLEW_NV_fragment_program4 GLEW_GET_VAR(__GLEW_NV_fragment_program4)
14915 
14916 #endif /* GL_NV_fragment_program4 */
14917 
14918 /* --------------------- GL_NV_fragment_program_option --------------------- */
14919 
14920 #ifndef GL_NV_fragment_program_option
14921 #define GL_NV_fragment_program_option 1
14922 
14923 #define GLEW_NV_fragment_program_option GLEW_GET_VAR(__GLEW_NV_fragment_program_option)
14924 
14925 #endif /* GL_NV_fragment_program_option */
14926 
14927 /* -------------------- GL_NV_fragment_shader_interlock -------------------- */
14928 
14929 #ifndef GL_NV_fragment_shader_interlock
14930 #define GL_NV_fragment_shader_interlock 1
14931 
14932 #define GLEW_NV_fragment_shader_interlock GLEW_GET_VAR(__GLEW_NV_fragment_shader_interlock)
14933 
14934 #endif /* GL_NV_fragment_shader_interlock */
14935 
14936 /* ------------------------- GL_NV_framebuffer_blit ------------------------ */
14937 
14938 #ifndef GL_NV_framebuffer_blit
14939 #define GL_NV_framebuffer_blit 1
14940 
14941 #define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6
14942 #define GL_READ_FRAMEBUFFER_NV 0x8CA8
14943 #define GL_DRAW_FRAMEBUFFER_NV 0x8CA9
14944 #define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA
14945 
14946 typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERNVPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
14947 
14948 #define glBlitFramebufferNV GLEW_GET_FUN(__glewBlitFramebufferNV)
14949 
14950 #define GLEW_NV_framebuffer_blit GLEW_GET_VAR(__GLEW_NV_framebuffer_blit)
14951 
14952 #endif /* GL_NV_framebuffer_blit */
14953 
14954 /* -------------------- GL_NV_framebuffer_mixed_samples -------------------- */
14955 
14956 #ifndef GL_NV_framebuffer_mixed_samples
14957 #define GL_NV_framebuffer_mixed_samples 1
14958 
14959 #define GL_COLOR_SAMPLES_NV 0x8E20
14960 #define GL_RASTER_MULTISAMPLE_EXT 0x9327
14961 #define GL_RASTER_SAMPLES_EXT 0x9328
14962 #define GL_MAX_RASTER_SAMPLES_EXT 0x9329
14963 #define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A
14964 #define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B
14965 #define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C
14966 #define GL_DEPTH_SAMPLES_NV 0x932D
14967 #define GL_STENCIL_SAMPLES_NV 0x932E
14968 #define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F
14969 #define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330
14970 #define GL_COVERAGE_MODULATION_TABLE_NV 0x9331
14971 #define GL_COVERAGE_MODULATION_NV 0x9332
14972 #define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333
14973 
14974 #define GLEW_NV_framebuffer_mixed_samples GLEW_GET_VAR(__GLEW_NV_framebuffer_mixed_samples)
14975 
14976 #endif /* GL_NV_framebuffer_mixed_samples */
14977 
14978 /* --------------------- GL_NV_framebuffer_multisample --------------------- */
14979 
14980 #ifndef GL_NV_framebuffer_multisample
14981 #define GL_NV_framebuffer_multisample 1
14982 
14983 #define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB
14984 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56
14985 #define GL_MAX_SAMPLES_NV 0x8D57
14986 
14987 typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
14988 
14989 #define glRenderbufferStorageMultisampleNV GLEW_GET_FUN(__glewRenderbufferStorageMultisampleNV)
14990 
14991 #define GLEW_NV_framebuffer_multisample GLEW_GET_VAR(__GLEW_NV_framebuffer_multisample)
14992 
14993 #endif /* GL_NV_framebuffer_multisample */
14994 
14995 /* ----------------- GL_NV_framebuffer_multisample_coverage ---------------- */
14996 
14997 #ifndef GL_NV_framebuffer_multisample_coverage
14998 #define GL_NV_framebuffer_multisample_coverage 1
14999 
15000 #define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB
15001 #define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10
15002 #define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11
15003 #define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12
15004 
15005 typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
15006 
15007 #define glRenderbufferStorageMultisampleCoverageNV GLEW_GET_FUN(__glewRenderbufferStorageMultisampleCoverageNV)
15008 
15009 #define GLEW_NV_framebuffer_multisample_coverage GLEW_GET_VAR(__GLEW_NV_framebuffer_multisample_coverage)
15010 
15011 #endif /* GL_NV_framebuffer_multisample_coverage */
15012 
15013 /* ----------------------- GL_NV_generate_mipmap_sRGB ---------------------- */
15014 
15015 #ifndef GL_NV_generate_mipmap_sRGB
15016 #define GL_NV_generate_mipmap_sRGB 1
15017 
15018 #define GLEW_NV_generate_mipmap_sRGB GLEW_GET_VAR(__GLEW_NV_generate_mipmap_sRGB)
15019 
15020 #endif /* GL_NV_generate_mipmap_sRGB */
15021 
15022 /* ------------------------ GL_NV_geometry_program4 ------------------------ */
15023 
15024 #ifndef GL_NV_geometry_program4
15025 #define GL_NV_geometry_program4 1
15026 
15027 #define GL_GEOMETRY_PROGRAM_NV 0x8C26
15028 #define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27
15029 #define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28
15030 
15031 typedef void (GLAPIENTRY * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit);
15032 
15033 #define glProgramVertexLimitNV GLEW_GET_FUN(__glewProgramVertexLimitNV)
15034 
15035 #define GLEW_NV_geometry_program4 GLEW_GET_VAR(__GLEW_NV_geometry_program4)
15036 
15037 #endif /* GL_NV_geometry_program4 */
15038 
15039 /* ------------------------- GL_NV_geometry_shader4 ------------------------ */
15040 
15041 #ifndef GL_NV_geometry_shader4
15042 #define GL_NV_geometry_shader4 1
15043 
15044 #define GLEW_NV_geometry_shader4 GLEW_GET_VAR(__GLEW_NV_geometry_shader4)
15045 
15046 #endif /* GL_NV_geometry_shader4 */
15047 
15048 /* ------------------- GL_NV_geometry_shader_passthrough ------------------- */
15049 
15050 #ifndef GL_NV_geometry_shader_passthrough
15051 #define GL_NV_geometry_shader_passthrough 1
15052 
15053 #define GLEW_NV_geometry_shader_passthrough GLEW_GET_VAR(__GLEW_NV_geometry_shader_passthrough)
15054 
15055 #endif /* GL_NV_geometry_shader_passthrough */
15056 
15057 /* -------------------------- GL_NV_gpu_multicast -------------------------- */
15058 
15059 #ifndef GL_NV_gpu_multicast
15060 #define GL_NV_gpu_multicast 1
15061 
15062 #define GL_PER_GPU_STORAGE_BIT_NV 0x0800
15063 #define GL_MULTICAST_GPUS_NV 0x92BA
15064 #define GL_PER_GPU_STORAGE_NV 0x9548
15065 #define GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9549
15066 #define GL_RENDER_GPU_MASK_NV 0x9558
15067 
15068 typedef void (GLAPIENTRY * PFNGLMULTICASTBARRIERNVPROC) (void);
15069 typedef void (GLAPIENTRY * PFNGLMULTICASTBLITFRAMEBUFFERNVPROC) (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
15070 typedef void (GLAPIENTRY * PFNGLMULTICASTBUFFERSUBDATANVPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
15071 typedef void (GLAPIENTRY * PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC) (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
15072 typedef void (GLAPIENTRY * PFNGLMULTICASTCOPYIMAGESUBDATANVPROC) (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
15073 typedef void (GLAPIENTRY * PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v);
15074 typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint64* params);
15075 typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint* params);
15076 typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint64* params);
15077 typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint* params);
15078 typedef void (GLAPIENTRY * PFNGLMULTICASTWAITSYNCNVPROC) (GLuint signalGpu, GLbitfield waitGpuMask);
15079 typedef void (GLAPIENTRY * PFNGLRENDERGPUMASKNVPROC) (GLbitfield mask);
15080 
15081 #define glMulticastBarrierNV GLEW_GET_FUN(__glewMulticastBarrierNV)
15082 #define glMulticastBlitFramebufferNV GLEW_GET_FUN(__glewMulticastBlitFramebufferNV)
15083 #define glMulticastBufferSubDataNV GLEW_GET_FUN(__glewMulticastBufferSubDataNV)
15084 #define glMulticastCopyBufferSubDataNV GLEW_GET_FUN(__glewMulticastCopyBufferSubDataNV)
15085 #define glMulticastCopyImageSubDataNV GLEW_GET_FUN(__glewMulticastCopyImageSubDataNV)
15086 #define glMulticastFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewMulticastFramebufferSampleLocationsfvNV)
15087 #define glMulticastGetQueryObjecti64vNV GLEW_GET_FUN(__glewMulticastGetQueryObjecti64vNV)
15088 #define glMulticastGetQueryObjectivNV GLEW_GET_FUN(__glewMulticastGetQueryObjectivNV)
15089 #define glMulticastGetQueryObjectui64vNV GLEW_GET_FUN(__glewMulticastGetQueryObjectui64vNV)
15090 #define glMulticastGetQueryObjectuivNV GLEW_GET_FUN(__glewMulticastGetQueryObjectuivNV)
15091 #define glMulticastWaitSyncNV GLEW_GET_FUN(__glewMulticastWaitSyncNV)
15092 #define glRenderGpuMaskNV GLEW_GET_FUN(__glewRenderGpuMaskNV)
15093 
15094 #define GLEW_NV_gpu_multicast GLEW_GET_VAR(__GLEW_NV_gpu_multicast)
15095 
15096 #endif /* GL_NV_gpu_multicast */
15097 
15098 /* --------------------------- GL_NV_gpu_program4 -------------------------- */
15099 
15100 #ifndef GL_NV_gpu_program4
15101 #define GL_NV_gpu_program4 1
15102 
15103 #define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904
15104 #define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905
15105 #define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906
15106 #define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907
15107 #define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908
15108 #define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909
15109 #define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5
15110 #define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6
15111 
15112 typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
15113 typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
15114 typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
15115 typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
15116 typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
15117 typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
15118 typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
15119 typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
15120 typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
15121 typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
15122 typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
15123 typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
15124 
15125 #define glProgramEnvParameterI4iNV GLEW_GET_FUN(__glewProgramEnvParameterI4iNV)
15126 #define glProgramEnvParameterI4ivNV GLEW_GET_FUN(__glewProgramEnvParameterI4ivNV)
15127 #define glProgramEnvParameterI4uiNV GLEW_GET_FUN(__glewProgramEnvParameterI4uiNV)
15128 #define glProgramEnvParameterI4uivNV GLEW_GET_FUN(__glewProgramEnvParameterI4uivNV)
15129 #define glProgramEnvParametersI4ivNV GLEW_GET_FUN(__glewProgramEnvParametersI4ivNV)
15130 #define glProgramEnvParametersI4uivNV GLEW_GET_FUN(__glewProgramEnvParametersI4uivNV)
15131 #define glProgramLocalParameterI4iNV GLEW_GET_FUN(__glewProgramLocalParameterI4iNV)
15132 #define glProgramLocalParameterI4ivNV GLEW_GET_FUN(__glewProgramLocalParameterI4ivNV)
15133 #define glProgramLocalParameterI4uiNV GLEW_GET_FUN(__glewProgramLocalParameterI4uiNV)
15134 #define glProgramLocalParameterI4uivNV GLEW_GET_FUN(__glewProgramLocalParameterI4uivNV)
15135 #define glProgramLocalParametersI4ivNV GLEW_GET_FUN(__glewProgramLocalParametersI4ivNV)
15136 #define glProgramLocalParametersI4uivNV GLEW_GET_FUN(__glewProgramLocalParametersI4uivNV)
15137 
15138 #define GLEW_NV_gpu_program4 GLEW_GET_VAR(__GLEW_NV_gpu_program4)
15139 
15140 #endif /* GL_NV_gpu_program4 */
15141 
15142 /* --------------------------- GL_NV_gpu_program5 -------------------------- */
15143 
15144 #ifndef GL_NV_gpu_program5
15145 #define GL_NV_gpu_program5 1
15146 
15147 #define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A
15148 #define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B
15149 #define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C
15150 #define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D
15151 #define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E
15152 #define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F
15153 
15154 #define GLEW_NV_gpu_program5 GLEW_GET_VAR(__GLEW_NV_gpu_program5)
15155 
15156 #endif /* GL_NV_gpu_program5 */
15157 
15158 /* -------------------- GL_NV_gpu_program5_mem_extended -------------------- */
15159 
15160 #ifndef GL_NV_gpu_program5_mem_extended
15161 #define GL_NV_gpu_program5_mem_extended 1
15162 
15163 #define GLEW_NV_gpu_program5_mem_extended GLEW_GET_VAR(__GLEW_NV_gpu_program5_mem_extended)
15164 
15165 #endif /* GL_NV_gpu_program5_mem_extended */
15166 
15167 /* ------------------------- GL_NV_gpu_program_fp64 ------------------------ */
15168 
15169 #ifndef GL_NV_gpu_program_fp64
15170 #define GL_NV_gpu_program_fp64 1
15171 
15172 #define GLEW_NV_gpu_program_fp64 GLEW_GET_VAR(__GLEW_NV_gpu_program_fp64)
15173 
15174 #endif /* GL_NV_gpu_program_fp64 */
15175 
15176 /* --------------------------- GL_NV_gpu_shader5 --------------------------- */
15177 
15178 #ifndef GL_NV_gpu_shader5
15179 #define GL_NV_gpu_shader5 1
15180 
15181 #define GL_INT64_NV 0x140E
15182 #define GL_UNSIGNED_INT64_NV 0x140F
15183 #define GL_INT8_NV 0x8FE0
15184 #define GL_INT8_VEC2_NV 0x8FE1
15185 #define GL_INT8_VEC3_NV 0x8FE2
15186 #define GL_INT8_VEC4_NV 0x8FE3
15187 #define GL_INT16_NV 0x8FE4
15188 #define GL_INT16_VEC2_NV 0x8FE5
15189 #define GL_INT16_VEC3_NV 0x8FE6
15190 #define GL_INT16_VEC4_NV 0x8FE7
15191 #define GL_INT64_VEC2_NV 0x8FE9
15192 #define GL_INT64_VEC3_NV 0x8FEA
15193 #define GL_INT64_VEC4_NV 0x8FEB
15194 #define GL_UNSIGNED_INT8_NV 0x8FEC
15195 #define GL_UNSIGNED_INT8_VEC2_NV 0x8FED
15196 #define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE
15197 #define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF
15198 #define GL_UNSIGNED_INT16_NV 0x8FF0
15199 #define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1
15200 #define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2
15201 #define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3
15202 #define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5
15203 #define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6
15204 #define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7
15205 #define GL_FLOAT16_NV 0x8FF8
15206 #define GL_FLOAT16_VEC2_NV 0x8FF9
15207 #define GL_FLOAT16_VEC3_NV 0x8FFA
15208 #define GL_FLOAT16_VEC4_NV 0x8FFB
15209 
15210 typedef void (GLAPIENTRY * PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT* params);
15211 typedef void (GLAPIENTRY * PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT* params);
15212 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x);
15213 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value);
15214 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x);
15215 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value);
15216 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
15217 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value);
15218 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
15219 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value);
15220 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
15221 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value);
15222 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
15223 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value);
15224 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
15225 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value);
15226 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
15227 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value);
15228 typedef void (GLAPIENTRY * PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x);
15229 typedef void (GLAPIENTRY * PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value);
15230 typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x);
15231 typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value);
15232 typedef void (GLAPIENTRY * PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y);
15233 typedef void (GLAPIENTRY * PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value);
15234 typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y);
15235 typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value);
15236 typedef void (GLAPIENTRY * PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
15237 typedef void (GLAPIENTRY * PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value);
15238 typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
15239 typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value);
15240 typedef void (GLAPIENTRY * PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
15241 typedef void (GLAPIENTRY * PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value);
15242 typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
15243 typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value);
15244 
15245 #define glGetUniformi64vNV GLEW_GET_FUN(__glewGetUniformi64vNV)
15246 #define glGetUniformui64vNV GLEW_GET_FUN(__glewGetUniformui64vNV)
15247 #define glProgramUniform1i64NV GLEW_GET_FUN(__glewProgramUniform1i64NV)
15248 #define glProgramUniform1i64vNV GLEW_GET_FUN(__glewProgramUniform1i64vNV)
15249 #define glProgramUniform1ui64NV GLEW_GET_FUN(__glewProgramUniform1ui64NV)
15250 #define glProgramUniform1ui64vNV GLEW_GET_FUN(__glewProgramUniform1ui64vNV)
15251 #define glProgramUniform2i64NV GLEW_GET_FUN(__glewProgramUniform2i64NV)
15252 #define glProgramUniform2i64vNV GLEW_GET_FUN(__glewProgramUniform2i64vNV)
15253 #define glProgramUniform2ui64NV GLEW_GET_FUN(__glewProgramUniform2ui64NV)
15254 #define glProgramUniform2ui64vNV GLEW_GET_FUN(__glewProgramUniform2ui64vNV)
15255 #define glProgramUniform3i64NV GLEW_GET_FUN(__glewProgramUniform3i64NV)
15256 #define glProgramUniform3i64vNV GLEW_GET_FUN(__glewProgramUniform3i64vNV)
15257 #define glProgramUniform3ui64NV GLEW_GET_FUN(__glewProgramUniform3ui64NV)
15258 #define glProgramUniform3ui64vNV GLEW_GET_FUN(__glewProgramUniform3ui64vNV)
15259 #define glProgramUniform4i64NV GLEW_GET_FUN(__glewProgramUniform4i64NV)
15260 #define glProgramUniform4i64vNV GLEW_GET_FUN(__glewProgramUniform4i64vNV)
15261 #define glProgramUniform4ui64NV GLEW_GET_FUN(__glewProgramUniform4ui64NV)
15262 #define glProgramUniform4ui64vNV GLEW_GET_FUN(__glewProgramUniform4ui64vNV)
15263 #define glUniform1i64NV GLEW_GET_FUN(__glewUniform1i64NV)
15264 #define glUniform1i64vNV GLEW_GET_FUN(__glewUniform1i64vNV)
15265 #define glUniform1ui64NV GLEW_GET_FUN(__glewUniform1ui64NV)
15266 #define glUniform1ui64vNV GLEW_GET_FUN(__glewUniform1ui64vNV)
15267 #define glUniform2i64NV GLEW_GET_FUN(__glewUniform2i64NV)
15268 #define glUniform2i64vNV GLEW_GET_FUN(__glewUniform2i64vNV)
15269 #define glUniform2ui64NV GLEW_GET_FUN(__glewUniform2ui64NV)
15270 #define glUniform2ui64vNV GLEW_GET_FUN(__glewUniform2ui64vNV)
15271 #define glUniform3i64NV GLEW_GET_FUN(__glewUniform3i64NV)
15272 #define glUniform3i64vNV GLEW_GET_FUN(__glewUniform3i64vNV)
15273 #define glUniform3ui64NV GLEW_GET_FUN(__glewUniform3ui64NV)
15274 #define glUniform3ui64vNV GLEW_GET_FUN(__glewUniform3ui64vNV)
15275 #define glUniform4i64NV GLEW_GET_FUN(__glewUniform4i64NV)
15276 #define glUniform4i64vNV GLEW_GET_FUN(__glewUniform4i64vNV)
15277 #define glUniform4ui64NV GLEW_GET_FUN(__glewUniform4ui64NV)
15278 #define glUniform4ui64vNV GLEW_GET_FUN(__glewUniform4ui64vNV)
15279 
15280 #define GLEW_NV_gpu_shader5 GLEW_GET_VAR(__GLEW_NV_gpu_shader5)
15281 
15282 #endif /* GL_NV_gpu_shader5 */
15283 
15284 /* ---------------------------- GL_NV_half_float --------------------------- */
15285 
15286 #ifndef GL_NV_half_float
15287 #define GL_NV_half_float 1
15288 
15289 #define GL_HALF_FLOAT_NV 0x140B
15290 
15291 typedef unsigned short GLhalf;
15292 
15293 typedef void (GLAPIENTRY * PFNGLCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue);
15294 typedef void (GLAPIENTRY * PFNGLCOLOR3HVNVPROC) (const GLhalf* v);
15295 typedef void (GLAPIENTRY * PFNGLCOLOR4HNVPROC) (GLhalf red, GLhalf green, GLhalf blue, GLhalf alpha);
15296 typedef void (GLAPIENTRY * PFNGLCOLOR4HVNVPROC) (const GLhalf* v);
15297 typedef void (GLAPIENTRY * PFNGLFOGCOORDHNVPROC) (GLhalf fog);
15298 typedef void (GLAPIENTRY * PFNGLFOGCOORDHVNVPROC) (const GLhalf* fog);
15299 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalf s);
15300 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalf* v);
15301 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalf s, GLhalf t);
15302 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalf* v);
15303 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r);
15304 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalf* v);
15305 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r, GLhalf q);
15306 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalf* v);
15307 typedef void (GLAPIENTRY * PFNGLNORMAL3HNVPROC) (GLhalf nx, GLhalf ny, GLhalf nz);
15308 typedef void (GLAPIENTRY * PFNGLNORMAL3HVNVPROC) (const GLhalf* v);
15309 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue);
15310 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalf* v);
15311 typedef void (GLAPIENTRY * PFNGLTEXCOORD1HNVPROC) (GLhalf s);
15312 typedef void (GLAPIENTRY * PFNGLTEXCOORD1HVNVPROC) (const GLhalf* v);
15313 typedef void (GLAPIENTRY * PFNGLTEXCOORD2HNVPROC) (GLhalf s, GLhalf t);
15314 typedef void (GLAPIENTRY * PFNGLTEXCOORD2HVNVPROC) (const GLhalf* v);
15315 typedef void (GLAPIENTRY * PFNGLTEXCOORD3HNVPROC) (GLhalf s, GLhalf t, GLhalf r);
15316 typedef void (GLAPIENTRY * PFNGLTEXCOORD3HVNVPROC) (const GLhalf* v);
15317 typedef void (GLAPIENTRY * PFNGLTEXCOORD4HNVPROC) (GLhalf s, GLhalf t, GLhalf r, GLhalf q);
15318 typedef void (GLAPIENTRY * PFNGLTEXCOORD4HVNVPROC) (const GLhalf* v);
15319 typedef void (GLAPIENTRY * PFNGLVERTEX2HNVPROC) (GLhalf x, GLhalf y);
15320 typedef void (GLAPIENTRY * PFNGLVERTEX2HVNVPROC) (const GLhalf* v);
15321 typedef void (GLAPIENTRY * PFNGLVERTEX3HNVPROC) (GLhalf x, GLhalf y, GLhalf z);
15322 typedef void (GLAPIENTRY * PFNGLVERTEX3HVNVPROC) (const GLhalf* v);
15323 typedef void (GLAPIENTRY * PFNGLVERTEX4HNVPROC) (GLhalf x, GLhalf y, GLhalf z, GLhalf w);
15324 typedef void (GLAPIENTRY * PFNGLVERTEX4HVNVPROC) (const GLhalf* v);
15325 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalf x);
15326 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalf* v);
15327 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalf x, GLhalf y);
15328 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalf* v);
15329 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z);
15330 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalf* v);
15331 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z, GLhalf w);
15332 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalf* v);
15333 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v);
15334 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v);
15335 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v);
15336 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v);
15337 typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHNVPROC) (GLhalf weight);
15338 typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalf* weight);
15339 
15340 #define glColor3hNV GLEW_GET_FUN(__glewColor3hNV)
15341 #define glColor3hvNV GLEW_GET_FUN(__glewColor3hvNV)
15342 #define glColor4hNV GLEW_GET_FUN(__glewColor4hNV)
15343 #define glColor4hvNV GLEW_GET_FUN(__glewColor4hvNV)
15344 #define glFogCoordhNV GLEW_GET_FUN(__glewFogCoordhNV)
15345 #define glFogCoordhvNV GLEW_GET_FUN(__glewFogCoordhvNV)
15346 #define glMultiTexCoord1hNV GLEW_GET_FUN(__glewMultiTexCoord1hNV)
15347 #define glMultiTexCoord1hvNV GLEW_GET_FUN(__glewMultiTexCoord1hvNV)
15348 #define glMultiTexCoord2hNV GLEW_GET_FUN(__glewMultiTexCoord2hNV)
15349 #define glMultiTexCoord2hvNV GLEW_GET_FUN(__glewMultiTexCoord2hvNV)
15350 #define glMultiTexCoord3hNV GLEW_GET_FUN(__glewMultiTexCoord3hNV)
15351 #define glMultiTexCoord3hvNV GLEW_GET_FUN(__glewMultiTexCoord3hvNV)
15352 #define glMultiTexCoord4hNV GLEW_GET_FUN(__glewMultiTexCoord4hNV)
15353 #define glMultiTexCoord4hvNV GLEW_GET_FUN(__glewMultiTexCoord4hvNV)
15354 #define glNormal3hNV GLEW_GET_FUN(__glewNormal3hNV)
15355 #define glNormal3hvNV GLEW_GET_FUN(__glewNormal3hvNV)
15356 #define glSecondaryColor3hNV GLEW_GET_FUN(__glewSecondaryColor3hNV)
15357 #define glSecondaryColor3hvNV GLEW_GET_FUN(__glewSecondaryColor3hvNV)
15358 #define glTexCoord1hNV GLEW_GET_FUN(__glewTexCoord1hNV)
15359 #define glTexCoord1hvNV GLEW_GET_FUN(__glewTexCoord1hvNV)
15360 #define glTexCoord2hNV GLEW_GET_FUN(__glewTexCoord2hNV)
15361 #define glTexCoord2hvNV GLEW_GET_FUN(__glewTexCoord2hvNV)
15362 #define glTexCoord3hNV GLEW_GET_FUN(__glewTexCoord3hNV)
15363 #define glTexCoord3hvNV GLEW_GET_FUN(__glewTexCoord3hvNV)
15364 #define glTexCoord4hNV GLEW_GET_FUN(__glewTexCoord4hNV)
15365 #define glTexCoord4hvNV GLEW_GET_FUN(__glewTexCoord4hvNV)
15366 #define glVertex2hNV GLEW_GET_FUN(__glewVertex2hNV)
15367 #define glVertex2hvNV GLEW_GET_FUN(__glewVertex2hvNV)
15368 #define glVertex3hNV GLEW_GET_FUN(__glewVertex3hNV)
15369 #define glVertex3hvNV GLEW_GET_FUN(__glewVertex3hvNV)
15370 #define glVertex4hNV GLEW_GET_FUN(__glewVertex4hNV)
15371 #define glVertex4hvNV GLEW_GET_FUN(__glewVertex4hvNV)
15372 #define glVertexAttrib1hNV GLEW_GET_FUN(__glewVertexAttrib1hNV)
15373 #define glVertexAttrib1hvNV GLEW_GET_FUN(__glewVertexAttrib1hvNV)
15374 #define glVertexAttrib2hNV GLEW_GET_FUN(__glewVertexAttrib2hNV)
15375 #define glVertexAttrib2hvNV GLEW_GET_FUN(__glewVertexAttrib2hvNV)
15376 #define glVertexAttrib3hNV GLEW_GET_FUN(__glewVertexAttrib3hNV)
15377 #define glVertexAttrib3hvNV GLEW_GET_FUN(__glewVertexAttrib3hvNV)
15378 #define glVertexAttrib4hNV GLEW_GET_FUN(__glewVertexAttrib4hNV)
15379 #define glVertexAttrib4hvNV GLEW_GET_FUN(__glewVertexAttrib4hvNV)
15380 #define glVertexAttribs1hvNV GLEW_GET_FUN(__glewVertexAttribs1hvNV)
15381 #define glVertexAttribs2hvNV GLEW_GET_FUN(__glewVertexAttribs2hvNV)
15382 #define glVertexAttribs3hvNV GLEW_GET_FUN(__glewVertexAttribs3hvNV)
15383 #define glVertexAttribs4hvNV GLEW_GET_FUN(__glewVertexAttribs4hvNV)
15384 #define glVertexWeighthNV GLEW_GET_FUN(__glewVertexWeighthNV)
15385 #define glVertexWeighthvNV GLEW_GET_FUN(__glewVertexWeighthvNV)
15386 
15387 #define GLEW_NV_half_float GLEW_GET_VAR(__GLEW_NV_half_float)
15388 
15389 #endif /* GL_NV_half_float */
15390 
15391 /* -------------------------- GL_NV_image_formats -------------------------- */
15392 
15393 #ifndef GL_NV_image_formats
15394 #define GL_NV_image_formats 1
15395 
15396 #define GLEW_NV_image_formats GLEW_GET_VAR(__GLEW_NV_image_formats)
15397 
15398 #endif /* GL_NV_image_formats */
15399 
15400 /* ------------------------- GL_NV_instanced_arrays ------------------------ */
15401 
15402 #ifndef GL_NV_instanced_arrays
15403 #define GL_NV_instanced_arrays 1
15404 
15405 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE
15406 
15407 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORNVPROC) (GLuint index, GLuint divisor);
15408 
15409 #define glVertexAttribDivisorNV GLEW_GET_FUN(__glewVertexAttribDivisorNV)
15410 
15411 #define GLEW_NV_instanced_arrays GLEW_GET_VAR(__GLEW_NV_instanced_arrays)
15412 
15413 #endif /* GL_NV_instanced_arrays */
15414 
15415 /* ------------------- GL_NV_internalformat_sample_query ------------------- */
15416 
15417 #ifndef GL_NV_internalformat_sample_query
15418 #define GL_NV_internalformat_sample_query 1
15419 
15420 #define GL_MULTISAMPLES_NV 0x9371
15421 #define GL_SUPERSAMPLE_SCALE_X_NV 0x9372
15422 #define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373
15423 #define GL_CONFORMANT_NV 0x9374
15424 
15425 typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei bufSize, GLint* params);
15426 
15427 #define glGetInternalformatSampleivNV GLEW_GET_FUN(__glewGetInternalformatSampleivNV)
15428 
15429 #define GLEW_NV_internalformat_sample_query GLEW_GET_VAR(__GLEW_NV_internalformat_sample_query)
15430 
15431 #endif /* GL_NV_internalformat_sample_query */
15432 
15433 /* ------------------------ GL_NV_light_max_exponent ----------------------- */
15434 
15435 #ifndef GL_NV_light_max_exponent
15436 #define GL_NV_light_max_exponent 1
15437 
15438 #define GL_MAX_SHININESS_NV 0x8504
15439 #define GL_MAX_SPOT_EXPONENT_NV 0x8505
15440 
15441 #define GLEW_NV_light_max_exponent GLEW_GET_VAR(__GLEW_NV_light_max_exponent)
15442 
15443 #endif /* GL_NV_light_max_exponent */
15444 
15445 /* ----------------------- GL_NV_multisample_coverage ---------------------- */
15446 
15447 #ifndef GL_NV_multisample_coverage
15448 #define GL_NV_multisample_coverage 1
15449 
15450 #define GL_COLOR_SAMPLES_NV 0x8E20
15451 
15452 #define GLEW_NV_multisample_coverage GLEW_GET_VAR(__GLEW_NV_multisample_coverage)
15453 
15454 #endif /* GL_NV_multisample_coverage */
15455 
15456 /* --------------------- GL_NV_multisample_filter_hint --------------------- */
15457 
15458 #ifndef GL_NV_multisample_filter_hint
15459 #define GL_NV_multisample_filter_hint 1
15460 
15461 #define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534
15462 
15463 #define GLEW_NV_multisample_filter_hint GLEW_GET_VAR(__GLEW_NV_multisample_filter_hint)
15464 
15465 #endif /* GL_NV_multisample_filter_hint */
15466 
15467 /* ----------------------- GL_NV_non_square_matrices ----------------------- */
15468 
15469 #ifndef GL_NV_non_square_matrices
15470 #define GL_NV_non_square_matrices 1
15471 
15472 #define GL_FLOAT_MAT2x3_NV 0x8B65
15473 #define GL_FLOAT_MAT2x4_NV 0x8B66
15474 #define GL_FLOAT_MAT3x2_NV 0x8B67
15475 #define GL_FLOAT_MAT3x4_NV 0x8B68
15476 #define GL_FLOAT_MAT4x2_NV 0x8B69
15477 #define GL_FLOAT_MAT4x3_NV 0x8B6A
15478 
15479 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
15480 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
15481 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
15482 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
15483 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
15484 typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
15485 
15486 #define glUniformMatrix2x3fvNV GLEW_GET_FUN(__glewUniformMatrix2x3fvNV)
15487 #define glUniformMatrix2x4fvNV GLEW_GET_FUN(__glewUniformMatrix2x4fvNV)
15488 #define glUniformMatrix3x2fvNV GLEW_GET_FUN(__glewUniformMatrix3x2fvNV)
15489 #define glUniformMatrix3x4fvNV GLEW_GET_FUN(__glewUniformMatrix3x4fvNV)
15490 #define glUniformMatrix4x2fvNV GLEW_GET_FUN(__glewUniformMatrix4x2fvNV)
15491 #define glUniformMatrix4x3fvNV GLEW_GET_FUN(__glewUniformMatrix4x3fvNV)
15492 
15493 #define GLEW_NV_non_square_matrices GLEW_GET_VAR(__GLEW_NV_non_square_matrices)
15494 
15495 #endif /* GL_NV_non_square_matrices */
15496 
15497 /* ------------------------- GL_NV_occlusion_query ------------------------- */
15498 
15499 #ifndef GL_NV_occlusion_query
15500 #define GL_NV_occlusion_query 1
15501 
15502 #define GL_PIXEL_COUNTER_BITS_NV 0x8864
15503 #define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865
15504 #define GL_PIXEL_COUNT_NV 0x8866
15505 #define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867
15506 
15507 typedef void (GLAPIENTRY * PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id);
15508 typedef void (GLAPIENTRY * PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint* ids);
15509 typedef void (GLAPIENTRY * PFNGLENDOCCLUSIONQUERYNVPROC) (void);
15510 typedef void (GLAPIENTRY * PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint* ids);
15511 typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint* params);
15512 typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint* params);
15513 typedef GLboolean (GLAPIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id);
15514 
15515 #define glBeginOcclusionQueryNV GLEW_GET_FUN(__glewBeginOcclusionQueryNV)
15516 #define glDeleteOcclusionQueriesNV GLEW_GET_FUN(__glewDeleteOcclusionQueriesNV)
15517 #define glEndOcclusionQueryNV GLEW_GET_FUN(__glewEndOcclusionQueryNV)
15518 #define glGenOcclusionQueriesNV GLEW_GET_FUN(__glewGenOcclusionQueriesNV)
15519 #define glGetOcclusionQueryivNV GLEW_GET_FUN(__glewGetOcclusionQueryivNV)
15520 #define glGetOcclusionQueryuivNV GLEW_GET_FUN(__glewGetOcclusionQueryuivNV)
15521 #define glIsOcclusionQueryNV GLEW_GET_FUN(__glewIsOcclusionQueryNV)
15522 
15523 #define GLEW_NV_occlusion_query GLEW_GET_VAR(__GLEW_NV_occlusion_query)
15524 
15525 #endif /* GL_NV_occlusion_query */
15526 
15527 /* -------------------------- GL_NV_pack_subimage -------------------------- */
15528 
15529 #ifndef GL_NV_pack_subimage
15530 #define GL_NV_pack_subimage 1
15531 
15532 #define GL_PACK_ROW_LENGTH_NV 0x0D02
15533 #define GL_PACK_SKIP_ROWS_NV 0x0D03
15534 #define GL_PACK_SKIP_PIXELS_NV 0x0D04
15535 
15536 #define GLEW_NV_pack_subimage GLEW_GET_VAR(__GLEW_NV_pack_subimage)
15537 
15538 #endif /* GL_NV_pack_subimage */
15539 
15540 /* ----------------------- GL_NV_packed_depth_stencil ---------------------- */
15541 
15542 #ifndef GL_NV_packed_depth_stencil
15543 #define GL_NV_packed_depth_stencil 1
15544 
15545 #define GL_DEPTH_STENCIL_NV 0x84F9
15546 #define GL_UNSIGNED_INT_24_8_NV 0x84FA
15547 
15548 #define GLEW_NV_packed_depth_stencil GLEW_GET_VAR(__GLEW_NV_packed_depth_stencil)
15549 
15550 #endif /* GL_NV_packed_depth_stencil */
15551 
15552 /* --------------------------- GL_NV_packed_float -------------------------- */
15553 
15554 #ifndef GL_NV_packed_float
15555 #define GL_NV_packed_float 1
15556 
15557 #define GL_R11F_G11F_B10F_NV 0x8C3A
15558 #define GL_UNSIGNED_INT_10F_11F_11F_REV_NV 0x8C3B
15559 
15560 #define GLEW_NV_packed_float GLEW_GET_VAR(__GLEW_NV_packed_float)
15561 
15562 #endif /* GL_NV_packed_float */
15563 
15564 /* ----------------------- GL_NV_packed_float_linear ----------------------- */
15565 
15566 #ifndef GL_NV_packed_float_linear
15567 #define GL_NV_packed_float_linear 1
15568 
15569 #define GL_R11F_G11F_B10F_NV 0x8C3A
15570 #define GL_UNSIGNED_INT_10F_11F_11F_REV_NV 0x8C3B
15571 
15572 #define GLEW_NV_packed_float_linear GLEW_GET_VAR(__GLEW_NV_packed_float_linear)
15573 
15574 #endif /* GL_NV_packed_float_linear */
15575 
15576 /* --------------------- GL_NV_parameter_buffer_object --------------------- */
15577 
15578 #ifndef GL_NV_parameter_buffer_object
15579 #define GL_NV_parameter_buffer_object 1
15580 
15581 #define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0
15582 #define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1
15583 #define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2
15584 #define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3
15585 #define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4
15586 
15587 typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params);
15588 typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params);
15589 typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params);
15590 
15591 #define glProgramBufferParametersIivNV GLEW_GET_FUN(__glewProgramBufferParametersIivNV)
15592 #define glProgramBufferParametersIuivNV GLEW_GET_FUN(__glewProgramBufferParametersIuivNV)
15593 #define glProgramBufferParametersfvNV GLEW_GET_FUN(__glewProgramBufferParametersfvNV)
15594 
15595 #define GLEW_NV_parameter_buffer_object GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object)
15596 
15597 #endif /* GL_NV_parameter_buffer_object */
15598 
15599 /* --------------------- GL_NV_parameter_buffer_object2 -------------------- */
15600 
15601 #ifndef GL_NV_parameter_buffer_object2
15602 #define GL_NV_parameter_buffer_object2 1
15603 
15604 #define GLEW_NV_parameter_buffer_object2 GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object2)
15605 
15606 #endif /* GL_NV_parameter_buffer_object2 */
15607 
15608 /* -------------------------- GL_NV_path_rendering ------------------------- */
15609 
15610 #ifndef GL_NV_path_rendering
15611 #define GL_NV_path_rendering 1
15612 
15613 #define GL_CLOSE_PATH_NV 0x00
15614 #define GL_BOLD_BIT_NV 0x01
15615 #define GL_GLYPH_WIDTH_BIT_NV 0x01
15616 #define GL_GLYPH_HEIGHT_BIT_NV 0x02
15617 #define GL_ITALIC_BIT_NV 0x02
15618 #define GL_MOVE_TO_NV 0x02
15619 #define GL_RELATIVE_MOVE_TO_NV 0x03
15620 #define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04
15621 #define GL_LINE_TO_NV 0x04
15622 #define GL_RELATIVE_LINE_TO_NV 0x05
15623 #define GL_HORIZONTAL_LINE_TO_NV 0x06
15624 #define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07
15625 #define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08
15626 #define GL_VERTICAL_LINE_TO_NV 0x08
15627 #define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09
15628 #define GL_QUADRATIC_CURVE_TO_NV 0x0A
15629 #define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B
15630 #define GL_CUBIC_CURVE_TO_NV 0x0C
15631 #define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D
15632 #define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E
15633 #define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F
15634 #define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10
15635 #define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10
15636 #define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11
15637 #define GL_SMALL_CCW_ARC_TO_NV 0x12
15638 #define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13
15639 #define GL_SMALL_CW_ARC_TO_NV 0x14
15640 #define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15
15641 #define GL_LARGE_CCW_ARC_TO_NV 0x16
15642 #define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17
15643 #define GL_LARGE_CW_ARC_TO_NV 0x18
15644 #define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19
15645 #define GL_CONIC_CURVE_TO_NV 0x1A
15646 #define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B
15647 #define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20
15648 #define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40
15649 #define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80
15650 #define GL_ROUNDED_RECT_NV 0xE8
15651 #define GL_RELATIVE_ROUNDED_RECT_NV 0xE9
15652 #define GL_ROUNDED_RECT2_NV 0xEA
15653 #define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB
15654 #define GL_ROUNDED_RECT4_NV 0xEC
15655 #define GL_RELATIVE_ROUNDED_RECT4_NV 0xED
15656 #define GL_ROUNDED_RECT8_NV 0xEE
15657 #define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF
15658 #define GL_RESTART_PATH_NV 0xF0
15659 #define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2
15660 #define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4
15661 #define GL_RECT_NV 0xF6
15662 #define GL_RELATIVE_RECT_NV 0xF7
15663 #define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8
15664 #define GL_CIRCULAR_CW_ARC_TO_NV 0xFA
15665 #define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC
15666 #define GL_ARC_TO_NV 0xFE
15667 #define GL_RELATIVE_ARC_TO_NV 0xFF
15668 #define GL_GLYPH_HAS_KERNING_BIT_NV 0x100
15669 #define GL_PRIMARY_COLOR_NV 0x852C
15670 #define GL_SECONDARY_COLOR_NV 0x852D
15671 #define GL_PRIMARY_COLOR 0x8577
15672 #define GL_PATH_FORMAT_SVG_NV 0x9070
15673 #define GL_PATH_FORMAT_PS_NV 0x9071
15674 #define GL_STANDARD_FONT_NAME_NV 0x9072
15675 #define GL_SYSTEM_FONT_NAME_NV 0x9073
15676 #define GL_FILE_NAME_NV 0x9074
15677 #define GL_PATH_STROKE_WIDTH_NV 0x9075
15678 #define GL_PATH_END_CAPS_NV 0x9076
15679 #define GL_PATH_INITIAL_END_CAP_NV 0x9077
15680 #define GL_PATH_TERMINAL_END_CAP_NV 0x9078
15681 #define GL_PATH_JOIN_STYLE_NV 0x9079
15682 #define GL_PATH_MITER_LIMIT_NV 0x907A
15683 #define GL_PATH_DASH_CAPS_NV 0x907B
15684 #define GL_PATH_INITIAL_DASH_CAP_NV 0x907C
15685 #define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D
15686 #define GL_PATH_DASH_OFFSET_NV 0x907E
15687 #define GL_PATH_CLIENT_LENGTH_NV 0x907F
15688 #define GL_PATH_FILL_MODE_NV 0x9080
15689 #define GL_PATH_FILL_MASK_NV 0x9081
15690 #define GL_PATH_FILL_COVER_MODE_NV 0x9082
15691 #define GL_PATH_STROKE_COVER_MODE_NV 0x9083
15692 #define GL_PATH_STROKE_MASK_NV 0x9084
15693 #define GL_PATH_STROKE_BOUND_NV 0x9086
15694 #define GL_COUNT_UP_NV 0x9088
15695 #define GL_COUNT_DOWN_NV 0x9089
15696 #define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A
15697 #define GL_CONVEX_HULL_NV 0x908B
15698 #define GL_BOUNDING_BOX_NV 0x908D
15699 #define GL_TRANSLATE_X_NV 0x908E
15700 #define GL_TRANSLATE_Y_NV 0x908F
15701 #define GL_TRANSLATE_2D_NV 0x9090
15702 #define GL_TRANSLATE_3D_NV 0x9091
15703 #define GL_AFFINE_2D_NV 0x9092
15704 #define GL_AFFINE_3D_NV 0x9094
15705 #define GL_TRANSPOSE_AFFINE_2D_NV 0x9096
15706 #define GL_TRANSPOSE_AFFINE_3D_NV 0x9098
15707 #define GL_UTF8_NV 0x909A
15708 #define GL_UTF16_NV 0x909B
15709 #define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C
15710 #define GL_PATH_COMMAND_COUNT_NV 0x909D
15711 #define GL_PATH_COORD_COUNT_NV 0x909E
15712 #define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F
15713 #define GL_PATH_COMPUTED_LENGTH_NV 0x90A0
15714 #define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1
15715 #define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2
15716 #define GL_SQUARE_NV 0x90A3
15717 #define GL_ROUND_NV 0x90A4
15718 #define GL_TRIANGULAR_NV 0x90A5
15719 #define GL_BEVEL_NV 0x90A6
15720 #define GL_MITER_REVERT_NV 0x90A7
15721 #define GL_MITER_TRUNCATE_NV 0x90A8
15722 #define GL_SKIP_MISSING_GLYPH_NV 0x90A9
15723 #define GL_USE_MISSING_GLYPH_NV 0x90AA
15724 #define GL_PATH_ERROR_POSITION_NV 0x90AB
15725 #define GL_PATH_FOG_GEN_MODE_NV 0x90AC
15726 #define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD
15727 #define GL_ADJACENT_PAIRS_NV 0x90AE
15728 #define GL_FIRST_TO_REST_NV 0x90AF
15729 #define GL_PATH_GEN_MODE_NV 0x90B0
15730 #define GL_PATH_GEN_COEFF_NV 0x90B1
15731 #define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2
15732 #define GL_PATH_GEN_COMPONENTS_NV 0x90B3
15733 #define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4
15734 #define GL_MOVE_TO_RESETS_NV 0x90B5
15735 #define GL_MOVE_TO_CONTINUES_NV 0x90B6
15736 #define GL_PATH_STENCIL_FUNC_NV 0x90B7
15737 #define GL_PATH_STENCIL_REF_NV 0x90B8
15738 #define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9
15739 #define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD
15740 #define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE
15741 #define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF
15742 #define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368
15743 #define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369
15744 #define GL_FONT_UNAVAILABLE_NV 0x936A
15745 #define GL_FONT_UNINTELLIGIBLE_NV 0x936B
15746 #define GL_STANDARD_FONT_FORMAT_NV 0x936C
15747 #define GL_FRAGMENT_INPUT_NV 0x936D
15748 #define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000
15749 #define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000
15750 #define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000
15751 #define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000
15752 #define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000
15753 #define GL_FONT_ASCENDER_BIT_NV 0x00200000
15754 #define GL_FONT_DESCENDER_BIT_NV 0x00400000
15755 #define GL_FONT_HEIGHT_BIT_NV 0x00800000
15756 #define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000
15757 #define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000
15758 #define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000
15759 #define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000
15760 #define GL_FONT_HAS_KERNING_BIT_NV 0x10000000
15761 #define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000
15762 
15763 typedef void (GLAPIENTRY * PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath);
15764 typedef void (GLAPIENTRY * PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
15765 typedef void (GLAPIENTRY * PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode);
15766 typedef void (GLAPIENTRY * PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
15767 typedef void (GLAPIENTRY * PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode);
15768 typedef void (GLAPIENTRY * PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range);
15769 typedef GLuint (GLAPIENTRY * PFNGLGENPATHSNVPROC) (GLsizei range);
15770 typedef void (GLAPIENTRY * PFNGLGETPATHCOLORGENFVNVPROC) (GLenum color, GLenum pname, GLfloat* value);
15771 typedef void (GLAPIENTRY * PFNGLGETPATHCOLORGENIVNVPROC) (GLenum color, GLenum pname, GLint* value);
15772 typedef void (GLAPIENTRY * PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte* commands);
15773 typedef void (GLAPIENTRY * PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat* coords);
15774 typedef void (GLAPIENTRY * PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat* dashArray);
15775 typedef GLfloat (GLAPIENTRY * PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments);
15776 typedef void (GLAPIENTRY * PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat* metrics);
15777 typedef void (GLAPIENTRY * PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics);
15778 typedef void (GLAPIENTRY * PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat* value);
15779 typedef void (GLAPIENTRY * PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint* value);
15780 typedef void (GLAPIENTRY * PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing);
15781 typedef void (GLAPIENTRY * PFNGLGETPATHTEXGENFVNVPROC) (GLenum texCoordSet, GLenum pname, GLfloat* value);
15782 typedef void (GLAPIENTRY * PFNGLGETPATHTEXGENIVNVPROC) (GLenum texCoordSet, GLenum pname, GLint* value);
15783 typedef void (GLAPIENTRY * PFNGLGETPROGRAMRESOURCEFVNVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei *length, GLfloat *params);
15784 typedef void (GLAPIENTRY * PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight);
15785 typedef GLboolean (GLAPIENTRY * PFNGLISPATHNVPROC) (GLuint path);
15786 typedef GLboolean (GLAPIENTRY * PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y);
15787 typedef GLboolean (GLAPIENTRY * PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y);
15788 typedef void (GLAPIENTRY * PFNGLMATRIXLOAD3X2FNVPROC) (GLenum matrixMode, const GLfloat* m);
15789 typedef void (GLAPIENTRY * PFNGLMATRIXLOAD3X3FNVPROC) (GLenum matrixMode, const GLfloat* m);
15790 typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat* m);
15791 typedef void (GLAPIENTRY * PFNGLMATRIXMULT3X2FNVPROC) (GLenum matrixMode, const GLfloat* m);
15792 typedef void (GLAPIENTRY * PFNGLMATRIXMULT3X3FNVPROC) (GLenum matrixMode, const GLfloat* m);
15793 typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat* m);
15794 typedef void (GLAPIENTRY * PFNGLPATHCOLORGENNVPROC) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat* coeffs);
15795 typedef void (GLAPIENTRY * PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const void*coords);
15796 typedef void (GLAPIENTRY * PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords);
15797 typedef void (GLAPIENTRY * PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum zfunc);
15798 typedef void (GLAPIENTRY * PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat* dashArray);
15799 typedef void (GLAPIENTRY * PFNGLPATHFOGGENNVPROC) (GLenum genMode);
15800 typedef GLenum (GLAPIENTRY * PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
15801 typedef GLenum (GLAPIENTRY * PFNGLPATHGLYPHINDEXRANGENVPROC) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount[2]);
15802 typedef void (GLAPIENTRY * PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
15803 typedef void (GLAPIENTRY * PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void*charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
15804 typedef GLenum (GLAPIENTRY * PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
15805 typedef void (GLAPIENTRY * PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value);
15806 typedef void (GLAPIENTRY * PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat* value);
15807 typedef void (GLAPIENTRY * PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value);
15808 typedef void (GLAPIENTRY * PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint* value);
15809 typedef void (GLAPIENTRY * PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units);
15810 typedef void (GLAPIENTRY * PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask);
15811 typedef void (GLAPIENTRY * PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString);
15812 typedef void (GLAPIENTRY * PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const void*coords);
15813 typedef void (GLAPIENTRY * PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords);
15814 typedef void (GLAPIENTRY * PFNGLPATHTEXGENNVPROC) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat* coeffs);
15815 typedef GLboolean (GLAPIENTRY * PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat* x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY);
15816 typedef void (GLAPIENTRY * PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat* coeffs);
15817 typedef void (GLAPIENTRY * PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues);
15818 typedef void (GLAPIENTRY * PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask);
15819 typedef void (GLAPIENTRY * PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues);
15820 typedef void (GLAPIENTRY * PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask);
15821 typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
15822 typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode);
15823 typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
15824 typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask, GLenum coverMode);
15825 typedef void (GLAPIENTRY * PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat* transformValues);
15826 typedef void (GLAPIENTRY * PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint paths[], const GLfloat weights[]);
15827 
15828 #define glCopyPathNV GLEW_GET_FUN(__glewCopyPathNV)
15829 #define glCoverFillPathInstancedNV GLEW_GET_FUN(__glewCoverFillPathInstancedNV)
15830 #define glCoverFillPathNV GLEW_GET_FUN(__glewCoverFillPathNV)
15831 #define glCoverStrokePathInstancedNV GLEW_GET_FUN(__glewCoverStrokePathInstancedNV)
15832 #define glCoverStrokePathNV GLEW_GET_FUN(__glewCoverStrokePathNV)
15833 #define glDeletePathsNV GLEW_GET_FUN(__glewDeletePathsNV)
15834 #define glGenPathsNV GLEW_GET_FUN(__glewGenPathsNV)
15835 #define glGetPathColorGenfvNV GLEW_GET_FUN(__glewGetPathColorGenfvNV)
15836 #define glGetPathColorGenivNV GLEW_GET_FUN(__glewGetPathColorGenivNV)
15837 #define glGetPathCommandsNV GLEW_GET_FUN(__glewGetPathCommandsNV)
15838 #define glGetPathCoordsNV GLEW_GET_FUN(__glewGetPathCoordsNV)
15839 #define glGetPathDashArrayNV GLEW_GET_FUN(__glewGetPathDashArrayNV)
15840 #define glGetPathLengthNV GLEW_GET_FUN(__glewGetPathLengthNV)
15841 #define glGetPathMetricRangeNV GLEW_GET_FUN(__glewGetPathMetricRangeNV)
15842 #define glGetPathMetricsNV GLEW_GET_FUN(__glewGetPathMetricsNV)
15843 #define glGetPathParameterfvNV GLEW_GET_FUN(__glewGetPathParameterfvNV)
15844 #define glGetPathParameterivNV GLEW_GET_FUN(__glewGetPathParameterivNV)
15845 #define glGetPathSpacingNV GLEW_GET_FUN(__glewGetPathSpacingNV)
15846 #define glGetPathTexGenfvNV GLEW_GET_FUN(__glewGetPathTexGenfvNV)
15847 #define glGetPathTexGenivNV GLEW_GET_FUN(__glewGetPathTexGenivNV)
15848 #define glGetProgramResourcefvNV GLEW_GET_FUN(__glewGetProgramResourcefvNV)
15849 #define glInterpolatePathsNV GLEW_GET_FUN(__glewInterpolatePathsNV)
15850 #define glIsPathNV GLEW_GET_FUN(__glewIsPathNV)
15851 #define glIsPointInFillPathNV GLEW_GET_FUN(__glewIsPointInFillPathNV)
15852 #define glIsPointInStrokePathNV GLEW_GET_FUN(__glewIsPointInStrokePathNV)
15853 #define glMatrixLoad3x2fNV GLEW_GET_FUN(__glewMatrixLoad3x2fNV)
15854 #define glMatrixLoad3x3fNV GLEW_GET_FUN(__glewMatrixLoad3x3fNV)
15855 #define glMatrixLoadTranspose3x3fNV GLEW_GET_FUN(__glewMatrixLoadTranspose3x3fNV)
15856 #define glMatrixMult3x2fNV GLEW_GET_FUN(__glewMatrixMult3x2fNV)
15857 #define glMatrixMult3x3fNV GLEW_GET_FUN(__glewMatrixMult3x3fNV)
15858 #define glMatrixMultTranspose3x3fNV GLEW_GET_FUN(__glewMatrixMultTranspose3x3fNV)
15859 #define glPathColorGenNV GLEW_GET_FUN(__glewPathColorGenNV)
15860 #define glPathCommandsNV GLEW_GET_FUN(__glewPathCommandsNV)
15861 #define glPathCoordsNV GLEW_GET_FUN(__glewPathCoordsNV)
15862 #define glPathCoverDepthFuncNV GLEW_GET_FUN(__glewPathCoverDepthFuncNV)
15863 #define glPathDashArrayNV GLEW_GET_FUN(__glewPathDashArrayNV)
15864 #define glPathFogGenNV GLEW_GET_FUN(__glewPathFogGenNV)
15865 #define glPathGlyphIndexArrayNV GLEW_GET_FUN(__glewPathGlyphIndexArrayNV)
15866 #define glPathGlyphIndexRangeNV GLEW_GET_FUN(__glewPathGlyphIndexRangeNV)
15867 #define glPathGlyphRangeNV GLEW_GET_FUN(__glewPathGlyphRangeNV)
15868 #define glPathGlyphsNV GLEW_GET_FUN(__glewPathGlyphsNV)
15869 #define glPathMemoryGlyphIndexArrayNV GLEW_GET_FUN(__glewPathMemoryGlyphIndexArrayNV)
15870 #define glPathParameterfNV GLEW_GET_FUN(__glewPathParameterfNV)
15871 #define glPathParameterfvNV GLEW_GET_FUN(__glewPathParameterfvNV)
15872 #define glPathParameteriNV GLEW_GET_FUN(__glewPathParameteriNV)
15873 #define glPathParameterivNV GLEW_GET_FUN(__glewPathParameterivNV)
15874 #define glPathStencilDepthOffsetNV GLEW_GET_FUN(__glewPathStencilDepthOffsetNV)
15875 #define glPathStencilFuncNV GLEW_GET_FUN(__glewPathStencilFuncNV)
15876 #define glPathStringNV GLEW_GET_FUN(__glewPathStringNV)
15877 #define glPathSubCommandsNV GLEW_GET_FUN(__glewPathSubCommandsNV)
15878 #define glPathSubCoordsNV GLEW_GET_FUN(__glewPathSubCoordsNV)
15879 #define glPathTexGenNV GLEW_GET_FUN(__glewPathTexGenNV)
15880 #define glPointAlongPathNV GLEW_GET_FUN(__glewPointAlongPathNV)
15881 #define glProgramPathFragmentInputGenNV GLEW_GET_FUN(__glewProgramPathFragmentInputGenNV)
15882 #define glStencilFillPathInstancedNV GLEW_GET_FUN(__glewStencilFillPathInstancedNV)
15883 #define glStencilFillPathNV GLEW_GET_FUN(__glewStencilFillPathNV)
15884 #define glStencilStrokePathInstancedNV GLEW_GET_FUN(__glewStencilStrokePathInstancedNV)
15885 #define glStencilStrokePathNV GLEW_GET_FUN(__glewStencilStrokePathNV)
15886 #define glStencilThenCoverFillPathInstancedNV GLEW_GET_FUN(__glewStencilThenCoverFillPathInstancedNV)
15887 #define glStencilThenCoverFillPathNV GLEW_GET_FUN(__glewStencilThenCoverFillPathNV)
15888 #define glStencilThenCoverStrokePathInstancedNV GLEW_GET_FUN(__glewStencilThenCoverStrokePathInstancedNV)
15889 #define glStencilThenCoverStrokePathNV GLEW_GET_FUN(__glewStencilThenCoverStrokePathNV)
15890 #define glTransformPathNV GLEW_GET_FUN(__glewTransformPathNV)
15891 #define glWeightPathsNV GLEW_GET_FUN(__glewWeightPathsNV)
15892 
15893 #define GLEW_NV_path_rendering GLEW_GET_VAR(__GLEW_NV_path_rendering)
15894 
15895 #endif /* GL_NV_path_rendering */
15896 
15897 /* -------------------- GL_NV_path_rendering_shared_edge ------------------- */
15898 
15899 #ifndef GL_NV_path_rendering_shared_edge
15900 #define GL_NV_path_rendering_shared_edge 1
15901 
15902 #define GL_SHARED_EDGE_NV 0xC0
15903 
15904 #define GLEW_NV_path_rendering_shared_edge GLEW_GET_VAR(__GLEW_NV_path_rendering_shared_edge)
15905 
15906 #endif /* GL_NV_path_rendering_shared_edge */
15907 
15908 /* ----------------------- GL_NV_pixel_buffer_object ----------------------- */
15909 
15910 #ifndef GL_NV_pixel_buffer_object
15911 #define GL_NV_pixel_buffer_object 1
15912 
15913 #define GL_PIXEL_PACK_BUFFER_NV 0x88EB
15914 #define GL_PIXEL_UNPACK_BUFFER_NV 0x88EC
15915 #define GL_PIXEL_PACK_BUFFER_BINDING_NV 0x88ED
15916 #define GL_PIXEL_UNPACK_BUFFER_BINDING_NV 0x88EF
15917 
15918 #define GLEW_NV_pixel_buffer_object GLEW_GET_VAR(__GLEW_NV_pixel_buffer_object)
15919 
15920 #endif /* GL_NV_pixel_buffer_object */
15921 
15922 /* ------------------------- GL_NV_pixel_data_range ------------------------ */
15923 
15924 #ifndef GL_NV_pixel_data_range
15925 #define GL_NV_pixel_data_range 1
15926 
15927 #define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878
15928 #define GL_READ_PIXEL_DATA_RANGE_NV 0x8879
15929 #define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A
15930 #define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B
15931 #define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C
15932 #define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D
15933 
15934 typedef void (GLAPIENTRY * PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target);
15935 typedef void (GLAPIENTRY * PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, void *pointer);
15936 
15937 #define glFlushPixelDataRangeNV GLEW_GET_FUN(__glewFlushPixelDataRangeNV)
15938 #define glPixelDataRangeNV GLEW_GET_FUN(__glewPixelDataRangeNV)
15939 
15940 #define GLEW_NV_pixel_data_range GLEW_GET_VAR(__GLEW_NV_pixel_data_range)
15941 
15942 #endif /* GL_NV_pixel_data_range */
15943 
15944 /* ------------------------- GL_NV_platform_binary ------------------------- */
15945 
15946 #ifndef GL_NV_platform_binary
15947 #define GL_NV_platform_binary 1
15948 
15949 #define GL_NVIDIA_PLATFORM_BINARY_NV 0x890B
15950 
15951 #define GLEW_NV_platform_binary GLEW_GET_VAR(__GLEW_NV_platform_binary)
15952 
15953 #endif /* GL_NV_platform_binary */
15954 
15955 /* --------------------------- GL_NV_point_sprite -------------------------- */
15956 
15957 #ifndef GL_NV_point_sprite
15958 #define GL_NV_point_sprite 1
15959 
15960 #define GL_POINT_SPRITE_NV 0x8861
15961 #define GL_COORD_REPLACE_NV 0x8862
15962 #define GL_POINT_SPRITE_R_MODE_NV 0x8863
15963 
15964 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param);
15965 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint* params);
15966 
15967 #define glPointParameteriNV GLEW_GET_FUN(__glewPointParameteriNV)
15968 #define glPointParameterivNV GLEW_GET_FUN(__glewPointParameterivNV)
15969 
15970 #define GLEW_NV_point_sprite GLEW_GET_VAR(__GLEW_NV_point_sprite)
15971 
15972 #endif /* GL_NV_point_sprite */
15973 
15974 /* --------------------------- GL_NV_polygon_mode -------------------------- */
15975 
15976 #ifndef GL_NV_polygon_mode
15977 #define GL_NV_polygon_mode 1
15978 
15979 #define GL_POLYGON_MODE_NV 0x0B40
15980 #define GL_POINT_NV 0x1B00
15981 #define GL_LINE_NV 0x1B01
15982 #define GL_FILL_NV 0x1B02
15983 #define GL_POLYGON_OFFSET_POINT_NV 0x2A01
15984 #define GL_POLYGON_OFFSET_LINE_NV 0x2A02
15985 
15986 typedef void (GLAPIENTRY * PFNGLPOLYGONMODENVPROC) (GLenum face, GLenum mode);
15987 
15988 #define glPolygonModeNV GLEW_GET_FUN(__glewPolygonModeNV)
15989 
15990 #define GLEW_NV_polygon_mode GLEW_GET_VAR(__GLEW_NV_polygon_mode)
15991 
15992 #endif /* GL_NV_polygon_mode */
15993 
15994 /* -------------------------- GL_NV_present_video -------------------------- */
15995 
15996 #ifndef GL_NV_present_video
15997 #define GL_NV_present_video 1
15998 
15999 #define GL_FRAME_NV 0x8E26
16000 #define GL_FIELDS_NV 0x8E27
16001 #define GL_CURRENT_TIME_NV 0x8E28
16002 #define GL_NUM_FILL_STREAMS_NV 0x8E29
16003 #define GL_PRESENT_TIME_NV 0x8E2A
16004 #define GL_PRESENT_DURATION_NV 0x8E2B
16005 
16006 typedef void (GLAPIENTRY * PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT* params);
16007 typedef void (GLAPIENTRY * PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint* params);
16008 typedef void (GLAPIENTRY * PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT* params);
16009 typedef void (GLAPIENTRY * PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint* params);
16010 typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3);
16011 typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1);
16012 
16013 #define glGetVideoi64vNV GLEW_GET_FUN(__glewGetVideoi64vNV)
16014 #define glGetVideoivNV GLEW_GET_FUN(__glewGetVideoivNV)
16015 #define glGetVideoui64vNV GLEW_GET_FUN(__glewGetVideoui64vNV)
16016 #define glGetVideouivNV GLEW_GET_FUN(__glewGetVideouivNV)
16017 #define glPresentFrameDualFillNV GLEW_GET_FUN(__glewPresentFrameDualFillNV)
16018 #define glPresentFrameKeyedNV GLEW_GET_FUN(__glewPresentFrameKeyedNV)
16019 
16020 #define GLEW_NV_present_video GLEW_GET_VAR(__GLEW_NV_present_video)
16021 
16022 #endif /* GL_NV_present_video */
16023 
16024 /* ------------------------ GL_NV_primitive_restart ------------------------ */
16025 
16026 #ifndef GL_NV_primitive_restart
16027 #define GL_NV_primitive_restart 1
16028 
16029 #define GL_PRIMITIVE_RESTART_NV 0x8558
16030 #define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559
16031 
16032 typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index);
16033 typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTNVPROC) (void);
16034 
16035 #define glPrimitiveRestartIndexNV GLEW_GET_FUN(__glewPrimitiveRestartIndexNV)
16036 #define glPrimitiveRestartNV GLEW_GET_FUN(__glewPrimitiveRestartNV)
16037 
16038 #define GLEW_NV_primitive_restart GLEW_GET_VAR(__GLEW_NV_primitive_restart)
16039 
16040 #endif /* GL_NV_primitive_restart */
16041 
16042 /* ---------------------------- GL_NV_read_depth --------------------------- */
16043 
16044 #ifndef GL_NV_read_depth
16045 #define GL_NV_read_depth 1
16046 
16047 #define GLEW_NV_read_depth GLEW_GET_VAR(__GLEW_NV_read_depth)
16048 
16049 #endif /* GL_NV_read_depth */
16050 
16051 /* ------------------------ GL_NV_read_depth_stencil ----------------------- */
16052 
16053 #ifndef GL_NV_read_depth_stencil
16054 #define GL_NV_read_depth_stencil 1
16055 
16056 #define GLEW_NV_read_depth_stencil GLEW_GET_VAR(__GLEW_NV_read_depth_stencil)
16057 
16058 #endif /* GL_NV_read_depth_stencil */
16059 
16060 /* --------------------------- GL_NV_read_stencil -------------------------- */
16061 
16062 #ifndef GL_NV_read_stencil
16063 #define GL_NV_read_stencil 1
16064 
16065 #define GLEW_NV_read_stencil GLEW_GET_VAR(__GLEW_NV_read_stencil)
16066 
16067 #endif /* GL_NV_read_stencil */
16068 
16069 /* ------------------------ GL_NV_register_combiners ----------------------- */
16070 
16071 #ifndef GL_NV_register_combiners
16072 #define GL_NV_register_combiners 1
16073 
16074 #define GL_REGISTER_COMBINERS_NV 0x8522
16075 #define GL_VARIABLE_A_NV 0x8523
16076 #define GL_VARIABLE_B_NV 0x8524
16077 #define GL_VARIABLE_C_NV 0x8525
16078 #define GL_VARIABLE_D_NV 0x8526
16079 #define GL_VARIABLE_E_NV 0x8527
16080 #define GL_VARIABLE_F_NV 0x8528
16081 #define GL_VARIABLE_G_NV 0x8529
16082 #define GL_CONSTANT_COLOR0_NV 0x852A
16083 #define GL_CONSTANT_COLOR1_NV 0x852B
16084 #define GL_PRIMARY_COLOR_NV 0x852C
16085 #define GL_SECONDARY_COLOR_NV 0x852D
16086 #define GL_SPARE0_NV 0x852E
16087 #define GL_SPARE1_NV 0x852F
16088 #define GL_DISCARD_NV 0x8530
16089 #define GL_E_TIMES_F_NV 0x8531
16090 #define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532
16091 #define GL_UNSIGNED_IDENTITY_NV 0x8536
16092 #define GL_UNSIGNED_INVERT_NV 0x8537
16093 #define GL_EXPAND_NORMAL_NV 0x8538
16094 #define GL_EXPAND_NEGATE_NV 0x8539
16095 #define GL_HALF_BIAS_NORMAL_NV 0x853A
16096 #define GL_HALF_BIAS_NEGATE_NV 0x853B
16097 #define GL_SIGNED_IDENTITY_NV 0x853C
16098 #define GL_SIGNED_NEGATE_NV 0x853D
16099 #define GL_SCALE_BY_TWO_NV 0x853E
16100 #define GL_SCALE_BY_FOUR_NV 0x853F
16101 #define GL_SCALE_BY_ONE_HALF_NV 0x8540
16102 #define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541
16103 #define GL_COMBINER_INPUT_NV 0x8542
16104 #define GL_COMBINER_MAPPING_NV 0x8543
16105 #define GL_COMBINER_COMPONENT_USAGE_NV 0x8544
16106 #define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545
16107 #define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546
16108 #define GL_COMBINER_MUX_SUM_NV 0x8547
16109 #define GL_COMBINER_SCALE_NV 0x8548
16110 #define GL_COMBINER_BIAS_NV 0x8549
16111 #define GL_COMBINER_AB_OUTPUT_NV 0x854A
16112 #define GL_COMBINER_CD_OUTPUT_NV 0x854B
16113 #define GL_COMBINER_SUM_OUTPUT_NV 0x854C
16114 #define GL_MAX_GENERAL_COMBINERS_NV 0x854D
16115 #define GL_NUM_GENERAL_COMBINERS_NV 0x854E
16116 #define GL_COLOR_SUM_CLAMP_NV 0x854F
16117 #define GL_COMBINER0_NV 0x8550
16118 #define GL_COMBINER1_NV 0x8551
16119 #define GL_COMBINER2_NV 0x8552
16120 #define GL_COMBINER3_NV 0x8553
16121 #define GL_COMBINER4_NV 0x8554
16122 #define GL_COMBINER5_NV 0x8555
16123 #define GL_COMBINER6_NV 0x8556
16124 #define GL_COMBINER7_NV 0x8557
16125 
16126 typedef void (GLAPIENTRY * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
16127 typedef void (GLAPIENTRY * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
16128 typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param);
16129 typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat* params);
16130 typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param);
16131 typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint* params);
16132 typedef void (GLAPIENTRY * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
16133 typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat* params);
16134 typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint* params);
16135 typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat* params);
16136 typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint* params);
16137 typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat* params);
16138 typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint* params);
16139 
16140 #define glCombinerInputNV GLEW_GET_FUN(__glewCombinerInputNV)
16141 #define glCombinerOutputNV GLEW_GET_FUN(__glewCombinerOutputNV)
16142 #define glCombinerParameterfNV GLEW_GET_FUN(__glewCombinerParameterfNV)
16143 #define glCombinerParameterfvNV GLEW_GET_FUN(__glewCombinerParameterfvNV)
16144 #define glCombinerParameteriNV GLEW_GET_FUN(__glewCombinerParameteriNV)
16145 #define glCombinerParameterivNV GLEW_GET_FUN(__glewCombinerParameterivNV)
16146 #define glFinalCombinerInputNV GLEW_GET_FUN(__glewFinalCombinerInputNV)
16147 #define glGetCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetCombinerInputParameterfvNV)
16148 #define glGetCombinerInputParameterivNV GLEW_GET_FUN(__glewGetCombinerInputParameterivNV)
16149 #define glGetCombinerOutputParameterfvNV GLEW_GET_FUN(__glewGetCombinerOutputParameterfvNV)
16150 #define glGetCombinerOutputParameterivNV GLEW_GET_FUN(__glewGetCombinerOutputParameterivNV)
16151 #define glGetFinalCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterfvNV)
16152 #define glGetFinalCombinerInputParameterivNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterivNV)
16153 
16154 #define GLEW_NV_register_combiners GLEW_GET_VAR(__GLEW_NV_register_combiners)
16155 
16156 #endif /* GL_NV_register_combiners */
16157 
16158 /* ----------------------- GL_NV_register_combiners2 ----------------------- */
16159 
16160 #ifndef GL_NV_register_combiners2
16161 #define GL_NV_register_combiners2 1
16162 
16163 #define GL_PER_STAGE_CONSTANTS_NV 0x8535
16164 
16165 typedef void (GLAPIENTRY * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat* params);
16166 typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat* params);
16167 
16168 #define glCombinerStageParameterfvNV GLEW_GET_FUN(__glewCombinerStageParameterfvNV)
16169 #define glGetCombinerStageParameterfvNV GLEW_GET_FUN(__glewGetCombinerStageParameterfvNV)
16170 
16171 #define GLEW_NV_register_combiners2 GLEW_GET_VAR(__GLEW_NV_register_combiners2)
16172 
16173 #endif /* GL_NV_register_combiners2 */
16174 
16175 /* ------------------ GL_NV_robustness_video_memory_purge ------------------ */
16176 
16177 #ifndef GL_NV_robustness_video_memory_purge
16178 #define GL_NV_robustness_video_memory_purge 1
16179 
16180 #define GL_EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C
16181 #define GL_PURGED_CONTEXT_RESET_NV 0x92BB
16182 
16183 #define GLEW_NV_robustness_video_memory_purge GLEW_GET_VAR(__GLEW_NV_robustness_video_memory_purge)
16184 
16185 #endif /* GL_NV_robustness_video_memory_purge */
16186 
16187 /* --------------------------- GL_NV_sRGB_formats -------------------------- */
16188 
16189 #ifndef GL_NV_sRGB_formats
16190 #define GL_NV_sRGB_formats 1
16191 
16192 #define GL_ETC1_SRGB8_NV 0x88EE
16193 #define GL_SRGB8_NV 0x8C41
16194 #define GL_SLUMINANCE_ALPHA_NV 0x8C44
16195 #define GL_SLUMINANCE8_ALPHA8_NV 0x8C45
16196 #define GL_SLUMINANCE_NV 0x8C46
16197 #define GL_SLUMINANCE8_NV 0x8C47
16198 #define GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C
16199 #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D
16200 #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E
16201 #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F
16202 
16203 #define GLEW_NV_sRGB_formats GLEW_GET_VAR(__GLEW_NV_sRGB_formats)
16204 
16205 #endif /* GL_NV_sRGB_formats */
16206 
16207 /* ------------------------- GL_NV_sample_locations ------------------------ */
16208 
16209 #ifndef GL_NV_sample_locations
16210 #define GL_NV_sample_locations 1
16211 
16212 #define GL_SAMPLE_LOCATION_NV 0x8E50
16213 #define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D
16214 #define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E
16215 #define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F
16216 #define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340
16217 #define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341
16218 #define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342
16219 #define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343
16220 
16221 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat* v);
16222 typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v);
16223 
16224 #define glFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewFramebufferSampleLocationsfvNV)
16225 #define glNamedFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewNamedFramebufferSampleLocationsfvNV)
16226 
16227 #define GLEW_NV_sample_locations GLEW_GET_VAR(__GLEW_NV_sample_locations)
16228 
16229 #endif /* GL_NV_sample_locations */
16230 
16231 /* ------------------ GL_NV_sample_mask_override_coverage ------------------ */
16232 
16233 #ifndef GL_NV_sample_mask_override_coverage
16234 #define GL_NV_sample_mask_override_coverage 1
16235 
16236 #define GLEW_NV_sample_mask_override_coverage GLEW_GET_VAR(__GLEW_NV_sample_mask_override_coverage)
16237 
16238 #endif /* GL_NV_sample_mask_override_coverage */
16239 
16240 /* ---------------------- GL_NV_shader_atomic_counters --------------------- */
16241 
16242 #ifndef GL_NV_shader_atomic_counters
16243 #define GL_NV_shader_atomic_counters 1
16244 
16245 #define GLEW_NV_shader_atomic_counters GLEW_GET_VAR(__GLEW_NV_shader_atomic_counters)
16246 
16247 #endif /* GL_NV_shader_atomic_counters */
16248 
16249 /* ----------------------- GL_NV_shader_atomic_float ----------------------- */
16250 
16251 #ifndef GL_NV_shader_atomic_float
16252 #define GL_NV_shader_atomic_float 1
16253 
16254 #define GLEW_NV_shader_atomic_float GLEW_GET_VAR(__GLEW_NV_shader_atomic_float)
16255 
16256 #endif /* GL_NV_shader_atomic_float */
16257 
16258 /* ---------------------- GL_NV_shader_atomic_float64 ---------------------- */
16259 
16260 #ifndef GL_NV_shader_atomic_float64
16261 #define GL_NV_shader_atomic_float64 1
16262 
16263 #define GLEW_NV_shader_atomic_float64 GLEW_GET_VAR(__GLEW_NV_shader_atomic_float64)
16264 
16265 #endif /* GL_NV_shader_atomic_float64 */
16266 
16267 /* -------------------- GL_NV_shader_atomic_fp16_vector -------------------- */
16268 
16269 #ifndef GL_NV_shader_atomic_fp16_vector
16270 #define GL_NV_shader_atomic_fp16_vector 1
16271 
16272 #define GLEW_NV_shader_atomic_fp16_vector GLEW_GET_VAR(__GLEW_NV_shader_atomic_fp16_vector)
16273 
16274 #endif /* GL_NV_shader_atomic_fp16_vector */
16275 
16276 /* ----------------------- GL_NV_shader_atomic_int64 ----------------------- */
16277 
16278 #ifndef GL_NV_shader_atomic_int64
16279 #define GL_NV_shader_atomic_int64 1
16280 
16281 #define GLEW_NV_shader_atomic_int64 GLEW_GET_VAR(__GLEW_NV_shader_atomic_int64)
16282 
16283 #endif /* GL_NV_shader_atomic_int64 */
16284 
16285 /* ------------------------ GL_NV_shader_buffer_load ----------------------- */
16286 
16287 #ifndef GL_NV_shader_buffer_load
16288 #define GL_NV_shader_buffer_load 1
16289 
16290 #define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D
16291 #define GL_GPU_ADDRESS_NV 0x8F34
16292 #define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35
16293 
16294 typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT* params);
16295 typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT* result);
16296 typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT* params);
16297 typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERRESIDENTNVPROC) (GLenum target);
16298 typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer);
16299 typedef void (GLAPIENTRY * PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target);
16300 typedef void (GLAPIENTRY * PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access);
16301 typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer);
16302 typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access);
16303 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value);
16304 typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value);
16305 typedef void (GLAPIENTRY * PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value);
16306 typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value);
16307 
16308 #define glGetBufferParameterui64vNV GLEW_GET_FUN(__glewGetBufferParameterui64vNV)
16309 #define glGetIntegerui64vNV GLEW_GET_FUN(__glewGetIntegerui64vNV)
16310 #define glGetNamedBufferParameterui64vNV GLEW_GET_FUN(__glewGetNamedBufferParameterui64vNV)
16311 #define glIsBufferResidentNV GLEW_GET_FUN(__glewIsBufferResidentNV)
16312 #define glIsNamedBufferResidentNV GLEW_GET_FUN(__glewIsNamedBufferResidentNV)
16313 #define glMakeBufferNonResidentNV GLEW_GET_FUN(__glewMakeBufferNonResidentNV)
16314 #define glMakeBufferResidentNV GLEW_GET_FUN(__glewMakeBufferResidentNV)
16315 #define glMakeNamedBufferNonResidentNV GLEW_GET_FUN(__glewMakeNamedBufferNonResidentNV)
16316 #define glMakeNamedBufferResidentNV GLEW_GET_FUN(__glewMakeNamedBufferResidentNV)
16317 #define glProgramUniformui64NV GLEW_GET_FUN(__glewProgramUniformui64NV)
16318 #define glProgramUniformui64vNV GLEW_GET_FUN(__glewProgramUniformui64vNV)
16319 #define glUniformui64NV GLEW_GET_FUN(__glewUniformui64NV)
16320 #define glUniformui64vNV GLEW_GET_FUN(__glewUniformui64vNV)
16321 
16322 #define GLEW_NV_shader_buffer_load GLEW_GET_VAR(__GLEW_NV_shader_buffer_load)
16323 
16324 #endif /* GL_NV_shader_buffer_load */
16325 
16326 /* ---------------- GL_NV_shader_noperspective_interpolation --------------- */
16327 
16328 #ifndef GL_NV_shader_noperspective_interpolation
16329 #define GL_NV_shader_noperspective_interpolation 1
16330 
16331 #define GLEW_NV_shader_noperspective_interpolation GLEW_GET_VAR(__GLEW_NV_shader_noperspective_interpolation)
16332 
16333 #endif /* GL_NV_shader_noperspective_interpolation */
16334 
16335 /* ------------------- GL_NV_shader_storage_buffer_object ------------------ */
16336 
16337 #ifndef GL_NV_shader_storage_buffer_object
16338 #define GL_NV_shader_storage_buffer_object 1
16339 
16340 #define GLEW_NV_shader_storage_buffer_object GLEW_GET_VAR(__GLEW_NV_shader_storage_buffer_object)
16341 
16342 #endif /* GL_NV_shader_storage_buffer_object */
16343 
16344 /* ----------------------- GL_NV_shader_thread_group ----------------------- */
16345 
16346 #ifndef GL_NV_shader_thread_group
16347 #define GL_NV_shader_thread_group 1
16348 
16349 #define GL_WARP_SIZE_NV 0x9339
16350 #define GL_WARPS_PER_SM_NV 0x933A
16351 #define GL_SM_COUNT_NV 0x933B
16352 
16353 #define GLEW_NV_shader_thread_group GLEW_GET_VAR(__GLEW_NV_shader_thread_group)
16354 
16355 #endif /* GL_NV_shader_thread_group */
16356 
16357 /* ---------------------- GL_NV_shader_thread_shuffle ---------------------- */
16358 
16359 #ifndef GL_NV_shader_thread_shuffle
16360 #define GL_NV_shader_thread_shuffle 1
16361 
16362 #define GLEW_NV_shader_thread_shuffle GLEW_GET_VAR(__GLEW_NV_shader_thread_shuffle)
16363 
16364 #endif /* GL_NV_shader_thread_shuffle */
16365 
16366 /* ---------------------- GL_NV_shadow_samplers_array ---------------------- */
16367 
16368 #ifndef GL_NV_shadow_samplers_array
16369 #define GL_NV_shadow_samplers_array 1
16370 
16371 #define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4
16372 
16373 #define GLEW_NV_shadow_samplers_array GLEW_GET_VAR(__GLEW_NV_shadow_samplers_array)
16374 
16375 #endif /* GL_NV_shadow_samplers_array */
16376 
16377 /* ----------------------- GL_NV_shadow_samplers_cube ---------------------- */
16378 
16379 #ifndef GL_NV_shadow_samplers_cube
16380 #define GL_NV_shadow_samplers_cube 1
16381 
16382 #define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5
16383 
16384 #define GLEW_NV_shadow_samplers_cube GLEW_GET_VAR(__GLEW_NV_shadow_samplers_cube)
16385 
16386 #endif /* GL_NV_shadow_samplers_cube */
16387 
16388 /* ---------------------- GL_NV_stereo_view_rendering ---------------------- */
16389 
16390 #ifndef GL_NV_stereo_view_rendering
16391 #define GL_NV_stereo_view_rendering 1
16392 
16393 #define GLEW_NV_stereo_view_rendering GLEW_GET_VAR(__GLEW_NV_stereo_view_rendering)
16394 
16395 #endif /* GL_NV_stereo_view_rendering */
16396 
16397 /* ---------------------- GL_NV_tessellation_program5 ---------------------- */
16398 
16399 #ifndef GL_NV_tessellation_program5
16400 #define GL_NV_tessellation_program5 1
16401 
16402 #define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8
16403 #define GL_TESS_CONTROL_PROGRAM_NV 0x891E
16404 #define GL_TESS_EVALUATION_PROGRAM_NV 0x891F
16405 #define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74
16406 #define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75
16407 
16408 #define GLEW_NV_tessellation_program5 GLEW_GET_VAR(__GLEW_NV_tessellation_program5)
16409 
16410 #endif /* GL_NV_tessellation_program5 */
16411 
16412 /* -------------------------- GL_NV_texgen_emboss -------------------------- */
16413 
16414 #ifndef GL_NV_texgen_emboss
16415 #define GL_NV_texgen_emboss 1
16416 
16417 #define GL_EMBOSS_LIGHT_NV 0x855D
16418 #define GL_EMBOSS_CONSTANT_NV 0x855E
16419 #define GL_EMBOSS_MAP_NV 0x855F
16420 
16421 #define GLEW_NV_texgen_emboss GLEW_GET_VAR(__GLEW_NV_texgen_emboss)
16422 
16423 #endif /* GL_NV_texgen_emboss */
16424 
16425 /* ------------------------ GL_NV_texgen_reflection ------------------------ */
16426 
16427 #ifndef GL_NV_texgen_reflection
16428 #define GL_NV_texgen_reflection 1
16429 
16430 #define GL_NORMAL_MAP_NV 0x8511
16431 #define GL_REFLECTION_MAP_NV 0x8512
16432 
16433 #define GLEW_NV_texgen_reflection GLEW_GET_VAR(__GLEW_NV_texgen_reflection)
16434 
16435 #endif /* GL_NV_texgen_reflection */
16436 
16437 /* -------------------------- GL_NV_texture_array -------------------------- */
16438 
16439 #ifndef GL_NV_texture_array
16440 #define GL_NV_texture_array 1
16441 
16442 #define GL_UNPACK_SKIP_IMAGES_NV 0x806D
16443 #define GL_UNPACK_IMAGE_HEIGHT_NV 0x806E
16444 #define GL_MAX_ARRAY_TEXTURE_LAYERS_NV 0x88FF
16445 #define GL_TEXTURE_2D_ARRAY_NV 0x8C1A
16446 #define GL_TEXTURE_BINDING_2D_ARRAY_NV 0x8C1D
16447 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_NV 0x8CD4
16448 #define GL_SAMPLER_2D_ARRAY_NV 0x8DC1
16449 
16450 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DNVPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
16451 typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
16452 typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DNVPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
16453 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERNVPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
16454 typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DNVPROC) (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
16455 typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DNVPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
16456 
16457 #define glCompressedTexImage3DNV GLEW_GET_FUN(__glewCompressedTexImage3DNV)
16458 #define glCompressedTexSubImage3DNV GLEW_GET_FUN(__glewCompressedTexSubImage3DNV)
16459 #define glCopyTexSubImage3DNV GLEW_GET_FUN(__glewCopyTexSubImage3DNV)
16460 #define glFramebufferTextureLayerNV GLEW_GET_FUN(__glewFramebufferTextureLayerNV)
16461 #define glTexImage3DNV GLEW_GET_FUN(__glewTexImage3DNV)
16462 #define glTexSubImage3DNV GLEW_GET_FUN(__glewTexSubImage3DNV)
16463 
16464 #define GLEW_NV_texture_array GLEW_GET_VAR(__GLEW_NV_texture_array)
16465 
16466 #endif /* GL_NV_texture_array */
16467 
16468 /* ------------------------- GL_NV_texture_barrier ------------------------- */
16469 
16470 #ifndef GL_NV_texture_barrier
16471 #define GL_NV_texture_barrier 1
16472 
16473 typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERNVPROC) (void);
16474 
16475 #define glTextureBarrierNV GLEW_GET_FUN(__glewTextureBarrierNV)
16476 
16477 #define GLEW_NV_texture_barrier GLEW_GET_VAR(__GLEW_NV_texture_barrier)
16478 
16479 #endif /* GL_NV_texture_barrier */
16480 
16481 /* ----------------------- GL_NV_texture_border_clamp ---------------------- */
16482 
16483 #ifndef GL_NV_texture_border_clamp
16484 #define GL_NV_texture_border_clamp 1
16485 
16486 #define GL_TEXTURE_BORDER_COLOR_NV 0x1004
16487 #define GL_CLAMP_TO_BORDER_NV 0x812D
16488 
16489 #define GLEW_NV_texture_border_clamp GLEW_GET_VAR(__GLEW_NV_texture_border_clamp)
16490 
16491 #endif /* GL_NV_texture_border_clamp */
16492 
16493 /* --------------------- GL_NV_texture_compression_latc -------------------- */
16494 
16495 #ifndef GL_NV_texture_compression_latc
16496 #define GL_NV_texture_compression_latc 1
16497 
16498 #define GL_COMPRESSED_LUMINANCE_LATC1_NV 0x8C70
16499 #define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_NV 0x8C71
16500 #define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_NV 0x8C72
16501 #define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_NV 0x8C73
16502 
16503 #define GLEW_NV_texture_compression_latc GLEW_GET_VAR(__GLEW_NV_texture_compression_latc)
16504 
16505 #endif /* GL_NV_texture_compression_latc */
16506 
16507 /* --------------------- GL_NV_texture_compression_s3tc -------------------- */
16508 
16509 #ifndef GL_NV_texture_compression_s3tc
16510 #define GL_NV_texture_compression_s3tc 1
16511 
16512 #define GL_COMPRESSED_RGB_S3TC_DXT1_NV 0x83F0
16513 #define GL_COMPRESSED_RGBA_S3TC_DXT1_NV 0x83F1
16514 #define GL_COMPRESSED_RGBA_S3TC_DXT3_NV 0x83F2
16515 #define GL_COMPRESSED_RGBA_S3TC_DXT5_NV 0x83F3
16516 
16517 #define GLEW_NV_texture_compression_s3tc GLEW_GET_VAR(__GLEW_NV_texture_compression_s3tc)
16518 
16519 #endif /* GL_NV_texture_compression_s3tc */
16520 
16521 /* ----------------- GL_NV_texture_compression_s3tc_update ----------------- */
16522 
16523 #ifndef GL_NV_texture_compression_s3tc_update
16524 #define GL_NV_texture_compression_s3tc_update 1
16525 
16526 #define GLEW_NV_texture_compression_s3tc_update GLEW_GET_VAR(__GLEW_NV_texture_compression_s3tc_update)
16527 
16528 #endif /* GL_NV_texture_compression_s3tc_update */
16529 
16530 /* --------------------- GL_NV_texture_compression_vtc --------------------- */
16531 
16532 #ifndef GL_NV_texture_compression_vtc
16533 #define GL_NV_texture_compression_vtc 1
16534 
16535 #define GLEW_NV_texture_compression_vtc GLEW_GET_VAR(__GLEW_NV_texture_compression_vtc)
16536 
16537 #endif /* GL_NV_texture_compression_vtc */
16538 
16539 /* ----------------------- GL_NV_texture_env_combine4 ---------------------- */
16540 
16541 #ifndef GL_NV_texture_env_combine4
16542 #define GL_NV_texture_env_combine4 1
16543 
16544 #define GL_COMBINE4_NV 0x8503
16545 #define GL_SOURCE3_RGB_NV 0x8583
16546 #define GL_SOURCE3_ALPHA_NV 0x858B
16547 #define GL_OPERAND3_RGB_NV 0x8593
16548 #define GL_OPERAND3_ALPHA_NV 0x859B
16549 
16550 #define GLEW_NV_texture_env_combine4 GLEW_GET_VAR(__GLEW_NV_texture_env_combine4)
16551 
16552 #endif /* GL_NV_texture_env_combine4 */
16553 
16554 /* ---------------------- GL_NV_texture_expand_normal ---------------------- */
16555 
16556 #ifndef GL_NV_texture_expand_normal
16557 #define GL_NV_texture_expand_normal 1
16558 
16559 #define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F
16560 
16561 #define GLEW_NV_texture_expand_normal GLEW_GET_VAR(__GLEW_NV_texture_expand_normal)
16562 
16563 #endif /* GL_NV_texture_expand_normal */
16564 
16565 /* ----------------------- GL_NV_texture_multisample ----------------------- */
16566 
16567 #ifndef GL_NV_texture_multisample
16568 #define GL_NV_texture_multisample 1
16569 
16570 #define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045
16571 #define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046
16572 
16573 typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
16574 typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
16575 typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
16576 typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
16577 typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
16578 typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
16579 
16580 #define glTexImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage2DMultisampleCoverageNV)
16581 #define glTexImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage3DMultisampleCoverageNV)
16582 #define glTextureImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage2DMultisampleCoverageNV)
16583 #define glTextureImage2DMultisampleNV GLEW_GET_FUN(__glewTextureImage2DMultisampleNV)
16584 #define glTextureImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage3DMultisampleCoverageNV)
16585 #define glTextureImage3DMultisampleNV GLEW_GET_FUN(__glewTextureImage3DMultisampleNV)
16586 
16587 #define GLEW_NV_texture_multisample GLEW_GET_VAR(__GLEW_NV_texture_multisample)
16588 
16589 #endif /* GL_NV_texture_multisample */
16590 
16591 /* ---------------------- GL_NV_texture_npot_2D_mipmap --------------------- */
16592 
16593 #ifndef GL_NV_texture_npot_2D_mipmap
16594 #define GL_NV_texture_npot_2D_mipmap 1
16595 
16596 #define GLEW_NV_texture_npot_2D_mipmap GLEW_GET_VAR(__GLEW_NV_texture_npot_2D_mipmap)
16597 
16598 #endif /* GL_NV_texture_npot_2D_mipmap */
16599 
16600 /* ------------------------ GL_NV_texture_rectangle ------------------------ */
16601 
16602 #ifndef GL_NV_texture_rectangle
16603 #define GL_NV_texture_rectangle 1
16604 
16605 #define GL_TEXTURE_RECTANGLE_NV 0x84F5
16606 #define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6
16607 #define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7
16608 #define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8
16609 
16610 #define GLEW_NV_texture_rectangle GLEW_GET_VAR(__GLEW_NV_texture_rectangle)
16611 
16612 #endif /* GL_NV_texture_rectangle */
16613 
16614 /* ------------------- GL_NV_texture_rectangle_compressed ------------------ */
16615 
16616 #ifndef GL_NV_texture_rectangle_compressed
16617 #define GL_NV_texture_rectangle_compressed 1
16618 
16619 #define GLEW_NV_texture_rectangle_compressed GLEW_GET_VAR(__GLEW_NV_texture_rectangle_compressed)
16620 
16621 #endif /* GL_NV_texture_rectangle_compressed */
16622 
16623 /* -------------------------- GL_NV_texture_shader ------------------------- */
16624 
16625 #ifndef GL_NV_texture_shader
16626 #define GL_NV_texture_shader 1
16627 
16628 #define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C
16629 #define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D
16630 #define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E
16631 #define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9
16632 #define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA
16633 #define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB
16634 #define GL_DSDT_MAG_INTENSITY_NV 0x86DC
16635 #define GL_SHADER_CONSISTENT_NV 0x86DD
16636 #define GL_TEXTURE_SHADER_NV 0x86DE
16637 #define GL_SHADER_OPERATION_NV 0x86DF
16638 #define GL_CULL_MODES_NV 0x86E0
16639 #define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1
16640 #define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1
16641 #define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2
16642 #define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2
16643 #define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3
16644 #define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3
16645 #define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4
16646 #define GL_CONST_EYE_NV 0x86E5
16647 #define GL_PASS_THROUGH_NV 0x86E6
16648 #define GL_CULL_FRAGMENT_NV 0x86E7
16649 #define GL_OFFSET_TEXTURE_2D_NV 0x86E8
16650 #define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9
16651 #define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA
16652 #define GL_DOT_PRODUCT_NV 0x86EC
16653 #define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED
16654 #define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE
16655 #define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0
16656 #define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1
16657 #define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2
16658 #define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3
16659 #define GL_HILO_NV 0x86F4
16660 #define GL_DSDT_NV 0x86F5
16661 #define GL_DSDT_MAG_NV 0x86F6
16662 #define GL_DSDT_MAG_VIB_NV 0x86F7
16663 #define GL_HILO16_NV 0x86F8
16664 #define GL_SIGNED_HILO_NV 0x86F9
16665 #define GL_SIGNED_HILO16_NV 0x86FA
16666 #define GL_SIGNED_RGBA_NV 0x86FB
16667 #define GL_SIGNED_RGBA8_NV 0x86FC
16668 #define GL_SIGNED_RGB_NV 0x86FE
16669 #define GL_SIGNED_RGB8_NV 0x86FF
16670 #define GL_SIGNED_LUMINANCE_NV 0x8701
16671 #define GL_SIGNED_LUMINANCE8_NV 0x8702
16672 #define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703
16673 #define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704
16674 #define GL_SIGNED_ALPHA_NV 0x8705
16675 #define GL_SIGNED_ALPHA8_NV 0x8706
16676 #define GL_SIGNED_INTENSITY_NV 0x8707
16677 #define GL_SIGNED_INTENSITY8_NV 0x8708
16678 #define GL_DSDT8_NV 0x8709
16679 #define GL_DSDT8_MAG8_NV 0x870A
16680 #define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B
16681 #define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C
16682 #define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
16683 #define GL_HI_SCALE_NV 0x870E
16684 #define GL_LO_SCALE_NV 0x870F
16685 #define GL_DS_SCALE_NV 0x8710
16686 #define GL_DT_SCALE_NV 0x8711
16687 #define GL_MAGNITUDE_SCALE_NV 0x8712
16688 #define GL_VIBRANCE_SCALE_NV 0x8713
16689 #define GL_HI_BIAS_NV 0x8714
16690 #define GL_LO_BIAS_NV 0x8715
16691 #define GL_DS_BIAS_NV 0x8716
16692 #define GL_DT_BIAS_NV 0x8717
16693 #define GL_MAGNITUDE_BIAS_NV 0x8718
16694 #define GL_VIBRANCE_BIAS_NV 0x8719
16695 #define GL_TEXTURE_BORDER_VALUES_NV 0x871A
16696 #define GL_TEXTURE_HI_SIZE_NV 0x871B
16697 #define GL_TEXTURE_LO_SIZE_NV 0x871C
16698 #define GL_TEXTURE_DS_SIZE_NV 0x871D
16699 #define GL_TEXTURE_DT_SIZE_NV 0x871E
16700 #define GL_TEXTURE_MAG_SIZE_NV 0x871F
16701 
16702 #define GLEW_NV_texture_shader GLEW_GET_VAR(__GLEW_NV_texture_shader)
16703 
16704 #endif /* GL_NV_texture_shader */
16705 
16706 /* ------------------------- GL_NV_texture_shader2 ------------------------- */
16707 
16708 #ifndef GL_NV_texture_shader2
16709 #define GL_NV_texture_shader2 1
16710 
16711 #define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA
16712 #define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB
16713 #define GL_DSDT_MAG_INTENSITY_NV 0x86DC
16714 #define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF
16715 #define GL_HILO_NV 0x86F4
16716 #define GL_DSDT_NV 0x86F5
16717 #define GL_DSDT_MAG_NV 0x86F6
16718 #define GL_DSDT_MAG_VIB_NV 0x86F7
16719 #define GL_HILO16_NV 0x86F8
16720 #define GL_SIGNED_HILO_NV 0x86F9
16721 #define GL_SIGNED_HILO16_NV 0x86FA
16722 #define GL_SIGNED_RGBA_NV 0x86FB
16723 #define GL_SIGNED_RGBA8_NV 0x86FC
16724 #define GL_SIGNED_RGB_NV 0x86FE
16725 #define GL_SIGNED_RGB8_NV 0x86FF
16726 #define GL_SIGNED_LUMINANCE_NV 0x8701
16727 #define GL_SIGNED_LUMINANCE8_NV 0x8702
16728 #define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703
16729 #define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704
16730 #define GL_SIGNED_ALPHA_NV 0x8705
16731 #define GL_SIGNED_ALPHA8_NV 0x8706
16732 #define GL_SIGNED_INTENSITY_NV 0x8707
16733 #define GL_SIGNED_INTENSITY8_NV 0x8708
16734 #define GL_DSDT8_NV 0x8709
16735 #define GL_DSDT8_MAG8_NV 0x870A
16736 #define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B
16737 #define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C
16738 #define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
16739 
16740 #define GLEW_NV_texture_shader2 GLEW_GET_VAR(__GLEW_NV_texture_shader2)
16741 
16742 #endif /* GL_NV_texture_shader2 */
16743 
16744 /* ------------------------- GL_NV_texture_shader3 ------------------------- */
16745 
16746 #ifndef GL_NV_texture_shader3
16747 #define GL_NV_texture_shader3 1
16748 
16749 #define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850
16750 #define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851
16751 #define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852
16752 #define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853
16753 #define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854
16754 #define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855
16755 #define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856
16756 #define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857
16757 #define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858
16758 #define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859
16759 #define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A
16760 #define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B
16761 #define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C
16762 #define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D
16763 #define GL_HILO8_NV 0x885E
16764 #define GL_SIGNED_HILO8_NV 0x885F
16765 #define GL_FORCE_BLUE_TO_ONE_NV 0x8860
16766 
16767 #define GLEW_NV_texture_shader3 GLEW_GET_VAR(__GLEW_NV_texture_shader3)
16768 
16769 #endif /* GL_NV_texture_shader3 */
16770 
16771 /* ------------------------ GL_NV_transform_feedback ----------------------- */
16772 
16773 #ifndef GL_NV_transform_feedback
16774 #define GL_NV_transform_feedback 1
16775 
16776 #define GL_BACK_PRIMARY_COLOR_NV 0x8C77
16777 #define GL_BACK_SECONDARY_COLOR_NV 0x8C78
16778 #define GL_TEXTURE_COORD_NV 0x8C79
16779 #define GL_CLIP_DISTANCE_NV 0x8C7A
16780 #define GL_VERTEX_ID_NV 0x8C7B
16781 #define GL_PRIMITIVE_ID_NV 0x8C7C
16782 #define GL_GENERIC_ATTRIB_NV 0x8C7D
16783 #define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E
16784 #define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F
16785 #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80
16786 #define GL_ACTIVE_VARYINGS_NV 0x8C81
16787 #define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82
16788 #define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83
16789 #define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84
16790 #define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85
16791 #define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86
16792 #define GL_PRIMITIVES_GENERATED_NV 0x8C87
16793 #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88
16794 #define GL_RASTERIZER_DISCARD_NV 0x8C89
16795 #define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A
16796 #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B
16797 #define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C
16798 #define GL_SEPARATE_ATTRIBS_NV 0x8C8D
16799 #define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E
16800 #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F
16801 
16802 typedef void (GLAPIENTRY * PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name);
16803 typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode);
16804 typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer);
16805 typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
16806 typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
16807 typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKNVPROC) (void);
16808 typedef void (GLAPIENTRY * PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
16809 typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location);
16810 typedef GLint (GLAPIENTRY * PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name);
16811 typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode);
16812 typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
16813 
16814 #define glActiveVaryingNV GLEW_GET_FUN(__glewActiveVaryingNV)
16815 #define glBeginTransformFeedbackNV GLEW_GET_FUN(__glewBeginTransformFeedbackNV)
16816 #define glBindBufferBaseNV GLEW_GET_FUN(__glewBindBufferBaseNV)
16817 #define glBindBufferOffsetNV GLEW_GET_FUN(__glewBindBufferOffsetNV)
16818 #define glBindBufferRangeNV GLEW_GET_FUN(__glewBindBufferRangeNV)
16819 #define glEndTransformFeedbackNV GLEW_GET_FUN(__glewEndTransformFeedbackNV)
16820 #define glGetActiveVaryingNV GLEW_GET_FUN(__glewGetActiveVaryingNV)
16821 #define glGetTransformFeedbackVaryingNV GLEW_GET_FUN(__glewGetTransformFeedbackVaryingNV)
16822 #define glGetVaryingLocationNV GLEW_GET_FUN(__glewGetVaryingLocationNV)
16823 #define glTransformFeedbackAttribsNV GLEW_GET_FUN(__glewTransformFeedbackAttribsNV)
16824 #define glTransformFeedbackVaryingsNV GLEW_GET_FUN(__glewTransformFeedbackVaryingsNV)
16825 
16826 #define GLEW_NV_transform_feedback GLEW_GET_VAR(__GLEW_NV_transform_feedback)
16827 
16828 #endif /* GL_NV_transform_feedback */
16829 
16830 /* ----------------------- GL_NV_transform_feedback2 ----------------------- */
16831 
16832 #ifndef GL_NV_transform_feedback2
16833 #define GL_NV_transform_feedback2 1
16834 
16835 #define GL_TRANSFORM_FEEDBACK_NV 0x8E22
16836 #define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23
16837 #define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24
16838 #define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25
16839 
16840 typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id);
16841 typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint* ids);
16842 typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id);
16843 typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint* ids);
16844 typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id);
16845 typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void);
16846 typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void);
16847 
16848 #define glBindTransformFeedbackNV GLEW_GET_FUN(__glewBindTransformFeedbackNV)
16849 #define glDeleteTransformFeedbacksNV GLEW_GET_FUN(__glewDeleteTransformFeedbacksNV)
16850 #define glDrawTransformFeedbackNV GLEW_GET_FUN(__glewDrawTransformFeedbackNV)
16851 #define glGenTransformFeedbacksNV GLEW_GET_FUN(__glewGenTransformFeedbacksNV)
16852 #define glIsTransformFeedbackNV GLEW_GET_FUN(__glewIsTransformFeedbackNV)
16853 #define glPauseTransformFeedbackNV GLEW_GET_FUN(__glewPauseTransformFeedbackNV)
16854 #define glResumeTransformFeedbackNV GLEW_GET_FUN(__glewResumeTransformFeedbackNV)
16855 
16856 #define GLEW_NV_transform_feedback2 GLEW_GET_VAR(__GLEW_NV_transform_feedback2)
16857 
16858 #endif /* GL_NV_transform_feedback2 */
16859 
16860 /* ------------------ GL_NV_uniform_buffer_unified_memory ------------------ */
16861 
16862 #ifndef GL_NV_uniform_buffer_unified_memory
16863 #define GL_NV_uniform_buffer_unified_memory 1
16864 
16865 #define GL_UNIFORM_BUFFER_UNIFIED_NV 0x936E
16866 #define GL_UNIFORM_BUFFER_ADDRESS_NV 0x936F
16867 #define GL_UNIFORM_BUFFER_LENGTH_NV 0x9370
16868 
16869 #define GLEW_NV_uniform_buffer_unified_memory GLEW_GET_VAR(__GLEW_NV_uniform_buffer_unified_memory)
16870 
16871 #endif /* GL_NV_uniform_buffer_unified_memory */
16872 
16873 /* -------------------------- GL_NV_vdpau_interop -------------------------- */
16874 
16875 #ifndef GL_NV_vdpau_interop
16876 #define GL_NV_vdpau_interop 1
16877 
16878 #define GL_SURFACE_STATE_NV 0x86EB
16879 #define GL_SURFACE_REGISTERED_NV 0x86FD
16880 #define GL_SURFACE_MAPPED_NV 0x8700
16881 #define GL_WRITE_DISCARD_NV 0x88BE
16882 
16883 typedef GLintptr GLvdpauSurfaceNV;
16884 
16885 typedef void (GLAPIENTRY * PFNGLVDPAUFININVPROC) (void);
16886 typedef void (GLAPIENTRY * PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values);
16887 typedef void (GLAPIENTRY * PFNGLVDPAUINITNVPROC) (const void* vdpDevice, const void*getProcAddress);
16888 typedef void (GLAPIENTRY * PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface);
16889 typedef void (GLAPIENTRY * PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV* surfaces);
16890 typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
16891 typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
16892 typedef void (GLAPIENTRY * PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access);
16893 typedef void (GLAPIENTRY * PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV* surfaces);
16894 typedef void (GLAPIENTRY * PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface);
16895 
16896 #define glVDPAUFiniNV GLEW_GET_FUN(__glewVDPAUFiniNV)
16897 #define glVDPAUGetSurfaceivNV GLEW_GET_FUN(__glewVDPAUGetSurfaceivNV)
16898 #define glVDPAUInitNV GLEW_GET_FUN(__glewVDPAUInitNV)
16899 #define glVDPAUIsSurfaceNV GLEW_GET_FUN(__glewVDPAUIsSurfaceNV)
16900 #define glVDPAUMapSurfacesNV GLEW_GET_FUN(__glewVDPAUMapSurfacesNV)
16901 #define glVDPAURegisterOutputSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterOutputSurfaceNV)
16902 #define glVDPAURegisterVideoSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterVideoSurfaceNV)
16903 #define glVDPAUSurfaceAccessNV GLEW_GET_FUN(__glewVDPAUSurfaceAccessNV)
16904 #define glVDPAUUnmapSurfacesNV GLEW_GET_FUN(__glewVDPAUUnmapSurfacesNV)
16905 #define glVDPAUUnregisterSurfaceNV GLEW_GET_FUN(__glewVDPAUUnregisterSurfaceNV)
16906 
16907 #define GLEW_NV_vdpau_interop GLEW_GET_VAR(__GLEW_NV_vdpau_interop)
16908 
16909 #endif /* GL_NV_vdpau_interop */
16910 
16911 /* ------------------------ GL_NV_vertex_array_range ----------------------- */
16912 
16913 #ifndef GL_NV_vertex_array_range
16914 #define GL_NV_vertex_array_range 1
16915 
16916 #define GL_VERTEX_ARRAY_RANGE_NV 0x851D
16917 #define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E
16918 #define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F
16919 #define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520
16920 #define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521
16921 
16922 typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void);
16923 typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, void *pointer);
16924 
16925 #define glFlushVertexArrayRangeNV GLEW_GET_FUN(__glewFlushVertexArrayRangeNV)
16926 #define glVertexArrayRangeNV GLEW_GET_FUN(__glewVertexArrayRangeNV)
16927 
16928 #define GLEW_NV_vertex_array_range GLEW_GET_VAR(__GLEW_NV_vertex_array_range)
16929 
16930 #endif /* GL_NV_vertex_array_range */
16931 
16932 /* ----------------------- GL_NV_vertex_array_range2 ----------------------- */
16933 
16934 #ifndef GL_NV_vertex_array_range2
16935 #define GL_NV_vertex_array_range2 1
16936 
16937 #define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533
16938 
16939 #define GLEW_NV_vertex_array_range2 GLEW_GET_VAR(__GLEW_NV_vertex_array_range2)
16940 
16941 #endif /* GL_NV_vertex_array_range2 */
16942 
16943 /* ------------------- GL_NV_vertex_attrib_integer_64bit ------------------- */
16944 
16945 #ifndef GL_NV_vertex_attrib_integer_64bit
16946 #define GL_NV_vertex_attrib_integer_64bit 1
16947 
16948 #define GL_INT64_NV 0x140E
16949 #define GL_UNSIGNED_INT64_NV 0x140F
16950 
16951 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT* params);
16952 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT* params);
16953 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x);
16954 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT* v);
16955 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x);
16956 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT* v);
16957 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y);
16958 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT* v);
16959 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y);
16960 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT* v);
16961 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z);
16962 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT* v);
16963 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
16964 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT* v);
16965 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
16966 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT* v);
16967 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
16968 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT* v);
16969 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride);
16970 
16971 #define glGetVertexAttribLi64vNV GLEW_GET_FUN(__glewGetVertexAttribLi64vNV)
16972 #define glGetVertexAttribLui64vNV GLEW_GET_FUN(__glewGetVertexAttribLui64vNV)
16973 #define glVertexAttribL1i64NV GLEW_GET_FUN(__glewVertexAttribL1i64NV)
16974 #define glVertexAttribL1i64vNV GLEW_GET_FUN(__glewVertexAttribL1i64vNV)
16975 #define glVertexAttribL1ui64NV GLEW_GET_FUN(__glewVertexAttribL1ui64NV)
16976 #define glVertexAttribL1ui64vNV GLEW_GET_FUN(__glewVertexAttribL1ui64vNV)
16977 #define glVertexAttribL2i64NV GLEW_GET_FUN(__glewVertexAttribL2i64NV)
16978 #define glVertexAttribL2i64vNV GLEW_GET_FUN(__glewVertexAttribL2i64vNV)
16979 #define glVertexAttribL2ui64NV GLEW_GET_FUN(__glewVertexAttribL2ui64NV)
16980 #define glVertexAttribL2ui64vNV GLEW_GET_FUN(__glewVertexAttribL2ui64vNV)
16981 #define glVertexAttribL3i64NV GLEW_GET_FUN(__glewVertexAttribL3i64NV)
16982 #define glVertexAttribL3i64vNV GLEW_GET_FUN(__glewVertexAttribL3i64vNV)
16983 #define glVertexAttribL3ui64NV GLEW_GET_FUN(__glewVertexAttribL3ui64NV)
16984 #define glVertexAttribL3ui64vNV GLEW_GET_FUN(__glewVertexAttribL3ui64vNV)
16985 #define glVertexAttribL4i64NV GLEW_GET_FUN(__glewVertexAttribL4i64NV)
16986 #define glVertexAttribL4i64vNV GLEW_GET_FUN(__glewVertexAttribL4i64vNV)
16987 #define glVertexAttribL4ui64NV GLEW_GET_FUN(__glewVertexAttribL4ui64NV)
16988 #define glVertexAttribL4ui64vNV GLEW_GET_FUN(__glewVertexAttribL4ui64vNV)
16989 #define glVertexAttribLFormatNV GLEW_GET_FUN(__glewVertexAttribLFormatNV)
16990 
16991 #define GLEW_NV_vertex_attrib_integer_64bit GLEW_GET_VAR(__GLEW_NV_vertex_attrib_integer_64bit)
16992 
16993 #endif /* GL_NV_vertex_attrib_integer_64bit */
16994 
16995 /* ------------------- GL_NV_vertex_buffer_unified_memory ------------------ */
16996 
16997 #ifndef GL_NV_vertex_buffer_unified_memory
16998 #define GL_NV_vertex_buffer_unified_memory 1
16999 
17000 #define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E
17001 #define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F
17002 #define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20
17003 #define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21
17004 #define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22
17005 #define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23
17006 #define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24
17007 #define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25
17008 #define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26
17009 #define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27
17010 #define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28
17011 #define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29
17012 #define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A
17013 #define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B
17014 #define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C
17015 #define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D
17016 #define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E
17017 #define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F
17018 #define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30
17019 #define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31
17020 #define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32
17021 #define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33
17022 #define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40
17023 #define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41
17024 #define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42
17025 
17026 typedef void (GLAPIENTRY * PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length);
17027 typedef void (GLAPIENTRY * PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
17028 typedef void (GLAPIENTRY * PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride);
17029 typedef void (GLAPIENTRY * PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride);
17030 typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT result[]);
17031 typedef void (GLAPIENTRY * PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride);
17032 typedef void (GLAPIENTRY * PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride);
17033 typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
17034 typedef void (GLAPIENTRY * PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
17035 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride);
17036 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride);
17037 typedef void (GLAPIENTRY * PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
17038 
17039 #define glBufferAddressRangeNV GLEW_GET_FUN(__glewBufferAddressRangeNV)
17040 #define glColorFormatNV GLEW_GET_FUN(__glewColorFormatNV)
17041 #define glEdgeFlagFormatNV GLEW_GET_FUN(__glewEdgeFlagFormatNV)
17042 #define glFogCoordFormatNV GLEW_GET_FUN(__glewFogCoordFormatNV)
17043 #define glGetIntegerui64i_vNV GLEW_GET_FUN(__glewGetIntegerui64i_vNV)
17044 #define glIndexFormatNV GLEW_GET_FUN(__glewIndexFormatNV)
17045 #define glNormalFormatNV GLEW_GET_FUN(__glewNormalFormatNV)
17046 #define glSecondaryColorFormatNV GLEW_GET_FUN(__glewSecondaryColorFormatNV)
17047 #define glTexCoordFormatNV GLEW_GET_FUN(__glewTexCoordFormatNV)
17048 #define glVertexAttribFormatNV GLEW_GET_FUN(__glewVertexAttribFormatNV)
17049 #define glVertexAttribIFormatNV GLEW_GET_FUN(__glewVertexAttribIFormatNV)
17050 #define glVertexFormatNV GLEW_GET_FUN(__glewVertexFormatNV)
17051 
17052 #define GLEW_NV_vertex_buffer_unified_memory GLEW_GET_VAR(__GLEW_NV_vertex_buffer_unified_memory)
17053 
17054 #endif /* GL_NV_vertex_buffer_unified_memory */
17055 
17056 /* -------------------------- GL_NV_vertex_program ------------------------- */
17057 
17058 #ifndef GL_NV_vertex_program
17059 #define GL_NV_vertex_program 1
17060 
17061 #define GL_VERTEX_PROGRAM_NV 0x8620
17062 #define GL_VERTEX_STATE_PROGRAM_NV 0x8621
17063 #define GL_ATTRIB_ARRAY_SIZE_NV 0x8623
17064 #define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624
17065 #define GL_ATTRIB_ARRAY_TYPE_NV 0x8625
17066 #define GL_CURRENT_ATTRIB_NV 0x8626
17067 #define GL_PROGRAM_LENGTH_NV 0x8627
17068 #define GL_PROGRAM_STRING_NV 0x8628
17069 #define GL_MODELVIEW_PROJECTION_NV 0x8629
17070 #define GL_IDENTITY_NV 0x862A
17071 #define GL_INVERSE_NV 0x862B
17072 #define GL_TRANSPOSE_NV 0x862C
17073 #define GL_INVERSE_TRANSPOSE_NV 0x862D
17074 #define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E
17075 #define GL_MAX_TRACK_MATRICES_NV 0x862F
17076 #define GL_MATRIX0_NV 0x8630
17077 #define GL_MATRIX1_NV 0x8631
17078 #define GL_MATRIX2_NV 0x8632
17079 #define GL_MATRIX3_NV 0x8633
17080 #define GL_MATRIX4_NV 0x8634
17081 #define GL_MATRIX5_NV 0x8635
17082 #define GL_MATRIX6_NV 0x8636
17083 #define GL_MATRIX7_NV 0x8637
17084 #define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640
17085 #define GL_CURRENT_MATRIX_NV 0x8641
17086 #define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642
17087 #define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643
17088 #define GL_PROGRAM_PARAMETER_NV 0x8644
17089 #define GL_ATTRIB_ARRAY_POINTER_NV 0x8645
17090 #define GL_PROGRAM_TARGET_NV 0x8646
17091 #define GL_PROGRAM_RESIDENT_NV 0x8647
17092 #define GL_TRACK_MATRIX_NV 0x8648
17093 #define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649
17094 #define GL_VERTEX_PROGRAM_BINDING_NV 0x864A
17095 #define GL_PROGRAM_ERROR_POSITION_NV 0x864B
17096 #define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650
17097 #define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651
17098 #define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652
17099 #define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653
17100 #define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654
17101 #define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655
17102 #define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656
17103 #define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657
17104 #define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658
17105 #define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659
17106 #define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A
17107 #define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B
17108 #define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C
17109 #define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D
17110 #define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E
17111 #define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F
17112 #define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660
17113 #define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661
17114 #define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662
17115 #define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663
17116 #define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664
17117 #define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665
17118 #define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666
17119 #define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667
17120 #define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668
17121 #define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669
17122 #define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A
17123 #define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B
17124 #define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C
17125 #define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D
17126 #define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E
17127 #define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F
17128 #define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670
17129 #define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671
17130 #define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672
17131 #define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673
17132 #define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674
17133 #define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675
17134 #define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676
17135 #define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677
17136 #define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678
17137 #define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679
17138 #define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A
17139 #define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B
17140 #define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C
17141 #define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D
17142 #define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E
17143 #define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F
17144 
17145 typedef GLboolean (GLAPIENTRY * PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint* ids, GLboolean *residences);
17146 typedef void (GLAPIENTRY * PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id);
17147 typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint* ids);
17148 typedef void (GLAPIENTRY * PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat* params);
17149 typedef void (GLAPIENTRY * PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint* ids);
17150 typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble* params);
17151 typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params);
17152 typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte* program);
17153 typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint* params);
17154 typedef void (GLAPIENTRY * PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint* params);
17155 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, void** pointer);
17156 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble* params);
17157 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat* params);
17158 typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint* params);
17159 typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMNVPROC) (GLuint id);
17160 typedef void (GLAPIENTRY * PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte* program);
17161 typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
17162 typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble* params);
17163 typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
17164 typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat* params);
17165 typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLdouble* params);
17166 typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLfloat* params);
17167 typedef void (GLAPIENTRY * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, GLuint* ids);
17168 typedef void (GLAPIENTRY * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform);
17169 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x);
17170 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble* v);
17171 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x);
17172 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat* v);
17173 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x);
17174 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort* v);
17175 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y);
17176 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble* v);
17177 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y);
17178 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat* v);
17179 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y);
17180 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort* v);
17181 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
17182 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble* v);
17183 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
17184 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat* v);
17185 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
17186 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort* v);
17187 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
17188 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble* v);
17189 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
17190 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat* v);
17191 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
17192 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort* v);
17193 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
17194 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte* v);
17195 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
17196 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v);
17197 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v);
17198 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei n, const GLshort* v);
17199 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v);
17200 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v);
17201 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei n, const GLshort* v);
17202 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v);
17203 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v);
17204 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei n, const GLshort* v);
17205 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v);
17206 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v);
17207 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei n, const GLshort* v);
17208 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei n, const GLubyte* v);
17209 
17210 #define glAreProgramsResidentNV GLEW_GET_FUN(__glewAreProgramsResidentNV)
17211 #define glBindProgramNV GLEW_GET_FUN(__glewBindProgramNV)
17212 #define glDeleteProgramsNV GLEW_GET_FUN(__glewDeleteProgramsNV)
17213 #define glExecuteProgramNV GLEW_GET_FUN(__glewExecuteProgramNV)
17214 #define glGenProgramsNV GLEW_GET_FUN(__glewGenProgramsNV)
17215 #define glGetProgramParameterdvNV GLEW_GET_FUN(__glewGetProgramParameterdvNV)
17216 #define glGetProgramParameterfvNV GLEW_GET_FUN(__glewGetProgramParameterfvNV)
17217 #define glGetProgramStringNV GLEW_GET_FUN(__glewGetProgramStringNV)
17218 #define glGetProgramivNV GLEW_GET_FUN(__glewGetProgramivNV)
17219 #define glGetTrackMatrixivNV GLEW_GET_FUN(__glewGetTrackMatrixivNV)
17220 #define glGetVertexAttribPointervNV GLEW_GET_FUN(__glewGetVertexAttribPointervNV)
17221 #define glGetVertexAttribdvNV GLEW_GET_FUN(__glewGetVertexAttribdvNV)
17222 #define glGetVertexAttribfvNV GLEW_GET_FUN(__glewGetVertexAttribfvNV)
17223 #define glGetVertexAttribivNV GLEW_GET_FUN(__glewGetVertexAttribivNV)
17224 #define glIsProgramNV GLEW_GET_FUN(__glewIsProgramNV)
17225 #define glLoadProgramNV GLEW_GET_FUN(__glewLoadProgramNV)
17226 #define glProgramParameter4dNV GLEW_GET_FUN(__glewProgramParameter4dNV)
17227 #define glProgramParameter4dvNV GLEW_GET_FUN(__glewProgramParameter4dvNV)
17228 #define glProgramParameter4fNV GLEW_GET_FUN(__glewProgramParameter4fNV)
17229 #define glProgramParameter4fvNV GLEW_GET_FUN(__glewProgramParameter4fvNV)
17230 #define glProgramParameters4dvNV GLEW_GET_FUN(__glewProgramParameters4dvNV)
17231 #define glProgramParameters4fvNV GLEW_GET_FUN(__glewProgramParameters4fvNV)
17232 #define glRequestResidentProgramsNV GLEW_GET_FUN(__glewRequestResidentProgramsNV)
17233 #define glTrackMatrixNV GLEW_GET_FUN(__glewTrackMatrixNV)
17234 #define glVertexAttrib1dNV GLEW_GET_FUN(__glewVertexAttrib1dNV)
17235 #define glVertexAttrib1dvNV GLEW_GET_FUN(__glewVertexAttrib1dvNV)
17236 #define glVertexAttrib1fNV GLEW_GET_FUN(__glewVertexAttrib1fNV)
17237 #define glVertexAttrib1fvNV GLEW_GET_FUN(__glewVertexAttrib1fvNV)
17238 #define glVertexAttrib1sNV GLEW_GET_FUN(__glewVertexAttrib1sNV)
17239 #define glVertexAttrib1svNV GLEW_GET_FUN(__glewVertexAttrib1svNV)
17240 #define glVertexAttrib2dNV GLEW_GET_FUN(__glewVertexAttrib2dNV)
17241 #define glVertexAttrib2dvNV GLEW_GET_FUN(__glewVertexAttrib2dvNV)
17242 #define glVertexAttrib2fNV GLEW_GET_FUN(__glewVertexAttrib2fNV)
17243 #define glVertexAttrib2fvNV GLEW_GET_FUN(__glewVertexAttrib2fvNV)
17244 #define glVertexAttrib2sNV GLEW_GET_FUN(__glewVertexAttrib2sNV)
17245 #define glVertexAttrib2svNV GLEW_GET_FUN(__glewVertexAttrib2svNV)
17246 #define glVertexAttrib3dNV GLEW_GET_FUN(__glewVertexAttrib3dNV)
17247 #define glVertexAttrib3dvNV GLEW_GET_FUN(__glewVertexAttrib3dvNV)
17248 #define glVertexAttrib3fNV GLEW_GET_FUN(__glewVertexAttrib3fNV)
17249 #define glVertexAttrib3fvNV GLEW_GET_FUN(__glewVertexAttrib3fvNV)
17250 #define glVertexAttrib3sNV GLEW_GET_FUN(__glewVertexAttrib3sNV)
17251 #define glVertexAttrib3svNV GLEW_GET_FUN(__glewVertexAttrib3svNV)
17252 #define glVertexAttrib4dNV GLEW_GET_FUN(__glewVertexAttrib4dNV)
17253 #define glVertexAttrib4dvNV GLEW_GET_FUN(__glewVertexAttrib4dvNV)
17254 #define glVertexAttrib4fNV GLEW_GET_FUN(__glewVertexAttrib4fNV)
17255 #define glVertexAttrib4fvNV GLEW_GET_FUN(__glewVertexAttrib4fvNV)
17256 #define glVertexAttrib4sNV GLEW_GET_FUN(__glewVertexAttrib4sNV)
17257 #define glVertexAttrib4svNV GLEW_GET_FUN(__glewVertexAttrib4svNV)
17258 #define glVertexAttrib4ubNV GLEW_GET_FUN(__glewVertexAttrib4ubNV)
17259 #define glVertexAttrib4ubvNV GLEW_GET_FUN(__glewVertexAttrib4ubvNV)
17260 #define glVertexAttribPointerNV GLEW_GET_FUN(__glewVertexAttribPointerNV)
17261 #define glVertexAttribs1dvNV GLEW_GET_FUN(__glewVertexAttribs1dvNV)
17262 #define glVertexAttribs1fvNV GLEW_GET_FUN(__glewVertexAttribs1fvNV)
17263 #define glVertexAttribs1svNV GLEW_GET_FUN(__glewVertexAttribs1svNV)
17264 #define glVertexAttribs2dvNV GLEW_GET_FUN(__glewVertexAttribs2dvNV)
17265 #define glVertexAttribs2fvNV GLEW_GET_FUN(__glewVertexAttribs2fvNV)
17266 #define glVertexAttribs2svNV GLEW_GET_FUN(__glewVertexAttribs2svNV)
17267 #define glVertexAttribs3dvNV GLEW_GET_FUN(__glewVertexAttribs3dvNV)
17268 #define glVertexAttribs3fvNV GLEW_GET_FUN(__glewVertexAttribs3fvNV)
17269 #define glVertexAttribs3svNV GLEW_GET_FUN(__glewVertexAttribs3svNV)
17270 #define glVertexAttribs4dvNV GLEW_GET_FUN(__glewVertexAttribs4dvNV)
17271 #define glVertexAttribs4fvNV GLEW_GET_FUN(__glewVertexAttribs4fvNV)
17272 #define glVertexAttribs4svNV GLEW_GET_FUN(__glewVertexAttribs4svNV)
17273 #define glVertexAttribs4ubvNV GLEW_GET_FUN(__glewVertexAttribs4ubvNV)
17274 
17275 #define GLEW_NV_vertex_program GLEW_GET_VAR(__GLEW_NV_vertex_program)
17276 
17277 #endif /* GL_NV_vertex_program */
17278 
17279 /* ------------------------ GL_NV_vertex_program1_1 ------------------------ */
17280 
17281 #ifndef GL_NV_vertex_program1_1
17282 #define GL_NV_vertex_program1_1 1
17283 
17284 #define GLEW_NV_vertex_program1_1 GLEW_GET_VAR(__GLEW_NV_vertex_program1_1)
17285 
17286 #endif /* GL_NV_vertex_program1_1 */
17287 
17288 /* ------------------------- GL_NV_vertex_program2 ------------------------- */
17289 
17290 #ifndef GL_NV_vertex_program2
17291 #define GL_NV_vertex_program2 1
17292 
17293 #define GLEW_NV_vertex_program2 GLEW_GET_VAR(__GLEW_NV_vertex_program2)
17294 
17295 #endif /* GL_NV_vertex_program2 */
17296 
17297 /* ---------------------- GL_NV_vertex_program2_option --------------------- */
17298 
17299 #ifndef GL_NV_vertex_program2_option
17300 #define GL_NV_vertex_program2_option 1
17301 
17302 #define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4
17303 #define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5
17304 
17305 #define GLEW_NV_vertex_program2_option GLEW_GET_VAR(__GLEW_NV_vertex_program2_option)
17306 
17307 #endif /* GL_NV_vertex_program2_option */
17308 
17309 /* ------------------------- GL_NV_vertex_program3 ------------------------- */
17310 
17311 #ifndef GL_NV_vertex_program3
17312 #define GL_NV_vertex_program3 1
17313 
17314 #define MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
17315 
17316 #define GLEW_NV_vertex_program3 GLEW_GET_VAR(__GLEW_NV_vertex_program3)
17317 
17318 #endif /* GL_NV_vertex_program3 */
17319 
17320 /* ------------------------- GL_NV_vertex_program4 ------------------------- */
17321 
17322 #ifndef GL_NV_vertex_program4
17323 #define GL_NV_vertex_program4 1
17324 
17325 #define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD
17326 
17327 #define GLEW_NV_vertex_program4 GLEW_GET_VAR(__GLEW_NV_vertex_program4)
17328 
17329 #endif /* GL_NV_vertex_program4 */
17330 
17331 /* -------------------------- GL_NV_video_capture -------------------------- */
17332 
17333 #ifndef GL_NV_video_capture
17334 #define GL_NV_video_capture 1
17335 
17336 #define GL_VIDEO_BUFFER_NV 0x9020
17337 #define GL_VIDEO_BUFFER_BINDING_NV 0x9021
17338 #define GL_FIELD_UPPER_NV 0x9022
17339 #define GL_FIELD_LOWER_NV 0x9023
17340 #define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024
17341 #define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025
17342 #define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026
17343 #define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027
17344 #define GL_VIDEO_BUFFER_PITCH_NV 0x9028
17345 #define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029
17346 #define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A
17347 #define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B
17348 #define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C
17349 #define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D
17350 #define GL_PARTIAL_SUCCESS_NV 0x902E
17351 #define GL_SUCCESS_NV 0x902F
17352 #define GL_FAILURE_NV 0x9030
17353 #define GL_YCBYCR8_422_NV 0x9031
17354 #define GL_YCBAYCR8A_4224_NV 0x9032
17355 #define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033
17356 #define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034
17357 #define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035
17358 #define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036
17359 #define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037
17360 #define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038
17361 #define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039
17362 #define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A
17363 #define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B
17364 #define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C
17365 
17366 typedef void (GLAPIENTRY * PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot);
17367 typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset);
17368 typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture);
17369 typedef void (GLAPIENTRY * PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot);
17370 typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble* params);
17371 typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat* params);
17372 typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint* params);
17373 typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint* params);
17374 typedef GLenum (GLAPIENTRY * PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint* sequence_num, GLuint64EXT *capture_time);
17375 typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble* params);
17376 typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat* params);
17377 typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint* params);
17378 
17379 #define glBeginVideoCaptureNV GLEW_GET_FUN(__glewBeginVideoCaptureNV)
17380 #define glBindVideoCaptureStreamBufferNV GLEW_GET_FUN(__glewBindVideoCaptureStreamBufferNV)
17381 #define glBindVideoCaptureStreamTextureNV GLEW_GET_FUN(__glewBindVideoCaptureStreamTextureNV)
17382 #define glEndVideoCaptureNV GLEW_GET_FUN(__glewEndVideoCaptureNV)
17383 #define glGetVideoCaptureStreamdvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamdvNV)
17384 #define glGetVideoCaptureStreamfvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamfvNV)
17385 #define glGetVideoCaptureStreamivNV GLEW_GET_FUN(__glewGetVideoCaptureStreamivNV)
17386 #define glGetVideoCaptureivNV GLEW_GET_FUN(__glewGetVideoCaptureivNV)
17387 #define glVideoCaptureNV GLEW_GET_FUN(__glewVideoCaptureNV)
17388 #define glVideoCaptureStreamParameterdvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterdvNV)
17389 #define glVideoCaptureStreamParameterfvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterfvNV)
17390 #define glVideoCaptureStreamParameterivNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterivNV)
17391 
17392 #define GLEW_NV_video_capture GLEW_GET_VAR(__GLEW_NV_video_capture)
17393 
17394 #endif /* GL_NV_video_capture */
17395 
17396 /* -------------------------- GL_NV_viewport_array ------------------------- */
17397 
17398 #ifndef GL_NV_viewport_array
17399 #define GL_NV_viewport_array 1
17400 
17401 #define GL_DEPTH_RANGE 0x0B70
17402 #define GL_VIEWPORT 0x0BA2
17403 #define GL_SCISSOR_BOX 0x0C10
17404 #define GL_SCISSOR_TEST 0x0C11
17405 #define GL_MAX_VIEWPORTS_NV 0x825B
17406 #define GL_VIEWPORT_SUBPIXEL_BITS_NV 0x825C
17407 #define GL_VIEWPORT_BOUNDS_RANGE_NV 0x825D
17408 #define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV 0x825F
17409 
17410 typedef void (GLAPIENTRY * PFNGLDEPTHRANGEARRAYFVNVPROC) (GLuint first, GLsizei count, const GLfloat * v);
17411 typedef void (GLAPIENTRY * PFNGLDEPTHRANGEINDEXEDFNVPROC) (GLuint index, GLfloat n, GLfloat f);
17412 typedef void (GLAPIENTRY * PFNGLDISABLEINVPROC) (GLenum target, GLuint index);
17413 typedef void (GLAPIENTRY * PFNGLENABLEINVPROC) (GLenum target, GLuint index);
17414 typedef void (GLAPIENTRY * PFNGLGETFLOATI_VNVPROC) (GLenum target, GLuint index, GLfloat* data);
17415 typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINVPROC) (GLenum target, GLuint index);
17416 typedef void (GLAPIENTRY * PFNGLSCISSORARRAYVNVPROC) (GLuint first, GLsizei count, const GLint * v);
17417 typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDNVPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
17418 typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDVNVPROC) (GLuint index, const GLint * v);
17419 typedef void (GLAPIENTRY * PFNGLVIEWPORTARRAYVNVPROC) (GLuint first, GLsizei count, const GLfloat * v);
17420 typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
17421 typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFVNVPROC) (GLuint index, const GLfloat * v);
17422 
17423 #define glDepthRangeArrayfvNV GLEW_GET_FUN(__glewDepthRangeArrayfvNV)
17424 #define glDepthRangeIndexedfNV GLEW_GET_FUN(__glewDepthRangeIndexedfNV)
17425 #define glDisableiNV GLEW_GET_FUN(__glewDisableiNV)
17426 #define glEnableiNV GLEW_GET_FUN(__glewEnableiNV)
17427 #define glGetFloati_vNV GLEW_GET_FUN(__glewGetFloati_vNV)
17428 #define glIsEnablediNV GLEW_GET_FUN(__glewIsEnablediNV)
17429 #define glScissorArrayvNV GLEW_GET_FUN(__glewScissorArrayvNV)
17430 #define glScissorIndexedNV GLEW_GET_FUN(__glewScissorIndexedNV)
17431 #define glScissorIndexedvNV GLEW_GET_FUN(__glewScissorIndexedvNV)
17432 #define glViewportArrayvNV GLEW_GET_FUN(__glewViewportArrayvNV)
17433 #define glViewportIndexedfNV GLEW_GET_FUN(__glewViewportIndexedfNV)
17434 #define glViewportIndexedfvNV GLEW_GET_FUN(__glewViewportIndexedfvNV)
17435 
17436 #define GLEW_NV_viewport_array GLEW_GET_VAR(__GLEW_NV_viewport_array)
17437 
17438 #endif /* GL_NV_viewport_array */
17439 
17440 /* ------------------------- GL_NV_viewport_array2 ------------------------- */
17441 
17442 #ifndef GL_NV_viewport_array2
17443 #define GL_NV_viewport_array2 1
17444 
17445 #define GLEW_NV_viewport_array2 GLEW_GET_VAR(__GLEW_NV_viewport_array2)
17446 
17447 #endif /* GL_NV_viewport_array2 */
17448 
17449 /* ------------------------- GL_NV_viewport_swizzle ------------------------ */
17450 
17451 #ifndef GL_NV_viewport_swizzle
17452 #define GL_NV_viewport_swizzle 1
17453 
17454 #define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350
17455 #define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351
17456 #define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352
17457 #define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353
17458 #define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354
17459 #define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355
17460 #define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356
17461 #define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357
17462 #define GL_VIEWPORT_SWIZZLE_X_NV 0x9358
17463 #define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359
17464 #define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A
17465 #define GL_VIEWPORT_SWIZZLE_W_NV 0x935B
17466 
17467 typedef void (GLAPIENTRY * PFNGLVIEWPORTSWIZZLENVPROC) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew);
17468 
17469 #define glViewportSwizzleNV GLEW_GET_FUN(__glewViewportSwizzleNV)
17470 
17471 #define GLEW_NV_viewport_swizzle GLEW_GET_VAR(__GLEW_NV_viewport_swizzle)
17472 
17473 #endif /* GL_NV_viewport_swizzle */
17474 
17475 /* ------------------------ GL_OES_byte_coordinates ------------------------ */
17476 
17477 #ifndef GL_OES_byte_coordinates
17478 #define GL_OES_byte_coordinates 1
17479 
17480 #define GLEW_OES_byte_coordinates GLEW_GET_VAR(__GLEW_OES_byte_coordinates)
17481 
17482 #endif /* GL_OES_byte_coordinates */
17483 
17484 /* ---------------------------- GL_OML_interlace --------------------------- */
17485 
17486 #ifndef GL_OML_interlace
17487 #define GL_OML_interlace 1
17488 
17489 #define GL_INTERLACE_OML 0x8980
17490 #define GL_INTERLACE_READ_OML 0x8981
17491 
17492 #define GLEW_OML_interlace GLEW_GET_VAR(__GLEW_OML_interlace)
17493 
17494 #endif /* GL_OML_interlace */
17495 
17496 /* ---------------------------- GL_OML_resample ---------------------------- */
17497 
17498 #ifndef GL_OML_resample
17499 #define GL_OML_resample 1
17500 
17501 #define GL_PACK_RESAMPLE_OML 0x8984
17502 #define GL_UNPACK_RESAMPLE_OML 0x8985
17503 #define GL_RESAMPLE_REPLICATE_OML 0x8986
17504 #define GL_RESAMPLE_ZERO_FILL_OML 0x8987
17505 #define GL_RESAMPLE_AVERAGE_OML 0x8988
17506 #define GL_RESAMPLE_DECIMATE_OML 0x8989
17507 
17508 #define GLEW_OML_resample GLEW_GET_VAR(__GLEW_OML_resample)
17509 
17510 #endif /* GL_OML_resample */
17511 
17512 /* ---------------------------- GL_OML_subsample --------------------------- */
17513 
17514 #ifndef GL_OML_subsample
17515 #define GL_OML_subsample 1
17516 
17517 #define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982
17518 #define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983
17519 
17520 #define GLEW_OML_subsample GLEW_GET_VAR(__GLEW_OML_subsample)
17521 
17522 #endif /* GL_OML_subsample */
17523 
17524 /* ---------------------------- GL_OVR_multiview --------------------------- */
17525 
17526 #ifndef GL_OVR_multiview
17527 #define GL_OVR_multiview 1
17528 
17529 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630
17530 #define GL_MAX_VIEWS_OVR 0x9631
17531 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632
17532 #define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633
17533 
17534 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
17535 
17536 #define glFramebufferTextureMultiviewOVR GLEW_GET_FUN(__glewFramebufferTextureMultiviewOVR)
17537 
17538 #define GLEW_OVR_multiview GLEW_GET_VAR(__GLEW_OVR_multiview)
17539 
17540 #endif /* GL_OVR_multiview */
17541 
17542 /* --------------------------- GL_OVR_multiview2 --------------------------- */
17543 
17544 #ifndef GL_OVR_multiview2
17545 #define GL_OVR_multiview2 1
17546 
17547 #define GLEW_OVR_multiview2 GLEW_GET_VAR(__GLEW_OVR_multiview2)
17548 
17549 #endif /* GL_OVR_multiview2 */
17550 
17551 /* ------------ GL_OVR_multiview_multisampled_render_to_texture ------------ */
17552 
17553 #ifndef GL_OVR_multiview_multisampled_render_to_texture
17554 #define GL_OVR_multiview_multisampled_render_to_texture 1
17555 
17556 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews);
17557 
17558 #define glFramebufferTextureMultisampleMultiviewOVR GLEW_GET_FUN(__glewFramebufferTextureMultisampleMultiviewOVR)
17559 
17560 #define GLEW_OVR_multiview_multisampled_render_to_texture GLEW_GET_VAR(__GLEW_OVR_multiview_multisampled_render_to_texture)
17561 
17562 #endif /* GL_OVR_multiview_multisampled_render_to_texture */
17563 
17564 /* --------------------------- GL_PGI_misc_hints --------------------------- */
17565 
17566 #ifndef GL_PGI_misc_hints
17567 #define GL_PGI_misc_hints 1
17568 
17569 #define GL_PREFER_DOUBLEBUFFER_HINT_PGI 107000
17570 #define GL_CONSERVE_MEMORY_HINT_PGI 107005
17571 #define GL_RECLAIM_MEMORY_HINT_PGI 107006
17572 #define GL_NATIVE_GRAPHICS_HANDLE_PGI 107010
17573 #define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 107011
17574 #define GL_NATIVE_GRAPHICS_END_HINT_PGI 107012
17575 #define GL_ALWAYS_FAST_HINT_PGI 107020
17576 #define GL_ALWAYS_SOFT_HINT_PGI 107021
17577 #define GL_ALLOW_DRAW_OBJ_HINT_PGI 107022
17578 #define GL_ALLOW_DRAW_WIN_HINT_PGI 107023
17579 #define GL_ALLOW_DRAW_FRG_HINT_PGI 107024
17580 #define GL_ALLOW_DRAW_MEM_HINT_PGI 107025
17581 #define GL_STRICT_DEPTHFUNC_HINT_PGI 107030
17582 #define GL_STRICT_LIGHTING_HINT_PGI 107031
17583 #define GL_STRICT_SCISSOR_HINT_PGI 107032
17584 #define GL_FULL_STIPPLE_HINT_PGI 107033
17585 #define GL_CLIP_NEAR_HINT_PGI 107040
17586 #define GL_CLIP_FAR_HINT_PGI 107041
17587 #define GL_WIDE_LINE_HINT_PGI 107042
17588 #define GL_BACK_NORMALS_HINT_PGI 107043
17589 
17590 #define GLEW_PGI_misc_hints GLEW_GET_VAR(__GLEW_PGI_misc_hints)
17591 
17592 #endif /* GL_PGI_misc_hints */
17593 
17594 /* -------------------------- GL_PGI_vertex_hints -------------------------- */
17595 
17596 #ifndef GL_PGI_vertex_hints
17597 #define GL_PGI_vertex_hints 1
17598 
17599 #define GL_VERTEX23_BIT_PGI 0x00000004
17600 #define GL_VERTEX4_BIT_PGI 0x00000008
17601 #define GL_COLOR3_BIT_PGI 0x00010000
17602 #define GL_COLOR4_BIT_PGI 0x00020000
17603 #define GL_EDGEFLAG_BIT_PGI 0x00040000
17604 #define GL_INDEX_BIT_PGI 0x00080000
17605 #define GL_MAT_AMBIENT_BIT_PGI 0x00100000
17606 #define GL_VERTEX_DATA_HINT_PGI 107050
17607 #define GL_VERTEX_CONSISTENT_HINT_PGI 107051
17608 #define GL_MATERIAL_SIDE_HINT_PGI 107052
17609 #define GL_MAX_VERTEX_HINT_PGI 107053
17610 #define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000
17611 #define GL_MAT_DIFFUSE_BIT_PGI 0x00400000
17612 #define GL_MAT_EMISSION_BIT_PGI 0x00800000
17613 #define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000
17614 #define GL_MAT_SHININESS_BIT_PGI 0x02000000
17615 #define GL_MAT_SPECULAR_BIT_PGI 0x04000000
17616 #define GL_NORMAL_BIT_PGI 0x08000000
17617 #define GL_TEXCOORD1_BIT_PGI 0x10000000
17618 #define GL_TEXCOORD2_BIT_PGI 0x20000000
17619 #define GL_TEXCOORD3_BIT_PGI 0x40000000
17620 #define GL_TEXCOORD4_BIT_PGI 0x80000000
17621 
17622 #define GLEW_PGI_vertex_hints GLEW_GET_VAR(__GLEW_PGI_vertex_hints)
17623 
17624 #endif /* GL_PGI_vertex_hints */
17625 
17626 /* --------------------------- GL_QCOM_alpha_test -------------------------- */
17627 
17628 #ifndef GL_QCOM_alpha_test
17629 #define GL_QCOM_alpha_test 1
17630 
17631 #define GL_ALPHA_TEST_QCOM 0x0BC0
17632 #define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1
17633 #define GL_ALPHA_TEST_REF_QCOM 0x0BC2
17634 
17635 typedef void (GLAPIENTRY * PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref);
17636 
17637 #define glAlphaFuncQCOM GLEW_GET_FUN(__glewAlphaFuncQCOM)
17638 
17639 #define GLEW_QCOM_alpha_test GLEW_GET_VAR(__GLEW_QCOM_alpha_test)
17640 
17641 #endif /* GL_QCOM_alpha_test */
17642 
17643 /* ------------------------ GL_QCOM_binning_control ------------------------ */
17644 
17645 #ifndef GL_QCOM_binning_control
17646 #define GL_QCOM_binning_control 1
17647 
17648 #define GL_DONT_CARE 0x1100
17649 #define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0
17650 #define GL_CPU_OPTIMIZED_QCOM 0x8FB1
17651 #define GL_GPU_OPTIMIZED_QCOM 0x8FB2
17652 #define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3
17653 
17654 #define GLEW_QCOM_binning_control GLEW_GET_VAR(__GLEW_QCOM_binning_control)
17655 
17656 #endif /* GL_QCOM_binning_control */
17657 
17658 /* ------------------------- GL_QCOM_driver_control ------------------------ */
17659 
17660 #ifndef GL_QCOM_driver_control
17661 #define GL_QCOM_driver_control 1
17662 
17663 typedef void (GLAPIENTRY * PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
17664 typedef void (GLAPIENTRY * PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
17665 typedef void (GLAPIENTRY * PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar *driverControlString);
17666 typedef void (GLAPIENTRY * PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint* num, GLsizei size, GLuint *driverControls);
17667 
17668 #define glDisableDriverControlQCOM GLEW_GET_FUN(__glewDisableDriverControlQCOM)
17669 #define glEnableDriverControlQCOM GLEW_GET_FUN(__glewEnableDriverControlQCOM)
17670 #define glGetDriverControlStringQCOM GLEW_GET_FUN(__glewGetDriverControlStringQCOM)
17671 #define glGetDriverControlsQCOM GLEW_GET_FUN(__glewGetDriverControlsQCOM)
17672 
17673 #define GLEW_QCOM_driver_control GLEW_GET_VAR(__GLEW_QCOM_driver_control)
17674 
17675 #endif /* GL_QCOM_driver_control */
17676 
17677 /* -------------------------- GL_QCOM_extended_get ------------------------- */
17678 
17679 #ifndef GL_QCOM_extended_get
17680 #define GL_QCOM_extended_get 1
17681 
17682 #define GL_TEXTURE_WIDTH_QCOM 0x8BD2
17683 #define GL_TEXTURE_HEIGHT_QCOM 0x8BD3
17684 #define GL_TEXTURE_DEPTH_QCOM 0x8BD4
17685 #define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5
17686 #define GL_TEXTURE_FORMAT_QCOM 0x8BD6
17687 #define GL_TEXTURE_TYPE_QCOM 0x8BD7
17688 #define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8
17689 #define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9
17690 #define GL_TEXTURE_TARGET_QCOM 0x8BDA
17691 #define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB
17692 #define GL_STATE_RESTORE 0x8BDC
17693 
17694 typedef void (GLAPIENTRY * PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, void** params);
17695 typedef void (GLAPIENTRY * PFNGLEXTGETBUFFERSQCOMPROC) (GLuint* buffers, GLint maxBuffers, GLint* numBuffers);
17696 typedef void (GLAPIENTRY * PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers);
17697 typedef void (GLAPIENTRY * PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers);
17698 typedef void (GLAPIENTRY * PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params);
17699 typedef void (GLAPIENTRY * PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels);
17700 typedef void (GLAPIENTRY * PFNGLEXTGETTEXTURESQCOMPROC) (GLuint* textures, GLint maxTextures, GLint* numTextures);
17701 typedef void (GLAPIENTRY * PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
17702 
17703 #define glExtGetBufferPointervQCOM GLEW_GET_FUN(__glewExtGetBufferPointervQCOM)
17704 #define glExtGetBuffersQCOM GLEW_GET_FUN(__glewExtGetBuffersQCOM)
17705 #define glExtGetFramebuffersQCOM GLEW_GET_FUN(__glewExtGetFramebuffersQCOM)
17706 #define glExtGetRenderbuffersQCOM GLEW_GET_FUN(__glewExtGetRenderbuffersQCOM)
17707 #define glExtGetTexLevelParameterivQCOM GLEW_GET_FUN(__glewExtGetTexLevelParameterivQCOM)
17708 #define glExtGetTexSubImageQCOM GLEW_GET_FUN(__glewExtGetTexSubImageQCOM)
17709 #define glExtGetTexturesQCOM GLEW_GET_FUN(__glewExtGetTexturesQCOM)
17710 #define glExtTexObjectStateOverrideiQCOM GLEW_GET_FUN(__glewExtTexObjectStateOverrideiQCOM)
17711 
17712 #define GLEW_QCOM_extended_get GLEW_GET_VAR(__GLEW_QCOM_extended_get)
17713 
17714 #endif /* GL_QCOM_extended_get */
17715 
17716 /* ------------------------- GL_QCOM_extended_get2 ------------------------- */
17717 
17718 #ifndef GL_QCOM_extended_get2
17719 #define GL_QCOM_extended_get2 1
17720 
17721 typedef void (GLAPIENTRY * PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar* source, GLint* length);
17722 typedef void (GLAPIENTRY * PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint* programs, GLint maxPrograms, GLint* numPrograms);
17723 typedef void (GLAPIENTRY * PFNGLEXTGETSHADERSQCOMPROC) (GLuint* shaders, GLint maxShaders, GLint* numShaders);
17724 typedef GLboolean (GLAPIENTRY * PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
17725 
17726 #define glExtGetProgramBinarySourceQCOM GLEW_GET_FUN(__glewExtGetProgramBinarySourceQCOM)
17727 #define glExtGetProgramsQCOM GLEW_GET_FUN(__glewExtGetProgramsQCOM)
17728 #define glExtGetShadersQCOM GLEW_GET_FUN(__glewExtGetShadersQCOM)
17729 #define glExtIsProgramBinaryQCOM GLEW_GET_FUN(__glewExtIsProgramBinaryQCOM)
17730 
17731 #define GLEW_QCOM_extended_get2 GLEW_GET_VAR(__GLEW_QCOM_extended_get2)
17732 
17733 #endif /* GL_QCOM_extended_get2 */
17734 
17735 /* ---------------------- GL_QCOM_framebuffer_foveated --------------------- */
17736 
17737 #ifndef GL_QCOM_framebuffer_foveated
17738 #define GL_QCOM_framebuffer_foveated 1
17739 
17740 #define GL_FOVEATION_ENABLE_BIT_QCOM 0x1
17741 #define GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM 0x2
17742 
17743 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC) (GLuint fbo, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint* providedFeatures);
17744 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC) (GLuint fbo, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea);
17745 
17746 #define glFramebufferFoveationConfigQCOM GLEW_GET_FUN(__glewFramebufferFoveationConfigQCOM)
17747 #define glFramebufferFoveationParametersQCOM GLEW_GET_FUN(__glewFramebufferFoveationParametersQCOM)
17748 
17749 #define GLEW_QCOM_framebuffer_foveated GLEW_GET_VAR(__GLEW_QCOM_framebuffer_foveated)
17750 
17751 #endif /* GL_QCOM_framebuffer_foveated */
17752 
17753 /* ---------------------- GL_QCOM_perfmon_global_mode ---------------------- */
17754 
17755 #ifndef GL_QCOM_perfmon_global_mode
17756 #define GL_QCOM_perfmon_global_mode 1
17757 
17758 #define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0
17759 
17760 #define GLEW_QCOM_perfmon_global_mode GLEW_GET_VAR(__GLEW_QCOM_perfmon_global_mode)
17761 
17762 #endif /* GL_QCOM_perfmon_global_mode */
17763 
17764 /* -------------- GL_QCOM_shader_framebuffer_fetch_noncoherent ------------- */
17765 
17766 #ifndef GL_QCOM_shader_framebuffer_fetch_noncoherent
17767 #define GL_QCOM_shader_framebuffer_fetch_noncoherent 1
17768 
17769 #define GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM 0x96A2
17770 
17771 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC) (void);
17772 
17773 #define glFramebufferFetchBarrierQCOM GLEW_GET_FUN(__glewFramebufferFetchBarrierQCOM)
17774 
17775 #define GLEW_QCOM_shader_framebuffer_fetch_noncoherent GLEW_GET_VAR(__GLEW_QCOM_shader_framebuffer_fetch_noncoherent)
17776 
17777 #endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */
17778 
17779 /* ------------------------ GL_QCOM_tiled_rendering ------------------------ */
17780 
17781 #ifndef GL_QCOM_tiled_rendering
17782 #define GL_QCOM_tiled_rendering 1
17783 
17784 #define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001
17785 #define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002
17786 #define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004
17787 #define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008
17788 #define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010
17789 #define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020
17790 #define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040
17791 #define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080
17792 #define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100
17793 #define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200
17794 #define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400
17795 #define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800
17796 #define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000
17797 #define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000
17798 #define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000
17799 #define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000
17800 #define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000
17801 #define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000
17802 #define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000
17803 #define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000
17804 #define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000
17805 #define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000
17806 #define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000
17807 #define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000
17808 #define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000
17809 #define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000
17810 #define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000
17811 #define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000
17812 #define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000
17813 #define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000
17814 #define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000
17815 #define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000
17816 
17817 typedef void (GLAPIENTRY * PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
17818 typedef void (GLAPIENTRY * PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
17819 
17820 #define glEndTilingQCOM GLEW_GET_FUN(__glewEndTilingQCOM)
17821 #define glStartTilingQCOM GLEW_GET_FUN(__glewStartTilingQCOM)
17822 
17823 #define GLEW_QCOM_tiled_rendering GLEW_GET_VAR(__GLEW_QCOM_tiled_rendering)
17824 
17825 #endif /* GL_QCOM_tiled_rendering */
17826 
17827 /* ---------------------- GL_QCOM_writeonly_rendering ---------------------- */
17828 
17829 #ifndef GL_QCOM_writeonly_rendering
17830 #define GL_QCOM_writeonly_rendering 1
17831 
17832 #define GL_WRITEONLY_RENDERING_QCOM 0x8823
17833 
17834 #define GLEW_QCOM_writeonly_rendering GLEW_GET_VAR(__GLEW_QCOM_writeonly_rendering)
17835 
17836 #endif /* GL_QCOM_writeonly_rendering */
17837 
17838 /* ---------------------- GL_REGAL_ES1_0_compatibility --------------------- */
17839 
17840 #ifndef GL_REGAL_ES1_0_compatibility
17841 #define GL_REGAL_ES1_0_compatibility 1
17842 
17843 typedef int GLclampx;
17844 
17845 typedef void (GLAPIENTRY * PFNGLALPHAFUNCXPROC) (GLenum func, GLclampx ref);
17846 typedef void (GLAPIENTRY * PFNGLCLEARCOLORXPROC) (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
17847 typedef void (GLAPIENTRY * PFNGLCLEARDEPTHXPROC) (GLclampx depth);
17848 typedef void (GLAPIENTRY * PFNGLCOLOR4XPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
17849 typedef void (GLAPIENTRY * PFNGLDEPTHRANGEXPROC) (GLclampx zNear, GLclampx zFar);
17850 typedef void (GLAPIENTRY * PFNGLFOGXPROC) (GLenum pname, GLfixed param);
17851 typedef void (GLAPIENTRY * PFNGLFOGXVPROC) (GLenum pname, const GLfixed* params);
17852 typedef void (GLAPIENTRY * PFNGLFRUSTUMFPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
17853 typedef void (GLAPIENTRY * PFNGLFRUSTUMXPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
17854 typedef void (GLAPIENTRY * PFNGLLIGHTMODELXPROC) (GLenum pname, GLfixed param);
17855 typedef void (GLAPIENTRY * PFNGLLIGHTMODELXVPROC) (GLenum pname, const GLfixed* params);
17856 typedef void (GLAPIENTRY * PFNGLLIGHTXPROC) (GLenum light, GLenum pname, GLfixed param);
17857 typedef void (GLAPIENTRY * PFNGLLIGHTXVPROC) (GLenum light, GLenum pname, const GLfixed* params);
17858 typedef void (GLAPIENTRY * PFNGLLINEWIDTHXPROC) (GLfixed width);
17859 typedef void (GLAPIENTRY * PFNGLLOADMATRIXXPROC) (const GLfixed* m);
17860 typedef void (GLAPIENTRY * PFNGLMATERIALXPROC) (GLenum face, GLenum pname, GLfixed param);
17861 typedef void (GLAPIENTRY * PFNGLMATERIALXVPROC) (GLenum face, GLenum pname, const GLfixed* params);
17862 typedef void (GLAPIENTRY * PFNGLMULTMATRIXXPROC) (const GLfixed* m);
17863 typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4XPROC) (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
17864 typedef void (GLAPIENTRY * PFNGLNORMAL3XPROC) (GLfixed nx, GLfixed ny, GLfixed nz);
17865 typedef void (GLAPIENTRY * PFNGLORTHOFPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
17866 typedef void (GLAPIENTRY * PFNGLORTHOXPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
17867 typedef void (GLAPIENTRY * PFNGLPOINTSIZEXPROC) (GLfixed size);
17868 typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETXPROC) (GLfixed factor, GLfixed units);
17869 typedef void (GLAPIENTRY * PFNGLROTATEXPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
17870 typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEXPROC) (GLclampx value, GLboolean invert);
17871 typedef void (GLAPIENTRY * PFNGLSCALEXPROC) (GLfixed x, GLfixed y, GLfixed z);
17872 typedef void (GLAPIENTRY * PFNGLTEXENVXPROC) (GLenum target, GLenum pname, GLfixed param);
17873 typedef void (GLAPIENTRY * PFNGLTEXENVXVPROC) (GLenum target, GLenum pname, const GLfixed* params);
17874 typedef void (GLAPIENTRY * PFNGLTEXPARAMETERXPROC) (GLenum target, GLenum pname, GLfixed param);
17875 typedef void (GLAPIENTRY * PFNGLTRANSLATEXPROC) (GLfixed x, GLfixed y, GLfixed z);
17876 
17877 #define glAlphaFuncx GLEW_GET_FUN(__glewAlphaFuncx)
17878 #define glClearColorx GLEW_GET_FUN(__glewClearColorx)
17879 #define glClearDepthx GLEW_GET_FUN(__glewClearDepthx)
17880 #define glColor4x GLEW_GET_FUN(__glewColor4x)
17881 #define glDepthRangex GLEW_GET_FUN(__glewDepthRangex)
17882 #define glFogx GLEW_GET_FUN(__glewFogx)
17883 #define glFogxv GLEW_GET_FUN(__glewFogxv)
17884 #define glFrustumf GLEW_GET_FUN(__glewFrustumf)
17885 #define glFrustumx GLEW_GET_FUN(__glewFrustumx)
17886 #define glLightModelx GLEW_GET_FUN(__glewLightModelx)
17887 #define glLightModelxv GLEW_GET_FUN(__glewLightModelxv)
17888 #define glLightx GLEW_GET_FUN(__glewLightx)
17889 #define glLightxv GLEW_GET_FUN(__glewLightxv)
17890 #define glLineWidthx GLEW_GET_FUN(__glewLineWidthx)
17891 #define glLoadMatrixx GLEW_GET_FUN(__glewLoadMatrixx)
17892 #define glMaterialx GLEW_GET_FUN(__glewMaterialx)
17893 #define glMaterialxv GLEW_GET_FUN(__glewMaterialxv)
17894 #define glMultMatrixx GLEW_GET_FUN(__glewMultMatrixx)
17895 #define glMultiTexCoord4x GLEW_GET_FUN(__glewMultiTexCoord4x)
17896 #define glNormal3x GLEW_GET_FUN(__glewNormal3x)
17897 #define glOrthof GLEW_GET_FUN(__glewOrthof)
17898 #define glOrthox GLEW_GET_FUN(__glewOrthox)
17899 #define glPointSizex GLEW_GET_FUN(__glewPointSizex)
17900 #define glPolygonOffsetx GLEW_GET_FUN(__glewPolygonOffsetx)
17901 #define glRotatex GLEW_GET_FUN(__glewRotatex)
17902 #define glSampleCoveragex GLEW_GET_FUN(__glewSampleCoveragex)
17903 #define glScalex GLEW_GET_FUN(__glewScalex)
17904 #define glTexEnvx GLEW_GET_FUN(__glewTexEnvx)
17905 #define glTexEnvxv GLEW_GET_FUN(__glewTexEnvxv)
17906 #define glTexParameterx GLEW_GET_FUN(__glewTexParameterx)
17907 #define glTranslatex GLEW_GET_FUN(__glewTranslatex)
17908 
17909 #define GLEW_REGAL_ES1_0_compatibility GLEW_GET_VAR(__GLEW_REGAL_ES1_0_compatibility)
17910 
17911 #endif /* GL_REGAL_ES1_0_compatibility */
17912 
17913 /* ---------------------- GL_REGAL_ES1_1_compatibility --------------------- */
17914 
17915 #ifndef GL_REGAL_ES1_1_compatibility
17916 #define GL_REGAL_ES1_1_compatibility 1
17917 
17918 typedef void (GLAPIENTRY * PFNGLCLIPPLANEFPROC) (GLenum plane, const GLfloat* equation);
17919 typedef void (GLAPIENTRY * PFNGLCLIPPLANEXPROC) (GLenum plane, const GLfixed* equation);
17920 typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEFPROC) (GLenum pname, GLfloat eqn[4]);
17921 typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEXPROC) (GLenum pname, GLfixed eqn[4]);
17922 typedef void (GLAPIENTRY * PFNGLGETFIXEDVPROC) (GLenum pname, GLfixed* params);
17923 typedef void (GLAPIENTRY * PFNGLGETLIGHTXVPROC) (GLenum light, GLenum pname, GLfixed* params);
17924 typedef void (GLAPIENTRY * PFNGLGETMATERIALXVPROC) (GLenum face, GLenum pname, GLfixed* params);
17925 typedef void (GLAPIENTRY * PFNGLGETTEXENVXVPROC) (GLenum env, GLenum pname, GLfixed* params);
17926 typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERXVPROC) (GLenum target, GLenum pname, GLfixed* params);
17927 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERXPROC) (GLenum pname, GLfixed param);
17928 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERXVPROC) (GLenum pname, const GLfixed* params);
17929 typedef void (GLAPIENTRY * PFNGLPOINTSIZEPOINTEROESPROC) (GLenum type, GLsizei stride, const void *pointer);
17930 typedef void (GLAPIENTRY * PFNGLTEXPARAMETERXVPROC) (GLenum target, GLenum pname, const GLfixed* params);
17931 
17932 #define glClipPlanef GLEW_GET_FUN(__glewClipPlanef)
17933 #define glClipPlanex GLEW_GET_FUN(__glewClipPlanex)
17934 #define glGetClipPlanef GLEW_GET_FUN(__glewGetClipPlanef)
17935 #define glGetClipPlanex GLEW_GET_FUN(__glewGetClipPlanex)
17936 #define glGetFixedv GLEW_GET_FUN(__glewGetFixedv)
17937 #define glGetLightxv GLEW_GET_FUN(__glewGetLightxv)
17938 #define glGetMaterialxv GLEW_GET_FUN(__glewGetMaterialxv)
17939 #define glGetTexEnvxv GLEW_GET_FUN(__glewGetTexEnvxv)
17940 #define glGetTexParameterxv GLEW_GET_FUN(__glewGetTexParameterxv)
17941 #define glPointParameterx GLEW_GET_FUN(__glewPointParameterx)
17942 #define glPointParameterxv GLEW_GET_FUN(__glewPointParameterxv)
17943 #define glPointSizePointerOES GLEW_GET_FUN(__glewPointSizePointerOES)
17944 #define glTexParameterxv GLEW_GET_FUN(__glewTexParameterxv)
17945 
17946 #define GLEW_REGAL_ES1_1_compatibility GLEW_GET_VAR(__GLEW_REGAL_ES1_1_compatibility)
17947 
17948 #endif /* GL_REGAL_ES1_1_compatibility */
17949 
17950 /* ---------------------------- GL_REGAL_enable ---------------------------- */
17951 
17952 #ifndef GL_REGAL_enable
17953 #define GL_REGAL_enable 1
17954 
17955 #define GL_ERROR_REGAL 0x9322
17956 #define GL_DEBUG_REGAL 0x9323
17957 #define GL_LOG_REGAL 0x9324
17958 #define GL_EMULATION_REGAL 0x9325
17959 #define GL_DRIVER_REGAL 0x9326
17960 #define GL_MISSING_REGAL 0x9360
17961 #define GL_TRACE_REGAL 0x9361
17962 #define GL_CACHE_REGAL 0x9362
17963 #define GL_CODE_REGAL 0x9363
17964 #define GL_STATISTICS_REGAL 0x9364
17965 
17966 #define GLEW_REGAL_enable GLEW_GET_VAR(__GLEW_REGAL_enable)
17967 
17968 #endif /* GL_REGAL_enable */
17969 
17970 /* ------------------------- GL_REGAL_error_string ------------------------- */
17971 
17972 #ifndef GL_REGAL_error_string
17973 #define GL_REGAL_error_string 1
17974 
17975 typedef const GLchar* (GLAPIENTRY * PFNGLERRORSTRINGREGALPROC) (GLenum error);
17976 
17977 #define glErrorStringREGAL GLEW_GET_FUN(__glewErrorStringREGAL)
17978 
17979 #define GLEW_REGAL_error_string GLEW_GET_VAR(__GLEW_REGAL_error_string)
17980 
17981 #endif /* GL_REGAL_error_string */
17982 
17983 /* ------------------------ GL_REGAL_extension_query ----------------------- */
17984 
17985 #ifndef GL_REGAL_extension_query
17986 #define GL_REGAL_extension_query 1
17987 
17988 typedef GLboolean (GLAPIENTRY * PFNGLGETEXTENSIONREGALPROC) (const GLchar* ext);
17989 typedef GLboolean (GLAPIENTRY * PFNGLISSUPPORTEDREGALPROC) (const GLchar* ext);
17990 
17991 #define glGetExtensionREGAL GLEW_GET_FUN(__glewGetExtensionREGAL)
17992 #define glIsSupportedREGAL GLEW_GET_FUN(__glewIsSupportedREGAL)
17993 
17994 #define GLEW_REGAL_extension_query GLEW_GET_VAR(__GLEW_REGAL_extension_query)
17995 
17996 #endif /* GL_REGAL_extension_query */
17997 
17998 /* ------------------------------ GL_REGAL_log ----------------------------- */
17999 
18000 #ifndef GL_REGAL_log
18001 #define GL_REGAL_log 1
18002 
18003 #define GL_LOG_ERROR_REGAL 0x9319
18004 #define GL_LOG_WARNING_REGAL 0x931A
18005 #define GL_LOG_INFO_REGAL 0x931B
18006 #define GL_LOG_APP_REGAL 0x931C
18007 #define GL_LOG_DRIVER_REGAL 0x931D
18008 #define GL_LOG_INTERNAL_REGAL 0x931E
18009 #define GL_LOG_DEBUG_REGAL 0x931F
18010 #define GL_LOG_STATUS_REGAL 0x9320
18011 #define GL_LOG_HTTP_REGAL 0x9321
18012 
18013 typedef void (APIENTRY *GLLOGPROCREGAL)(GLenum stream, GLsizei length, const GLchar *message, void *context);
18014 
18015 typedef void (GLAPIENTRY * PFNGLLOGMESSAGECALLBACKREGALPROC) (GLLOGPROCREGAL callback);
18016 
18017 #define glLogMessageCallbackREGAL GLEW_GET_FUN(__glewLogMessageCallbackREGAL)
18018 
18019 #define GLEW_REGAL_log GLEW_GET_VAR(__GLEW_REGAL_log)
18020 
18021 #endif /* GL_REGAL_log */
18022 
18023 /* ------------------------- GL_REGAL_proc_address ------------------------- */
18024 
18025 #ifndef GL_REGAL_proc_address
18026 #define GL_REGAL_proc_address 1
18027 
18028 typedef void * (GLAPIENTRY * PFNGLGETPROCADDRESSREGALPROC) (const GLchar *name);
18029 
18030 #define glGetProcAddressREGAL GLEW_GET_FUN(__glewGetProcAddressREGAL)
18031 
18032 #define GLEW_REGAL_proc_address GLEW_GET_VAR(__GLEW_REGAL_proc_address)
18033 
18034 #endif /* GL_REGAL_proc_address */
18035 
18036 /* ----------------------- GL_REND_screen_coordinates ---------------------- */
18037 
18038 #ifndef GL_REND_screen_coordinates
18039 #define GL_REND_screen_coordinates 1
18040 
18041 #define GL_SCREEN_COORDINATES_REND 0x8490
18042 #define GL_INVERTED_SCREEN_W_REND 0x8491
18043 
18044 #define GLEW_REND_screen_coordinates GLEW_GET_VAR(__GLEW_REND_screen_coordinates)
18045 
18046 #endif /* GL_REND_screen_coordinates */
18047 
18048 /* ------------------------------- GL_S3_s3tc ------------------------------ */
18049 
18050 #ifndef GL_S3_s3tc
18051 #define GL_S3_s3tc 1
18052 
18053 #define GL_RGB_S3TC 0x83A0
18054 #define GL_RGB4_S3TC 0x83A1
18055 #define GL_RGBA_S3TC 0x83A2
18056 #define GL_RGBA4_S3TC 0x83A3
18057 #define GL_RGBA_DXT5_S3TC 0x83A4
18058 #define GL_RGBA4_DXT5_S3TC 0x83A5
18059 
18060 #define GLEW_S3_s3tc GLEW_GET_VAR(__GLEW_S3_s3tc)
18061 
18062 #endif /* GL_S3_s3tc */
18063 
18064 /* ------------------------- GL_SGIS_clip_band_hint ------------------------ */
18065 
18066 #ifndef GL_SGIS_clip_band_hint
18067 #define GL_SGIS_clip_band_hint 1
18068 
18069 #define GLEW_SGIS_clip_band_hint GLEW_GET_VAR(__GLEW_SGIS_clip_band_hint)
18070 
18071 #endif /* GL_SGIS_clip_band_hint */
18072 
18073 /* -------------------------- GL_SGIS_color_range -------------------------- */
18074 
18075 #ifndef GL_SGIS_color_range
18076 #define GL_SGIS_color_range 1
18077 
18078 #define GL_EXTENDED_RANGE_SGIS 0x85A5
18079 #define GL_MIN_RED_SGIS 0x85A6
18080 #define GL_MAX_RED_SGIS 0x85A7
18081 #define GL_MIN_GREEN_SGIS 0x85A8
18082 #define GL_MAX_GREEN_SGIS 0x85A9
18083 #define GL_MIN_BLUE_SGIS 0x85AA
18084 #define GL_MAX_BLUE_SGIS 0x85AB
18085 #define GL_MIN_ALPHA_SGIS 0x85AC
18086 #define GL_MAX_ALPHA_SGIS 0x85AD
18087 
18088 #define GLEW_SGIS_color_range GLEW_GET_VAR(__GLEW_SGIS_color_range)
18089 
18090 #endif /* GL_SGIS_color_range */
18091 
18092 /* ------------------------- GL_SGIS_detail_texture ------------------------ */
18093 
18094 #ifndef GL_SGIS_detail_texture
18095 #define GL_SGIS_detail_texture 1
18096 
18097 typedef void (GLAPIENTRY * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points);
18098 typedef void (GLAPIENTRY * PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat* points);
18099 
18100 #define glDetailTexFuncSGIS GLEW_GET_FUN(__glewDetailTexFuncSGIS)
18101 #define glGetDetailTexFuncSGIS GLEW_GET_FUN(__glewGetDetailTexFuncSGIS)
18102 
18103 #define GLEW_SGIS_detail_texture GLEW_GET_VAR(__GLEW_SGIS_detail_texture)
18104 
18105 #endif /* GL_SGIS_detail_texture */
18106 
18107 /* -------------------------- GL_SGIS_fog_function ------------------------- */
18108 
18109 #ifndef GL_SGIS_fog_function
18110 #define GL_SGIS_fog_function 1
18111 
18112 typedef void (GLAPIENTRY * PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat* points);
18113 typedef void (GLAPIENTRY * PFNGLGETFOGFUNCSGISPROC) (GLfloat* points);
18114 
18115 #define glFogFuncSGIS GLEW_GET_FUN(__glewFogFuncSGIS)
18116 #define glGetFogFuncSGIS GLEW_GET_FUN(__glewGetFogFuncSGIS)
18117 
18118 #define GLEW_SGIS_fog_function GLEW_GET_VAR(__GLEW_SGIS_fog_function)
18119 
18120 #endif /* GL_SGIS_fog_function */
18121 
18122 /* ------------------------ GL_SGIS_generate_mipmap ------------------------ */
18123 
18124 #ifndef GL_SGIS_generate_mipmap
18125 #define GL_SGIS_generate_mipmap 1
18126 
18127 #define GL_GENERATE_MIPMAP_SGIS 0x8191
18128 #define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192
18129 
18130 #define GLEW_SGIS_generate_mipmap GLEW_GET_VAR(__GLEW_SGIS_generate_mipmap)
18131 
18132 #endif /* GL_SGIS_generate_mipmap */
18133 
18134 /* -------------------------- GL_SGIS_line_texgen -------------------------- */
18135 
18136 #ifndef GL_SGIS_line_texgen
18137 #define GL_SGIS_line_texgen 1
18138 
18139 #define GLEW_SGIS_line_texgen GLEW_GET_VAR(__GLEW_SGIS_line_texgen)
18140 
18141 #endif /* GL_SGIS_line_texgen */
18142 
18143 /* -------------------------- GL_SGIS_multisample -------------------------- */
18144 
18145 #ifndef GL_SGIS_multisample
18146 #define GL_SGIS_multisample 1
18147 
18148 #define GL_MULTISAMPLE_SGIS 0x809D
18149 #define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E
18150 #define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F
18151 #define GL_SAMPLE_MASK_SGIS 0x80A0
18152 #define GL_1PASS_SGIS 0x80A1
18153 #define GL_2PASS_0_SGIS 0x80A2
18154 #define GL_2PASS_1_SGIS 0x80A3
18155 #define GL_4PASS_0_SGIS 0x80A4
18156 #define GL_4PASS_1_SGIS 0x80A5
18157 #define GL_4PASS_2_SGIS 0x80A6
18158 #define GL_4PASS_3_SGIS 0x80A7
18159 #define GL_SAMPLE_BUFFERS_SGIS 0x80A8
18160 #define GL_SAMPLES_SGIS 0x80A9
18161 #define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA
18162 #define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB
18163 #define GL_SAMPLE_PATTERN_SGIS 0x80AC
18164 
18165 typedef void (GLAPIENTRY * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert);
18166 typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern);
18167 
18168 #define glSampleMaskSGIS GLEW_GET_FUN(__glewSampleMaskSGIS)
18169 #define glSamplePatternSGIS GLEW_GET_FUN(__glewSamplePatternSGIS)
18170 
18171 #define GLEW_SGIS_multisample GLEW_GET_VAR(__GLEW_SGIS_multisample)
18172 
18173 #endif /* GL_SGIS_multisample */
18174 
18175 /* -------------------------- GL_SGIS_multitexture ------------------------- */
18176 
18177 #ifndef GL_SGIS_multitexture
18178 #define GL_SGIS_multitexture 1
18179 
18180 #define GL_SELECTED_TEXTURE_SGIS 0x83C0
18181 #define GL_SELECTED_TEXTURE_COORD_SET_SGIS 0x83C1
18182 #define GL_SELECTED_TEXTURE_TRANSFORM_SGIS 0x83C2
18183 #define GL_MAX_TEXTURES_SGIS 0x83C3
18184 #define GL_MAX_TEXTURE_COORD_SETS_SGIS 0x83C4
18185 #define GL_TEXTURE_COORD_SET_INTERLEAVE_FACTOR_SGIS 0x83C5
18186 #define GL_TEXTURE_ENV_COORD_SET_SGIS 0x83C6
18187 #define GL_TEXTURE0_SGIS 0x83C7
18188 #define GL_TEXTURE1_SGIS 0x83C8
18189 #define GL_TEXTURE2_SGIS 0x83C9
18190 #define GL_TEXTURE3_SGIS 0x83CA
18191 
18192 typedef void (GLAPIENTRY * PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC) (GLint factor);
18193 typedef void (GLAPIENTRY * PFNGLSELECTTEXTURECOORDSETSGISPROC) (GLenum target);
18194 typedef void (GLAPIENTRY * PFNGLSELECTTEXTURESGISPROC) (GLenum target);
18195 typedef void (GLAPIENTRY * PFNGLSELECTTEXTURETRANSFORMSGISPROC) (GLenum target);
18196 
18197 #define glInterleavedTextureCoordSetsSGIS GLEW_GET_FUN(__glewInterleavedTextureCoordSetsSGIS)
18198 #define glSelectTextureCoordSetSGIS GLEW_GET_FUN(__glewSelectTextureCoordSetSGIS)
18199 #define glSelectTextureSGIS GLEW_GET_FUN(__glewSelectTextureSGIS)
18200 #define glSelectTextureTransformSGIS GLEW_GET_FUN(__glewSelectTextureTransformSGIS)
18201 
18202 #define GLEW_SGIS_multitexture GLEW_GET_VAR(__GLEW_SGIS_multitexture)
18203 
18204 #endif /* GL_SGIS_multitexture */
18205 
18206 /* ------------------------- GL_SGIS_pixel_texture ------------------------- */
18207 
18208 #ifndef GL_SGIS_pixel_texture
18209 #define GL_SGIS_pixel_texture 1
18210 
18211 #define GLEW_SGIS_pixel_texture GLEW_GET_VAR(__GLEW_SGIS_pixel_texture)
18212 
18213 #endif /* GL_SGIS_pixel_texture */
18214 
18215 /* ----------------------- GL_SGIS_point_line_texgen ----------------------- */
18216 
18217 #ifndef GL_SGIS_point_line_texgen
18218 #define GL_SGIS_point_line_texgen 1
18219 
18220 #define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0
18221 #define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1
18222 #define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2
18223 #define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3
18224 #define GL_EYE_POINT_SGIS 0x81F4
18225 #define GL_OBJECT_POINT_SGIS 0x81F5
18226 #define GL_EYE_LINE_SGIS 0x81F6
18227 #define GL_OBJECT_LINE_SGIS 0x81F7
18228 
18229 #define GLEW_SGIS_point_line_texgen GLEW_GET_VAR(__GLEW_SGIS_point_line_texgen)
18230 
18231 #endif /* GL_SGIS_point_line_texgen */
18232 
18233 /* ----------------------- GL_SGIS_shared_multisample ---------------------- */
18234 
18235 #ifndef GL_SGIS_shared_multisample
18236 #define GL_SGIS_shared_multisample 1
18237 
18238 typedef void (GLAPIENTRY * PFNGLMULTISAMPLESUBRECTPOSSGISPROC) (GLint x, GLint y);
18239 
18240 #define glMultisampleSubRectPosSGIS GLEW_GET_FUN(__glewMultisampleSubRectPosSGIS)
18241 
18242 #define GLEW_SGIS_shared_multisample GLEW_GET_VAR(__GLEW_SGIS_shared_multisample)
18243 
18244 #endif /* GL_SGIS_shared_multisample */
18245 
18246 /* ------------------------ GL_SGIS_sharpen_texture ------------------------ */
18247 
18248 #ifndef GL_SGIS_sharpen_texture
18249 #define GL_SGIS_sharpen_texture 1
18250 
18251 typedef void (GLAPIENTRY * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat* points);
18252 typedef void (GLAPIENTRY * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points);
18253 
18254 #define glGetSharpenTexFuncSGIS GLEW_GET_FUN(__glewGetSharpenTexFuncSGIS)
18255 #define glSharpenTexFuncSGIS GLEW_GET_FUN(__glewSharpenTexFuncSGIS)
18256 
18257 #define GLEW_SGIS_sharpen_texture GLEW_GET_VAR(__GLEW_SGIS_sharpen_texture)
18258 
18259 #endif /* GL_SGIS_sharpen_texture */
18260 
18261 /* --------------------------- GL_SGIS_texture4D --------------------------- */
18262 
18263 #ifndef GL_SGIS_texture4D
18264 #define GL_SGIS_texture4D 1
18265 
18266 typedef void (GLAPIENTRY * PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void *pixels);
18267 typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const void *pixels);
18268 
18269 #define glTexImage4DSGIS GLEW_GET_FUN(__glewTexImage4DSGIS)
18270 #define glTexSubImage4DSGIS GLEW_GET_FUN(__glewTexSubImage4DSGIS)
18271 
18272 #define GLEW_SGIS_texture4D GLEW_GET_VAR(__GLEW_SGIS_texture4D)
18273 
18274 #endif /* GL_SGIS_texture4D */
18275 
18276 /* ---------------------- GL_SGIS_texture_border_clamp --------------------- */
18277 
18278 #ifndef GL_SGIS_texture_border_clamp
18279 #define GL_SGIS_texture_border_clamp 1
18280 
18281 #define GL_CLAMP_TO_BORDER_SGIS 0x812D
18282 
18283 #define GLEW_SGIS_texture_border_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_border_clamp)
18284 
18285 #endif /* GL_SGIS_texture_border_clamp */
18286 
18287 /* ----------------------- GL_SGIS_texture_edge_clamp ---------------------- */
18288 
18289 #ifndef GL_SGIS_texture_edge_clamp
18290 #define GL_SGIS_texture_edge_clamp 1
18291 
18292 #define GL_CLAMP_TO_EDGE_SGIS 0x812F
18293 
18294 #define GLEW_SGIS_texture_edge_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_edge_clamp)
18295 
18296 #endif /* GL_SGIS_texture_edge_clamp */
18297 
18298 /* ------------------------ GL_SGIS_texture_filter4 ------------------------ */
18299 
18300 #ifndef GL_SGIS_texture_filter4
18301 #define GL_SGIS_texture_filter4 1
18302 
18303 typedef void (GLAPIENTRY * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat* weights);
18304 typedef void (GLAPIENTRY * PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat* weights);
18305 
18306 #define glGetTexFilterFuncSGIS GLEW_GET_FUN(__glewGetTexFilterFuncSGIS)
18307 #define glTexFilterFuncSGIS GLEW_GET_FUN(__glewTexFilterFuncSGIS)
18308 
18309 #define GLEW_SGIS_texture_filter4 GLEW_GET_VAR(__GLEW_SGIS_texture_filter4)
18310 
18311 #endif /* GL_SGIS_texture_filter4 */
18312 
18313 /* -------------------------- GL_SGIS_texture_lod -------------------------- */
18314 
18315 #ifndef GL_SGIS_texture_lod
18316 #define GL_SGIS_texture_lod 1
18317 
18318 #define GL_TEXTURE_MIN_LOD_SGIS 0x813A
18319 #define GL_TEXTURE_MAX_LOD_SGIS 0x813B
18320 #define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C
18321 #define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D
18322 
18323 #define GLEW_SGIS_texture_lod GLEW_GET_VAR(__GLEW_SGIS_texture_lod)
18324 
18325 #endif /* GL_SGIS_texture_lod */
18326 
18327 /* ------------------------- GL_SGIS_texture_select ------------------------ */
18328 
18329 #ifndef GL_SGIS_texture_select
18330 #define GL_SGIS_texture_select 1
18331 
18332 #define GLEW_SGIS_texture_select GLEW_GET_VAR(__GLEW_SGIS_texture_select)
18333 
18334 #endif /* GL_SGIS_texture_select */
18335 
18336 /* ----------------------------- GL_SGIX_async ----------------------------- */
18337 
18338 #ifndef GL_SGIX_async
18339 #define GL_SGIX_async 1
18340 
18341 #define GL_ASYNC_MARKER_SGIX 0x8329
18342 
18343 typedef void (GLAPIENTRY * PFNGLASYNCMARKERSGIXPROC) (GLuint marker);
18344 typedef void (GLAPIENTRY * PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range);
18345 typedef GLint (GLAPIENTRY * PFNGLFINISHASYNCSGIXPROC) (GLuint* markerp);
18346 typedef GLuint (GLAPIENTRY * PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range);
18347 typedef GLboolean (GLAPIENTRY * PFNGLISASYNCMARKERSGIXPROC) (GLuint marker);
18348 typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp);
18349 
18350 #define glAsyncMarkerSGIX GLEW_GET_FUN(__glewAsyncMarkerSGIX)
18351 #define glDeleteAsyncMarkersSGIX GLEW_GET_FUN(__glewDeleteAsyncMarkersSGIX)
18352 #define glFinishAsyncSGIX GLEW_GET_FUN(__glewFinishAsyncSGIX)
18353 #define glGenAsyncMarkersSGIX GLEW_GET_FUN(__glewGenAsyncMarkersSGIX)
18354 #define glIsAsyncMarkerSGIX GLEW_GET_FUN(__glewIsAsyncMarkerSGIX)
18355 #define glPollAsyncSGIX GLEW_GET_FUN(__glewPollAsyncSGIX)
18356 
18357 #define GLEW_SGIX_async GLEW_GET_VAR(__GLEW_SGIX_async)
18358 
18359 #endif /* GL_SGIX_async */
18360 
18361 /* ------------------------ GL_SGIX_async_histogram ------------------------ */
18362 
18363 #ifndef GL_SGIX_async_histogram
18364 #define GL_SGIX_async_histogram 1
18365 
18366 #define GL_ASYNC_HISTOGRAM_SGIX 0x832C
18367 #define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D
18368 
18369 #define GLEW_SGIX_async_histogram GLEW_GET_VAR(__GLEW_SGIX_async_histogram)
18370 
18371 #endif /* GL_SGIX_async_histogram */
18372 
18373 /* -------------------------- GL_SGIX_async_pixel -------------------------- */
18374 
18375 #ifndef GL_SGIX_async_pixel
18376 #define GL_SGIX_async_pixel 1
18377 
18378 #define GL_ASYNC_TEX_IMAGE_SGIX 0x835C
18379 #define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D
18380 #define GL_ASYNC_READ_PIXELS_SGIX 0x835E
18381 #define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F
18382 #define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360
18383 #define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361
18384 
18385 #define GLEW_SGIX_async_pixel GLEW_GET_VAR(__GLEW_SGIX_async_pixel)
18386 
18387 #endif /* GL_SGIX_async_pixel */
18388 
18389 /* ----------------------- GL_SGIX_bali_g_instruments ---------------------- */
18390 
18391 #ifndef GL_SGIX_bali_g_instruments
18392 #define GL_SGIX_bali_g_instruments 1
18393 
18394 #define GL_BALI_NUM_TRIS_CULLED_INSTRUMENT 0x6080
18395 #define GL_BALI_NUM_PRIMS_CLIPPED_INSTRUMENT 0x6081
18396 #define GL_BALI_NUM_PRIMS_REJECT_INSTRUMENT 0x6082
18397 #define GL_BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT 0x6083
18398 
18399 #define GLEW_SGIX_bali_g_instruments GLEW_GET_VAR(__GLEW_SGIX_bali_g_instruments)
18400 
18401 #endif /* GL_SGIX_bali_g_instruments */
18402 
18403 /* ----------------------- GL_SGIX_bali_r_instruments ---------------------- */
18404 
18405 #ifndef GL_SGIX_bali_r_instruments
18406 #define GL_SGIX_bali_r_instruments 1
18407 
18408 #define GL_BALI_FRAGMENTS_GENERATED_INSTRUMENT 0x6090
18409 #define GL_BALI_DEPTH_PASS_INSTRUMENT 0x6091
18410 #define GL_BALI_R_CHIP_COUNT 0x6092
18411 
18412 #define GLEW_SGIX_bali_r_instruments GLEW_GET_VAR(__GLEW_SGIX_bali_r_instruments)
18413 
18414 #endif /* GL_SGIX_bali_r_instruments */
18415 
18416 /* --------------------- GL_SGIX_bali_timer_instruments -------------------- */
18417 
18418 #ifndef GL_SGIX_bali_timer_instruments
18419 #define GL_SGIX_bali_timer_instruments 1
18420 
18421 #define GLEW_SGIX_bali_timer_instruments GLEW_GET_VAR(__GLEW_SGIX_bali_timer_instruments)
18422 
18423 #endif /* GL_SGIX_bali_timer_instruments */
18424 
18425 /* ----------------------- GL_SGIX_blend_alpha_minmax ---------------------- */
18426 
18427 #ifndef GL_SGIX_blend_alpha_minmax
18428 #define GL_SGIX_blend_alpha_minmax 1
18429 
18430 #define GL_ALPHA_MIN_SGIX 0x8320
18431 #define GL_ALPHA_MAX_SGIX 0x8321
18432 
18433 #define GLEW_SGIX_blend_alpha_minmax GLEW_GET_VAR(__GLEW_SGIX_blend_alpha_minmax)
18434 
18435 #endif /* GL_SGIX_blend_alpha_minmax */
18436 
18437 /* --------------------------- GL_SGIX_blend_cadd -------------------------- */
18438 
18439 #ifndef GL_SGIX_blend_cadd
18440 #define GL_SGIX_blend_cadd 1
18441 
18442 #define GL_FUNC_COMPLEX_ADD_EXT 0x601C
18443 
18444 #define GLEW_SGIX_blend_cadd GLEW_GET_VAR(__GLEW_SGIX_blend_cadd)
18445 
18446 #endif /* GL_SGIX_blend_cadd */
18447 
18448 /* ------------------------ GL_SGIX_blend_cmultiply ------------------------ */
18449 
18450 #ifndef GL_SGIX_blend_cmultiply
18451 #define GL_SGIX_blend_cmultiply 1
18452 
18453 #define GL_FUNC_COMPLEX_MULTIPLY_EXT 0x601B
18454 
18455 #define GLEW_SGIX_blend_cmultiply GLEW_GET_VAR(__GLEW_SGIX_blend_cmultiply)
18456 
18457 #endif /* GL_SGIX_blend_cmultiply */
18458 
18459 /* --------------------- GL_SGIX_calligraphic_fragment --------------------- */
18460 
18461 #ifndef GL_SGIX_calligraphic_fragment
18462 #define GL_SGIX_calligraphic_fragment 1
18463 
18464 #define GLEW_SGIX_calligraphic_fragment GLEW_GET_VAR(__GLEW_SGIX_calligraphic_fragment)
18465 
18466 #endif /* GL_SGIX_calligraphic_fragment */
18467 
18468 /* ---------------------------- GL_SGIX_clipmap ---------------------------- */
18469 
18470 #ifndef GL_SGIX_clipmap
18471 #define GL_SGIX_clipmap 1
18472 
18473 #define GLEW_SGIX_clipmap GLEW_GET_VAR(__GLEW_SGIX_clipmap)
18474 
18475 #endif /* GL_SGIX_clipmap */
18476 
18477 /* --------------------- GL_SGIX_color_matrix_accuracy --------------------- */
18478 
18479 #ifndef GL_SGIX_color_matrix_accuracy
18480 #define GL_SGIX_color_matrix_accuracy 1
18481 
18482 #define GL_COLOR_MATRIX_HINT 0x8317
18483 
18484 #define GLEW_SGIX_color_matrix_accuracy GLEW_GET_VAR(__GLEW_SGIX_color_matrix_accuracy)
18485 
18486 #endif /* GL_SGIX_color_matrix_accuracy */
18487 
18488 /* --------------------- GL_SGIX_color_table_index_mode -------------------- */
18489 
18490 #ifndef GL_SGIX_color_table_index_mode
18491 #define GL_SGIX_color_table_index_mode 1
18492 
18493 #define GLEW_SGIX_color_table_index_mode GLEW_GET_VAR(__GLEW_SGIX_color_table_index_mode)
18494 
18495 #endif /* GL_SGIX_color_table_index_mode */
18496 
18497 /* ------------------------- GL_SGIX_complex_polar ------------------------- */
18498 
18499 #ifndef GL_SGIX_complex_polar
18500 #define GL_SGIX_complex_polar 1
18501 
18502 #define GLEW_SGIX_complex_polar GLEW_GET_VAR(__GLEW_SGIX_complex_polar)
18503 
18504 #endif /* GL_SGIX_complex_polar */
18505 
18506 /* ---------------------- GL_SGIX_convolution_accuracy --------------------- */
18507 
18508 #ifndef GL_SGIX_convolution_accuracy
18509 #define GL_SGIX_convolution_accuracy 1
18510 
18511 #define GL_CONVOLUTION_HINT_SGIX 0x8316
18512 
18513 #define GLEW_SGIX_convolution_accuracy GLEW_GET_VAR(__GLEW_SGIX_convolution_accuracy)
18514 
18515 #endif /* GL_SGIX_convolution_accuracy */
18516 
18517 /* ---------------------------- GL_SGIX_cube_map --------------------------- */
18518 
18519 #ifndef GL_SGIX_cube_map
18520 #define GL_SGIX_cube_map 1
18521 
18522 #define GL_ENV_MAP_SGIX 0x8340
18523 #define GL_CUBE_MAP_SGIX 0x8341
18524 #define GL_CUBE_MAP_ZP_SGIX 0x8342
18525 #define GL_CUBE_MAP_ZN_SGIX 0x8343
18526 #define GL_CUBE_MAP_XN_SGIX 0x8344
18527 #define GL_CUBE_MAP_XP_SGIX 0x8345
18528 #define GL_CUBE_MAP_YN_SGIX 0x8346
18529 #define GL_CUBE_MAP_YP_SGIX 0x8347
18530 #define GL_CUBE_MAP_BINDING_SGIX 0x8348
18531 
18532 #define GLEW_SGIX_cube_map GLEW_GET_VAR(__GLEW_SGIX_cube_map)
18533 
18534 #endif /* GL_SGIX_cube_map */
18535 
18536 /* ------------------------ GL_SGIX_cylinder_texgen ------------------------ */
18537 
18538 #ifndef GL_SGIX_cylinder_texgen
18539 #define GL_SGIX_cylinder_texgen 1
18540 
18541 #define GLEW_SGIX_cylinder_texgen GLEW_GET_VAR(__GLEW_SGIX_cylinder_texgen)
18542 
18543 #endif /* GL_SGIX_cylinder_texgen */
18544 
18545 /* ---------------------------- GL_SGIX_datapipe --------------------------- */
18546 
18547 #ifndef GL_SGIX_datapipe
18548 #define GL_SGIX_datapipe 1
18549 
18550 #define GL_GEOMETRY_BIT 0x1
18551 #define GL_IMAGE_BIT 0x2
18552 
18553 typedef void (GLAPIENTRY * PFNGLADDRESSSPACEPROC) (GLenum space, GLbitfield mask);
18554 typedef GLint (GLAPIENTRY * PFNGLDATAPIPEPROC) (GLenum space);
18555 
18556 #define glAddressSpace GLEW_GET_FUN(__glewAddressSpace)
18557 #define glDataPipe GLEW_GET_FUN(__glewDataPipe)
18558 
18559 #define GLEW_SGIX_datapipe GLEW_GET_VAR(__GLEW_SGIX_datapipe)
18560 
18561 #endif /* GL_SGIX_datapipe */
18562 
18563 /* --------------------------- GL_SGIX_decimation -------------------------- */
18564 
18565 #ifndef GL_SGIX_decimation
18566 #define GL_SGIX_decimation 1
18567 
18568 #define GLEW_SGIX_decimation GLEW_GET_VAR(__GLEW_SGIX_decimation)
18569 
18570 #endif /* GL_SGIX_decimation */
18571 
18572 /* --------------------- GL_SGIX_depth_pass_instrument --------------------- */
18573 
18574 #ifndef GL_SGIX_depth_pass_instrument
18575 #define GL_SGIX_depth_pass_instrument 1
18576 
18577 #define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310
18578 #define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311
18579 #define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312
18580 
18581 #define GLEW_SGIX_depth_pass_instrument GLEW_GET_VAR(__GLEW_SGIX_depth_pass_instrument)
18582 
18583 #endif /* GL_SGIX_depth_pass_instrument */
18584 
18585 /* ------------------------- GL_SGIX_depth_texture ------------------------- */
18586 
18587 #ifndef GL_SGIX_depth_texture
18588 #define GL_SGIX_depth_texture 1
18589 
18590 #define GL_DEPTH_COMPONENT16_SGIX 0x81A5
18591 #define GL_DEPTH_COMPONENT24_SGIX 0x81A6
18592 #define GL_DEPTH_COMPONENT32_SGIX 0x81A7
18593 
18594 #define GLEW_SGIX_depth_texture GLEW_GET_VAR(__GLEW_SGIX_depth_texture)
18595 
18596 #endif /* GL_SGIX_depth_texture */
18597 
18598 /* ------------------------------ GL_SGIX_dvc ------------------------------ */
18599 
18600 #ifndef GL_SGIX_dvc
18601 #define GL_SGIX_dvc 1
18602 
18603 #define GLEW_SGIX_dvc GLEW_GET_VAR(__GLEW_SGIX_dvc)
18604 
18605 #endif /* GL_SGIX_dvc */
18606 
18607 /* -------------------------- GL_SGIX_flush_raster ------------------------- */
18608 
18609 #ifndef GL_SGIX_flush_raster
18610 #define GL_SGIX_flush_raster 1
18611 
18612 typedef void (GLAPIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void);
18613 
18614 #define glFlushRasterSGIX GLEW_GET_FUN(__glewFlushRasterSGIX)
18615 
18616 #define GLEW_SGIX_flush_raster GLEW_GET_VAR(__GLEW_SGIX_flush_raster)
18617 
18618 #endif /* GL_SGIX_flush_raster */
18619 
18620 /* --------------------------- GL_SGIX_fog_blend --------------------------- */
18621 
18622 #ifndef GL_SGIX_fog_blend
18623 #define GL_SGIX_fog_blend 1
18624 
18625 #define GL_FOG_BLEND_ALPHA_SGIX 0x81FE
18626 #define GL_FOG_BLEND_COLOR_SGIX 0x81FF
18627 
18628 #define GLEW_SGIX_fog_blend GLEW_GET_VAR(__GLEW_SGIX_fog_blend)
18629 
18630 #endif /* GL_SGIX_fog_blend */
18631 
18632 /* ---------------------- GL_SGIX_fog_factor_to_alpha ---------------------- */
18633 
18634 #ifndef GL_SGIX_fog_factor_to_alpha
18635 #define GL_SGIX_fog_factor_to_alpha 1
18636 
18637 #define GLEW_SGIX_fog_factor_to_alpha GLEW_GET_VAR(__GLEW_SGIX_fog_factor_to_alpha)
18638 
18639 #endif /* GL_SGIX_fog_factor_to_alpha */
18640 
18641 /* --------------------------- GL_SGIX_fog_layers -------------------------- */
18642 
18643 #ifndef GL_SGIX_fog_layers
18644 #define GL_SGIX_fog_layers 1
18645 
18646 #define GL_FOG_TYPE_SGIX 0x8323
18647 #define GL_UNIFORM_SGIX 0x8324
18648 #define GL_LAYERED_SGIX 0x8325
18649 #define GL_FOG_GROUND_PLANE_SGIX 0x8326
18650 #define GL_FOG_LAYERS_POINTS_SGIX 0x8327
18651 #define GL_MAX_FOG_LAYERS_POINTS_SGIX 0x8328
18652 
18653 typedef void (GLAPIENTRY * PFNGLFOGLAYERSSGIXPROC) (GLsizei n, const GLfloat* points);
18654 typedef void (GLAPIENTRY * PFNGLGETFOGLAYERSSGIXPROC) (GLfloat* points);
18655 
18656 #define glFogLayersSGIX GLEW_GET_FUN(__glewFogLayersSGIX)
18657 #define glGetFogLayersSGIX GLEW_GET_FUN(__glewGetFogLayersSGIX)
18658 
18659 #define GLEW_SGIX_fog_layers GLEW_GET_VAR(__GLEW_SGIX_fog_layers)
18660 
18661 #endif /* GL_SGIX_fog_layers */
18662 
18663 /* --------------------------- GL_SGIX_fog_offset -------------------------- */
18664 
18665 #ifndef GL_SGIX_fog_offset
18666 #define GL_SGIX_fog_offset 1
18667 
18668 #define GL_FOG_OFFSET_SGIX 0x8198
18669 #define GL_FOG_OFFSET_VALUE_SGIX 0x8199
18670 
18671 #define GLEW_SGIX_fog_offset GLEW_GET_VAR(__GLEW_SGIX_fog_offset)
18672 
18673 #endif /* GL_SGIX_fog_offset */
18674 
18675 /* --------------------------- GL_SGIX_fog_patchy -------------------------- */
18676 
18677 #ifndef GL_SGIX_fog_patchy
18678 #define GL_SGIX_fog_patchy 1
18679 
18680 #define GLEW_SGIX_fog_patchy GLEW_GET_VAR(__GLEW_SGIX_fog_patchy)
18681 
18682 #endif /* GL_SGIX_fog_patchy */
18683 
18684 /* --------------------------- GL_SGIX_fog_scale --------------------------- */
18685 
18686 #ifndef GL_SGIX_fog_scale
18687 #define GL_SGIX_fog_scale 1
18688 
18689 #define GL_FOG_SCALE_SGIX 0x81FC
18690 #define GL_FOG_SCALE_VALUE_SGIX 0x81FD
18691 
18692 #define GLEW_SGIX_fog_scale GLEW_GET_VAR(__GLEW_SGIX_fog_scale)
18693 
18694 #endif /* GL_SGIX_fog_scale */
18695 
18696 /* -------------------------- GL_SGIX_fog_texture -------------------------- */
18697 
18698 #ifndef GL_SGIX_fog_texture
18699 #define GL_SGIX_fog_texture 1
18700 
18701 typedef void (GLAPIENTRY * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname);
18702 
18703 #define glTextureFogSGIX GLEW_GET_FUN(__glewTextureFogSGIX)
18704 
18705 #define GLEW_SGIX_fog_texture GLEW_GET_VAR(__GLEW_SGIX_fog_texture)
18706 
18707 #endif /* GL_SGIX_fog_texture */
18708 
18709 /* -------------------- GL_SGIX_fragment_lighting_space -------------------- */
18710 
18711 #ifndef GL_SGIX_fragment_lighting_space
18712 #define GL_SGIX_fragment_lighting_space 1
18713 
18714 #define GL_EYE_SPACE_SGIX 0x8436
18715 #define GL_TANGENT_SPACE_SGIX 0x8437
18716 #define GL_OBJECT_SPACE_SGIX 0x8438
18717 #define GL_FRAGMENT_LIGHT_SPACE_SGIX 0x843D
18718 
18719 #define GLEW_SGIX_fragment_lighting_space GLEW_GET_VAR(__GLEW_SGIX_fragment_lighting_space)
18720 
18721 #endif /* GL_SGIX_fragment_lighting_space */
18722 
18723 /* ------------------- GL_SGIX_fragment_specular_lighting ------------------ */
18724 
18725 #ifndef GL_SGIX_fragment_specular_lighting
18726 #define GL_SGIX_fragment_specular_lighting 1
18727 
18728 typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode);
18729 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param);
18730 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, GLfloat* params);
18731 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param);
18732 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, GLint* params);
18733 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param);
18734 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat* params);
18735 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param);
18736 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint* params);
18737 typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, const GLfloat param);
18738 typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* params);
18739 typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, const GLint param);
18740 typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* params);
18741 typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum value, GLfloat* data);
18742 typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum value, GLint* data);
18743 typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* data);
18744 typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* data);
18745 
18746 #define glFragmentColorMaterialSGIX GLEW_GET_FUN(__glewFragmentColorMaterialSGIX)
18747 #define glFragmentLightModelfSGIX GLEW_GET_FUN(__glewFragmentLightModelfSGIX)
18748 #define glFragmentLightModelfvSGIX GLEW_GET_FUN(__glewFragmentLightModelfvSGIX)
18749 #define glFragmentLightModeliSGIX GLEW_GET_FUN(__glewFragmentLightModeliSGIX)
18750 #define glFragmentLightModelivSGIX GLEW_GET_FUN(__glewFragmentLightModelivSGIX)
18751 #define glFragmentLightfSGIX GLEW_GET_FUN(__glewFragmentLightfSGIX)
18752 #define glFragmentLightfvSGIX GLEW_GET_FUN(__glewFragmentLightfvSGIX)
18753 #define glFragmentLightiSGIX GLEW_GET_FUN(__glewFragmentLightiSGIX)
18754 #define glFragmentLightivSGIX GLEW_GET_FUN(__glewFragmentLightivSGIX)
18755 #define glFragmentMaterialfSGIX GLEW_GET_FUN(__glewFragmentMaterialfSGIX)
18756 #define glFragmentMaterialfvSGIX GLEW_GET_FUN(__glewFragmentMaterialfvSGIX)
18757 #define glFragmentMaterialiSGIX GLEW_GET_FUN(__glewFragmentMaterialiSGIX)
18758 #define glFragmentMaterialivSGIX GLEW_GET_FUN(__glewFragmentMaterialivSGIX)
18759 #define glGetFragmentLightfvSGIX GLEW_GET_FUN(__glewGetFragmentLightfvSGIX)
18760 #define glGetFragmentLightivSGIX GLEW_GET_FUN(__glewGetFragmentLightivSGIX)
18761 #define glGetFragmentMaterialfvSGIX GLEW_GET_FUN(__glewGetFragmentMaterialfvSGIX)
18762 #define glGetFragmentMaterialivSGIX GLEW_GET_FUN(__glewGetFragmentMaterialivSGIX)
18763 
18764 #define GLEW_SGIX_fragment_specular_lighting GLEW_GET_VAR(__GLEW_SGIX_fragment_specular_lighting)
18765 
18766 #endif /* GL_SGIX_fragment_specular_lighting */
18767 
18768 /* ---------------------- GL_SGIX_fragments_instrument --------------------- */
18769 
18770 #ifndef GL_SGIX_fragments_instrument
18771 #define GL_SGIX_fragments_instrument 1
18772 
18773 #define GL_FRAGMENTS_INSTRUMENT_SGIX 0x8313
18774 #define GL_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX 0x8314
18775 #define GL_FRAGMENTS_INSTRUMENT_MAX_SGIX 0x8315
18776 
18777 #define GLEW_SGIX_fragments_instrument GLEW_GET_VAR(__GLEW_SGIX_fragments_instrument)
18778 
18779 #endif /* GL_SGIX_fragments_instrument */
18780 
18781 /* --------------------------- GL_SGIX_framezoom --------------------------- */
18782 
18783 #ifndef GL_SGIX_framezoom
18784 #define GL_SGIX_framezoom 1
18785 
18786 typedef void (GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor);
18787 
18788 #define glFrameZoomSGIX GLEW_GET_FUN(__glewFrameZoomSGIX)
18789 
18790 #define GLEW_SGIX_framezoom GLEW_GET_VAR(__GLEW_SGIX_framezoom)
18791 
18792 #endif /* GL_SGIX_framezoom */
18793 
18794 /* -------------------------- GL_SGIX_icc_texture -------------------------- */
18795 
18796 #ifndef GL_SGIX_icc_texture
18797 #define GL_SGIX_icc_texture 1
18798 
18799 #define GL_RGB_ICC_SGIX 0x8460
18800 #define GL_RGBA_ICC_SGIX 0x8461
18801 #define GL_ALPHA_ICC_SGIX 0x8462
18802 #define GL_LUMINANCE_ICC_SGIX 0x8463
18803 #define GL_INTENSITY_ICC_SGIX 0x8464
18804 #define GL_LUMINANCE_ALPHA_ICC_SGIX 0x8465
18805 #define GL_R5_G6_B5_ICC_SGIX 0x8466
18806 #define GL_R5_G6_B5_A8_ICC_SGIX 0x8467
18807 #define GL_ALPHA16_ICC_SGIX 0x8468
18808 #define GL_LUMINANCE16_ICC_SGIX 0x8469
18809 #define GL_INTENSITY16_ICC_SGIX 0x846A
18810 #define GL_LUMINANCE16_ALPHA8_ICC_SGIX 0x846B
18811 
18812 #define GLEW_SGIX_icc_texture GLEW_GET_VAR(__GLEW_SGIX_icc_texture)
18813 
18814 #endif /* GL_SGIX_icc_texture */
18815 
18816 /* ------------------------ GL_SGIX_igloo_interface ------------------------ */
18817 
18818 #ifndef GL_SGIX_igloo_interface
18819 #define GL_SGIX_igloo_interface 1
18820 
18821 #define GL_IGLOO_FULLSCREEN_SGIX 0x819E
18822 #define GL_IGLOO_VIEWPORT_OFFSET_SGIX 0x819F
18823 #define GL_IGLOO_SWAPTMESH_SGIX 0x81A0
18824 #define GL_IGLOO_COLORNORMAL_SGIX 0x81A1
18825 #define GL_IGLOO_IRISGL_MODE_SGIX 0x81A2
18826 #define GL_IGLOO_LMC_COLOR_SGIX 0x81A3
18827 #define GL_IGLOO_TMESHMODE_SGIX 0x81A4
18828 #define GL_LIGHT31 0xBEAD
18829 
18830 typedef void (GLAPIENTRY * PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, void *param);
18831 
18832 #define glIglooInterfaceSGIX GLEW_GET_FUN(__glewIglooInterfaceSGIX)
18833 
18834 #define GLEW_SGIX_igloo_interface GLEW_GET_VAR(__GLEW_SGIX_igloo_interface)
18835 
18836 #endif /* GL_SGIX_igloo_interface */
18837 
18838 /* ----------------------- GL_SGIX_image_compression ----------------------- */
18839 
18840 #ifndef GL_SGIX_image_compression
18841 #define GL_SGIX_image_compression 1
18842 
18843 #define GLEW_SGIX_image_compression GLEW_GET_VAR(__GLEW_SGIX_image_compression)
18844 
18845 #endif /* GL_SGIX_image_compression */
18846 
18847 /* ---------------------- GL_SGIX_impact_pixel_texture --------------------- */
18848 
18849 #ifndef GL_SGIX_impact_pixel_texture
18850 #define GL_SGIX_impact_pixel_texture 1
18851 
18852 #define GLEW_SGIX_impact_pixel_texture GLEW_GET_VAR(__GLEW_SGIX_impact_pixel_texture)
18853 
18854 #endif /* GL_SGIX_impact_pixel_texture */
18855 
18856 /* ------------------------ GL_SGIX_instrument_error ----------------------- */
18857 
18858 #ifndef GL_SGIX_instrument_error
18859 #define GL_SGIX_instrument_error 1
18860 
18861 #define GLEW_SGIX_instrument_error GLEW_GET_VAR(__GLEW_SGIX_instrument_error)
18862 
18863 #endif /* GL_SGIX_instrument_error */
18864 
18865 /* --------------------------- GL_SGIX_interlace --------------------------- */
18866 
18867 #ifndef GL_SGIX_interlace
18868 #define GL_SGIX_interlace 1
18869 
18870 #define GL_INTERLACE_SGIX 0x8094
18871 
18872 #define GLEW_SGIX_interlace GLEW_GET_VAR(__GLEW_SGIX_interlace)
18873 
18874 #endif /* GL_SGIX_interlace */
18875 
18876 /* ------------------------- GL_SGIX_ir_instrument1 ------------------------ */
18877 
18878 #ifndef GL_SGIX_ir_instrument1
18879 #define GL_SGIX_ir_instrument1 1
18880 
18881 #define GLEW_SGIX_ir_instrument1 GLEW_GET_VAR(__GLEW_SGIX_ir_instrument1)
18882 
18883 #endif /* GL_SGIX_ir_instrument1 */
18884 
18885 /* ----------------------- GL_SGIX_line_quality_hint ----------------------- */
18886 
18887 #ifndef GL_SGIX_line_quality_hint
18888 #define GL_SGIX_line_quality_hint 1
18889 
18890 #define GL_LINE_QUALITY_HINT_SGIX 0x835B
18891 
18892 #define GLEW_SGIX_line_quality_hint GLEW_GET_VAR(__GLEW_SGIX_line_quality_hint)
18893 
18894 #endif /* GL_SGIX_line_quality_hint */
18895 
18896 /* ------------------------- GL_SGIX_list_priority ------------------------- */
18897 
18898 #ifndef GL_SGIX_list_priority
18899 #define GL_SGIX_list_priority 1
18900 
18901 #define GLEW_SGIX_list_priority GLEW_GET_VAR(__GLEW_SGIX_list_priority)
18902 
18903 #endif /* GL_SGIX_list_priority */
18904 
18905 /* ----------------------------- GL_SGIX_mpeg1 ----------------------------- */
18906 
18907 #ifndef GL_SGIX_mpeg1
18908 #define GL_SGIX_mpeg1 1
18909 
18910 typedef void (GLAPIENTRY * PFNGLALLOCMPEGPREDICTORSSGIXPROC) (GLsizei width, GLsizei height, GLsizei n, GLuint* predictors);
18911 typedef void (GLAPIENTRY * PFNGLDELETEMPEGPREDICTORSSGIXPROC) (GLsizei n, GLuint* predictors);
18912 typedef void (GLAPIENTRY * PFNGLGENMPEGPREDICTORSSGIXPROC) (GLsizei n, GLuint* predictors);
18913 typedef void (GLAPIENTRY * PFNGLGETMPEGPARAMETERFVSGIXPROC) (GLenum target, GLenum pname, GLfloat* params);
18914 typedef void (GLAPIENTRY * PFNGLGETMPEGPARAMETERIVSGIXPROC) (GLenum target, GLenum pname, GLint* params);
18915 typedef void (GLAPIENTRY * PFNGLGETMPEGPREDICTORSGIXPROC) (GLenum target, GLenum format, GLenum type, void *pixels);
18916 typedef void (GLAPIENTRY * PFNGLGETMPEGQUANTTABLEUBVPROC) (GLenum target, GLubyte* values);
18917 typedef GLboolean (GLAPIENTRY * PFNGLISMPEGPREDICTORSGIXPROC) (GLuint predictor);
18918 typedef void (GLAPIENTRY * PFNGLMPEGPREDICTORSGIXPROC) (GLenum target, GLenum format, GLenum type, void *pixels);
18919 typedef void (GLAPIENTRY * PFNGLMPEGQUANTTABLEUBVPROC) (GLenum target, GLubyte* values);
18920 typedef void (GLAPIENTRY * PFNGLSWAPMPEGPREDICTORSSGIXPROC) (GLenum target0, GLenum target1);
18921 
18922 #define glAllocMPEGPredictorsSGIX GLEW_GET_FUN(__glewAllocMPEGPredictorsSGIX)
18923 #define glDeleteMPEGPredictorsSGIX GLEW_GET_FUN(__glewDeleteMPEGPredictorsSGIX)
18924 #define glGenMPEGPredictorsSGIX GLEW_GET_FUN(__glewGenMPEGPredictorsSGIX)
18925 #define glGetMPEGParameterfvSGIX GLEW_GET_FUN(__glewGetMPEGParameterfvSGIX)
18926 #define glGetMPEGParameterivSGIX GLEW_GET_FUN(__glewGetMPEGParameterivSGIX)
18927 #define glGetMPEGPredictorSGIX GLEW_GET_FUN(__glewGetMPEGPredictorSGIX)
18928 #define glGetMPEGQuantTableubv GLEW_GET_FUN(__glewGetMPEGQuantTableubv)
18929 #define glIsMPEGPredictorSGIX GLEW_GET_FUN(__glewIsMPEGPredictorSGIX)
18930 #define glMPEGPredictorSGIX GLEW_GET_FUN(__glewMPEGPredictorSGIX)
18931 #define glMPEGQuantTableubv GLEW_GET_FUN(__glewMPEGQuantTableubv)
18932 #define glSwapMPEGPredictorsSGIX GLEW_GET_FUN(__glewSwapMPEGPredictorsSGIX)
18933 
18934 #define GLEW_SGIX_mpeg1 GLEW_GET_VAR(__GLEW_SGIX_mpeg1)
18935 
18936 #endif /* GL_SGIX_mpeg1 */
18937 
18938 /* ----------------------------- GL_SGIX_mpeg2 ----------------------------- */
18939 
18940 #ifndef GL_SGIX_mpeg2
18941 #define GL_SGIX_mpeg2 1
18942 
18943 #define GLEW_SGIX_mpeg2 GLEW_GET_VAR(__GLEW_SGIX_mpeg2)
18944 
18945 #endif /* GL_SGIX_mpeg2 */
18946 
18947 /* ------------------ GL_SGIX_nonlinear_lighting_pervertex ----------------- */
18948 
18949 #ifndef GL_SGIX_nonlinear_lighting_pervertex
18950 #define GL_SGIX_nonlinear_lighting_pervertex 1
18951 
18952 typedef void (GLAPIENTRY * PFNGLGETNONLINLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLint* terms, GLfloat *data);
18953 typedef void (GLAPIENTRY * PFNGLGETNONLINMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLint* terms, const GLfloat *data);
18954 typedef void (GLAPIENTRY * PFNGLNONLINLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLint terms, GLfloat* params);
18955 typedef void (GLAPIENTRY * PFNGLNONLINMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLint terms, const GLfloat* params);
18956 
18957 #define glGetNonlinLightfvSGIX GLEW_GET_FUN(__glewGetNonlinLightfvSGIX)
18958 #define glGetNonlinMaterialfvSGIX GLEW_GET_FUN(__glewGetNonlinMaterialfvSGIX)
18959 #define glNonlinLightfvSGIX GLEW_GET_FUN(__glewNonlinLightfvSGIX)
18960 #define glNonlinMaterialfvSGIX GLEW_GET_FUN(__glewNonlinMaterialfvSGIX)
18961 
18962 #define GLEW_SGIX_nonlinear_lighting_pervertex GLEW_GET_VAR(__GLEW_SGIX_nonlinear_lighting_pervertex)
18963 
18964 #endif /* GL_SGIX_nonlinear_lighting_pervertex */
18965 
18966 /* --------------------------- GL_SGIX_nurbs_eval -------------------------- */
18967 
18968 #ifndef GL_SGIX_nurbs_eval
18969 #define GL_SGIX_nurbs_eval 1
18970 
18971 #define GL_MAP1_VERTEX_3_NURBS_SGIX 0x81CB
18972 #define GL_MAP1_VERTEX_4_NURBS_SGIX 0x81CC
18973 #define GL_MAP1_INDEX_NURBS_SGIX 0x81CD
18974 #define GL_MAP1_COLOR_4_NURBS_SGIX 0x81CE
18975 #define GL_MAP1_NORMAL_NURBS_SGIX 0x81CF
18976 #define GL_MAP1_TEXTURE_COORD_1_NURBS_SGIX 0x81E0
18977 #define GL_MAP1_TEXTURE_COORD_2_NURBS_SGIX 0x81E1
18978 #define GL_MAP1_TEXTURE_COORD_3_NURBS_SGIX 0x81E2
18979 #define GL_MAP1_TEXTURE_COORD_4_NURBS_SGIX 0x81E3
18980 #define GL_MAP2_VERTEX_3_NURBS_SGIX 0x81E4
18981 #define GL_MAP2_VERTEX_4_NURBS_SGIX 0x81E5
18982 #define GL_MAP2_INDEX_NURBS_SGIX 0x81E6
18983 #define GL_MAP2_COLOR_4_NURBS_SGIX 0x81E7
18984 #define GL_MAP2_NORMAL_NURBS_SGIX 0x81E8
18985 #define GL_MAP2_TEXTURE_COORD_1_NURBS_SGIX 0x81E9
18986 #define GL_MAP2_TEXTURE_COORD_2_NURBS_SGIX 0x81EA
18987 #define GL_MAP2_TEXTURE_COORD_3_NURBS_SGIX 0x81EB
18988 #define GL_MAP2_TEXTURE_COORD_4_NURBS_SGIX 0x81EC
18989 #define GL_NURBS_KNOT_COUNT_SGIX 0x81ED
18990 #define GL_NURBS_KNOT_VECTOR_SGIX 0x81EE
18991 
18992 #define GLEW_SGIX_nurbs_eval GLEW_GET_VAR(__GLEW_SGIX_nurbs_eval)
18993 
18994 #endif /* GL_SGIX_nurbs_eval */
18995 
18996 /* ---------------------- GL_SGIX_occlusion_instrument --------------------- */
18997 
18998 #ifndef GL_SGIX_occlusion_instrument
18999 #define GL_SGIX_occlusion_instrument 1
19000 
19001 #define GL_OCCLUSION_INSTRUMENT_SGIX 0x6060
19002 
19003 #define GLEW_SGIX_occlusion_instrument GLEW_GET_VAR(__GLEW_SGIX_occlusion_instrument)
19004 
19005 #endif /* GL_SGIX_occlusion_instrument */
19006 
19007 /* ------------------------- GL_SGIX_packed_6bytes ------------------------- */
19008 
19009 #ifndef GL_SGIX_packed_6bytes
19010 #define GL_SGIX_packed_6bytes 1
19011 
19012 #define GLEW_SGIX_packed_6bytes GLEW_GET_VAR(__GLEW_SGIX_packed_6bytes)
19013 
19014 #endif /* GL_SGIX_packed_6bytes */
19015 
19016 /* ------------------------- GL_SGIX_pixel_texture ------------------------- */
19017 
19018 #ifndef GL_SGIX_pixel_texture
19019 #define GL_SGIX_pixel_texture 1
19020 
19021 typedef void (GLAPIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode);
19022 
19023 #define glPixelTexGenSGIX GLEW_GET_FUN(__glewPixelTexGenSGIX)
19024 
19025 #define GLEW_SGIX_pixel_texture GLEW_GET_VAR(__GLEW_SGIX_pixel_texture)
19026 
19027 #endif /* GL_SGIX_pixel_texture */
19028 
19029 /* ----------------------- GL_SGIX_pixel_texture_bits ---------------------- */
19030 
19031 #ifndef GL_SGIX_pixel_texture_bits
19032 #define GL_SGIX_pixel_texture_bits 1
19033 
19034 #define GLEW_SGIX_pixel_texture_bits GLEW_GET_VAR(__GLEW_SGIX_pixel_texture_bits)
19035 
19036 #endif /* GL_SGIX_pixel_texture_bits */
19037 
19038 /* ----------------------- GL_SGIX_pixel_texture_lod ----------------------- */
19039 
19040 #ifndef GL_SGIX_pixel_texture_lod
19041 #define GL_SGIX_pixel_texture_lod 1
19042 
19043 #define GLEW_SGIX_pixel_texture_lod GLEW_GET_VAR(__GLEW_SGIX_pixel_texture_lod)
19044 
19045 #endif /* GL_SGIX_pixel_texture_lod */
19046 
19047 /* -------------------------- GL_SGIX_pixel_tiles -------------------------- */
19048 
19049 #ifndef GL_SGIX_pixel_tiles
19050 #define GL_SGIX_pixel_tiles 1
19051 
19052 #define GLEW_SGIX_pixel_tiles GLEW_GET_VAR(__GLEW_SGIX_pixel_tiles)
19053 
19054 #endif /* GL_SGIX_pixel_tiles */
19055 
19056 /* ------------------------- GL_SGIX_polynomial_ffd ------------------------ */
19057 
19058 #ifndef GL_SGIX_polynomial_ffd
19059 #define GL_SGIX_polynomial_ffd 1
19060 
19061 #define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x1
19062 #define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x2
19063 
19064 typedef void (GLAPIENTRY * PFNGLDEFORMSGIXPROC) (GLbitfield mask);
19065 typedef void (GLAPIENTRY * PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask);
19066 
19067 #define glDeformSGIX GLEW_GET_FUN(__glewDeformSGIX)
19068 #define glLoadIdentityDeformationMapSGIX GLEW_GET_FUN(__glewLoadIdentityDeformationMapSGIX)
19069 
19070 #define GLEW_SGIX_polynomial_ffd GLEW_GET_VAR(__GLEW_SGIX_polynomial_ffd)
19071 
19072 #endif /* GL_SGIX_polynomial_ffd */
19073 
19074 /* --------------------------- GL_SGIX_quad_mesh --------------------------- */
19075 
19076 #ifndef GL_SGIX_quad_mesh
19077 #define GL_SGIX_quad_mesh 1
19078 
19079 typedef void (GLAPIENTRY * PFNGLMESHBREADTHSGIXPROC) (GLint breadth);
19080 typedef void (GLAPIENTRY * PFNGLMESHSTRIDESGIXPROC) (GLint stride);
19081 
19082 #define glMeshBreadthSGIX GLEW_GET_FUN(__glewMeshBreadthSGIX)
19083 #define glMeshStrideSGIX GLEW_GET_FUN(__glewMeshStrideSGIX)
19084 
19085 #define GLEW_SGIX_quad_mesh GLEW_GET_VAR(__GLEW_SGIX_quad_mesh)
19086 
19087 #endif /* GL_SGIX_quad_mesh */
19088 
19089 /* ------------------------ GL_SGIX_reference_plane ------------------------ */
19090 
19091 #ifndef GL_SGIX_reference_plane
19092 #define GL_SGIX_reference_plane 1
19093 
19094 typedef void (GLAPIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble* equation);
19095 
19096 #define glReferencePlaneSGIX GLEW_GET_FUN(__glewReferencePlaneSGIX)
19097 
19098 #define GLEW_SGIX_reference_plane GLEW_GET_VAR(__GLEW_SGIX_reference_plane)
19099 
19100 #endif /* GL_SGIX_reference_plane */
19101 
19102 /* ---------------------------- GL_SGIX_resample --------------------------- */
19103 
19104 #ifndef GL_SGIX_resample
19105 #define GL_SGIX_resample 1
19106 
19107 #define GL_PACK_RESAMPLE_SGIX 0x842E
19108 #define GL_UNPACK_RESAMPLE_SGIX 0x842F
19109 #define GL_RESAMPLE_DECIMATE_SGIX 0x8430
19110 #define GL_RESAMPLE_REPLICATE_SGIX 0x8433
19111 #define GL_RESAMPLE_ZERO_FILL_SGIX 0x8434
19112 
19113 #define GLEW_SGIX_resample GLEW_GET_VAR(__GLEW_SGIX_resample)
19114 
19115 #endif /* GL_SGIX_resample */
19116 
19117 /* ------------------------- GL_SGIX_scalebias_hint ------------------------ */
19118 
19119 #ifndef GL_SGIX_scalebias_hint
19120 #define GL_SGIX_scalebias_hint 1
19121 
19122 #define GL_SCALEBIAS_HINT_SGIX 0x8322
19123 
19124 #define GLEW_SGIX_scalebias_hint GLEW_GET_VAR(__GLEW_SGIX_scalebias_hint)
19125 
19126 #endif /* GL_SGIX_scalebias_hint */
19127 
19128 /* ----------------------------- GL_SGIX_shadow ---------------------------- */
19129 
19130 #ifndef GL_SGIX_shadow
19131 #define GL_SGIX_shadow 1
19132 
19133 #define GL_TEXTURE_COMPARE_SGIX 0x819A
19134 #define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B
19135 #define GL_TEXTURE_LEQUAL_R_SGIX 0x819C
19136 #define GL_TEXTURE_GEQUAL_R_SGIX 0x819D
19137 
19138 #define GLEW_SGIX_shadow GLEW_GET_VAR(__GLEW_SGIX_shadow)
19139 
19140 #endif /* GL_SGIX_shadow */
19141 
19142 /* ------------------------- GL_SGIX_shadow_ambient ------------------------ */
19143 
19144 #ifndef GL_SGIX_shadow_ambient
19145 #define GL_SGIX_shadow_ambient 1
19146 
19147 #define GL_SHADOW_AMBIENT_SGIX 0x80BF
19148 
19149 #define GLEW_SGIX_shadow_ambient GLEW_GET_VAR(__GLEW_SGIX_shadow_ambient)
19150 
19151 #endif /* GL_SGIX_shadow_ambient */
19152 
19153 /* ------------------------------ GL_SGIX_slim ----------------------------- */
19154 
19155 #ifndef GL_SGIX_slim
19156 #define GL_SGIX_slim 1
19157 
19158 #define GL_PACK_MAX_COMPRESSED_SIZE_SGIX 0x831B
19159 #define GL_SLIM8U_SGIX 0x831D
19160 #define GL_SLIM10U_SGIX 0x831E
19161 #define GL_SLIM12S_SGIX 0x831F
19162 
19163 #define GLEW_SGIX_slim GLEW_GET_VAR(__GLEW_SGIX_slim)
19164 
19165 #endif /* GL_SGIX_slim */
19166 
19167 /* ------------------------ GL_SGIX_spotlight_cutoff ----------------------- */
19168 
19169 #ifndef GL_SGIX_spotlight_cutoff
19170 #define GL_SGIX_spotlight_cutoff 1
19171 
19172 #define GL_SPOT_CUTOFF_DELTA_SGIX 0x8193
19173 
19174 #define GLEW_SGIX_spotlight_cutoff GLEW_GET_VAR(__GLEW_SGIX_spotlight_cutoff)
19175 
19176 #endif /* GL_SGIX_spotlight_cutoff */
19177 
19178 /* ----------------------------- GL_SGIX_sprite ---------------------------- */
19179 
19180 #ifndef GL_SGIX_sprite
19181 #define GL_SGIX_sprite 1
19182 
19183 typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param);
19184 typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, GLfloat* params);
19185 typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param);
19186 typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, GLint* params);
19187 
19188 #define glSpriteParameterfSGIX GLEW_GET_FUN(__glewSpriteParameterfSGIX)
19189 #define glSpriteParameterfvSGIX GLEW_GET_FUN(__glewSpriteParameterfvSGIX)
19190 #define glSpriteParameteriSGIX GLEW_GET_FUN(__glewSpriteParameteriSGIX)
19191 #define glSpriteParameterivSGIX GLEW_GET_FUN(__glewSpriteParameterivSGIX)
19192 
19193 #define GLEW_SGIX_sprite GLEW_GET_VAR(__GLEW_SGIX_sprite)
19194 
19195 #endif /* GL_SGIX_sprite */
19196 
19197 /* -------------------------- GL_SGIX_subdiv_patch ------------------------- */
19198 
19199 #ifndef GL_SGIX_subdiv_patch
19200 #define GL_SGIX_subdiv_patch 1
19201 
19202 #define GLEW_SGIX_subdiv_patch GLEW_GET_VAR(__GLEW_SGIX_subdiv_patch)
19203 
19204 #endif /* GL_SGIX_subdiv_patch */
19205 
19206 /* --------------------------- GL_SGIX_subsample --------------------------- */
19207 
19208 #ifndef GL_SGIX_subsample
19209 #define GL_SGIX_subsample 1
19210 
19211 #define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0
19212 #define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1
19213 #define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2
19214 #define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3
19215 #define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4
19216 
19217 #define GLEW_SGIX_subsample GLEW_GET_VAR(__GLEW_SGIX_subsample)
19218 
19219 #endif /* GL_SGIX_subsample */
19220 
19221 /* ----------------------- GL_SGIX_tag_sample_buffer ----------------------- */
19222 
19223 #ifndef GL_SGIX_tag_sample_buffer
19224 #define GL_SGIX_tag_sample_buffer 1
19225 
19226 typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void);
19227 
19228 #define glTagSampleBufferSGIX GLEW_GET_FUN(__glewTagSampleBufferSGIX)
19229 
19230 #define GLEW_SGIX_tag_sample_buffer GLEW_GET_VAR(__GLEW_SGIX_tag_sample_buffer)
19231 
19232 #endif /* GL_SGIX_tag_sample_buffer */
19233 
19234 /* ------------------------ GL_SGIX_texture_add_env ------------------------ */
19235 
19236 #ifndef GL_SGIX_texture_add_env
19237 #define GL_SGIX_texture_add_env 1
19238 
19239 #define GLEW_SGIX_texture_add_env GLEW_GET_VAR(__GLEW_SGIX_texture_add_env)
19240 
19241 #endif /* GL_SGIX_texture_add_env */
19242 
19243 /* -------------------- GL_SGIX_texture_coordinate_clamp ------------------- */
19244 
19245 #ifndef GL_SGIX_texture_coordinate_clamp
19246 #define GL_SGIX_texture_coordinate_clamp 1
19247 
19248 #define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369
19249 #define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A
19250 #define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B
19251 
19252 #define GLEW_SGIX_texture_coordinate_clamp GLEW_GET_VAR(__GLEW_SGIX_texture_coordinate_clamp)
19253 
19254 #endif /* GL_SGIX_texture_coordinate_clamp */
19255 
19256 /* ------------------------ GL_SGIX_texture_lod_bias ----------------------- */
19257 
19258 #ifndef GL_SGIX_texture_lod_bias
19259 #define GL_SGIX_texture_lod_bias 1
19260 
19261 #define GLEW_SGIX_texture_lod_bias GLEW_GET_VAR(__GLEW_SGIX_texture_lod_bias)
19262 
19263 #endif /* GL_SGIX_texture_lod_bias */
19264 
19265 /* ------------------- GL_SGIX_texture_mipmap_anisotropic ------------------ */
19266 
19267 #ifndef GL_SGIX_texture_mipmap_anisotropic
19268 #define GL_SGIX_texture_mipmap_anisotropic 1
19269 
19270 #define GL_TEXTURE_MIPMAP_ANISOTROPY_SGIX 0x832E
19271 #define GL_MAX_MIPMAP_ANISOTROPY_SGIX 0x832F
19272 
19273 #define GLEW_SGIX_texture_mipmap_anisotropic GLEW_GET_VAR(__GLEW_SGIX_texture_mipmap_anisotropic)
19274 
19275 #endif /* GL_SGIX_texture_mipmap_anisotropic */
19276 
19277 /* ---------------------- GL_SGIX_texture_multi_buffer --------------------- */
19278 
19279 #ifndef GL_SGIX_texture_multi_buffer
19280 #define GL_SGIX_texture_multi_buffer 1
19281 
19282 #define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E
19283 
19284 #define GLEW_SGIX_texture_multi_buffer GLEW_GET_VAR(__GLEW_SGIX_texture_multi_buffer)
19285 
19286 #endif /* GL_SGIX_texture_multi_buffer */
19287 
19288 /* ------------------------- GL_SGIX_texture_phase ------------------------- */
19289 
19290 #ifndef GL_SGIX_texture_phase
19291 #define GL_SGIX_texture_phase 1
19292 
19293 #define GL_PHASE_SGIX 0x832A
19294 
19295 #define GLEW_SGIX_texture_phase GLEW_GET_VAR(__GLEW_SGIX_texture_phase)
19296 
19297 #endif /* GL_SGIX_texture_phase */
19298 
19299 /* ------------------------- GL_SGIX_texture_range ------------------------- */
19300 
19301 #ifndef GL_SGIX_texture_range
19302 #define GL_SGIX_texture_range 1
19303 
19304 #define GL_RGB_SIGNED_SGIX 0x85E0
19305 #define GL_RGBA_SIGNED_SGIX 0x85E1
19306 #define GL_ALPHA_SIGNED_SGIX 0x85E2
19307 #define GL_LUMINANCE_SIGNED_SGIX 0x85E3
19308 #define GL_INTENSITY_SIGNED_SGIX 0x85E4
19309 #define GL_LUMINANCE_ALPHA_SIGNED_SGIX 0x85E5
19310 #define GL_RGB16_SIGNED_SGIX 0x85E6
19311 #define GL_RGBA16_SIGNED_SGIX 0x85E7
19312 #define GL_ALPHA16_SIGNED_SGIX 0x85E8
19313 #define GL_LUMINANCE16_SIGNED_SGIX 0x85E9
19314 #define GL_INTENSITY16_SIGNED_SGIX 0x85EA
19315 #define GL_LUMINANCE16_ALPHA16_SIGNED_SGIX 0x85EB
19316 #define GL_RGB_EXTENDED_RANGE_SGIX 0x85EC
19317 #define GL_RGBA_EXTENDED_RANGE_SGIX 0x85ED
19318 #define GL_ALPHA_EXTENDED_RANGE_SGIX 0x85EE
19319 #define GL_LUMINANCE_EXTENDED_RANGE_SGIX 0x85EF
19320 #define GL_INTENSITY_EXTENDED_RANGE_SGIX 0x85F0
19321 #define GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX 0x85F1
19322 #define GL_RGB16_EXTENDED_RANGE_SGIX 0x85F2
19323 #define GL_RGBA16_EXTENDED_RANGE_SGIX 0x85F3
19324 #define GL_ALPHA16_EXTENDED_RANGE_SGIX 0x85F4
19325 #define GL_LUMINANCE16_EXTENDED_RANGE_SGIX 0x85F5
19326 #define GL_INTENSITY16_EXTENDED_RANGE_SGIX 0x85F6
19327 #define GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX 0x85F7
19328 #define GL_MIN_LUMINANCE_SGIS 0x85F8
19329 #define GL_MAX_LUMINANCE_SGIS 0x85F9
19330 #define GL_MIN_INTENSITY_SGIS 0x85FA
19331 #define GL_MAX_INTENSITY_SGIS 0x85FB
19332 
19333 #define GLEW_SGIX_texture_range GLEW_GET_VAR(__GLEW_SGIX_texture_range)
19334 
19335 #endif /* GL_SGIX_texture_range */
19336 
19337 /* ----------------------- GL_SGIX_texture_scale_bias ---------------------- */
19338 
19339 #ifndef GL_SGIX_texture_scale_bias
19340 #define GL_SGIX_texture_scale_bias 1
19341 
19342 #define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179
19343 #define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A
19344 #define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B
19345 #define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C
19346 
19347 #define GLEW_SGIX_texture_scale_bias GLEW_GET_VAR(__GLEW_SGIX_texture_scale_bias)
19348 
19349 #endif /* GL_SGIX_texture_scale_bias */
19350 
19351 /* ---------------------- GL_SGIX_texture_supersample ---------------------- */
19352 
19353 #ifndef GL_SGIX_texture_supersample
19354 #define GL_SGIX_texture_supersample 1
19355 
19356 #define GLEW_SGIX_texture_supersample GLEW_GET_VAR(__GLEW_SGIX_texture_supersample)
19357 
19358 #endif /* GL_SGIX_texture_supersample */
19359 
19360 /* --------------------------- GL_SGIX_vector_ops -------------------------- */
19361 
19362 #ifndef GL_SGIX_vector_ops
19363 #define GL_SGIX_vector_ops 1
19364 
19365 typedef void (GLAPIENTRY * PFNGLGETVECTOROPERATIONSGIXPROC) (GLenum operation);
19366 typedef void (GLAPIENTRY * PFNGLVECTOROPERATIONSGIXPROC) (GLenum operation);
19367 
19368 #define glGetVectorOperationSGIX GLEW_GET_FUN(__glewGetVectorOperationSGIX)
19369 #define glVectorOperationSGIX GLEW_GET_FUN(__glewVectorOperationSGIX)
19370 
19371 #define GLEW_SGIX_vector_ops GLEW_GET_VAR(__GLEW_SGIX_vector_ops)
19372 
19373 #endif /* GL_SGIX_vector_ops */
19374 
19375 /* ---------------------- GL_SGIX_vertex_array_object ---------------------- */
19376 
19377 #ifndef GL_SGIX_vertex_array_object
19378 #define GL_SGIX_vertex_array_object 1
19379 
19380 typedef GLboolean (GLAPIENTRY * PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC) (GLsizei n, const GLuint* arrays, GLboolean* residences);
19381 typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYSGIXPROC) (GLuint array);
19382 typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSSGIXPROC) (GLsizei n, const GLuint* arrays);
19383 typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSSGIXPROC) (GLsizei n, GLuint* arrays);
19384 typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYSGIXPROC) (GLuint array);
19385 typedef void (GLAPIENTRY * PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC) (GLsizei n, const GLuint* arrays, const GLclampf* priorities);
19386 
19387 #define glAreVertexArraysResidentSGIX GLEW_GET_FUN(__glewAreVertexArraysResidentSGIX)
19388 #define glBindVertexArraySGIX GLEW_GET_FUN(__glewBindVertexArraySGIX)
19389 #define glDeleteVertexArraysSGIX GLEW_GET_FUN(__glewDeleteVertexArraysSGIX)
19390 #define glGenVertexArraysSGIX GLEW_GET_FUN(__glewGenVertexArraysSGIX)
19391 #define glIsVertexArraySGIX GLEW_GET_FUN(__glewIsVertexArraySGIX)
19392 #define glPrioritizeVertexArraysSGIX GLEW_GET_FUN(__glewPrioritizeVertexArraysSGIX)
19393 
19394 #define GLEW_SGIX_vertex_array_object GLEW_GET_VAR(__GLEW_SGIX_vertex_array_object)
19395 
19396 #endif /* GL_SGIX_vertex_array_object */
19397 
19398 /* ------------------------- GL_SGIX_vertex_preclip ------------------------ */
19399 
19400 #ifndef GL_SGIX_vertex_preclip
19401 #define GL_SGIX_vertex_preclip 1
19402 
19403 #define GL_VERTEX_PRECLIP_SGIX 0x83EE
19404 #define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF
19405 
19406 #define GLEW_SGIX_vertex_preclip GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip)
19407 
19408 #endif /* GL_SGIX_vertex_preclip */
19409 
19410 /* ---------------------- GL_SGIX_vertex_preclip_hint ---------------------- */
19411 
19412 #ifndef GL_SGIX_vertex_preclip_hint
19413 #define GL_SGIX_vertex_preclip_hint 1
19414 
19415 #define GL_VERTEX_PRECLIP_SGIX 0x83EE
19416 #define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF
19417 
19418 #define GLEW_SGIX_vertex_preclip_hint GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip_hint)
19419 
19420 #endif /* GL_SGIX_vertex_preclip_hint */
19421 
19422 /* ----------------------------- GL_SGIX_ycrcb ----------------------------- */
19423 
19424 #ifndef GL_SGIX_ycrcb
19425 #define GL_SGIX_ycrcb 1
19426 
19427 #define GLEW_SGIX_ycrcb GLEW_GET_VAR(__GLEW_SGIX_ycrcb)
19428 
19429 #endif /* GL_SGIX_ycrcb */
19430 
19431 /* ------------------------ GL_SGIX_ycrcb_subsample ------------------------ */
19432 
19433 #ifndef GL_SGIX_ycrcb_subsample
19434 #define GL_SGIX_ycrcb_subsample 1
19435 
19436 #define GLEW_SGIX_ycrcb_subsample GLEW_GET_VAR(__GLEW_SGIX_ycrcb_subsample)
19437 
19438 #endif /* GL_SGIX_ycrcb_subsample */
19439 
19440 /* ----------------------------- GL_SGIX_ycrcba ---------------------------- */
19441 
19442 #ifndef GL_SGIX_ycrcba
19443 #define GL_SGIX_ycrcba 1
19444 
19445 #define GL_YCRCB_SGIX 0x8318
19446 #define GL_YCRCBA_SGIX 0x8319
19447 
19448 #define GLEW_SGIX_ycrcba GLEW_GET_VAR(__GLEW_SGIX_ycrcba)
19449 
19450 #endif /* GL_SGIX_ycrcba */
19451 
19452 /* -------------------------- GL_SGI_color_matrix -------------------------- */
19453 
19454 #ifndef GL_SGI_color_matrix
19455 #define GL_SGI_color_matrix 1
19456 
19457 #define GL_COLOR_MATRIX_SGI 0x80B1
19458 #define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2
19459 #define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3
19460 #define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4
19461 #define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5
19462 #define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6
19463 #define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7
19464 #define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8
19465 #define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9
19466 #define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA
19467 #define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB
19468 
19469 #define GLEW_SGI_color_matrix GLEW_GET_VAR(__GLEW_SGI_color_matrix)
19470 
19471 #endif /* GL_SGI_color_matrix */
19472 
19473 /* --------------------------- GL_SGI_color_table -------------------------- */
19474 
19475 #ifndef GL_SGI_color_table
19476 #define GL_SGI_color_table 1
19477 
19478 #define GL_COLOR_TABLE_SGI 0x80D0
19479 #define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1
19480 #define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2
19481 #define GL_PROXY_COLOR_TABLE_SGI 0x80D3
19482 #define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4
19483 #define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5
19484 #define GL_COLOR_TABLE_SCALE_SGI 0x80D6
19485 #define GL_COLOR_TABLE_BIAS_SGI 0x80D7
19486 #define GL_COLOR_TABLE_FORMAT_SGI 0x80D8
19487 #define GL_COLOR_TABLE_WIDTH_SGI 0x80D9
19488 #define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA
19489 #define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB
19490 #define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC
19491 #define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD
19492 #define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE
19493 #define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF
19494 
19495 typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat* params);
19496 typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint* params);
19497 typedef void (GLAPIENTRY * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table);
19498 typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
19499 typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat* params);
19500 typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint* params);
19501 typedef void (GLAPIENTRY * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, void *table);
19502 
19503 #define glColorTableParameterfvSGI GLEW_GET_FUN(__glewColorTableParameterfvSGI)
19504 #define glColorTableParameterivSGI GLEW_GET_FUN(__glewColorTableParameterivSGI)
19505 #define glColorTableSGI GLEW_GET_FUN(__glewColorTableSGI)
19506 #define glCopyColorTableSGI GLEW_GET_FUN(__glewCopyColorTableSGI)
19507 #define glGetColorTableParameterfvSGI GLEW_GET_FUN(__glewGetColorTableParameterfvSGI)
19508 #define glGetColorTableParameterivSGI GLEW_GET_FUN(__glewGetColorTableParameterivSGI)
19509 #define glGetColorTableSGI GLEW_GET_FUN(__glewGetColorTableSGI)
19510 
19511 #define GLEW_SGI_color_table GLEW_GET_VAR(__GLEW_SGI_color_table)
19512 
19513 #endif /* GL_SGI_color_table */
19514 
19515 /* ----------------------------- GL_SGI_complex ---------------------------- */
19516 
19517 #ifndef GL_SGI_complex
19518 #define GL_SGI_complex 1
19519 
19520 #define GLEW_SGI_complex GLEW_GET_VAR(__GLEW_SGI_complex)
19521 
19522 #endif /* GL_SGI_complex */
19523 
19524 /* -------------------------- GL_SGI_complex_type -------------------------- */
19525 
19526 #ifndef GL_SGI_complex_type
19527 #define GL_SGI_complex_type 1
19528 
19529 #define GL_COMPLEX_UNSIGNED_BYTE_SGI 0x81BD
19530 #define GL_COMPLEX_BYTE_SGI 0x81BE
19531 #define GL_COMPLEX_UNSIGNED_SHORT_SGI 0x81BF
19532 #define GL_COMPLEX_SHORT_SGI 0x81C0
19533 #define GL_COMPLEX_UNSIGNED_INT_SGI 0x81C1
19534 #define GL_COMPLEX_INT_SGI 0x81C2
19535 #define GL_COMPLEX_FLOAT_SGI 0x81C3
19536 
19537 #define GLEW_SGI_complex_type GLEW_GET_VAR(__GLEW_SGI_complex_type)
19538 
19539 #endif /* GL_SGI_complex_type */
19540 
19541 /* ------------------------------- GL_SGI_fft ------------------------------ */
19542 
19543 #ifndef GL_SGI_fft
19544 #define GL_SGI_fft 1
19545 
19546 #define GL_PIXEL_TRANSFORM_OPERATOR_SGI 0x81C4
19547 #define GL_CONVOLUTION_SGI 0x81C5
19548 #define GL_FFT_1D_SGI 0x81C6
19549 #define GL_PIXEL_TRANSFORM_SGI 0x81C7
19550 #define GL_MAX_FFT_WIDTH_SGI 0x81C8
19551 
19552 typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat* params);
19553 typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint* params);
19554 typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFSGIPROC) (GLenum target, GLenum pname, GLfloat param);
19555 typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat* params);
19556 typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERISGIPROC) (GLenum target, GLenum pname, GLint param);
19557 typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint* params);
19558 typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMSGIPROC) (GLenum target);
19559 
19560 #define glGetPixelTransformParameterfvSGI GLEW_GET_FUN(__glewGetPixelTransformParameterfvSGI)
19561 #define glGetPixelTransformParameterivSGI GLEW_GET_FUN(__glewGetPixelTransformParameterivSGI)
19562 #define glPixelTransformParameterfSGI GLEW_GET_FUN(__glewPixelTransformParameterfSGI)
19563 #define glPixelTransformParameterfvSGI GLEW_GET_FUN(__glewPixelTransformParameterfvSGI)
19564 #define glPixelTransformParameteriSGI GLEW_GET_FUN(__glewPixelTransformParameteriSGI)
19565 #define glPixelTransformParameterivSGI GLEW_GET_FUN(__glewPixelTransformParameterivSGI)
19566 #define glPixelTransformSGI GLEW_GET_FUN(__glewPixelTransformSGI)
19567 
19568 #define GLEW_SGI_fft GLEW_GET_VAR(__GLEW_SGI_fft)
19569 
19570 #endif /* GL_SGI_fft */
19571 
19572 /* ----------------------- GL_SGI_texture_color_table ---------------------- */
19573 
19574 #ifndef GL_SGI_texture_color_table
19575 #define GL_SGI_texture_color_table 1
19576 
19577 #define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC
19578 #define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD
19579 
19580 #define GLEW_SGI_texture_color_table GLEW_GET_VAR(__GLEW_SGI_texture_color_table)
19581 
19582 #endif /* GL_SGI_texture_color_table */
19583 
19584 /* ------------------------- GL_SUNX_constant_data ------------------------- */
19585 
19586 #ifndef GL_SUNX_constant_data
19587 #define GL_SUNX_constant_data 1
19588 
19589 #define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5
19590 #define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6
19591 
19592 typedef void (GLAPIENTRY * PFNGLFINISHTEXTURESUNXPROC) (void);
19593 
19594 #define glFinishTextureSUNX GLEW_GET_FUN(__glewFinishTextureSUNX)
19595 
19596 #define GLEW_SUNX_constant_data GLEW_GET_VAR(__GLEW_SUNX_constant_data)
19597 
19598 #endif /* GL_SUNX_constant_data */
19599 
19600 /* -------------------- GL_SUN_convolution_border_modes -------------------- */
19601 
19602 #ifndef GL_SUN_convolution_border_modes
19603 #define GL_SUN_convolution_border_modes 1
19604 
19605 #define GL_WRAP_BORDER_SUN 0x81D4
19606 
19607 #define GLEW_SUN_convolution_border_modes GLEW_GET_VAR(__GLEW_SUN_convolution_border_modes)
19608 
19609 #endif /* GL_SUN_convolution_border_modes */
19610 
19611 /* -------------------------- GL_SUN_global_alpha -------------------------- */
19612 
19613 #ifndef GL_SUN_global_alpha
19614 #define GL_SUN_global_alpha 1
19615 
19616 #define GL_GLOBAL_ALPHA_SUN 0x81D9
19617 #define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA
19618 
19619 typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor);
19620 typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor);
19621 typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor);
19622 typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor);
19623 typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor);
19624 typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor);
19625 typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor);
19626 typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor);
19627 
19628 #define glGlobalAlphaFactorbSUN GLEW_GET_FUN(__glewGlobalAlphaFactorbSUN)
19629 #define glGlobalAlphaFactordSUN GLEW_GET_FUN(__glewGlobalAlphaFactordSUN)
19630 #define glGlobalAlphaFactorfSUN GLEW_GET_FUN(__glewGlobalAlphaFactorfSUN)
19631 #define glGlobalAlphaFactoriSUN GLEW_GET_FUN(__glewGlobalAlphaFactoriSUN)
19632 #define glGlobalAlphaFactorsSUN GLEW_GET_FUN(__glewGlobalAlphaFactorsSUN)
19633 #define glGlobalAlphaFactorubSUN GLEW_GET_FUN(__glewGlobalAlphaFactorubSUN)
19634 #define glGlobalAlphaFactoruiSUN GLEW_GET_FUN(__glewGlobalAlphaFactoruiSUN)
19635 #define glGlobalAlphaFactorusSUN GLEW_GET_FUN(__glewGlobalAlphaFactorusSUN)
19636 
19637 #define GLEW_SUN_global_alpha GLEW_GET_VAR(__GLEW_SUN_global_alpha)
19638 
19639 #endif /* GL_SUN_global_alpha */
19640 
19641 /* --------------------------- GL_SUN_mesh_array --------------------------- */
19642 
19643 #ifndef GL_SUN_mesh_array
19644 #define GL_SUN_mesh_array 1
19645 
19646 #define GL_QUAD_MESH_SUN 0x8614
19647 #define GL_TRIANGLE_MESH_SUN 0x8615
19648 
19649 #define GLEW_SUN_mesh_array GLEW_GET_VAR(__GLEW_SUN_mesh_array)
19650 
19651 #endif /* GL_SUN_mesh_array */
19652 
19653 /* ------------------------ GL_SUN_read_video_pixels ----------------------- */
19654 
19655 #ifndef GL_SUN_read_video_pixels
19656 #define GL_SUN_read_video_pixels 1
19657 
19658 typedef void (GLAPIENTRY * PFNGLREADVIDEOPIXELSSUNPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels);
19659 
19660 #define glReadVideoPixelsSUN GLEW_GET_FUN(__glewReadVideoPixelsSUN)
19661 
19662 #define GLEW_SUN_read_video_pixels GLEW_GET_VAR(__GLEW_SUN_read_video_pixels)
19663 
19664 #endif /* GL_SUN_read_video_pixels */
19665 
19666 /* --------------------------- GL_SUN_slice_accum -------------------------- */
19667 
19668 #ifndef GL_SUN_slice_accum
19669 #define GL_SUN_slice_accum 1
19670 
19671 #define GL_SLICE_ACCUM_SUN 0x85CC
19672 
19673 #define GLEW_SUN_slice_accum GLEW_GET_VAR(__GLEW_SUN_slice_accum)
19674 
19675 #endif /* GL_SUN_slice_accum */
19676 
19677 /* -------------------------- GL_SUN_triangle_list ------------------------- */
19678 
19679 #ifndef GL_SUN_triangle_list
19680 #define GL_SUN_triangle_list 1
19681 
19682 #define GL_RESTART_SUN 0x01
19683 #define GL_REPLACE_MIDDLE_SUN 0x02
19684 #define GL_REPLACE_OLDEST_SUN 0x03
19685 #define GL_TRIANGLE_LIST_SUN 0x81D7
19686 #define GL_REPLACEMENT_CODE_SUN 0x81D8
19687 #define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0
19688 #define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1
19689 #define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2
19690 #define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3
19691 #define GL_R1UI_V3F_SUN 0x85C4
19692 #define GL_R1UI_C4UB_V3F_SUN 0x85C5
19693 #define GL_R1UI_C3F_V3F_SUN 0x85C6
19694 #define GL_R1UI_N3F_V3F_SUN 0x85C7
19695 #define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8
19696 #define GL_R1UI_T2F_V3F_SUN 0x85C9
19697 #define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA
19698 #define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB
19699 
19700 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const void *pointer);
19701 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code);
19702 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte* code);
19703 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code);
19704 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint* code);
19705 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code);
19706 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort* code);
19707 
19708 #define glReplacementCodePointerSUN GLEW_GET_FUN(__glewReplacementCodePointerSUN)
19709 #define glReplacementCodeubSUN GLEW_GET_FUN(__glewReplacementCodeubSUN)
19710 #define glReplacementCodeubvSUN GLEW_GET_FUN(__glewReplacementCodeubvSUN)
19711 #define glReplacementCodeuiSUN GLEW_GET_FUN(__glewReplacementCodeuiSUN)
19712 #define glReplacementCodeuivSUN GLEW_GET_FUN(__glewReplacementCodeuivSUN)
19713 #define glReplacementCodeusSUN GLEW_GET_FUN(__glewReplacementCodeusSUN)
19714 #define glReplacementCodeusvSUN GLEW_GET_FUN(__glewReplacementCodeusvSUN)
19715 
19716 #define GLEW_SUN_triangle_list GLEW_GET_VAR(__GLEW_SUN_triangle_list)
19717 
19718 #endif /* GL_SUN_triangle_list */
19719 
19720 /* ----------------------------- GL_SUN_vertex ----------------------------- */
19721 
19722 #ifndef GL_SUN_vertex
19723 #define GL_SUN_vertex 1
19724 
19725 typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
19726 typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *v);
19727 typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
19728 typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *n, const GLfloat *v);
19729 typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
19730 typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte* c, const GLfloat *v);
19731 typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
19732 typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte* c, const GLfloat *v);
19733 typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
19734 typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* n, const GLfloat *v);
19735 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
19736 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *v);
19737 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
19738 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
19739 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
19740 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint* rc, const GLubyte *c, const GLfloat *v);
19741 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
19742 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *n, const GLfloat *v);
19743 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
19744 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
19745 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
19746 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
19747 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
19748 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *v);
19749 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z);
19750 typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *v);
19751 typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
19752 typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *v);
19753 typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
19754 typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
19755 typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
19756 typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat* tc, const GLubyte *c, const GLfloat *v);
19757 typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
19758 typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *n, const GLfloat *v);
19759 typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
19760 typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *v);
19761 typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
19762 typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
19763 typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
19764 typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *v);
19765 
19766 #define glColor3fVertex3fSUN GLEW_GET_FUN(__glewColor3fVertex3fSUN)
19767 #define glColor3fVertex3fvSUN GLEW_GET_FUN(__glewColor3fVertex3fvSUN)
19768 #define glColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fSUN)
19769 #define glColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fvSUN)
19770 #define glColor4ubVertex2fSUN GLEW_GET_FUN(__glewColor4ubVertex2fSUN)
19771 #define glColor4ubVertex2fvSUN GLEW_GET_FUN(__glewColor4ubVertex2fvSUN)
19772 #define glColor4ubVertex3fSUN GLEW_GET_FUN(__glewColor4ubVertex3fSUN)
19773 #define glColor4ubVertex3fvSUN GLEW_GET_FUN(__glewColor4ubVertex3fvSUN)
19774 #define glNormal3fVertex3fSUN GLEW_GET_FUN(__glewNormal3fVertex3fSUN)
19775 #define glNormal3fVertex3fvSUN GLEW_GET_FUN(__glewNormal3fVertex3fvSUN)
19776 #define glReplacementCodeuiColor3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fSUN)
19777 #define glReplacementCodeuiColor3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fvSUN)
19778 #define glReplacementCodeuiColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fSUN)
19779 #define glReplacementCodeuiColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fvSUN)
19780 #define glReplacementCodeuiColor4ubVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fSUN)
19781 #define glReplacementCodeuiColor4ubVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fvSUN)
19782 #define glReplacementCodeuiNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fSUN)
19783 #define glReplacementCodeuiNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fvSUN)
19784 #define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN)
19785 #define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN)
19786 #define glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN)
19787 #define glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN)
19788 #define glReplacementCodeuiTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fSUN)
19789 #define glReplacementCodeuiTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fvSUN)
19790 #define glReplacementCodeuiVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fSUN)
19791 #define glReplacementCodeuiVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fvSUN)
19792 #define glTexCoord2fColor3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fSUN)
19793 #define glTexCoord2fColor3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fvSUN)
19794 #define glTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fSUN)
19795 #define glTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fvSUN)
19796 #define glTexCoord2fColor4ubVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fSUN)
19797 #define glTexCoord2fColor4ubVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fvSUN)
19798 #define glTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fSUN)
19799 #define glTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fvSUN)
19800 #define glTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fSUN)
19801 #define glTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fvSUN)
19802 #define glTexCoord4fColor4fNormal3fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fSUN)
19803 #define glTexCoord4fColor4fNormal3fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fvSUN)
19804 #define glTexCoord4fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fSUN)
19805 #define glTexCoord4fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fvSUN)
19806 
19807 #define GLEW_SUN_vertex GLEW_GET_VAR(__GLEW_SUN_vertex)
19808 
19809 #endif /* GL_SUN_vertex */
19810 
19811 /* -------------------------- GL_WIN_phong_shading ------------------------- */
19812 
19813 #ifndef GL_WIN_phong_shading
19814 #define GL_WIN_phong_shading 1
19815 
19816 #define GL_PHONG_WIN 0x80EA
19817 #define GL_PHONG_HINT_WIN 0x80EB
19818 
19819 #define GLEW_WIN_phong_shading GLEW_GET_VAR(__GLEW_WIN_phong_shading)
19820 
19821 #endif /* GL_WIN_phong_shading */
19822 
19823 /* ------------------------- GL_WIN_scene_markerXXX ------------------------ */
19824 
19825 #ifndef GL_WIN_scene_markerXXX
19826 #define GL_WIN_scene_markerXXX 1
19827 
19828 #define GLEW_WIN_scene_markerXXX GLEW_GET_VAR(__GLEW_WIN_scene_markerXXX)
19829 
19830 #endif /* GL_WIN_scene_markerXXX */
19831 
19832 /* -------------------------- GL_WIN_specular_fog -------------------------- */
19833 
19834 #ifndef GL_WIN_specular_fog
19835 #define GL_WIN_specular_fog 1
19836 
19837 #define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC
19838 
19839 #define GLEW_WIN_specular_fog GLEW_GET_VAR(__GLEW_WIN_specular_fog)
19840 
19841 #endif /* GL_WIN_specular_fog */
19842 
19843 /* ---------------------------- GL_WIN_swap_hint --------------------------- */
19844 
19845 #ifndef GL_WIN_swap_hint
19846 #define GL_WIN_swap_hint 1
19847 
19848 typedef void (GLAPIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
19849 
19850 #define glAddSwapHintRectWIN GLEW_GET_FUN(__glewAddSwapHintRectWIN)
19851 
19852 #define GLEW_WIN_swap_hint GLEW_GET_VAR(__GLEW_WIN_swap_hint)
19853 
19854 #endif /* GL_WIN_swap_hint */
19855 
19856 /* ------------------------------------------------------------------------- */
19857 
19858 
19859 
19860 GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D;
19861 GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements;
19862 GLEW_FUN_EXPORT PFNGLTEXIMAGE3DPROC __glewTexImage3D;
19863 GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DPROC __glewTexSubImage3D;
19864 
19865 GLEW_FUN_EXPORT PFNGLACTIVETEXTUREPROC __glewActiveTexture;
19866 GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREPROC __glewClientActiveTexture;
19867 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DPROC __glewCompressedTexImage1D;
19868 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DPROC __glewCompressedTexImage2D;
19869 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DPROC __glewCompressedTexImage3D;
19870 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC __glewCompressedTexSubImage1D;
19871 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC __glewCompressedTexSubImage2D;
19872 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC __glewCompressedTexSubImage3D;
19873 GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEPROC __glewGetCompressedTexImage;
19874 GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDPROC __glewLoadTransposeMatrixd;
19875 GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFPROC __glewLoadTransposeMatrixf;
19876 GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDPROC __glewMultTransposeMatrixd;
19877 GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFPROC __glewMultTransposeMatrixf;
19878 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DPROC __glewMultiTexCoord1d;
19879 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVPROC __glewMultiTexCoord1dv;
19880 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FPROC __glewMultiTexCoord1f;
19881 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVPROC __glewMultiTexCoord1fv;
19882 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IPROC __glewMultiTexCoord1i;
19883 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVPROC __glewMultiTexCoord1iv;
19884 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SPROC __glewMultiTexCoord1s;
19885 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVPROC __glewMultiTexCoord1sv;
19886 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DPROC __glewMultiTexCoord2d;
19887 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVPROC __glewMultiTexCoord2dv;
19888 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FPROC __glewMultiTexCoord2f;
19889 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVPROC __glewMultiTexCoord2fv;
19890 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IPROC __glewMultiTexCoord2i;
19891 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVPROC __glewMultiTexCoord2iv;
19892 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SPROC __glewMultiTexCoord2s;
19893 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVPROC __glewMultiTexCoord2sv;
19894 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DPROC __glewMultiTexCoord3d;
19895 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVPROC __glewMultiTexCoord3dv;
19896 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FPROC __glewMultiTexCoord3f;
19897 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVPROC __glewMultiTexCoord3fv;
19898 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IPROC __glewMultiTexCoord3i;
19899 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVPROC __glewMultiTexCoord3iv;
19900 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SPROC __glewMultiTexCoord3s;
19901 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVPROC __glewMultiTexCoord3sv;
19902 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DPROC __glewMultiTexCoord4d;
19903 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVPROC __glewMultiTexCoord4dv;
19904 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FPROC __glewMultiTexCoord4f;
19905 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVPROC __glewMultiTexCoord4fv;
19906 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IPROC __glewMultiTexCoord4i;
19907 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVPROC __glewMultiTexCoord4iv;
19908 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SPROC __glewMultiTexCoord4s;
19909 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVPROC __glewMultiTexCoord4sv;
19910 GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEPROC __glewSampleCoverage;
19911 
19912 GLEW_FUN_EXPORT PFNGLBLENDCOLORPROC __glewBlendColor;
19913 GLEW_FUN_EXPORT PFNGLBLENDEQUATIONPROC __glewBlendEquation;
19914 GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEPROC __glewBlendFuncSeparate;
19915 GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERPROC __glewFogCoordPointer;
19916 GLEW_FUN_EXPORT PFNGLFOGCOORDDPROC __glewFogCoordd;
19917 GLEW_FUN_EXPORT PFNGLFOGCOORDDVPROC __glewFogCoorddv;
19918 GLEW_FUN_EXPORT PFNGLFOGCOORDFPROC __glewFogCoordf;
19919 GLEW_FUN_EXPORT PFNGLFOGCOORDFVPROC __glewFogCoordfv;
19920 GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSPROC __glewMultiDrawArrays;
19921 GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSPROC __glewMultiDrawElements;
19922 GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFPROC __glewPointParameterf;
19923 GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVPROC __glewPointParameterfv;
19924 GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIPROC __glewPointParameteri;
19925 GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVPROC __glewPointParameteriv;
19926 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BPROC __glewSecondaryColor3b;
19927 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVPROC __glewSecondaryColor3bv;
19928 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DPROC __glewSecondaryColor3d;
19929 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVPROC __glewSecondaryColor3dv;
19930 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FPROC __glewSecondaryColor3f;
19931 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVPROC __glewSecondaryColor3fv;
19932 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IPROC __glewSecondaryColor3i;
19933 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVPROC __glewSecondaryColor3iv;
19934 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SPROC __glewSecondaryColor3s;
19935 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVPROC __glewSecondaryColor3sv;
19936 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBPROC __glewSecondaryColor3ub;
19937 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVPROC __glewSecondaryColor3ubv;
19938 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIPROC __glewSecondaryColor3ui;
19939 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVPROC __glewSecondaryColor3uiv;
19940 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USPROC __glewSecondaryColor3us;
19941 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVPROC __glewSecondaryColor3usv;
19942 GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERPROC __glewSecondaryColorPointer;
19943 GLEW_FUN_EXPORT PFNGLWINDOWPOS2DPROC __glewWindowPos2d;
19944 GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVPROC __glewWindowPos2dv;
19945 GLEW_FUN_EXPORT PFNGLWINDOWPOS2FPROC __glewWindowPos2f;
19946 GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVPROC __glewWindowPos2fv;
19947 GLEW_FUN_EXPORT PFNGLWINDOWPOS2IPROC __glewWindowPos2i;
19948 GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVPROC __glewWindowPos2iv;
19949 GLEW_FUN_EXPORT PFNGLWINDOWPOS2SPROC __glewWindowPos2s;
19950 GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVPROC __glewWindowPos2sv;
19951 GLEW_FUN_EXPORT PFNGLWINDOWPOS3DPROC __glewWindowPos3d;
19952 GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVPROC __glewWindowPos3dv;
19953 GLEW_FUN_EXPORT PFNGLWINDOWPOS3FPROC __glewWindowPos3f;
19954 GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVPROC __glewWindowPos3fv;
19955 GLEW_FUN_EXPORT PFNGLWINDOWPOS3IPROC __glewWindowPos3i;
19956 GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVPROC __glewWindowPos3iv;
19957 GLEW_FUN_EXPORT PFNGLWINDOWPOS3SPROC __glewWindowPos3s;
19958 GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVPROC __glewWindowPos3sv;
19959 
19960 GLEW_FUN_EXPORT PFNGLBEGINQUERYPROC __glewBeginQuery;
19961 GLEW_FUN_EXPORT PFNGLBINDBUFFERPROC __glewBindBuffer;
19962 GLEW_FUN_EXPORT PFNGLBUFFERDATAPROC __glewBufferData;
19963 GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAPROC __glewBufferSubData;
19964 GLEW_FUN_EXPORT PFNGLDELETEBUFFERSPROC __glewDeleteBuffers;
19965 GLEW_FUN_EXPORT PFNGLDELETEQUERIESPROC __glewDeleteQueries;
19966 GLEW_FUN_EXPORT PFNGLENDQUERYPROC __glewEndQuery;
19967 GLEW_FUN_EXPORT PFNGLGENBUFFERSPROC __glewGenBuffers;
19968 GLEW_FUN_EXPORT PFNGLGENQUERIESPROC __glewGenQueries;
19969 GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVPROC __glewGetBufferParameteriv;
19970 GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVPROC __glewGetBufferPointerv;
19971 GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAPROC __glewGetBufferSubData;
19972 GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVPROC __glewGetQueryObjectiv;
19973 GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVPROC __glewGetQueryObjectuiv;
19974 GLEW_FUN_EXPORT PFNGLGETQUERYIVPROC __glewGetQueryiv;
19975 GLEW_FUN_EXPORT PFNGLISBUFFERPROC __glewIsBuffer;
19976 GLEW_FUN_EXPORT PFNGLISQUERYPROC __glewIsQuery;
19977 GLEW_FUN_EXPORT PFNGLMAPBUFFERPROC __glewMapBuffer;
19978 GLEW_FUN_EXPORT PFNGLUNMAPBUFFERPROC __glewUnmapBuffer;
19979 
19980 GLEW_FUN_EXPORT PFNGLATTACHSHADERPROC __glewAttachShader;
19981 GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONPROC __glewBindAttribLocation;
19982 GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEPROC __glewBlendEquationSeparate;
19983 GLEW_FUN_EXPORT PFNGLCOMPILESHADERPROC __glewCompileShader;
19984 GLEW_FUN_EXPORT PFNGLCREATEPROGRAMPROC __glewCreateProgram;
19985 GLEW_FUN_EXPORT PFNGLCREATESHADERPROC __glewCreateShader;
19986 GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPROC __glewDeleteProgram;
19987 GLEW_FUN_EXPORT PFNGLDELETESHADERPROC __glewDeleteShader;
19988 GLEW_FUN_EXPORT PFNGLDETACHSHADERPROC __glewDetachShader;
19989 GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYPROC __glewDisableVertexAttribArray;
19990 GLEW_FUN_EXPORT PFNGLDRAWBUFFERSPROC __glewDrawBuffers;
19991 GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYPROC __glewEnableVertexAttribArray;
19992 GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBPROC __glewGetActiveAttrib;
19993 GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMPROC __glewGetActiveUniform;
19994 GLEW_FUN_EXPORT PFNGLGETATTACHEDSHADERSPROC __glewGetAttachedShaders;
19995 GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONPROC __glewGetAttribLocation;
19996 GLEW_FUN_EXPORT PFNGLGETPROGRAMINFOLOGPROC __glewGetProgramInfoLog;
19997 GLEW_FUN_EXPORT PFNGLGETPROGRAMIVPROC __glewGetProgramiv;
19998 GLEW_FUN_EXPORT PFNGLGETSHADERINFOLOGPROC __glewGetShaderInfoLog;
19999 GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEPROC __glewGetShaderSource;
20000 GLEW_FUN_EXPORT PFNGLGETSHADERIVPROC __glewGetShaderiv;
20001 GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONPROC __glewGetUniformLocation;
20002 GLEW_FUN_EXPORT PFNGLGETUNIFORMFVPROC __glewGetUniformfv;
20003 GLEW_FUN_EXPORT PFNGLGETUNIFORMIVPROC __glewGetUniformiv;
20004 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVPROC __glewGetVertexAttribPointerv;
20005 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVPROC __glewGetVertexAttribdv;
20006 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVPROC __glewGetVertexAttribfv;
20007 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVPROC __glewGetVertexAttribiv;
20008 GLEW_FUN_EXPORT PFNGLISPROGRAMPROC __glewIsProgram;
20009 GLEW_FUN_EXPORT PFNGLISSHADERPROC __glewIsShader;
20010 GLEW_FUN_EXPORT PFNGLLINKPROGRAMPROC __glewLinkProgram;
20011 GLEW_FUN_EXPORT PFNGLSHADERSOURCEPROC __glewShaderSource;
20012 GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEPROC __glewStencilFuncSeparate;
20013 GLEW_FUN_EXPORT PFNGLSTENCILMASKSEPARATEPROC __glewStencilMaskSeparate;
20014 GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEPROC __glewStencilOpSeparate;
20015 GLEW_FUN_EXPORT PFNGLUNIFORM1FPROC __glewUniform1f;
20016 GLEW_FUN_EXPORT PFNGLUNIFORM1FVPROC __glewUniform1fv;
20017 GLEW_FUN_EXPORT PFNGLUNIFORM1IPROC __glewUniform1i;
20018 GLEW_FUN_EXPORT PFNGLUNIFORM1IVPROC __glewUniform1iv;
20019 GLEW_FUN_EXPORT PFNGLUNIFORM2FPROC __glewUniform2f;
20020 GLEW_FUN_EXPORT PFNGLUNIFORM2FVPROC __glewUniform2fv;
20021 GLEW_FUN_EXPORT PFNGLUNIFORM2IPROC __glewUniform2i;
20022 GLEW_FUN_EXPORT PFNGLUNIFORM2IVPROC __glewUniform2iv;
20023 GLEW_FUN_EXPORT PFNGLUNIFORM3FPROC __glewUniform3f;
20024 GLEW_FUN_EXPORT PFNGLUNIFORM3FVPROC __glewUniform3fv;
20025 GLEW_FUN_EXPORT PFNGLUNIFORM3IPROC __glewUniform3i;
20026 GLEW_FUN_EXPORT PFNGLUNIFORM3IVPROC __glewUniform3iv;
20027 GLEW_FUN_EXPORT PFNGLUNIFORM4FPROC __glewUniform4f;
20028 GLEW_FUN_EXPORT PFNGLUNIFORM4FVPROC __glewUniform4fv;
20029 GLEW_FUN_EXPORT PFNGLUNIFORM4IPROC __glewUniform4i;
20030 GLEW_FUN_EXPORT PFNGLUNIFORM4IVPROC __glewUniform4iv;
20031 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVPROC __glewUniformMatrix2fv;
20032 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVPROC __glewUniformMatrix3fv;
20033 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVPROC __glewUniformMatrix4fv;
20034 GLEW_FUN_EXPORT PFNGLUSEPROGRAMPROC __glewUseProgram;
20035 GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPROC __glewValidateProgram;
20036 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DPROC __glewVertexAttrib1d;
20037 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVPROC __glewVertexAttrib1dv;
20038 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FPROC __glewVertexAttrib1f;
20039 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVPROC __glewVertexAttrib1fv;
20040 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SPROC __glewVertexAttrib1s;
20041 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVPROC __glewVertexAttrib1sv;
20042 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DPROC __glewVertexAttrib2d;
20043 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVPROC __glewVertexAttrib2dv;
20044 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FPROC __glewVertexAttrib2f;
20045 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVPROC __glewVertexAttrib2fv;
20046 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SPROC __glewVertexAttrib2s;
20047 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVPROC __glewVertexAttrib2sv;
20048 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DPROC __glewVertexAttrib3d;
20049 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVPROC __glewVertexAttrib3dv;
20050 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FPROC __glewVertexAttrib3f;
20051 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVPROC __glewVertexAttrib3fv;
20052 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SPROC __glewVertexAttrib3s;
20053 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVPROC __glewVertexAttrib3sv;
20054 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVPROC __glewVertexAttrib4Nbv;
20055 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVPROC __glewVertexAttrib4Niv;
20056 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVPROC __glewVertexAttrib4Nsv;
20057 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBPROC __glewVertexAttrib4Nub;
20058 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVPROC __glewVertexAttrib4Nubv;
20059 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVPROC __glewVertexAttrib4Nuiv;
20060 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVPROC __glewVertexAttrib4Nusv;
20061 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVPROC __glewVertexAttrib4bv;
20062 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DPROC __glewVertexAttrib4d;
20063 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVPROC __glewVertexAttrib4dv;
20064 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FPROC __glewVertexAttrib4f;
20065 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVPROC __glewVertexAttrib4fv;
20066 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVPROC __glewVertexAttrib4iv;
20067 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SPROC __glewVertexAttrib4s;
20068 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVPROC __glewVertexAttrib4sv;
20069 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVPROC __glewVertexAttrib4ubv;
20070 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVPROC __glewVertexAttrib4uiv;
20071 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVPROC __glewVertexAttrib4usv;
20072 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERPROC __glewVertexAttribPointer;
20073 
20074 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3FVPROC __glewUniformMatrix2x3fv;
20075 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4FVPROC __glewUniformMatrix2x4fv;
20076 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2FVPROC __glewUniformMatrix3x2fv;
20077 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4FVPROC __glewUniformMatrix3x4fv;
20078 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2FVPROC __glewUniformMatrix4x2fv;
20079 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3FVPROC __glewUniformMatrix4x3fv;
20080 
20081 GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERPROC __glewBeginConditionalRender;
20082 GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKPROC __glewBeginTransformFeedback;
20083 GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONPROC __glewBindFragDataLocation;
20084 GLEW_FUN_EXPORT PFNGLCLAMPCOLORPROC __glewClampColor;
20085 GLEW_FUN_EXPORT PFNGLCLEARBUFFERFIPROC __glewClearBufferfi;
20086 GLEW_FUN_EXPORT PFNGLCLEARBUFFERFVPROC __glewClearBufferfv;
20087 GLEW_FUN_EXPORT PFNGLCLEARBUFFERIVPROC __glewClearBufferiv;
20088 GLEW_FUN_EXPORT PFNGLCLEARBUFFERUIVPROC __glewClearBufferuiv;
20089 GLEW_FUN_EXPORT PFNGLCOLORMASKIPROC __glewColorMaski;
20090 GLEW_FUN_EXPORT PFNGLDISABLEIPROC __glewDisablei;
20091 GLEW_FUN_EXPORT PFNGLENABLEIPROC __glewEnablei;
20092 GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERPROC __glewEndConditionalRender;
20093 GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKPROC __glewEndTransformFeedback;
20094 GLEW_FUN_EXPORT PFNGLGETBOOLEANI_VPROC __glewGetBooleani_v;
20095 GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONPROC __glewGetFragDataLocation;
20096 GLEW_FUN_EXPORT PFNGLGETSTRINGIPROC __glewGetStringi;
20097 GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVPROC __glewGetTexParameterIiv;
20098 GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVPROC __glewGetTexParameterIuiv;
20099 GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGPROC __glewGetTransformFeedbackVarying;
20100 GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVPROC __glewGetUniformuiv;
20101 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVPROC __glewGetVertexAttribIiv;
20102 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVPROC __glewGetVertexAttribIuiv;
20103 GLEW_FUN_EXPORT PFNGLISENABLEDIPROC __glewIsEnabledi;
20104 GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVPROC __glewTexParameterIiv;
20105 GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVPROC __glewTexParameterIuiv;
20106 GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSPROC __glewTransformFeedbackVaryings;
20107 GLEW_FUN_EXPORT PFNGLUNIFORM1UIPROC __glewUniform1ui;
20108 GLEW_FUN_EXPORT PFNGLUNIFORM1UIVPROC __glewUniform1uiv;
20109 GLEW_FUN_EXPORT PFNGLUNIFORM2UIPROC __glewUniform2ui;
20110 GLEW_FUN_EXPORT PFNGLUNIFORM2UIVPROC __glewUniform2uiv;
20111 GLEW_FUN_EXPORT PFNGLUNIFORM3UIPROC __glewUniform3ui;
20112 GLEW_FUN_EXPORT PFNGLUNIFORM3UIVPROC __glewUniform3uiv;
20113 GLEW_FUN_EXPORT PFNGLUNIFORM4UIPROC __glewUniform4ui;
20114 GLEW_FUN_EXPORT PFNGLUNIFORM4UIVPROC __glewUniform4uiv;
20115 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IPROC __glewVertexAttribI1i;
20116 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVPROC __glewVertexAttribI1iv;
20117 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIPROC __glewVertexAttribI1ui;
20118 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVPROC __glewVertexAttribI1uiv;
20119 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IPROC __glewVertexAttribI2i;
20120 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVPROC __glewVertexAttribI2iv;
20121 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIPROC __glewVertexAttribI2ui;
20122 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVPROC __glewVertexAttribI2uiv;
20123 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IPROC __glewVertexAttribI3i;
20124 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVPROC __glewVertexAttribI3iv;
20125 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIPROC __glewVertexAttribI3ui;
20126 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVPROC __glewVertexAttribI3uiv;
20127 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVPROC __glewVertexAttribI4bv;
20128 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IPROC __glewVertexAttribI4i;
20129 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVPROC __glewVertexAttribI4iv;
20130 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVPROC __glewVertexAttribI4sv;
20131 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVPROC __glewVertexAttribI4ubv;
20132 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIPROC __glewVertexAttribI4ui;
20133 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVPROC __glewVertexAttribI4uiv;
20134 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVPROC __glewVertexAttribI4usv;
20135 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTERPROC __glewVertexAttribIPointer;
20136 
20137 GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDPROC __glewDrawArraysInstanced;
20138 GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDPROC __glewDrawElementsInstanced;
20139 GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXPROC __glewPrimitiveRestartIndex;
20140 GLEW_FUN_EXPORT PFNGLTEXBUFFERPROC __glewTexBuffer;
20141 
20142 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREPROC __glewFramebufferTexture;
20143 GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERI64VPROC __glewGetBufferParameteri64v;
20144 GLEW_FUN_EXPORT PFNGLGETINTEGER64I_VPROC __glewGetInteger64i_v;
20145 
20146 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORPROC __glewVertexAttribDivisor;
20147 
20148 GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIPROC __glewBlendEquationSeparatei;
20149 GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIPROC __glewBlendEquationi;
20150 GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIPROC __glewBlendFuncSeparatei;
20151 GLEW_FUN_EXPORT PFNGLBLENDFUNCIPROC __glewBlendFunci;
20152 GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGPROC __glewMinSampleShading;
20153 
20154 GLEW_FUN_EXPORT PFNGLGETGRAPHICSRESETSTATUSPROC __glewGetGraphicsResetStatus;
20155 GLEW_FUN_EXPORT PFNGLGETNCOMPRESSEDTEXIMAGEPROC __glewGetnCompressedTexImage;
20156 GLEW_FUN_EXPORT PFNGLGETNTEXIMAGEPROC __glewGetnTexImage;
20157 GLEW_FUN_EXPORT PFNGLGETNUNIFORMDVPROC __glewGetnUniformdv;
20158 
20159 GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC __glewMultiDrawArraysIndirectCount;
20160 GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC __glewMultiDrawElementsIndirectCount;
20161 GLEW_FUN_EXPORT PFNGLSPECIALIZESHADERPROC __glewSpecializeShader;
20162 
20163 GLEW_FUN_EXPORT PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX;
20164 
20165 GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD;
20166 GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEENABLEAMDPROC __glewDebugMessageEnableAMD;
20167 GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTAMDPROC __glewDebugMessageInsertAMD;
20168 GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGAMDPROC __glewGetDebugMessageLogAMD;
20169 
20170 GLEW_FUN_EXPORT PFNGLBLENDEQUATIONINDEXEDAMDPROC __glewBlendEquationIndexedAMD;
20171 GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSeparateIndexedAMD;
20172 GLEW_FUN_EXPORT PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD;
20173 GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD;
20174 
20175 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewFramebufferSamplePositionsfvAMD;
20176 GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC __glewGetFramebufferParameterfvAMD;
20177 GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC __glewGetNamedFramebufferParameterfvAMD;
20178 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewNamedFramebufferSamplePositionsfvAMD;
20179 
20180 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPARAMETERIAMDPROC __glewVertexAttribParameteriAMD;
20181 
20182 GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC __glewMultiDrawArraysIndirectAMD;
20183 GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC __glewMultiDrawElementsIndirectAMD;
20184 
20185 GLEW_FUN_EXPORT PFNGLDELETENAMESAMDPROC __glewDeleteNamesAMD;
20186 GLEW_FUN_EXPORT PFNGLGENNAMESAMDPROC __glewGenNamesAMD;
20187 GLEW_FUN_EXPORT PFNGLISNAMEAMDPROC __glewIsNameAMD;
20188 
20189 GLEW_FUN_EXPORT PFNGLQUERYOBJECTPARAMETERUIAMDPROC __glewQueryObjectParameteruiAMD;
20190 
20191 GLEW_FUN_EXPORT PFNGLBEGINPERFMONITORAMDPROC __glewBeginPerfMonitorAMD;
20192 GLEW_FUN_EXPORT PFNGLDELETEPERFMONITORSAMDPROC __glewDeletePerfMonitorsAMD;
20193 GLEW_FUN_EXPORT PFNGLENDPERFMONITORAMDPROC __glewEndPerfMonitorAMD;
20194 GLEW_FUN_EXPORT PFNGLGENPERFMONITORSAMDPROC __glewGenPerfMonitorsAMD;
20195 GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERDATAAMDPROC __glewGetPerfMonitorCounterDataAMD;
20196 GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERINFOAMDPROC __glewGetPerfMonitorCounterInfoAMD;
20197 GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC __glewGetPerfMonitorCounterStringAMD;
20198 GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSAMDPROC __glewGetPerfMonitorCountersAMD;
20199 GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSTRINGAMDPROC __glewGetPerfMonitorGroupStringAMD;
20200 GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSAMDPROC __glewGetPerfMonitorGroupsAMD;
20201 GLEW_FUN_EXPORT PFNGLSELECTPERFMONITORCOUNTERSAMDPROC __glewSelectPerfMonitorCountersAMD;
20202 
20203 GLEW_FUN_EXPORT PFNGLSETMULTISAMPLEFVAMDPROC __glewSetMultisamplefvAMD;
20204 
20205 GLEW_FUN_EXPORT PFNGLTEXSTORAGESPARSEAMDPROC __glewTexStorageSparseAMD;
20206 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGESPARSEAMDPROC __glewTextureStorageSparseAMD;
20207 
20208 GLEW_FUN_EXPORT PFNGLSTENCILOPVALUEAMDPROC __glewStencilOpValueAMD;
20209 
20210 GLEW_FUN_EXPORT PFNGLTESSELLATIONFACTORAMDPROC __glewTessellationFactorAMD;
20211 GLEW_FUN_EXPORT PFNGLTESSELLATIONMODEAMDPROC __glewTessellationModeAMD;
20212 
20213 GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERANGLEPROC __glewBlitFramebufferANGLE;
20214 
20215 GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC __glewRenderbufferStorageMultisampleANGLE;
20216 
20217 GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDANGLEPROC __glewDrawArraysInstancedANGLE;
20218 GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDANGLEPROC __glewDrawElementsInstancedANGLE;
20219 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORANGLEPROC __glewVertexAttribDivisorANGLE;
20220 
20221 GLEW_FUN_EXPORT PFNGLBEGINQUERYANGLEPROC __glewBeginQueryANGLE;
20222 GLEW_FUN_EXPORT PFNGLDELETEQUERIESANGLEPROC __glewDeleteQueriesANGLE;
20223 GLEW_FUN_EXPORT PFNGLENDQUERYANGLEPROC __glewEndQueryANGLE;
20224 GLEW_FUN_EXPORT PFNGLGENQUERIESANGLEPROC __glewGenQueriesANGLE;
20225 GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VANGLEPROC __glewGetQueryObjecti64vANGLE;
20226 GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVANGLEPROC __glewGetQueryObjectivANGLE;
20227 GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VANGLEPROC __glewGetQueryObjectui64vANGLE;
20228 GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVANGLEPROC __glewGetQueryObjectuivANGLE;
20229 GLEW_FUN_EXPORT PFNGLGETQUERYIVANGLEPROC __glewGetQueryivANGLE;
20230 GLEW_FUN_EXPORT PFNGLISQUERYANGLEPROC __glewIsQueryANGLE;
20231 GLEW_FUN_EXPORT PFNGLQUERYCOUNTERANGLEPROC __glewQueryCounterANGLE;
20232 
20233 GLEW_FUN_EXPORT PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC __glewGetTranslatedShaderSourceANGLE;
20234 
20235 GLEW_FUN_EXPORT PFNGLCOPYTEXTURELEVELSAPPLEPROC __glewCopyTextureLevelsAPPLE;
20236 
20237 GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE;
20238 GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE;
20239 GLEW_FUN_EXPORT PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE;
20240 GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC __glewMultiDrawElementArrayAPPLE;
20241 GLEW_FUN_EXPORT PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC __glewMultiDrawRangeElementArrayAPPLE;
20242 
20243 GLEW_FUN_EXPORT PFNGLDELETEFENCESAPPLEPROC __glewDeleteFencesAPPLE;
20244 GLEW_FUN_EXPORT PFNGLFINISHFENCEAPPLEPROC __glewFinishFenceAPPLE;
20245 GLEW_FUN_EXPORT PFNGLFINISHOBJECTAPPLEPROC __glewFinishObjectAPPLE;
20246 GLEW_FUN_EXPORT PFNGLGENFENCESAPPLEPROC __glewGenFencesAPPLE;
20247 GLEW_FUN_EXPORT PFNGLISFENCEAPPLEPROC __glewIsFenceAPPLE;
20248 GLEW_FUN_EXPORT PFNGLSETFENCEAPPLEPROC __glewSetFenceAPPLE;
20249 GLEW_FUN_EXPORT PFNGLTESTFENCEAPPLEPROC __glewTestFenceAPPLE;
20250 GLEW_FUN_EXPORT PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE;
20251 
20252 GLEW_FUN_EXPORT PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE;
20253 GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE;
20254 
20255 GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC __glewRenderbufferStorageMultisampleAPPLE;
20256 GLEW_FUN_EXPORT PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC __glewResolveMultisampleFramebufferAPPLE;
20257 
20258 GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE;
20259 GLEW_FUN_EXPORT PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE;
20260 GLEW_FUN_EXPORT PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE;
20261 
20262 GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCAPPLEPROC __glewClientWaitSyncAPPLE;
20263 GLEW_FUN_EXPORT PFNGLDELETESYNCAPPLEPROC __glewDeleteSyncAPPLE;
20264 GLEW_FUN_EXPORT PFNGLFENCESYNCAPPLEPROC __glewFenceSyncAPPLE;
20265 GLEW_FUN_EXPORT PFNGLGETINTEGER64VAPPLEPROC __glewGetInteger64vAPPLE;
20266 GLEW_FUN_EXPORT PFNGLGETSYNCIVAPPLEPROC __glewGetSyncivAPPLE;
20267 GLEW_FUN_EXPORT PFNGLISSYNCAPPLEPROC __glewIsSyncAPPLE;
20268 GLEW_FUN_EXPORT PFNGLWAITSYNCAPPLEPROC __glewWaitSyncAPPLE;
20269 
20270 GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE;
20271 GLEW_FUN_EXPORT PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE;
20272 
20273 GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYAPPLEPROC __glewBindVertexArrayAPPLE;
20274 GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSAPPLEPROC __glewDeleteVertexArraysAPPLE;
20275 GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSAPPLEPROC __glewGenVertexArraysAPPLE;
20276 GLEW_FUN_EXPORT PFNGLISVERTEXARRAYAPPLEPROC __glewIsVertexArrayAPPLE;
20277 
20278 GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC __glewFlushVertexArrayRangeAPPLE;
20279 GLEW_FUN_EXPORT PFNGLVERTEXARRAYPARAMETERIAPPLEPROC __glewVertexArrayParameteriAPPLE;
20280 GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGEAPPLEPROC __glewVertexArrayRangeAPPLE;
20281 
20282 GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBAPPLEPROC __glewDisableVertexAttribAPPLE;
20283 GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBAPPLEPROC __glewEnableVertexAttribAPPLE;
20284 GLEW_FUN_EXPORT PFNGLISVERTEXATTRIBENABLEDAPPLEPROC __glewIsVertexAttribEnabledAPPLE;
20285 GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1DAPPLEPROC __glewMapVertexAttrib1dAPPLE;
20286 GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1FAPPLEPROC __glewMapVertexAttrib1fAPPLE;
20287 GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2DAPPLEPROC __glewMapVertexAttrib2dAPPLE;
20288 GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2FAPPLEPROC __glewMapVertexAttrib2fAPPLE;
20289 
20290 GLEW_FUN_EXPORT PFNGLCLEARDEPTHFPROC __glewClearDepthf;
20291 GLEW_FUN_EXPORT PFNGLDEPTHRANGEFPROC __glewDepthRangef;
20292 GLEW_FUN_EXPORT PFNGLGETSHADERPRECISIONFORMATPROC __glewGetShaderPrecisionFormat;
20293 GLEW_FUN_EXPORT PFNGLRELEASESHADERCOMPILERPROC __glewReleaseShaderCompiler;
20294 GLEW_FUN_EXPORT PFNGLSHADERBINARYPROC __glewShaderBinary;
20295 
20296 GLEW_FUN_EXPORT PFNGLMEMORYBARRIERBYREGIONPROC __glewMemoryBarrierByRegion;
20297 
20298 GLEW_FUN_EXPORT PFNGLPRIMITIVEBOUNDINGBOXARBPROC __glewPrimitiveBoundingBoxARB;
20299 
20300 GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC __glewDrawArraysInstancedBaseInstance;
20301 GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC __glewDrawElementsInstancedBaseInstance;
20302 GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC __glewDrawElementsInstancedBaseVertexBaseInstance;
20303 
20304 GLEW_FUN_EXPORT PFNGLGETIMAGEHANDLEARBPROC __glewGetImageHandleARB;
20305 GLEW_FUN_EXPORT PFNGLGETTEXTUREHANDLEARBPROC __glewGetTextureHandleARB;
20306 GLEW_FUN_EXPORT PFNGLGETTEXTURESAMPLERHANDLEARBPROC __glewGetTextureSamplerHandleARB;
20307 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLUI64VARBPROC __glewGetVertexAttribLui64vARB;
20308 GLEW_FUN_EXPORT PFNGLISIMAGEHANDLERESIDENTARBPROC __glewIsImageHandleResidentARB;
20309 GLEW_FUN_EXPORT PFNGLISTEXTUREHANDLERESIDENTARBPROC __glewIsTextureHandleResidentARB;
20310 GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC __glewMakeImageHandleNonResidentARB;
20311 GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLERESIDENTARBPROC __glewMakeImageHandleResidentARB;
20312 GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC __glewMakeTextureHandleNonResidentARB;
20313 GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLERESIDENTARBPROC __glewMakeTextureHandleResidentARB;
20314 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC __glewProgramUniformHandleui64ARB;
20315 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC __glewProgramUniformHandleui64vARB;
20316 GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64ARBPROC __glewUniformHandleui64ARB;
20317 GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VARBPROC __glewUniformHandleui64vARB;
20318 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64ARBPROC __glewVertexAttribL1ui64ARB;
20319 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64VARBPROC __glewVertexAttribL1ui64vARB;
20320 
20321 GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed;
20322 GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex;
20323 
20324 GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEPROC __glewBufferStorage;
20325 
20326 GLEW_FUN_EXPORT PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB;
20327 
20328 GLEW_FUN_EXPORT PFNGLCLEARBUFFERDATAPROC __glewClearBufferData;
20329 GLEW_FUN_EXPORT PFNGLCLEARBUFFERSUBDATAPROC __glewClearBufferSubData;
20330 GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERDATAEXTPROC __glewClearNamedBufferDataEXT;
20331 GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC __glewClearNamedBufferSubDataEXT;
20332 
20333 GLEW_FUN_EXPORT PFNGLCLEARTEXIMAGEPROC __glewClearTexImage;
20334 GLEW_FUN_EXPORT PFNGLCLEARTEXSUBIMAGEPROC __glewClearTexSubImage;
20335 
20336 GLEW_FUN_EXPORT PFNGLCLIPCONTROLPROC __glewClipControl;
20337 
20338 GLEW_FUN_EXPORT PFNGLCLAMPCOLORARBPROC __glewClampColorARB;
20339 
20340 GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEPROC __glewDispatchCompute;
20341 GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEINDIRECTPROC __glewDispatchComputeIndirect;
20342 
20343 GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC __glewDispatchComputeGroupSizeARB;
20344 
20345 GLEW_FUN_EXPORT PFNGLCOPYBUFFERSUBDATAPROC __glewCopyBufferSubData;
20346 
20347 GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATAPROC __glewCopyImageSubData;
20348 
20349 GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKARBPROC __glewDebugMessageCallbackARB;
20350 GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLARBPROC __glewDebugMessageControlARB;
20351 GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTARBPROC __glewDebugMessageInsertARB;
20352 GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGARBPROC __glewGetDebugMessageLogARB;
20353 
20354 GLEW_FUN_EXPORT PFNGLBINDTEXTUREUNITPROC __glewBindTextureUnit;
20355 GLEW_FUN_EXPORT PFNGLBLITNAMEDFRAMEBUFFERPROC __glewBlitNamedFramebuffer;
20356 GLEW_FUN_EXPORT PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC __glewCheckNamedFramebufferStatus;
20357 GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERDATAPROC __glewClearNamedBufferData;
20358 GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERSUBDATAPROC __glewClearNamedBufferSubData;
20359 GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERFIPROC __glewClearNamedFramebufferfi;
20360 GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERFVPROC __glewClearNamedFramebufferfv;
20361 GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERIVPROC __glewClearNamedFramebufferiv;
20362 GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC __glewClearNamedFramebufferuiv;
20363 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC __glewCompressedTextureSubImage1D;
20364 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC __glewCompressedTextureSubImage2D;
20365 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC __glewCompressedTextureSubImage3D;
20366 GLEW_FUN_EXPORT PFNGLCOPYNAMEDBUFFERSUBDATAPROC __glewCopyNamedBufferSubData;
20367 GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE1DPROC __glewCopyTextureSubImage1D;
20368 GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE2DPROC __glewCopyTextureSubImage2D;
20369 GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE3DPROC __glewCopyTextureSubImage3D;
20370 GLEW_FUN_EXPORT PFNGLCREATEBUFFERSPROC __glewCreateBuffers;
20371 GLEW_FUN_EXPORT PFNGLCREATEFRAMEBUFFERSPROC __glewCreateFramebuffers;
20372 GLEW_FUN_EXPORT PFNGLCREATEPROGRAMPIPELINESPROC __glewCreateProgramPipelines;
20373 GLEW_FUN_EXPORT PFNGLCREATEQUERIESPROC __glewCreateQueries;
20374 GLEW_FUN_EXPORT PFNGLCREATERENDERBUFFERSPROC __glewCreateRenderbuffers;
20375 GLEW_FUN_EXPORT PFNGLCREATESAMPLERSPROC __glewCreateSamplers;
20376 GLEW_FUN_EXPORT PFNGLCREATETEXTURESPROC __glewCreateTextures;
20377 GLEW_FUN_EXPORT PFNGLCREATETRANSFORMFEEDBACKSPROC __glewCreateTransformFeedbacks;
20378 GLEW_FUN_EXPORT PFNGLCREATEVERTEXARRAYSPROC __glewCreateVertexArrays;
20379 GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYATTRIBPROC __glewDisableVertexArrayAttrib;
20380 GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYATTRIBPROC __glewEnableVertexArrayAttrib;
20381 GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC __glewFlushMappedNamedBufferRange;
20382 GLEW_FUN_EXPORT PFNGLGENERATETEXTUREMIPMAPPROC __glewGenerateTextureMipmap;
20383 GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC __glewGetCompressedTextureImage;
20384 GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERI64VPROC __glewGetNamedBufferParameteri64v;
20385 GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERIVPROC __glewGetNamedBufferParameteriv;
20386 GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPOINTERVPROC __glewGetNamedBufferPointerv;
20387 GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERSUBDATAPROC __glewGetNamedBufferSubData;
20388 GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetNamedFramebufferAttachmentParameteriv;
20389 GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC __glewGetNamedFramebufferParameteriv;
20390 GLEW_FUN_EXPORT PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC __glewGetNamedRenderbufferParameteriv;
20391 GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTI64VPROC __glewGetQueryBufferObjecti64v;
20392 GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTIVPROC __glewGetQueryBufferObjectiv;
20393 GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTUI64VPROC __glewGetQueryBufferObjectui64v;
20394 GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTUIVPROC __glewGetQueryBufferObjectuiv;
20395 GLEW_FUN_EXPORT PFNGLGETTEXTUREIMAGEPROC __glewGetTextureImage;
20396 GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERFVPROC __glewGetTextureLevelParameterfv;
20397 GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERIVPROC __glewGetTextureLevelParameteriv;
20398 GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIIVPROC __glewGetTextureParameterIiv;
20399 GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIUIVPROC __glewGetTextureParameterIuiv;
20400 GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERFVPROC __glewGetTextureParameterfv;
20401 GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIVPROC __glewGetTextureParameteriv;
20402 GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKI64_VPROC __glewGetTransformFeedbacki64_v;
20403 GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKI_VPROC __glewGetTransformFeedbacki_v;
20404 GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKIVPROC __glewGetTransformFeedbackiv;
20405 GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINDEXED64IVPROC __glewGetVertexArrayIndexed64iv;
20406 GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINDEXEDIVPROC __glewGetVertexArrayIndexediv;
20407 GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYIVPROC __glewGetVertexArrayiv;
20408 GLEW_FUN_EXPORT PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC __glewInvalidateNamedFramebufferData;
20409 GLEW_FUN_EXPORT PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC __glewInvalidateNamedFramebufferSubData;
20410 GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERPROC __glewMapNamedBuffer;
20411 GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERRANGEPROC __glewMapNamedBufferRange;
20412 GLEW_FUN_EXPORT PFNGLNAMEDBUFFERDATAPROC __glewNamedBufferData;
20413 GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEPROC __glewNamedBufferStorage;
20414 GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSUBDATAPROC __glewNamedBufferSubData;
20415 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC __glewNamedFramebufferDrawBuffer;
20416 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC __glewNamedFramebufferDrawBuffers;
20417 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC __glewNamedFramebufferParameteri;
20418 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC __glewNamedFramebufferReadBuffer;
20419 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC __glewNamedFramebufferRenderbuffer;
20420 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREPROC __glewNamedFramebufferTexture;
20421 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC __glewNamedFramebufferTextureLayer;
20422 GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEPROC __glewNamedRenderbufferStorage;
20423 GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewNamedRenderbufferStorageMultisample;
20424 GLEW_FUN_EXPORT PFNGLTEXTUREBUFFERPROC __glewTextureBuffer;
20425 GLEW_FUN_EXPORT PFNGLTEXTUREBUFFERRANGEPROC __glewTextureBufferRange;
20426 GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIIVPROC __glewTextureParameterIiv;
20427 GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIUIVPROC __glewTextureParameterIuiv;
20428 GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFPROC __glewTextureParameterf;
20429 GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFVPROC __glewTextureParameterfv;
20430 GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIPROC __glewTextureParameteri;
20431 GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIVPROC __glewTextureParameteriv;
20432 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DPROC __glewTextureStorage1D;
20433 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DPROC __glewTextureStorage2D;
20434 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC __glewTextureStorage2DMultisample;
20435 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DPROC __glewTextureStorage3D;
20436 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC __glewTextureStorage3DMultisample;
20437 GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE1DPROC __glewTextureSubImage1D;
20438 GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE2DPROC __glewTextureSubImage2D;
20439 GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE3DPROC __glewTextureSubImage3D;
20440 GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC __glewTransformFeedbackBufferBase;
20441 GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC __glewTransformFeedbackBufferRange;
20442 GLEW_FUN_EXPORT PFNGLUNMAPNAMEDBUFFERPROC __glewUnmapNamedBuffer;
20443 GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBBINDINGPROC __glewVertexArrayAttribBinding;
20444 GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBFORMATPROC __glewVertexArrayAttribFormat;
20445 GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBIFORMATPROC __glewVertexArrayAttribIFormat;
20446 GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBLFORMATPROC __glewVertexArrayAttribLFormat;
20447 GLEW_FUN_EXPORT PFNGLVERTEXARRAYBINDINGDIVISORPROC __glewVertexArrayBindingDivisor;
20448 GLEW_FUN_EXPORT PFNGLVERTEXARRAYELEMENTBUFFERPROC __glewVertexArrayElementBuffer;
20449 GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXBUFFERPROC __glewVertexArrayVertexBuffer;
20450 GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXBUFFERSPROC __glewVertexArrayVertexBuffers;
20451 
20452 GLEW_FUN_EXPORT PFNGLDRAWBUFFERSARBPROC __glewDrawBuffersARB;
20453 
20454 GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIARBPROC __glewBlendEquationSeparateiARB;
20455 GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIARBPROC __glewBlendEquationiARB;
20456 GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIARBPROC __glewBlendFuncSeparateiARB;
20457 GLEW_FUN_EXPORT PFNGLBLENDFUNCIARBPROC __glewBlendFunciARB;
20458 
20459 GLEW_FUN_EXPORT PFNGLDRAWELEMENTSBASEVERTEXPROC __glewDrawElementsBaseVertex;
20460 GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC __glewDrawElementsInstancedBaseVertex;
20461 GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC __glewDrawRangeElementsBaseVertex;
20462 GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC __glewMultiDrawElementsBaseVertex;
20463 
20464 GLEW_FUN_EXPORT PFNGLDRAWARRAYSINDIRECTPROC __glewDrawArraysIndirect;
20465 GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINDIRECTPROC __glewDrawElementsIndirect;
20466 
20467 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPARAMETERIPROC __glewFramebufferParameteri;
20468 GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVPROC __glewGetFramebufferParameteriv;
20469 GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC __glewGetNamedFramebufferParameterivEXT;
20470 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC __glewNamedFramebufferParameteriEXT;
20471 
20472 GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFERPROC __glewBindFramebuffer;
20473 GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFERPROC __glewBindRenderbuffer;
20474 GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERPROC __glewBlitFramebuffer;
20475 GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSPROC __glewCheckFramebufferStatus;
20476 GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSPROC __glewDeleteFramebuffers;
20477 GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSPROC __glewDeleteRenderbuffers;
20478 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFERPROC __glewFramebufferRenderbuffer;
20479 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DPROC __glewFramebufferTexture1D;
20480 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DPROC __glewFramebufferTexture2D;
20481 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DPROC __glewFramebufferTexture3D;
20482 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERPROC __glewFramebufferTextureLayer;
20483 GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSPROC __glewGenFramebuffers;
20484 GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSPROC __glewGenRenderbuffers;
20485 GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPPROC __glewGenerateMipmap;
20486 GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetFramebufferAttachmentParameteriv;
20487 GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVPROC __glewGetRenderbufferParameteriv;
20488 GLEW_FUN_EXPORT PFNGLISFRAMEBUFFERPROC __glewIsFramebuffer;
20489 GLEW_FUN_EXPORT PFNGLISRENDERBUFFERPROC __glewIsRenderbuffer;
20490 GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEPROC __glewRenderbufferStorage;
20491 GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewRenderbufferStorageMultisample;
20492 
20493 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREARBPROC __glewFramebufferTextureARB;
20494 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEARBPROC __glewFramebufferTextureFaceARB;
20495 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERARBPROC __glewFramebufferTextureLayerARB;
20496 GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIARBPROC __glewProgramParameteriARB;
20497 
20498 GLEW_FUN_EXPORT PFNGLGETPROGRAMBINARYPROC __glewGetProgramBinary;
20499 GLEW_FUN_EXPORT PFNGLPROGRAMBINARYPROC __glewProgramBinary;
20500 GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri;
20501 
20502 GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC __glewGetCompressedTextureSubImage;
20503 GLEW_FUN_EXPORT PFNGLGETTEXTURESUBIMAGEPROC __glewGetTextureSubImage;
20504 
20505 GLEW_FUN_EXPORT PFNGLSPECIALIZESHADERARBPROC __glewSpecializeShaderARB;
20506 
20507 GLEW_FUN_EXPORT PFNGLGETUNIFORMDVPROC __glewGetUniformdv;
20508 GLEW_FUN_EXPORT PFNGLUNIFORM1DPROC __glewUniform1d;
20509 GLEW_FUN_EXPORT PFNGLUNIFORM1DVPROC __glewUniform1dv;
20510 GLEW_FUN_EXPORT PFNGLUNIFORM2DPROC __glewUniform2d;
20511 GLEW_FUN_EXPORT PFNGLUNIFORM2DVPROC __glewUniform2dv;
20512 GLEW_FUN_EXPORT PFNGLUNIFORM3DPROC __glewUniform3d;
20513 GLEW_FUN_EXPORT PFNGLUNIFORM3DVPROC __glewUniform3dv;
20514 GLEW_FUN_EXPORT PFNGLUNIFORM4DPROC __glewUniform4d;
20515 GLEW_FUN_EXPORT PFNGLUNIFORM4DVPROC __glewUniform4dv;
20516 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2DVPROC __glewUniformMatrix2dv;
20517 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3DVPROC __glewUniformMatrix2x3dv;
20518 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4DVPROC __glewUniformMatrix2x4dv;
20519 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3DVPROC __glewUniformMatrix3dv;
20520 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2DVPROC __glewUniformMatrix3x2dv;
20521 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4DVPROC __glewUniformMatrix3x4dv;
20522 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4DVPROC __glewUniformMatrix4dv;
20523 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2DVPROC __glewUniformMatrix4x2dv;
20524 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3DVPROC __glewUniformMatrix4x3dv;
20525 
20526 GLEW_FUN_EXPORT PFNGLGETUNIFORMI64VARBPROC __glewGetUniformi64vARB;
20527 GLEW_FUN_EXPORT PFNGLGETUNIFORMUI64VARBPROC __glewGetUniformui64vARB;
20528 GLEW_FUN_EXPORT PFNGLGETNUNIFORMI64VARBPROC __glewGetnUniformi64vARB;
20529 GLEW_FUN_EXPORT PFNGLGETNUNIFORMUI64VARBPROC __glewGetnUniformui64vARB;
20530 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64ARBPROC __glewProgramUniform1i64ARB;
20531 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64VARBPROC __glewProgramUniform1i64vARB;
20532 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64ARBPROC __glewProgramUniform1ui64ARB;
20533 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64VARBPROC __glewProgramUniform1ui64vARB;
20534 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64ARBPROC __glewProgramUniform2i64ARB;
20535 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64VARBPROC __glewProgramUniform2i64vARB;
20536 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64ARBPROC __glewProgramUniform2ui64ARB;
20537 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64VARBPROC __glewProgramUniform2ui64vARB;
20538 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64ARBPROC __glewProgramUniform3i64ARB;
20539 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64VARBPROC __glewProgramUniform3i64vARB;
20540 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64ARBPROC __glewProgramUniform3ui64ARB;
20541 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64VARBPROC __glewProgramUniform3ui64vARB;
20542 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64ARBPROC __glewProgramUniform4i64ARB;
20543 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64VARBPROC __glewProgramUniform4i64vARB;
20544 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64ARBPROC __glewProgramUniform4ui64ARB;
20545 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64VARBPROC __glewProgramUniform4ui64vARB;
20546 GLEW_FUN_EXPORT PFNGLUNIFORM1I64ARBPROC __glewUniform1i64ARB;
20547 GLEW_FUN_EXPORT PFNGLUNIFORM1I64VARBPROC __glewUniform1i64vARB;
20548 GLEW_FUN_EXPORT PFNGLUNIFORM1UI64ARBPROC __glewUniform1ui64ARB;
20549 GLEW_FUN_EXPORT PFNGLUNIFORM1UI64VARBPROC __glewUniform1ui64vARB;
20550 GLEW_FUN_EXPORT PFNGLUNIFORM2I64ARBPROC __glewUniform2i64ARB;
20551 GLEW_FUN_EXPORT PFNGLUNIFORM2I64VARBPROC __glewUniform2i64vARB;
20552 GLEW_FUN_EXPORT PFNGLUNIFORM2UI64ARBPROC __glewUniform2ui64ARB;
20553 GLEW_FUN_EXPORT PFNGLUNIFORM2UI64VARBPROC __glewUniform2ui64vARB;
20554 GLEW_FUN_EXPORT PFNGLUNIFORM3I64ARBPROC __glewUniform3i64ARB;
20555 GLEW_FUN_EXPORT PFNGLUNIFORM3I64VARBPROC __glewUniform3i64vARB;
20556 GLEW_FUN_EXPORT PFNGLUNIFORM3UI64ARBPROC __glewUniform3ui64ARB;
20557 GLEW_FUN_EXPORT PFNGLUNIFORM3UI64VARBPROC __glewUniform3ui64vARB;
20558 GLEW_FUN_EXPORT PFNGLUNIFORM4I64ARBPROC __glewUniform4i64ARB;
20559 GLEW_FUN_EXPORT PFNGLUNIFORM4I64VARBPROC __glewUniform4i64vARB;
20560 GLEW_FUN_EXPORT PFNGLUNIFORM4UI64ARBPROC __glewUniform4ui64ARB;
20561 GLEW_FUN_EXPORT PFNGLUNIFORM4UI64VARBPROC __glewUniform4ui64vARB;
20562 
20563 GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEPROC __glewColorSubTable;
20564 GLEW_FUN_EXPORT PFNGLCOLORTABLEPROC __glewColorTable;
20565 GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVPROC __glewColorTableParameterfv;
20566 GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVPROC __glewColorTableParameteriv;
20567 GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DPROC __glewConvolutionFilter1D;
20568 GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DPROC __glewConvolutionFilter2D;
20569 GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFPROC __glewConvolutionParameterf;
20570 GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVPROC __glewConvolutionParameterfv;
20571 GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIPROC __glewConvolutionParameteri;
20572 GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVPROC __glewConvolutionParameteriv;
20573 GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEPROC __glewCopyColorSubTable;
20574 GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLEPROC __glewCopyColorTable;
20575 GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DPROC __glewCopyConvolutionFilter1D;
20576 GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DPROC __glewCopyConvolutionFilter2D;
20577 GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPROC __glewGetColorTable;
20578 GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVPROC __glewGetColorTableParameterfv;
20579 GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVPROC __glewGetColorTableParameteriv;
20580 GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTERPROC __glewGetConvolutionFilter;
20581 GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVPROC __glewGetConvolutionParameterfv;
20582 GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVPROC __glewGetConvolutionParameteriv;
20583 GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPROC __glewGetHistogram;
20584 GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVPROC __glewGetHistogramParameterfv;
20585 GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVPROC __glewGetHistogramParameteriv;
20586 GLEW_FUN_EXPORT PFNGLGETMINMAXPROC __glewGetMinmax;
20587 GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVPROC __glewGetMinmaxParameterfv;
20588 GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVPROC __glewGetMinmaxParameteriv;
20589 GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTERPROC __glewGetSeparableFilter;
20590 GLEW_FUN_EXPORT PFNGLHISTOGRAMPROC __glewHistogram;
20591 GLEW_FUN_EXPORT PFNGLMINMAXPROC __glewMinmax;
20592 GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMPROC __glewResetHistogram;
20593 GLEW_FUN_EXPORT PFNGLRESETMINMAXPROC __glewResetMinmax;
20594 GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DPROC __glewSeparableFilter2D;
20595 
20596 GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC __glewMultiDrawArraysIndirectCountARB;
20597 GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC __glewMultiDrawElementsIndirectCountARB;
20598 
20599 GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDARBPROC __glewDrawArraysInstancedARB;
20600 GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDARBPROC __glewDrawElementsInstancedARB;
20601 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORARBPROC __glewVertexAttribDivisorARB;
20602 
20603 GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATIVPROC __glewGetInternalformativ;
20604 
20605 GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATI64VPROC __glewGetInternalformati64v;
20606 
20607 GLEW_FUN_EXPORT PFNGLINVALIDATEBUFFERDATAPROC __glewInvalidateBufferData;
20608 GLEW_FUN_EXPORT PFNGLINVALIDATEBUFFERSUBDATAPROC __glewInvalidateBufferSubData;
20609 GLEW_FUN_EXPORT PFNGLINVALIDATEFRAMEBUFFERPROC __glewInvalidateFramebuffer;
20610 GLEW_FUN_EXPORT PFNGLINVALIDATESUBFRAMEBUFFERPROC __glewInvalidateSubFramebuffer;
20611 GLEW_FUN_EXPORT PFNGLINVALIDATETEXIMAGEPROC __glewInvalidateTexImage;
20612 GLEW_FUN_EXPORT PFNGLINVALIDATETEXSUBIMAGEPROC __glewInvalidateTexSubImage;
20613 
20614 GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEPROC __glewFlushMappedBufferRange;
20615 GLEW_FUN_EXPORT PFNGLMAPBUFFERRANGEPROC __glewMapBufferRange;
20616 
20617 GLEW_FUN_EXPORT PFNGLCURRENTPALETTEMATRIXARBPROC __glewCurrentPaletteMatrixARB;
20618 GLEW_FUN_EXPORT PFNGLMATRIXINDEXPOINTERARBPROC __glewMatrixIndexPointerARB;
20619 GLEW_FUN_EXPORT PFNGLMATRIXINDEXUBVARBPROC __glewMatrixIndexubvARB;
20620 GLEW_FUN_EXPORT PFNGLMATRIXINDEXUIVARBPROC __glewMatrixIndexuivARB;
20621 GLEW_FUN_EXPORT PFNGLMATRIXINDEXUSVARBPROC __glewMatrixIndexusvARB;
20622 
20623 GLEW_FUN_EXPORT PFNGLBINDBUFFERSBASEPROC __glewBindBuffersBase;
20624 GLEW_FUN_EXPORT PFNGLBINDBUFFERSRANGEPROC __glewBindBuffersRange;
20625 GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTURESPROC __glewBindImageTextures;
20626 GLEW_FUN_EXPORT PFNGLBINDSAMPLERSPROC __glewBindSamplers;
20627 GLEW_FUN_EXPORT PFNGLBINDTEXTURESPROC __glewBindTextures;
20628 GLEW_FUN_EXPORT PFNGLBINDVERTEXBUFFERSPROC __glewBindVertexBuffers;
20629 
20630 GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTPROC __glewMultiDrawArraysIndirect;
20631 GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTPROC __glewMultiDrawElementsIndirect;
20632 
20633 GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEARBPROC __glewSampleCoverageARB;
20634 
20635 GLEW_FUN_EXPORT PFNGLACTIVETEXTUREARBPROC __glewActiveTextureARB;
20636 GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREARBPROC __glewClientActiveTextureARB;
20637 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DARBPROC __glewMultiTexCoord1dARB;
20638 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVARBPROC __glewMultiTexCoord1dvARB;
20639 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FARBPROC __glewMultiTexCoord1fARB;
20640 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVARBPROC __glewMultiTexCoord1fvARB;
20641 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IARBPROC __glewMultiTexCoord1iARB;
20642 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVARBPROC __glewMultiTexCoord1ivARB;
20643 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SARBPROC __glewMultiTexCoord1sARB;
20644 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVARBPROC __glewMultiTexCoord1svARB;
20645 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DARBPROC __glewMultiTexCoord2dARB;
20646 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVARBPROC __glewMultiTexCoord2dvARB;
20647 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FARBPROC __glewMultiTexCoord2fARB;
20648 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVARBPROC __glewMultiTexCoord2fvARB;
20649 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IARBPROC __glewMultiTexCoord2iARB;
20650 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVARBPROC __glewMultiTexCoord2ivARB;
20651 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SARBPROC __glewMultiTexCoord2sARB;
20652 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVARBPROC __glewMultiTexCoord2svARB;
20653 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DARBPROC __glewMultiTexCoord3dARB;
20654 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVARBPROC __glewMultiTexCoord3dvARB;
20655 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FARBPROC __glewMultiTexCoord3fARB;
20656 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVARBPROC __glewMultiTexCoord3fvARB;
20657 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IARBPROC __glewMultiTexCoord3iARB;
20658 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVARBPROC __glewMultiTexCoord3ivARB;
20659 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SARBPROC __glewMultiTexCoord3sARB;
20660 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVARBPROC __glewMultiTexCoord3svARB;
20661 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DARBPROC __glewMultiTexCoord4dARB;
20662 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVARBPROC __glewMultiTexCoord4dvARB;
20663 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FARBPROC __glewMultiTexCoord4fARB;
20664 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVARBPROC __glewMultiTexCoord4fvARB;
20665 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IARBPROC __glewMultiTexCoord4iARB;
20666 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVARBPROC __glewMultiTexCoord4ivARB;
20667 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SARBPROC __glewMultiTexCoord4sARB;
20668 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVARBPROC __glewMultiTexCoord4svARB;
20669 
20670 GLEW_FUN_EXPORT PFNGLBEGINQUERYARBPROC __glewBeginQueryARB;
20671 GLEW_FUN_EXPORT PFNGLDELETEQUERIESARBPROC __glewDeleteQueriesARB;
20672 GLEW_FUN_EXPORT PFNGLENDQUERYARBPROC __glewEndQueryARB;
20673 GLEW_FUN_EXPORT PFNGLGENQUERIESARBPROC __glewGenQueriesARB;
20674 GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVARBPROC __glewGetQueryObjectivARB;
20675 GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVARBPROC __glewGetQueryObjectuivARB;
20676 GLEW_FUN_EXPORT PFNGLGETQUERYIVARBPROC __glewGetQueryivARB;
20677 GLEW_FUN_EXPORT PFNGLISQUERYARBPROC __glewIsQueryARB;
20678 
20679 GLEW_FUN_EXPORT PFNGLMAXSHADERCOMPILERTHREADSARBPROC __glewMaxShaderCompilerThreadsARB;
20680 
20681 GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB;
20682 GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB;
20683 
20684 GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETCLAMPPROC __glewPolygonOffsetClamp;
20685 
20686 GLEW_FUN_EXPORT PFNGLGETPROGRAMINTERFACEIVPROC __glewGetProgramInterfaceiv;
20687 GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEINDEXPROC __glewGetProgramResourceIndex;
20688 GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONPROC __glewGetProgramResourceLocation;
20689 GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC __glewGetProgramResourceLocationIndex;
20690 GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCENAMEPROC __glewGetProgramResourceName;
20691 GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEIVPROC __glewGetProgramResourceiv;
20692 
20693 GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXPROC __glewProvokingVertex;
20694 
20695 GLEW_FUN_EXPORT PFNGLGETGRAPHICSRESETSTATUSARBPROC __glewGetGraphicsResetStatusARB;
20696 GLEW_FUN_EXPORT PFNGLGETNCOLORTABLEARBPROC __glewGetnColorTableARB;
20697 GLEW_FUN_EXPORT PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC __glewGetnCompressedTexImageARB;
20698 GLEW_FUN_EXPORT PFNGLGETNCONVOLUTIONFILTERARBPROC __glewGetnConvolutionFilterARB;
20699 GLEW_FUN_EXPORT PFNGLGETNHISTOGRAMARBPROC __glewGetnHistogramARB;
20700 GLEW_FUN_EXPORT PFNGLGETNMAPDVARBPROC __glewGetnMapdvARB;
20701 GLEW_FUN_EXPORT PFNGLGETNMAPFVARBPROC __glewGetnMapfvARB;
20702 GLEW_FUN_EXPORT PFNGLGETNMAPIVARBPROC __glewGetnMapivARB;
20703 GLEW_FUN_EXPORT PFNGLGETNMINMAXARBPROC __glewGetnMinmaxARB;
20704 GLEW_FUN_EXPORT PFNGLGETNPIXELMAPFVARBPROC __glewGetnPixelMapfvARB;
20705 GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUIVARBPROC __glewGetnPixelMapuivARB;
20706 GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUSVARBPROC __glewGetnPixelMapusvARB;
20707 GLEW_FUN_EXPORT PFNGLGETNPOLYGONSTIPPLEARBPROC __glewGetnPolygonStippleARB;
20708 GLEW_FUN_EXPORT PFNGLGETNSEPARABLEFILTERARBPROC __glewGetnSeparableFilterARB;
20709 GLEW_FUN_EXPORT PFNGLGETNTEXIMAGEARBPROC __glewGetnTexImageARB;
20710 GLEW_FUN_EXPORT PFNGLGETNUNIFORMDVARBPROC __glewGetnUniformdvARB;
20711 GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVARBPROC __glewGetnUniformfvARB;
20712 GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVARBPROC __glewGetnUniformivARB;
20713 GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVARBPROC __glewGetnUniformuivARB;
20714 GLEW_FUN_EXPORT PFNGLREADNPIXELSARBPROC __glewReadnPixelsARB;
20715 
20716 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC __glewFramebufferSampleLocationsfvARB;
20717 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC __glewNamedFramebufferSampleLocationsfvARB;
20718 
20719 GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGARBPROC __glewMinSampleShadingARB;
20720 
20721 GLEW_FUN_EXPORT PFNGLBINDSAMPLERPROC __glewBindSampler;
20722 GLEW_FUN_EXPORT PFNGLDELETESAMPLERSPROC __glewDeleteSamplers;
20723 GLEW_FUN_EXPORT PFNGLGENSAMPLERSPROC __glewGenSamplers;
20724 GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVPROC __glewGetSamplerParameterIiv;
20725 GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVPROC __glewGetSamplerParameterIuiv;
20726 GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERFVPROC __glewGetSamplerParameterfv;
20727 GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIVPROC __glewGetSamplerParameteriv;
20728 GLEW_FUN_EXPORT PFNGLISSAMPLERPROC __glewIsSampler;
20729 GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVPROC __glewSamplerParameterIiv;
20730 GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVPROC __glewSamplerParameterIuiv;
20731 GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFPROC __glewSamplerParameterf;
20732 GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFVPROC __glewSamplerParameterfv;
20733 GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIPROC __glewSamplerParameteri;
20734 GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIVPROC __glewSamplerParameteriv;
20735 
20736 GLEW_FUN_EXPORT PFNGLACTIVESHADERPROGRAMPROC __glewActiveShaderProgram;
20737 GLEW_FUN_EXPORT PFNGLBINDPROGRAMPIPELINEPROC __glewBindProgramPipeline;
20738 GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMVPROC __glewCreateShaderProgramv;
20739 GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPIPELINESPROC __glewDeleteProgramPipelines;
20740 GLEW_FUN_EXPORT PFNGLGENPROGRAMPIPELINESPROC __glewGenProgramPipelines;
20741 GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEINFOLOGPROC __glewGetProgramPipelineInfoLog;
20742 GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEIVPROC __glewGetProgramPipelineiv;
20743 GLEW_FUN_EXPORT PFNGLISPROGRAMPIPELINEPROC __glewIsProgramPipeline;
20744 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DPROC __glewProgramUniform1d;
20745 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVPROC __glewProgramUniform1dv;
20746 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FPROC __glewProgramUniform1f;
20747 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVPROC __glewProgramUniform1fv;
20748 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IPROC __glewProgramUniform1i;
20749 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVPROC __glewProgramUniform1iv;
20750 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIPROC __glewProgramUniform1ui;
20751 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVPROC __glewProgramUniform1uiv;
20752 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DPROC __glewProgramUniform2d;
20753 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVPROC __glewProgramUniform2dv;
20754 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FPROC __glewProgramUniform2f;
20755 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVPROC __glewProgramUniform2fv;
20756 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IPROC __glewProgramUniform2i;
20757 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVPROC __glewProgramUniform2iv;
20758 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIPROC __glewProgramUniform2ui;
20759 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVPROC __glewProgramUniform2uiv;
20760 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DPROC __glewProgramUniform3d;
20761 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVPROC __glewProgramUniform3dv;
20762 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FPROC __glewProgramUniform3f;
20763 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVPROC __glewProgramUniform3fv;
20764 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IPROC __glewProgramUniform3i;
20765 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVPROC __glewProgramUniform3iv;
20766 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIPROC __glewProgramUniform3ui;
20767 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVPROC __glewProgramUniform3uiv;
20768 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DPROC __glewProgramUniform4d;
20769 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVPROC __glewProgramUniform4dv;
20770 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FPROC __glewProgramUniform4f;
20771 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVPROC __glewProgramUniform4fv;
20772 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IPROC __glewProgramUniform4i;
20773 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVPROC __glewProgramUniform4iv;
20774 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIPROC __glewProgramUniform4ui;
20775 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVPROC __glewProgramUniform4uiv;
20776 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVPROC __glewProgramUniformMatrix2dv;
20777 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVPROC __glewProgramUniformMatrix2fv;
20778 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC __glewProgramUniformMatrix2x3dv;
20779 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC __glewProgramUniformMatrix2x3fv;
20780 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC __glewProgramUniformMatrix2x4dv;
20781 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC __glewProgramUniformMatrix2x4fv;
20782 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVPROC __glewProgramUniformMatrix3dv;
20783 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVPROC __glewProgramUniformMatrix3fv;
20784 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC __glewProgramUniformMatrix3x2dv;
20785 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC __glewProgramUniformMatrix3x2fv;
20786 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC __glewProgramUniformMatrix3x4dv;
20787 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC __glewProgramUniformMatrix3x4fv;
20788 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVPROC __glewProgramUniformMatrix4dv;
20789 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVPROC __glewProgramUniformMatrix4fv;
20790 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC __glewProgramUniformMatrix4x2dv;
20791 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC __glewProgramUniformMatrix4x2fv;
20792 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC __glewProgramUniformMatrix4x3dv;
20793 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC __glewProgramUniformMatrix4x3fv;
20794 GLEW_FUN_EXPORT PFNGLUSEPROGRAMSTAGESPROC __glewUseProgramStages;
20795 GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPIPELINEPROC __glewValidateProgramPipeline;
20796 
20797 GLEW_FUN_EXPORT PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC __glewGetActiveAtomicCounterBufferiv;
20798 
20799 GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREPROC __glewBindImageTexture;
20800 GLEW_FUN_EXPORT PFNGLMEMORYBARRIERPROC __glewMemoryBarrier;
20801 
20802 GLEW_FUN_EXPORT PFNGLATTACHOBJECTARBPROC __glewAttachObjectARB;
20803 GLEW_FUN_EXPORT PFNGLCOMPILESHADERARBPROC __glewCompileShaderARB;
20804 GLEW_FUN_EXPORT PFNGLCREATEPROGRAMOBJECTARBPROC __glewCreateProgramObjectARB;
20805 GLEW_FUN_EXPORT PFNGLCREATESHADEROBJECTARBPROC __glewCreateShaderObjectARB;
20806 GLEW_FUN_EXPORT PFNGLDELETEOBJECTARBPROC __glewDeleteObjectARB;
20807 GLEW_FUN_EXPORT PFNGLDETACHOBJECTARBPROC __glewDetachObjectARB;
20808 GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMARBPROC __glewGetActiveUniformARB;
20809 GLEW_FUN_EXPORT PFNGLGETATTACHEDOBJECTSARBPROC __glewGetAttachedObjectsARB;
20810 GLEW_FUN_EXPORT PFNGLGETHANDLEARBPROC __glewGetHandleARB;
20811 GLEW_FUN_EXPORT PFNGLGETINFOLOGARBPROC __glewGetInfoLogARB;
20812 GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERFVARBPROC __glewGetObjectParameterfvARB;
20813 GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVARBPROC __glewGetObjectParameterivARB;
20814 GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEARBPROC __glewGetShaderSourceARB;
20815 GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONARBPROC __glewGetUniformLocationARB;
20816 GLEW_FUN_EXPORT PFNGLGETUNIFORMFVARBPROC __glewGetUniformfvARB;
20817 GLEW_FUN_EXPORT PFNGLGETUNIFORMIVARBPROC __glewGetUniformivARB;
20818 GLEW_FUN_EXPORT PFNGLLINKPROGRAMARBPROC __glewLinkProgramARB;
20819 GLEW_FUN_EXPORT PFNGLSHADERSOURCEARBPROC __glewShaderSourceARB;
20820 GLEW_FUN_EXPORT PFNGLUNIFORM1FARBPROC __glewUniform1fARB;
20821 GLEW_FUN_EXPORT PFNGLUNIFORM1FVARBPROC __glewUniform1fvARB;
20822 GLEW_FUN_EXPORT PFNGLUNIFORM1IARBPROC __glewUniform1iARB;
20823 GLEW_FUN_EXPORT PFNGLUNIFORM1IVARBPROC __glewUniform1ivARB;
20824 GLEW_FUN_EXPORT PFNGLUNIFORM2FARBPROC __glewUniform2fARB;
20825 GLEW_FUN_EXPORT PFNGLUNIFORM2FVARBPROC __glewUniform2fvARB;
20826 GLEW_FUN_EXPORT PFNGLUNIFORM2IARBPROC __glewUniform2iARB;
20827 GLEW_FUN_EXPORT PFNGLUNIFORM2IVARBPROC __glewUniform2ivARB;
20828 GLEW_FUN_EXPORT PFNGLUNIFORM3FARBPROC __glewUniform3fARB;
20829 GLEW_FUN_EXPORT PFNGLUNIFORM3FVARBPROC __glewUniform3fvARB;
20830 GLEW_FUN_EXPORT PFNGLUNIFORM3IARBPROC __glewUniform3iARB;
20831 GLEW_FUN_EXPORT PFNGLUNIFORM3IVARBPROC __glewUniform3ivARB;
20832 GLEW_FUN_EXPORT PFNGLUNIFORM4FARBPROC __glewUniform4fARB;
20833 GLEW_FUN_EXPORT PFNGLUNIFORM4FVARBPROC __glewUniform4fvARB;
20834 GLEW_FUN_EXPORT PFNGLUNIFORM4IARBPROC __glewUniform4iARB;
20835 GLEW_FUN_EXPORT PFNGLUNIFORM4IVARBPROC __glewUniform4ivARB;
20836 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVARBPROC __glewUniformMatrix2fvARB;
20837 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVARBPROC __glewUniformMatrix3fvARB;
20838 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVARBPROC __glewUniformMatrix4fvARB;
20839 GLEW_FUN_EXPORT PFNGLUSEPROGRAMOBJECTARBPROC __glewUseProgramObjectARB;
20840 GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMARBPROC __glewValidateProgramARB;
20841 
20842 GLEW_FUN_EXPORT PFNGLSHADERSTORAGEBLOCKBINDINGPROC __glewShaderStorageBlockBinding;
20843 
20844 GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINENAMEPROC __glewGetActiveSubroutineName;
20845 GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC __glewGetActiveSubroutineUniformName;
20846 GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC __glewGetActiveSubroutineUniformiv;
20847 GLEW_FUN_EXPORT PFNGLGETPROGRAMSTAGEIVPROC __glewGetProgramStageiv;
20848 GLEW_FUN_EXPORT PFNGLGETSUBROUTINEINDEXPROC __glewGetSubroutineIndex;
20849 GLEW_FUN_EXPORT PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC __glewGetSubroutineUniformLocation;
20850 GLEW_FUN_EXPORT PFNGLGETUNIFORMSUBROUTINEUIVPROC __glewGetUniformSubroutineuiv;
20851 GLEW_FUN_EXPORT PFNGLUNIFORMSUBROUTINESUIVPROC __glewUniformSubroutinesuiv;
20852 
20853 GLEW_FUN_EXPORT PFNGLCOMPILESHADERINCLUDEARBPROC __glewCompileShaderIncludeARB;
20854 GLEW_FUN_EXPORT PFNGLDELETENAMEDSTRINGARBPROC __glewDeleteNamedStringARB;
20855 GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGARBPROC __glewGetNamedStringARB;
20856 GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGIVARBPROC __glewGetNamedStringivARB;
20857 GLEW_FUN_EXPORT PFNGLISNAMEDSTRINGARBPROC __glewIsNamedStringARB;
20858 GLEW_FUN_EXPORT PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB;
20859 
20860 GLEW_FUN_EXPORT PFNGLBUFFERPAGECOMMITMENTARBPROC __glewBufferPageCommitmentARB;
20861 
20862 GLEW_FUN_EXPORT PFNGLTEXPAGECOMMITMENTARBPROC __glewTexPageCommitmentARB;
20863 
20864 GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync;
20865 GLEW_FUN_EXPORT PFNGLDELETESYNCPROC __glewDeleteSync;
20866 GLEW_FUN_EXPORT PFNGLFENCESYNCPROC __glewFenceSync;
20867 GLEW_FUN_EXPORT PFNGLGETINTEGER64VPROC __glewGetInteger64v;
20868 GLEW_FUN_EXPORT PFNGLGETSYNCIVPROC __glewGetSynciv;
20869 GLEW_FUN_EXPORT PFNGLISSYNCPROC __glewIsSync;
20870 GLEW_FUN_EXPORT PFNGLWAITSYNCPROC __glewWaitSync;
20871 
20872 GLEW_FUN_EXPORT PFNGLPATCHPARAMETERFVPROC __glewPatchParameterfv;
20873 GLEW_FUN_EXPORT PFNGLPATCHPARAMETERIPROC __glewPatchParameteri;
20874 
20875 GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERPROC __glewTextureBarrier;
20876 
20877 GLEW_FUN_EXPORT PFNGLTEXBUFFERARBPROC __glewTexBufferARB;
20878 
20879 GLEW_FUN_EXPORT PFNGLTEXBUFFERRANGEPROC __glewTexBufferRange;
20880 GLEW_FUN_EXPORT PFNGLTEXTUREBUFFERRANGEEXTPROC __glewTextureBufferRangeEXT;
20881 
20882 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DARBPROC __glewCompressedTexImage1DARB;
20883 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DARBPROC __glewCompressedTexImage2DARB;
20884 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DARBPROC __glewCompressedTexImage3DARB;
20885 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC __glewCompressedTexSubImage1DARB;
20886 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC __glewCompressedTexSubImage2DARB;
20887 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC __glewCompressedTexSubImage3DARB;
20888 GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEARBPROC __glewGetCompressedTexImageARB;
20889 
20890 GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVPROC __glewGetMultisamplefv;
20891 GLEW_FUN_EXPORT PFNGLSAMPLEMASKIPROC __glewSampleMaski;
20892 GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLEPROC __glewTexImage2DMultisample;
20893 GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample;
20894 
20895 GLEW_FUN_EXPORT PFNGLTEXSTORAGE1DPROC __glewTexStorage1D;
20896 GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DPROC __glewTexStorage2D;
20897 GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DPROC __glewTexStorage3D;
20898 
20899 GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DMULTISAMPLEPROC __glewTexStorage2DMultisample;
20900 GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DMULTISAMPLEPROC __glewTexStorage3DMultisample;
20901 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC __glewTextureStorage2DMultisampleEXT;
20902 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC __glewTextureStorage3DMultisampleEXT;
20903 
20904 GLEW_FUN_EXPORT PFNGLTEXTUREVIEWPROC __glewTextureView;
20905 
20906 GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VPROC __glewGetQueryObjecti64v;
20907 GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VPROC __glewGetQueryObjectui64v;
20908 GLEW_FUN_EXPORT PFNGLQUERYCOUNTERPROC __glewQueryCounter;
20909 
20910 GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKPROC __glewBindTransformFeedback;
20911 GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSPROC __glewDeleteTransformFeedbacks;
20912 GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKPROC __glewDrawTransformFeedback;
20913 GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSPROC __glewGenTransformFeedbacks;
20914 GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKPROC __glewIsTransformFeedback;
20915 GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKPROC __glewPauseTransformFeedback;
20916 GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKPROC __glewResumeTransformFeedback;
20917 
20918 GLEW_FUN_EXPORT PFNGLBEGINQUERYINDEXEDPROC __glewBeginQueryIndexed;
20919 GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC __glewDrawTransformFeedbackStream;
20920 GLEW_FUN_EXPORT PFNGLENDQUERYINDEXEDPROC __glewEndQueryIndexed;
20921 GLEW_FUN_EXPORT PFNGLGETQUERYINDEXEDIVPROC __glewGetQueryIndexediv;
20922 
20923 GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC __glewDrawTransformFeedbackInstanced;
20924 GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC __glewDrawTransformFeedbackStreamInstanced;
20925 
20926 GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDARBPROC __glewLoadTransposeMatrixdARB;
20927 GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFARBPROC __glewLoadTransposeMatrixfARB;
20928 GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDARBPROC __glewMultTransposeMatrixdARB;
20929 GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFARBPROC __glewMultTransposeMatrixfARB;
20930 
20931 GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEPROC __glewBindBufferBase;
20932 GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEPROC __glewBindBufferRange;
20933 GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC __glewGetActiveUniformBlockName;
20934 GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKIVPROC __glewGetActiveUniformBlockiv;
20935 GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMNAMEPROC __glewGetActiveUniformName;
20936 GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMSIVPROC __glewGetActiveUniformsiv;
20937 GLEW_FUN_EXPORT PFNGLGETINTEGERI_VPROC __glewGetIntegeri_v;
20938 GLEW_FUN_EXPORT PFNGLGETUNIFORMBLOCKINDEXPROC __glewGetUniformBlockIndex;
20939 GLEW_FUN_EXPORT PFNGLGETUNIFORMINDICESPROC __glewGetUniformIndices;
20940 GLEW_FUN_EXPORT PFNGLUNIFORMBLOCKBINDINGPROC __glewUniformBlockBinding;
20941 
20942 GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYPROC __glewBindVertexArray;
20943 GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSPROC __glewDeleteVertexArrays;
20944 GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSPROC __glewGenVertexArrays;
20945 GLEW_FUN_EXPORT PFNGLISVERTEXARRAYPROC __glewIsVertexArray;
20946 
20947 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVPROC __glewGetVertexAttribLdv;
20948 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DPROC __glewVertexAttribL1d;
20949 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVPROC __glewVertexAttribL1dv;
20950 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DPROC __glewVertexAttribL2d;
20951 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVPROC __glewVertexAttribL2dv;
20952 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DPROC __glewVertexAttribL3d;
20953 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVPROC __glewVertexAttribL3dv;
20954 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DPROC __glewVertexAttribL4d;
20955 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVPROC __glewVertexAttribL4dv;
20956 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTERPROC __glewVertexAttribLPointer;
20957 
20958 GLEW_FUN_EXPORT PFNGLBINDVERTEXBUFFERPROC __glewBindVertexBuffer;
20959 GLEW_FUN_EXPORT PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC __glewVertexArrayBindVertexBufferEXT;
20960 GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC __glewVertexArrayVertexAttribBindingEXT;
20961 GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC __glewVertexArrayVertexAttribFormatEXT;
20962 GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC __glewVertexArrayVertexAttribIFormatEXT;
20963 GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC __glewVertexArrayVertexAttribLFormatEXT;
20964 GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC __glewVertexArrayVertexBindingDivisorEXT;
20965 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBBINDINGPROC __glewVertexAttribBinding;
20966 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATPROC __glewVertexAttribFormat;
20967 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATPROC __glewVertexAttribIFormat;
20968 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATPROC __glewVertexAttribLFormat;
20969 GLEW_FUN_EXPORT PFNGLVERTEXBINDINGDIVISORPROC __glewVertexBindingDivisor;
20970 
20971 GLEW_FUN_EXPORT PFNGLVERTEXBLENDARBPROC __glewVertexBlendARB;
20972 GLEW_FUN_EXPORT PFNGLWEIGHTPOINTERARBPROC __glewWeightPointerARB;
20973 GLEW_FUN_EXPORT PFNGLWEIGHTBVARBPROC __glewWeightbvARB;
20974 GLEW_FUN_EXPORT PFNGLWEIGHTDVARBPROC __glewWeightdvARB;
20975 GLEW_FUN_EXPORT PFNGLWEIGHTFVARBPROC __glewWeightfvARB;
20976 GLEW_FUN_EXPORT PFNGLWEIGHTIVARBPROC __glewWeightivARB;
20977 GLEW_FUN_EXPORT PFNGLWEIGHTSVARBPROC __glewWeightsvARB;
20978 GLEW_FUN_EXPORT PFNGLWEIGHTUBVARBPROC __glewWeightubvARB;
20979 GLEW_FUN_EXPORT PFNGLWEIGHTUIVARBPROC __glewWeightuivARB;
20980 GLEW_FUN_EXPORT PFNGLWEIGHTUSVARBPROC __glewWeightusvARB;
20981 
20982 GLEW_FUN_EXPORT PFNGLBINDBUFFERARBPROC __glewBindBufferARB;
20983 GLEW_FUN_EXPORT PFNGLBUFFERDATAARBPROC __glewBufferDataARB;
20984 GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAARBPROC __glewBufferSubDataARB;
20985 GLEW_FUN_EXPORT PFNGLDELETEBUFFERSARBPROC __glewDeleteBuffersARB;
20986 GLEW_FUN_EXPORT PFNGLGENBUFFERSARBPROC __glewGenBuffersARB;
20987 GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVARBPROC __glewGetBufferParameterivARB;
20988 GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVARBPROC __glewGetBufferPointervARB;
20989 GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAARBPROC __glewGetBufferSubDataARB;
20990 GLEW_FUN_EXPORT PFNGLISBUFFERARBPROC __glewIsBufferARB;
20991 GLEW_FUN_EXPORT PFNGLMAPBUFFERARBPROC __glewMapBufferARB;
20992 GLEW_FUN_EXPORT PFNGLUNMAPBUFFERARBPROC __glewUnmapBufferARB;
20993 
20994 GLEW_FUN_EXPORT PFNGLBINDPROGRAMARBPROC __glewBindProgramARB;
20995 GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSARBPROC __glewDeleteProgramsARB;
20996 GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYARBPROC __glewDisableVertexAttribArrayARB;
20997 GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYARBPROC __glewEnableVertexAttribArrayARB;
20998 GLEW_FUN_EXPORT PFNGLGENPROGRAMSARBPROC __glewGenProgramsARB;
20999 GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERDVARBPROC __glewGetProgramEnvParameterdvARB;
21000 GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERFVARBPROC __glewGetProgramEnvParameterfvARB;
21001 GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC __glewGetProgramLocalParameterdvARB;
21002 GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC __glewGetProgramLocalParameterfvARB;
21003 GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGARBPROC __glewGetProgramStringARB;
21004 GLEW_FUN_EXPORT PFNGLGETPROGRAMIVARBPROC __glewGetProgramivARB;
21005 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVARBPROC __glewGetVertexAttribPointervARB;
21006 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVARBPROC __glewGetVertexAttribdvARB;
21007 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVARBPROC __glewGetVertexAttribfvARB;
21008 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVARBPROC __glewGetVertexAttribivARB;
21009 GLEW_FUN_EXPORT PFNGLISPROGRAMARBPROC __glewIsProgramARB;
21010 GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DARBPROC __glewProgramEnvParameter4dARB;
21011 GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DVARBPROC __glewProgramEnvParameter4dvARB;
21012 GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FARBPROC __glewProgramEnvParameter4fARB;
21013 GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FVARBPROC __glewProgramEnvParameter4fvARB;
21014 GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DARBPROC __glewProgramLocalParameter4dARB;
21015 GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DVARBPROC __glewProgramLocalParameter4dvARB;
21016 GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FARBPROC __glewProgramLocalParameter4fARB;
21017 GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FVARBPROC __glewProgramLocalParameter4fvARB;
21018 GLEW_FUN_EXPORT PFNGLPROGRAMSTRINGARBPROC __glewProgramStringARB;
21019 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DARBPROC __glewVertexAttrib1dARB;
21020 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVARBPROC __glewVertexAttrib1dvARB;
21021 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FARBPROC __glewVertexAttrib1fARB;
21022 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVARBPROC __glewVertexAttrib1fvARB;
21023 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SARBPROC __glewVertexAttrib1sARB;
21024 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVARBPROC __glewVertexAttrib1svARB;
21025 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DARBPROC __glewVertexAttrib2dARB;
21026 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVARBPROC __glewVertexAttrib2dvARB;
21027 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FARBPROC __glewVertexAttrib2fARB;
21028 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVARBPROC __glewVertexAttrib2fvARB;
21029 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SARBPROC __glewVertexAttrib2sARB;
21030 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVARBPROC __glewVertexAttrib2svARB;
21031 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DARBPROC __glewVertexAttrib3dARB;
21032 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVARBPROC __glewVertexAttrib3dvARB;
21033 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FARBPROC __glewVertexAttrib3fARB;
21034 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVARBPROC __glewVertexAttrib3fvARB;
21035 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SARBPROC __glewVertexAttrib3sARB;
21036 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVARBPROC __glewVertexAttrib3svARB;
21037 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVARBPROC __glewVertexAttrib4NbvARB;
21038 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVARBPROC __glewVertexAttrib4NivARB;
21039 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVARBPROC __glewVertexAttrib4NsvARB;
21040 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBARBPROC __glewVertexAttrib4NubARB;
21041 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVARBPROC __glewVertexAttrib4NubvARB;
21042 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVARBPROC __glewVertexAttrib4NuivARB;
21043 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVARBPROC __glewVertexAttrib4NusvARB;
21044 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVARBPROC __glewVertexAttrib4bvARB;
21045 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DARBPROC __glewVertexAttrib4dARB;
21046 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVARBPROC __glewVertexAttrib4dvARB;
21047 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FARBPROC __glewVertexAttrib4fARB;
21048 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVARBPROC __glewVertexAttrib4fvARB;
21049 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVARBPROC __glewVertexAttrib4ivARB;
21050 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SARBPROC __glewVertexAttrib4sARB;
21051 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVARBPROC __glewVertexAttrib4svARB;
21052 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVARBPROC __glewVertexAttrib4ubvARB;
21053 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVARBPROC __glewVertexAttrib4uivARB;
21054 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVARBPROC __glewVertexAttrib4usvARB;
21055 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERARBPROC __glewVertexAttribPointerARB;
21056 
21057 GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONARBPROC __glewBindAttribLocationARB;
21058 GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBARBPROC __glewGetActiveAttribARB;
21059 GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONARBPROC __glewGetAttribLocationARB;
21060 
21061 GLEW_FUN_EXPORT PFNGLCOLORP3UIPROC __glewColorP3ui;
21062 GLEW_FUN_EXPORT PFNGLCOLORP3UIVPROC __glewColorP3uiv;
21063 GLEW_FUN_EXPORT PFNGLCOLORP4UIPROC __glewColorP4ui;
21064 GLEW_FUN_EXPORT PFNGLCOLORP4UIVPROC __glewColorP4uiv;
21065 GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIPROC __glewMultiTexCoordP1ui;
21066 GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIVPROC __glewMultiTexCoordP1uiv;
21067 GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIPROC __glewMultiTexCoordP2ui;
21068 GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIVPROC __glewMultiTexCoordP2uiv;
21069 GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIPROC __glewMultiTexCoordP3ui;
21070 GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIVPROC __glewMultiTexCoordP3uiv;
21071 GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIPROC __glewMultiTexCoordP4ui;
21072 GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIVPROC __glewMultiTexCoordP4uiv;
21073 GLEW_FUN_EXPORT PFNGLNORMALP3UIPROC __glewNormalP3ui;
21074 GLEW_FUN_EXPORT PFNGLNORMALP3UIVPROC __glewNormalP3uiv;
21075 GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIPROC __glewSecondaryColorP3ui;
21076 GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIVPROC __glewSecondaryColorP3uiv;
21077 GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIPROC __glewTexCoordP1ui;
21078 GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIVPROC __glewTexCoordP1uiv;
21079 GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIPROC __glewTexCoordP2ui;
21080 GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIVPROC __glewTexCoordP2uiv;
21081 GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIPROC __glewTexCoordP3ui;
21082 GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIVPROC __glewTexCoordP3uiv;
21083 GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIPROC __glewTexCoordP4ui;
21084 GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIVPROC __glewTexCoordP4uiv;
21085 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIPROC __glewVertexAttribP1ui;
21086 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIVPROC __glewVertexAttribP1uiv;
21087 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIPROC __glewVertexAttribP2ui;
21088 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIVPROC __glewVertexAttribP2uiv;
21089 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIPROC __glewVertexAttribP3ui;
21090 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIVPROC __glewVertexAttribP3uiv;
21091 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIPROC __glewVertexAttribP4ui;
21092 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIVPROC __glewVertexAttribP4uiv;
21093 GLEW_FUN_EXPORT PFNGLVERTEXP2UIPROC __glewVertexP2ui;
21094 GLEW_FUN_EXPORT PFNGLVERTEXP2UIVPROC __glewVertexP2uiv;
21095 GLEW_FUN_EXPORT PFNGLVERTEXP3UIPROC __glewVertexP3ui;
21096 GLEW_FUN_EXPORT PFNGLVERTEXP3UIVPROC __glewVertexP3uiv;
21097 GLEW_FUN_EXPORT PFNGLVERTEXP4UIPROC __glewVertexP4ui;
21098 GLEW_FUN_EXPORT PFNGLVERTEXP4UIVPROC __glewVertexP4uiv;
21099 
21100 GLEW_FUN_EXPORT PFNGLDEPTHRANGEARRAYVPROC __glewDepthRangeArrayv;
21101 GLEW_FUN_EXPORT PFNGLDEPTHRANGEINDEXEDPROC __glewDepthRangeIndexed;
21102 GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VPROC __glewGetDoublei_v;
21103 GLEW_FUN_EXPORT PFNGLGETFLOATI_VPROC __glewGetFloati_v;
21104 GLEW_FUN_EXPORT PFNGLSCISSORARRAYVPROC __glewScissorArrayv;
21105 GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDPROC __glewScissorIndexed;
21106 GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDVPROC __glewScissorIndexedv;
21107 GLEW_FUN_EXPORT PFNGLVIEWPORTARRAYVPROC __glewViewportArrayv;
21108 GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFPROC __glewViewportIndexedf;
21109 GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFVPROC __glewViewportIndexedfv;
21110 
21111 GLEW_FUN_EXPORT PFNGLWINDOWPOS2DARBPROC __glewWindowPos2dARB;
21112 GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVARBPROC __glewWindowPos2dvARB;
21113 GLEW_FUN_EXPORT PFNGLWINDOWPOS2FARBPROC __glewWindowPos2fARB;
21114 GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVARBPROC __glewWindowPos2fvARB;
21115 GLEW_FUN_EXPORT PFNGLWINDOWPOS2IARBPROC __glewWindowPos2iARB;
21116 GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVARBPROC __glewWindowPos2ivARB;
21117 GLEW_FUN_EXPORT PFNGLWINDOWPOS2SARBPROC __glewWindowPos2sARB;
21118 GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVARBPROC __glewWindowPos2svARB;
21119 GLEW_FUN_EXPORT PFNGLWINDOWPOS3DARBPROC __glewWindowPos3dARB;
21120 GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVARBPROC __glewWindowPos3dvARB;
21121 GLEW_FUN_EXPORT PFNGLWINDOWPOS3FARBPROC __glewWindowPos3fARB;
21122 GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVARBPROC __glewWindowPos3fvARB;
21123 GLEW_FUN_EXPORT PFNGLWINDOWPOS3IARBPROC __glewWindowPos3iARB;
21124 GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVARBPROC __glewWindowPos3ivARB;
21125 GLEW_FUN_EXPORT PFNGLWINDOWPOS3SARBPROC __glewWindowPos3sARB;
21126 GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVARBPROC __glewWindowPos3svARB;
21127 
21128 GLEW_FUN_EXPORT PFNGLDRAWBUFFERSATIPROC __glewDrawBuffersATI;
21129 
21130 GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYATIPROC __glewDrawElementArrayATI;
21131 GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYATIPROC __glewDrawRangeElementArrayATI;
21132 GLEW_FUN_EXPORT PFNGLELEMENTPOINTERATIPROC __glewElementPointerATI;
21133 
21134 GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERFVATIPROC __glewGetTexBumpParameterfvATI;
21135 GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERIVATIPROC __glewGetTexBumpParameterivATI;
21136 GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERFVATIPROC __glewTexBumpParameterfvATI;
21137 GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERIVATIPROC __glewTexBumpParameterivATI;
21138 
21139 GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP1ATIPROC __glewAlphaFragmentOp1ATI;
21140 GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP2ATIPROC __glewAlphaFragmentOp2ATI;
21141 GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP3ATIPROC __glewAlphaFragmentOp3ATI;
21142 GLEW_FUN_EXPORT PFNGLBEGINFRAGMENTSHADERATIPROC __glewBeginFragmentShaderATI;
21143 GLEW_FUN_EXPORT PFNGLBINDFRAGMENTSHADERATIPROC __glewBindFragmentShaderATI;
21144 GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP1ATIPROC __glewColorFragmentOp1ATI;
21145 GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP2ATIPROC __glewColorFragmentOp2ATI;
21146 GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP3ATIPROC __glewColorFragmentOp3ATI;
21147 GLEW_FUN_EXPORT PFNGLDELETEFRAGMENTSHADERATIPROC __glewDeleteFragmentShaderATI;
21148 GLEW_FUN_EXPORT PFNGLENDFRAGMENTSHADERATIPROC __glewEndFragmentShaderATI;
21149 GLEW_FUN_EXPORT PFNGLGENFRAGMENTSHADERSATIPROC __glewGenFragmentShadersATI;
21150 GLEW_FUN_EXPORT PFNGLPASSTEXCOORDATIPROC __glewPassTexCoordATI;
21151 GLEW_FUN_EXPORT PFNGLSAMPLEMAPATIPROC __glewSampleMapATI;
21152 GLEW_FUN_EXPORT PFNGLSETFRAGMENTSHADERCONSTANTATIPROC __glewSetFragmentShaderConstantATI;
21153 
21154 GLEW_FUN_EXPORT PFNGLMAPOBJECTBUFFERATIPROC __glewMapObjectBufferATI;
21155 GLEW_FUN_EXPORT PFNGLUNMAPOBJECTBUFFERATIPROC __glewUnmapObjectBufferATI;
21156 
21157 GLEW_FUN_EXPORT PFNGLPNTRIANGLESFATIPROC __glewPNTrianglesfATI;
21158 GLEW_FUN_EXPORT PFNGLPNTRIANGLESIATIPROC __glewPNTrianglesiATI;
21159 
21160 GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEATIPROC __glewStencilFuncSeparateATI;
21161 GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEATIPROC __glewStencilOpSeparateATI;
21162 
21163 GLEW_FUN_EXPORT PFNGLARRAYOBJECTATIPROC __glewArrayObjectATI;
21164 GLEW_FUN_EXPORT PFNGLFREEOBJECTBUFFERATIPROC __glewFreeObjectBufferATI;
21165 GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTFVATIPROC __glewGetArrayObjectfvATI;
21166 GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTIVATIPROC __glewGetArrayObjectivATI;
21167 GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERFVATIPROC __glewGetObjectBufferfvATI;
21168 GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERIVATIPROC __glewGetObjectBufferivATI;
21169 GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTFVATIPROC __glewGetVariantArrayObjectfvATI;
21170 GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTIVATIPROC __glewGetVariantArrayObjectivATI;
21171 GLEW_FUN_EXPORT PFNGLISOBJECTBUFFERATIPROC __glewIsObjectBufferATI;
21172 GLEW_FUN_EXPORT PFNGLNEWOBJECTBUFFERATIPROC __glewNewObjectBufferATI;
21173 GLEW_FUN_EXPORT PFNGLUPDATEOBJECTBUFFERATIPROC __glewUpdateObjectBufferATI;
21174 GLEW_FUN_EXPORT PFNGLVARIANTARRAYOBJECTATIPROC __glewVariantArrayObjectATI;
21175 
21176 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC __glewGetVertexAttribArrayObjectfvATI;
21177 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC __glewGetVertexAttribArrayObjectivATI;
21178 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBARRAYOBJECTATIPROC __glewVertexAttribArrayObjectATI;
21179 
21180 GLEW_FUN_EXPORT PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC __glewClientActiveVertexStreamATI;
21181 GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BATIPROC __glewNormalStream3bATI;
21182 GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BVATIPROC __glewNormalStream3bvATI;
21183 GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DATIPROC __glewNormalStream3dATI;
21184 GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DVATIPROC __glewNormalStream3dvATI;
21185 GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FATIPROC __glewNormalStream3fATI;
21186 GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FVATIPROC __glewNormalStream3fvATI;
21187 GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IATIPROC __glewNormalStream3iATI;
21188 GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IVATIPROC __glewNormalStream3ivATI;
21189 GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SATIPROC __glewNormalStream3sATI;
21190 GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SVATIPROC __glewNormalStream3svATI;
21191 GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVFATIPROC __glewVertexBlendEnvfATI;
21192 GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVIATIPROC __glewVertexBlendEnviATI;
21193 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1DATIPROC __glewVertexStream1dATI;
21194 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1DVATIPROC __glewVertexStream1dvATI;
21195 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1FATIPROC __glewVertexStream1fATI;
21196 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1FVATIPROC __glewVertexStream1fvATI;
21197 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1IATIPROC __glewVertexStream1iATI;
21198 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1IVATIPROC __glewVertexStream1ivATI;
21199 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1SATIPROC __glewVertexStream1sATI;
21200 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1SVATIPROC __glewVertexStream1svATI;
21201 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DATIPROC __glewVertexStream2dATI;
21202 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DVATIPROC __glewVertexStream2dvATI;
21203 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FATIPROC __glewVertexStream2fATI;
21204 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FVATIPROC __glewVertexStream2fvATI;
21205 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IATIPROC __glewVertexStream2iATI;
21206 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IVATIPROC __glewVertexStream2ivATI;
21207 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SATIPROC __glewVertexStream2sATI;
21208 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SVATIPROC __glewVertexStream2svATI;
21209 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DATIPROC __glewVertexStream3dATI;
21210 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DVATIPROC __glewVertexStream3dvATI;
21211 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FATIPROC __glewVertexStream3fATI;
21212 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FVATIPROC __glewVertexStream3fvATI;
21213 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IATIPROC __glewVertexStream3iATI;
21214 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IVATIPROC __glewVertexStream3ivATI;
21215 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SATIPROC __glewVertexStream3sATI;
21216 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SVATIPROC __glewVertexStream3svATI;
21217 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DATIPROC __glewVertexStream4dATI;
21218 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DVATIPROC __glewVertexStream4dvATI;
21219 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FATIPROC __glewVertexStream4fATI;
21220 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FVATIPROC __glewVertexStream4fvATI;
21221 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IATIPROC __glewVertexStream4iATI;
21222 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI;
21223 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI;
21224 GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI;
21225 
21226 GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC __glewDrawArraysInstancedBaseInstanceEXT;
21227 GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseInstanceEXT;
21228 GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseVertexBaseInstanceEXT;
21229 
21230 GLEW_FUN_EXPORT PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT;
21231 GLEW_FUN_EXPORT PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT;
21232 GLEW_FUN_EXPORT PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT;
21233 
21234 GLEW_FUN_EXPORT PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT;
21235 
21236 GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT;
21237 
21238 GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC __glewBindFragDataLocationIndexedEXT;
21239 GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXEXTPROC __glewGetFragDataIndexEXT;
21240 GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC __glewGetProgramResourceLocationIndexEXT;
21241 
21242 GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT;
21243 
21244 GLEW_FUN_EXPORT PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT;
21245 
21246 GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEEXTPROC __glewBufferStorageEXT;
21247 GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT;
21248 
21249 GLEW_FUN_EXPORT PFNGLCLEARTEXIMAGEEXTPROC __glewClearTexImageEXT;
21250 GLEW_FUN_EXPORT PFNGLCLEARTEXSUBIMAGEEXTPROC __glewClearTexSubImageEXT;
21251 
21252 GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT;
21253 GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT;
21254 
21255 GLEW_FUN_EXPORT PFNGLLOCKARRAYSEXTPROC __glewLockArraysEXT;
21256 GLEW_FUN_EXPORT PFNGLUNLOCKARRAYSEXTPROC __glewUnlockArraysEXT;
21257 
21258 GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DEXTPROC __glewConvolutionFilter1DEXT;
21259 GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DEXTPROC __glewConvolutionFilter2DEXT;
21260 GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFEXTPROC __glewConvolutionParameterfEXT;
21261 GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVEXTPROC __glewConvolutionParameterfvEXT;
21262 GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIEXTPROC __glewConvolutionParameteriEXT;
21263 GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVEXTPROC __glewConvolutionParameterivEXT;
21264 GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC __glewCopyConvolutionFilter1DEXT;
21265 GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC __glewCopyConvolutionFilter2DEXT;
21266 GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTEREXTPROC __glewGetConvolutionFilterEXT;
21267 GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC __glewGetConvolutionParameterfvEXT;
21268 GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC __glewGetConvolutionParameterivEXT;
21269 GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTEREXTPROC __glewGetSeparableFilterEXT;
21270 GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT;
21271 
21272 GLEW_FUN_EXPORT PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT;
21273 GLEW_FUN_EXPORT PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT;
21274 
21275 GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATAEXTPROC __glewCopyImageSubDataEXT;
21276 
21277 GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT;
21278 GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT;
21279 GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT;
21280 GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE2DEXTPROC __glewCopyTexSubImage2DEXT;
21281 GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DEXTPROC __glewCopyTexSubImage3DEXT;
21282 
21283 GLEW_FUN_EXPORT PFNGLCULLPARAMETERDVEXTPROC __glewCullParameterdvEXT;
21284 GLEW_FUN_EXPORT PFNGLCULLPARAMETERFVEXTPROC __glewCullParameterfvEXT;
21285 
21286 GLEW_FUN_EXPORT PFNGLGETOBJECTLABELEXTPROC __glewGetObjectLabelEXT;
21287 GLEW_FUN_EXPORT PFNGLLABELOBJECTEXTPROC __glewLabelObjectEXT;
21288 
21289 GLEW_FUN_EXPORT PFNGLINSERTEVENTMARKEREXTPROC __glewInsertEventMarkerEXT;
21290 GLEW_FUN_EXPORT PFNGLPOPGROUPMARKEREXTPROC __glewPopGroupMarkerEXT;
21291 GLEW_FUN_EXPORT PFNGLPUSHGROUPMARKEREXTPROC __glewPushGroupMarkerEXT;
21292 
21293 GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSEXTPROC __glewDepthBoundsEXT;
21294 
21295 GLEW_FUN_EXPORT PFNGLBINDMULTITEXTUREEXTPROC __glewBindMultiTextureEXT;
21296 GLEW_FUN_EXPORT PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC __glewCheckNamedFramebufferStatusEXT;
21297 GLEW_FUN_EXPORT PFNGLCLIENTATTRIBDEFAULTEXTPROC __glewClientAttribDefaultEXT;
21298 GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC __glewCompressedMultiTexImage1DEXT;
21299 GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC __glewCompressedMultiTexImage2DEXT;
21300 GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC __glewCompressedMultiTexImage3DEXT;
21301 GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC __glewCompressedMultiTexSubImage1DEXT;
21302 GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC __glewCompressedMultiTexSubImage2DEXT;
21303 GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC __glewCompressedMultiTexSubImage3DEXT;
21304 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC __glewCompressedTextureImage1DEXT;
21305 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC __glewCompressedTextureImage2DEXT;
21306 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC __glewCompressedTextureImage3DEXT;
21307 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC __glewCompressedTextureSubImage1DEXT;
21308 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC __glewCompressedTextureSubImage2DEXT;
21309 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC __glewCompressedTextureSubImage3DEXT;
21310 GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE1DEXTPROC __glewCopyMultiTexImage1DEXT;
21311 GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE2DEXTPROC __glewCopyMultiTexImage2DEXT;
21312 GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC __glewCopyMultiTexSubImage1DEXT;
21313 GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC __glewCopyMultiTexSubImage2DEXT;
21314 GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC __glewCopyMultiTexSubImage3DEXT;
21315 GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE1DEXTPROC __glewCopyTextureImage1DEXT;
21316 GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE2DEXTPROC __glewCopyTextureImage2DEXT;
21317 GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC __glewCopyTextureSubImage1DEXT;
21318 GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC __glewCopyTextureSubImage2DEXT;
21319 GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC __glewCopyTextureSubImage3DEXT;
21320 GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC __glewDisableClientStateIndexedEXT;
21321 GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEIEXTPROC __glewDisableClientStateiEXT;
21322 GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC __glewDisableVertexArrayAttribEXT;
21323 GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYEXTPROC __glewDisableVertexArrayEXT;
21324 GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEINDEXEDEXTPROC __glewEnableClientStateIndexedEXT;
21325 GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEIEXTPROC __glewEnableClientStateiEXT;
21326 GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYATTRIBEXTPROC __glewEnableVertexArrayAttribEXT;
21327 GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYEXTPROC __glewEnableVertexArrayEXT;
21328 GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC __glewFlushMappedNamedBufferRangeEXT;
21329 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC __glewFramebufferDrawBufferEXT;
21330 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC __glewFramebufferDrawBuffersEXT;
21331 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERREADBUFFEREXTPROC __glewFramebufferReadBufferEXT;
21332 GLEW_FUN_EXPORT PFNGLGENERATEMULTITEXMIPMAPEXTPROC __glewGenerateMultiTexMipmapEXT;
21333 GLEW_FUN_EXPORT PFNGLGENERATETEXTUREMIPMAPEXTPROC __glewGenerateTextureMipmapEXT;
21334 GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC __glewGetCompressedMultiTexImageEXT;
21335 GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC __glewGetCompressedTextureImageEXT;
21336 GLEW_FUN_EXPORT PFNGLGETDOUBLEINDEXEDVEXTPROC __glewGetDoubleIndexedvEXT;
21337 GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VEXTPROC __glewGetDoublei_vEXT;
21338 GLEW_FUN_EXPORT PFNGLGETFLOATINDEXEDVEXTPROC __glewGetFloatIndexedvEXT;
21339 GLEW_FUN_EXPORT PFNGLGETFLOATI_VEXTPROC __glewGetFloati_vEXT;
21340 GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC __glewGetFramebufferParameterivEXT;
21341 GLEW_FUN_EXPORT PFNGLGETMULTITEXENVFVEXTPROC __glewGetMultiTexEnvfvEXT;
21342 GLEW_FUN_EXPORT PFNGLGETMULTITEXENVIVEXTPROC __glewGetMultiTexEnvivEXT;
21343 GLEW_FUN_EXPORT PFNGLGETMULTITEXGENDVEXTPROC __glewGetMultiTexGendvEXT;
21344 GLEW_FUN_EXPORT PFNGLGETMULTITEXGENFVEXTPROC __glewGetMultiTexGenfvEXT;
21345 GLEW_FUN_EXPORT PFNGLGETMULTITEXGENIVEXTPROC __glewGetMultiTexGenivEXT;
21346 GLEW_FUN_EXPORT PFNGLGETMULTITEXIMAGEEXTPROC __glewGetMultiTexImageEXT;
21347 GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC __glewGetMultiTexLevelParameterfvEXT;
21348 GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC __glewGetMultiTexLevelParameterivEXT;
21349 GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIIVEXTPROC __glewGetMultiTexParameterIivEXT;
21350 GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIUIVEXTPROC __glewGetMultiTexParameterIuivEXT;
21351 GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERFVEXTPROC __glewGetMultiTexParameterfvEXT;
21352 GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIVEXTPROC __glewGetMultiTexParameterivEXT;
21353 GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC __glewGetNamedBufferParameterivEXT;
21354 GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPOINTERVEXTPROC __glewGetNamedBufferPointervEXT;
21355 GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERSUBDATAEXTPROC __glewGetNamedBufferSubDataEXT;
21356 GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetNamedFramebufferAttachmentParameterivEXT;
21357 GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC __glewGetNamedProgramLocalParameterIivEXT;
21358 GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC __glewGetNamedProgramLocalParameterIuivEXT;
21359 GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC __glewGetNamedProgramLocalParameterdvEXT;
21360 GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC __glewGetNamedProgramLocalParameterfvEXT;
21361 GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMSTRINGEXTPROC __glewGetNamedProgramStringEXT;
21362 GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMIVEXTPROC __glewGetNamedProgramivEXT;
21363 GLEW_FUN_EXPORT PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC __glewGetNamedRenderbufferParameterivEXT;
21364 GLEW_FUN_EXPORT PFNGLGETPOINTERINDEXEDVEXTPROC __glewGetPointerIndexedvEXT;
21365 GLEW_FUN_EXPORT PFNGLGETPOINTERI_VEXTPROC __glewGetPointeri_vEXT;
21366 GLEW_FUN_EXPORT PFNGLGETTEXTUREIMAGEEXTPROC __glewGetTextureImageEXT;
21367 GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC __glewGetTextureLevelParameterfvEXT;
21368 GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC __glewGetTextureLevelParameterivEXT;
21369 GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIIVEXTPROC __glewGetTextureParameterIivEXT;
21370 GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIUIVEXTPROC __glewGetTextureParameterIuivEXT;
21371 GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERFVEXTPROC __glewGetTextureParameterfvEXT;
21372 GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIVEXTPROC __glewGetTextureParameterivEXT;
21373 GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC __glewGetVertexArrayIntegeri_vEXT;
21374 GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERVEXTPROC __glewGetVertexArrayIntegervEXT;
21375 GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC __glewGetVertexArrayPointeri_vEXT;
21376 GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERVEXTPROC __glewGetVertexArrayPointervEXT;
21377 GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFEREXTPROC __glewMapNamedBufferEXT;
21378 GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERRANGEEXTPROC __glewMapNamedBufferRangeEXT;
21379 GLEW_FUN_EXPORT PFNGLMATRIXFRUSTUMEXTPROC __glewMatrixFrustumEXT;
21380 GLEW_FUN_EXPORT PFNGLMATRIXLOADIDENTITYEXTPROC __glewMatrixLoadIdentityEXT;
21381 GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEDEXTPROC __glewMatrixLoadTransposedEXT;
21382 GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEFEXTPROC __glewMatrixLoadTransposefEXT;
21383 GLEW_FUN_EXPORT PFNGLMATRIXLOADDEXTPROC __glewMatrixLoaddEXT;
21384 GLEW_FUN_EXPORT PFNGLMATRIXLOADFEXTPROC __glewMatrixLoadfEXT;
21385 GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEDEXTPROC __glewMatrixMultTransposedEXT;
21386 GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEFEXTPROC __glewMatrixMultTransposefEXT;
21387 GLEW_FUN_EXPORT PFNGLMATRIXMULTDEXTPROC __glewMatrixMultdEXT;
21388 GLEW_FUN_EXPORT PFNGLMATRIXMULTFEXTPROC __glewMatrixMultfEXT;
21389 GLEW_FUN_EXPORT PFNGLMATRIXORTHOEXTPROC __glewMatrixOrthoEXT;
21390 GLEW_FUN_EXPORT PFNGLMATRIXPOPEXTPROC __glewMatrixPopEXT;
21391 GLEW_FUN_EXPORT PFNGLMATRIXPUSHEXTPROC __glewMatrixPushEXT;
21392 GLEW_FUN_EXPORT PFNGLMATRIXROTATEDEXTPROC __glewMatrixRotatedEXT;
21393 GLEW_FUN_EXPORT PFNGLMATRIXROTATEFEXTPROC __glewMatrixRotatefEXT;
21394 GLEW_FUN_EXPORT PFNGLMATRIXSCALEDEXTPROC __glewMatrixScaledEXT;
21395 GLEW_FUN_EXPORT PFNGLMATRIXSCALEFEXTPROC __glewMatrixScalefEXT;
21396 GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEDEXTPROC __glewMatrixTranslatedEXT;
21397 GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEFEXTPROC __glewMatrixTranslatefEXT;
21398 GLEW_FUN_EXPORT PFNGLMULTITEXBUFFEREXTPROC __glewMultiTexBufferEXT;
21399 GLEW_FUN_EXPORT PFNGLMULTITEXCOORDPOINTEREXTPROC __glewMultiTexCoordPointerEXT;
21400 GLEW_FUN_EXPORT PFNGLMULTITEXENVFEXTPROC __glewMultiTexEnvfEXT;
21401 GLEW_FUN_EXPORT PFNGLMULTITEXENVFVEXTPROC __glewMultiTexEnvfvEXT;
21402 GLEW_FUN_EXPORT PFNGLMULTITEXENVIEXTPROC __glewMultiTexEnviEXT;
21403 GLEW_FUN_EXPORT PFNGLMULTITEXENVIVEXTPROC __glewMultiTexEnvivEXT;
21404 GLEW_FUN_EXPORT PFNGLMULTITEXGENDEXTPROC __glewMultiTexGendEXT;
21405 GLEW_FUN_EXPORT PFNGLMULTITEXGENDVEXTPROC __glewMultiTexGendvEXT;
21406 GLEW_FUN_EXPORT PFNGLMULTITEXGENFEXTPROC __glewMultiTexGenfEXT;
21407 GLEW_FUN_EXPORT PFNGLMULTITEXGENFVEXTPROC __glewMultiTexGenfvEXT;
21408 GLEW_FUN_EXPORT PFNGLMULTITEXGENIEXTPROC __glewMultiTexGeniEXT;
21409 GLEW_FUN_EXPORT PFNGLMULTITEXGENIVEXTPROC __glewMultiTexGenivEXT;
21410 GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE1DEXTPROC __glewMultiTexImage1DEXT;
21411 GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE2DEXTPROC __glewMultiTexImage2DEXT;
21412 GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE3DEXTPROC __glewMultiTexImage3DEXT;
21413 GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIIVEXTPROC __glewMultiTexParameterIivEXT;
21414 GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIUIVEXTPROC __glewMultiTexParameterIuivEXT;
21415 GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFEXTPROC __glewMultiTexParameterfEXT;
21416 GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFVEXTPROC __glewMultiTexParameterfvEXT;
21417 GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIEXTPROC __glewMultiTexParameteriEXT;
21418 GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIVEXTPROC __glewMultiTexParameterivEXT;
21419 GLEW_FUN_EXPORT PFNGLMULTITEXRENDERBUFFEREXTPROC __glewMultiTexRenderbufferEXT;
21420 GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE1DEXTPROC __glewMultiTexSubImage1DEXT;
21421 GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE2DEXTPROC __glewMultiTexSubImage2DEXT;
21422 GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE3DEXTPROC __glewMultiTexSubImage3DEXT;
21423 GLEW_FUN_EXPORT PFNGLNAMEDBUFFERDATAEXTPROC __glewNamedBufferDataEXT;
21424 GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSUBDATAEXTPROC __glewNamedBufferSubDataEXT;
21425 GLEW_FUN_EXPORT PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC __glewNamedCopyBufferSubDataEXT;
21426 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC __glewNamedFramebufferRenderbufferEXT;
21427 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC __glewNamedFramebufferTexture1DEXT;
21428 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC __glewNamedFramebufferTexture2DEXT;
21429 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC __glewNamedFramebufferTexture3DEXT;
21430 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC __glewNamedFramebufferTextureEXT;
21431 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC __glewNamedFramebufferTextureFaceEXT;
21432 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC __glewNamedFramebufferTextureLayerEXT;
21433 GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC __glewNamedProgramLocalParameter4dEXT;
21434 GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC __glewNamedProgramLocalParameter4dvEXT;
21435 GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC __glewNamedProgramLocalParameter4fEXT;
21436 GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC __glewNamedProgramLocalParameter4fvEXT;
21437 GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC __glewNamedProgramLocalParameterI4iEXT;
21438 GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC __glewNamedProgramLocalParameterI4ivEXT;
21439 GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC __glewNamedProgramLocalParameterI4uiEXT;
21440 GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC __glewNamedProgramLocalParameterI4uivEXT;
21441 GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC __glewNamedProgramLocalParameters4fvEXT;
21442 GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC __glewNamedProgramLocalParametersI4ivEXT;
21443 GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC __glewNamedProgramLocalParametersI4uivEXT;
21444 GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMSTRINGEXTPROC __glewNamedProgramStringEXT;
21445 GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC __glewNamedRenderbufferStorageEXT;
21446 GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC __glewNamedRenderbufferStorageMultisampleCoverageEXT;
21447 GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewNamedRenderbufferStorageMultisampleEXT;
21448 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FEXTPROC __glewProgramUniform1fEXT;
21449 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVEXTPROC __glewProgramUniform1fvEXT;
21450 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IEXTPROC __glewProgramUniform1iEXT;
21451 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVEXTPROC __glewProgramUniform1ivEXT;
21452 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIEXTPROC __glewProgramUniform1uiEXT;
21453 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVEXTPROC __glewProgramUniform1uivEXT;
21454 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FEXTPROC __glewProgramUniform2fEXT;
21455 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVEXTPROC __glewProgramUniform2fvEXT;
21456 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IEXTPROC __glewProgramUniform2iEXT;
21457 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVEXTPROC __glewProgramUniform2ivEXT;
21458 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIEXTPROC __glewProgramUniform2uiEXT;
21459 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVEXTPROC __glewProgramUniform2uivEXT;
21460 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FEXTPROC __glewProgramUniform3fEXT;
21461 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVEXTPROC __glewProgramUniform3fvEXT;
21462 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IEXTPROC __glewProgramUniform3iEXT;
21463 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVEXTPROC __glewProgramUniform3ivEXT;
21464 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIEXTPROC __glewProgramUniform3uiEXT;
21465 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVEXTPROC __glewProgramUniform3uivEXT;
21466 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FEXTPROC __glewProgramUniform4fEXT;
21467 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVEXTPROC __glewProgramUniform4fvEXT;
21468 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IEXTPROC __glewProgramUniform4iEXT;
21469 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVEXTPROC __glewProgramUniform4ivEXT;
21470 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIEXTPROC __glewProgramUniform4uiEXT;
21471 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVEXTPROC __glewProgramUniform4uivEXT;
21472 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC __glewProgramUniformMatrix2fvEXT;
21473 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC __glewProgramUniformMatrix2x3fvEXT;
21474 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC __glewProgramUniformMatrix2x4fvEXT;
21475 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC __glewProgramUniformMatrix3fvEXT;
21476 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC __glewProgramUniformMatrix3x2fvEXT;
21477 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC __glewProgramUniformMatrix3x4fvEXT;
21478 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC __glewProgramUniformMatrix4fvEXT;
21479 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC __glewProgramUniformMatrix4x2fvEXT;
21480 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC __glewProgramUniformMatrix4x3fvEXT;
21481 GLEW_FUN_EXPORT PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC __glewPushClientAttribDefaultEXT;
21482 GLEW_FUN_EXPORT PFNGLTEXTUREBUFFEREXTPROC __glewTextureBufferEXT;
21483 GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE1DEXTPROC __glewTextureImage1DEXT;
21484 GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DEXTPROC __glewTextureImage2DEXT;
21485 GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DEXTPROC __glewTextureImage3DEXT;
21486 GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIIVEXTPROC __glewTextureParameterIivEXT;
21487 GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIUIVEXTPROC __glewTextureParameterIuivEXT;
21488 GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFEXTPROC __glewTextureParameterfEXT;
21489 GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFVEXTPROC __glewTextureParameterfvEXT;
21490 GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIEXTPROC __glewTextureParameteriEXT;
21491 GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIVEXTPROC __glewTextureParameterivEXT;
21492 GLEW_FUN_EXPORT PFNGLTEXTURERENDERBUFFEREXTPROC __glewTextureRenderbufferEXT;
21493 GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE1DEXTPROC __glewTextureSubImage1DEXT;
21494 GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE2DEXTPROC __glewTextureSubImage2DEXT;
21495 GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE3DEXTPROC __glewTextureSubImage3DEXT;
21496 GLEW_FUN_EXPORT PFNGLUNMAPNAMEDBUFFEREXTPROC __glewUnmapNamedBufferEXT;
21497 GLEW_FUN_EXPORT PFNGLVERTEXARRAYCOLOROFFSETEXTPROC __glewVertexArrayColorOffsetEXT;
21498 GLEW_FUN_EXPORT PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC __glewVertexArrayEdgeFlagOffsetEXT;
21499 GLEW_FUN_EXPORT PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC __glewVertexArrayFogCoordOffsetEXT;
21500 GLEW_FUN_EXPORT PFNGLVERTEXARRAYINDEXOFFSETEXTPROC __glewVertexArrayIndexOffsetEXT;
21501 GLEW_FUN_EXPORT PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC __glewVertexArrayMultiTexCoordOffsetEXT;
21502 GLEW_FUN_EXPORT PFNGLVERTEXARRAYNORMALOFFSETEXTPROC __glewVertexArrayNormalOffsetEXT;
21503 GLEW_FUN_EXPORT PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC __glewVertexArraySecondaryColorOffsetEXT;
21504 GLEW_FUN_EXPORT PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC __glewVertexArrayTexCoordOffsetEXT;
21505 GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC __glewVertexArrayVertexAttribDivisorEXT;
21506 GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVertexAttribIOffsetEXT;
21507 GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT;
21508 GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT;
21509 
21510 GLEW_FUN_EXPORT PFNGLDISCARDFRAMEBUFFEREXTPROC __glewDiscardFramebufferEXT;
21511 
21512 GLEW_FUN_EXPORT PFNGLDRAWBUFFERSEXTPROC __glewDrawBuffersEXT;
21513 
21514 GLEW_FUN_EXPORT PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT;
21515 GLEW_FUN_EXPORT PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT;
21516 GLEW_FUN_EXPORT PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT;
21517 GLEW_FUN_EXPORT PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT;
21518 GLEW_FUN_EXPORT PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT;
21519 GLEW_FUN_EXPORT PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT;
21520 
21521 GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIEXTPROC __glewBlendEquationSeparateiEXT;
21522 GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIEXTPROC __glewBlendEquationiEXT;
21523 GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIEXTPROC __glewBlendFuncSeparateiEXT;
21524 GLEW_FUN_EXPORT PFNGLBLENDFUNCIEXTPROC __glewBlendFunciEXT;
21525 GLEW_FUN_EXPORT PFNGLCOLORMASKIEXTPROC __glewColorMaskiEXT;
21526 GLEW_FUN_EXPORT PFNGLDISABLEIEXTPROC __glewDisableiEXT;
21527 GLEW_FUN_EXPORT PFNGLENABLEIEXTPROC __glewEnableiEXT;
21528 GLEW_FUN_EXPORT PFNGLISENABLEDIEXTPROC __glewIsEnablediEXT;
21529 
21530 GLEW_FUN_EXPORT PFNGLDRAWELEMENTSBASEVERTEXEXTPROC __glewDrawElementsBaseVertexEXT;
21531 GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC __glewDrawElementsInstancedBaseVertexEXT;
21532 GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC __glewDrawRangeElementsBaseVertexEXT;
21533 GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC __glewMultiDrawElementsBaseVertexEXT;
21534 
21535 GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT;
21536 GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT;
21537 
21538 GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT;
21539 
21540 GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEEXTERNALEXTPROC __glewBufferStorageExternalEXT;
21541 GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC __glewNamedBufferStorageExternalEXT;
21542 
21543 GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT;
21544 GLEW_FUN_EXPORT PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT;
21545 GLEW_FUN_EXPORT PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT;
21546 GLEW_FUN_EXPORT PFNGLFOGCOORDFEXTPROC __glewFogCoordfEXT;
21547 GLEW_FUN_EXPORT PFNGLFOGCOORDFVEXTPROC __glewFogCoordfvEXT;
21548 
21549 GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALEXTPROC __glewFragmentColorMaterialEXT;
21550 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFEXTPROC __glewFragmentLightModelfEXT;
21551 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVEXTPROC __glewFragmentLightModelfvEXT;
21552 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIEXTPROC __glewFragmentLightModeliEXT;
21553 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVEXTPROC __glewFragmentLightModelivEXT;
21554 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFEXTPROC __glewFragmentLightfEXT;
21555 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVEXTPROC __glewFragmentLightfvEXT;
21556 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIEXTPROC __glewFragmentLightiEXT;
21557 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVEXTPROC __glewFragmentLightivEXT;
21558 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFEXTPROC __glewFragmentMaterialfEXT;
21559 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVEXTPROC __glewFragmentMaterialfvEXT;
21560 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIEXTPROC __glewFragmentMaterialiEXT;
21561 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVEXTPROC __glewFragmentMaterialivEXT;
21562 GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVEXTPROC __glewGetFragmentLightfvEXT;
21563 GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVEXTPROC __glewGetFragmentLightivEXT;
21564 GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVEXTPROC __glewGetFragmentMaterialfvEXT;
21565 GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVEXTPROC __glewGetFragmentMaterialivEXT;
21566 GLEW_FUN_EXPORT PFNGLLIGHTENVIEXTPROC __glewLightEnviEXT;
21567 
21568 GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFEREXTPROC __glewBlitFramebufferEXT;
21569 
21570 GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewRenderbufferStorageMultisampleEXT;
21571 
21572 GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFEREXTPROC __glewBindFramebufferEXT;
21573 GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFEREXTPROC __glewBindRenderbufferEXT;
21574 GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC __glewCheckFramebufferStatusEXT;
21575 GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSEXTPROC __glewDeleteFramebuffersEXT;
21576 GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSEXTPROC __glewDeleteRenderbuffersEXT;
21577 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC __glewFramebufferRenderbufferEXT;
21578 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DEXTPROC __glewFramebufferTexture1DEXT;
21579 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DEXTPROC __glewFramebufferTexture2DEXT;
21580 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DEXTPROC __glewFramebufferTexture3DEXT;
21581 GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSEXTPROC __glewGenFramebuffersEXT;
21582 GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSEXTPROC __glewGenRenderbuffersEXT;
21583 GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPEXTPROC __glewGenerateMipmapEXT;
21584 GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetFramebufferAttachmentParameterivEXT;
21585 GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC __glewGetRenderbufferParameterivEXT;
21586 GLEW_FUN_EXPORT PFNGLISFRAMEBUFFEREXTPROC __glewIsFramebufferEXT;
21587 GLEW_FUN_EXPORT PFNGLISRENDERBUFFEREXTPROC __glewIsRenderbufferEXT;
21588 GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEEXTPROC __glewRenderbufferStorageEXT;
21589 
21590 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREEXTPROC __glewFramebufferTextureEXT;
21591 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC __glewFramebufferTextureFaceEXT;
21592 GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIEXTPROC __glewProgramParameteriEXT;
21593 
21594 GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERS4FVEXTPROC __glewProgramEnvParameters4fvEXT;
21595 GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC __glewProgramLocalParameters4fvEXT;
21596 
21597 GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONEXTPROC __glewBindFragDataLocationEXT;
21598 GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONEXTPROC __glewGetFragDataLocationEXT;
21599 GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVEXTPROC __glewGetUniformuivEXT;
21600 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVEXTPROC __glewGetVertexAttribIivEXT;
21601 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVEXTPROC __glewGetVertexAttribIuivEXT;
21602 GLEW_FUN_EXPORT PFNGLUNIFORM1UIEXTPROC __glewUniform1uiEXT;
21603 GLEW_FUN_EXPORT PFNGLUNIFORM1UIVEXTPROC __glewUniform1uivEXT;
21604 GLEW_FUN_EXPORT PFNGLUNIFORM2UIEXTPROC __glewUniform2uiEXT;
21605 GLEW_FUN_EXPORT PFNGLUNIFORM2UIVEXTPROC __glewUniform2uivEXT;
21606 GLEW_FUN_EXPORT PFNGLUNIFORM3UIEXTPROC __glewUniform3uiEXT;
21607 GLEW_FUN_EXPORT PFNGLUNIFORM3UIVEXTPROC __glewUniform3uivEXT;
21608 GLEW_FUN_EXPORT PFNGLUNIFORM4UIEXTPROC __glewUniform4uiEXT;
21609 GLEW_FUN_EXPORT PFNGLUNIFORM4UIVEXTPROC __glewUniform4uivEXT;
21610 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IEXTPROC __glewVertexAttribI1iEXT;
21611 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVEXTPROC __glewVertexAttribI1ivEXT;
21612 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIEXTPROC __glewVertexAttribI1uiEXT;
21613 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVEXTPROC __glewVertexAttribI1uivEXT;
21614 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IEXTPROC __glewVertexAttribI2iEXT;
21615 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVEXTPROC __glewVertexAttribI2ivEXT;
21616 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIEXTPROC __glewVertexAttribI2uiEXT;
21617 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVEXTPROC __glewVertexAttribI2uivEXT;
21618 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IEXTPROC __glewVertexAttribI3iEXT;
21619 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVEXTPROC __glewVertexAttribI3ivEXT;
21620 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIEXTPROC __glewVertexAttribI3uiEXT;
21621 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVEXTPROC __glewVertexAttribI3uivEXT;
21622 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVEXTPROC __glewVertexAttribI4bvEXT;
21623 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IEXTPROC __glewVertexAttribI4iEXT;
21624 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVEXTPROC __glewVertexAttribI4ivEXT;
21625 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVEXTPROC __glewVertexAttribI4svEXT;
21626 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVEXTPROC __glewVertexAttribI4ubvEXT;
21627 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIEXTPROC __glewVertexAttribI4uiEXT;
21628 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVEXTPROC __glewVertexAttribI4uivEXT;
21629 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVEXTPROC __glewVertexAttribI4usvEXT;
21630 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTEREXTPROC __glewVertexAttribIPointerEXT;
21631 
21632 GLEW_FUN_EXPORT PFNGLGETHISTOGRAMEXTPROC __glewGetHistogramEXT;
21633 GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVEXTPROC __glewGetHistogramParameterfvEXT;
21634 GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVEXTPROC __glewGetHistogramParameterivEXT;
21635 GLEW_FUN_EXPORT PFNGLGETMINMAXEXTPROC __glewGetMinmaxEXT;
21636 GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVEXTPROC __glewGetMinmaxParameterfvEXT;
21637 GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVEXTPROC __glewGetMinmaxParameterivEXT;
21638 GLEW_FUN_EXPORT PFNGLHISTOGRAMEXTPROC __glewHistogramEXT;
21639 GLEW_FUN_EXPORT PFNGLMINMAXEXTPROC __glewMinmaxEXT;
21640 GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMEXTPROC __glewResetHistogramEXT;
21641 GLEW_FUN_EXPORT PFNGLRESETMINMAXEXTPROC __glewResetMinmaxEXT;
21642 
21643 GLEW_FUN_EXPORT PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT;
21644 
21645 GLEW_FUN_EXPORT PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT;
21646 
21647 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISOREXTPROC __glewVertexAttribDivisorEXT;
21648 
21649 GLEW_FUN_EXPORT PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT;
21650 GLEW_FUN_EXPORT PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT;
21651 GLEW_FUN_EXPORT PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT;
21652 
21653 GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC __glewFlushMappedBufferRangeEXT;
21654 GLEW_FUN_EXPORT PFNGLMAPBUFFERRANGEEXTPROC __glewMapBufferRangeEXT;
21655 
21656 GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEMEMEXTPROC __glewBufferStorageMemEXT;
21657 GLEW_FUN_EXPORT PFNGLCREATEMEMORYOBJECTSEXTPROC __glewCreateMemoryObjectsEXT;
21658 GLEW_FUN_EXPORT PFNGLDELETEMEMORYOBJECTSEXTPROC __glewDeleteMemoryObjectsEXT;
21659 GLEW_FUN_EXPORT PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC __glewGetMemoryObjectParameterivEXT;
21660 GLEW_FUN_EXPORT PFNGLGETUNSIGNEDBYTEI_VEXTPROC __glewGetUnsignedBytei_vEXT;
21661 GLEW_FUN_EXPORT PFNGLGETUNSIGNEDBYTEVEXTPROC __glewGetUnsignedBytevEXT;
21662 GLEW_FUN_EXPORT PFNGLISMEMORYOBJECTEXTPROC __glewIsMemoryObjectEXT;
21663 GLEW_FUN_EXPORT PFNGLMEMORYOBJECTPARAMETERIVEXTPROC __glewMemoryObjectParameterivEXT;
21664 GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC __glewNamedBufferStorageMemEXT;
21665 GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM1DEXTPROC __glewTexStorageMem1DEXT;
21666 GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM2DEXTPROC __glewTexStorageMem2DEXT;
21667 GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC __glewTexStorageMem2DMultisampleEXT;
21668 GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM3DEXTPROC __glewTexStorageMem3DEXT;
21669 GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC __glewTexStorageMem3DMultisampleEXT;
21670 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM1DEXTPROC __glewTextureStorageMem1DEXT;
21671 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM2DEXTPROC __glewTextureStorageMem2DEXT;
21672 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC __glewTextureStorageMem2DMultisampleEXT;
21673 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM3DEXTPROC __glewTextureStorageMem3DEXT;
21674 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC __glewTextureStorageMem3DMultisampleEXT;
21675 
21676 GLEW_FUN_EXPORT PFNGLIMPORTMEMORYFDEXTPROC __glewImportMemoryFdEXT;
21677 
21678 GLEW_FUN_EXPORT PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC __glewImportMemoryWin32HandleEXT;
21679 GLEW_FUN_EXPORT PFNGLIMPORTMEMORYWIN32NAMEEXTPROC __glewImportMemoryWin32NameEXT;
21680 
21681 GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT;
21682 GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT;
21683 
21684 GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC __glewMultiDrawArraysIndirectEXT;
21685 GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC __glewMultiDrawElementsIndirectEXT;
21686 
21687 GLEW_FUN_EXPORT PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT;
21688 GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT;
21689 
21690 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC __glewFramebufferTexture2DMultisampleEXT;
21691 
21692 GLEW_FUN_EXPORT PFNGLDRAWBUFFERSINDEXEDEXTPROC __glewDrawBuffersIndexedEXT;
21693 GLEW_FUN_EXPORT PFNGLGETINTEGERI_VEXTPROC __glewGetIntegeri_vEXT;
21694 GLEW_FUN_EXPORT PFNGLREADBUFFERINDEXEDEXTPROC __glewReadBufferIndexedEXT;
21695 
21696 GLEW_FUN_EXPORT PFNGLCOLORTABLEEXTPROC __glewColorTableEXT;
21697 GLEW_FUN_EXPORT PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT;
21698 GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT;
21699 GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVEXTPROC __glewGetColorTableParameterivEXT;
21700 
21701 GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC __glewGetPixelTransformParameterfvEXT;
21702 GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC __glewGetPixelTransformParameterivEXT;
21703 GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFEXTPROC __glewPixelTransformParameterfEXT;
21704 GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC __glewPixelTransformParameterfvEXT;
21705 GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIEXTPROC __glewPixelTransformParameteriEXT;
21706 GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC __glewPixelTransformParameterivEXT;
21707 
21708 GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFEXTPROC __glewPointParameterfEXT;
21709 GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVEXTPROC __glewPointParameterfvEXT;
21710 
21711 GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT;
21712 
21713 GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETCLAMPEXTPROC __glewPolygonOffsetClampEXT;
21714 
21715 GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT;
21716 
21717 GLEW_FUN_EXPORT PFNGLCOVERAGEMODULATIONNVPROC __glewCoverageModulationNV;
21718 GLEW_FUN_EXPORT PFNGLCOVERAGEMODULATIONTABLENVPROC __glewCoverageModulationTableNV;
21719 GLEW_FUN_EXPORT PFNGLGETCOVERAGEMODULATIONTABLENVPROC __glewGetCoverageModulationTableNV;
21720 GLEW_FUN_EXPORT PFNGLRASTERSAMPLESEXTPROC __glewRasterSamplesEXT;
21721 
21722 GLEW_FUN_EXPORT PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT;
21723 GLEW_FUN_EXPORT PFNGLENDSCENEEXTPROC __glewEndSceneEXT;
21724 
21725 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BEXTPROC __glewSecondaryColor3bEXT;
21726 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVEXTPROC __glewSecondaryColor3bvEXT;
21727 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DEXTPROC __glewSecondaryColor3dEXT;
21728 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVEXTPROC __glewSecondaryColor3dvEXT;
21729 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FEXTPROC __glewSecondaryColor3fEXT;
21730 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVEXTPROC __glewSecondaryColor3fvEXT;
21731 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IEXTPROC __glewSecondaryColor3iEXT;
21732 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVEXTPROC __glewSecondaryColor3ivEXT;
21733 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SEXTPROC __glewSecondaryColor3sEXT;
21734 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVEXTPROC __glewSecondaryColor3svEXT;
21735 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBEXTPROC __glewSecondaryColor3ubEXT;
21736 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVEXTPROC __glewSecondaryColor3ubvEXT;
21737 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIEXTPROC __glewSecondaryColor3uiEXT;
21738 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVEXTPROC __glewSecondaryColor3uivEXT;
21739 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT;
21740 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT;
21741 GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT;
21742 
21743 GLEW_FUN_EXPORT PFNGLDELETESEMAPHORESEXTPROC __glewDeleteSemaphoresEXT;
21744 GLEW_FUN_EXPORT PFNGLGENSEMAPHORESEXTPROC __glewGenSemaphoresEXT;
21745 GLEW_FUN_EXPORT PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC __glewGetSemaphoreParameterui64vEXT;
21746 GLEW_FUN_EXPORT PFNGLISSEMAPHOREEXTPROC __glewIsSemaphoreEXT;
21747 GLEW_FUN_EXPORT PFNGLSEMAPHOREPARAMETERUI64VEXTPROC __glewSemaphoreParameterui64vEXT;
21748 GLEW_FUN_EXPORT PFNGLSIGNALSEMAPHOREEXTPROC __glewSignalSemaphoreEXT;
21749 GLEW_FUN_EXPORT PFNGLWAITSEMAPHOREEXTPROC __glewWaitSemaphoreEXT;
21750 
21751 GLEW_FUN_EXPORT PFNGLIMPORTSEMAPHOREFDEXTPROC __glewImportSemaphoreFdEXT;
21752 
21753 GLEW_FUN_EXPORT PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC __glewImportSemaphoreWin32HandleEXT;
21754 GLEW_FUN_EXPORT PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC __glewImportSemaphoreWin32NameEXT;
21755 
21756 GLEW_FUN_EXPORT PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT;
21757 GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT;
21758 GLEW_FUN_EXPORT PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT;
21759 
21760 GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT;
21761 GLEW_FUN_EXPORT PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT;
21762 
21763 GLEW_FUN_EXPORT PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC __glewClearPixelLocalStorageuiEXT;
21764 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewFramebufferPixelLocalStorageSizeEXT;
21765 GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewGetFramebufferPixelLocalStorageSizeEXT;
21766 
21767 GLEW_FUN_EXPORT PFNGLTEXPAGECOMMITMENTEXTPROC __glewTexPageCommitmentEXT;
21768 GLEW_FUN_EXPORT PFNGLTEXTUREPAGECOMMITMENTEXTPROC __glewTexturePageCommitmentEXT;
21769 
21770 GLEW_FUN_EXPORT PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT;
21771 
21772 GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT;
21773 GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT;
21774 GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT;
21775 
21776 GLEW_FUN_EXPORT PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT;
21777 
21778 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT;
21779 
21780 GLEW_FUN_EXPORT PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT;
21781 
21782 GLEW_FUN_EXPORT PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT;
21783 GLEW_FUN_EXPORT PFNGLCLEARCOLORIUIEXTPROC __glewClearColorIuiEXT;
21784 GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVEXTPROC __glewGetTexParameterIivEXT;
21785 GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVEXTPROC __glewGetTexParameterIuivEXT;
21786 GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVEXTPROC __glewTexParameterIivEXT;
21787 GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVEXTPROC __glewTexParameterIuivEXT;
21788 
21789 GLEW_FUN_EXPORT PFNGLARETEXTURESRESIDENTEXTPROC __glewAreTexturesResidentEXT;
21790 GLEW_FUN_EXPORT PFNGLBINDTEXTUREEXTPROC __glewBindTextureEXT;
21791 GLEW_FUN_EXPORT PFNGLDELETETEXTURESEXTPROC __glewDeleteTexturesEXT;
21792 GLEW_FUN_EXPORT PFNGLGENTEXTURESEXTPROC __glewGenTexturesEXT;
21793 GLEW_FUN_EXPORT PFNGLISTEXTUREEXTPROC __glewIsTextureEXT;
21794 GLEW_FUN_EXPORT PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT;
21795 
21796 GLEW_FUN_EXPORT PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT;
21797 
21798 GLEW_FUN_EXPORT PFNGLTEXSTORAGE1DEXTPROC __glewTexStorage1DEXT;
21799 GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DEXTPROC __glewTexStorage2DEXT;
21800 GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DEXTPROC __glewTexStorage3DEXT;
21801 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT;
21802 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT;
21803 GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT;
21804 
21805 GLEW_FUN_EXPORT PFNGLTEXTUREVIEWEXTPROC __glewTextureViewEXT;
21806 
21807 GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT;
21808 GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT;
21809 
21810 GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKEXTPROC __glewBeginTransformFeedbackEXT;
21811 GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEEXTPROC __glewBindBufferBaseEXT;
21812 GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETEXTPROC __glewBindBufferOffsetEXT;
21813 GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEEXTPROC __glewBindBufferRangeEXT;
21814 GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKEXTPROC __glewEndTransformFeedbackEXT;
21815 GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC __glewGetTransformFeedbackVaryingEXT;
21816 GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC __glewTransformFeedbackVaryingsEXT;
21817 
21818 GLEW_FUN_EXPORT PFNGLARRAYELEMENTEXTPROC __glewArrayElementEXT;
21819 GLEW_FUN_EXPORT PFNGLCOLORPOINTEREXTPROC __glewColorPointerEXT;
21820 GLEW_FUN_EXPORT PFNGLDRAWARRAYSEXTPROC __glewDrawArraysEXT;
21821 GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTEREXTPROC __glewEdgeFlagPointerEXT;
21822 GLEW_FUN_EXPORT PFNGLINDEXPOINTEREXTPROC __glewIndexPointerEXT;
21823 GLEW_FUN_EXPORT PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT;
21824 GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT;
21825 GLEW_FUN_EXPORT PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT;
21826 
21827 GLEW_FUN_EXPORT PFNGLBINDARRAYSETEXTPROC __glewBindArraySetEXT;
21828 GLEW_FUN_EXPORT PFNGLCREATEARRAYSETEXTPROC __glewCreateArraySetExt;
21829 GLEW_FUN_EXPORT PFNGLDELETEARRAYSETSEXTPROC __glewDeleteArraySetsEXT;
21830 
21831 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT;
21832 GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT;
21833 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT;
21834 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVEXTPROC __glewVertexAttribL1dvEXT;
21835 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DEXTPROC __glewVertexAttribL2dEXT;
21836 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVEXTPROC __glewVertexAttribL2dvEXT;
21837 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DEXTPROC __glewVertexAttribL3dEXT;
21838 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVEXTPROC __glewVertexAttribL3dvEXT;
21839 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DEXTPROC __glewVertexAttribL4dEXT;
21840 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVEXTPROC __glewVertexAttribL4dvEXT;
21841 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTEREXTPROC __glewVertexAttribLPointerEXT;
21842 
21843 GLEW_FUN_EXPORT PFNGLBEGINVERTEXSHADEREXTPROC __glewBeginVertexShaderEXT;
21844 GLEW_FUN_EXPORT PFNGLBINDLIGHTPARAMETEREXTPROC __glewBindLightParameterEXT;
21845 GLEW_FUN_EXPORT PFNGLBINDMATERIALPARAMETEREXTPROC __glewBindMaterialParameterEXT;
21846 GLEW_FUN_EXPORT PFNGLBINDPARAMETEREXTPROC __glewBindParameterEXT;
21847 GLEW_FUN_EXPORT PFNGLBINDTEXGENPARAMETEREXTPROC __glewBindTexGenParameterEXT;
21848 GLEW_FUN_EXPORT PFNGLBINDTEXTUREUNITPARAMETEREXTPROC __glewBindTextureUnitParameterEXT;
21849 GLEW_FUN_EXPORT PFNGLBINDVERTEXSHADEREXTPROC __glewBindVertexShaderEXT;
21850 GLEW_FUN_EXPORT PFNGLDELETEVERTEXSHADEREXTPROC __glewDeleteVertexShaderEXT;
21851 GLEW_FUN_EXPORT PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC __glewDisableVariantClientStateEXT;
21852 GLEW_FUN_EXPORT PFNGLENABLEVARIANTCLIENTSTATEEXTPROC __glewEnableVariantClientStateEXT;
21853 GLEW_FUN_EXPORT PFNGLENDVERTEXSHADEREXTPROC __glewEndVertexShaderEXT;
21854 GLEW_FUN_EXPORT PFNGLEXTRACTCOMPONENTEXTPROC __glewExtractComponentEXT;
21855 GLEW_FUN_EXPORT PFNGLGENSYMBOLSEXTPROC __glewGenSymbolsEXT;
21856 GLEW_FUN_EXPORT PFNGLGENVERTEXSHADERSEXTPROC __glewGenVertexShadersEXT;
21857 GLEW_FUN_EXPORT PFNGLGETINVARIANTBOOLEANVEXTPROC __glewGetInvariantBooleanvEXT;
21858 GLEW_FUN_EXPORT PFNGLGETINVARIANTFLOATVEXTPROC __glewGetInvariantFloatvEXT;
21859 GLEW_FUN_EXPORT PFNGLGETINVARIANTINTEGERVEXTPROC __glewGetInvariantIntegervEXT;
21860 GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC __glewGetLocalConstantBooleanvEXT;
21861 GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTFLOATVEXTPROC __glewGetLocalConstantFloatvEXT;
21862 GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTINTEGERVEXTPROC __glewGetLocalConstantIntegervEXT;
21863 GLEW_FUN_EXPORT PFNGLGETVARIANTBOOLEANVEXTPROC __glewGetVariantBooleanvEXT;
21864 GLEW_FUN_EXPORT PFNGLGETVARIANTFLOATVEXTPROC __glewGetVariantFloatvEXT;
21865 GLEW_FUN_EXPORT PFNGLGETVARIANTINTEGERVEXTPROC __glewGetVariantIntegervEXT;
21866 GLEW_FUN_EXPORT PFNGLGETVARIANTPOINTERVEXTPROC __glewGetVariantPointervEXT;
21867 GLEW_FUN_EXPORT PFNGLINSERTCOMPONENTEXTPROC __glewInsertComponentEXT;
21868 GLEW_FUN_EXPORT PFNGLISVARIANTENABLEDEXTPROC __glewIsVariantEnabledEXT;
21869 GLEW_FUN_EXPORT PFNGLSETINVARIANTEXTPROC __glewSetInvariantEXT;
21870 GLEW_FUN_EXPORT PFNGLSETLOCALCONSTANTEXTPROC __glewSetLocalConstantEXT;
21871 GLEW_FUN_EXPORT PFNGLSHADEROP1EXTPROC __glewShaderOp1EXT;
21872 GLEW_FUN_EXPORT PFNGLSHADEROP2EXTPROC __glewShaderOp2EXT;
21873 GLEW_FUN_EXPORT PFNGLSHADEROP3EXTPROC __glewShaderOp3EXT;
21874 GLEW_FUN_EXPORT PFNGLSWIZZLEEXTPROC __glewSwizzleEXT;
21875 GLEW_FUN_EXPORT PFNGLVARIANTPOINTEREXTPROC __glewVariantPointerEXT;
21876 GLEW_FUN_EXPORT PFNGLVARIANTBVEXTPROC __glewVariantbvEXT;
21877 GLEW_FUN_EXPORT PFNGLVARIANTDVEXTPROC __glewVariantdvEXT;
21878 GLEW_FUN_EXPORT PFNGLVARIANTFVEXTPROC __glewVariantfvEXT;
21879 GLEW_FUN_EXPORT PFNGLVARIANTIVEXTPROC __glewVariantivEXT;
21880 GLEW_FUN_EXPORT PFNGLVARIANTSVEXTPROC __glewVariantsvEXT;
21881 GLEW_FUN_EXPORT PFNGLVARIANTUBVEXTPROC __glewVariantubvEXT;
21882 GLEW_FUN_EXPORT PFNGLVARIANTUIVEXTPROC __glewVariantuivEXT;
21883 GLEW_FUN_EXPORT PFNGLVARIANTUSVEXTPROC __glewVariantusvEXT;
21884 GLEW_FUN_EXPORT PFNGLWRITEMASKEXTPROC __glewWriteMaskEXT;
21885 
21886 GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT;
21887 GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT;
21888 GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT;
21889 
21890 GLEW_FUN_EXPORT PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC __glewAcquireKeyedMutexWin32EXT;
21891 GLEW_FUN_EXPORT PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC __glewReleaseKeyedMutexWin32EXT;
21892 
21893 GLEW_FUN_EXPORT PFNGLWINDOWRECTANGLESEXTPROC __glewWindowRectanglesEXT;
21894 
21895 GLEW_FUN_EXPORT PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT;
21896 
21897 GLEW_FUN_EXPORT PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY;
21898 
21899 GLEW_FUN_EXPORT PFNGLSTRINGMARKERGREMEDYPROC __glewStringMarkerGREMEDY;
21900 
21901 GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC __glewGetImageTransformParameterfvHP;
21902 GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC __glewGetImageTransformParameterivHP;
21903 GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFHPPROC __glewImageTransformParameterfHP;
21904 GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFVHPPROC __glewImageTransformParameterfvHP;
21905 GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIHPPROC __glewImageTransformParameteriHP;
21906 GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIVHPPROC __glewImageTransformParameterivHP;
21907 
21908 GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWARRAYSIBMPROC __glewMultiModeDrawArraysIBM;
21909 GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWELEMENTSIBMPROC __glewMultiModeDrawElementsIBM;
21910 
21911 GLEW_FUN_EXPORT PFNGLCOLORPOINTERLISTIBMPROC __glewColorPointerListIBM;
21912 GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTERLISTIBMPROC __glewEdgeFlagPointerListIBM;
21913 GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERLISTIBMPROC __glewFogCoordPointerListIBM;
21914 GLEW_FUN_EXPORT PFNGLINDEXPOINTERLISTIBMPROC __glewIndexPointerListIBM;
21915 GLEW_FUN_EXPORT PFNGLNORMALPOINTERLISTIBMPROC __glewNormalPointerListIBM;
21916 GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointerListIBM;
21917 GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM;
21918 GLEW_FUN_EXPORT PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM;
21919 
21920 GLEW_FUN_EXPORT PFNGLMAPTEXTURE2DINTELPROC __glewMapTexture2DINTEL;
21921 GLEW_FUN_EXPORT PFNGLSYNCTEXTUREINTELPROC __glewSyncTextureINTEL;
21922 GLEW_FUN_EXPORT PFNGLUNMAPTEXTURE2DINTELPROC __glewUnmapTexture2DINTEL;
21923 
21924 GLEW_FUN_EXPORT PFNGLCOLORPOINTERVINTELPROC __glewColorPointervINTEL;
21925 GLEW_FUN_EXPORT PFNGLNORMALPOINTERVINTELPROC __glewNormalPointervINTEL;
21926 GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERVINTELPROC __glewTexCoordPointervINTEL;
21927 GLEW_FUN_EXPORT PFNGLVERTEXPOINTERVINTELPROC __glewVertexPointervINTEL;
21928 
21929 GLEW_FUN_EXPORT PFNGLBEGINPERFQUERYINTELPROC __glewBeginPerfQueryINTEL;
21930 GLEW_FUN_EXPORT PFNGLCREATEPERFQUERYINTELPROC __glewCreatePerfQueryINTEL;
21931 GLEW_FUN_EXPORT PFNGLDELETEPERFQUERYINTELPROC __glewDeletePerfQueryINTEL;
21932 GLEW_FUN_EXPORT PFNGLENDPERFQUERYINTELPROC __glewEndPerfQueryINTEL;
21933 GLEW_FUN_EXPORT PFNGLGETFIRSTPERFQUERYIDINTELPROC __glewGetFirstPerfQueryIdINTEL;
21934 GLEW_FUN_EXPORT PFNGLGETNEXTPERFQUERYIDINTELPROC __glewGetNextPerfQueryIdINTEL;
21935 GLEW_FUN_EXPORT PFNGLGETPERFCOUNTERINFOINTELPROC __glewGetPerfCounterInfoINTEL;
21936 GLEW_FUN_EXPORT PFNGLGETPERFQUERYDATAINTELPROC __glewGetPerfQueryDataINTEL;
21937 GLEW_FUN_EXPORT PFNGLGETPERFQUERYIDBYNAMEINTELPROC __glewGetPerfQueryIdByNameINTEL;
21938 GLEW_FUN_EXPORT PFNGLGETPERFQUERYINFOINTELPROC __glewGetPerfQueryInfoINTEL;
21939 
21940 GLEW_FUN_EXPORT PFNGLTEXSCISSORFUNCINTELPROC __glewTexScissorFuncINTEL;
21941 GLEW_FUN_EXPORT PFNGLTEXSCISSORINTELPROC __glewTexScissorINTEL;
21942 
21943 GLEW_FUN_EXPORT PFNGLBLENDBARRIERKHRPROC __glewBlendBarrierKHR;
21944 
21945 GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKPROC __glewDebugMessageCallback;
21946 GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLPROC __glewDebugMessageControl;
21947 GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTPROC __glewDebugMessageInsert;
21948 GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGPROC __glewGetDebugMessageLog;
21949 GLEW_FUN_EXPORT PFNGLGETOBJECTLABELPROC __glewGetObjectLabel;
21950 GLEW_FUN_EXPORT PFNGLGETOBJECTPTRLABELPROC __glewGetObjectPtrLabel;
21951 GLEW_FUN_EXPORT PFNGLOBJECTLABELPROC __glewObjectLabel;
21952 GLEW_FUN_EXPORT PFNGLOBJECTPTRLABELPROC __glewObjectPtrLabel;
21953 GLEW_FUN_EXPORT PFNGLPOPDEBUGGROUPPROC __glewPopDebugGroup;
21954 GLEW_FUN_EXPORT PFNGLPUSHDEBUGGROUPPROC __glewPushDebugGroup;
21955 
21956 GLEW_FUN_EXPORT PFNGLMAXSHADERCOMPILERTHREADSKHRPROC __glewMaxShaderCompilerThreadsKHR;
21957 
21958 GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVPROC __glewGetnUniformfv;
21959 GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVPROC __glewGetnUniformiv;
21960 GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVPROC __glewGetnUniformuiv;
21961 GLEW_FUN_EXPORT PFNGLREADNPIXELSPROC __glewReadnPixels;
21962 
21963 GLEW_FUN_EXPORT PFNGLBUFFERREGIONENABLEDPROC __glewBufferRegionEnabled;
21964 GLEW_FUN_EXPORT PFNGLDELETEBUFFERREGIONPROC __glewDeleteBufferRegion;
21965 GLEW_FUN_EXPORT PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion;
21966 GLEW_FUN_EXPORT PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion;
21967 GLEW_FUN_EXPORT PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion;
21968 
21969 GLEW_FUN_EXPORT PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA;
21970 
21971 GLEW_FUN_EXPORT PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA;
21972 GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVMESAPROC __glewWindowPos2dvMESA;
21973 GLEW_FUN_EXPORT PFNGLWINDOWPOS2FMESAPROC __glewWindowPos2fMESA;
21974 GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVMESAPROC __glewWindowPos2fvMESA;
21975 GLEW_FUN_EXPORT PFNGLWINDOWPOS2IMESAPROC __glewWindowPos2iMESA;
21976 GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVMESAPROC __glewWindowPos2ivMESA;
21977 GLEW_FUN_EXPORT PFNGLWINDOWPOS2SMESAPROC __glewWindowPos2sMESA;
21978 GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVMESAPROC __glewWindowPos2svMESA;
21979 GLEW_FUN_EXPORT PFNGLWINDOWPOS3DMESAPROC __glewWindowPos3dMESA;
21980 GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVMESAPROC __glewWindowPos3dvMESA;
21981 GLEW_FUN_EXPORT PFNGLWINDOWPOS3FMESAPROC __glewWindowPos3fMESA;
21982 GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVMESAPROC __glewWindowPos3fvMESA;
21983 GLEW_FUN_EXPORT PFNGLWINDOWPOS3IMESAPROC __glewWindowPos3iMESA;
21984 GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVMESAPROC __glewWindowPos3ivMESA;
21985 GLEW_FUN_EXPORT PFNGLWINDOWPOS3SMESAPROC __glewWindowPos3sMESA;
21986 GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVMESAPROC __glewWindowPos3svMESA;
21987 GLEW_FUN_EXPORT PFNGLWINDOWPOS4DMESAPROC __glewWindowPos4dMESA;
21988 GLEW_FUN_EXPORT PFNGLWINDOWPOS4DVMESAPROC __glewWindowPos4dvMESA;
21989 GLEW_FUN_EXPORT PFNGLWINDOWPOS4FMESAPROC __glewWindowPos4fMESA;
21990 GLEW_FUN_EXPORT PFNGLWINDOWPOS4FVMESAPROC __glewWindowPos4fvMESA;
21991 GLEW_FUN_EXPORT PFNGLWINDOWPOS4IMESAPROC __glewWindowPos4iMESA;
21992 GLEW_FUN_EXPORT PFNGLWINDOWPOS4IVMESAPROC __glewWindowPos4ivMESA;
21993 GLEW_FUN_EXPORT PFNGLWINDOWPOS4SMESAPROC __glewWindowPos4sMESA;
21994 GLEW_FUN_EXPORT PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA;
21995 
21996 GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVXPROC __glewBeginConditionalRenderNVX;
21997 GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVXPROC __glewEndConditionalRenderNVX;
21998 
21999 GLEW_FUN_EXPORT PFNGLLGPUCOPYIMAGESUBDATANVXPROC __glewLGPUCopyImageSubDataNVX;
22000 GLEW_FUN_EXPORT PFNGLLGPUINTERLOCKNVXPROC __glewLGPUInterlockNVX;
22001 GLEW_FUN_EXPORT PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC __glewLGPUNamedBufferSubDataNVX;
22002 
22003 GLEW_FUN_EXPORT PFNGLSTEREOPARAMETERFNVPROC __glewStereoParameterfNV;
22004 GLEW_FUN_EXPORT PFNGLSTEREOPARAMETERINVPROC __glewStereoParameteriNV;
22005 
22006 GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC __glewMultiDrawArraysIndirectBindlessNV;
22007 GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC __glewMultiDrawElementsIndirectBindlessNV;
22008 
22009 GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC __glewMultiDrawArraysIndirectBindlessCountNV;
22010 GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC __glewMultiDrawElementsIndirectBindlessCountNV;
22011 
22012 GLEW_FUN_EXPORT PFNGLGETIMAGEHANDLENVPROC __glewGetImageHandleNV;
22013 GLEW_FUN_EXPORT PFNGLGETTEXTUREHANDLENVPROC __glewGetTextureHandleNV;
22014 GLEW_FUN_EXPORT PFNGLGETTEXTURESAMPLERHANDLENVPROC __glewGetTextureSamplerHandleNV;
22015 GLEW_FUN_EXPORT PFNGLISIMAGEHANDLERESIDENTNVPROC __glewIsImageHandleResidentNV;
22016 GLEW_FUN_EXPORT PFNGLISTEXTUREHANDLERESIDENTNVPROC __glewIsTextureHandleResidentNV;
22017 GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC __glewMakeImageHandleNonResidentNV;
22018 GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLERESIDENTNVPROC __glewMakeImageHandleResidentNV;
22019 GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC __glewMakeTextureHandleNonResidentNV;
22020 GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLERESIDENTNVPROC __glewMakeTextureHandleResidentNV;
22021 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC __glewProgramUniformHandleui64NV;
22022 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC __glewProgramUniformHandleui64vNV;
22023 GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64NVPROC __glewUniformHandleui64NV;
22024 GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VNVPROC __glewUniformHandleui64vNV;
22025 
22026 GLEW_FUN_EXPORT PFNGLBLENDBARRIERNVPROC __glewBlendBarrierNV;
22027 GLEW_FUN_EXPORT PFNGLBLENDPARAMETERINVPROC __glewBlendParameteriNV;
22028 
22029 GLEW_FUN_EXPORT PFNGLVIEWPORTPOSITIONWSCALENVPROC __glewViewportPositionWScaleNV;
22030 
22031 GLEW_FUN_EXPORT PFNGLCALLCOMMANDLISTNVPROC __glewCallCommandListNV;
22032 GLEW_FUN_EXPORT PFNGLCOMMANDLISTSEGMENTSNVPROC __glewCommandListSegmentsNV;
22033 GLEW_FUN_EXPORT PFNGLCOMPILECOMMANDLISTNVPROC __glewCompileCommandListNV;
22034 GLEW_FUN_EXPORT PFNGLCREATECOMMANDLISTSNVPROC __glewCreateCommandListsNV;
22035 GLEW_FUN_EXPORT PFNGLCREATESTATESNVPROC __glewCreateStatesNV;
22036 GLEW_FUN_EXPORT PFNGLDELETECOMMANDLISTSNVPROC __glewDeleteCommandListsNV;
22037 GLEW_FUN_EXPORT PFNGLDELETESTATESNVPROC __glewDeleteStatesNV;
22038 GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSADDRESSNVPROC __glewDrawCommandsAddressNV;
22039 GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSNVPROC __glewDrawCommandsNV;
22040 GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC __glewDrawCommandsStatesAddressNV;
22041 GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSSTATESNVPROC __glewDrawCommandsStatesNV;
22042 GLEW_FUN_EXPORT PFNGLGETCOMMANDHEADERNVPROC __glewGetCommandHeaderNV;
22043 GLEW_FUN_EXPORT PFNGLGETSTAGEINDEXNVPROC __glewGetStageIndexNV;
22044 GLEW_FUN_EXPORT PFNGLISCOMMANDLISTNVPROC __glewIsCommandListNV;
22045 GLEW_FUN_EXPORT PFNGLISSTATENVPROC __glewIsStateNV;
22046 GLEW_FUN_EXPORT PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC __glewListDrawCommandsStatesClientNV;
22047 GLEW_FUN_EXPORT PFNGLSTATECAPTURENVPROC __glewStateCaptureNV;
22048 
22049 GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV;
22050 GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV;
22051 
22052 GLEW_FUN_EXPORT PFNGLSUBPIXELPRECISIONBIASNVPROC __glewSubpixelPrecisionBiasNV;
22053 
22054 GLEW_FUN_EXPORT PFNGLCONSERVATIVERASTERPARAMETERFNVPROC __glewConservativeRasterParameterfNV;
22055 
22056 GLEW_FUN_EXPORT PFNGLCONSERVATIVERASTERPARAMETERINVPROC __glewConservativeRasterParameteriNV;
22057 
22058 GLEW_FUN_EXPORT PFNGLCOPYBUFFERSUBDATANVPROC __glewCopyBufferSubDataNV;
22059 
22060 GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV;
22061 
22062 GLEW_FUN_EXPORT PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV;
22063 GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV;
22064 GLEW_FUN_EXPORT PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV;
22065 
22066 GLEW_FUN_EXPORT PFNGLDRAWBUFFERSNVPROC __glewDrawBuffersNV;
22067 
22068 GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDNVPROC __glewDrawArraysInstancedNV;
22069 GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDNVPROC __glewDrawElementsInstancedNV;
22070 
22071 GLEW_FUN_EXPORT PFNGLDRAWTEXTURENVPROC __glewDrawTextureNV;
22072 
22073 GLEW_FUN_EXPORT PFNGLDRAWVKIMAGENVPROC __glewDrawVkImageNV;
22074 GLEW_FUN_EXPORT PFNGLGETVKPROCADDRNVPROC __glewGetVkProcAddrNV;
22075 GLEW_FUN_EXPORT PFNGLSIGNALVKFENCENVPROC __glewSignalVkFenceNV;
22076 GLEW_FUN_EXPORT PFNGLSIGNALVKSEMAPHORENVPROC __glewSignalVkSemaphoreNV;
22077 GLEW_FUN_EXPORT PFNGLWAITVKSEMAPHORENVPROC __glewWaitVkSemaphoreNV;
22078 
22079 GLEW_FUN_EXPORT PFNGLEVALMAPSNVPROC __glewEvalMapsNV;
22080 GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV;
22081 GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV;
22082 GLEW_FUN_EXPORT PFNGLGETMAPCONTROLPOINTSNVPROC __glewGetMapControlPointsNV;
22083 GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERFVNVPROC __glewGetMapParameterfvNV;
22084 GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERIVNVPROC __glewGetMapParameterivNV;
22085 GLEW_FUN_EXPORT PFNGLMAPCONTROLPOINTSNVPROC __glewMapControlPointsNV;
22086 GLEW_FUN_EXPORT PFNGLMAPPARAMETERFVNVPROC __glewMapParameterfvNV;
22087 GLEW_FUN_EXPORT PFNGLMAPPARAMETERIVNVPROC __glewMapParameterivNV;
22088 
22089 GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVNVPROC __glewGetMultisamplefvNV;
22090 GLEW_FUN_EXPORT PFNGLSAMPLEMASKINDEXEDNVPROC __glewSampleMaskIndexedNV;
22091 GLEW_FUN_EXPORT PFNGLTEXRENDERBUFFERNVPROC __glewTexRenderbufferNV;
22092 
22093 GLEW_FUN_EXPORT PFNGLDELETEFENCESNVPROC __glewDeleteFencesNV;
22094 GLEW_FUN_EXPORT PFNGLFINISHFENCENVPROC __glewFinishFenceNV;
22095 GLEW_FUN_EXPORT PFNGLGENFENCESNVPROC __glewGenFencesNV;
22096 GLEW_FUN_EXPORT PFNGLGETFENCEIVNVPROC __glewGetFenceivNV;
22097 GLEW_FUN_EXPORT PFNGLISFENCENVPROC __glewIsFenceNV;
22098 GLEW_FUN_EXPORT PFNGLSETFENCENVPROC __glewSetFenceNV;
22099 GLEW_FUN_EXPORT PFNGLTESTFENCENVPROC __glewTestFenceNV;
22100 
22101 GLEW_FUN_EXPORT PFNGLFRAGMENTCOVERAGECOLORNVPROC __glewFragmentCoverageColorNV;
22102 
22103 GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC __glewGetProgramNamedParameterdvNV;
22104 GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC __glewGetProgramNamedParameterfvNV;
22105 GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DNVPROC __glewProgramNamedParameter4dNV;
22106 GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4dvNV;
22107 GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV;
22108 GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV;
22109 
22110 GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERNVPROC __glewBlitFramebufferNV;
22111 
22112 GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC __glewRenderbufferStorageMultisampleNV;
22113 
22114 GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV;
22115 
22116 GLEW_FUN_EXPORT PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV;
22117 
22118 GLEW_FUN_EXPORT PFNGLMULTICASTBARRIERNVPROC __glewMulticastBarrierNV;
22119 GLEW_FUN_EXPORT PFNGLMULTICASTBLITFRAMEBUFFERNVPROC __glewMulticastBlitFramebufferNV;
22120 GLEW_FUN_EXPORT PFNGLMULTICASTBUFFERSUBDATANVPROC __glewMulticastBufferSubDataNV;
22121 GLEW_FUN_EXPORT PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC __glewMulticastCopyBufferSubDataNV;
22122 GLEW_FUN_EXPORT PFNGLMULTICASTCOPYIMAGESUBDATANVPROC __glewMulticastCopyImageSubDataNV;
22123 GLEW_FUN_EXPORT PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewMulticastFramebufferSampleLocationsfvNV;
22124 GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC __glewMulticastGetQueryObjecti64vNV;
22125 GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTIVNVPROC __glewMulticastGetQueryObjectivNV;
22126 GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC __glewMulticastGetQueryObjectui64vNV;
22127 GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC __glewMulticastGetQueryObjectuivNV;
22128 GLEW_FUN_EXPORT PFNGLMULTICASTWAITSYNCNVPROC __glewMulticastWaitSyncNV;
22129 GLEW_FUN_EXPORT PFNGLRENDERGPUMASKNVPROC __glewRenderGpuMaskNV;
22130 
22131 GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV;
22132 GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV;
22133 GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV;
22134 GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UIVNVPROC __glewProgramEnvParameterI4uivNV;
22135 GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4IVNVPROC __glewProgramEnvParametersI4ivNV;
22136 GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC __glewProgramEnvParametersI4uivNV;
22137 GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4INVPROC __glewProgramLocalParameterI4iNV;
22138 GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC __glewProgramLocalParameterI4ivNV;
22139 GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UINVPROC __glewProgramLocalParameterI4uiNV;
22140 GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC __glewProgramLocalParameterI4uivNV;
22141 GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC __glewProgramLocalParametersI4ivNV;
22142 GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC __glewProgramLocalParametersI4uivNV;
22143 
22144 GLEW_FUN_EXPORT PFNGLGETUNIFORMI64VNVPROC __glewGetUniformi64vNV;
22145 GLEW_FUN_EXPORT PFNGLGETUNIFORMUI64VNVPROC __glewGetUniformui64vNV;
22146 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64NVPROC __glewProgramUniform1i64NV;
22147 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64VNVPROC __glewProgramUniform1i64vNV;
22148 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64NVPROC __glewProgramUniform1ui64NV;
22149 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64VNVPROC __glewProgramUniform1ui64vNV;
22150 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64NVPROC __glewProgramUniform2i64NV;
22151 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64VNVPROC __glewProgramUniform2i64vNV;
22152 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64NVPROC __glewProgramUniform2ui64NV;
22153 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64VNVPROC __glewProgramUniform2ui64vNV;
22154 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64NVPROC __glewProgramUniform3i64NV;
22155 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64VNVPROC __glewProgramUniform3i64vNV;
22156 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64NVPROC __glewProgramUniform3ui64NV;
22157 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64VNVPROC __glewProgramUniform3ui64vNV;
22158 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64NVPROC __glewProgramUniform4i64NV;
22159 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64VNVPROC __glewProgramUniform4i64vNV;
22160 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64NVPROC __glewProgramUniform4ui64NV;
22161 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64VNVPROC __glewProgramUniform4ui64vNV;
22162 GLEW_FUN_EXPORT PFNGLUNIFORM1I64NVPROC __glewUniform1i64NV;
22163 GLEW_FUN_EXPORT PFNGLUNIFORM1I64VNVPROC __glewUniform1i64vNV;
22164 GLEW_FUN_EXPORT PFNGLUNIFORM1UI64NVPROC __glewUniform1ui64NV;
22165 GLEW_FUN_EXPORT PFNGLUNIFORM1UI64VNVPROC __glewUniform1ui64vNV;
22166 GLEW_FUN_EXPORT PFNGLUNIFORM2I64NVPROC __glewUniform2i64NV;
22167 GLEW_FUN_EXPORT PFNGLUNIFORM2I64VNVPROC __glewUniform2i64vNV;
22168 GLEW_FUN_EXPORT PFNGLUNIFORM2UI64NVPROC __glewUniform2ui64NV;
22169 GLEW_FUN_EXPORT PFNGLUNIFORM2UI64VNVPROC __glewUniform2ui64vNV;
22170 GLEW_FUN_EXPORT PFNGLUNIFORM3I64NVPROC __glewUniform3i64NV;
22171 GLEW_FUN_EXPORT PFNGLUNIFORM3I64VNVPROC __glewUniform3i64vNV;
22172 GLEW_FUN_EXPORT PFNGLUNIFORM3UI64NVPROC __glewUniform3ui64NV;
22173 GLEW_FUN_EXPORT PFNGLUNIFORM3UI64VNVPROC __glewUniform3ui64vNV;
22174 GLEW_FUN_EXPORT PFNGLUNIFORM4I64NVPROC __glewUniform4i64NV;
22175 GLEW_FUN_EXPORT PFNGLUNIFORM4I64VNVPROC __glewUniform4i64vNV;
22176 GLEW_FUN_EXPORT PFNGLUNIFORM4UI64NVPROC __glewUniform4ui64NV;
22177 GLEW_FUN_EXPORT PFNGLUNIFORM4UI64VNVPROC __glewUniform4ui64vNV;
22178 
22179 GLEW_FUN_EXPORT PFNGLCOLOR3HNVPROC __glewColor3hNV;
22180 GLEW_FUN_EXPORT PFNGLCOLOR3HVNVPROC __glewColor3hvNV;
22181 GLEW_FUN_EXPORT PFNGLCOLOR4HNVPROC __glewColor4hNV;
22182 GLEW_FUN_EXPORT PFNGLCOLOR4HVNVPROC __glewColor4hvNV;
22183 GLEW_FUN_EXPORT PFNGLFOGCOORDHNVPROC __glewFogCoordhNV;
22184 GLEW_FUN_EXPORT PFNGLFOGCOORDHVNVPROC __glewFogCoordhvNV;
22185 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HNVPROC __glewMultiTexCoord1hNV;
22186 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HVNVPROC __glewMultiTexCoord1hvNV;
22187 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HNVPROC __glewMultiTexCoord2hNV;
22188 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HVNVPROC __glewMultiTexCoord2hvNV;
22189 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HNVPROC __glewMultiTexCoord3hNV;
22190 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HVNVPROC __glewMultiTexCoord3hvNV;
22191 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HNVPROC __glewMultiTexCoord4hNV;
22192 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HVNVPROC __glewMultiTexCoord4hvNV;
22193 GLEW_FUN_EXPORT PFNGLNORMAL3HNVPROC __glewNormal3hNV;
22194 GLEW_FUN_EXPORT PFNGLNORMAL3HVNVPROC __glewNormal3hvNV;
22195 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HNVPROC __glewSecondaryColor3hNV;
22196 GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HVNVPROC __glewSecondaryColor3hvNV;
22197 GLEW_FUN_EXPORT PFNGLTEXCOORD1HNVPROC __glewTexCoord1hNV;
22198 GLEW_FUN_EXPORT PFNGLTEXCOORD1HVNVPROC __glewTexCoord1hvNV;
22199 GLEW_FUN_EXPORT PFNGLTEXCOORD2HNVPROC __glewTexCoord2hNV;
22200 GLEW_FUN_EXPORT PFNGLTEXCOORD2HVNVPROC __glewTexCoord2hvNV;
22201 GLEW_FUN_EXPORT PFNGLTEXCOORD3HNVPROC __glewTexCoord3hNV;
22202 GLEW_FUN_EXPORT PFNGLTEXCOORD3HVNVPROC __glewTexCoord3hvNV;
22203 GLEW_FUN_EXPORT PFNGLTEXCOORD4HNVPROC __glewTexCoord4hNV;
22204 GLEW_FUN_EXPORT PFNGLTEXCOORD4HVNVPROC __glewTexCoord4hvNV;
22205 GLEW_FUN_EXPORT PFNGLVERTEX2HNVPROC __glewVertex2hNV;
22206 GLEW_FUN_EXPORT PFNGLVERTEX2HVNVPROC __glewVertex2hvNV;
22207 GLEW_FUN_EXPORT PFNGLVERTEX3HNVPROC __glewVertex3hNV;
22208 GLEW_FUN_EXPORT PFNGLVERTEX3HVNVPROC __glewVertex3hvNV;
22209 GLEW_FUN_EXPORT PFNGLVERTEX4HNVPROC __glewVertex4hNV;
22210 GLEW_FUN_EXPORT PFNGLVERTEX4HVNVPROC __glewVertex4hvNV;
22211 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HNVPROC __glewVertexAttrib1hNV;
22212 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HVNVPROC __glewVertexAttrib1hvNV;
22213 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HNVPROC __glewVertexAttrib2hNV;
22214 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HVNVPROC __glewVertexAttrib2hvNV;
22215 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HNVPROC __glewVertexAttrib3hNV;
22216 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HVNVPROC __glewVertexAttrib3hvNV;
22217 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HNVPROC __glewVertexAttrib4hNV;
22218 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HVNVPROC __glewVertexAttrib4hvNV;
22219 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1HVNVPROC __glewVertexAttribs1hvNV;
22220 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2HVNVPROC __glewVertexAttribs2hvNV;
22221 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3HVNVPROC __glewVertexAttribs3hvNV;
22222 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV;
22223 GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV;
22224 GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV;
22225 
22226 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORNVPROC __glewVertexAttribDivisorNV;
22227 
22228 GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATSAMPLEIVNVPROC __glewGetInternalformatSampleivNV;
22229 
22230 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3FVNVPROC __glewUniformMatrix2x3fvNV;
22231 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4FVNVPROC __glewUniformMatrix2x4fvNV;
22232 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2FVNVPROC __glewUniformMatrix3x2fvNV;
22233 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4FVNVPROC __glewUniformMatrix3x4fvNV;
22234 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2FVNVPROC __glewUniformMatrix4x2fvNV;
22235 GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3FVNVPROC __glewUniformMatrix4x3fvNV;
22236 
22237 GLEW_FUN_EXPORT PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV;
22238 GLEW_FUN_EXPORT PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV;
22239 GLEW_FUN_EXPORT PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV;
22240 GLEW_FUN_EXPORT PFNGLGENOCCLUSIONQUERIESNVPROC __glewGenOcclusionQueriesNV;
22241 GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYIVNVPROC __glewGetOcclusionQueryivNV;
22242 GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYUIVNVPROC __glewGetOcclusionQueryuivNV;
22243 GLEW_FUN_EXPORT PFNGLISOCCLUSIONQUERYNVPROC __glewIsOcclusionQueryNV;
22244 
22245 GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC __glewProgramBufferParametersIivNV;
22246 GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC __glewProgramBufferParametersIuivNV;
22247 GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC __glewProgramBufferParametersfvNV;
22248 
22249 GLEW_FUN_EXPORT PFNGLCOPYPATHNVPROC __glewCopyPathNV;
22250 GLEW_FUN_EXPORT PFNGLCOVERFILLPATHINSTANCEDNVPROC __glewCoverFillPathInstancedNV;
22251 GLEW_FUN_EXPORT PFNGLCOVERFILLPATHNVPROC __glewCoverFillPathNV;
22252 GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHINSTANCEDNVPROC __glewCoverStrokePathInstancedNV;
22253 GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHNVPROC __glewCoverStrokePathNV;
22254 GLEW_FUN_EXPORT PFNGLDELETEPATHSNVPROC __glewDeletePathsNV;
22255 GLEW_FUN_EXPORT PFNGLGENPATHSNVPROC __glewGenPathsNV;
22256 GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENFVNVPROC __glewGetPathColorGenfvNV;
22257 GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENIVNVPROC __glewGetPathColorGenivNV;
22258 GLEW_FUN_EXPORT PFNGLGETPATHCOMMANDSNVPROC __glewGetPathCommandsNV;
22259 GLEW_FUN_EXPORT PFNGLGETPATHCOORDSNVPROC __glewGetPathCoordsNV;
22260 GLEW_FUN_EXPORT PFNGLGETPATHDASHARRAYNVPROC __glewGetPathDashArrayNV;
22261 GLEW_FUN_EXPORT PFNGLGETPATHLENGTHNVPROC __glewGetPathLengthNV;
22262 GLEW_FUN_EXPORT PFNGLGETPATHMETRICRANGENVPROC __glewGetPathMetricRangeNV;
22263 GLEW_FUN_EXPORT PFNGLGETPATHMETRICSNVPROC __glewGetPathMetricsNV;
22264 GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERFVNVPROC __glewGetPathParameterfvNV;
22265 GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERIVNVPROC __glewGetPathParameterivNV;
22266 GLEW_FUN_EXPORT PFNGLGETPATHSPACINGNVPROC __glewGetPathSpacingNV;
22267 GLEW_FUN_EXPORT PFNGLGETPATHTEXGENFVNVPROC __glewGetPathTexGenfvNV;
22268 GLEW_FUN_EXPORT PFNGLGETPATHTEXGENIVNVPROC __glewGetPathTexGenivNV;
22269 GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEFVNVPROC __glewGetProgramResourcefvNV;
22270 GLEW_FUN_EXPORT PFNGLINTERPOLATEPATHSNVPROC __glewInterpolatePathsNV;
22271 GLEW_FUN_EXPORT PFNGLISPATHNVPROC __glewIsPathNV;
22272 GLEW_FUN_EXPORT PFNGLISPOINTINFILLPATHNVPROC __glewIsPointInFillPathNV;
22273 GLEW_FUN_EXPORT PFNGLISPOINTINSTROKEPATHNVPROC __glewIsPointInStrokePathNV;
22274 GLEW_FUN_EXPORT PFNGLMATRIXLOAD3X2FNVPROC __glewMatrixLoad3x2fNV;
22275 GLEW_FUN_EXPORT PFNGLMATRIXLOAD3X3FNVPROC __glewMatrixLoad3x3fNV;
22276 GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC __glewMatrixLoadTranspose3x3fNV;
22277 GLEW_FUN_EXPORT PFNGLMATRIXMULT3X2FNVPROC __glewMatrixMult3x2fNV;
22278 GLEW_FUN_EXPORT PFNGLMATRIXMULT3X3FNVPROC __glewMatrixMult3x3fNV;
22279 GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC __glewMatrixMultTranspose3x3fNV;
22280 GLEW_FUN_EXPORT PFNGLPATHCOLORGENNVPROC __glewPathColorGenNV;
22281 GLEW_FUN_EXPORT PFNGLPATHCOMMANDSNVPROC __glewPathCommandsNV;
22282 GLEW_FUN_EXPORT PFNGLPATHCOORDSNVPROC __glewPathCoordsNV;
22283 GLEW_FUN_EXPORT PFNGLPATHCOVERDEPTHFUNCNVPROC __glewPathCoverDepthFuncNV;
22284 GLEW_FUN_EXPORT PFNGLPATHDASHARRAYNVPROC __glewPathDashArrayNV;
22285 GLEW_FUN_EXPORT PFNGLPATHFOGGENNVPROC __glewPathFogGenNV;
22286 GLEW_FUN_EXPORT PFNGLPATHGLYPHINDEXARRAYNVPROC __glewPathGlyphIndexArrayNV;
22287 GLEW_FUN_EXPORT PFNGLPATHGLYPHINDEXRANGENVPROC __glewPathGlyphIndexRangeNV;
22288 GLEW_FUN_EXPORT PFNGLPATHGLYPHRANGENVPROC __glewPathGlyphRangeNV;
22289 GLEW_FUN_EXPORT PFNGLPATHGLYPHSNVPROC __glewPathGlyphsNV;
22290 GLEW_FUN_EXPORT PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC __glewPathMemoryGlyphIndexArrayNV;
22291 GLEW_FUN_EXPORT PFNGLPATHPARAMETERFNVPROC __glewPathParameterfNV;
22292 GLEW_FUN_EXPORT PFNGLPATHPARAMETERFVNVPROC __glewPathParameterfvNV;
22293 GLEW_FUN_EXPORT PFNGLPATHPARAMETERINVPROC __glewPathParameteriNV;
22294 GLEW_FUN_EXPORT PFNGLPATHPARAMETERIVNVPROC __glewPathParameterivNV;
22295 GLEW_FUN_EXPORT PFNGLPATHSTENCILDEPTHOFFSETNVPROC __glewPathStencilDepthOffsetNV;
22296 GLEW_FUN_EXPORT PFNGLPATHSTENCILFUNCNVPROC __glewPathStencilFuncNV;
22297 GLEW_FUN_EXPORT PFNGLPATHSTRINGNVPROC __glewPathStringNV;
22298 GLEW_FUN_EXPORT PFNGLPATHSUBCOMMANDSNVPROC __glewPathSubCommandsNV;
22299 GLEW_FUN_EXPORT PFNGLPATHSUBCOORDSNVPROC __glewPathSubCoordsNV;
22300 GLEW_FUN_EXPORT PFNGLPATHTEXGENNVPROC __glewPathTexGenNV;
22301 GLEW_FUN_EXPORT PFNGLPOINTALONGPATHNVPROC __glewPointAlongPathNV;
22302 GLEW_FUN_EXPORT PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC __glewProgramPathFragmentInputGenNV;
22303 GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHINSTANCEDNVPROC __glewStencilFillPathInstancedNV;
22304 GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHNVPROC __glewStencilFillPathNV;
22305 GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC __glewStencilStrokePathInstancedNV;
22306 GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHNVPROC __glewStencilStrokePathNV;
22307 GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC __glewStencilThenCoverFillPathInstancedNV;
22308 GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERFILLPATHNVPROC __glewStencilThenCoverFillPathNV;
22309 GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC __glewStencilThenCoverStrokePathInstancedNV;
22310 GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC __glewStencilThenCoverStrokePathNV;
22311 GLEW_FUN_EXPORT PFNGLTRANSFORMPATHNVPROC __glewTransformPathNV;
22312 GLEW_FUN_EXPORT PFNGLWEIGHTPATHSNVPROC __glewWeightPathsNV;
22313 
22314 GLEW_FUN_EXPORT PFNGLFLUSHPIXELDATARANGENVPROC __glewFlushPixelDataRangeNV;
22315 GLEW_FUN_EXPORT PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV;
22316 
22317 GLEW_FUN_EXPORT PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV;
22318 GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV;
22319 
22320 GLEW_FUN_EXPORT PFNGLPOLYGONMODENVPROC __glewPolygonModeNV;
22321 
22322 GLEW_FUN_EXPORT PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV;
22323 GLEW_FUN_EXPORT PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV;
22324 GLEW_FUN_EXPORT PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV;
22325 GLEW_FUN_EXPORT PFNGLGETVIDEOUIVNVPROC __glewGetVideouivNV;
22326 GLEW_FUN_EXPORT PFNGLPRESENTFRAMEDUALFILLNVPROC __glewPresentFrameDualFillNV;
22327 GLEW_FUN_EXPORT PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV;
22328 
22329 GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV;
22330 GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV;
22331 
22332 GLEW_FUN_EXPORT PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV;
22333 GLEW_FUN_EXPORT PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV;
22334 GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV;
22335 GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFVNVPROC __glewCombinerParameterfvNV;
22336 GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERINVPROC __glewCombinerParameteriNV;
22337 GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERIVNVPROC __glewCombinerParameterivNV;
22338 GLEW_FUN_EXPORT PFNGLFINALCOMBINERINPUTNVPROC __glewFinalCombinerInputNV;
22339 GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC __glewGetCombinerInputParameterfvNV;
22340 GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC __glewGetCombinerInputParameterivNV;
22341 GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC __glewGetCombinerOutputParameterfvNV;
22342 GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC __glewGetCombinerOutputParameterivNV;
22343 GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC __glewGetFinalCombinerInputParameterfvNV;
22344 GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC __glewGetFinalCombinerInputParameterivNV;
22345 
22346 GLEW_FUN_EXPORT PFNGLCOMBINERSTAGEPARAMETERFVNVPROC __glewCombinerStageParameterfvNV;
22347 GLEW_FUN_EXPORT PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStageParameterfvNV;
22348 
22349 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewFramebufferSampleLocationsfvNV;
22350 GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewNamedFramebufferSampleLocationsfvNV;
22351 
22352 GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV;
22353 GLEW_FUN_EXPORT PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV;
22354 GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC __glewGetNamedBufferParameterui64vNV;
22355 GLEW_FUN_EXPORT PFNGLISBUFFERRESIDENTNVPROC __glewIsBufferResidentNV;
22356 GLEW_FUN_EXPORT PFNGLISNAMEDBUFFERRESIDENTNVPROC __glewIsNamedBufferResidentNV;
22357 GLEW_FUN_EXPORT PFNGLMAKEBUFFERNONRESIDENTNVPROC __glewMakeBufferNonResidentNV;
22358 GLEW_FUN_EXPORT PFNGLMAKEBUFFERRESIDENTNVPROC __glewMakeBufferResidentNV;
22359 GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC __glewMakeNamedBufferNonResidentNV;
22360 GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERRESIDENTNVPROC __glewMakeNamedBufferResidentNV;
22361 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64NVPROC __glewProgramUniformui64NV;
22362 GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV;
22363 GLEW_FUN_EXPORT PFNGLUNIFORMUI64NVPROC __glewUniformui64NV;
22364 GLEW_FUN_EXPORT PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV;
22365 
22366 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DNVPROC __glewCompressedTexImage3DNV;
22367 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC __glewCompressedTexSubImage3DNV;
22368 GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DNVPROC __glewCopyTexSubImage3DNV;
22369 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERNVPROC __glewFramebufferTextureLayerNV;
22370 GLEW_FUN_EXPORT PFNGLTEXIMAGE3DNVPROC __glewTexImage3DNV;
22371 GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DNVPROC __glewTexSubImage3DNV;
22372 
22373 GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV;
22374 
22375 GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV;
22376 GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTexImage3DMultisampleCoverageNV;
22377 GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTextureImage2DMultisampleCoverageNV;
22378 GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC __glewTextureImage2DMultisampleNV;
22379 GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTextureImage3DMultisampleCoverageNV;
22380 GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC __glewTextureImage3DMultisampleNV;
22381 
22382 GLEW_FUN_EXPORT PFNGLACTIVEVARYINGNVPROC __glewActiveVaryingNV;
22383 GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKNVPROC __glewBeginTransformFeedbackNV;
22384 GLEW_FUN_EXPORT PFNGLBINDBUFFERBASENVPROC __glewBindBufferBaseNV;
22385 GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETNVPROC __glewBindBufferOffsetNV;
22386 GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGENVPROC __glewBindBufferRangeNV;
22387 GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKNVPROC __glewEndTransformFeedbackNV;
22388 GLEW_FUN_EXPORT PFNGLGETACTIVEVARYINGNVPROC __glewGetActiveVaryingNV;
22389 GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC __glewGetTransformFeedbackVaryingNV;
22390 GLEW_FUN_EXPORT PFNGLGETVARYINGLOCATIONNVPROC __glewGetVaryingLocationNV;
22391 GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC __glewTransformFeedbackAttribsNV;
22392 GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC __glewTransformFeedbackVaryingsNV;
22393 
22394 GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKNVPROC __glewBindTransformFeedbackNV;
22395 GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSNVPROC __glewDeleteTransformFeedbacksNV;
22396 GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKNVPROC __glewDrawTransformFeedbackNV;
22397 GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSNVPROC __glewGenTransformFeedbacksNV;
22398 GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKNVPROC __glewIsTransformFeedbackNV;
22399 GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKNVPROC __glewPauseTransformFeedbackNV;
22400 GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKNVPROC __glewResumeTransformFeedbackNV;
22401 
22402 GLEW_FUN_EXPORT PFNGLVDPAUFININVPROC __glewVDPAUFiniNV;
22403 GLEW_FUN_EXPORT PFNGLVDPAUGETSURFACEIVNVPROC __glewVDPAUGetSurfaceivNV;
22404 GLEW_FUN_EXPORT PFNGLVDPAUINITNVPROC __glewVDPAUInitNV;
22405 GLEW_FUN_EXPORT PFNGLVDPAUISSURFACENVPROC __glewVDPAUIsSurfaceNV;
22406 GLEW_FUN_EXPORT PFNGLVDPAUMAPSURFACESNVPROC __glewVDPAUMapSurfacesNV;
22407 GLEW_FUN_EXPORT PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC __glewVDPAURegisterOutputSurfaceNV;
22408 GLEW_FUN_EXPORT PFNGLVDPAUREGISTERVIDEOSURFACENVPROC __glewVDPAURegisterVideoSurfaceNV;
22409 GLEW_FUN_EXPORT PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV;
22410 GLEW_FUN_EXPORT PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV;
22411 GLEW_FUN_EXPORT PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV;
22412 
22413 GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV;
22414 GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV;
22415 
22416 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLI64VNVPROC __glewGetVertexAttribLi64vNV;
22417 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLUI64VNVPROC __glewGetVertexAttribLui64vNV;
22418 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64NVPROC __glewVertexAttribL1i64NV;
22419 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64VNVPROC __glewVertexAttribL1i64vNV;
22420 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64NVPROC __glewVertexAttribL1ui64NV;
22421 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64VNVPROC __glewVertexAttribL1ui64vNV;
22422 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64NVPROC __glewVertexAttribL2i64NV;
22423 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64VNVPROC __glewVertexAttribL2i64vNV;
22424 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64NVPROC __glewVertexAttribL2ui64NV;
22425 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64VNVPROC __glewVertexAttribL2ui64vNV;
22426 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64NVPROC __glewVertexAttribL3i64NV;
22427 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64VNVPROC __glewVertexAttribL3i64vNV;
22428 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64NVPROC __glewVertexAttribL3ui64NV;
22429 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64VNVPROC __glewVertexAttribL3ui64vNV;
22430 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64NVPROC __glewVertexAttribL4i64NV;
22431 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64VNVPROC __glewVertexAttribL4i64vNV;
22432 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64NVPROC __glewVertexAttribL4ui64NV;
22433 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64VNVPROC __glewVertexAttribL4ui64vNV;
22434 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATNVPROC __glewVertexAttribLFormatNV;
22435 
22436 GLEW_FUN_EXPORT PFNGLBUFFERADDRESSRANGENVPROC __glewBufferAddressRangeNV;
22437 GLEW_FUN_EXPORT PFNGLCOLORFORMATNVPROC __glewColorFormatNV;
22438 GLEW_FUN_EXPORT PFNGLEDGEFLAGFORMATNVPROC __glewEdgeFlagFormatNV;
22439 GLEW_FUN_EXPORT PFNGLFOGCOORDFORMATNVPROC __glewFogCoordFormatNV;
22440 GLEW_FUN_EXPORT PFNGLGETINTEGERUI64I_VNVPROC __glewGetIntegerui64i_vNV;
22441 GLEW_FUN_EXPORT PFNGLINDEXFORMATNVPROC __glewIndexFormatNV;
22442 GLEW_FUN_EXPORT PFNGLNORMALFORMATNVPROC __glewNormalFormatNV;
22443 GLEW_FUN_EXPORT PFNGLSECONDARYCOLORFORMATNVPROC __glewSecondaryColorFormatNV;
22444 GLEW_FUN_EXPORT PFNGLTEXCOORDFORMATNVPROC __glewTexCoordFormatNV;
22445 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATNVPROC __glewVertexAttribFormatNV;
22446 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATNVPROC __glewVertexAttribIFormatNV;
22447 GLEW_FUN_EXPORT PFNGLVERTEXFORMATNVPROC __glewVertexFormatNV;
22448 
22449 GLEW_FUN_EXPORT PFNGLAREPROGRAMSRESIDENTNVPROC __glewAreProgramsResidentNV;
22450 GLEW_FUN_EXPORT PFNGLBINDPROGRAMNVPROC __glewBindProgramNV;
22451 GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSNVPROC __glewDeleteProgramsNV;
22452 GLEW_FUN_EXPORT PFNGLEXECUTEPROGRAMNVPROC __glewExecuteProgramNV;
22453 GLEW_FUN_EXPORT PFNGLGENPROGRAMSNVPROC __glewGenProgramsNV;
22454 GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERDVNVPROC __glewGetProgramParameterdvNV;
22455 GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERFVNVPROC __glewGetProgramParameterfvNV;
22456 GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGNVPROC __glewGetProgramStringNV;
22457 GLEW_FUN_EXPORT PFNGLGETPROGRAMIVNVPROC __glewGetProgramivNV;
22458 GLEW_FUN_EXPORT PFNGLGETTRACKMATRIXIVNVPROC __glewGetTrackMatrixivNV;
22459 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVNVPROC __glewGetVertexAttribPointervNV;
22460 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVNVPROC __glewGetVertexAttribdvNV;
22461 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVNVPROC __glewGetVertexAttribfvNV;
22462 GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVNVPROC __glewGetVertexAttribivNV;
22463 GLEW_FUN_EXPORT PFNGLISPROGRAMNVPROC __glewIsProgramNV;
22464 GLEW_FUN_EXPORT PFNGLLOADPROGRAMNVPROC __glewLoadProgramNV;
22465 GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DNVPROC __glewProgramParameter4dNV;
22466 GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DVNVPROC __glewProgramParameter4dvNV;
22467 GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FNVPROC __glewProgramParameter4fNV;
22468 GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FVNVPROC __glewProgramParameter4fvNV;
22469 GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4DVNVPROC __glewProgramParameters4dvNV;
22470 GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4FVNVPROC __glewProgramParameters4fvNV;
22471 GLEW_FUN_EXPORT PFNGLREQUESTRESIDENTPROGRAMSNVPROC __glewRequestResidentProgramsNV;
22472 GLEW_FUN_EXPORT PFNGLTRACKMATRIXNVPROC __glewTrackMatrixNV;
22473 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DNVPROC __glewVertexAttrib1dNV;
22474 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVNVPROC __glewVertexAttrib1dvNV;
22475 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FNVPROC __glewVertexAttrib1fNV;
22476 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVNVPROC __glewVertexAttrib1fvNV;
22477 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SNVPROC __glewVertexAttrib1sNV;
22478 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVNVPROC __glewVertexAttrib1svNV;
22479 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DNVPROC __glewVertexAttrib2dNV;
22480 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVNVPROC __glewVertexAttrib2dvNV;
22481 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FNVPROC __glewVertexAttrib2fNV;
22482 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVNVPROC __glewVertexAttrib2fvNV;
22483 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SNVPROC __glewVertexAttrib2sNV;
22484 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVNVPROC __glewVertexAttrib2svNV;
22485 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DNVPROC __glewVertexAttrib3dNV;
22486 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVNVPROC __glewVertexAttrib3dvNV;
22487 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FNVPROC __glewVertexAttrib3fNV;
22488 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVNVPROC __glewVertexAttrib3fvNV;
22489 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SNVPROC __glewVertexAttrib3sNV;
22490 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVNVPROC __glewVertexAttrib3svNV;
22491 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DNVPROC __glewVertexAttrib4dNV;
22492 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVNVPROC __glewVertexAttrib4dvNV;
22493 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FNVPROC __glewVertexAttrib4fNV;
22494 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVNVPROC __glewVertexAttrib4fvNV;
22495 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SNVPROC __glewVertexAttrib4sNV;
22496 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVNVPROC __glewVertexAttrib4svNV;
22497 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBNVPROC __glewVertexAttrib4ubNV;
22498 GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVNVPROC __glewVertexAttrib4ubvNV;
22499 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERNVPROC __glewVertexAttribPointerNV;
22500 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1DVNVPROC __glewVertexAttribs1dvNV;
22501 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1FVNVPROC __glewVertexAttribs1fvNV;
22502 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1SVNVPROC __glewVertexAttribs1svNV;
22503 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2DVNVPROC __glewVertexAttribs2dvNV;
22504 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2FVNVPROC __glewVertexAttribs2fvNV;
22505 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2SVNVPROC __glewVertexAttribs2svNV;
22506 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3DVNVPROC __glewVertexAttribs3dvNV;
22507 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3FVNVPROC __glewVertexAttribs3fvNV;
22508 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3SVNVPROC __glewVertexAttribs3svNV;
22509 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4DVNVPROC __glewVertexAttribs4dvNV;
22510 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4FVNVPROC __glewVertexAttribs4fvNV;
22511 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4SVNVPROC __glewVertexAttribs4svNV;
22512 GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4UBVNVPROC __glewVertexAttribs4ubvNV;
22513 
22514 GLEW_FUN_EXPORT PFNGLBEGINVIDEOCAPTURENVPROC __glewBeginVideoCaptureNV;
22515 GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC __glewBindVideoCaptureStreamBufferNV;
22516 GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC __glewBindVideoCaptureStreamTextureNV;
22517 GLEW_FUN_EXPORT PFNGLENDVIDEOCAPTURENVPROC __glewEndVideoCaptureNV;
22518 GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMDVNVPROC __glewGetVideoCaptureStreamdvNV;
22519 GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMFVNVPROC __glewGetVideoCaptureStreamfvNV;
22520 GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMIVNVPROC __glewGetVideoCaptureStreamivNV;
22521 GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTUREIVNVPROC __glewGetVideoCaptureivNV;
22522 GLEW_FUN_EXPORT PFNGLVIDEOCAPTURENVPROC __glewVideoCaptureNV;
22523 GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStreamParameterdvNV;
22524 GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV;
22525 GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV;
22526 
22527 GLEW_FUN_EXPORT PFNGLDEPTHRANGEARRAYFVNVPROC __glewDepthRangeArrayfvNV;
22528 GLEW_FUN_EXPORT PFNGLDEPTHRANGEINDEXEDFNVPROC __glewDepthRangeIndexedfNV;
22529 GLEW_FUN_EXPORT PFNGLDISABLEINVPROC __glewDisableiNV;
22530 GLEW_FUN_EXPORT PFNGLENABLEINVPROC __glewEnableiNV;
22531 GLEW_FUN_EXPORT PFNGLGETFLOATI_VNVPROC __glewGetFloati_vNV;
22532 GLEW_FUN_EXPORT PFNGLISENABLEDINVPROC __glewIsEnablediNV;
22533 GLEW_FUN_EXPORT PFNGLSCISSORARRAYVNVPROC __glewScissorArrayvNV;
22534 GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDNVPROC __glewScissorIndexedNV;
22535 GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDVNVPROC __glewScissorIndexedvNV;
22536 GLEW_FUN_EXPORT PFNGLVIEWPORTARRAYVNVPROC __glewViewportArrayvNV;
22537 GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFNVPROC __glewViewportIndexedfNV;
22538 GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFVNVPROC __glewViewportIndexedfvNV;
22539 
22540 GLEW_FUN_EXPORT PFNGLVIEWPORTSWIZZLENVPROC __glewViewportSwizzleNV;
22541 
22542 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewFramebufferTextureMultiviewOVR;
22543 
22544 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC __glewFramebufferTextureMultisampleMultiviewOVR;
22545 
22546 GLEW_FUN_EXPORT PFNGLALPHAFUNCQCOMPROC __glewAlphaFuncQCOM;
22547 
22548 GLEW_FUN_EXPORT PFNGLDISABLEDRIVERCONTROLQCOMPROC __glewDisableDriverControlQCOM;
22549 GLEW_FUN_EXPORT PFNGLENABLEDRIVERCONTROLQCOMPROC __glewEnableDriverControlQCOM;
22550 GLEW_FUN_EXPORT PFNGLGETDRIVERCONTROLSTRINGQCOMPROC __glewGetDriverControlStringQCOM;
22551 GLEW_FUN_EXPORT PFNGLGETDRIVERCONTROLSQCOMPROC __glewGetDriverControlsQCOM;
22552 
22553 GLEW_FUN_EXPORT PFNGLEXTGETBUFFERPOINTERVQCOMPROC __glewExtGetBufferPointervQCOM;
22554 GLEW_FUN_EXPORT PFNGLEXTGETBUFFERSQCOMPROC __glewExtGetBuffersQCOM;
22555 GLEW_FUN_EXPORT PFNGLEXTGETFRAMEBUFFERSQCOMPROC __glewExtGetFramebuffersQCOM;
22556 GLEW_FUN_EXPORT PFNGLEXTGETRENDERBUFFERSQCOMPROC __glewExtGetRenderbuffersQCOM;
22557 GLEW_FUN_EXPORT PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC __glewExtGetTexLevelParameterivQCOM;
22558 GLEW_FUN_EXPORT PFNGLEXTGETTEXSUBIMAGEQCOMPROC __glewExtGetTexSubImageQCOM;
22559 GLEW_FUN_EXPORT PFNGLEXTGETTEXTURESQCOMPROC __glewExtGetTexturesQCOM;
22560 GLEW_FUN_EXPORT PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC __glewExtTexObjectStateOverrideiQCOM;
22561 
22562 GLEW_FUN_EXPORT PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC __glewExtGetProgramBinarySourceQCOM;
22563 GLEW_FUN_EXPORT PFNGLEXTGETPROGRAMSQCOMPROC __glewExtGetProgramsQCOM;
22564 GLEW_FUN_EXPORT PFNGLEXTGETSHADERSQCOMPROC __glewExtGetShadersQCOM;
22565 GLEW_FUN_EXPORT PFNGLEXTISPROGRAMBINARYQCOMPROC __glewExtIsProgramBinaryQCOM;
22566 
22567 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC __glewFramebufferFoveationConfigQCOM;
22568 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC __glewFramebufferFoveationParametersQCOM;
22569 
22570 GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC __glewFramebufferFetchBarrierQCOM;
22571 
22572 GLEW_FUN_EXPORT PFNGLENDTILINGQCOMPROC __glewEndTilingQCOM;
22573 GLEW_FUN_EXPORT PFNGLSTARTTILINGQCOMPROC __glewStartTilingQCOM;
22574 
22575 GLEW_FUN_EXPORT PFNGLALPHAFUNCXPROC __glewAlphaFuncx;
22576 GLEW_FUN_EXPORT PFNGLCLEARCOLORXPROC __glewClearColorx;
22577 GLEW_FUN_EXPORT PFNGLCLEARDEPTHXPROC __glewClearDepthx;
22578 GLEW_FUN_EXPORT PFNGLCOLOR4XPROC __glewColor4x;
22579 GLEW_FUN_EXPORT PFNGLDEPTHRANGEXPROC __glewDepthRangex;
22580 GLEW_FUN_EXPORT PFNGLFOGXPROC __glewFogx;
22581 GLEW_FUN_EXPORT PFNGLFOGXVPROC __glewFogxv;
22582 GLEW_FUN_EXPORT PFNGLFRUSTUMFPROC __glewFrustumf;
22583 GLEW_FUN_EXPORT PFNGLFRUSTUMXPROC __glewFrustumx;
22584 GLEW_FUN_EXPORT PFNGLLIGHTMODELXPROC __glewLightModelx;
22585 GLEW_FUN_EXPORT PFNGLLIGHTMODELXVPROC __glewLightModelxv;
22586 GLEW_FUN_EXPORT PFNGLLIGHTXPROC __glewLightx;
22587 GLEW_FUN_EXPORT PFNGLLIGHTXVPROC __glewLightxv;
22588 GLEW_FUN_EXPORT PFNGLLINEWIDTHXPROC __glewLineWidthx;
22589 GLEW_FUN_EXPORT PFNGLLOADMATRIXXPROC __glewLoadMatrixx;
22590 GLEW_FUN_EXPORT PFNGLMATERIALXPROC __glewMaterialx;
22591 GLEW_FUN_EXPORT PFNGLMATERIALXVPROC __glewMaterialxv;
22592 GLEW_FUN_EXPORT PFNGLMULTMATRIXXPROC __glewMultMatrixx;
22593 GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4XPROC __glewMultiTexCoord4x;
22594 GLEW_FUN_EXPORT PFNGLNORMAL3XPROC __glewNormal3x;
22595 GLEW_FUN_EXPORT PFNGLORTHOFPROC __glewOrthof;
22596 GLEW_FUN_EXPORT PFNGLORTHOXPROC __glewOrthox;
22597 GLEW_FUN_EXPORT PFNGLPOINTSIZEXPROC __glewPointSizex;
22598 GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETXPROC __glewPolygonOffsetx;
22599 GLEW_FUN_EXPORT PFNGLROTATEXPROC __glewRotatex;
22600 GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEXPROC __glewSampleCoveragex;
22601 GLEW_FUN_EXPORT PFNGLSCALEXPROC __glewScalex;
22602 GLEW_FUN_EXPORT PFNGLTEXENVXPROC __glewTexEnvx;
22603 GLEW_FUN_EXPORT PFNGLTEXENVXVPROC __glewTexEnvxv;
22604 GLEW_FUN_EXPORT PFNGLTEXPARAMETERXPROC __glewTexParameterx;
22605 GLEW_FUN_EXPORT PFNGLTRANSLATEXPROC __glewTranslatex;
22606 
22607 GLEW_FUN_EXPORT PFNGLCLIPPLANEFPROC __glewClipPlanef;
22608 GLEW_FUN_EXPORT PFNGLCLIPPLANEXPROC __glewClipPlanex;
22609 GLEW_FUN_EXPORT PFNGLGETCLIPPLANEFPROC __glewGetClipPlanef;
22610 GLEW_FUN_EXPORT PFNGLGETCLIPPLANEXPROC __glewGetClipPlanex;
22611 GLEW_FUN_EXPORT PFNGLGETFIXEDVPROC __glewGetFixedv;
22612 GLEW_FUN_EXPORT PFNGLGETLIGHTXVPROC __glewGetLightxv;
22613 GLEW_FUN_EXPORT PFNGLGETMATERIALXVPROC __glewGetMaterialxv;
22614 GLEW_FUN_EXPORT PFNGLGETTEXENVXVPROC __glewGetTexEnvxv;
22615 GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERXVPROC __glewGetTexParameterxv;
22616 GLEW_FUN_EXPORT PFNGLPOINTPARAMETERXPROC __glewPointParameterx;
22617 GLEW_FUN_EXPORT PFNGLPOINTPARAMETERXVPROC __glewPointParameterxv;
22618 GLEW_FUN_EXPORT PFNGLPOINTSIZEPOINTEROESPROC __glewPointSizePointerOES;
22619 GLEW_FUN_EXPORT PFNGLTEXPARAMETERXVPROC __glewTexParameterxv;
22620 
22621 GLEW_FUN_EXPORT PFNGLERRORSTRINGREGALPROC __glewErrorStringREGAL;
22622 
22623 GLEW_FUN_EXPORT PFNGLGETEXTENSIONREGALPROC __glewGetExtensionREGAL;
22624 GLEW_FUN_EXPORT PFNGLISSUPPORTEDREGALPROC __glewIsSupportedREGAL;
22625 
22626 GLEW_FUN_EXPORT PFNGLLOGMESSAGECALLBACKREGALPROC __glewLogMessageCallbackREGAL;
22627 
22628 GLEW_FUN_EXPORT PFNGLGETPROCADDRESSREGALPROC __glewGetProcAddressREGAL;
22629 
22630 GLEW_FUN_EXPORT PFNGLDETAILTEXFUNCSGISPROC __glewDetailTexFuncSGIS;
22631 GLEW_FUN_EXPORT PFNGLGETDETAILTEXFUNCSGISPROC __glewGetDetailTexFuncSGIS;
22632 
22633 GLEW_FUN_EXPORT PFNGLFOGFUNCSGISPROC __glewFogFuncSGIS;
22634 GLEW_FUN_EXPORT PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS;
22635 
22636 GLEW_FUN_EXPORT PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS;
22637 GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS;
22638 
22639 GLEW_FUN_EXPORT PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC __glewInterleavedTextureCoordSetsSGIS;
22640 GLEW_FUN_EXPORT PFNGLSELECTTEXTURECOORDSETSGISPROC __glewSelectTextureCoordSetSGIS;
22641 GLEW_FUN_EXPORT PFNGLSELECTTEXTURESGISPROC __glewSelectTextureSGIS;
22642 GLEW_FUN_EXPORT PFNGLSELECTTEXTURETRANSFORMSGISPROC __glewSelectTextureTransformSGIS;
22643 
22644 GLEW_FUN_EXPORT PFNGLMULTISAMPLESUBRECTPOSSGISPROC __glewMultisampleSubRectPosSGIS;
22645 
22646 GLEW_FUN_EXPORT PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS;
22647 GLEW_FUN_EXPORT PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS;
22648 
22649 GLEW_FUN_EXPORT PFNGLTEXIMAGE4DSGISPROC __glewTexImage4DSGIS;
22650 GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE4DSGISPROC __glewTexSubImage4DSGIS;
22651 
22652 GLEW_FUN_EXPORT PFNGLGETTEXFILTERFUNCSGISPROC __glewGetTexFilterFuncSGIS;
22653 GLEW_FUN_EXPORT PFNGLTEXFILTERFUNCSGISPROC __glewTexFilterFuncSGIS;
22654 
22655 GLEW_FUN_EXPORT PFNGLASYNCMARKERSGIXPROC __glewAsyncMarkerSGIX;
22656 GLEW_FUN_EXPORT PFNGLDELETEASYNCMARKERSSGIXPROC __glewDeleteAsyncMarkersSGIX;
22657 GLEW_FUN_EXPORT PFNGLFINISHASYNCSGIXPROC __glewFinishAsyncSGIX;
22658 GLEW_FUN_EXPORT PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX;
22659 GLEW_FUN_EXPORT PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX;
22660 GLEW_FUN_EXPORT PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX;
22661 
22662 GLEW_FUN_EXPORT PFNGLADDRESSSPACEPROC __glewAddressSpace;
22663 GLEW_FUN_EXPORT PFNGLDATAPIPEPROC __glewDataPipe;
22664 
22665 GLEW_FUN_EXPORT PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX;
22666 
22667 GLEW_FUN_EXPORT PFNGLFOGLAYERSSGIXPROC __glewFogLayersSGIX;
22668 GLEW_FUN_EXPORT PFNGLGETFOGLAYERSSGIXPROC __glewGetFogLayersSGIX;
22669 
22670 GLEW_FUN_EXPORT PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX;
22671 
22672 GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX;
22673 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFSGIXPROC __glewFragmentLightModelfSGIX;
22674 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVSGIXPROC __glewFragmentLightModelfvSGIX;
22675 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELISGIXPROC __glewFragmentLightModeliSGIX;
22676 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVSGIXPROC __glewFragmentLightModelivSGIX;
22677 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFSGIXPROC __glewFragmentLightfSGIX;
22678 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVSGIXPROC __glewFragmentLightfvSGIX;
22679 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTISGIXPROC __glewFragmentLightiSGIX;
22680 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVSGIXPROC __glewFragmentLightivSGIX;
22681 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFSGIXPROC __glewFragmentMaterialfSGIX;
22682 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVSGIXPROC __glewFragmentMaterialfvSGIX;
22683 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALISGIXPROC __glewFragmentMaterialiSGIX;
22684 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVSGIXPROC __glewFragmentMaterialivSGIX;
22685 GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVSGIXPROC __glewGetFragmentLightfvSGIX;
22686 GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVSGIXPROC __glewGetFragmentLightivSGIX;
22687 GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVSGIXPROC __glewGetFragmentMaterialfvSGIX;
22688 GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX;
22689 
22690 GLEW_FUN_EXPORT PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX;
22691 
22692 GLEW_FUN_EXPORT PFNGLIGLOOINTERFACESGIXPROC __glewIglooInterfaceSGIX;
22693 
22694 GLEW_FUN_EXPORT PFNGLALLOCMPEGPREDICTORSSGIXPROC __glewAllocMPEGPredictorsSGIX;
22695 GLEW_FUN_EXPORT PFNGLDELETEMPEGPREDICTORSSGIXPROC __glewDeleteMPEGPredictorsSGIX;
22696 GLEW_FUN_EXPORT PFNGLGENMPEGPREDICTORSSGIXPROC __glewGenMPEGPredictorsSGIX;
22697 GLEW_FUN_EXPORT PFNGLGETMPEGPARAMETERFVSGIXPROC __glewGetMPEGParameterfvSGIX;
22698 GLEW_FUN_EXPORT PFNGLGETMPEGPARAMETERIVSGIXPROC __glewGetMPEGParameterivSGIX;
22699 GLEW_FUN_EXPORT PFNGLGETMPEGPREDICTORSGIXPROC __glewGetMPEGPredictorSGIX;
22700 GLEW_FUN_EXPORT PFNGLGETMPEGQUANTTABLEUBVPROC __glewGetMPEGQuantTableubv;
22701 GLEW_FUN_EXPORT PFNGLISMPEGPREDICTORSGIXPROC __glewIsMPEGPredictorSGIX;
22702 GLEW_FUN_EXPORT PFNGLMPEGPREDICTORSGIXPROC __glewMPEGPredictorSGIX;
22703 GLEW_FUN_EXPORT PFNGLMPEGQUANTTABLEUBVPROC __glewMPEGQuantTableubv;
22704 GLEW_FUN_EXPORT PFNGLSWAPMPEGPREDICTORSSGIXPROC __glewSwapMPEGPredictorsSGIX;
22705 
22706 GLEW_FUN_EXPORT PFNGLGETNONLINLIGHTFVSGIXPROC __glewGetNonlinLightfvSGIX;
22707 GLEW_FUN_EXPORT PFNGLGETNONLINMATERIALFVSGIXPROC __glewGetNonlinMaterialfvSGIX;
22708 GLEW_FUN_EXPORT PFNGLNONLINLIGHTFVSGIXPROC __glewNonlinLightfvSGIX;
22709 GLEW_FUN_EXPORT PFNGLNONLINMATERIALFVSGIXPROC __glewNonlinMaterialfvSGIX;
22710 
22711 GLEW_FUN_EXPORT PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX;
22712 
22713 GLEW_FUN_EXPORT PFNGLDEFORMSGIXPROC __glewDeformSGIX;
22714 GLEW_FUN_EXPORT PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC __glewLoadIdentityDeformationMapSGIX;
22715 
22716 GLEW_FUN_EXPORT PFNGLMESHBREADTHSGIXPROC __glewMeshBreadthSGIX;
22717 GLEW_FUN_EXPORT PFNGLMESHSTRIDESGIXPROC __glewMeshStrideSGIX;
22718 
22719 GLEW_FUN_EXPORT PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX;
22720 
22721 GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX;
22722 GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFVSGIXPROC __glewSpriteParameterfvSGIX;
22723 GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERISGIXPROC __glewSpriteParameteriSGIX;
22724 GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX;
22725 
22726 GLEW_FUN_EXPORT PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX;
22727 
22728 GLEW_FUN_EXPORT PFNGLGETVECTOROPERATIONSGIXPROC __glewGetVectorOperationSGIX;
22729 GLEW_FUN_EXPORT PFNGLVECTOROPERATIONSGIXPROC __glewVectorOperationSGIX;
22730 
22731 GLEW_FUN_EXPORT PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC __glewAreVertexArraysResidentSGIX;
22732 GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYSGIXPROC __glewBindVertexArraySGIX;
22733 GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSSGIXPROC __glewDeleteVertexArraysSGIX;
22734 GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSSGIXPROC __glewGenVertexArraysSGIX;
22735 GLEW_FUN_EXPORT PFNGLISVERTEXARRAYSGIXPROC __glewIsVertexArraySGIX;
22736 GLEW_FUN_EXPORT PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC __glewPrioritizeVertexArraysSGIX;
22737 
22738 GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI;
22739 GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI;
22740 GLEW_FUN_EXPORT PFNGLCOLORTABLESGIPROC __glewColorTableSGI;
22741 GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLESGIPROC __glewCopyColorTableSGI;
22742 GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParameterfvSGI;
22743 GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI;
22744 GLEW_FUN_EXPORT PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI;
22745 
22746 GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC __glewGetPixelTransformParameterfvSGI;
22747 GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC __glewGetPixelTransformParameterivSGI;
22748 GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFSGIPROC __glewPixelTransformParameterfSGI;
22749 GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC __glewPixelTransformParameterfvSGI;
22750 GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERISGIPROC __glewPixelTransformParameteriSGI;
22751 GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC __glewPixelTransformParameterivSGI;
22752 GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMSGIPROC __glewPixelTransformSGI;
22753 
22754 GLEW_FUN_EXPORT PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX;
22755 
22756 GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN;
22757 GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORDSUNPROC __glewGlobalAlphaFactordSUN;
22758 GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORFSUNPROC __glewGlobalAlphaFactorfSUN;
22759 GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORISUNPROC __glewGlobalAlphaFactoriSUN;
22760 GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORSSUNPROC __glewGlobalAlphaFactorsSUN;
22761 GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUBSUNPROC __glewGlobalAlphaFactorubSUN;
22762 GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUISUNPROC __glewGlobalAlphaFactoruiSUN;
22763 GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUSSUNPROC __glewGlobalAlphaFactorusSUN;
22764 
22765 GLEW_FUN_EXPORT PFNGLREADVIDEOPIXELSSUNPROC __glewReadVideoPixelsSUN;
22766 
22767 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEPOINTERSUNPROC __glewReplacementCodePointerSUN;
22768 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBSUNPROC __glewReplacementCodeubSUN;
22769 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBVSUNPROC __glewReplacementCodeubvSUN;
22770 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUISUNPROC __glewReplacementCodeuiSUN;
22771 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVSUNPROC __glewReplacementCodeuivSUN;
22772 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSSUNPROC __glewReplacementCodeusSUN;
22773 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSVSUNPROC __glewReplacementCodeusvSUN;
22774 
22775 GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FSUNPROC __glewColor3fVertex3fSUN;
22776 GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FVSUNPROC __glewColor3fVertex3fvSUN;
22777 GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewColor4fNormal3fVertex3fSUN;
22778 GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewColor4fNormal3fVertex3fvSUN;
22779 GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FSUNPROC __glewColor4ubVertex2fSUN;
22780 GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FVSUNPROC __glewColor4ubVertex2fvSUN;
22781 GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FSUNPROC __glewColor4ubVertex3fSUN;
22782 GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FVSUNPROC __glewColor4ubVertex3fvSUN;
22783 GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FSUNPROC __glewNormal3fVertex3fSUN;
22784 GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FVSUNPROC __glewNormal3fVertex3fvSUN;
22785 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC __glewReplacementCodeuiColor3fVertex3fSUN;
22786 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor3fVertex3fvSUN;
22787 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fSUN;
22788 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fvSUN;
22789 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC __glewReplacementCodeuiColor4ubVertex3fSUN;
22790 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC __glewReplacementCodeuiColor4ubVertex3fvSUN;
22791 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiNormal3fVertex3fSUN;
22792 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiNormal3fVertex3fvSUN;
22793 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
22794 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
22795 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
22796 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
22797 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fSUN;
22798 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fvSUN;
22799 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC __glewReplacementCodeuiVertex3fSUN;
22800 GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC __glewReplacementCodeuiVertex3fvSUN;
22801 GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC __glewTexCoord2fColor3fVertex3fSUN;
22802 GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC __glewTexCoord2fColor3fVertex3fvSUN;
22803 GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fSUN;
22804 GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fvSUN;
22805 GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC __glewTexCoord2fColor4ubVertex3fSUN;
22806 GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC __glewTexCoord2fColor4ubVertex3fvSUN;
22807 GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fNormal3fVertex3fSUN;
22808 GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fNormal3fVertex3fvSUN;
22809 GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FSUNPROC __glewTexCoord2fVertex3fSUN;
22810 GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FVSUNPROC __glewTexCoord2fVertex3fvSUN;
22811 GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fSUN;
22812 GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fvSUN;
22813 GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FSUNPROC __glewTexCoord4fVertex4fSUN;
22814 GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN;
22815 
22816 GLEW_FUN_EXPORT PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN;
22817 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1;
22818 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2;
22819 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2_1;
22820 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_3;
22821 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_4;
22822 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_5;
22823 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_0;
22824 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_1;
22825 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_0;
22826 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_1;
22827 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_2;
22828 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_3;
22829 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_0;
22830 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_1;
22831 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_2;
22832 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_3;
22833 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_4;
22834 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_5;
22835 GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_6;
22836 GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_multisample;
22837 GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_tbuffer;
22838 GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_texture_compression_FXT1;
22839 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_blend_minmax_factor;
22840 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_compressed_3DC_texture;
22841 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_compressed_ATC_texture;
22842 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_conservative_depth;
22843 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_debug_output;
22844 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_depth_clamp_separate;
22845 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_draw_buffers_blend;
22846 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_framebuffer_sample_positions;
22847 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gcn_shader;
22848 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_half_float;
22849 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_int16;
22850 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_int64;
22851 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_interleaved_elements;
22852 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_multi_draw_indirect;
22853 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_name_gen_delete;
22854 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_occlusion_query_event;
22855 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_performance_monitor;
22856 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_pinned_memory;
22857 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_program_binary_Z400;
22858 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_query_buffer_object;
22859 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sample_positions;
22860 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_seamless_cubemap_per_texture;
22861 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_atomic_counter_ops;
22862 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_ballot;
22863 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_explicit_vertex_parameter;
22864 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_export;
22865 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_value_export;
22866 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_trinary_minmax;
22867 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sparse_texture;
22868 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_stencil_operation_extended;
22869 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_gather_bias_lod;
22870 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_texture4;
22871 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback3_lines_triangles;
22872 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback4;
22873 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_layer;
22874 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_tessellator;
22875 GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_viewport_index;
22876 GLEW_VAR_EXPORT GLboolean __GLEW_ANDROID_extension_pack_es31a;
22877 GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_depth_texture;
22878 GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_framebuffer_blit;
22879 GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_framebuffer_multisample;
22880 GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_instanced_arrays;
22881 GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_pack_reverse_row_order;
22882 GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_program_binary;
22883 GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_compression_dxt1;
22884 GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_compression_dxt3;
22885 GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_compression_dxt5;
22886 GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_usage;
22887 GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_timer_query;
22888 GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_translated_shader_source;
22889 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_aux_depth_stencil;
22890 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_client_storage;
22891 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_clip_distance;
22892 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_color_buffer_packed_float;
22893 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_copy_texture_levels;
22894 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_element_array;
22895 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_fence;
22896 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_float_pixels;
22897 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_flush_buffer_range;
22898 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_framebuffer_multisample;
22899 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_object_purgeable;
22900 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_pixel_buffer;
22901 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_rgb_422;
22902 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_row_bytes;
22903 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_specular_vector;
22904 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_sync;
22905 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_2D_limited_npot;
22906 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_format_BGRA8888;
22907 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_max_level;
22908 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_packed_float;
22909 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_range;
22910 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_transform_hint;
22911 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_object;
22912 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_range;
22913 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_program_evaluators;
22914 GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_ycbcr_422;
22915 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES2_compatibility;
22916 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES3_1_compatibility;
22917 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES3_2_compatibility;
22918 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES3_compatibility;
22919 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_arrays_of_arrays;
22920 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_base_instance;
22921 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_bindless_texture;
22922 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_blend_func_extended;
22923 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_buffer_storage;
22924 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_cl_event;
22925 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clear_buffer_object;
22926 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clear_texture;
22927 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clip_control;
22928 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_color_buffer_float;
22929 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compatibility;
22930 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compressed_texture_pixel_storage;
22931 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compute_shader;
22932 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compute_variable_group_size;
22933 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_conditional_render_inverted;
22934 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_conservative_depth;
22935 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_buffer;
22936 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_image;
22937 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_cull_distance;
22938 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_debug_output;
22939 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_buffer_float;
22940 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_clamp;
22941 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_texture;
22942 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_derivative_control;
22943 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_direct_state_access;
22944 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers;
22945 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers_blend;
22946 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_elements_base_vertex;
22947 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_indirect;
22948 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_instanced;
22949 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_enhanced_layouts;
22950 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_attrib_location;
22951 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_uniform_location;
22952 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_coord_conventions;
22953 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_layer_viewport;
22954 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program;
22955 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program_shadow;
22956 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_shader;
22957 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_shader_interlock;
22958 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_no_attachments;
22959 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_object;
22960 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_sRGB;
22961 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_geometry_shader4;
22962 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_program_binary;
22963 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_texture_sub_image;
22964 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gl_spirv;
22965 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader5;
22966 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_fp64;
22967 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_int64;
22968 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_pixel;
22969 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_vertex;
22970 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_imaging;
22971 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_indirect_parameters;
22972 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_instanced_arrays;
22973 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_internalformat_query;
22974 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_internalformat_query2;
22975 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_invalidate_subdata;
22976 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_alignment;
22977 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_range;
22978 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_matrix_palette;
22979 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multi_bind;
22980 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multi_draw_indirect;
22981 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multisample;
22982 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multitexture;
22983 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query;
22984 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query2;
22985 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_parallel_shader_compile;
22986 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pipeline_statistics_query;
22987 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pixel_buffer_object;
22988 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_parameters;
22989 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_sprite;
22990 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_polygon_offset_clamp;
22991 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_post_depth_coverage;
22992 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_program_interface_query;
22993 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_provoking_vertex;
22994 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_query_buffer_object;
22995 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robust_buffer_access_behavior;
22996 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness;
22997 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness_application_isolation;
22998 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness_share_group_isolation;
22999 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sample_locations;
23000 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sample_shading;
23001 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sampler_objects;
23002 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_seamless_cube_map;
23003 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_seamless_cubemap_per_texture;
23004 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_separate_shader_objects;
23005 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_atomic_counter_ops;
23006 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_atomic_counters;
23007 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_ballot;
23008 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_bit_encoding;
23009 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_clock;
23010 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_draw_parameters;
23011 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_group_vote;
23012 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_image_load_store;
23013 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_image_size;
23014 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_objects;
23015 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_precision;
23016 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_stencil_export;
23017 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_storage_buffer_object;
23018 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_subroutine;
23019 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_texture_image_samples;
23020 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_texture_lod;
23021 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_viewport_layer_array;
23022 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_100;
23023 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_420pack;
23024 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_include;
23025 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_packing;
23026 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow;
23027 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow_ambient;
23028 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_buffer;
23029 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture;
23030 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture2;
23031 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture_clamp;
23032 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_spirv_extensions;
23033 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_stencil_texturing;
23034 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sync;
23035 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_tessellation_shader;
23036 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_barrier;
23037 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_border_clamp;
23038 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object;
23039 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object_rgb32;
23040 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_range;
23041 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression;
23042 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_bptc;
23043 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_rgtc;
23044 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map;
23045 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map_array;
23046 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_add;
23047 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_combine;
23048 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_crossbar;
23049 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_dot3;
23050 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_filter_anisotropic;
23051 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_filter_minmax;
23052 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_float;
23053 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_gather;
23054 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_mirror_clamp_to_edge;
23055 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_mirrored_repeat;
23056 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_multisample;
23057 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_non_power_of_two;
23058 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_levels;
23059 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_lod;
23060 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rectangle;
23061 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rg;
23062 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rgb10_a2ui;
23063 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_stencil8;
23064 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_storage;
23065 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_storage_multisample;
23066 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_swizzle;
23067 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_view;
23068 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_timer_query;
23069 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback2;
23070 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback3;
23071 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback_instanced;
23072 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback_overflow_query;
23073 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transpose_matrix;
23074 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_uniform_buffer_object;
23075 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_bgra;
23076 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_object;
23077 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_64bit;
23078 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_binding;
23079 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_blend;
23080 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_buffer_object;
23081 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_program;
23082 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_shader;
23083 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_10f_11f_11f_rev;
23084 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev;
23085 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_viewport_array;
23086 GLEW_VAR_EXPORT GLboolean __GLEW_ARB_window_pos;
23087 GLEW_VAR_EXPORT GLboolean __GLEW_ARM_mali_program_binary;
23088 GLEW_VAR_EXPORT GLboolean __GLEW_ARM_mali_shader_binary;
23089 GLEW_VAR_EXPORT GLboolean __GLEW_ARM_rgba8;
23090 GLEW_VAR_EXPORT GLboolean __GLEW_ARM_shader_framebuffer_fetch;
23091 GLEW_VAR_EXPORT GLboolean __GLEW_ARM_shader_framebuffer_fetch_depth_stencil;
23092 GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_point_sprites;
23093 GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_combine3;
23094 GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_route;
23095 GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_vertex_shader_output_point_size;
23096 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_draw_buffers;
23097 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_element_array;
23098 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_envmap_bumpmap;
23099 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_fragment_shader;
23100 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_map_object_buffer;
23101 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_meminfo;
23102 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_pn_triangles;
23103 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_separate_stencil;
23104 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_shader_texture_lod;
23105 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_text_fragment_shader;
23106 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_compression_3dc;
23107 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_env_combine3;
23108 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_float;
23109 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_mirror_once;
23110 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_array_object;
23111 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_attrib_array_object;
23112 GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_streams;
23113 GLEW_VAR_EXPORT GLboolean __GLEW_EGL_KHR_context_flush_control;
23114 GLEW_VAR_EXPORT GLboolean __GLEW_EGL_NV_robustness_video_memory_purge;
23115 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_422_pixels;
23116 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_Cg_shader;
23117 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_image_array;
23118 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_YUV_target;
23119 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_abgr;
23120 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_base_instance;
23121 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bgra;
23122 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bindable_uniform;
23123 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_color;
23124 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_equation_separate;
23125 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_extended;
23126 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_separate;
23127 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_logic_op;
23128 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_minmax;
23129 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_subtract;
23130 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_buffer_storage;
23131 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clear_texture;
23132 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_cull_distance;
23133 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_volume_hint;
23134 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cmyka;
23135 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_buffer_float;
23136 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_buffer_half_float;
23137 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_subtable;
23138 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compiled_vertex_array;
23139 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compressed_ETC1_RGB8_sub_texture;
23140 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_conservative_depth;
23141 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_convolution;
23142 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_coordinate_frame;
23143 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_image;
23144 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_texture;
23145 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cull_vertex;
23146 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_debug_label;
23147 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_debug_marker;
23148 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_bounds_test;
23149 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_direct_state_access;
23150 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_discard_framebuffer;
23151 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers;
23152 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers2;
23153 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers_indexed;
23154 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_elements_base_vertex;
23155 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_instanced;
23156 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_range_elements;
23157 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_external_buffer;
23158 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_float_blend;
23159 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fog_coord;
23160 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_frag_depth;
23161 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fragment_lighting;
23162 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_blit;
23163 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample;
23164 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample_blit_scaled;
23165 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_object;
23166 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_sRGB;
23167 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_point_size;
23168 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader;
23169 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader4;
23170 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_program_parameters;
23171 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader4;
23172 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader5;
23173 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_histogram;
23174 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_array_formats;
23175 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_func;
23176 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_material;
23177 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_texture;
23178 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_instanced_arrays;
23179 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_light_texture;
23180 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_map_buffer_range;
23181 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_memory_object;
23182 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_memory_object_fd;
23183 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_memory_object_win32;
23184 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_misc_attribute;
23185 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_arrays;
23186 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_indirect;
23187 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiple_textures;
23188 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample;
23189 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample_compatibility;
23190 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisampled_render_to_texture;
23191 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisampled_render_to_texture2;
23192 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_draw_buffers;
23193 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_depth_stencil;
23194 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_float;
23195 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_pixels;
23196 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_paletted_texture;
23197 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_buffer_object;
23198 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform;
23199 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform_color_table;
23200 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_point_parameters;
23201 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset;
23202 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset_clamp;
23203 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_post_depth_coverage;
23204 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_provoking_vertex;
23205 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pvrtc_sRGB;
23206 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_raster_multisample;
23207 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_read_format_bgra;
23208 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_render_snorm;
23209 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_rescale_normal;
23210 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sRGB;
23211 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sRGB_write_control;
23212 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_scene_marker;
23213 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_secondary_color;
23214 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_semaphore;
23215 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_semaphore_fd;
23216 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_semaphore_win32;
23217 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_shader_objects;
23218 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_specular_color;
23219 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_framebuffer_fetch;
23220 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_group_vote;
23221 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_formatted;
23222 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_store;
23223 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_implicit_conversions;
23224 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_integer_mix;
23225 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_io_blocks;
23226 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_non_constant_global_initializers;
23227 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_pixel_local_storage;
23228 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_pixel_local_storage2;
23229 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_texture_lod;
23230 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_funcs;
23231 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_samplers;
23232 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shared_texture_palette;
23233 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sparse_texture;
23234 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sparse_texture2;
23235 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_clear_tag;
23236 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_two_side;
23237 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_wrap;
23238 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_subtexture;
23239 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture;
23240 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture3D;
23241 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_array;
23242 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_buffer_object;
23243 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_astc_decode_mode;
23244 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5;
23245 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_bptc;
23246 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_dxt1;
23247 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_latc;
23248 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_rgtc;
23249 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_s3tc;
23250 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map;
23251 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map_array;
23252 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_edge_clamp;
23253 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env;
23254 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_add;
23255 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_combine;
23256 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_dot3;
23257 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_anisotropic;
23258 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_minmax;
23259 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_format_BGRA8888;
23260 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_integer;
23261 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_lod_bias;
23262 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_mirror_clamp;
23263 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_norm16;
23264 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_object;
23265 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_perturb_normal;
23266 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rectangle;
23267 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rg;
23268 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB;
23269 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_R8;
23270 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_RG8;
23271 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_decode;
23272 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shared_exponent;
23273 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_snorm;
23274 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_storage;
23275 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_swizzle;
23276 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_type_2_10_10_10_REV;
23277 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_view;
23278 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_timer_query;
23279 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_transform_feedback;
23280 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_unpack_subimage;
23281 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array;
23282 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_bgra;
23283 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_setXXX;
23284 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_attrib_64bit;
23285 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_shader;
23286 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_weighting;
23287 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_win32_keyed_mutex;
23288 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_window_rectangles;
23289 GLEW_VAR_EXPORT GLboolean __GLEW_EXT_x11_sync_object;
23290 GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_frame_terminator;
23291 GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_string_marker;
23292 GLEW_VAR_EXPORT GLboolean __GLEW_HP_convolution_border_modes;
23293 GLEW_VAR_EXPORT GLboolean __GLEW_HP_image_transform;
23294 GLEW_VAR_EXPORT GLboolean __GLEW_HP_occlusion_test;
23295 GLEW_VAR_EXPORT GLboolean __GLEW_HP_texture_lighting;
23296 GLEW_VAR_EXPORT GLboolean __GLEW_IBM_cull_vertex;
23297 GLEW_VAR_EXPORT GLboolean __GLEW_IBM_multimode_draw_arrays;
23298 GLEW_VAR_EXPORT GLboolean __GLEW_IBM_rasterpos_clip;
23299 GLEW_VAR_EXPORT GLboolean __GLEW_IBM_static_data;
23300 GLEW_VAR_EXPORT GLboolean __GLEW_IBM_texture_mirrored_repeat;
23301 GLEW_VAR_EXPORT GLboolean __GLEW_IBM_vertex_array_lists;
23302 GLEW_VAR_EXPORT GLboolean __GLEW_INGR_color_clamp;
23303 GLEW_VAR_EXPORT GLboolean __GLEW_INGR_interlace_read;
23304 GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_conservative_rasterization;
23305 GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_fragment_shader_ordering;
23306 GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_framebuffer_CMAA;
23307 GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_map_texture;
23308 GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_parallel_arrays;
23309 GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_performance_query;
23310 GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_texture_scissor;
23311 GLEW_VAR_EXPORT GLboolean __GLEW_KHR_blend_equation_advanced;
23312 GLEW_VAR_EXPORT GLboolean __GLEW_KHR_blend_equation_advanced_coherent;
23313 GLEW_VAR_EXPORT GLboolean __GLEW_KHR_context_flush_control;
23314 GLEW_VAR_EXPORT GLboolean __GLEW_KHR_debug;
23315 GLEW_VAR_EXPORT GLboolean __GLEW_KHR_no_error;
23316 GLEW_VAR_EXPORT GLboolean __GLEW_KHR_parallel_shader_compile;
23317 GLEW_VAR_EXPORT GLboolean __GLEW_KHR_robust_buffer_access_behavior;
23318 GLEW_VAR_EXPORT GLboolean __GLEW_KHR_robustness;
23319 GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_hdr;
23320 GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_ldr;
23321 GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_sliced_3d;
23322 GLEW_VAR_EXPORT GLboolean __GLEW_KTX_buffer_region;
23323 GLEW_VAR_EXPORT GLboolean __GLEW_MESAX_texture_stack;
23324 GLEW_VAR_EXPORT GLboolean __GLEW_MESA_pack_invert;
23325 GLEW_VAR_EXPORT GLboolean __GLEW_MESA_resize_buffers;
23326 GLEW_VAR_EXPORT GLboolean __GLEW_MESA_shader_integer_functions;
23327 GLEW_VAR_EXPORT GLboolean __GLEW_MESA_window_pos;
23328 GLEW_VAR_EXPORT GLboolean __GLEW_MESA_ycbcr_texture;
23329 GLEW_VAR_EXPORT GLboolean __GLEW_NVX_blend_equation_advanced_multi_draw_buffers;
23330 GLEW_VAR_EXPORT GLboolean __GLEW_NVX_conditional_render;
23331 GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_memory_info;
23332 GLEW_VAR_EXPORT GLboolean __GLEW_NVX_linked_gpu_multicast;
23333 GLEW_VAR_EXPORT GLboolean __GLEW_NV_3dvision_settings;
23334 GLEW_VAR_EXPORT GLboolean __GLEW_NV_EGL_stream_consumer_external;
23335 GLEW_VAR_EXPORT GLboolean __GLEW_NV_alpha_to_coverage_dither_control;
23336 GLEW_VAR_EXPORT GLboolean __GLEW_NV_bgr;
23337 GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_multi_draw_indirect;
23338 GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_multi_draw_indirect_count;
23339 GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_texture;
23340 GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_equation_advanced;
23341 GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_equation_advanced_coherent;
23342 GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_minmax_factor;
23343 GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_square;
23344 GLEW_VAR_EXPORT GLboolean __GLEW_NV_clip_space_w_scaling;
23345 GLEW_VAR_EXPORT GLboolean __GLEW_NV_command_list;
23346 GLEW_VAR_EXPORT GLboolean __GLEW_NV_compute_program5;
23347 GLEW_VAR_EXPORT GLboolean __GLEW_NV_conditional_render;
23348 GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster;
23349 GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_dilate;
23350 GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_pre_snap_triangles;
23351 GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_buffer;
23352 GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_depth_to_color;
23353 GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_image;
23354 GLEW_VAR_EXPORT GLboolean __GLEW_NV_deep_texture3D;
23355 GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_buffer_float;
23356 GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_clamp;
23357 GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_range_unclamped;
23358 GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_buffers;
23359 GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_instanced;
23360 GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_texture;
23361 GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_vulkan_image;
23362 GLEW_VAR_EXPORT GLboolean __GLEW_NV_evaluators;
23363 GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_attrib_location;
23364 GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_multisample;
23365 GLEW_VAR_EXPORT GLboolean __GLEW_NV_fbo_color_attachments;
23366 GLEW_VAR_EXPORT GLboolean __GLEW_NV_fence;
23367 GLEW_VAR_EXPORT GLboolean __GLEW_NV_fill_rectangle;
23368 GLEW_VAR_EXPORT GLboolean __GLEW_NV_float_buffer;
23369 GLEW_VAR_EXPORT GLboolean __GLEW_NV_fog_distance;
23370 GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_coverage_to_color;
23371 GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program;
23372 GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program2;
23373 GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program4;
23374 GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program_option;
23375 GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_shader_interlock;
23376 GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_blit;
23377 GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_mixed_samples;
23378 GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample;
23379 GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample_coverage;
23380 GLEW_VAR_EXPORT GLboolean __GLEW_NV_generate_mipmap_sRGB;
23381 GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_program4;
23382 GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader4;
23383 GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader_passthrough;
23384 GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_multicast;
23385 GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program4;
23386 GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5;
23387 GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5_mem_extended;
23388 GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program_fp64;
23389 GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_shader5;
23390 GLEW_VAR_EXPORT GLboolean __GLEW_NV_half_float;
23391 GLEW_VAR_EXPORT GLboolean __GLEW_NV_image_formats;
23392 GLEW_VAR_EXPORT GLboolean __GLEW_NV_instanced_arrays;
23393 GLEW_VAR_EXPORT GLboolean __GLEW_NV_internalformat_sample_query;
23394 GLEW_VAR_EXPORT GLboolean __GLEW_NV_light_max_exponent;
23395 GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_coverage;
23396 GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_filter_hint;
23397 GLEW_VAR_EXPORT GLboolean __GLEW_NV_non_square_matrices;
23398 GLEW_VAR_EXPORT GLboolean __GLEW_NV_occlusion_query;
23399 GLEW_VAR_EXPORT GLboolean __GLEW_NV_pack_subimage;
23400 GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_depth_stencil;
23401 GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_float;
23402 GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_float_linear;
23403 GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object;
23404 GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object2;
23405 GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering;
23406 GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering_shared_edge;
23407 GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_buffer_object;
23408 GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_data_range;
23409 GLEW_VAR_EXPORT GLboolean __GLEW_NV_platform_binary;
23410 GLEW_VAR_EXPORT GLboolean __GLEW_NV_point_sprite;
23411 GLEW_VAR_EXPORT GLboolean __GLEW_NV_polygon_mode;
23412 GLEW_VAR_EXPORT GLboolean __GLEW_NV_present_video;
23413 GLEW_VAR_EXPORT GLboolean __GLEW_NV_primitive_restart;
23414 GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_depth;
23415 GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_depth_stencil;
23416 GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_stencil;
23417 GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners;
23418 GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners2;
23419 GLEW_VAR_EXPORT GLboolean __GLEW_NV_robustness_video_memory_purge;
23420 GLEW_VAR_EXPORT GLboolean __GLEW_NV_sRGB_formats;
23421 GLEW_VAR_EXPORT GLboolean __GLEW_NV_sample_locations;
23422 GLEW_VAR_EXPORT GLboolean __GLEW_NV_sample_mask_override_coverage;
23423 GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_counters;
23424 GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_float;
23425 GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_float64;
23426 GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_fp16_vector;
23427 GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_int64;
23428 GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_buffer_load;
23429 GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_noperspective_interpolation;
23430 GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_storage_buffer_object;
23431 GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_thread_group;
23432 GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_thread_shuffle;
23433 GLEW_VAR_EXPORT GLboolean __GLEW_NV_shadow_samplers_array;
23434 GLEW_VAR_EXPORT GLboolean __GLEW_NV_shadow_samplers_cube;
23435 GLEW_VAR_EXPORT GLboolean __GLEW_NV_stereo_view_rendering;
23436 GLEW_VAR_EXPORT GLboolean __GLEW_NV_tessellation_program5;
23437 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_emboss;
23438 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_reflection;
23439 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_array;
23440 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_barrier;
23441 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_border_clamp;
23442 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_latc;
23443 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_s3tc;
23444 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_s3tc_update;
23445 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_vtc;
23446 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_env_combine4;
23447 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_expand_normal;
23448 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_multisample;
23449 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_npot_2D_mipmap;
23450 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle;
23451 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle_compressed;
23452 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader;
23453 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader2;
23454 GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader3;
23455 GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback;
23456 GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback2;
23457 GLEW_VAR_EXPORT GLboolean __GLEW_NV_uniform_buffer_unified_memory;
23458 GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop;
23459 GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range;
23460 GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range2;
23461 GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_attrib_integer_64bit;
23462 GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_buffer_unified_memory;
23463 GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program;
23464 GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program1_1;
23465 GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2;
23466 GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2_option;
23467 GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program3;
23468 GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program4;
23469 GLEW_VAR_EXPORT GLboolean __GLEW_NV_video_capture;
23470 GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_array;
23471 GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_array2;
23472 GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_swizzle;
23473 GLEW_VAR_EXPORT GLboolean __GLEW_OES_byte_coordinates;
23474 GLEW_VAR_EXPORT GLboolean __GLEW_OML_interlace;
23475 GLEW_VAR_EXPORT GLboolean __GLEW_OML_resample;
23476 GLEW_VAR_EXPORT GLboolean __GLEW_OML_subsample;
23477 GLEW_VAR_EXPORT GLboolean __GLEW_OVR_multiview;
23478 GLEW_VAR_EXPORT GLboolean __GLEW_OVR_multiview2;
23479 GLEW_VAR_EXPORT GLboolean __GLEW_OVR_multiview_multisampled_render_to_texture;
23480 GLEW_VAR_EXPORT GLboolean __GLEW_PGI_misc_hints;
23481 GLEW_VAR_EXPORT GLboolean __GLEW_PGI_vertex_hints;
23482 GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_alpha_test;
23483 GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_binning_control;
23484 GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_driver_control;
23485 GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_extended_get;
23486 GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_extended_get2;
23487 GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_framebuffer_foveated;
23488 GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_perfmon_global_mode;
23489 GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_shader_framebuffer_fetch_noncoherent;
23490 GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_tiled_rendering;
23491 GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_writeonly_rendering;
23492 GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_ES1_0_compatibility;
23493 GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_ES1_1_compatibility;
23494 GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_enable;
23495 GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_error_string;
23496 GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_extension_query;
23497 GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_log;
23498 GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_proc_address;
23499 GLEW_VAR_EXPORT GLboolean __GLEW_REND_screen_coordinates;
23500 GLEW_VAR_EXPORT GLboolean __GLEW_S3_s3tc;
23501 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_clip_band_hint;
23502 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_color_range;
23503 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_detail_texture;
23504 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_fog_function;
23505 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_generate_mipmap;
23506 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_line_texgen;
23507 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multisample;
23508 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multitexture;
23509 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_pixel_texture;
23510 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_point_line_texgen;
23511 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_shared_multisample;
23512 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_sharpen_texture;
23513 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture4D;
23514 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_border_clamp;
23515 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_edge_clamp;
23516 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_filter4;
23517 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_lod;
23518 GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_select;
23519 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async;
23520 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_histogram;
23521 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_pixel;
23522 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_bali_g_instruments;
23523 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_bali_r_instruments;
23524 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_bali_timer_instruments;
23525 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_alpha_minmax;
23526 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_cadd;
23527 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_cmultiply;
23528 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_calligraphic_fragment;
23529 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_clipmap;
23530 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_color_matrix_accuracy;
23531 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_color_table_index_mode;
23532 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_complex_polar;
23533 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_convolution_accuracy;
23534 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_cube_map;
23535 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_cylinder_texgen;
23536 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_datapipe;
23537 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_decimation;
23538 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_pass_instrument;
23539 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_texture;
23540 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_dvc;
23541 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_flush_raster;
23542 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_blend;
23543 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_factor_to_alpha;
23544 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_layers;
23545 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_offset;
23546 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_patchy;
23547 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_scale;
23548 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_texture;
23549 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_lighting_space;
23550 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_specular_lighting;
23551 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragments_instrument;
23552 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_framezoom;
23553 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_icc_texture;
23554 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_igloo_interface;
23555 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_image_compression;
23556 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_impact_pixel_texture;
23557 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_instrument_error;
23558 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_interlace;
23559 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ir_instrument1;
23560 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_line_quality_hint;
23561 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_list_priority;
23562 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_mpeg1;
23563 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_mpeg2;
23564 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_nonlinear_lighting_pervertex;
23565 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_nurbs_eval;
23566 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_occlusion_instrument;
23567 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_packed_6bytes;
23568 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture;
23569 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_bits;
23570 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_lod;
23571 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_tiles;
23572 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_polynomial_ffd;
23573 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_quad_mesh;
23574 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_reference_plane;
23575 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_resample;
23576 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_scalebias_hint;
23577 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow;
23578 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow_ambient;
23579 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_slim;
23580 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_spotlight_cutoff;
23581 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_sprite;
23582 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_subdiv_patch;
23583 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_subsample;
23584 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_tag_sample_buffer;
23585 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_add_env;
23586 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_coordinate_clamp;
23587 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_lod_bias;
23588 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_mipmap_anisotropic;
23589 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_multi_buffer;
23590 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_phase;
23591 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_range;
23592 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_scale_bias;
23593 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_supersample;
23594 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vector_ops;
23595 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_array_object;
23596 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip;
23597 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip_hint;
23598 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb;
23599 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb_subsample;
23600 GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcba;
23601 GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_matrix;
23602 GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_table;
23603 GLEW_VAR_EXPORT GLboolean __GLEW_SGI_complex;
23604 GLEW_VAR_EXPORT GLboolean __GLEW_SGI_complex_type;
23605 GLEW_VAR_EXPORT GLboolean __GLEW_SGI_fft;
23606 GLEW_VAR_EXPORT GLboolean __GLEW_SGI_texture_color_table;
23607 GLEW_VAR_EXPORT GLboolean __GLEW_SUNX_constant_data;
23608 GLEW_VAR_EXPORT GLboolean __GLEW_SUN_convolution_border_modes;
23609 GLEW_VAR_EXPORT GLboolean __GLEW_SUN_global_alpha;
23610 GLEW_VAR_EXPORT GLboolean __GLEW_SUN_mesh_array;
23611 GLEW_VAR_EXPORT GLboolean __GLEW_SUN_read_video_pixels;
23612 GLEW_VAR_EXPORT GLboolean __GLEW_SUN_slice_accum;
23613 GLEW_VAR_EXPORT GLboolean __GLEW_SUN_triangle_list;
23614 GLEW_VAR_EXPORT GLboolean __GLEW_SUN_vertex;
23615 GLEW_VAR_EXPORT GLboolean __GLEW_WIN_phong_shading;
23616 GLEW_VAR_EXPORT GLboolean __GLEW_WIN_scene_markerXXX;
23617 GLEW_VAR_EXPORT GLboolean __GLEW_WIN_specular_fog;
23618 GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint;
23619 /* ------------------------------------------------------------------------- */
23620 
23621 /* error codes */
23622 #define GLEW_OK 0
23623 #define GLEW_NO_ERROR 0
23624 #define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */
23625 #define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* Need at least OpenGL 1.1 */
23626 #define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* Need at least GLX 1.2 */
23627 #define GLEW_ERROR_NO_GLX_DISPLAY 4 /* Need GLX display for GLX support */
23628 
23629 /* string codes */
23630 #define GLEW_VERSION 1
23631 #define GLEW_VERSION_MAJOR 2
23632 #define GLEW_VERSION_MINOR 3
23633 #define GLEW_VERSION_MICRO 4
23634 
23635 /* ------------------------------------------------------------------------- */
23636 
23637 /* GLEW version info */
23638 
23639 /*
23640 VERSION 2.1.0
23641 VERSION_MAJOR 2
23642 VERSION_MINOR 1
23643 VERSION_MICRO 0
23644 */
23645 
23646 /* API */
23647 GLEWAPI GLenum GLEWAPIENTRY glewInit (void);
23648 GLEWAPI GLboolean GLEWAPIENTRY glewIsSupported (const char *name);
23649 #define glewIsExtensionSupported(x) glewIsSupported(x)
23650 
23651 #ifndef GLEW_GET_VAR
23652 #define GLEW_GET_VAR(x) (*(const GLboolean*)&x)
23653 #endif
23654 
23655 #ifndef GLEW_GET_FUN
23656 #define GLEW_GET_FUN(x) x
23657 #endif
23658 
23659 GLEWAPI GLboolean glewExperimental;
23660 GLEWAPI GLboolean GLEWAPIENTRY glewGetExtension (const char *name);
23661 GLEWAPI const GLubyte * GLEWAPIENTRY glewGetErrorString (GLenum error);
23662 GLEWAPI const GLubyte * GLEWAPIENTRY glewGetString (GLenum name);
23663 
23664 #ifdef __cplusplus
23665 }
23666 #endif
23667 
23668 #ifdef GLEW_APIENTRY_DEFINED
23669 #undef GLEW_APIENTRY_DEFINED
23670 #undef APIENTRY
23671 #endif
23672 
23673 #ifdef GLEW_CALLBACK_DEFINED
23674 #undef GLEW_CALLBACK_DEFINED
23675 #undef CALLBACK
23676 #endif
23677 
23678 #ifdef GLEW_WINGDIAPI_DEFINED
23679 #undef GLEW_WINGDIAPI_DEFINED
23680 #undef WINGDIAPI
23681 #endif
23682 
23683 #undef GLAPI
23684 /* #undef GLEWAPI */
23685 
23686 #endif /* __glew_h__ */
+ + + + + diff --git a/doc/html/glew__head_8h_source.html b/doc/html/glew__head_8h_source.html new file mode 100644 index 00000000..4b1d8506 --- /dev/null +++ b/doc/html/glew__head_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/auto/src/glew_head.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
glew_head.h
+
+
+
1 #ifndef __glew_h__
2 #define __glew_h__
3 #define __GLEW_H__
4 
5 #if defined(__gl_h_) || defined(__GL_H__) || defined(_GL_H) || defined(__X_GL_H)
6 #error gl.h included before glew.h
7 #endif
8 #if defined(__gl2_h_)
9 #error gl2.h included before glew.h
10 #endif
11 #if defined(__gltypes_h_)
12 #error gltypes.h included before glew.h
13 #endif
14 #if defined(__REGAL_H__)
15 #error Regal.h included before glew.h
16 #endif
17 #if defined(__glext_h_) || defined(__GLEXT_H_)
18 #error glext.h included before glew.h
19 #endif
20 #if defined(__gl_ATI_h_)
21 #error glATI.h included before glew.h
22 #endif
23 
24 #define __gl_h_
25 #define __gl2_h_
26 #define __GL_H__
27 #define _GL_H
28 #define __gltypes_h_
29 #define __REGAL_H__
30 #define __X_GL_H
31 #define __glext_h_
32 #define __GLEXT_H_
33 #define __gl_ATI_h_
34 
35 #if defined(_WIN32)
36 
37 /*
38  * GLEW does not include <windows.h> to avoid name space pollution.
39  * GL needs GLAPI and GLAPIENTRY, GLU needs APIENTRY, CALLBACK, and wchar_t
40  * defined properly.
41  */
42 /* <windef.h> and <gl.h>*/
43 #ifdef APIENTRY
44 # ifndef GLAPIENTRY
45 # define GLAPIENTRY APIENTRY
46 # endif
47 # ifndef GLEWAPIENTRY
48 # define GLEWAPIENTRY APIENTRY
49 # endif
50 #else
51 #define GLEW_APIENTRY_DEFINED
52 # if defined(__MINGW32__) || defined(__CYGWIN__) || (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__)
53 # define APIENTRY __stdcall
54 # ifndef GLAPIENTRY
55 # define GLAPIENTRY __stdcall
56 # endif
57 # ifndef GLEWAPIENTRY
58 # define GLEWAPIENTRY __stdcall
59 # endif
60 # else
61 # define APIENTRY
62 # endif
63 #endif
64 #ifndef GLAPI
65 # if defined(__MINGW32__) || defined(__CYGWIN__)
66 # define GLAPI extern
67 # endif
68 #endif
69 /* <winnt.h> */
70 #ifndef CALLBACK
71 #define GLEW_CALLBACK_DEFINED
72 # if defined(__MINGW32__) || defined(__CYGWIN__)
73 # define CALLBACK __attribute__ ((__stdcall__))
74 # elif (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS)
75 # define CALLBACK __stdcall
76 # else
77 # define CALLBACK
78 # endif
79 #endif
80 /* <wingdi.h> and <winnt.h> */
81 #ifndef WINGDIAPI
82 #define GLEW_WINGDIAPI_DEFINED
83 #define WINGDIAPI __declspec(dllimport)
84 #endif
85 /* <ctype.h> */
86 #if (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(_WCHAR_T_DEFINED)
87 typedef unsigned short wchar_t;
88 # define _WCHAR_T_DEFINED
89 #endif
90 /* <stddef.h> */
91 #if !defined(_W64)
92 # if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && defined(_MSC_VER) && _MSC_VER >= 1300
93 # define _W64 __w64
94 # else
95 # define _W64
96 # endif
97 #endif
98 #if !defined(_PTRDIFF_T_DEFINED) && !defined(_PTRDIFF_T_) && !defined(__MINGW64__)
99 # ifdef _WIN64
100 typedef __int64 ptrdiff_t;
101 # else
102 typedef _W64 int ptrdiff_t;
103 # endif
104 # define _PTRDIFF_T_DEFINED
105 # define _PTRDIFF_T_
106 #endif
107 
108 #ifndef GLAPI
109 # if defined(__MINGW32__) || defined(__CYGWIN__)
110 # define GLAPI extern
111 # else
112 # define GLAPI WINGDIAPI
113 # endif
114 #endif
115 
116 /*
117  * GLEW_STATIC is defined for static library.
118  * GLEW_BUILD is defined for building the DLL library.
119  */
120 
121 #ifdef GLEW_STATIC
122 # define GLEWAPI extern
123 #else
124 # ifdef GLEW_BUILD
125 # define GLEWAPI extern __declspec(dllexport)
126 # else
127 # define GLEWAPI extern __declspec(dllimport)
128 # endif
129 #endif
130 
131 #else /* _UNIX */
132 
133 /*
134  * Needed for ptrdiff_t in turn needed by VBO. This is defined by ISO
135  * C. On my system, this amounts to _3 lines_ of included code, all of
136  * them pretty much harmless. If you know of a way of detecting 32 vs
137  * 64 _targets_ at compile time you are free to replace this with
138  * something that's portable. For now, _this_ is the portable solution.
139  * (mem, 2004-01-04)
140  */
141 
142 #include <stddef.h>
143 
144 /* SGI MIPSPro doesn't like stdint.h in C++ mode */
145 /* ID: 3376260 Solaris 9 has inttypes.h, but not stdint.h */
146 
147 #if (defined(__sgi) || defined(__sun)) && !defined(__GNUC__)
148 #include <inttypes.h>
149 #else
150 #include <stdint.h>
151 #endif
152 
153 #define GLEW_APIENTRY_DEFINED
154 #define APIENTRY
155 
156 /*
157  * GLEW_STATIC is defined for static library.
158  */
159 
160 #ifdef GLEW_STATIC
161 # define GLEWAPI extern
162 #else
163 # if defined(__GNUC__) && __GNUC__>=4
164 # define GLEWAPI extern __attribute__ ((visibility("default")))
165 # elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
166 # define GLEWAPI extern __global
167 # else
168 # define GLEWAPI extern
169 # endif
170 #endif
171 
172 /* <glu.h> */
173 #ifndef GLAPI
174 #define GLAPI extern
175 #endif
176 
177 #endif /* _WIN32 */
178 
179 #ifndef GLAPIENTRY
180 #define GLAPIENTRY
181 #endif
182 
183 #ifndef GLEWAPIENTRY
184 #define GLEWAPIENTRY
185 #endif
186 
187 #define GLEW_VAR_EXPORT GLEWAPI
188 #define GLEW_FUN_EXPORT GLEWAPI
189 
190 #ifdef __cplusplus
191 extern "C" {
192 #endif
193 
194 /* ----------------------------- GL_VERSION_1_1 ---------------------------- */
195 
196 #ifndef GL_VERSION_1_1
197 #define GL_VERSION_1_1 1
198 
199 typedef unsigned int GLenum;
200 typedef unsigned int GLbitfield;
201 typedef unsigned int GLuint;
202 typedef int GLint;
203 typedef int GLsizei;
204 typedef unsigned char GLboolean;
205 typedef signed char GLbyte;
206 typedef short GLshort;
207 typedef unsigned char GLubyte;
208 typedef unsigned short GLushort;
209 typedef unsigned long GLulong;
210 typedef float GLfloat;
211 typedef float GLclampf;
212 typedef double GLdouble;
213 typedef double GLclampd;
214 typedef void GLvoid;
215 #if defined(_MSC_VER) && _MSC_VER < 1400
216 typedef __int64 GLint64EXT;
217 typedef unsigned __int64 GLuint64EXT;
218 #elif defined(_MSC_VER) || defined(__BORLANDC__)
219 typedef signed long long GLint64EXT;
220 typedef unsigned long long GLuint64EXT;
221 #else
222 # if defined(__MINGW32__) || defined(__CYGWIN__)
223 #include <inttypes.h>
224 # endif
225 typedef int64_t GLint64EXT;
226 typedef uint64_t GLuint64EXT;
227 #endif
228 typedef GLint64EXT GLint64;
229 typedef GLuint64EXT GLuint64;
230 typedef struct __GLsync *GLsync;
231 
232 typedef char GLchar;
233 
234 #define GL_ZERO 0
235 #define GL_FALSE 0
236 #define GL_LOGIC_OP 0x0BF1
237 #define GL_NONE 0
238 #define GL_TEXTURE_COMPONENTS 0x1003
239 #define GL_NO_ERROR 0
240 #define GL_POINTS 0x0000
241 #define GL_CURRENT_BIT 0x00000001
242 #define GL_TRUE 1
243 #define GL_ONE 1
244 #define GL_CLIENT_PIXEL_STORE_BIT 0x00000001
245 #define GL_LINES 0x0001
246 #define GL_LINE_LOOP 0x0002
247 #define GL_POINT_BIT 0x00000002
248 #define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002
249 #define GL_LINE_STRIP 0x0003
250 #define GL_LINE_BIT 0x00000004
251 #define GL_TRIANGLES 0x0004
252 #define GL_TRIANGLE_STRIP 0x0005
253 #define GL_TRIANGLE_FAN 0x0006
254 #define GL_QUADS 0x0007
255 #define GL_QUAD_STRIP 0x0008
256 #define GL_POLYGON_BIT 0x00000008
257 #define GL_POLYGON 0x0009
258 #define GL_POLYGON_STIPPLE_BIT 0x00000010
259 #define GL_PIXEL_MODE_BIT 0x00000020
260 #define GL_LIGHTING_BIT 0x00000040
261 #define GL_FOG_BIT 0x00000080
262 #define GL_DEPTH_BUFFER_BIT 0x00000100
263 #define GL_ACCUM 0x0100
264 #define GL_LOAD 0x0101
265 #define GL_RETURN 0x0102
266 #define GL_MULT 0x0103
267 #define GL_ADD 0x0104
268 #define GL_NEVER 0x0200
269 #define GL_ACCUM_BUFFER_BIT 0x00000200
270 #define GL_LESS 0x0201
271 #define GL_EQUAL 0x0202
272 #define GL_LEQUAL 0x0203
273 #define GL_GREATER 0x0204
274 #define GL_NOTEQUAL 0x0205
275 #define GL_GEQUAL 0x0206
276 #define GL_ALWAYS 0x0207
277 #define GL_SRC_COLOR 0x0300
278 #define GL_ONE_MINUS_SRC_COLOR 0x0301
279 #define GL_SRC_ALPHA 0x0302
280 #define GL_ONE_MINUS_SRC_ALPHA 0x0303
281 #define GL_DST_ALPHA 0x0304
282 #define GL_ONE_MINUS_DST_ALPHA 0x0305
283 #define GL_DST_COLOR 0x0306
284 #define GL_ONE_MINUS_DST_COLOR 0x0307
285 #define GL_SRC_ALPHA_SATURATE 0x0308
286 #define GL_STENCIL_BUFFER_BIT 0x00000400
287 #define GL_FRONT_LEFT 0x0400
288 #define GL_FRONT_RIGHT 0x0401
289 #define GL_BACK_LEFT 0x0402
290 #define GL_BACK_RIGHT 0x0403
291 #define GL_FRONT 0x0404
292 #define GL_BACK 0x0405
293 #define GL_LEFT 0x0406
294 #define GL_RIGHT 0x0407
295 #define GL_FRONT_AND_BACK 0x0408
296 #define GL_AUX0 0x0409
297 #define GL_AUX1 0x040A
298 #define GL_AUX2 0x040B
299 #define GL_AUX3 0x040C
300 #define GL_INVALID_ENUM 0x0500
301 #define GL_INVALID_VALUE 0x0501
302 #define GL_INVALID_OPERATION 0x0502
303 #define GL_STACK_OVERFLOW 0x0503
304 #define GL_STACK_UNDERFLOW 0x0504
305 #define GL_OUT_OF_MEMORY 0x0505
306 #define GL_2D 0x0600
307 #define GL_3D 0x0601
308 #define GL_3D_COLOR 0x0602
309 #define GL_3D_COLOR_TEXTURE 0x0603
310 #define GL_4D_COLOR_TEXTURE 0x0604
311 #define GL_PASS_THROUGH_TOKEN 0x0700
312 #define GL_POINT_TOKEN 0x0701
313 #define GL_LINE_TOKEN 0x0702
314 #define GL_POLYGON_TOKEN 0x0703
315 #define GL_BITMAP_TOKEN 0x0704
316 #define GL_DRAW_PIXEL_TOKEN 0x0705
317 #define GL_COPY_PIXEL_TOKEN 0x0706
318 #define GL_LINE_RESET_TOKEN 0x0707
319 #define GL_EXP 0x0800
320 #define GL_VIEWPORT_BIT 0x00000800
321 #define GL_EXP2 0x0801
322 #define GL_CW 0x0900
323 #define GL_CCW 0x0901
324 #define GL_COEFF 0x0A00
325 #define GL_ORDER 0x0A01
326 #define GL_DOMAIN 0x0A02
327 #define GL_CURRENT_COLOR 0x0B00
328 #define GL_CURRENT_INDEX 0x0B01
329 #define GL_CURRENT_NORMAL 0x0B02
330 #define GL_CURRENT_TEXTURE_COORDS 0x0B03
331 #define GL_CURRENT_RASTER_COLOR 0x0B04
332 #define GL_CURRENT_RASTER_INDEX 0x0B05
333 #define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06
334 #define GL_CURRENT_RASTER_POSITION 0x0B07
335 #define GL_CURRENT_RASTER_POSITION_VALID 0x0B08
336 #define GL_CURRENT_RASTER_DISTANCE 0x0B09
337 #define GL_POINT_SMOOTH 0x0B10
338 #define GL_POINT_SIZE 0x0B11
339 #define GL_POINT_SIZE_RANGE 0x0B12
340 #define GL_POINT_SIZE_GRANULARITY 0x0B13
341 #define GL_LINE_SMOOTH 0x0B20
342 #define GL_LINE_WIDTH 0x0B21
343 #define GL_LINE_WIDTH_RANGE 0x0B22
344 #define GL_LINE_WIDTH_GRANULARITY 0x0B23
345 #define GL_LINE_STIPPLE 0x0B24
346 #define GL_LINE_STIPPLE_PATTERN 0x0B25
347 #define GL_LINE_STIPPLE_REPEAT 0x0B26
348 #define GL_LIST_MODE 0x0B30
349 #define GL_MAX_LIST_NESTING 0x0B31
350 #define GL_LIST_BASE 0x0B32
351 #define GL_LIST_INDEX 0x0B33
352 #define GL_POLYGON_MODE 0x0B40
353 #define GL_POLYGON_SMOOTH 0x0B41
354 #define GL_POLYGON_STIPPLE 0x0B42
355 #define GL_EDGE_FLAG 0x0B43
356 #define GL_CULL_FACE 0x0B44
357 #define GL_CULL_FACE_MODE 0x0B45
358 #define GL_FRONT_FACE 0x0B46
359 #define GL_LIGHTING 0x0B50
360 #define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51
361 #define GL_LIGHT_MODEL_TWO_SIDE 0x0B52
362 #define GL_LIGHT_MODEL_AMBIENT 0x0B53
363 #define GL_SHADE_MODEL 0x0B54
364 #define GL_COLOR_MATERIAL_FACE 0x0B55
365 #define GL_COLOR_MATERIAL_PARAMETER 0x0B56
366 #define GL_COLOR_MATERIAL 0x0B57
367 #define GL_FOG 0x0B60
368 #define GL_FOG_INDEX 0x0B61
369 #define GL_FOG_DENSITY 0x0B62
370 #define GL_FOG_START 0x0B63
371 #define GL_FOG_END 0x0B64
372 #define GL_FOG_MODE 0x0B65
373 #define GL_FOG_COLOR 0x0B66
374 #define GL_DEPTH_RANGE 0x0B70
375 #define GL_DEPTH_TEST 0x0B71
376 #define GL_DEPTH_WRITEMASK 0x0B72
377 #define GL_DEPTH_CLEAR_VALUE 0x0B73
378 #define GL_DEPTH_FUNC 0x0B74
379 #define GL_ACCUM_CLEAR_VALUE 0x0B80
380 #define GL_STENCIL_TEST 0x0B90
381 #define GL_STENCIL_CLEAR_VALUE 0x0B91
382 #define GL_STENCIL_FUNC 0x0B92
383 #define GL_STENCIL_VALUE_MASK 0x0B93
384 #define GL_STENCIL_FAIL 0x0B94
385 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
386 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
387 #define GL_STENCIL_REF 0x0B97
388 #define GL_STENCIL_WRITEMASK 0x0B98
389 #define GL_MATRIX_MODE 0x0BA0
390 #define GL_NORMALIZE 0x0BA1
391 #define GL_VIEWPORT 0x0BA2
392 #define GL_MODELVIEW_STACK_DEPTH 0x0BA3
393 #define GL_PROJECTION_STACK_DEPTH 0x0BA4
394 #define GL_TEXTURE_STACK_DEPTH 0x0BA5
395 #define GL_MODELVIEW_MATRIX 0x0BA6
396 #define GL_PROJECTION_MATRIX 0x0BA7
397 #define GL_TEXTURE_MATRIX 0x0BA8
398 #define GL_ATTRIB_STACK_DEPTH 0x0BB0
399 #define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1
400 #define GL_ALPHA_TEST 0x0BC0
401 #define GL_ALPHA_TEST_FUNC 0x0BC1
402 #define GL_ALPHA_TEST_REF 0x0BC2
403 #define GL_DITHER 0x0BD0
404 #define GL_BLEND_DST 0x0BE0
405 #define GL_BLEND_SRC 0x0BE1
406 #define GL_BLEND 0x0BE2
407 #define GL_LOGIC_OP_MODE 0x0BF0
408 #define GL_INDEX_LOGIC_OP 0x0BF1
409 #define GL_COLOR_LOGIC_OP 0x0BF2
410 #define GL_AUX_BUFFERS 0x0C00
411 #define GL_DRAW_BUFFER 0x0C01
412 #define GL_READ_BUFFER 0x0C02
413 #define GL_SCISSOR_BOX 0x0C10
414 #define GL_SCISSOR_TEST 0x0C11
415 #define GL_INDEX_CLEAR_VALUE 0x0C20
416 #define GL_INDEX_WRITEMASK 0x0C21
417 #define GL_COLOR_CLEAR_VALUE 0x0C22
418 #define GL_COLOR_WRITEMASK 0x0C23
419 #define GL_INDEX_MODE 0x0C30
420 #define GL_RGBA_MODE 0x0C31
421 #define GL_DOUBLEBUFFER 0x0C32
422 #define GL_STEREO 0x0C33
423 #define GL_RENDER_MODE 0x0C40
424 #define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50
425 #define GL_POINT_SMOOTH_HINT 0x0C51
426 #define GL_LINE_SMOOTH_HINT 0x0C52
427 #define GL_POLYGON_SMOOTH_HINT 0x0C53
428 #define GL_FOG_HINT 0x0C54
429 #define GL_TEXTURE_GEN_S 0x0C60
430 #define GL_TEXTURE_GEN_T 0x0C61
431 #define GL_TEXTURE_GEN_R 0x0C62
432 #define GL_TEXTURE_GEN_Q 0x0C63
433 #define GL_PIXEL_MAP_I_TO_I 0x0C70
434 #define GL_PIXEL_MAP_S_TO_S 0x0C71
435 #define GL_PIXEL_MAP_I_TO_R 0x0C72
436 #define GL_PIXEL_MAP_I_TO_G 0x0C73
437 #define GL_PIXEL_MAP_I_TO_B 0x0C74
438 #define GL_PIXEL_MAP_I_TO_A 0x0C75
439 #define GL_PIXEL_MAP_R_TO_R 0x0C76
440 #define GL_PIXEL_MAP_G_TO_G 0x0C77
441 #define GL_PIXEL_MAP_B_TO_B 0x0C78
442 #define GL_PIXEL_MAP_A_TO_A 0x0C79
443 #define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0
444 #define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1
445 #define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2
446 #define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3
447 #define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4
448 #define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5
449 #define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6
450 #define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7
451 #define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8
452 #define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9
453 #define GL_UNPACK_SWAP_BYTES 0x0CF0
454 #define GL_UNPACK_LSB_FIRST 0x0CF1
455 #define GL_UNPACK_ROW_LENGTH 0x0CF2
456 #define GL_UNPACK_SKIP_ROWS 0x0CF3
457 #define GL_UNPACK_SKIP_PIXELS 0x0CF4
458 #define GL_UNPACK_ALIGNMENT 0x0CF5
459 #define GL_PACK_SWAP_BYTES 0x0D00
460 #define GL_PACK_LSB_FIRST 0x0D01
461 #define GL_PACK_ROW_LENGTH 0x0D02
462 #define GL_PACK_SKIP_ROWS 0x0D03
463 #define GL_PACK_SKIP_PIXELS 0x0D04
464 #define GL_PACK_ALIGNMENT 0x0D05
465 #define GL_MAP_COLOR 0x0D10
466 #define GL_MAP_STENCIL 0x0D11
467 #define GL_INDEX_SHIFT 0x0D12
468 #define GL_INDEX_OFFSET 0x0D13
469 #define GL_RED_SCALE 0x0D14
470 #define GL_RED_BIAS 0x0D15
471 #define GL_ZOOM_X 0x0D16
472 #define GL_ZOOM_Y 0x0D17
473 #define GL_GREEN_SCALE 0x0D18
474 #define GL_GREEN_BIAS 0x0D19
475 #define GL_BLUE_SCALE 0x0D1A
476 #define GL_BLUE_BIAS 0x0D1B
477 #define GL_ALPHA_SCALE 0x0D1C
478 #define GL_ALPHA_BIAS 0x0D1D
479 #define GL_DEPTH_SCALE 0x0D1E
480 #define GL_DEPTH_BIAS 0x0D1F
481 #define GL_MAX_EVAL_ORDER 0x0D30
482 #define GL_MAX_LIGHTS 0x0D31
483 #define GL_MAX_CLIP_PLANES 0x0D32
484 #define GL_MAX_TEXTURE_SIZE 0x0D33
485 #define GL_MAX_PIXEL_MAP_TABLE 0x0D34
486 #define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35
487 #define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36
488 #define GL_MAX_NAME_STACK_DEPTH 0x0D37
489 #define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38
490 #define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39
491 #define GL_MAX_VIEWPORT_DIMS 0x0D3A
492 #define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B
493 #define GL_SUBPIXEL_BITS 0x0D50
494 #define GL_INDEX_BITS 0x0D51
495 #define GL_RED_BITS 0x0D52
496 #define GL_GREEN_BITS 0x0D53
497 #define GL_BLUE_BITS 0x0D54
498 #define GL_ALPHA_BITS 0x0D55
499 #define GL_DEPTH_BITS 0x0D56
500 #define GL_STENCIL_BITS 0x0D57
501 #define GL_ACCUM_RED_BITS 0x0D58
502 #define GL_ACCUM_GREEN_BITS 0x0D59
503 #define GL_ACCUM_BLUE_BITS 0x0D5A
504 #define GL_ACCUM_ALPHA_BITS 0x0D5B
505 #define GL_NAME_STACK_DEPTH 0x0D70
506 #define GL_AUTO_NORMAL 0x0D80
507 #define GL_MAP1_COLOR_4 0x0D90
508 #define GL_MAP1_INDEX 0x0D91
509 #define GL_MAP1_NORMAL 0x0D92
510 #define GL_MAP1_TEXTURE_COORD_1 0x0D93
511 #define GL_MAP1_TEXTURE_COORD_2 0x0D94
512 #define GL_MAP1_TEXTURE_COORD_3 0x0D95
513 #define GL_MAP1_TEXTURE_COORD_4 0x0D96
514 #define GL_MAP1_VERTEX_3 0x0D97
515 #define GL_MAP1_VERTEX_4 0x0D98
516 #define GL_MAP2_COLOR_4 0x0DB0
517 #define GL_MAP2_INDEX 0x0DB1
518 #define GL_MAP2_NORMAL 0x0DB2
519 #define GL_MAP2_TEXTURE_COORD_1 0x0DB3
520 #define GL_MAP2_TEXTURE_COORD_2 0x0DB4
521 #define GL_MAP2_TEXTURE_COORD_3 0x0DB5
522 #define GL_MAP2_TEXTURE_COORD_4 0x0DB6
523 #define GL_MAP2_VERTEX_3 0x0DB7
524 #define GL_MAP2_VERTEX_4 0x0DB8
525 #define GL_MAP1_GRID_DOMAIN 0x0DD0
526 #define GL_MAP1_GRID_SEGMENTS 0x0DD1
527 #define GL_MAP2_GRID_DOMAIN 0x0DD2
528 #define GL_MAP2_GRID_SEGMENTS 0x0DD3
529 #define GL_TEXTURE_1D 0x0DE0
530 #define GL_TEXTURE_2D 0x0DE1
531 #define GL_FEEDBACK_BUFFER_POINTER 0x0DF0
532 #define GL_FEEDBACK_BUFFER_SIZE 0x0DF1
533 #define GL_FEEDBACK_BUFFER_TYPE 0x0DF2
534 #define GL_SELECTION_BUFFER_POINTER 0x0DF3
535 #define GL_SELECTION_BUFFER_SIZE 0x0DF4
536 #define GL_TEXTURE_WIDTH 0x1000
537 #define GL_TRANSFORM_BIT 0x00001000
538 #define GL_TEXTURE_HEIGHT 0x1001
539 #define GL_TEXTURE_INTERNAL_FORMAT 0x1003
540 #define GL_TEXTURE_BORDER_COLOR 0x1004
541 #define GL_TEXTURE_BORDER 0x1005
542 #define GL_DONT_CARE 0x1100
543 #define GL_FASTEST 0x1101
544 #define GL_NICEST 0x1102
545 #define GL_AMBIENT 0x1200
546 #define GL_DIFFUSE 0x1201
547 #define GL_SPECULAR 0x1202
548 #define GL_POSITION 0x1203
549 #define GL_SPOT_DIRECTION 0x1204
550 #define GL_SPOT_EXPONENT 0x1205
551 #define GL_SPOT_CUTOFF 0x1206
552 #define GL_CONSTANT_ATTENUATION 0x1207
553 #define GL_LINEAR_ATTENUATION 0x1208
554 #define GL_QUADRATIC_ATTENUATION 0x1209
555 #define GL_COMPILE 0x1300
556 #define GL_COMPILE_AND_EXECUTE 0x1301
557 #define GL_BYTE 0x1400
558 #define GL_UNSIGNED_BYTE 0x1401
559 #define GL_SHORT 0x1402
560 #define GL_UNSIGNED_SHORT 0x1403
561 #define GL_INT 0x1404
562 #define GL_UNSIGNED_INT 0x1405
563 #define GL_FLOAT 0x1406
564 #define GL_2_BYTES 0x1407
565 #define GL_3_BYTES 0x1408
566 #define GL_4_BYTES 0x1409
567 #define GL_DOUBLE 0x140A
568 #define GL_CLEAR 0x1500
569 #define GL_AND 0x1501
570 #define GL_AND_REVERSE 0x1502
571 #define GL_COPY 0x1503
572 #define GL_AND_INVERTED 0x1504
573 #define GL_NOOP 0x1505
574 #define GL_XOR 0x1506
575 #define GL_OR 0x1507
576 #define GL_NOR 0x1508
577 #define GL_EQUIV 0x1509
578 #define GL_INVERT 0x150A
579 #define GL_OR_REVERSE 0x150B
580 #define GL_COPY_INVERTED 0x150C
581 #define GL_OR_INVERTED 0x150D
582 #define GL_NAND 0x150E
583 #define GL_SET 0x150F
584 #define GL_EMISSION 0x1600
585 #define GL_SHININESS 0x1601
586 #define GL_AMBIENT_AND_DIFFUSE 0x1602
587 #define GL_COLOR_INDEXES 0x1603
588 #define GL_MODELVIEW 0x1700
589 #define GL_PROJECTION 0x1701
590 #define GL_TEXTURE 0x1702
591 #define GL_COLOR 0x1800
592 #define GL_DEPTH 0x1801
593 #define GL_STENCIL 0x1802
594 #define GL_COLOR_INDEX 0x1900
595 #define GL_STENCIL_INDEX 0x1901
596 #define GL_DEPTH_COMPONENT 0x1902
597 #define GL_RED 0x1903
598 #define GL_GREEN 0x1904
599 #define GL_BLUE 0x1905
600 #define GL_ALPHA 0x1906
601 #define GL_RGB 0x1907
602 #define GL_RGBA 0x1908
603 #define GL_LUMINANCE 0x1909
604 #define GL_LUMINANCE_ALPHA 0x190A
605 #define GL_BITMAP 0x1A00
606 #define GL_POINT 0x1B00
607 #define GL_LINE 0x1B01
608 #define GL_FILL 0x1B02
609 #define GL_RENDER 0x1C00
610 #define GL_FEEDBACK 0x1C01
611 #define GL_SELECT 0x1C02
612 #define GL_FLAT 0x1D00
613 #define GL_SMOOTH 0x1D01
614 #define GL_KEEP 0x1E00
615 #define GL_REPLACE 0x1E01
616 #define GL_INCR 0x1E02
617 #define GL_DECR 0x1E03
618 #define GL_VENDOR 0x1F00
619 #define GL_RENDERER 0x1F01
620 #define GL_VERSION 0x1F02
621 #define GL_EXTENSIONS 0x1F03
622 #define GL_S 0x2000
623 #define GL_ENABLE_BIT 0x00002000
624 #define GL_T 0x2001
625 #define GL_R 0x2002
626 #define GL_Q 0x2003
627 #define GL_MODULATE 0x2100
628 #define GL_DECAL 0x2101
629 #define GL_TEXTURE_ENV_MODE 0x2200
630 #define GL_TEXTURE_ENV_COLOR 0x2201
631 #define GL_TEXTURE_ENV 0x2300
632 #define GL_EYE_LINEAR 0x2400
633 #define GL_OBJECT_LINEAR 0x2401
634 #define GL_SPHERE_MAP 0x2402
635 #define GL_TEXTURE_GEN_MODE 0x2500
636 #define GL_OBJECT_PLANE 0x2501
637 #define GL_EYE_PLANE 0x2502
638 #define GL_NEAREST 0x2600
639 #define GL_LINEAR 0x2601
640 #define GL_NEAREST_MIPMAP_NEAREST 0x2700
641 #define GL_LINEAR_MIPMAP_NEAREST 0x2701
642 #define GL_NEAREST_MIPMAP_LINEAR 0x2702
643 #define GL_LINEAR_MIPMAP_LINEAR 0x2703
644 #define GL_TEXTURE_MAG_FILTER 0x2800
645 #define GL_TEXTURE_MIN_FILTER 0x2801
646 #define GL_TEXTURE_WRAP_S 0x2802
647 #define GL_TEXTURE_WRAP_T 0x2803
648 #define GL_CLAMP 0x2900
649 #define GL_REPEAT 0x2901
650 #define GL_POLYGON_OFFSET_UNITS 0x2A00
651 #define GL_POLYGON_OFFSET_POINT 0x2A01
652 #define GL_POLYGON_OFFSET_LINE 0x2A02
653 #define GL_R3_G3_B2 0x2A10
654 #define GL_V2F 0x2A20
655 #define GL_V3F 0x2A21
656 #define GL_C4UB_V2F 0x2A22
657 #define GL_C4UB_V3F 0x2A23
658 #define GL_C3F_V3F 0x2A24
659 #define GL_N3F_V3F 0x2A25
660 #define GL_C4F_N3F_V3F 0x2A26
661 #define GL_T2F_V3F 0x2A27
662 #define GL_T4F_V4F 0x2A28
663 #define GL_T2F_C4UB_V3F 0x2A29
664 #define GL_T2F_C3F_V3F 0x2A2A
665 #define GL_T2F_N3F_V3F 0x2A2B
666 #define GL_T2F_C4F_N3F_V3F 0x2A2C
667 #define GL_T4F_C4F_N3F_V4F 0x2A2D
668 #define GL_CLIP_PLANE0 0x3000
669 #define GL_CLIP_PLANE1 0x3001
670 #define GL_CLIP_PLANE2 0x3002
671 #define GL_CLIP_PLANE3 0x3003
672 #define GL_CLIP_PLANE4 0x3004
673 #define GL_CLIP_PLANE5 0x3005
674 #define GL_LIGHT0 0x4000
675 #define GL_COLOR_BUFFER_BIT 0x00004000
676 #define GL_LIGHT1 0x4001
677 #define GL_LIGHT2 0x4002
678 #define GL_LIGHT3 0x4003
679 #define GL_LIGHT4 0x4004
680 #define GL_LIGHT5 0x4005
681 #define GL_LIGHT6 0x4006
682 #define GL_LIGHT7 0x4007
683 #define GL_HINT_BIT 0x00008000
684 #define GL_POLYGON_OFFSET_FILL 0x8037
685 #define GL_POLYGON_OFFSET_FACTOR 0x8038
686 #define GL_ALPHA4 0x803B
687 #define GL_ALPHA8 0x803C
688 #define GL_ALPHA12 0x803D
689 #define GL_ALPHA16 0x803E
690 #define GL_LUMINANCE4 0x803F
691 #define GL_LUMINANCE8 0x8040
692 #define GL_LUMINANCE12 0x8041
693 #define GL_LUMINANCE16 0x8042
694 #define GL_LUMINANCE4_ALPHA4 0x8043
695 #define GL_LUMINANCE6_ALPHA2 0x8044
696 #define GL_LUMINANCE8_ALPHA8 0x8045
697 #define GL_LUMINANCE12_ALPHA4 0x8046
698 #define GL_LUMINANCE12_ALPHA12 0x8047
699 #define GL_LUMINANCE16_ALPHA16 0x8048
700 #define GL_INTENSITY 0x8049
701 #define GL_INTENSITY4 0x804A
702 #define GL_INTENSITY8 0x804B
703 #define GL_INTENSITY12 0x804C
704 #define GL_INTENSITY16 0x804D
705 #define GL_RGB4 0x804F
706 #define GL_RGB5 0x8050
707 #define GL_RGB8 0x8051
708 #define GL_RGB10 0x8052
709 #define GL_RGB12 0x8053
710 #define GL_RGB16 0x8054
711 #define GL_RGBA2 0x8055
712 #define GL_RGBA4 0x8056
713 #define GL_RGB5_A1 0x8057
714 #define GL_RGBA8 0x8058
715 #define GL_RGB10_A2 0x8059
716 #define GL_RGBA12 0x805A
717 #define GL_RGBA16 0x805B
718 #define GL_TEXTURE_RED_SIZE 0x805C
719 #define GL_TEXTURE_GREEN_SIZE 0x805D
720 #define GL_TEXTURE_BLUE_SIZE 0x805E
721 #define GL_TEXTURE_ALPHA_SIZE 0x805F
722 #define GL_TEXTURE_LUMINANCE_SIZE 0x8060
723 #define GL_TEXTURE_INTENSITY_SIZE 0x8061
724 #define GL_PROXY_TEXTURE_1D 0x8063
725 #define GL_PROXY_TEXTURE_2D 0x8064
726 #define GL_TEXTURE_PRIORITY 0x8066
727 #define GL_TEXTURE_RESIDENT 0x8067
728 #define GL_TEXTURE_BINDING_1D 0x8068
729 #define GL_TEXTURE_BINDING_2D 0x8069
730 #define GL_VERTEX_ARRAY 0x8074
731 #define GL_NORMAL_ARRAY 0x8075
732 #define GL_COLOR_ARRAY 0x8076
733 #define GL_INDEX_ARRAY 0x8077
734 #define GL_TEXTURE_COORD_ARRAY 0x8078
735 #define GL_EDGE_FLAG_ARRAY 0x8079
736 #define GL_VERTEX_ARRAY_SIZE 0x807A
737 #define GL_VERTEX_ARRAY_TYPE 0x807B
738 #define GL_VERTEX_ARRAY_STRIDE 0x807C
739 #define GL_NORMAL_ARRAY_TYPE 0x807E
740 #define GL_NORMAL_ARRAY_STRIDE 0x807F
741 #define GL_COLOR_ARRAY_SIZE 0x8081
742 #define GL_COLOR_ARRAY_TYPE 0x8082
743 #define GL_COLOR_ARRAY_STRIDE 0x8083
744 #define GL_INDEX_ARRAY_TYPE 0x8085
745 #define GL_INDEX_ARRAY_STRIDE 0x8086
746 #define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088
747 #define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089
748 #define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A
749 #define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C
750 #define GL_VERTEX_ARRAY_POINTER 0x808E
751 #define GL_NORMAL_ARRAY_POINTER 0x808F
752 #define GL_COLOR_ARRAY_POINTER 0x8090
753 #define GL_INDEX_ARRAY_POINTER 0x8091
754 #define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092
755 #define GL_EDGE_FLAG_ARRAY_POINTER 0x8093
756 #define GL_COLOR_INDEX1_EXT 0x80E2
757 #define GL_COLOR_INDEX2_EXT 0x80E3
758 #define GL_COLOR_INDEX4_EXT 0x80E4
759 #define GL_COLOR_INDEX8_EXT 0x80E5
760 #define GL_COLOR_INDEX12_EXT 0x80E6
761 #define GL_COLOR_INDEX16_EXT 0x80E7
762 #define GL_EVAL_BIT 0x00010000
763 #define GL_LIST_BIT 0x00020000
764 #define GL_TEXTURE_BIT 0x00040000
765 #define GL_SCISSOR_BIT 0x00080000
766 #define GL_ALL_ATTRIB_BITS 0x000fffff
767 #define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff
768 
769 GLAPI void GLAPIENTRY glAccum (GLenum op, GLfloat value);
770 GLAPI void GLAPIENTRY glAlphaFunc (GLenum func, GLclampf ref);
771 GLAPI GLboolean GLAPIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences);
772 GLAPI void GLAPIENTRY glArrayElement (GLint i);
773 GLAPI void GLAPIENTRY glBegin (GLenum mode);
774 GLAPI void GLAPIENTRY glBindTexture (GLenum target, GLuint texture);
775 GLAPI void GLAPIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
776 GLAPI void GLAPIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
777 GLAPI void GLAPIENTRY glCallList (GLuint list);
778 GLAPI void GLAPIENTRY glCallLists (GLsizei n, GLenum type, const void *lists);
779 GLAPI void GLAPIENTRY glClear (GLbitfield mask);
780 GLAPI void GLAPIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
781 GLAPI void GLAPIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
782 GLAPI void GLAPIENTRY glClearDepth (GLclampd depth);
783 GLAPI void GLAPIENTRY glClearIndex (GLfloat c);
784 GLAPI void GLAPIENTRY glClearStencil (GLint s);
785 GLAPI void GLAPIENTRY glClipPlane (GLenum plane, const GLdouble *equation);
786 GLAPI void GLAPIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue);
787 GLAPI void GLAPIENTRY glColor3bv (const GLbyte *v);
788 GLAPI void GLAPIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue);
789 GLAPI void GLAPIENTRY glColor3dv (const GLdouble *v);
790 GLAPI void GLAPIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue);
791 GLAPI void GLAPIENTRY glColor3fv (const GLfloat *v);
792 GLAPI void GLAPIENTRY glColor3i (GLint red, GLint green, GLint blue);
793 GLAPI void GLAPIENTRY glColor3iv (const GLint *v);
794 GLAPI void GLAPIENTRY glColor3s (GLshort red, GLshort green, GLshort blue);
795 GLAPI void GLAPIENTRY glColor3sv (const GLshort *v);
796 GLAPI void GLAPIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue);
797 GLAPI void GLAPIENTRY glColor3ubv (const GLubyte *v);
798 GLAPI void GLAPIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue);
799 GLAPI void GLAPIENTRY glColor3uiv (const GLuint *v);
800 GLAPI void GLAPIENTRY glColor3us (GLushort red, GLushort green, GLushort blue);
801 GLAPI void GLAPIENTRY glColor3usv (const GLushort *v);
802 GLAPI void GLAPIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
803 GLAPI void GLAPIENTRY glColor4bv (const GLbyte *v);
804 GLAPI void GLAPIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
805 GLAPI void GLAPIENTRY glColor4dv (const GLdouble *v);
806 GLAPI void GLAPIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
807 GLAPI void GLAPIENTRY glColor4fv (const GLfloat *v);
808 GLAPI void GLAPIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha);
809 GLAPI void GLAPIENTRY glColor4iv (const GLint *v);
810 GLAPI void GLAPIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha);
811 GLAPI void GLAPIENTRY glColor4sv (const GLshort *v);
812 GLAPI void GLAPIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
813 GLAPI void GLAPIENTRY glColor4ubv (const GLubyte *v);
814 GLAPI void GLAPIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha);
815 GLAPI void GLAPIENTRY glColor4uiv (const GLuint *v);
816 GLAPI void GLAPIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha);
817 GLAPI void GLAPIENTRY glColor4usv (const GLushort *v);
818 GLAPI void GLAPIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
819 GLAPI void GLAPIENTRY glColorMaterial (GLenum face, GLenum mode);
820 GLAPI void GLAPIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
821 GLAPI void GLAPIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
822 GLAPI void GLAPIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
823 GLAPI void GLAPIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
824 GLAPI void GLAPIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
825 GLAPI void GLAPIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
826 GLAPI void GLAPIENTRY glCullFace (GLenum mode);
827 GLAPI void GLAPIENTRY glDeleteLists (GLuint list, GLsizei range);
828 GLAPI void GLAPIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
829 GLAPI void GLAPIENTRY glDepthFunc (GLenum func);
830 GLAPI void GLAPIENTRY glDepthMask (GLboolean flag);
831 GLAPI void GLAPIENTRY glDepthRange (GLclampd zNear, GLclampd zFar);
832 GLAPI void GLAPIENTRY glDisable (GLenum cap);
833 GLAPI void GLAPIENTRY glDisableClientState (GLenum array);
834 GLAPI void GLAPIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
835 GLAPI void GLAPIENTRY glDrawBuffer (GLenum mode);
836 GLAPI void GLAPIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices);
837 GLAPI void GLAPIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
838 GLAPI void GLAPIENTRY glEdgeFlag (GLboolean flag);
839 GLAPI void GLAPIENTRY glEdgeFlagPointer (GLsizei stride, const void *pointer);
840 GLAPI void GLAPIENTRY glEdgeFlagv (const GLboolean *flag);
841 GLAPI void GLAPIENTRY glEnable (GLenum cap);
842 GLAPI void GLAPIENTRY glEnableClientState (GLenum array);
843 GLAPI void GLAPIENTRY glEnd (void);
844 GLAPI void GLAPIENTRY glEndList (void);
845 GLAPI void GLAPIENTRY glEvalCoord1d (GLdouble u);
846 GLAPI void GLAPIENTRY glEvalCoord1dv (const GLdouble *u);
847 GLAPI void GLAPIENTRY glEvalCoord1f (GLfloat u);
848 GLAPI void GLAPIENTRY glEvalCoord1fv (const GLfloat *u);
849 GLAPI void GLAPIENTRY glEvalCoord2d (GLdouble u, GLdouble v);
850 GLAPI void GLAPIENTRY glEvalCoord2dv (const GLdouble *u);
851 GLAPI void GLAPIENTRY glEvalCoord2f (GLfloat u, GLfloat v);
852 GLAPI void GLAPIENTRY glEvalCoord2fv (const GLfloat *u);
853 GLAPI void GLAPIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2);
854 GLAPI void GLAPIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
855 GLAPI void GLAPIENTRY glEvalPoint1 (GLint i);
856 GLAPI void GLAPIENTRY glEvalPoint2 (GLint i, GLint j);
857 GLAPI void GLAPIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer);
858 GLAPI void GLAPIENTRY glFinish (void);
859 GLAPI void GLAPIENTRY glFlush (void);
860 GLAPI void GLAPIENTRY glFogf (GLenum pname, GLfloat param);
861 GLAPI void GLAPIENTRY glFogfv (GLenum pname, const GLfloat *params);
862 GLAPI void GLAPIENTRY glFogi (GLenum pname, GLint param);
863 GLAPI void GLAPIENTRY glFogiv (GLenum pname, const GLint *params);
864 GLAPI void GLAPIENTRY glFrontFace (GLenum mode);
865 GLAPI void GLAPIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
866 GLAPI GLuint GLAPIENTRY glGenLists (GLsizei range);
867 GLAPI void GLAPIENTRY glGenTextures (GLsizei n, GLuint *textures);
868 GLAPI void GLAPIENTRY glGetBooleanv (GLenum pname, GLboolean *params);
869 GLAPI void GLAPIENTRY glGetClipPlane (GLenum plane, GLdouble *equation);
870 GLAPI void GLAPIENTRY glGetDoublev (GLenum pname, GLdouble *params);
871 GLAPI GLenum GLAPIENTRY glGetError (void);
872 GLAPI void GLAPIENTRY glGetFloatv (GLenum pname, GLfloat *params);
873 GLAPI void GLAPIENTRY glGetIntegerv (GLenum pname, GLint *params);
874 GLAPI void GLAPIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params);
875 GLAPI void GLAPIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params);
876 GLAPI void GLAPIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v);
877 GLAPI void GLAPIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v);
878 GLAPI void GLAPIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v);
879 GLAPI void GLAPIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params);
880 GLAPI void GLAPIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params);
881 GLAPI void GLAPIENTRY glGetPixelMapfv (GLenum map, GLfloat *values);
882 GLAPI void GLAPIENTRY glGetPixelMapuiv (GLenum map, GLuint *values);
883 GLAPI void GLAPIENTRY glGetPixelMapusv (GLenum map, GLushort *values);
884 GLAPI void GLAPIENTRY glGetPointerv (GLenum pname, void* *params);
885 GLAPI void GLAPIENTRY glGetPolygonStipple (GLubyte *mask);
886 GLAPI const GLubyte * GLAPIENTRY glGetString (GLenum name);
887 GLAPI void GLAPIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params);
888 GLAPI void GLAPIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params);
889 GLAPI void GLAPIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params);
890 GLAPI void GLAPIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params);
891 GLAPI void GLAPIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params);
892 GLAPI void GLAPIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
893 GLAPI void GLAPIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params);
894 GLAPI void GLAPIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params);
895 GLAPI void GLAPIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
896 GLAPI void GLAPIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
897 GLAPI void GLAPIENTRY glHint (GLenum target, GLenum mode);
898 GLAPI void GLAPIENTRY glIndexMask (GLuint mask);
899 GLAPI void GLAPIENTRY glIndexPointer (GLenum type, GLsizei stride, const void *pointer);
900 GLAPI void GLAPIENTRY glIndexd (GLdouble c);
901 GLAPI void GLAPIENTRY glIndexdv (const GLdouble *c);
902 GLAPI void GLAPIENTRY glIndexf (GLfloat c);
903 GLAPI void GLAPIENTRY glIndexfv (const GLfloat *c);
904 GLAPI void GLAPIENTRY glIndexi (GLint c);
905 GLAPI void GLAPIENTRY glIndexiv (const GLint *c);
906 GLAPI void GLAPIENTRY glIndexs (GLshort c);
907 GLAPI void GLAPIENTRY glIndexsv (const GLshort *c);
908 GLAPI void GLAPIENTRY glIndexub (GLubyte c);
909 GLAPI void GLAPIENTRY glIndexubv (const GLubyte *c);
910 GLAPI void GLAPIENTRY glInitNames (void);
911 GLAPI void GLAPIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const void *pointer);
912 GLAPI GLboolean GLAPIENTRY glIsEnabled (GLenum cap);
913 GLAPI GLboolean GLAPIENTRY glIsList (GLuint list);
914 GLAPI GLboolean GLAPIENTRY glIsTexture (GLuint texture);
915 GLAPI void GLAPIENTRY glLightModelf (GLenum pname, GLfloat param);
916 GLAPI void GLAPIENTRY glLightModelfv (GLenum pname, const GLfloat *params);
917 GLAPI void GLAPIENTRY glLightModeli (GLenum pname, GLint param);
918 GLAPI void GLAPIENTRY glLightModeliv (GLenum pname, const GLint *params);
919 GLAPI void GLAPIENTRY glLightf (GLenum light, GLenum pname, GLfloat param);
920 GLAPI void GLAPIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params);
921 GLAPI void GLAPIENTRY glLighti (GLenum light, GLenum pname, GLint param);
922 GLAPI void GLAPIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params);
923 GLAPI void GLAPIENTRY glLineStipple (GLint factor, GLushort pattern);
924 GLAPI void GLAPIENTRY glLineWidth (GLfloat width);
925 GLAPI void GLAPIENTRY glListBase (GLuint base);
926 GLAPI void GLAPIENTRY glLoadIdentity (void);
927 GLAPI void GLAPIENTRY glLoadMatrixd (const GLdouble *m);
928 GLAPI void GLAPIENTRY glLoadMatrixf (const GLfloat *m);
929 GLAPI void GLAPIENTRY glLoadName (GLuint name);
930 GLAPI void GLAPIENTRY glLogicOp (GLenum opcode);
931 GLAPI void GLAPIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
932 GLAPI void GLAPIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
933 GLAPI void GLAPIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
934 GLAPI void GLAPIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
935 GLAPI void GLAPIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2);
936 GLAPI void GLAPIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2);
937 GLAPI void GLAPIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
938 GLAPI void GLAPIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
939 GLAPI void GLAPIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param);
940 GLAPI void GLAPIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params);
941 GLAPI void GLAPIENTRY glMateriali (GLenum face, GLenum pname, GLint param);
942 GLAPI void GLAPIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params);
943 GLAPI void GLAPIENTRY glMatrixMode (GLenum mode);
944 GLAPI void GLAPIENTRY glMultMatrixd (const GLdouble *m);
945 GLAPI void GLAPIENTRY glMultMatrixf (const GLfloat *m);
946 GLAPI void GLAPIENTRY glNewList (GLuint list, GLenum mode);
947 GLAPI void GLAPIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz);
948 GLAPI void GLAPIENTRY glNormal3bv (const GLbyte *v);
949 GLAPI void GLAPIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz);
950 GLAPI void GLAPIENTRY glNormal3dv (const GLdouble *v);
951 GLAPI void GLAPIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
952 GLAPI void GLAPIENTRY glNormal3fv (const GLfloat *v);
953 GLAPI void GLAPIENTRY glNormal3i (GLint nx, GLint ny, GLint nz);
954 GLAPI void GLAPIENTRY glNormal3iv (const GLint *v);
955 GLAPI void GLAPIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz);
956 GLAPI void GLAPIENTRY glNormal3sv (const GLshort *v);
957 GLAPI void GLAPIENTRY glNormalPointer (GLenum type, GLsizei stride, const void *pointer);
958 GLAPI void GLAPIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
959 GLAPI void GLAPIENTRY glPassThrough (GLfloat token);
960 GLAPI void GLAPIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values);
961 GLAPI void GLAPIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values);
962 GLAPI void GLAPIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values);
963 GLAPI void GLAPIENTRY glPixelStoref (GLenum pname, GLfloat param);
964 GLAPI void GLAPIENTRY glPixelStorei (GLenum pname, GLint param);
965 GLAPI void GLAPIENTRY glPixelTransferf (GLenum pname, GLfloat param);
966 GLAPI void GLAPIENTRY glPixelTransferi (GLenum pname, GLint param);
967 GLAPI void GLAPIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor);
968 GLAPI void GLAPIENTRY glPointSize (GLfloat size);
969 GLAPI void GLAPIENTRY glPolygonMode (GLenum face, GLenum mode);
970 GLAPI void GLAPIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
971 GLAPI void GLAPIENTRY glPolygonStipple (const GLubyte *mask);
972 GLAPI void GLAPIENTRY glPopAttrib (void);
973 GLAPI void GLAPIENTRY glPopClientAttrib (void);
974 GLAPI void GLAPIENTRY glPopMatrix (void);
975 GLAPI void GLAPIENTRY glPopName (void);
976 GLAPI void GLAPIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities);
977 GLAPI void GLAPIENTRY glPushAttrib (GLbitfield mask);
978 GLAPI void GLAPIENTRY glPushClientAttrib (GLbitfield mask);
979 GLAPI void GLAPIENTRY glPushMatrix (void);
980 GLAPI void GLAPIENTRY glPushName (GLuint name);
981 GLAPI void GLAPIENTRY glRasterPos2d (GLdouble x, GLdouble y);
982 GLAPI void GLAPIENTRY glRasterPos2dv (const GLdouble *v);
983 GLAPI void GLAPIENTRY glRasterPos2f (GLfloat x, GLfloat y);
984 GLAPI void GLAPIENTRY glRasterPos2fv (const GLfloat *v);
985 GLAPI void GLAPIENTRY glRasterPos2i (GLint x, GLint y);
986 GLAPI void GLAPIENTRY glRasterPos2iv (const GLint *v);
987 GLAPI void GLAPIENTRY glRasterPos2s (GLshort x, GLshort y);
988 GLAPI void GLAPIENTRY glRasterPos2sv (const GLshort *v);
989 GLAPI void GLAPIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z);
990 GLAPI void GLAPIENTRY glRasterPos3dv (const GLdouble *v);
991 GLAPI void GLAPIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z);
992 GLAPI void GLAPIENTRY glRasterPos3fv (const GLfloat *v);
993 GLAPI void GLAPIENTRY glRasterPos3i (GLint x, GLint y, GLint z);
994 GLAPI void GLAPIENTRY glRasterPos3iv (const GLint *v);
995 GLAPI void GLAPIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z);
996 GLAPI void GLAPIENTRY glRasterPos3sv (const GLshort *v);
997 GLAPI void GLAPIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
998 GLAPI void GLAPIENTRY glRasterPos4dv (const GLdouble *v);
999 GLAPI void GLAPIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1000 GLAPI void GLAPIENTRY glRasterPos4fv (const GLfloat *v);
1001 GLAPI void GLAPIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w);
1002 GLAPI void GLAPIENTRY glRasterPos4iv (const GLint *v);
1003 GLAPI void GLAPIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w);
1004 GLAPI void GLAPIENTRY glRasterPos4sv (const GLshort *v);
1005 GLAPI void GLAPIENTRY glReadBuffer (GLenum mode);
1006 GLAPI void GLAPIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
1007 GLAPI void GLAPIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
1008 GLAPI void GLAPIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2);
1009 GLAPI void GLAPIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
1010 GLAPI void GLAPIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2);
1011 GLAPI void GLAPIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2);
1012 GLAPI void GLAPIENTRY glRectiv (const GLint *v1, const GLint *v2);
1013 GLAPI void GLAPIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2);
1014 GLAPI void GLAPIENTRY glRectsv (const GLshort *v1, const GLshort *v2);
1015 GLAPI GLint GLAPIENTRY glRenderMode (GLenum mode);
1016 GLAPI void GLAPIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
1017 GLAPI void GLAPIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
1018 GLAPI void GLAPIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z);
1019 GLAPI void GLAPIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z);
1020 GLAPI void GLAPIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
1021 GLAPI void GLAPIENTRY glSelectBuffer (GLsizei size, GLuint *buffer);
1022 GLAPI void GLAPIENTRY glShadeModel (GLenum mode);
1023 GLAPI void GLAPIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
1024 GLAPI void GLAPIENTRY glStencilMask (GLuint mask);
1025 GLAPI void GLAPIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
1026 GLAPI void GLAPIENTRY glTexCoord1d (GLdouble s);
1027 GLAPI void GLAPIENTRY glTexCoord1dv (const GLdouble *v);
1028 GLAPI void GLAPIENTRY glTexCoord1f (GLfloat s);
1029 GLAPI void GLAPIENTRY glTexCoord1fv (const GLfloat *v);
1030 GLAPI void GLAPIENTRY glTexCoord1i (GLint s);
1031 GLAPI void GLAPIENTRY glTexCoord1iv (const GLint *v);
1032 GLAPI void GLAPIENTRY glTexCoord1s (GLshort s);
1033 GLAPI void GLAPIENTRY glTexCoord1sv (const GLshort *v);
1034 GLAPI void GLAPIENTRY glTexCoord2d (GLdouble s, GLdouble t);
1035 GLAPI void GLAPIENTRY glTexCoord2dv (const GLdouble *v);
1036 GLAPI void GLAPIENTRY glTexCoord2f (GLfloat s, GLfloat t);
1037 GLAPI void GLAPIENTRY glTexCoord2fv (const GLfloat *v);
1038 GLAPI void GLAPIENTRY glTexCoord2i (GLint s, GLint t);
1039 GLAPI void GLAPIENTRY glTexCoord2iv (const GLint *v);
1040 GLAPI void GLAPIENTRY glTexCoord2s (GLshort s, GLshort t);
1041 GLAPI void GLAPIENTRY glTexCoord2sv (const GLshort *v);
1042 GLAPI void GLAPIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r);
1043 GLAPI void GLAPIENTRY glTexCoord3dv (const GLdouble *v);
1044 GLAPI void GLAPIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r);
1045 GLAPI void GLAPIENTRY glTexCoord3fv (const GLfloat *v);
1046 GLAPI void GLAPIENTRY glTexCoord3i (GLint s, GLint t, GLint r);
1047 GLAPI void GLAPIENTRY glTexCoord3iv (const GLint *v);
1048 GLAPI void GLAPIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r);
1049 GLAPI void GLAPIENTRY glTexCoord3sv (const GLshort *v);
1050 GLAPI void GLAPIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q);
1051 GLAPI void GLAPIENTRY glTexCoord4dv (const GLdouble *v);
1052 GLAPI void GLAPIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q);
1053 GLAPI void GLAPIENTRY glTexCoord4fv (const GLfloat *v);
1054 GLAPI void GLAPIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q);
1055 GLAPI void GLAPIENTRY glTexCoord4iv (const GLint *v);
1056 GLAPI void GLAPIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q);
1057 GLAPI void GLAPIENTRY glTexCoord4sv (const GLshort *v);
1058 GLAPI void GLAPIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
1059 GLAPI void GLAPIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param);
1060 GLAPI void GLAPIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params);
1061 GLAPI void GLAPIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param);
1062 GLAPI void GLAPIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params);
1063 GLAPI void GLAPIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param);
1064 GLAPI void GLAPIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params);
1065 GLAPI void GLAPIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param);
1066 GLAPI void GLAPIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params);
1067 GLAPI void GLAPIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param);
1068 GLAPI void GLAPIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params);
1069 GLAPI void GLAPIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
1070 GLAPI void GLAPIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
1071 GLAPI void GLAPIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
1072 GLAPI void GLAPIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
1073 GLAPI void GLAPIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
1074 GLAPI void GLAPIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
1075 GLAPI void GLAPIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
1076 GLAPI void GLAPIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
1077 GLAPI void GLAPIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z);
1078 GLAPI void GLAPIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z);
1079 GLAPI void GLAPIENTRY glVertex2d (GLdouble x, GLdouble y);
1080 GLAPI void GLAPIENTRY glVertex2dv (const GLdouble *v);
1081 GLAPI void GLAPIENTRY glVertex2f (GLfloat x, GLfloat y);
1082 GLAPI void GLAPIENTRY glVertex2fv (const GLfloat *v);
1083 GLAPI void GLAPIENTRY glVertex2i (GLint x, GLint y);
1084 GLAPI void GLAPIENTRY glVertex2iv (const GLint *v);
1085 GLAPI void GLAPIENTRY glVertex2s (GLshort x, GLshort y);
1086 GLAPI void GLAPIENTRY glVertex2sv (const GLshort *v);
1087 GLAPI void GLAPIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z);
1088 GLAPI void GLAPIENTRY glVertex3dv (const GLdouble *v);
1089 GLAPI void GLAPIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z);
1090 GLAPI void GLAPIENTRY glVertex3fv (const GLfloat *v);
1091 GLAPI void GLAPIENTRY glVertex3i (GLint x, GLint y, GLint z);
1092 GLAPI void GLAPIENTRY glVertex3iv (const GLint *v);
1093 GLAPI void GLAPIENTRY glVertex3s (GLshort x, GLshort y, GLshort z);
1094 GLAPI void GLAPIENTRY glVertex3sv (const GLshort *v);
1095 GLAPI void GLAPIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1096 GLAPI void GLAPIENTRY glVertex4dv (const GLdouble *v);
1097 GLAPI void GLAPIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1098 GLAPI void GLAPIENTRY glVertex4fv (const GLfloat *v);
1099 GLAPI void GLAPIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w);
1100 GLAPI void GLAPIENTRY glVertex4iv (const GLint *v);
1101 GLAPI void GLAPIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w);
1102 GLAPI void GLAPIENTRY glVertex4sv (const GLshort *v);
1103 GLAPI void GLAPIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
1104 GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
1105 
1106 #define GLEW_VERSION_1_1 GLEW_GET_VAR(__GLEW_VERSION_1_1)
1107 
1108 #endif /* GL_VERSION_1_1 */
1109 
1110 /* ---------------------------------- GLU ---------------------------------- */
1111 
1112 #ifndef GLEW_NO_GLU
1113 # ifdef __APPLE__
1114 # include <Availability.h>
1115 # if defined(__IPHONE_OS_VERSION_MIN_REQUIRED)
1116 # define GLEW_NO_GLU
1117 # endif
1118 # endif
1119 #endif
1120 
1121 #ifndef GLEW_NO_GLU
1122 /* this is where we can safely include GLU */
1123 # if defined(__APPLE__) && defined(__MACH__)
1124 # include <OpenGL/glu.h>
1125 # else
1126 # include <GL/glu.h>
1127 # endif
1128 #endif
1129 
+ + + + + diff --git a/doc/html/glew__license_8h_source.html b/doc/html/glew__license_8h_source.html new file mode 100644 index 00000000..cbd8c6dc --- /dev/null +++ b/doc/html/glew__license_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/auto/src/glew_license.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
glew_license.h
+
+
+
1 /*
2 ** The OpenGL Extension Wrangler Library
3 ** Copyright (C) 2008-2017, Nigel Stewart <nigels[]users sourceforge net>
4 ** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
5 ** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
6 ** Copyright (C) 2002, Lev Povalahev
7 ** All rights reserved.
8 **
9 ** Redistribution and use in source and binary forms, with or without
10 ** modification, are permitted provided that the following conditions are met:
11 **
12 ** * Redistributions of source code must retain the above copyright notice,
13 ** this list of conditions and the following disclaimer.
14 ** * Redistributions in binary form must reproduce the above copyright notice,
15 ** this list of conditions and the following disclaimer in the documentation
16 ** and/or other materials provided with the distribution.
17 ** * The name of the author may be used to endorse or promote products
18 ** derived from this software without specific prior written permission.
19 **
20 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24 ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
30 ** THE POSSIBILITY OF SUCH DAMAGE.
31 */
32 
+ + + + + diff --git a/doc/html/glew__tail_8h_source.html b/doc/html/glew__tail_8h_source.html new file mode 100644 index 00000000..467abff5 --- /dev/null +++ b/doc/html/glew__tail_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/auto/src/glew_tail.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
glew_tail.h
+
+
+
1 /* ------------------------------------------------------------------------- */
2 
3 /* error codes */
4 #define GLEW_OK 0
5 #define GLEW_NO_ERROR 0
6 #define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */
7 #define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* Need at least OpenGL 1.1 */
8 #define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* Need at least GLX 1.2 */
9 #define GLEW_ERROR_NO_GLX_DISPLAY 4 /* Need GLX display for GLX support */
10 
11 /* string codes */
12 #define GLEW_VERSION 1
13 #define GLEW_VERSION_MAJOR 2
14 #define GLEW_VERSION_MINOR 3
15 #define GLEW_VERSION_MICRO 4
16 
17 /* ------------------------------------------------------------------------- */
18 
19 /* GLEW version info */
20 
21 /*
22 VERSION GLEW_VERSION_STRING
23 VERSION_MAJOR GLEW_VERSION_MAJOR_STRING
24 VERSION_MINOR GLEW_VERSION_MINOR_STRING
25 VERSION_MICRO GLEW_VERSION_MICRO_STRING
26 */
27 
28 /* API */
29 GLEWAPI GLenum GLEWAPIENTRY glewInit (void);
30 GLEWAPI GLboolean GLEWAPIENTRY glewIsSupported (const char *name);
31 #define glewIsExtensionSupported(x) glewIsSupported(x)
32 
33 #ifndef GLEW_GET_VAR
34 #define GLEW_GET_VAR(x) (*(const GLboolean*)&x)
35 #endif
36 
37 #ifndef GLEW_GET_FUN
38 #define GLEW_GET_FUN(x) x
39 #endif
40 
41 GLEWAPI GLboolean glewExperimental;
42 GLEWAPI GLboolean GLEWAPIENTRY glewGetExtension (const char *name);
43 GLEWAPI const GLubyte * GLEWAPIENTRY glewGetErrorString (GLenum error);
44 GLEWAPI const GLubyte * GLEWAPIENTRY glewGetString (GLenum name);
45 
46 #ifdef __cplusplus
47 }
48 #endif
49 
50 #ifdef GLEW_APIENTRY_DEFINED
51 #undef GLEW_APIENTRY_DEFINED
52 #undef APIENTRY
53 #endif
54 
55 #ifdef GLEW_CALLBACK_DEFINED
56 #undef GLEW_CALLBACK_DEFINED
57 #undef CALLBACK
58 #endif
59 
60 #ifdef GLEW_WINGDIAPI_DEFINED
61 #undef GLEW_WINGDIAPI_DEFINED
62 #undef WINGDIAPI
63 #endif
64 
65 #undef GLAPI
66 /* #undef GLEWAPI */
67 
68 #endif /* __glew_h__ */
+ + + + + diff --git a/doc/html/glxew_8h_source.html b/doc/html/glxew_8h_source.html new file mode 100644 index 00000000..666a1914 --- /dev/null +++ b/doc/html/glxew_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/include/GL/glxew.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
glxew.h
+
+
+
1 /*
2 ** The OpenGL Extension Wrangler Library
3 ** Copyright (C) 2008-2017, Nigel Stewart <nigels[]users sourceforge net>
4 ** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
5 ** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
6 ** Copyright (C) 2002, Lev Povalahev
7 ** All rights reserved.
8 **
9 ** Redistribution and use in source and binary forms, with or without
10 ** modification, are permitted provided that the following conditions are met:
11 **
12 ** * Redistributions of source code must retain the above copyright notice,
13 ** this list of conditions and the following disclaimer.
14 ** * Redistributions in binary form must reproduce the above copyright notice,
15 ** this list of conditions and the following disclaimer in the documentation
16 ** and/or other materials provided with the distribution.
17 ** * The name of the author may be used to endorse or promote products
18 ** derived from this software without specific prior written permission.
19 **
20 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24 ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
30 ** THE POSSIBILITY OF SUCH DAMAGE.
31 */
32 
33 /*
34  * Mesa 3-D graphics library
35  * Version: 7.0
36  *
37  * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
38  *
39  * Permission is hereby granted, free of charge, to any person obtaining a
40  * copy of this software and associated documentation files (the "Software"),
41  * to deal in the Software without restriction, including without limitation
42  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
43  * and/or sell copies of the Software, and to permit persons to whom the
44  * Software is furnished to do so, subject to the following conditions:
45  *
46  * The above copyright notice and this permission notice shall be included
47  * in all copies or substantial portions of the Software.
48  *
49  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
50  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
51  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
52  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
53  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
54  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
55  */
56 
57 /*
58 ** Copyright (c) 2007 The Khronos Group Inc.
59 **
60 ** Permission is hereby granted, free of charge, to any person obtaining a
61 ** copy of this software and/or associated documentation files (the
62 ** "Materials"), to deal in the Materials without restriction, including
63 ** without limitation the rights to use, copy, modify, merge, publish,
64 ** distribute, sublicense, and/or sell copies of the Materials, and to
65 ** permit persons to whom the Materials are furnished to do so, subject to
66 ** the following conditions:
67 **
68 ** The above copyright notice and this permission notice shall be included
69 ** in all copies or substantial portions of the Materials.
70 **
71 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
72 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
73 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
74 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
75 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
76 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
77 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
78 */
79 
80 #ifndef __glxew_h__
81 #define __glxew_h__
82 #define __GLXEW_H__
83 
84 #ifdef __glxext_h_
85 #error glxext.h included before glxew.h
86 #endif
87 
88 #if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__)
89 #error glx.h included before glxew.h
90 #endif
91 
92 #define __glxext_h_
93 
94 #define GLX_H
95 #define __GLX_glx_h__
96 #define __glx_h__
97 
98 #include <X11/Xlib.h>
99 #include <X11/Xutil.h>
100 #include <X11/Xmd.h>
101 #include <GL/glew.h>
102 
103 #ifdef __cplusplus
104 extern "C" {
105 #endif
106 
107 /* ---------------------------- GLX_VERSION_1_0 --------------------------- */
108 
109 #ifndef GLX_VERSION_1_0
110 #define GLX_VERSION_1_0 1
111 
112 #define GLX_USE_GL 1
113 #define GLX_BUFFER_SIZE 2
114 #define GLX_LEVEL 3
115 #define GLX_RGBA 4
116 #define GLX_DOUBLEBUFFER 5
117 #define GLX_STEREO 6
118 #define GLX_AUX_BUFFERS 7
119 #define GLX_RED_SIZE 8
120 #define GLX_GREEN_SIZE 9
121 #define GLX_BLUE_SIZE 10
122 #define GLX_ALPHA_SIZE 11
123 #define GLX_DEPTH_SIZE 12
124 #define GLX_STENCIL_SIZE 13
125 #define GLX_ACCUM_RED_SIZE 14
126 #define GLX_ACCUM_GREEN_SIZE 15
127 #define GLX_ACCUM_BLUE_SIZE 16
128 #define GLX_ACCUM_ALPHA_SIZE 17
129 #define GLX_BAD_SCREEN 1
130 #define GLX_BAD_ATTRIBUTE 2
131 #define GLX_NO_EXTENSION 3
132 #define GLX_BAD_VISUAL 4
133 #define GLX_BAD_CONTEXT 5
134 #define GLX_BAD_VALUE 6
135 #define GLX_BAD_ENUM 7
136 
137 typedef XID GLXDrawable;
138 typedef XID GLXPixmap;
139 #ifdef __sun
140 typedef struct __glXContextRec *GLXContext;
141 #else
142 typedef struct __GLXcontextRec *GLXContext;
143 #endif
144 
145 typedef unsigned int GLXVideoDeviceNV;
146 
147 extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase);
148 extern Bool glXQueryVersion (Display *dpy, int *major, int *minor);
149 extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value);
150 extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList);
151 extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap);
152 extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix);
153 extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
154 extern void glXDestroyContext (Display *dpy, GLXContext ctx);
155 extern Bool glXIsDirect (Display *dpy, GLXContext ctx);
156 extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask);
157 extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx);
158 extern GLXContext glXGetCurrentContext (void);
159 extern GLXDrawable glXGetCurrentDrawable (void);
160 extern void glXWaitGL (void);
161 extern void glXWaitX (void);
162 extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable);
163 extern void glXUseXFont (Font font, int first, int count, int listBase);
164 
165 #define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0)
166 
167 #endif /* GLX_VERSION_1_0 */
168 
169 /* ---------------------------- GLX_VERSION_1_1 --------------------------- */
170 
171 #ifndef GLX_VERSION_1_1
172 #define GLX_VERSION_1_1
173 
174 #define GLX_VENDOR 0x1
175 #define GLX_VERSION 0x2
176 #define GLX_EXTENSIONS 0x3
177 
178 extern const char* glXQueryExtensionsString (Display *dpy, int screen);
179 extern const char* glXGetClientString (Display *dpy, int name);
180 extern const char* glXQueryServerString (Display *dpy, int screen, int name);
181 
182 #define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1)
183 
184 #endif /* GLX_VERSION_1_1 */
185 
186 /* ---------------------------- GLX_VERSION_1_2 ---------------------------- */
187 
188 #ifndef GLX_VERSION_1_2
189 #define GLX_VERSION_1_2 1
190 
191 typedef Display* ( * PFNGLXGETCURRENTDISPLAYPROC) (void);
192 
193 #define glXGetCurrentDisplay GLXEW_GET_FUN(__glewXGetCurrentDisplay)
194 
195 #define GLXEW_VERSION_1_2 GLXEW_GET_VAR(__GLXEW_VERSION_1_2)
196 
197 #endif /* GLX_VERSION_1_2 */
198 
199 /* ---------------------------- GLX_VERSION_1_3 ---------------------------- */
200 
201 #ifndef GLX_VERSION_1_3
202 #define GLX_VERSION_1_3 1
203 
204 #define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
205 #define GLX_RGBA_BIT 0x00000001
206 #define GLX_WINDOW_BIT 0x00000001
207 #define GLX_COLOR_INDEX_BIT 0x00000002
208 #define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
209 #define GLX_PIXMAP_BIT 0x00000002
210 #define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
211 #define GLX_PBUFFER_BIT 0x00000004
212 #define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
213 #define GLX_AUX_BUFFERS_BIT 0x00000010
214 #define GLX_CONFIG_CAVEAT 0x20
215 #define GLX_DEPTH_BUFFER_BIT 0x00000020
216 #define GLX_X_VISUAL_TYPE 0x22
217 #define GLX_TRANSPARENT_TYPE 0x23
218 #define GLX_TRANSPARENT_INDEX_VALUE 0x24
219 #define GLX_TRANSPARENT_RED_VALUE 0x25
220 #define GLX_TRANSPARENT_GREEN_VALUE 0x26
221 #define GLX_TRANSPARENT_BLUE_VALUE 0x27
222 #define GLX_TRANSPARENT_ALPHA_VALUE 0x28
223 #define GLX_STENCIL_BUFFER_BIT 0x00000040
224 #define GLX_ACCUM_BUFFER_BIT 0x00000080
225 #define GLX_NONE 0x8000
226 #define GLX_SLOW_CONFIG 0x8001
227 #define GLX_TRUE_COLOR 0x8002
228 #define GLX_DIRECT_COLOR 0x8003
229 #define GLX_PSEUDO_COLOR 0x8004
230 #define GLX_STATIC_COLOR 0x8005
231 #define GLX_GRAY_SCALE 0x8006
232 #define GLX_STATIC_GRAY 0x8007
233 #define GLX_TRANSPARENT_RGB 0x8008
234 #define GLX_TRANSPARENT_INDEX 0x8009
235 #define GLX_VISUAL_ID 0x800B
236 #define GLX_SCREEN 0x800C
237 #define GLX_NON_CONFORMANT_CONFIG 0x800D
238 #define GLX_DRAWABLE_TYPE 0x8010
239 #define GLX_RENDER_TYPE 0x8011
240 #define GLX_X_RENDERABLE 0x8012
241 #define GLX_FBCONFIG_ID 0x8013
242 #define GLX_RGBA_TYPE 0x8014
243 #define GLX_COLOR_INDEX_TYPE 0x8015
244 #define GLX_MAX_PBUFFER_WIDTH 0x8016
245 #define GLX_MAX_PBUFFER_HEIGHT 0x8017
246 #define GLX_MAX_PBUFFER_PIXELS 0x8018
247 #define GLX_PRESERVED_CONTENTS 0x801B
248 #define GLX_LARGEST_PBUFFER 0x801C
249 #define GLX_WIDTH 0x801D
250 #define GLX_HEIGHT 0x801E
251 #define GLX_EVENT_MASK 0x801F
252 #define GLX_DAMAGED 0x8020
253 #define GLX_SAVED 0x8021
254 #define GLX_WINDOW 0x8022
255 #define GLX_PBUFFER 0x8023
256 #define GLX_PBUFFER_HEIGHT 0x8040
257 #define GLX_PBUFFER_WIDTH 0x8041
258 #define GLX_PBUFFER_CLOBBER_MASK 0x08000000
259 #define GLX_DONT_CARE 0xFFFFFFFF
260 
261 typedef XID GLXFBConfigID;
262 typedef XID GLXPbuffer;
263 typedef XID GLXWindow;
264 typedef struct __GLXFBConfigRec *GLXFBConfig;
265 
266 typedef struct {
267  int event_type;
268  int draw_type;
269  unsigned long serial;
270  Bool send_event;
271  Display *display;
272  GLXDrawable drawable;
273  unsigned int buffer_mask;
274  unsigned int aux_buffer;
275  int x, y;
276  int width, height;
277  int count;
278 } GLXPbufferClobberEvent;
279 typedef union __GLXEvent {
280  GLXPbufferClobberEvent glxpbufferclobber;
281  long pad[24];
282 } GLXEvent;
283 
284 typedef GLXFBConfig* ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
285 typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
286 typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list);
287 typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
288 typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
289 typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf);
290 typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap);
291 typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win);
292 typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void);
293 typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value);
294 typedef GLXFBConfig* ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements);
295 typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
296 typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config);
297 typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
298 typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value);
299 typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
300 typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask);
301 
302 #define glXChooseFBConfig GLXEW_GET_FUN(__glewXChooseFBConfig)
303 #define glXCreateNewContext GLXEW_GET_FUN(__glewXCreateNewContext)
304 #define glXCreatePbuffer GLXEW_GET_FUN(__glewXCreatePbuffer)
305 #define glXCreatePixmap GLXEW_GET_FUN(__glewXCreatePixmap)
306 #define glXCreateWindow GLXEW_GET_FUN(__glewXCreateWindow)
307 #define glXDestroyPbuffer GLXEW_GET_FUN(__glewXDestroyPbuffer)
308 #define glXDestroyPixmap GLXEW_GET_FUN(__glewXDestroyPixmap)
309 #define glXDestroyWindow GLXEW_GET_FUN(__glewXDestroyWindow)
310 #define glXGetCurrentReadDrawable GLXEW_GET_FUN(__glewXGetCurrentReadDrawable)
311 #define glXGetFBConfigAttrib GLXEW_GET_FUN(__glewXGetFBConfigAttrib)
312 #define glXGetFBConfigs GLXEW_GET_FUN(__glewXGetFBConfigs)
313 #define glXGetSelectedEvent GLXEW_GET_FUN(__glewXGetSelectedEvent)
314 #define glXGetVisualFromFBConfig GLXEW_GET_FUN(__glewXGetVisualFromFBConfig)
315 #define glXMakeContextCurrent GLXEW_GET_FUN(__glewXMakeContextCurrent)
316 #define glXQueryContext GLXEW_GET_FUN(__glewXQueryContext)
317 #define glXQueryDrawable GLXEW_GET_FUN(__glewXQueryDrawable)
318 #define glXSelectEvent GLXEW_GET_FUN(__glewXSelectEvent)
319 
320 #define GLXEW_VERSION_1_3 GLXEW_GET_VAR(__GLXEW_VERSION_1_3)
321 
322 #endif /* GLX_VERSION_1_3 */
323 
324 /* ---------------------------- GLX_VERSION_1_4 ---------------------------- */
325 
326 #ifndef GLX_VERSION_1_4
327 #define GLX_VERSION_1_4 1
328 
329 #define GLX_SAMPLE_BUFFERS 100000
330 #define GLX_SAMPLES 100001
331 
332 extern void ( * glXGetProcAddress (const GLubyte *procName)) (void);
333 
334 #define GLXEW_VERSION_1_4 GLXEW_GET_VAR(__GLXEW_VERSION_1_4)
335 
336 #endif /* GLX_VERSION_1_4 */
337 
338 /* -------------------------- GLX_3DFX_multisample ------------------------- */
339 
340 #ifndef GLX_3DFX_multisample
341 #define GLX_3DFX_multisample 1
342 
343 #define GLX_SAMPLE_BUFFERS_3DFX 0x8050
344 #define GLX_SAMPLES_3DFX 0x8051
345 
346 #define GLXEW_3DFX_multisample GLXEW_GET_VAR(__GLXEW_3DFX_multisample)
347 
348 #endif /* GLX_3DFX_multisample */
349 
350 /* ------------------------ GLX_AMD_gpu_association ------------------------ */
351 
352 #ifndef GLX_AMD_gpu_association
353 #define GLX_AMD_gpu_association 1
354 
355 #define GLX_GPU_VENDOR_AMD 0x1F00
356 #define GLX_GPU_RENDERER_STRING_AMD 0x1F01
357 #define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
358 #define GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
359 #define GLX_GPU_RAM_AMD 0x21A3
360 #define GLX_GPU_CLOCK_AMD 0x21A4
361 #define GLX_GPU_NUM_PIPES_AMD 0x21A5
362 #define GLX_GPU_NUM_SIMD_AMD 0x21A6
363 #define GLX_GPU_NUM_RB_AMD 0x21A7
364 #define GLX_GPU_NUM_SPI_AMD 0x21A8
365 
366 typedef void ( * PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC) (GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
367 typedef GLXContext ( * PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC) (unsigned int id, GLXContext share_list);
368 typedef GLXContext ( * PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (unsigned int id, GLXContext share_context, const int* attribList);
369 typedef Bool ( * PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC) (GLXContext ctx);
370 typedef unsigned int ( * PFNGLXGETCONTEXTGPUIDAMDPROC) (GLXContext ctx);
371 typedef GLXContext ( * PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void);
372 typedef unsigned int ( * PFNGLXGETGPUIDSAMDPROC) (unsigned int maxCount, unsigned int* ids);
373 typedef int ( * PFNGLXGETGPUINFOAMDPROC) (unsigned int id, int property, GLenum dataType, unsigned int size, void* data);
374 typedef Bool ( * PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (GLXContext ctx);
375 
376 #define glXBlitContextFramebufferAMD GLXEW_GET_FUN(__glewXBlitContextFramebufferAMD)
377 #define glXCreateAssociatedContextAMD GLXEW_GET_FUN(__glewXCreateAssociatedContextAMD)
378 #define glXCreateAssociatedContextAttribsAMD GLXEW_GET_FUN(__glewXCreateAssociatedContextAttribsAMD)
379 #define glXDeleteAssociatedContextAMD GLXEW_GET_FUN(__glewXDeleteAssociatedContextAMD)
380 #define glXGetContextGPUIDAMD GLXEW_GET_FUN(__glewXGetContextGPUIDAMD)
381 #define glXGetCurrentAssociatedContextAMD GLXEW_GET_FUN(__glewXGetCurrentAssociatedContextAMD)
382 #define glXGetGPUIDsAMD GLXEW_GET_FUN(__glewXGetGPUIDsAMD)
383 #define glXGetGPUInfoAMD GLXEW_GET_FUN(__glewXGetGPUInfoAMD)
384 #define glXMakeAssociatedContextCurrentAMD GLXEW_GET_FUN(__glewXMakeAssociatedContextCurrentAMD)
385 
386 #define GLXEW_AMD_gpu_association GLXEW_GET_VAR(__GLXEW_AMD_gpu_association)
387 
388 #endif /* GLX_AMD_gpu_association */
389 
390 /* --------------------- GLX_ARB_context_flush_control --------------------- */
391 
392 #ifndef GLX_ARB_context_flush_control
393 #define GLX_ARB_context_flush_control 1
394 
395 #define GLXEW_ARB_context_flush_control GLXEW_GET_VAR(__GLXEW_ARB_context_flush_control)
396 
397 #endif /* GLX_ARB_context_flush_control */
398 
399 /* ------------------------- GLX_ARB_create_context ------------------------ */
400 
401 #ifndef GLX_ARB_create_context
402 #define GLX_ARB_create_context 1
403 
404 #define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001
405 #define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
406 #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
407 #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
408 #define GLX_CONTEXT_FLAGS_ARB 0x2094
409 
410 typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list);
411 
412 #define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB)
413 
414 #define GLXEW_ARB_create_context GLXEW_GET_VAR(__GLXEW_ARB_create_context)
415 
416 #endif /* GLX_ARB_create_context */
417 
418 /* -------------------- GLX_ARB_create_context_no_error -------------------- */
419 
420 #ifndef GLX_ARB_create_context_no_error
421 #define GLX_ARB_create_context_no_error 1
422 
423 #define GLXEW_ARB_create_context_no_error GLXEW_GET_VAR(__GLXEW_ARB_create_context_no_error)
424 
425 #endif /* GLX_ARB_create_context_no_error */
426 
427 /* --------------------- GLX_ARB_create_context_profile -------------------- */
428 
429 #ifndef GLX_ARB_create_context_profile
430 #define GLX_ARB_create_context_profile 1
431 
432 #define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
433 #define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
434 #define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
435 
436 #define GLXEW_ARB_create_context_profile GLXEW_GET_VAR(__GLXEW_ARB_create_context_profile)
437 
438 #endif /* GLX_ARB_create_context_profile */
439 
440 /* ------------------- GLX_ARB_create_context_robustness ------------------- */
441 
442 #ifndef GLX_ARB_create_context_robustness
443 #define GLX_ARB_create_context_robustness 1
444 
445 #define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
446 #define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252
447 #define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
448 #define GLX_NO_RESET_NOTIFICATION_ARB 0x8261
449 
450 #define GLXEW_ARB_create_context_robustness GLXEW_GET_VAR(__GLXEW_ARB_create_context_robustness)
451 
452 #endif /* GLX_ARB_create_context_robustness */
453 
454 /* ------------------------- GLX_ARB_fbconfig_float ------------------------ */
455 
456 #ifndef GLX_ARB_fbconfig_float
457 #define GLX_ARB_fbconfig_float 1
458 
459 #define GLX_RGBA_FLOAT_BIT_ARB 0x00000004
460 #define GLX_RGBA_FLOAT_TYPE_ARB 0x20B9
461 
462 #define GLXEW_ARB_fbconfig_float GLXEW_GET_VAR(__GLXEW_ARB_fbconfig_float)
463 
464 #endif /* GLX_ARB_fbconfig_float */
465 
466 /* ------------------------ GLX_ARB_framebuffer_sRGB ----------------------- */
467 
468 #ifndef GLX_ARB_framebuffer_sRGB
469 #define GLX_ARB_framebuffer_sRGB 1
470 
471 #define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2
472 
473 #define GLXEW_ARB_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_ARB_framebuffer_sRGB)
474 
475 #endif /* GLX_ARB_framebuffer_sRGB */
476 
477 /* ------------------------ GLX_ARB_get_proc_address ----------------------- */
478 
479 #ifndef GLX_ARB_get_proc_address
480 #define GLX_ARB_get_proc_address 1
481 
482 extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void);
483 
484 #define GLXEW_ARB_get_proc_address GLXEW_GET_VAR(__GLXEW_ARB_get_proc_address)
485 
486 #endif /* GLX_ARB_get_proc_address */
487 
488 /* -------------------------- GLX_ARB_multisample -------------------------- */
489 
490 #ifndef GLX_ARB_multisample
491 #define GLX_ARB_multisample 1
492 
493 #define GLX_SAMPLE_BUFFERS_ARB 100000
494 #define GLX_SAMPLES_ARB 100001
495 
496 #define GLXEW_ARB_multisample GLXEW_GET_VAR(__GLXEW_ARB_multisample)
497 
498 #endif /* GLX_ARB_multisample */
499 
500 /* ---------------- GLX_ARB_robustness_application_isolation --------------- */
501 
502 #ifndef GLX_ARB_robustness_application_isolation
503 #define GLX_ARB_robustness_application_isolation 1
504 
505 #define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
506 
507 #define GLXEW_ARB_robustness_application_isolation GLXEW_GET_VAR(__GLXEW_ARB_robustness_application_isolation)
508 
509 #endif /* GLX_ARB_robustness_application_isolation */
510 
511 /* ---------------- GLX_ARB_robustness_share_group_isolation --------------- */
512 
513 #ifndef GLX_ARB_robustness_share_group_isolation
514 #define GLX_ARB_robustness_share_group_isolation 1
515 
516 #define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
517 
518 #define GLXEW_ARB_robustness_share_group_isolation GLXEW_GET_VAR(__GLXEW_ARB_robustness_share_group_isolation)
519 
520 #endif /* GLX_ARB_robustness_share_group_isolation */
521 
522 /* ---------------------- GLX_ARB_vertex_buffer_object --------------------- */
523 
524 #ifndef GLX_ARB_vertex_buffer_object
525 #define GLX_ARB_vertex_buffer_object 1
526 
527 #define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095
528 
529 #define GLXEW_ARB_vertex_buffer_object GLXEW_GET_VAR(__GLXEW_ARB_vertex_buffer_object)
530 
531 #endif /* GLX_ARB_vertex_buffer_object */
532 
533 /* ----------------------- GLX_ATI_pixel_format_float ---------------------- */
534 
535 #ifndef GLX_ATI_pixel_format_float
536 #define GLX_ATI_pixel_format_float 1
537 
538 #define GLX_RGBA_FLOAT_ATI_BIT 0x00000100
539 
540 #define GLXEW_ATI_pixel_format_float GLXEW_GET_VAR(__GLXEW_ATI_pixel_format_float)
541 
542 #endif /* GLX_ATI_pixel_format_float */
543 
544 /* ------------------------- GLX_ATI_render_texture ------------------------ */
545 
546 #ifndef GLX_ATI_render_texture
547 #define GLX_ATI_render_texture 1
548 
549 #define GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800
550 #define GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801
551 #define GLX_TEXTURE_FORMAT_ATI 0x9802
552 #define GLX_TEXTURE_TARGET_ATI 0x9803
553 #define GLX_MIPMAP_TEXTURE_ATI 0x9804
554 #define GLX_TEXTURE_RGB_ATI 0x9805
555 #define GLX_TEXTURE_RGBA_ATI 0x9806
556 #define GLX_NO_TEXTURE_ATI 0x9807
557 #define GLX_TEXTURE_CUBE_MAP_ATI 0x9808
558 #define GLX_TEXTURE_1D_ATI 0x9809
559 #define GLX_TEXTURE_2D_ATI 0x980A
560 #define GLX_MIPMAP_LEVEL_ATI 0x980B
561 #define GLX_CUBE_MAP_FACE_ATI 0x980C
562 #define GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D
563 #define GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E
564 #define GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F
565 #define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810
566 #define GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811
567 #define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812
568 #define GLX_FRONT_LEFT_ATI 0x9813
569 #define GLX_FRONT_RIGHT_ATI 0x9814
570 #define GLX_BACK_LEFT_ATI 0x9815
571 #define GLX_BACK_RIGHT_ATI 0x9816
572 #define GLX_AUX0_ATI 0x9817
573 #define GLX_AUX1_ATI 0x9818
574 #define GLX_AUX2_ATI 0x9819
575 #define GLX_AUX3_ATI 0x981A
576 #define GLX_AUX4_ATI 0x981B
577 #define GLX_AUX5_ATI 0x981C
578 #define GLX_AUX6_ATI 0x981D
579 #define GLX_AUX7_ATI 0x981E
580 #define GLX_AUX8_ATI 0x981F
581 #define GLX_AUX9_ATI 0x9820
582 #define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821
583 #define GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822
584 
585 typedef void ( * PFNGLXBINDTEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer);
586 typedef void ( * PFNGLXDRAWABLEATTRIBATIPROC) (Display *dpy, GLXDrawable draw, const int *attrib_list);
587 typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer);
588 
589 #define glXBindTexImageATI GLXEW_GET_FUN(__glewXBindTexImageATI)
590 #define glXDrawableAttribATI GLXEW_GET_FUN(__glewXDrawableAttribATI)
591 #define glXReleaseTexImageATI GLXEW_GET_FUN(__glewXReleaseTexImageATI)
592 
593 #define GLXEW_ATI_render_texture GLXEW_GET_VAR(__GLXEW_ATI_render_texture)
594 
595 #endif /* GLX_ATI_render_texture */
596 
597 /* --------------------------- GLX_EXT_buffer_age -------------------------- */
598 
599 #ifndef GLX_EXT_buffer_age
600 #define GLX_EXT_buffer_age 1
601 
602 #define GLX_BACK_BUFFER_AGE_EXT 0x20F4
603 
604 #define GLXEW_EXT_buffer_age GLXEW_GET_VAR(__GLXEW_EXT_buffer_age)
605 
606 #endif /* GLX_EXT_buffer_age */
607 
608 /* ------------------- GLX_EXT_create_context_es2_profile ------------------ */
609 
610 #ifndef GLX_EXT_create_context_es2_profile
611 #define GLX_EXT_create_context_es2_profile 1
612 
613 #define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
614 
615 #define GLXEW_EXT_create_context_es2_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es2_profile)
616 
617 #endif /* GLX_EXT_create_context_es2_profile */
618 
619 /* ------------------- GLX_EXT_create_context_es_profile ------------------- */
620 
621 #ifndef GLX_EXT_create_context_es_profile
622 #define GLX_EXT_create_context_es_profile 1
623 
624 #define GLX_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004
625 
626 #define GLXEW_EXT_create_context_es_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es_profile)
627 
628 #endif /* GLX_EXT_create_context_es_profile */
629 
630 /* --------------------- GLX_EXT_fbconfig_packed_float --------------------- */
631 
632 #ifndef GLX_EXT_fbconfig_packed_float
633 #define GLX_EXT_fbconfig_packed_float 1
634 
635 #define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
636 #define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
637 
638 #define GLXEW_EXT_fbconfig_packed_float GLXEW_GET_VAR(__GLXEW_EXT_fbconfig_packed_float)
639 
640 #endif /* GLX_EXT_fbconfig_packed_float */
641 
642 /* ------------------------ GLX_EXT_framebuffer_sRGB ----------------------- */
643 
644 #ifndef GLX_EXT_framebuffer_sRGB
645 #define GLX_EXT_framebuffer_sRGB 1
646 
647 #define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
648 
649 #define GLXEW_EXT_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_EXT_framebuffer_sRGB)
650 
651 #endif /* GLX_EXT_framebuffer_sRGB */
652 
653 /* ------------------------- GLX_EXT_import_context ------------------------ */
654 
655 #ifndef GLX_EXT_import_context
656 #define GLX_EXT_import_context 1
657 
658 #define GLX_SHARE_CONTEXT_EXT 0x800A
659 #define GLX_VISUAL_ID_EXT 0x800B
660 #define GLX_SCREEN_EXT 0x800C
661 
662 typedef XID GLXContextID;
663 
664 typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display* dpy, GLXContext context);
665 typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context);
666 typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display* dpy, GLXContextID contextID);
667 typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute,int *value);
668 
669 #define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT)
670 #define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT)
671 #define glXImportContextEXT GLXEW_GET_FUN(__glewXImportContextEXT)
672 #define glXQueryContextInfoEXT GLXEW_GET_FUN(__glewXQueryContextInfoEXT)
673 
674 #define GLXEW_EXT_import_context GLXEW_GET_VAR(__GLXEW_EXT_import_context)
675 
676 #endif /* GLX_EXT_import_context */
677 
678 /* ---------------------------- GLX_EXT_libglvnd --------------------------- */
679 
680 #ifndef GLX_EXT_libglvnd
681 #define GLX_EXT_libglvnd 1
682 
683 #define GLX_VENDOR_NAMES_EXT 0x20F6
684 
685 #define GLXEW_EXT_libglvnd GLXEW_GET_VAR(__GLXEW_EXT_libglvnd)
686 
687 #endif /* GLX_EXT_libglvnd */
688 
689 /* -------------------------- GLX_EXT_scene_marker ------------------------- */
690 
691 #ifndef GLX_EXT_scene_marker
692 #define GLX_EXT_scene_marker 1
693 
694 #define GLXEW_EXT_scene_marker GLXEW_GET_VAR(__GLXEW_EXT_scene_marker)
695 
696 #endif /* GLX_EXT_scene_marker */
697 
698 /* -------------------------- GLX_EXT_stereo_tree -------------------------- */
699 
700 #ifndef GLX_EXT_stereo_tree
701 #define GLX_EXT_stereo_tree 1
702 
703 #define GLX_STEREO_NOTIFY_EXT 0x00000000
704 #define GLX_STEREO_NOTIFY_MASK_EXT 0x00000001
705 #define GLX_STEREO_TREE_EXT 0x20F5
706 
707 #define GLXEW_EXT_stereo_tree GLXEW_GET_VAR(__GLXEW_EXT_stereo_tree)
708 
709 #endif /* GLX_EXT_stereo_tree */
710 
711 /* -------------------------- GLX_EXT_swap_control ------------------------- */
712 
713 #ifndef GLX_EXT_swap_control
714 #define GLX_EXT_swap_control 1
715 
716 #define GLX_SWAP_INTERVAL_EXT 0x20F1
717 #define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2
718 
719 typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, int interval);
720 
721 #define glXSwapIntervalEXT GLXEW_GET_FUN(__glewXSwapIntervalEXT)
722 
723 #define GLXEW_EXT_swap_control GLXEW_GET_VAR(__GLXEW_EXT_swap_control)
724 
725 #endif /* GLX_EXT_swap_control */
726 
727 /* ----------------------- GLX_EXT_swap_control_tear ----------------------- */
728 
729 #ifndef GLX_EXT_swap_control_tear
730 #define GLX_EXT_swap_control_tear 1
731 
732 #define GLX_LATE_SWAPS_TEAR_EXT 0x20F3
733 
734 #define GLXEW_EXT_swap_control_tear GLXEW_GET_VAR(__GLXEW_EXT_swap_control_tear)
735 
736 #endif /* GLX_EXT_swap_control_tear */
737 
738 /* ---------------------- GLX_EXT_texture_from_pixmap ---------------------- */
739 
740 #ifndef GLX_EXT_texture_from_pixmap
741 #define GLX_EXT_texture_from_pixmap 1
742 
743 #define GLX_TEXTURE_1D_BIT_EXT 0x00000001
744 #define GLX_TEXTURE_2D_BIT_EXT 0x00000002
745 #define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
746 #define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
747 #define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
748 #define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
749 #define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
750 #define GLX_Y_INVERTED_EXT 0x20D4
751 #define GLX_TEXTURE_FORMAT_EXT 0x20D5
752 #define GLX_TEXTURE_TARGET_EXT 0x20D6
753 #define GLX_MIPMAP_TEXTURE_EXT 0x20D7
754 #define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
755 #define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
756 #define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
757 #define GLX_TEXTURE_1D_EXT 0x20DB
758 #define GLX_TEXTURE_2D_EXT 0x20DC
759 #define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
760 #define GLX_FRONT_LEFT_EXT 0x20DE
761 #define GLX_FRONT_RIGHT_EXT 0x20DF
762 #define GLX_BACK_LEFT_EXT 0x20E0
763 #define GLX_BACK_RIGHT_EXT 0x20E1
764 #define GLX_AUX0_EXT 0x20E2
765 #define GLX_AUX1_EXT 0x20E3
766 #define GLX_AUX2_EXT 0x20E4
767 #define GLX_AUX3_EXT 0x20E5
768 #define GLX_AUX4_EXT 0x20E6
769 #define GLX_AUX5_EXT 0x20E7
770 #define GLX_AUX6_EXT 0x20E8
771 #define GLX_AUX7_EXT 0x20E9
772 #define GLX_AUX8_EXT 0x20EA
773 #define GLX_AUX9_EXT 0x20EB
774 
775 typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer, const int *attrib_list);
776 typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer);
777 
778 #define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT)
779 #define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT)
780 
781 #define GLXEW_EXT_texture_from_pixmap GLXEW_GET_VAR(__GLXEW_EXT_texture_from_pixmap)
782 
783 #endif /* GLX_EXT_texture_from_pixmap */
784 
785 /* -------------------------- GLX_EXT_visual_info -------------------------- */
786 
787 #ifndef GLX_EXT_visual_info
788 #define GLX_EXT_visual_info 1
789 
790 #define GLX_X_VISUAL_TYPE_EXT 0x22
791 #define GLX_TRANSPARENT_TYPE_EXT 0x23
792 #define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24
793 #define GLX_TRANSPARENT_RED_VALUE_EXT 0x25
794 #define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26
795 #define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27
796 #define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28
797 #define GLX_NONE_EXT 0x8000
798 #define GLX_TRUE_COLOR_EXT 0x8002
799 #define GLX_DIRECT_COLOR_EXT 0x8003
800 #define GLX_PSEUDO_COLOR_EXT 0x8004
801 #define GLX_STATIC_COLOR_EXT 0x8005
802 #define GLX_GRAY_SCALE_EXT 0x8006
803 #define GLX_STATIC_GRAY_EXT 0x8007
804 #define GLX_TRANSPARENT_RGB_EXT 0x8008
805 #define GLX_TRANSPARENT_INDEX_EXT 0x8009
806 
807 #define GLXEW_EXT_visual_info GLXEW_GET_VAR(__GLXEW_EXT_visual_info)
808 
809 #endif /* GLX_EXT_visual_info */
810 
811 /* ------------------------- GLX_EXT_visual_rating ------------------------- */
812 
813 #ifndef GLX_EXT_visual_rating
814 #define GLX_EXT_visual_rating 1
815 
816 #define GLX_VISUAL_CAVEAT_EXT 0x20
817 #define GLX_SLOW_VISUAL_EXT 0x8001
818 #define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
819 
820 #define GLXEW_EXT_visual_rating GLXEW_GET_VAR(__GLXEW_EXT_visual_rating)
821 
822 #endif /* GLX_EXT_visual_rating */
823 
824 /* -------------------------- GLX_INTEL_swap_event ------------------------- */
825 
826 #ifndef GLX_INTEL_swap_event
827 #define GLX_INTEL_swap_event 1
828 
829 #define GLX_EXCHANGE_COMPLETE_INTEL 0x8180
830 #define GLX_COPY_COMPLETE_INTEL 0x8181
831 #define GLX_FLIP_COMPLETE_INTEL 0x8182
832 #define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000
833 
834 #define GLXEW_INTEL_swap_event GLXEW_GET_VAR(__GLXEW_INTEL_swap_event)
835 
836 #endif /* GLX_INTEL_swap_event */
837 
838 /* -------------------------- GLX_MESA_agp_offset -------------------------- */
839 
840 #ifndef GLX_MESA_agp_offset
841 #define GLX_MESA_agp_offset 1
842 
843 typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void* pointer);
844 
845 #define glXGetAGPOffsetMESA GLXEW_GET_FUN(__glewXGetAGPOffsetMESA)
846 
847 #define GLXEW_MESA_agp_offset GLXEW_GET_VAR(__GLXEW_MESA_agp_offset)
848 
849 #endif /* GLX_MESA_agp_offset */
850 
851 /* ------------------------ GLX_MESA_copy_sub_buffer ----------------------- */
852 
853 #ifndef GLX_MESA_copy_sub_buffer
854 #define GLX_MESA_copy_sub_buffer 1
855 
856 typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display* dpy, GLXDrawable drawable, int x, int y, int width, int height);
857 
858 #define glXCopySubBufferMESA GLXEW_GET_FUN(__glewXCopySubBufferMESA)
859 
860 #define GLXEW_MESA_copy_sub_buffer GLXEW_GET_VAR(__GLXEW_MESA_copy_sub_buffer)
861 
862 #endif /* GLX_MESA_copy_sub_buffer */
863 
864 /* ------------------------ GLX_MESA_pixmap_colormap ----------------------- */
865 
866 #ifndef GLX_MESA_pixmap_colormap
867 #define GLX_MESA_pixmap_colormap 1
868 
869 typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
870 
871 #define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA)
872 
873 #define GLXEW_MESA_pixmap_colormap GLXEW_GET_VAR(__GLXEW_MESA_pixmap_colormap)
874 
875 #endif /* GLX_MESA_pixmap_colormap */
876 
877 /* ------------------------ GLX_MESA_query_renderer ------------------------ */
878 
879 #ifndef GLX_MESA_query_renderer
880 #define GLX_MESA_query_renderer 1
881 
882 #define GLX_RENDERER_VENDOR_ID_MESA 0x8183
883 #define GLX_RENDERER_DEVICE_ID_MESA 0x8184
884 #define GLX_RENDERER_VERSION_MESA 0x8185
885 #define GLX_RENDERER_ACCELERATED_MESA 0x8186
886 #define GLX_RENDERER_VIDEO_MEMORY_MESA 0x8187
887 #define GLX_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_MESA 0x8188
888 #define GLX_RENDERER_PREFERRED_PROFILE_MESA 0x8189
889 #define GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA 0x818A
890 #define GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA 0x818B
891 #define GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA 0x818C
892 #define GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA 0x818D
893 #define GLX_RENDERER_ID_MESA 0x818E
894 
895 typedef Bool ( * PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC) (int attribute, unsigned int* value);
896 typedef const char* ( * PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC) (int attribute);
897 typedef Bool ( * PFNGLXQUERYRENDERERINTEGERMESAPROC) (Display* dpy, int screen, int renderer, int attribute, unsigned int *value);
898 typedef const char* ( * PFNGLXQUERYRENDERERSTRINGMESAPROC) (Display *dpy, int screen, int renderer, int attribute);
899 
900 #define glXQueryCurrentRendererIntegerMESA GLXEW_GET_FUN(__glewXQueryCurrentRendererIntegerMESA)
901 #define glXQueryCurrentRendererStringMESA GLXEW_GET_FUN(__glewXQueryCurrentRendererStringMESA)
902 #define glXQueryRendererIntegerMESA GLXEW_GET_FUN(__glewXQueryRendererIntegerMESA)
903 #define glXQueryRendererStringMESA GLXEW_GET_FUN(__glewXQueryRendererStringMESA)
904 
905 #define GLXEW_MESA_query_renderer GLXEW_GET_VAR(__GLXEW_MESA_query_renderer)
906 
907 #endif /* GLX_MESA_query_renderer */
908 
909 /* ------------------------ GLX_MESA_release_buffers ----------------------- */
910 
911 #ifndef GLX_MESA_release_buffers
912 #define GLX_MESA_release_buffers 1
913 
914 typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable d);
915 
916 #define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA)
917 
918 #define GLXEW_MESA_release_buffers GLXEW_GET_VAR(__GLXEW_MESA_release_buffers)
919 
920 #endif /* GLX_MESA_release_buffers */
921 
922 /* ------------------------- GLX_MESA_set_3dfx_mode ------------------------ */
923 
924 #ifndef GLX_MESA_set_3dfx_mode
925 #define GLX_MESA_set_3dfx_mode 1
926 
927 #define GLX_3DFX_WINDOW_MODE_MESA 0x1
928 #define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
929 
930 typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode);
931 
932 #define glXSet3DfxModeMESA GLXEW_GET_FUN(__glewXSet3DfxModeMESA)
933 
934 #define GLXEW_MESA_set_3dfx_mode GLXEW_GET_VAR(__GLXEW_MESA_set_3dfx_mode)
935 
936 #endif /* GLX_MESA_set_3dfx_mode */
937 
938 /* ------------------------- GLX_MESA_swap_control ------------------------- */
939 
940 #ifndef GLX_MESA_swap_control
941 #define GLX_MESA_swap_control 1
942 
943 typedef int ( * PFNGLXGETSWAPINTERVALMESAPROC) (void);
944 typedef int ( * PFNGLXSWAPINTERVALMESAPROC) (unsigned int interval);
945 
946 #define glXGetSwapIntervalMESA GLXEW_GET_FUN(__glewXGetSwapIntervalMESA)
947 #define glXSwapIntervalMESA GLXEW_GET_FUN(__glewXSwapIntervalMESA)
948 
949 #define GLXEW_MESA_swap_control GLXEW_GET_VAR(__GLXEW_MESA_swap_control)
950 
951 #endif /* GLX_MESA_swap_control */
952 
953 /* --------------------------- GLX_NV_copy_buffer -------------------------- */
954 
955 #ifndef GLX_NV_copy_buffer
956 #define GLX_NV_copy_buffer 1
957 
958 typedef void ( * PFNGLXCOPYBUFFERSUBDATANVPROC) (Display* dpy, GLXContext readCtx, GLXContext writeCtx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
959 typedef void ( * PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC) (Display* dpy, GLXContext readCtx, GLXContext writeCtx, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
960 
961 #define glXCopyBufferSubDataNV GLXEW_GET_FUN(__glewXCopyBufferSubDataNV)
962 #define glXNamedCopyBufferSubDataNV GLXEW_GET_FUN(__glewXNamedCopyBufferSubDataNV)
963 
964 #define GLXEW_NV_copy_buffer GLXEW_GET_VAR(__GLXEW_NV_copy_buffer)
965 
966 #endif /* GLX_NV_copy_buffer */
967 
968 /* --------------------------- GLX_NV_copy_image --------------------------- */
969 
970 #ifndef GLX_NV_copy_image
971 #define GLX_NV_copy_image 1
972 
973 typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
974 
975 #define glXCopyImageSubDataNV GLXEW_GET_FUN(__glewXCopyImageSubDataNV)
976 
977 #define GLXEW_NV_copy_image GLXEW_GET_VAR(__GLXEW_NV_copy_image)
978 
979 #endif /* GLX_NV_copy_image */
980 
981 /* ------------------------ GLX_NV_delay_before_swap ----------------------- */
982 
983 #ifndef GLX_NV_delay_before_swap
984 #define GLX_NV_delay_before_swap 1
985 
986 typedef Bool ( * PFNGLXDELAYBEFORESWAPNVPROC) (Display* dpy, GLXDrawable drawable, GLfloat seconds);
987 
988 #define glXDelayBeforeSwapNV GLXEW_GET_FUN(__glewXDelayBeforeSwapNV)
989 
990 #define GLXEW_NV_delay_before_swap GLXEW_GET_VAR(__GLXEW_NV_delay_before_swap)
991 
992 #endif /* GLX_NV_delay_before_swap */
993 
994 /* -------------------------- GLX_NV_float_buffer -------------------------- */
995 
996 #ifndef GLX_NV_float_buffer
997 #define GLX_NV_float_buffer 1
998 
999 #define GLX_FLOAT_COMPONENTS_NV 0x20B0
1000 
1001 #define GLXEW_NV_float_buffer GLXEW_GET_VAR(__GLXEW_NV_float_buffer)
1002 
1003 #endif /* GLX_NV_float_buffer */
1004 
1005 /* ---------------------- GLX_NV_multisample_coverage ---------------------- */
1006 
1007 #ifndef GLX_NV_multisample_coverage
1008 #define GLX_NV_multisample_coverage 1
1009 
1010 #define GLX_COLOR_SAMPLES_NV 0x20B3
1011 #define GLX_COVERAGE_SAMPLES_NV 100001
1012 
1013 #define GLXEW_NV_multisample_coverage GLXEW_GET_VAR(__GLXEW_NV_multisample_coverage)
1014 
1015 #endif /* GLX_NV_multisample_coverage */
1016 
1017 /* -------------------------- GLX_NV_present_video ------------------------- */
1018 
1019 #ifndef GLX_NV_present_video
1020 #define GLX_NV_present_video 1
1021 
1022 #define GLX_NUM_VIDEO_SLOTS_NV 0x20F0
1023 
1024 typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list);
1025 typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements);
1026 
1027 #define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV)
1028 #define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV)
1029 
1030 #define GLXEW_NV_present_video GLXEW_GET_VAR(__GLXEW_NV_present_video)
1031 
1032 #endif /* GLX_NV_present_video */
1033 
1034 /* ------------------ GLX_NV_robustness_video_memory_purge ----------------- */
1035 
1036 #ifndef GLX_NV_robustness_video_memory_purge
1037 #define GLX_NV_robustness_video_memory_purge 1
1038 
1039 #define GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x20F7
1040 
1041 #define GLXEW_NV_robustness_video_memory_purge GLXEW_GET_VAR(__GLXEW_NV_robustness_video_memory_purge)
1042 
1043 #endif /* GLX_NV_robustness_video_memory_purge */
1044 
1045 /* --------------------------- GLX_NV_swap_group --------------------------- */
1046 
1047 #ifndef GLX_NV_swap_group
1048 #define GLX_NV_swap_group 1
1049 
1050 typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display* dpy, GLuint group, GLuint barrier);
1051 typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint group);
1052 typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint *count);
1053 typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers);
1054 typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier);
1055 typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display* dpy, int screen);
1056 
1057 #define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV)
1058 #define glXJoinSwapGroupNV GLXEW_GET_FUN(__glewXJoinSwapGroupNV)
1059 #define glXQueryFrameCountNV GLXEW_GET_FUN(__glewXQueryFrameCountNV)
1060 #define glXQueryMaxSwapGroupsNV GLXEW_GET_FUN(__glewXQueryMaxSwapGroupsNV)
1061 #define glXQuerySwapGroupNV GLXEW_GET_FUN(__glewXQuerySwapGroupNV)
1062 #define glXResetFrameCountNV GLXEW_GET_FUN(__glewXResetFrameCountNV)
1063 
1064 #define GLXEW_NV_swap_group GLXEW_GET_VAR(__GLXEW_NV_swap_group)
1065 
1066 #endif /* GLX_NV_swap_group */
1067 
1068 /* ----------------------- GLX_NV_vertex_array_range ----------------------- */
1069 
1070 #ifndef GLX_NV_vertex_array_range
1071 #define GLX_NV_vertex_array_range 1
1072 
1073 typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority);
1074 typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer);
1075 
1076 #define glXAllocateMemoryNV GLXEW_GET_FUN(__glewXAllocateMemoryNV)
1077 #define glXFreeMemoryNV GLXEW_GET_FUN(__glewXFreeMemoryNV)
1078 
1079 #define GLXEW_NV_vertex_array_range GLXEW_GET_VAR(__GLXEW_NV_vertex_array_range)
1080 
1081 #endif /* GLX_NV_vertex_array_range */
1082 
1083 /* -------------------------- GLX_NV_video_capture ------------------------- */
1084 
1085 #ifndef GLX_NV_video_capture
1086 #define GLX_NV_video_capture 1
1087 
1088 #define GLX_DEVICE_ID_NV 0x20CD
1089 #define GLX_UNIQUE_ID_NV 0x20CE
1090 #define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
1091 
1092 typedef XID GLXVideoCaptureDeviceNV;
1093 
1094 typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display* dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device);
1095 typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display* dpy, int screen, int *nelements);
1096 typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device);
1097 typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value);
1098 typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device);
1099 
1100 #define glXBindVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXBindVideoCaptureDeviceNV)
1101 #define glXEnumerateVideoCaptureDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoCaptureDevicesNV)
1102 #define glXLockVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXLockVideoCaptureDeviceNV)
1103 #define glXQueryVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXQueryVideoCaptureDeviceNV)
1104 #define glXReleaseVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoCaptureDeviceNV)
1105 
1106 #define GLXEW_NV_video_capture GLXEW_GET_VAR(__GLXEW_NV_video_capture)
1107 
1108 #endif /* GLX_NV_video_capture */
1109 
1110 /* ---------------------------- GLX_NV_video_out --------------------------- */
1111 
1112 #ifndef GLX_NV_video_out
1113 #define GLX_NV_video_out 1
1114 
1115 #define GLX_VIDEO_OUT_COLOR_NV 0x20C3
1116 #define GLX_VIDEO_OUT_ALPHA_NV 0x20C4
1117 #define GLX_VIDEO_OUT_DEPTH_NV 0x20C5
1118 #define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
1119 #define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
1120 #define GLX_VIDEO_OUT_FRAME_NV 0x20C8
1121 #define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9
1122 #define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA
1123 #define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB
1124 #define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC
1125 
1126 typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer);
1127 typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice);
1128 typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
1129 typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice);
1130 typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display* dpy, GLXPbuffer pbuf);
1131 typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock);
1132 
1133 #define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV)
1134 #define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV)
1135 #define glXGetVideoInfoNV GLXEW_GET_FUN(__glewXGetVideoInfoNV)
1136 #define glXReleaseVideoDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoDeviceNV)
1137 #define glXReleaseVideoImageNV GLXEW_GET_FUN(__glewXReleaseVideoImageNV)
1138 #define glXSendPbufferToVideoNV GLXEW_GET_FUN(__glewXSendPbufferToVideoNV)
1139 
1140 #define GLXEW_NV_video_out GLXEW_GET_VAR(__GLXEW_NV_video_out)
1141 
1142 #endif /* GLX_NV_video_out */
1143 
1144 /* -------------------------- GLX_OML_swap_method -------------------------- */
1145 
1146 #ifndef GLX_OML_swap_method
1147 #define GLX_OML_swap_method 1
1148 
1149 #define GLX_SWAP_METHOD_OML 0x8060
1150 #define GLX_SWAP_EXCHANGE_OML 0x8061
1151 #define GLX_SWAP_COPY_OML 0x8062
1152 #define GLX_SWAP_UNDEFINED_OML 0x8063
1153 
1154 #define GLXEW_OML_swap_method GLXEW_GET_VAR(__GLXEW_OML_swap_method)
1155 
1156 #endif /* GLX_OML_swap_method */
1157 
1158 /* -------------------------- GLX_OML_sync_control ------------------------- */
1159 
1160 #ifndef GLX_OML_sync_control
1161 #define GLX_OML_sync_control 1
1162 
1163 typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator);
1164 typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc);
1165 typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
1166 typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc);
1167 typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc);
1168 
1169 #define glXGetMscRateOML GLXEW_GET_FUN(__glewXGetMscRateOML)
1170 #define glXGetSyncValuesOML GLXEW_GET_FUN(__glewXGetSyncValuesOML)
1171 #define glXSwapBuffersMscOML GLXEW_GET_FUN(__glewXSwapBuffersMscOML)
1172 #define glXWaitForMscOML GLXEW_GET_FUN(__glewXWaitForMscOML)
1173 #define glXWaitForSbcOML GLXEW_GET_FUN(__glewXWaitForSbcOML)
1174 
1175 #define GLXEW_OML_sync_control GLXEW_GET_VAR(__GLXEW_OML_sync_control)
1176 
1177 #endif /* GLX_OML_sync_control */
1178 
1179 /* ------------------------ GLX_SGIS_blended_overlay ----------------------- */
1180 
1181 #ifndef GLX_SGIS_blended_overlay
1182 #define GLX_SGIS_blended_overlay 1
1183 
1184 #define GLX_BLENDED_RGBA_SGIS 0x8025
1185 
1186 #define GLXEW_SGIS_blended_overlay GLXEW_GET_VAR(__GLXEW_SGIS_blended_overlay)
1187 
1188 #endif /* GLX_SGIS_blended_overlay */
1189 
1190 /* -------------------------- GLX_SGIS_color_range ------------------------- */
1191 
1192 #ifndef GLX_SGIS_color_range
1193 #define GLX_SGIS_color_range 1
1194 
1195 #define GLXEW_SGIS_color_range GLXEW_GET_VAR(__GLXEW_SGIS_color_range)
1196 
1197 #endif /* GLX_SGIS_color_range */
1198 
1199 /* -------------------------- GLX_SGIS_multisample ------------------------- */
1200 
1201 #ifndef GLX_SGIS_multisample
1202 #define GLX_SGIS_multisample 1
1203 
1204 #define GLX_SAMPLE_BUFFERS_SGIS 100000
1205 #define GLX_SAMPLES_SGIS 100001
1206 
1207 #define GLXEW_SGIS_multisample GLXEW_GET_VAR(__GLXEW_SGIS_multisample)
1208 
1209 #endif /* GLX_SGIS_multisample */
1210 
1211 /* ---------------------- GLX_SGIS_shared_multisample ---------------------- */
1212 
1213 #ifndef GLX_SGIS_shared_multisample
1214 #define GLX_SGIS_shared_multisample 1
1215 
1216 #define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
1217 #define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027
1218 
1219 #define GLXEW_SGIS_shared_multisample GLXEW_GET_VAR(__GLXEW_SGIS_shared_multisample)
1220 
1221 #endif /* GLX_SGIS_shared_multisample */
1222 
1223 /* --------------------------- GLX_SGIX_fbconfig --------------------------- */
1224 
1225 #ifndef GLX_SGIX_fbconfig
1226 #define GLX_SGIX_fbconfig 1
1227 
1228 #define GLX_RGBA_BIT_SGIX 0x00000001
1229 #define GLX_WINDOW_BIT_SGIX 0x00000001
1230 #define GLX_COLOR_INDEX_BIT_SGIX 0x00000002
1231 #define GLX_PIXMAP_BIT_SGIX 0x00000002
1232 #define GLX_SCREEN_EXT 0x800C
1233 #define GLX_DRAWABLE_TYPE_SGIX 0x8010
1234 #define GLX_RENDER_TYPE_SGIX 0x8011
1235 #define GLX_X_RENDERABLE_SGIX 0x8012
1236 #define GLX_FBCONFIG_ID_SGIX 0x8013
1237 #define GLX_RGBA_TYPE_SGIX 0x8014
1238 #define GLX_COLOR_INDEX_TYPE_SGIX 0x8015
1239 
1240 typedef XID GLXFBConfigIDSGIX;
1241 typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
1242 
1243 typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
1244 typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
1245 typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, Pixmap pixmap);
1246 typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int *value);
1247 typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo *vis);
1248 typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfig config);
1249 
1250 #define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX)
1251 #define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX)
1252 #define glXCreateGLXPixmapWithConfigSGIX GLXEW_GET_FUN(__glewXCreateGLXPixmapWithConfigSGIX)
1253 #define glXGetFBConfigAttribSGIX GLXEW_GET_FUN(__glewXGetFBConfigAttribSGIX)
1254 #define glXGetFBConfigFromVisualSGIX GLXEW_GET_FUN(__glewXGetFBConfigFromVisualSGIX)
1255 #define glXGetVisualFromFBConfigSGIX GLXEW_GET_FUN(__glewXGetVisualFromFBConfigSGIX)
1256 
1257 #define GLXEW_SGIX_fbconfig GLXEW_GET_VAR(__GLXEW_SGIX_fbconfig)
1258 
1259 #endif /* GLX_SGIX_fbconfig */
1260 
1261 /* --------------------------- GLX_SGIX_hyperpipe -------------------------- */
1262 
1263 #ifndef GLX_SGIX_hyperpipe
1264 #define GLX_SGIX_hyperpipe 1
1265 
1266 #define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001
1267 #define GLX_PIPE_RECT_SGIX 0x00000001
1268 #define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002
1269 #define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002
1270 #define GLX_HYPERPIPE_STEREO_SGIX 0x00000003
1271 #define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004
1272 #define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80
1273 #define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91
1274 #define GLX_BAD_HYPERPIPE_SGIX 92
1275 #define GLX_HYPERPIPE_ID_SGIX 0x8030
1276 
1277 typedef struct {
1278  char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
1279  int networkId;
1280 } GLXHyperpipeNetworkSGIX;
1281 typedef struct {
1282  char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
1283  int XOrigin;
1284  int YOrigin;
1285  int maxHeight;
1286  int maxWidth;
1287 } GLXPipeRectLimits;
1288 typedef struct {
1289  char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
1290  int channel;
1291  unsigned int participationType;
1292  int timeSlice;
1293 } GLXHyperpipeConfigSGIX;
1294 typedef struct {
1295  char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
1296  int srcXOrigin;
1297  int srcYOrigin;
1298  int srcWidth;
1299  int srcHeight;
1300  int destXOrigin;
1301  int destYOrigin;
1302  int destWidth;
1303  int destHeight;
1304 } GLXPipeRect;
1305 
1306 typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId);
1307 typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId);
1308 typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList);
1309 typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId);
1310 typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList);
1311 typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList);
1312 typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes);
1313 typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes);
1314 
1315 #define glXBindHyperpipeSGIX GLXEW_GET_FUN(__glewXBindHyperpipeSGIX)
1316 #define glXDestroyHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXDestroyHyperpipeConfigSGIX)
1317 #define glXHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXHyperpipeAttribSGIX)
1318 #define glXHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXHyperpipeConfigSGIX)
1319 #define glXQueryHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeAttribSGIX)
1320 #define glXQueryHyperpipeBestAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeBestAttribSGIX)
1321 #define glXQueryHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeConfigSGIX)
1322 #define glXQueryHyperpipeNetworkSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeNetworkSGIX)
1323 
1324 #define GLXEW_SGIX_hyperpipe GLXEW_GET_VAR(__GLXEW_SGIX_hyperpipe)
1325 
1326 #endif /* GLX_SGIX_hyperpipe */
1327 
1328 /* ---------------------------- GLX_SGIX_pbuffer --------------------------- */
1329 
1330 #ifndef GLX_SGIX_pbuffer
1331 #define GLX_SGIX_pbuffer 1
1332 
1333 #define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001
1334 #define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002
1335 #define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004
1336 #define GLX_PBUFFER_BIT_SGIX 0x00000004
1337 #define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008
1338 #define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010
1339 #define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020
1340 #define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040
1341 #define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080
1342 #define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100
1343 #define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016
1344 #define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017
1345 #define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018
1346 #define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019
1347 #define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
1348 #define GLX_PRESERVED_CONTENTS_SGIX 0x801B
1349 #define GLX_LARGEST_PBUFFER_SGIX 0x801C
1350 #define GLX_WIDTH_SGIX 0x801D
1351 #define GLX_HEIGHT_SGIX 0x801E
1352 #define GLX_EVENT_MASK_SGIX 0x801F
1353 #define GLX_DAMAGED_SGIX 0x8020
1354 #define GLX_SAVED_SGIX 0x8021
1355 #define GLX_WINDOW_SGIX 0x8022
1356 #define GLX_PBUFFER_SGIX 0x8023
1357 #define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000
1358 
1359 typedef XID GLXPbufferSGIX;
1360 typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX;
1361 
1362 typedef GLXPbuffer ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display* dpy, GLXFBConfig config, unsigned int width, unsigned int height, int *attrib_list);
1363 typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf);
1364 typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long *mask);
1365 typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf, int attribute, unsigned int *value);
1366 typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long mask);
1367 
1368 #define glXCreateGLXPbufferSGIX GLXEW_GET_FUN(__glewXCreateGLXPbufferSGIX)
1369 #define glXDestroyGLXPbufferSGIX GLXEW_GET_FUN(__glewXDestroyGLXPbufferSGIX)
1370 #define glXGetSelectedEventSGIX GLXEW_GET_FUN(__glewXGetSelectedEventSGIX)
1371 #define glXQueryGLXPbufferSGIX GLXEW_GET_FUN(__glewXQueryGLXPbufferSGIX)
1372 #define glXSelectEventSGIX GLXEW_GET_FUN(__glewXSelectEventSGIX)
1373 
1374 #define GLXEW_SGIX_pbuffer GLXEW_GET_VAR(__GLXEW_SGIX_pbuffer)
1375 
1376 #endif /* GLX_SGIX_pbuffer */
1377 
1378 /* ------------------------- GLX_SGIX_swap_barrier ------------------------- */
1379 
1380 #ifndef GLX_SGIX_swap_barrier
1381 #define GLX_SGIX_swap_barrier 1
1382 
1383 typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier);
1384 typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max);
1385 
1386 #define glXBindSwapBarrierSGIX GLXEW_GET_FUN(__glewXBindSwapBarrierSGIX)
1387 #define glXQueryMaxSwapBarriersSGIX GLXEW_GET_FUN(__glewXQueryMaxSwapBarriersSGIX)
1388 
1389 #define GLXEW_SGIX_swap_barrier GLXEW_GET_VAR(__GLXEW_SGIX_swap_barrier)
1390 
1391 #endif /* GLX_SGIX_swap_barrier */
1392 
1393 /* -------------------------- GLX_SGIX_swap_group -------------------------- */
1394 
1395 #ifndef GLX_SGIX_swap_group
1396 #define GLX_SGIX_swap_group 1
1397 
1398 typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member);
1399 
1400 #define glXJoinSwapGroupSGIX GLXEW_GET_FUN(__glewXJoinSwapGroupSGIX)
1401 
1402 #define GLXEW_SGIX_swap_group GLXEW_GET_VAR(__GLXEW_SGIX_swap_group)
1403 
1404 #endif /* GLX_SGIX_swap_group */
1405 
1406 /* ------------------------- GLX_SGIX_video_resize ------------------------- */
1407 
1408 #ifndef GLX_SGIX_video_resize
1409 #define GLX_SGIX_video_resize 1
1410 
1411 #define GLX_SYNC_FRAME_SGIX 0x00000000
1412 #define GLX_SYNC_SWAP_SGIX 0x00000001
1413 
1414 typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display* display, int screen, int channel, Window window);
1415 typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int x, int y, int w, int h);
1416 typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display* display, int screen, int channel, GLenum synctype);
1417 typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display* display, int screen, int channel, int *x, int *y, int *w, int *h);
1418 typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
1419 
1420 #define glXBindChannelToWindowSGIX GLXEW_GET_FUN(__glewXBindChannelToWindowSGIX)
1421 #define glXChannelRectSGIX GLXEW_GET_FUN(__glewXChannelRectSGIX)
1422 #define glXChannelRectSyncSGIX GLXEW_GET_FUN(__glewXChannelRectSyncSGIX)
1423 #define glXQueryChannelDeltasSGIX GLXEW_GET_FUN(__glewXQueryChannelDeltasSGIX)
1424 #define glXQueryChannelRectSGIX GLXEW_GET_FUN(__glewXQueryChannelRectSGIX)
1425 
1426 #define GLXEW_SGIX_video_resize GLXEW_GET_VAR(__GLXEW_SGIX_video_resize)
1427 
1428 #endif /* GLX_SGIX_video_resize */
1429 
1430 /* ---------------------- GLX_SGIX_visual_select_group --------------------- */
1431 
1432 #ifndef GLX_SGIX_visual_select_group
1433 #define GLX_SGIX_visual_select_group 1
1434 
1435 #define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028
1436 
1437 #define GLXEW_SGIX_visual_select_group GLXEW_GET_VAR(__GLXEW_SGIX_visual_select_group)
1438 
1439 #endif /* GLX_SGIX_visual_select_group */
1440 
1441 /* ---------------------------- GLX_SGI_cushion ---------------------------- */
1442 
1443 #ifndef GLX_SGI_cushion
1444 #define GLX_SGI_cushion 1
1445 
1446 typedef void ( * PFNGLXCUSHIONSGIPROC) (Display* dpy, Window window, float cushion);
1447 
1448 #define glXCushionSGI GLXEW_GET_FUN(__glewXCushionSGI)
1449 
1450 #define GLXEW_SGI_cushion GLXEW_GET_VAR(__GLXEW_SGI_cushion)
1451 
1452 #endif /* GLX_SGI_cushion */
1453 
1454 /* ----------------------- GLX_SGI_make_current_read ----------------------- */
1455 
1456 #ifndef GLX_SGI_make_current_read
1457 #define GLX_SGI_make_current_read 1
1458 
1459 typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void);
1460 typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display* dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
1461 
1462 #define glXGetCurrentReadDrawableSGI GLXEW_GET_FUN(__glewXGetCurrentReadDrawableSGI)
1463 #define glXMakeCurrentReadSGI GLXEW_GET_FUN(__glewXMakeCurrentReadSGI)
1464 
1465 #define GLXEW_SGI_make_current_read GLXEW_GET_VAR(__GLXEW_SGI_make_current_read)
1466 
1467 #endif /* GLX_SGI_make_current_read */
1468 
1469 /* -------------------------- GLX_SGI_swap_control ------------------------- */
1470 
1471 #ifndef GLX_SGI_swap_control
1472 #define GLX_SGI_swap_control 1
1473 
1474 typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval);
1475 
1476 #define glXSwapIntervalSGI GLXEW_GET_FUN(__glewXSwapIntervalSGI)
1477 
1478 #define GLXEW_SGI_swap_control GLXEW_GET_VAR(__GLXEW_SGI_swap_control)
1479 
1480 #endif /* GLX_SGI_swap_control */
1481 
1482 /* --------------------------- GLX_SGI_video_sync -------------------------- */
1483 
1484 #ifndef GLX_SGI_video_sync
1485 #define GLX_SGI_video_sync 1
1486 
1487 typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int* count);
1488 typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int* count);
1489 
1490 #define glXGetVideoSyncSGI GLXEW_GET_FUN(__glewXGetVideoSyncSGI)
1491 #define glXWaitVideoSyncSGI GLXEW_GET_FUN(__glewXWaitVideoSyncSGI)
1492 
1493 #define GLXEW_SGI_video_sync GLXEW_GET_VAR(__GLXEW_SGI_video_sync)
1494 
1495 #endif /* GLX_SGI_video_sync */
1496 
1497 /* --------------------- GLX_SUN_get_transparent_index --------------------- */
1498 
1499 #ifndef GLX_SUN_get_transparent_index
1500 #define GLX_SUN_get_transparent_index 1
1501 
1502 typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display* dpy, Window overlay, Window underlay, unsigned long *pTransparentIndex);
1503 
1504 #define glXGetTransparentIndexSUN GLXEW_GET_FUN(__glewXGetTransparentIndexSUN)
1505 
1506 #define GLXEW_SUN_get_transparent_index GLXEW_GET_VAR(__GLXEW_SUN_get_transparent_index)
1507 
1508 #endif /* GLX_SUN_get_transparent_index */
1509 
1510 /* -------------------------- GLX_SUN_video_resize ------------------------- */
1511 
1512 #ifndef GLX_SUN_video_resize
1513 #define GLX_SUN_video_resize 1
1514 
1515 #define GLX_VIDEO_RESIZE_SUN 0x8171
1516 #define GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD
1517 
1518 typedef int ( * PFNGLXGETVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float* factor);
1519 typedef int ( * PFNGLXVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float factor);
1520 
1521 #define glXGetVideoResizeSUN GLXEW_GET_FUN(__glewXGetVideoResizeSUN)
1522 #define glXVideoResizeSUN GLXEW_GET_FUN(__glewXVideoResizeSUN)
1523 
1524 #define GLXEW_SUN_video_resize GLXEW_GET_VAR(__GLXEW_SUN_video_resize)
1525 
1526 #endif /* GLX_SUN_video_resize */
1527 
1528 /* ------------------------------------------------------------------------- */
1529 
1530 #define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT
1531 #define GLXEW_VAR_EXPORT GLEW_VAR_EXPORT
1532 
1533 GLXEW_FUN_EXPORT PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay;
1534 
1535 GLXEW_FUN_EXPORT PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig;
1536 GLXEW_FUN_EXPORT PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext;
1537 GLXEW_FUN_EXPORT PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer;
1538 GLXEW_FUN_EXPORT PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap;
1539 GLXEW_FUN_EXPORT PFNGLXCREATEWINDOWPROC __glewXCreateWindow;
1540 GLXEW_FUN_EXPORT PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer;
1541 GLXEW_FUN_EXPORT PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap;
1542 GLXEW_FUN_EXPORT PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow;
1543 GLXEW_FUN_EXPORT PFNGLXGETCURRENTREADDRAWABLEPROC __glewXGetCurrentReadDrawable;
1544 GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGATTRIBPROC __glewXGetFBConfigAttrib;
1545 GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGSPROC __glewXGetFBConfigs;
1546 GLXEW_FUN_EXPORT PFNGLXGETSELECTEDEVENTPROC __glewXGetSelectedEvent;
1547 GLXEW_FUN_EXPORT PFNGLXGETVISUALFROMFBCONFIGPROC __glewXGetVisualFromFBConfig;
1548 GLXEW_FUN_EXPORT PFNGLXMAKECONTEXTCURRENTPROC __glewXMakeContextCurrent;
1549 GLXEW_FUN_EXPORT PFNGLXQUERYCONTEXTPROC __glewXQueryContext;
1550 GLXEW_FUN_EXPORT PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable;
1551 GLXEW_FUN_EXPORT PFNGLXSELECTEVENTPROC __glewXSelectEvent;
1552 
1553 GLXEW_FUN_EXPORT PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC __glewXBlitContextFramebufferAMD;
1554 GLXEW_FUN_EXPORT PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC __glewXCreateAssociatedContextAMD;
1555 GLXEW_FUN_EXPORT PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __glewXCreateAssociatedContextAttribsAMD;
1556 GLXEW_FUN_EXPORT PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC __glewXDeleteAssociatedContextAMD;
1557 GLXEW_FUN_EXPORT PFNGLXGETCONTEXTGPUIDAMDPROC __glewXGetContextGPUIDAMD;
1558 GLXEW_FUN_EXPORT PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC __glewXGetCurrentAssociatedContextAMD;
1559 GLXEW_FUN_EXPORT PFNGLXGETGPUIDSAMDPROC __glewXGetGPUIDsAMD;
1560 GLXEW_FUN_EXPORT PFNGLXGETGPUINFOAMDPROC __glewXGetGPUInfoAMD;
1561 GLXEW_FUN_EXPORT PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __glewXMakeAssociatedContextCurrentAMD;
1562 
1563 GLXEW_FUN_EXPORT PFNGLXCREATECONTEXTATTRIBSARBPROC __glewXCreateContextAttribsARB;
1564 
1565 GLXEW_FUN_EXPORT PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI;
1566 GLXEW_FUN_EXPORT PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI;
1567 GLXEW_FUN_EXPORT PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI;
1568 
1569 GLXEW_FUN_EXPORT PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT;
1570 GLXEW_FUN_EXPORT PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT;
1571 GLXEW_FUN_EXPORT PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT;
1572 GLXEW_FUN_EXPORT PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT;
1573 
1574 GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALEXTPROC __glewXSwapIntervalEXT;
1575 
1576 GLXEW_FUN_EXPORT PFNGLXBINDTEXIMAGEEXTPROC __glewXBindTexImageEXT;
1577 GLXEW_FUN_EXPORT PFNGLXRELEASETEXIMAGEEXTPROC __glewXReleaseTexImageEXT;
1578 
1579 GLXEW_FUN_EXPORT PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA;
1580 
1581 GLXEW_FUN_EXPORT PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA;
1582 
1583 GLXEW_FUN_EXPORT PFNGLXCREATEGLXPIXMAPMESAPROC __glewXCreateGLXPixmapMESA;
1584 
1585 GLXEW_FUN_EXPORT PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC __glewXQueryCurrentRendererIntegerMESA;
1586 GLXEW_FUN_EXPORT PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC __glewXQueryCurrentRendererStringMESA;
1587 GLXEW_FUN_EXPORT PFNGLXQUERYRENDERERINTEGERMESAPROC __glewXQueryRendererIntegerMESA;
1588 GLXEW_FUN_EXPORT PFNGLXQUERYRENDERERSTRINGMESAPROC __glewXQueryRendererStringMESA;
1589 
1590 GLXEW_FUN_EXPORT PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA;
1591 
1592 GLXEW_FUN_EXPORT PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA;
1593 
1594 GLXEW_FUN_EXPORT PFNGLXGETSWAPINTERVALMESAPROC __glewXGetSwapIntervalMESA;
1595 GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALMESAPROC __glewXSwapIntervalMESA;
1596 
1597 GLXEW_FUN_EXPORT PFNGLXCOPYBUFFERSUBDATANVPROC __glewXCopyBufferSubDataNV;
1598 GLXEW_FUN_EXPORT PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC __glewXNamedCopyBufferSubDataNV;
1599 
1600 GLXEW_FUN_EXPORT PFNGLXCOPYIMAGESUBDATANVPROC __glewXCopyImageSubDataNV;
1601 
1602 GLXEW_FUN_EXPORT PFNGLXDELAYBEFORESWAPNVPROC __glewXDelayBeforeSwapNV;
1603 
1604 GLXEW_FUN_EXPORT PFNGLXBINDVIDEODEVICENVPROC __glewXBindVideoDeviceNV;
1605 GLXEW_FUN_EXPORT PFNGLXENUMERATEVIDEODEVICESNVPROC __glewXEnumerateVideoDevicesNV;
1606 
1607 GLXEW_FUN_EXPORT PFNGLXBINDSWAPBARRIERNVPROC __glewXBindSwapBarrierNV;
1608 GLXEW_FUN_EXPORT PFNGLXJOINSWAPGROUPNVPROC __glewXJoinSwapGroupNV;
1609 GLXEW_FUN_EXPORT PFNGLXQUERYFRAMECOUNTNVPROC __glewXQueryFrameCountNV;
1610 GLXEW_FUN_EXPORT PFNGLXQUERYMAXSWAPGROUPSNVPROC __glewXQueryMaxSwapGroupsNV;
1611 GLXEW_FUN_EXPORT PFNGLXQUERYSWAPGROUPNVPROC __glewXQuerySwapGroupNV;
1612 GLXEW_FUN_EXPORT PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV;
1613 
1614 GLXEW_FUN_EXPORT PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV;
1615 GLXEW_FUN_EXPORT PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV;
1616 
1617 GLXEW_FUN_EXPORT PFNGLXBINDVIDEOCAPTUREDEVICENVPROC __glewXBindVideoCaptureDeviceNV;
1618 GLXEW_FUN_EXPORT PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC __glewXEnumerateVideoCaptureDevicesNV;
1619 GLXEW_FUN_EXPORT PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC __glewXLockVideoCaptureDeviceNV;
1620 GLXEW_FUN_EXPORT PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC __glewXQueryVideoCaptureDeviceNV;
1621 GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC __glewXReleaseVideoCaptureDeviceNV;
1622 
1623 GLXEW_FUN_EXPORT PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV;
1624 GLXEW_FUN_EXPORT PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV;
1625 GLXEW_FUN_EXPORT PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV;
1626 GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV;
1627 GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV;
1628 GLXEW_FUN_EXPORT PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV;
1629 
1630 GLXEW_FUN_EXPORT PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML;
1631 GLXEW_FUN_EXPORT PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML;
1632 GLXEW_FUN_EXPORT PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML;
1633 GLXEW_FUN_EXPORT PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML;
1634 GLXEW_FUN_EXPORT PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML;
1635 
1636 GLXEW_FUN_EXPORT PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX;
1637 GLXEW_FUN_EXPORT PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX;
1638 GLXEW_FUN_EXPORT PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC __glewXCreateGLXPixmapWithConfigSGIX;
1639 GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX;
1640 GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX;
1641 GLXEW_FUN_EXPORT PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX;
1642 
1643 GLXEW_FUN_EXPORT PFNGLXBINDHYPERPIPESGIXPROC __glewXBindHyperpipeSGIX;
1644 GLXEW_FUN_EXPORT PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC __glewXDestroyHyperpipeConfigSGIX;
1645 GLXEW_FUN_EXPORT PFNGLXHYPERPIPEATTRIBSGIXPROC __glewXHyperpipeAttribSGIX;
1646 GLXEW_FUN_EXPORT PFNGLXHYPERPIPECONFIGSGIXPROC __glewXHyperpipeConfigSGIX;
1647 GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC __glewXQueryHyperpipeAttribSGIX;
1648 GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC __glewXQueryHyperpipeBestAttribSGIX;
1649 GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPECONFIGSGIXPROC __glewXQueryHyperpipeConfigSGIX;
1650 GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPENETWORKSGIXPROC __glewXQueryHyperpipeNetworkSGIX;
1651 
1652 GLXEW_FUN_EXPORT PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX;
1653 GLXEW_FUN_EXPORT PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX;
1654 GLXEW_FUN_EXPORT PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX;
1655 GLXEW_FUN_EXPORT PFNGLXQUERYGLXPBUFFERSGIXPROC __glewXQueryGLXPbufferSGIX;
1656 GLXEW_FUN_EXPORT PFNGLXSELECTEVENTSGIXPROC __glewXSelectEventSGIX;
1657 
1658 GLXEW_FUN_EXPORT PFNGLXBINDSWAPBARRIERSGIXPROC __glewXBindSwapBarrierSGIX;
1659 GLXEW_FUN_EXPORT PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC __glewXQueryMaxSwapBarriersSGIX;
1660 
1661 GLXEW_FUN_EXPORT PFNGLXJOINSWAPGROUPSGIXPROC __glewXJoinSwapGroupSGIX;
1662 
1663 GLXEW_FUN_EXPORT PFNGLXBINDCHANNELTOWINDOWSGIXPROC __glewXBindChannelToWindowSGIX;
1664 GLXEW_FUN_EXPORT PFNGLXCHANNELRECTSGIXPROC __glewXChannelRectSGIX;
1665 GLXEW_FUN_EXPORT PFNGLXCHANNELRECTSYNCSGIXPROC __glewXChannelRectSyncSGIX;
1666 GLXEW_FUN_EXPORT PFNGLXQUERYCHANNELDELTASSGIXPROC __glewXQueryChannelDeltasSGIX;
1667 GLXEW_FUN_EXPORT PFNGLXQUERYCHANNELRECTSGIXPROC __glewXQueryChannelRectSGIX;
1668 
1669 GLXEW_FUN_EXPORT PFNGLXCUSHIONSGIPROC __glewXCushionSGI;
1670 
1671 GLXEW_FUN_EXPORT PFNGLXGETCURRENTREADDRAWABLESGIPROC __glewXGetCurrentReadDrawableSGI;
1672 GLXEW_FUN_EXPORT PFNGLXMAKECURRENTREADSGIPROC __glewXMakeCurrentReadSGI;
1673 
1674 GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALSGIPROC __glewXSwapIntervalSGI;
1675 
1676 GLXEW_FUN_EXPORT PFNGLXGETVIDEOSYNCSGIPROC __glewXGetVideoSyncSGI;
1677 GLXEW_FUN_EXPORT PFNGLXWAITVIDEOSYNCSGIPROC __glewXWaitVideoSyncSGI;
1678 
1679 GLXEW_FUN_EXPORT PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN;
1680 
1681 GLXEW_FUN_EXPORT PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN;
1682 GLXEW_FUN_EXPORT PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN;
1683 GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_0;
1684 GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_1;
1685 GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2;
1686 GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_3;
1687 GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_4;
1688 GLXEW_VAR_EXPORT GLboolean __GLXEW_3DFX_multisample;
1689 GLXEW_VAR_EXPORT GLboolean __GLXEW_AMD_gpu_association;
1690 GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_context_flush_control;
1691 GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context;
1692 GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_no_error;
1693 GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_profile;
1694 GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_robustness;
1695 GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_fbconfig_float;
1696 GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_framebuffer_sRGB;
1697 GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_get_proc_address;
1698 GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_multisample;
1699 GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_robustness_application_isolation;
1700 GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_robustness_share_group_isolation;
1701 GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_vertex_buffer_object;
1702 GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_pixel_format_float;
1703 GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_render_texture;
1704 GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_buffer_age;
1705 GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es2_profile;
1706 GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es_profile;
1707 GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float;
1708 GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB;
1709 GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_import_context;
1710 GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_libglvnd;
1711 GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_scene_marker;
1712 GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_stereo_tree;
1713 GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control;
1714 GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control_tear;
1715 GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_texture_from_pixmap;
1716 GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_visual_info;
1717 GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_visual_rating;
1718 GLXEW_VAR_EXPORT GLboolean __GLXEW_INTEL_swap_event;
1719 GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_agp_offset;
1720 GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_copy_sub_buffer;
1721 GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_pixmap_colormap;
1722 GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_query_renderer;
1723 GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_release_buffers;
1724 GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_set_3dfx_mode;
1725 GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_swap_control;
1726 GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_buffer;
1727 GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_image;
1728 GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_delay_before_swap;
1729 GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_float_buffer;
1730 GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_multisample_coverage;
1731 GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_present_video;
1732 GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_robustness_video_memory_purge;
1733 GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_swap_group;
1734 GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_vertex_array_range;
1735 GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_capture;
1736 GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_out;
1737 GLXEW_VAR_EXPORT GLboolean __GLXEW_OML_swap_method;
1738 GLXEW_VAR_EXPORT GLboolean __GLXEW_OML_sync_control;
1739 GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_blended_overlay;
1740 GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_color_range;
1741 GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_multisample;
1742 GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_shared_multisample;
1743 GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_fbconfig;
1744 GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_hyperpipe;
1745 GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_pbuffer;
1746 GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_swap_barrier;
1747 GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_swap_group;
1748 GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_video_resize;
1749 GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_visual_select_group;
1750 GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_cushion;
1751 GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_make_current_read;
1752 GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_swap_control;
1753 GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_video_sync;
1754 GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_get_transparent_index;
1755 GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_video_resize;
1756 /* ------------------------------------------------------------------------ */
1757 
1758 GLEWAPI GLenum GLEWAPIENTRY glxewInit ();
1759 GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name);
1760 
1761 #ifndef GLXEW_GET_VAR
1762 #define GLXEW_GET_VAR(x) (*(const GLboolean*)&x)
1763 #endif
1764 
1765 #ifndef GLXEW_GET_FUN
1766 #define GLXEW_GET_FUN(x) x
1767 #endif
1768 
1769 GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension (const char *name);
1770 
1771 #ifdef __cplusplus
1772 }
1773 #endif
1774 
1775 #endif /* __glxew_h__ */
bool Bool
Boolean.
Definition: BasicTypes.h:46
+
+ + + + + diff --git a/doc/html/glxew__head_8h_source.html b/doc/html/glxew__head_8h_source.html new file mode 100644 index 00000000..6e630e7f --- /dev/null +++ b/doc/html/glxew__head_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/auto/src/glxew_head.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
glxew_head.h
+
+
+
1 #ifndef __glxew_h__
2 #define __glxew_h__
3 #define __GLXEW_H__
4 
5 #ifdef __glxext_h_
6 #error glxext.h included before glxew.h
7 #endif
8 
9 #if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__)
10 #error glx.h included before glxew.h
11 #endif
12 
13 #define __glxext_h_
14 
15 #define GLX_H
16 #define __GLX_glx_h__
17 #define __glx_h__
18 
19 #include <X11/Xlib.h>
20 #include <X11/Xutil.h>
21 #include <X11/Xmd.h>
22 #include <GL/glew.h>
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* ---------------------------- GLX_VERSION_1_0 --------------------------- */
29 
30 #ifndef GLX_VERSION_1_0
31 #define GLX_VERSION_1_0 1
32 
33 #define GLX_USE_GL 1
34 #define GLX_BUFFER_SIZE 2
35 #define GLX_LEVEL 3
36 #define GLX_RGBA 4
37 #define GLX_DOUBLEBUFFER 5
38 #define GLX_STEREO 6
39 #define GLX_AUX_BUFFERS 7
40 #define GLX_RED_SIZE 8
41 #define GLX_GREEN_SIZE 9
42 #define GLX_BLUE_SIZE 10
43 #define GLX_ALPHA_SIZE 11
44 #define GLX_DEPTH_SIZE 12
45 #define GLX_STENCIL_SIZE 13
46 #define GLX_ACCUM_RED_SIZE 14
47 #define GLX_ACCUM_GREEN_SIZE 15
48 #define GLX_ACCUM_BLUE_SIZE 16
49 #define GLX_ACCUM_ALPHA_SIZE 17
50 #define GLX_BAD_SCREEN 1
51 #define GLX_BAD_ATTRIBUTE 2
52 #define GLX_NO_EXTENSION 3
53 #define GLX_BAD_VISUAL 4
54 #define GLX_BAD_CONTEXT 5
55 #define GLX_BAD_VALUE 6
56 #define GLX_BAD_ENUM 7
57 
58 typedef XID GLXDrawable;
59 typedef XID GLXPixmap;
60 #ifdef __sun
61 typedef struct __glXContextRec *GLXContext;
62 #else
63 typedef struct __GLXcontextRec *GLXContext;
64 #endif
65 
66 typedef unsigned int GLXVideoDeviceNV;
67 
68 extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase);
69 extern Bool glXQueryVersion (Display *dpy, int *major, int *minor);
70 extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value);
71 extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList);
72 extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap);
73 extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix);
74 extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
75 extern void glXDestroyContext (Display *dpy, GLXContext ctx);
76 extern Bool glXIsDirect (Display *dpy, GLXContext ctx);
77 extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask);
78 extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx);
79 extern GLXContext glXGetCurrentContext (void);
80 extern GLXDrawable glXGetCurrentDrawable (void);
81 extern void glXWaitGL (void);
82 extern void glXWaitX (void);
83 extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable);
84 extern void glXUseXFont (Font font, int first, int count, int listBase);
85 
86 #define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0)
87 
88 #endif /* GLX_VERSION_1_0 */
89 
90 /* ---------------------------- GLX_VERSION_1_1 --------------------------- */
91 
92 #ifndef GLX_VERSION_1_1
93 #define GLX_VERSION_1_1
94 
95 #define GLX_VENDOR 0x1
96 #define GLX_VERSION 0x2
97 #define GLX_EXTENSIONS 0x3
98 
99 extern const char* glXQueryExtensionsString (Display *dpy, int screen);
100 extern const char* glXGetClientString (Display *dpy, int name);
101 extern const char* glXQueryServerString (Display *dpy, int screen, int name);
102 
103 #define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1)
104 
105 #endif /* GLX_VERSION_1_1 */
106 
bool Bool
Boolean.
Definition: BasicTypes.h:46
+
+ + + + + diff --git a/doc/html/glxew__mid_8h_source.html b/doc/html/glxew__mid_8h_source.html new file mode 100644 index 00000000..05191d86 --- /dev/null +++ b/doc/html/glxew__mid_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/auto/src/glxew_mid.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
glxew_mid.h
+
+
+
1 /* ------------------------------------------------------------------------- */
2 
3 #define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT
4 #define GLXEW_VAR_EXPORT GLEW_VAR_EXPORT
+ + + + + diff --git a/doc/html/glxew__tail_8h_source.html b/doc/html/glxew__tail_8h_source.html new file mode 100644 index 00000000..b633ed70 --- /dev/null +++ b/doc/html/glxew__tail_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/auto/src/glxew_tail.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
glxew_tail.h
+
+
+
1 /* ------------------------------------------------------------------------ */
2 
3 GLEWAPI GLenum GLEWAPIENTRY glxewInit ();
4 GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name);
5 
6 #ifndef GLXEW_GET_VAR
7 #define GLXEW_GET_VAR(x) (*(const GLboolean*)&x)
8 #endif
9 
10 #ifndef GLXEW_GET_FUN
11 #define GLXEW_GET_FUN(x) x
12 #endif
13 
14 GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension (const char *name);
15 
16 #ifdef __cplusplus
17 }
18 #endif
19 
20 #endif /* __glxew_h__ */
+ + + + + diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html new file mode 100644 index 00000000..6c4bebfd --- /dev/null +++ b/doc/html/hierarchy.html @@ -0,0 +1,415 @@ + + + + + + + +Diligent Engine API Reference: Class Hierarchy + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 123456789]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 CDiligent::BlendStateDescBlend state description
 CDiligent::BoxBox
 CDiligent::BufferDataDescribes the buffer initial data
 CDiligent::BufferDesc::BufferFormatBuffer format description
 CDiligent::ShaderResourceCacheD3D11::CachedCBDescribes resources associated with the cached constant buffer
 CDiligent::ShaderResourceCacheD3D11::CachedResourceDescribes resources associated with the cached SRV or UAV
 CDiligent::ShaderResourceCacheD3D11::CachedSamplerDescribes resources associated with the cached sampler
 CDiligent::ComputePipelineDescCompute pipeline state description
 CDiligent::D3D12ResourceBaseBase implementation of a D3D12 resource
 CDiligent::DepthStencilClearValueDefines optimized depth-stencil clear value
 CDiligent::DepthStencilStateDescDepth stencil state description
 CDiligent::DeviceCapsDevice capabilities
 CDiligent::DeviceObjectAttribsDescribes common device object attributes
 CDiligent::DispatchComputeAttribsDescribes dispatch command arguments
 CDiligent::DrawAttribsDefines the draw command attributes
 CDiligent::EngineCreationAttribsEngine creation attibutes
 CDiligent::FixedBlockMemoryAllocatorMemory allocator that allocates memory in a fixed-size chunks
 CDiligent::GraphicsPipelineDescGraphics pipeline state description
 Cstd::hash< Diligent::BlendStateDesc >Hash function specialization for Diligent::BlendStateDesc structure
 Cstd::hash< Diligent::DepthStencilStateDesc >Hash function specialization for Diligent::DepthStencilStateDesc structure
 Cstd::hash< Diligent::RasterizerStateDesc >Hash function specialization for Diligent::RasterizerStateDesc structure
 Cstd::hash< Diligent::SamplerDesc >Hash function specialization for Diligent::SamplerDesc structure
 Cstd::hash< Diligent::StencilOpDesc >Hash function specialization for Diligent::StencilOpDesc structure
 Cstd::hash< Diligent::TextureViewDesc >Hash function specialization for Diligent::TextureViewDesc structure
 CDiligent::HashMapStringKeyThis helper structure is intended to facilitate using strings as a hash table key. It provides constructors that can make a copy of the source string or just keep pointer to it, which enables searching in the hash using raw const Char* pointers
 CDiligent::ICommandQueueD3D12Command queue interface
 CDiligent::IDeviceContextDevice context interface
 CDiligent::IDeviceObjectBase interface for all objects created by the render device Diligent::IRenderDevice
 CDiligent::InputLayoutDescLayout description
 CDiligent::IRenderDeviceRender device interface
 CDiligent::IResourceMappingResouce mapping
 CDiligent::IShaderResourceBindingShader resource binding interface
 CDiligent::IShaderSourceInputStreamFactoryShader source stream factory interface
 CDiligent::IShaderVariableShader resource variable
 CDiligent::ISwapChainSwap chain interface
 CDiligent::LayoutElementDescription of a single element of the input layout
 CDiligent::MapHelper< DataType, KeepStrongReferences >Facilitates resource mapping
 CDiligent::OptimizedClearValueDefines optimized clear value
 CDiligent::RasterizerStateDescRasterizer state description
 CDiligent::RectDescribes the rectangle
 CDiligent::RefCntAutoPtr< T >Template class that implements reference counting
 CDiligent::RefCntAutoPtr< class Diligent::SamplerD3D11Impl >
 CDiligent::RefCntAutoPtr< class Diligent::SamplerGLImpl >
 CDiligent::RefCntAutoPtr< Diligent::BufferD3D11Impl >
 CDiligent::RefCntAutoPtr< Diligent::IBuffer >
 CDiligent::RefCntAutoPtr< Diligent::ICommandQueueD3D12 >
 CDiligent::RefCntAutoPtr< Diligent::IDeviceObject >
 CDiligent::RefCntAutoPtr< Diligent::IPipelineState >
 CDiligent::RefCntAutoPtr< Diligent::IRenderDevice >
 CDiligent::RefCntAutoPtr< Diligent::ISampler >
 CDiligent::RefCntAutoPtr< Diligent::IShader >
 CDiligent::RefCntAutoPtr< Diligent::ISwapChain >
 CDiligent::RefCntAutoPtr< Diligent::ITexture >
 CDiligent::RefCntAutoPtr< Diligent::ITextureView >
 CDiligent::RefCntAutoPtr< Diligent::ITextureViewD3D12 >
 CDiligent::RefCntWeakPtr< T >Implementation of weak pointers
 CDiligent::RefCntWeakPtr< Diligent::IDeviceContext >
 CDiligent::RefCntWeakPtr< Diligent::PipelineStateGLImpl >
 CDiligent::RefCountedObject< Base >Base class for all reference counting objects
 CDiligent::RefCountedObject< BaseInterface >
 CDiligent::RefCountedObject< IDataBlob >
 CDiligent::RefCountedObject< IFileStream >
 CDiligent::RefCountedObject< IGLDeviceBaseInterface >
 CDiligent::RenderDeviceD3D11ImplImplementation of the Diligent::IRenderDeviceD3D11 interface
 CDiligent::RenderDeviceD3D12ImplImplementation of the Diligent::IRenderDeviceD3D12 interface
 CDiligent::RenderTargetBlendDescDescribes a blend state for a single render target
 CDiligent::ResourceMappingDescResource mapping description
 CDiligent::ResourceMappingEntryDescribes the resourse mapping object entry
 CDiligent::RootSignatureImplementation of the Diligent::RootSignature class
 CDiligent::SampleDescSample description
 CDiligent::SamplerCapsTexture sampler capabilities
 CDiligent::ShaderCreationAttribsShader creation attributes
 CDiligent::ShaderResourceCacheD3D11The class implements a cache that holds resources bound to a specific shader stage
 CDiligent::ShaderResourceLayoutD3D11Diligent::ShaderResourceLayoutD3D11 class http://diligentgraphics.com/diligent-engine/architecture/d3d11/shader-resource-layout/
 CDiligent::ShaderResourceLayoutD3D12Diligent::ShaderResourceLayoutD3D12 class
 CDiligent::ShaderResourcesD3D11Diligent::ShaderResources class
 CDiligent::ShaderResourcesD3D12Diligent::ShaderResources class
 CDiligent::ShaderVariableDescDescribes shader variable
 CDiligent::StateObjectsRegistry< ResourceDescType >Template class implementing state object registry
 CDiligent::StateObjectsRegistry< Diligent::SamplerDesc >
 CDiligent::StaticSamplerDescStatic sampler description
 CDiligent::StencilOpDescDescribes stencil operations that are performed based on the results of depth test
 CDiligent::SwapChainDescSwap chain description
 CDiligent::TextureCapsTexture capabilities
 CDiligent::TextureDataDescribes the initial data to store in the texture
 CDiligent::TextureFormatAttribsDescribes invariant texture format attributes. These attributes are intrinsic to the texture format itself and do not depend on the format support
 CDiligent::TextureSubResDataDescribes data for one subresource
 CDiligent::VertexStreamInfoDescribes input vertex stream
 CDiligent::ViewportDescribes the viewport
+
+
+ + + + + diff --git a/doc/html/index.html b/doc/html/index.html new file mode 100644 index 00000000..817a9430 --- /dev/null +++ b/doc/html/index.html @@ -0,0 +1,263 @@ + + + + + + + +Diligent Engine API Reference: DiligentCore + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
DiligentCore
+
+
+

This module implements key engine functionality. It provides API implementations with Direct3D11, Direct3D12, OpenGL and OpenGLES as well as basic platform-specific utilities.

+

Build Status

+ + + + + + + +
Platform Status
Win32/Universal Windows
Linux
+

Repository structure

+

The repository contains the following projects:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Project Description
Primitives Definitions of basic types (Int32, Int16, Uint32, etc.) and interfaces (IObject, IReferenceCounters, etc.)
Common Common functionality such as file wrapper, logging, debug utilities, etc.
Graphics/GraphicsAccessories Basic graphics accessories used by all implementations
Graphics/GraphicsEngine Platform-independent base functionality
Graphics/GraphicsEngineD3DBase Base functionality for D3D11/D3D12 implementations
Graphics/GraphicsEngineD3D11 Engine implementation with Direct3D11
Graphics/GraphicsEngineD3D12 Engine implementation with Direct3D12
Graphics/GraphicsEngineOpenGL Engine implementation with OpenGL/GLES
Graphics/GraphicsTools Graphics utilities build on top of core interfaces (definitions of commonly used states, texture uploaders, etc.)
Graphics/HLSL2GLSLConverterLib HLSL to GLSL source code converter library
Platforms/Basic Interface for platform-specific routines and implementation of some common functionality
Platforms/Android Implementation of platform-specific routines on Android
Platforms/UWP Implementation of platform-specific routines on Universal Windows platform
Platforms/Win32 Implementation of platform-specific routines on Win32 platform
Platforms/Linux Implementation of platform-specific routines on Linux platform
External/glew Cross-platform library for loading OpenGL extensions
+

API Basics

+

Initializing the Engine

+

Before you can use any functionality provided by the engine, you need to create a render device, an immediate context and a swap chain.

+

Win32

+

On Win32 platform, you can create OpenGL, Direct3D11 or Direct3D12 device as shown below:

+
void InitDevice(HWND hWnd,
IRenderDevice **ppRenderDevice,
IDeviceContext **ppImmediateContext,
ISwapChain **ppSwapChain,
DeviceType DevType)
{
SwapChainDesc SCDesc;
SCDesc.SamplesCount = 1;
switch (DevType)
{
case DeviceType::D3D11:
{
EngineD3D11Attribs DeviceAttribs;
DeviceAttribs.DebugFlags = (Uint32)EngineD3D11DebugFlags::VerifyCommittedShaderResources |
(Uint32)EngineD3D11DebugFlags::VerifyCommittedResourceRelevance;
#ifdef ENGINE_DLL
GetEngineFactoryD3D11Type GetEngineFactoryD3D11 = nullptr;
// Load the dll and import GetEngineFactoryD3D11() function
LoadGraphicsEngineD3D11(GetEngineFactoryD3D11);
#endif
auto *pFactoryD3D11 = GetEngineFactoryD3D11();
pFactoryD3D11->CreateDeviceAndContextsD3D11( DeviceAttribs, ppRenderDevice, ppImmediateContext, 0 );
pFactoryD3D11->CreateSwapChainD3D11( *ppRenderDevice, *ppImmediateContext, SCDesc, hWnd, ppSwapChain );
}
break;
case DeviceType::D3D12:
{
#ifdef ENGINE_DLL
GetEngineFactoryD3D12Type GetEngineFactoryD3D12 = nullptr;
// Load the dll and import GetEngineFactoryD3D12() function
LoadGraphicsEngineD3D12(GetEngineFactoryD3D12);
#endif
auto *pFactoryD3D12 = GetEngineFactoryD3D12();
EngineD3D12Attribs EngD3D12Attribs;
EngineD3D12Attribs.GPUDescriptorHeapDynamicSize[0] = 32768;
EngineD3D12Attribs.GPUDescriptorHeapSize[1] = 128;
EngineD3D12Attribs.GPUDescriptorHeapDynamicSize[1] = 2048-128;
EngineD3D12Attribs.DynamicDescriptorAllocationChunkSize[0] = 32;
EngineD3D12Attribs.DynamicDescriptorAllocationChunkSize[1] = 8; // D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER
pFactoryD3D12->CreateDeviceAndContextsD3D12( EngD3D12Attribs, ppRenderDevice, ppImmediateContext, 0);
pFactoryD3D12->CreateSwapChainD3D12( *ppRenderDevice, *ppImmediateContext, SCDesc, hWnd, ppSwapChain );
}
break;
case DeviceType::OpenGL:
{
#ifdef ENGINE_DLL
// Declare function pointer
GetEngineFactoryOpenGLType GetEngineFactoryOpenGL = nullptr;
// Load the dll and import GetEngineFactoryOpenGL() function
LoadGraphicsEngineOpenGL(GetEngineFactoryOpenGL);
#endif
EngineCreationAttribs EngineCreationAttribs;
GetEngineFactoryOpenGL()->CreateDeviceAndSwapChainGL(
EngineCreationAttribs, ppRenderDevice, ppImmediateContext, SCDesc, hWnd, ppSwapChain );
}
break;
default:
LOG_ERROR_AND_THROW("Unknown device type");
break;
}
}

On Windows, the engine can be statically linked to the application or built as a separate DLL. In the former case, factory functions GetEngineFactoryOpenGL(), GetEngineFactoryD3D11(), and GetEngineFactoryD3D12() can be called directly. In the latter case, you need to load the DLL into the process's address space using LoadGraphicsEngineOpenGL(), LoadGraphicsEngineD3D11() or LoadGraphicsEngineD3D12() function. Each function loads appropriate dynamic library and imports the functions required to initialize the engine. You need to include the following headers:

+
#include "RenderDeviceFactoryD3D11.h"
#include "RenderDeviceFactoryD3D12.h"
#include "RenderDeviceFactoryOpenGL.h"

You also need to add the following directories to the include search paths:

+
    +
  • diligentcore/Graphics/GraphicsEngineD3D11/interface
  • +
  • diligentcore/Graphics/GraphicsEngineD3D12/interface
  • +
  • diligentcore/Graphics/GraphicsEngineOpenGL/interface
  • +
+

Also, enable Diligent namespace:

+
using namespace Diligent;

IEngineFactoryD3D11::CreateDeviceAndContextsD3D11() and IEngineFactoryD3D12::CreateDeviceAndContextsD3D12() functions can also create a specified number of deferred contexts, which can be used for multi-threaded command recording. Deferred contexts can only be created during the initialization of the engine. The function populates an array of pointers to the contexts, where the immediate context goes at position 0, followed by all deferred contexts.

+

For more details, take a look at WinMain.cpp file.

+

Universal Windows Platform

+

On Universal Windows Platform, you can create Direct3D11 or Direct3D12 device. Only static linking is currently supported, but dynamic linking can also be implemented. Initialization is performed the same way as on Win32 Platform. The difference is that you first create the render device and device contexts by calling IEngineFactoryD3D11::CreateDeviceAndContextsD3D11() or IEngineFactoryD3D12::CreateDeviceAndContextsD3D12(). The swap chain is created later by a call to IEngineFactoryD3D11::CreateSwapChainD3D11() or IEngineFactoryD3D12::CreateSwapChainD3D12(). Please look at the DeviceResources.cpp file for more details.

+

Linux

+

On Linux platform, the only API currently supported is OpenGL. Initialization of GL context on Linux is tightly coupled with window creation. As a result, Diligent Engine does not initialize the context, but attaches to the one initialized by the app. An example of the engine initialization on Linux can be found in LinuxMain.cpp.

+

Android

+

On Android, you can only create OpenGLES device. The following code snippet shows an example:

+
EngineCreationAttribs EngineCreationAttribs;
RefCntAutoPtr<IRenderDevice> pRenderDevice;
SwapChainDesc SwapChainDesc;
auto pFactory = GetEngineFactoryOpenGL();
pFactory->CreateDeviceAndSwapChainGL( EngineCreationAttribs, &pRenderDevice, &pDeviceContext_,
SwapChainDesc, app_->window, &pSwapChain_ );
IRenderDeviceGLES *pRenderDeviceOpenGLES;
pRenderDevice->QueryInterface( IID_RenderDeviceGLES, reinterpret_cast<IObject**>(&pRenderDeviceOpenGLES) );

If engine is built as dynamic library, the library needs to be loaded by the native activity. The following code shows one possible way:

+
static
{
try{
System.loadLibrary("GraphicsEngineOpenGL");
} catch (UnsatisfiedLinkError e) {
Log.e("native-activity", "Failed to load GraphicsEngineOpenGL library.\n" + e);
}
}

Attaching to Already Initialized Graphics API

+

An alternative way to initialize the engine is to attach to existing D3D11/D3D12 device or OpenGL/GLES context. Refer to Native API interoperability for more details.

+

Creating Resources

+

Device resources are created by the render device. The two main resource types are buffers, which represent linear memory, and textures, which use memory layouts optimized for fast filtering. To create a buffer, you need to populate BufferDesc structure and call IRenderDevice::CreateBuffer(). The following code creates a uniform (constant) buffer:

+
BufferDesc BuffDesc;
BufferDesc.Name = "Uniform buffer";
BuffDesc.BindFlags = BIND_UNIFORM_BUFFER;
BuffDesc.Usage = USAGE_DYNAMIC;
BuffDesc.uiSizeInBytes = sizeof(ShaderConstants);
BuffDesc.CPUAccessFlags = CPU_ACCESS_WRITE;
m_pDevice->CreateBuffer( BuffDesc, BufferData(), &m_pConstantBuffer );

Similar, to create a texture, populate TextureDesc structure and call IRenderDevice::CreateTexture() as in the following example:

+
TextureDesc TexDesc;
TexDesc.Name = "My texture 2D";
TexDesc.Type = TEXTURE_TYPE_2D;
TexDesc.Width = 1024;
TexDesc.Height = 1024;
TexDesc.Format = TEX_FORMAT_RGBA8_UNORM;
TexDesc.Usage = USAGE_DEFAULT;
TexDesc.Name = "Sample 2D Texture";
m_pRenderDevice->CreateTexture( TexDesc, TextureData(), &m_pTestTex );

There is only one function CreateTexture() that is capable of creating all types of textures. Type, format, array size and all other parameters are specified by the members of the TextureDesc structure.

+

For every bind flag specified during the texture creation time, the texture object creates a default view. Default shader resource view addresses the entire texture, default render target and depth stencil views reference all array slices in the most detailed mip level, and unordered access view references the entire texture. To get a default view from the texture, use ITexture::GetDefaultView() function. Note that this function does not increase reference counter on the returned interface. You can create additional texture views using ITexture::CreateView(). Use IBuffer::CreateView() to create additional views of a buffer.

+

Initializing Pipeline State

+

Diligent Engine follows Direct3D12 style to configure the graphics/compute pipeline. One big Pipelines State Object (PSO) encompasses all required states (all shader stages, input layout description, depth stencil, rasterizer and blend state descriptions etc.)

+

Creating Shaders

+

To create a shader, populate ShaderCreationAttribs structure. There are two ways to create a shader. The first way is to provide a pointer to the shader source code through ShaderCreationAttribs::Source member. The second way is to provide a file name. Graphics Engine is entirely decoupled from the platform. Since the host file system is platform-dependent, the structure exposes ShaderCreationAttribs::pShaderSourceStreamFactory member that is intended to provide the engine access to the file system. If you provided the source file name, you must also provide non-null pointer to the shader source stream factory. If the shader source contains any #include directives, the source stream factory will also be used to load these files. The engine provides default implementation for every supported platform that should be sufficient in most cases. You can however define your own implementation.

+

An important member is ShaderCreationAttribs::SourceLanguage. The following are valid values for this member:

+
    +
  • SHADER_SOURCE_LANGUAGE_DEFAULT - The shader source format matches the underlying graphics API: HLSL for D3D11 or D3D12 mode, and GLSL for OpenGL and OpenGLES modes.
  • +
  • SHADER_SOURCE_LANGUAGE_HLSL - The shader source is in HLSL. For OpenGL and OpenGLES modes, the source code will be converted to GLSL. See shader converter for details.
  • +
  • SHADER_SOURCE_LANGUAGE_GLSL - The shader source is in GLSL. There is currently no GLSL to HLSL converter.
  • +
+

To allow grouping of resources based on the frequency of expected change, Diligent Engine introduces classification of shader variables:

+
    +
  • Static variables (SHADER_VARIABLE_TYPE_STATIC) are variables that are expected to be set only once. They may not be changed once a resource is bound to the variable. Such variables are intended to hold global constants such as camera attributes or global light attributes constant buffers.
  • +
  • Mutable variables (SHADER_VARIABLE_TYPE_MUTABLE) define resources that are expected to change on a per-material frequency. Examples may include diffuse textures, normal maps etc.
  • +
  • Dynamic variables (SHADER_VARIABLE_TYPE_DYNAMIC) are expected to change frequently and randomly.
  • +
+

This post gives more details about the resource binding model in Diligent Engine. To define variable types, prepare an array of ShaderVariableDesc structures and initialize ShaderCreationAttribs::Desc::VariableDesc and ShaderCreationAttribs::Desc::NumVariables. Also ShaderCreationAttribs::Desc::DefaultVariableType can be used to set the type that will be used if variable name is not provided.

+

When creating a shader, textures can be assigned static samplers. If static sampler is assigned, it will always be used instead of the one initialized in the texture shader resource view. To initialize static samplers, prepare an array of StaticSamplerDesc structures and intialize ShaderCreationAttribs::Desc::StaticSamplers and ShaderCreationAttribs::Desc::NumStaticSamplers. Notice that static samplers can be assigned to texture variable of any type, not necessarily static. It is highly recommended to use static samplers whenever possible.

+

Other members of the ShaderCreationAttribs structure define shader include search directories, shader macro definitions, shader entry point and other parameters. The following is an example of shader initialization:

+
ShaderCreationAttribs Attrs;
Attrs.Desc.Name = "MyPixelShader";
Attrs.FilePath = "MyShaderFile.fx";
Attrs.SearchDirectories = "shaders;shaders\\inc;";
Attrs.EntryPoint = "MyPixelShader";
Attrs.Desc.ShaderType = SHADER_TYPE_PIXEL;
Attrs.SourceLanguage = SHADER_SOURCE_LANGUAGE_HLSL;
BasicShaderSourceStreamFactory BasicSSSFactory(Attrs.SearchDirectories);
Attrs.pShaderSourceStreamFactory = &BasicSSSFactory;
ShaderVariableDesc ShaderVars[] =
{
{"g_StaticTexture", SHADER_VARIABLE_TYPE_STATIC},
{"g_MutableTexture", SHADER_VARIABLE_TYPE_MUTABLE},
{"g_DynamicTexture", SHADER_VARIABLE_TYPE_DYNAMIC}
};
Attrs.Desc.VariableDesc = ShaderVars;
Attrs.Desc.NumVariables = _countof(ShaderVars);
Attrs.Desc.DefaultVariableType = SHADER_VARIABLE_TYPE_STATIC;
StaticSamplerDesc StaticSampler;
StaticSampler.Desc.MinFilter = FILTER_TYPE_LINEAR;
StaticSampler.Desc.MagFilter = FILTER_TYPE_LINEAR;
StaticSampler.Desc.MipFilter = FILTER_TYPE_LINEAR;
StaticSampler.TextureName = "g_MutableTexture";
Attrs.Desc.NumStaticSamplers = 1;
Attrs.Desc.StaticSamplers = &StaticSampler;
ShaderMacroHelper Macros;
Macros.AddShaderMacro("USE_SHADOWS", 1);
Macros.AddShaderMacro("NUM_SHADOW_SAMPLES", 4);
Macros.Finalize();
Attrs.Macros = Macros;
RefCntAutoPtr<IShader> pShader;
m_pDevice->CreateShader( Attrs, &pShader );

Creating Pipeline State Object

+

To create a pipeline state object, define instance of PipelineStateDesc structure:

+
PipelineStateDesc PSODesc;

Describe the pipeline specifics such as if the pipeline is a compute pipeline, number and format of render targets as well as depth-stencil format:

+
// This is a graphics pipeline
PSODesc.IsComputePipeline = false;
PSODesc.GraphicsPipeline.NumRenderTargets = 1;
PSODesc.GraphicsPipeline.RTVFormats[0] = TEX_FORMAT_RGBA8_UNORM_SRGB;
PSODesc.GraphicsPipeline.DSVFormat = TEX_FORMAT_D32_FLOAT;

Initialize depth-stencil state description structure DepthStencilStateDesc. Note that the constructor initializes the members with default values and you can only set the ones that are different from default.

+
// Init depth-stencil state
DepthStencilStateDesc &DepthStencilDesc = PSODesc.GraphicsPipeline.DepthStencilDesc;
DepthStencilDesc.DepthEnable = true;
DepthStencilDesc.DepthWriteEnable = true;

Initialize blend state description structure BlendStateDesc:

+
// Init blend state
BlendStateDesc &BSDesc = PSODesc.GraphicsPipeline.BlendDesc;
BSDesc.IndependentBlendEnable = False;
auto &RT0 = BSDesc.RenderTargets[0];
RT0.BlendEnable = True;
RT0.RenderTargetWriteMask = COLOR_MASK_ALL;
RT0.SrcBlend = BLEND_FACTOR_SRC_ALPHA;
RT0.BlendOp = BLEND_OPERATION_ADD;
RT0.SrcBlendAlpha = BLEND_FACTOR_SRC_ALPHA;
RT0.DestBlendAlpha = BLEND_FACTOR_INV_SRC_ALPHA;
RT0.BlendOpAlpha = BLEND_OPERATION_ADD;

Initialize rasterizer state description structure RasterizerStateDesc:

+
// Init rasterizer state
RasterizerStateDesc &RasterizerDesc = PSODesc.GraphicsPipeline.RasterizerDesc;
RasterizerDesc.FillMode = FILL_MODE_SOLID;
RasterizerDesc.CullMode = CULL_MODE_NONE;
RasterizerDesc.FrontCounterClockwise = True;
RasterizerDesc.ScissorEnable = True;
//RSDesc.MultisampleEnable = false; // do not allow msaa (fonts would be degraded)
RasterizerDesc.AntialiasedLineEnable = False;

Initialize input layout description structure InputLayoutDesc:

+
// Define input layout
InputLayoutDesc &Layout = PSODesc.GraphicsPipeline.InputLayout;
LayoutElement TextLayoutElems[] =
{
LayoutElement( 0, 0, 3, VT_FLOAT32, False ),
LayoutElement( 1, 0, 4, VT_UINT8, True ),
LayoutElement( 2, 0, 2, VT_FLOAT32, False ),
};
Layout.LayoutElements = TextLayoutElems;
Layout.NumElements = _countof( TextLayoutElems );

Finally, define primitive topology type, set shaders and call IRenderDevice::CreatePipelineState() to create the PSO:

+
// Define shader and primitive topology
PSODesc.GraphicsPipeline.PrimitiveTopologyType = PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE;
PSODesc.GraphicsPipeline.pVS = m_pTextVS;
PSODesc.GraphicsPipeline.pPS = m_pTextPS;
PSODesc.Name = "My pipeline state";
m_pDev->CreatePipelineState(PSODesc, &m_pPSO);

Binding Shader Resources

+

Shader resource binding in Diligent Engine is based on grouping variables in 3 different groups (static, mutable and dynamic). Static variables are variables that are expected to be set only once. They may not be changed once a resource is bound to the variable. Such variables are intended to hold global constants such as camera attributes or global light attributes constant buffers. They are bound directly to the shader object:

+
PixelShader->GetShaderVariable( "g_tex2DShadowMap" )->Set( pShadowMapSRV );

Mutable and dynamic variables are bound via a new object called Shader Resource Binding (SRB), which is created by the pipeline state (IPipelineState::CreateShaderResourceBinding()):

+
m_pPSO->CreateShaderResourceBinding(&m_pSRB);

Dynamic and mutable resources are then bound through SRB object:

+
m_pSRB->GetVariable(SHADER_TYPE_VERTEX, "tex2DDiffuse")->Set(pDiffuseTexSRV);
m_pSRB->GetVariable(SHADER_TYPE_VERTEX, "cbRandomAttribs")->Set(pRandomAttrsCB);

The difference between mutable and dynamic resources is that mutable ones can only be set once for every instance of a shader resource binding. Dynamic resources can be set multiple times. It is important to properly set the variable type as this may affect performance. Static variables are generally most efficient, followed by mutable. Dynamic variables are most expensive from performance point of view.

+

An alternative way to bind shader resources is to create IResourceMapping interface that maps resource literal names to the actual resources:

+
ResourceMappingEntry Entries[] = {
{ "g_Texture", pTexture->GetDefaultView(TEXTURE_VIEW_SHADER_RESOURCE)},
ResourceMappingEntry()
};
ResourceMappingDesc ResMappingDesc;
ResMappingDesc.pEntries= Entries;
RefCntAutoPtr<IResourceMapping> pResMapping;
pRenderDevice->CreateResourceMapping( ResMappingDesc, &pResMapping );

The resource mapping can then be used to bind all resources in a shader (IShader::BindResources()):

+
pPixelShader->BindResources(pResMapping, BIND_SHADER_RESOURCES_ALL_RESOLVED);

in a shader resource binding (IShaderResourceBinding::BindResources()):

+
m_pSRB->BindResources(SHADER_TYPE_VERTEX|SHADER_TYPE_PIXEL, pResMapping, BIND_SHADER_RESOURCES_ALL_RESOLVED);

or in a pipeline state (IPipelineState::BindShaderResources()):

+
m_pPSO->BindResources(pResMapping, BIND_SHADER_RESOURCES_ALL_RESOLVED);

The last parameter to all BindResources() functions defines how resources should be resolved:

+
    +
  • BIND_SHADER_RESOURCES_RESET_BINDINGS - Reset all bindings. If this flag is specified, all bindings will be reset to null before new bindings are set. By default all existing bindings are preserved.
  • +
  • BIND_SHADER_RESOURCES_UPDATE_UNRESOLVED - If this flag is specified, only unresolved bindings will be updated. All resolved bindings will keep their original values. If this flag is not specified, every shader variable will be updated if the mapping contains corresponding resource.
  • +
  • BIND_SHADER_RESOURCES_ALL_RESOLVED - If this flag is specified, all shader bindings are expected be resolved after the call. If this is not the case, debug error will be displayed.
  • +
+

BindResources() may be called several times with different resource mappings to bind resources. However, it is recommended to use one large resource mapping as the size of the mapping does not affect element search time.

+

The engine performs run-time checks to verify that correct resources are being bound. For example, if you try to bind a constant buffer to a shader resource view variable, an error will be output to the debug console.

+

Setting the Pipeline State and Invoking Draw Command

+

Before any draw command can be invoked, all required vertex and index buffers as well as the pipeline state should be bound to the device context:

+
// Clear render target
const float zero[4] = {0, 0, 0, 0};
m_pContext->ClearRenderTarget(nullptr, zero);
// Set vertex and index buffers
IBuffer *buffer[] = {m_pVertexBuffer};
Uint32 offsets[] = {0};
Uint32 strides[] = {sizeof(MyVertex)};
m_pContext->SetVertexBuffers(0, 1, buffer, strides, offsets, SET_VERTEX_BUFFERS_FLAG_RESET);
m_pContext->SetIndexBuffer(m_pIndexBuffer, 0);
m_pContext->SetPipelineState(m_pPSO);

Also, all shader resources must be committed to the device context. This is accomplished by the IDeviceContext::CommitShaderResources() method:

+
m_pContext->CommitShaderResources(m_pSRB, COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES);

If the method is not called, the engine will detect that resources are not committed and output debug message. Note that CommitShaderResources() must be called after the right pipeline state has been bound to the context. Note that the last parameter tells the system to transition resources to the correct states. If this flag is not specified, the resources must be explicitly transitioned to the right states by a call to IDeviceContext::TransitionShaderResources():

+
m_pContext->TransitionShaderResources(m_pPSO, m_pSRB);

Note that the method requires pointer to the pipeline state that created the shader resource binding.

+

When all required states and resources are bound, IDeviceContext::Draw() can be used to execute draw command or IDeviceContext::DispatchCompute() can be used to execute compute command. Note that for a draw command, graphics pipeline must be bound, and for dispatch command, compute pipeline must be bound. Draw() takes DrawAttribs structure as an argument. The structure members define all attributes required to perform the command (primitive topology, number of vertices or indices, if draw call is indexed or not, if draw call is instanced or not, if draw call is indirect or not, etc.). For example:

+
DrawAttribs attrs;
attrs.IsIndexed = true;
attrs.IndexType = VT_UINT16;
attrs.NumIndices = 36;
pContext->Draw(attrs);

DispatchCompute() takes DispatchComputeAttribs structure that defines compute grid dimensions:

+
m_pContext->SetPipelineState(m_pComputePSO);
m_pContext->CommitShaderResources(m_pComputeSRB, COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES);
DispatchComputeAttribs DispatchAttrs(64, 64, 8);
m_pContext->DispatchCompute(DispatchAttrs);

You can learn more about the engine API by looking at the engine samples' source code and the API Reference.

+

Low-level API interoperability

+

Diligent Engine extensively supports interoperability with underlying low-level APIs. The engine can be initialized by attaching to existing D3D11/D3D12 device or OpenGL/GLES context and provides access to the underlying native API objects. Refer to the following pages for more information:

+

Direct3D11 Interoperability

+

Direct3D12 Interoperability

+

OpenGL/GLES Interoperability

+

References

+

Dilgeint Engine. API Basics. Diligent Engine Architecture.

+

Version History

+

Current Progress

+
    +
  • Removed legacy Visual Studio solution and project files
  • +
+

v2.1.a

+
    +
  • Refactored build system to use CMake
  • +
  • Added support for Linux platform
  • +
+

v2.1

+

New Features

+

Core

+
    +
  • Interoperability with native API ** Accessing internal objects and handles ** Createing diligent engine buffers/textures from native resources ** Attaching to existing D3D11/D3D12 device or GL context ** Resource state and command queue synchronization for D3D12
  • +
  • Integraion with Unity
  • +
  • Geometry shader support
  • +
  • Tessellation support
  • +
  • Performance optimizations
  • +
+

HLSL->GLSL converter

+
    +
  • Support for structured buffers
  • +
  • HLSL->GLSL conversion is now a two-stage process: ** Creating conversion stream ** Creating GLSL source from the stream
  • +
  • Geometry shader support
  • +
  • Tessellation control and tessellation evaluation shader support
  • +
  • Support for non-void shader functions
  • +
  • Allowing structs as input parameters for shader functions
  • +
+

v2.0 (alpha)

+

Alpha release of Diligent Engine 2.0. The engine has been updated to take advantages of Direct3D12:

+
    +
  • Pipeline State Object encompasses all coarse-grain state objects like Depth-Stencil State, Blend State, Rasterizer State, shader states etc.
  • +
  • New shader resource binding model implemented to leverage Direct3D12
  • +
  • OpenGL and Direct3D11 backends
  • +
  • Alpha release is only available on Windows platform
  • +
  • Direct3D11 backend is very thoroughly optimized and has very low overhead compared to native D3D11 implementation
  • +
  • Direct3D12 implementation is preliminary and not yet optimized
  • +
+

v1.0.0

+

Initial release

+

License

+

Licensed under the Apache License, Version 2.0

+

References

+

Diligent Graphics on the Web

+

Diligent Graphics on Twitter

+

Diligent Graphics on Facebook

+

Copyright 2015-2017 Egor Yusov

+
+ + + + + diff --git a/doc/html/interpolator_8h_source.html b/doc/html/interpolator_8h_source.html new file mode 100644 index 00000000..573deea9 --- /dev/null +++ b/doc/html/interpolator_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/ndk_helper/include/interpolator.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
interpolator.h
+
+
+
1 /*
2  * Copyright 2013 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef INTERPOLATOR_H_
18 #define INTERPOLATOR_H_
19 
20 #include <jni.h>
21 #include <errno.h>
22 #include <time.h>
23 #include "JNIHelper.h"
24 #include "perfMonitor.h"
25 #include <list>
26 
27 namespace ndk_helper {
28 
29 enum INTERPOLATOR_TYPE {
30  INTERPOLATOR_TYPE_LINEAR,
31  INTERPOLATOR_TYPE_EASEINQUAD,
32  INTERPOLATOR_TYPE_EASEOUTQUAD,
33  INTERPOLATOR_TYPE_EASEINOUTQUAD,
34  INTERPOLATOR_TYPE_EASEINCUBIC,
35  INTERPOLATOR_TYPE_EASEOUTCUBIC,
36  INTERPOLATOR_TYPE_EASEINOUTCUBIC,
37  INTERPOLATOR_TYPE_EASEINQUART,
38  INTERPOLATOR_TYPE_EASEINEXPO,
39  INTERPOLATOR_TYPE_EASEOUTEXPO,
40 };
41 
42 struct InterpolatorParams {
43  float dest_value_;
44  INTERPOLATOR_TYPE type_;
45  double duration_;
46 };
47 
48 /******************************************************************
49  * Interpolates values with several interpolation methods
50  */
51 class Interpolator {
52  private:
53  double start_time_;
54  double dest_time_;
55  INTERPOLATOR_TYPE type_;
56 
57  float start_value_;
58  float dest_value_;
59  std::list<InterpolatorParams> list_params_;
60 
61  float GetFormula(const INTERPOLATOR_TYPE type, const float t, const float b,
62  const float d, const float c);
63 
64  public:
65  Interpolator();
66  ~Interpolator();
67 
68  Interpolator& Set(const float start, const float dest,
69  const INTERPOLATOR_TYPE type, double duration);
70 
71  Interpolator& Add(const float dest, const INTERPOLATOR_TYPE type,
72  const double duration);
73 
74  bool Update(const double currentTime, float& p);
75 
76  void Clear();
77 };
78 
79 } // namespace ndkHelper
80 #endif /* INTERPOLATOR_H_ */
Definition: gestureDetector.h:32
+
+ + + + + diff --git a/doc/html/jquery.js b/doc/html/jquery.js new file mode 100644 index 00000000..2771c749 --- /dev/null +++ b/doc/html/jquery.js @@ -0,0 +1,115 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 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 + */ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({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("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom: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({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{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"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,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}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + + + +
+
+
khronos_license.h
+
+
+
1 /*
2 ** Copyright (c) 2007 The Khronos Group Inc.
3 **
4 ** Permission is hereby granted, free of charge, to any person obtaining a
5 ** copy of this software and/or associated documentation files (the
6 ** "Materials"), to deal in the Materials without restriction, including
7 ** without limitation the rights to use, copy, modify, merge, publish,
8 ** distribute, sublicense, and/or sell copies of the Materials, and to
9 ** permit persons to whom the Materials are furnished to do so, subject to
10 ** the following conditions:
11 **
12 ** The above copyright notice and this permission notice shall be included
13 ** in all copies or substantial portions of the Materials.
14 **
15 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
22 */
23 
+ + + + + diff --git a/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__common_readme.html b/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__common_readme.html new file mode 100644 index 00000000..53fce091 --- /dev/null +++ b/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__common_readme.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Common + + + + + + + + + +
+
+
+ + + + + +
+
Diligent Engine API Reference +
+
+ + + + + + + + + +
+
+ + +
+ +
+ + +
+
+
Common
+
+
+

Implementation of common utilities

+

Release Notes

+

2.1

+
    +
  • Reworked reference counting implementation. See this article for details.
  • +
+

2.0

+

Reworked the API to follow D3D12 style

+

1.0

+

Initial release

+

Copyright 2015-2017 Egor Yusov

+

Diligent Graphics

+
+ + + + + diff --git a/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__external_glew__r_e_a_d_m_e.html b/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__external_glew__r_e_a_d_m_e.html new file mode 100644 index 00000000..e37397a0 --- /dev/null +++ b/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__external_glew__r_e_a_d_m_e.html @@ -0,0 +1,183 @@ + + + + + + + +Diligent Engine API Reference: GLEW - The OpenGL Extension Wrangler Library + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
GLEW - The OpenGL Extension Wrangler Library
+
+
+
+ +
+

http://glew.sourceforge.net/

+

https://github.com/nigels-com/glew

+

+

Downloads

+

Current release is 2.1.0. (Change Log)

+

Sources available as ZIP or TGZ.

+

Windows binaries for 32-bit and 64-bit.

+

Recent snapshots

+

Snapshots may contain new features, bug-fixes or new OpenGL extensions ahead of tested, official releases.

+

Build

+

It is highly recommended to build from a tgz or zip release snapshot. The code generation workflow is a complex brew of gnu make, perl and python, that works best on Linux or Mac. For most end-users of GLEW the official releases are the best choice, with first class support.

+

Linux and Mac

+

Using GNU Make

+
Install build tools
+

Debian/Ubuntu/Mint: $ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev libosmesa-dev

+

RedHat/CentOS/Fedora: $ sudo yum install libXmu-devel libXi-devel libGL-devel

+
Build
+
$ make
+$ sudo make install
+$ make clean
+

Targets: all, glew.lib (sub-targets: glew.lib.shared, glew.lib.static), glew.bin, clean, install, uninstall

+

Variables: SYSTEM=linux-clang, GLEW_DEST=/usr/local, STRIP=

+

Note: may need to make auto folder

+

Using cmake

+

CMake 2.8.12 or higher is required.

+
Install build tools
+

Debian/Ubuntu/Mint: $ sudo apt-get install build-essential libXmu-dev libXi-dev libgl-dev cmake

+

RedHat/CentOS/Fedora: $ sudo yum install libXmu-devel libXi-devel libGL-devel cmake

+
Build
+
$ cd build
+$ cmake ./cmake 
+$ make -j4
+
+ + + + + + + + + + + + + + + + +
Target Description
glew Build the glew shared library.
glew_s Build the glew static library.
glewinfo Build the glewinfo executable (requires BUILD_UTILS to be ON).
visualinfo Build the visualinfo executable (requires BUILD_UTILS to be ON).
install Install all enabled targets into CMAKE_INSTALL_PREFIX.
clean Clean up build artifacts.
all Build all enabled targets (default target).
+ + + + + + + + + + + +
Variables Description
BUILD_UTILS Build the glewinfo and visualinfo executables.
GLEW_REGAL Build in Regal mode.
GLEW_OSMESA Build in off-screen Mesa mode.
BUILD_FRAMEWORK Build as MacOSX Framework. Setting CMAKE_INSTALL_PREFIX to /Library/Frameworks is recommended.
+

Windows

+

Visual Studio

+

Use the provided Visual Studio project file in build/vc12/

+

Projects for vc6 and vc10 are also provided

+

MSYS/Mingw

+

Available from Mingw

+

Requirements: bash, make, gcc

$ mingw32-make
+$ mingw32-make install
+$ mingw32-make install.all
+

Alternative toolchain: SYSTEM=mingw-win32

+

MSYS2/Mingw-w64

+

Available from Msys2 and/or Mingw-w64

+

Requirements: bash, make, gcc

$ pacman -S gcc make  mingw-w64-i686-gcc mingw-w64-x86_64-gcc 
+$ make
+$ make install
+$ make install.all
+

Alternative toolchain: SYSTEM=msys, SYSTEM=msys-win32, SYSTEM=msys-win64

+

glewinfo

+

glewinfo is a command-line tool useful for inspecting the capabilities of an OpenGL implementation and GLEW support for that. Please include glewinfo.txt with bug reports, as appropriate.
+


+

GLEW Extension Info

+

GLEW version 2.0.0 Reporting capabilities of pixelformat 3 Running on a Intel(R) HD Graphics 3000 from Intel OpenGL version 3.1.0 - Build 9.17.10.4229 is supported

+

GL_VERSION_1_1: OK

+

GL_VERSION_1_2: OK

+

glCopyTexSubImage3D: OK glDrawRangeElements: OK glTexImage3D: OK glTexSubImage3D: OK

+

...

+

Code Generation

+

A Unix or Mac environment is needed for building GLEW from scratch to include new extensions, or customize the code generation. The extension data is regenerated from the top level source directory with:

make extensions
+

An alternative to generating the GLEW sources from scratch is to download a pre-generated (unsupported) snapshot:

+

https://sourceforge.net/projects/glew/files/glew/snapshots/

+

Travis-built snapshots are also available:

+

https://glew.s3.amazonaws.com/index.html

+

Authors

+

GLEW is currently maintained by Nigel Stewart with bug fixes, new OpenGL extension support and new releases.

+

GLEW was developed by Milan Ikits and Marcelo Magallon. Aaron Lefohn, Joe Kniss, and Chris Wyman were the first users and also assisted with the design and debugging process.
+ The acronym GLEW originates from Aaron Lefohn. Pasi Kärkkäinen identified and fixed several problems with GLX and SDL. Nate Robins created the wglinfo utility, to which modifications were made by Michael Wimmer.
+

Copyright and Licensing

+

GLEW is originally derived from the EXTGL project by Lev Povalahev. The source code is licensed under the Modified BSD License, the Mesa 3-D License (MIT) and the Khronos License (MIT).

+

The automatic code generation scripts are released under the GNU GPL.

+
+ + + + + diff --git a/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_d3_d11_readme.html b/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_d3_d11_readme.html new file mode 100644 index 00000000..ea9c8a9c --- /dev/null +++ b/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_d3_d11_readme.html @@ -0,0 +1,146 @@ + + + + + + + +Diligent Engine API Reference: GraphicsEngineD3D11 + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
GraphicsEngineD3D11
+
+
+

Implementation of Diligent Engine API using Direct3D11

+

Initialization

+

The following code snippet shows how to initialize diligent engine in D3D11 mode.

+
#include "RenderDeviceFactoryD3D11.h"
using namespace Diligent;
// ...
EngineD3D11Attribs DeviceAttribs;
DeviceAttribs.DebugFlags =
// Get pointer to the function that returns the factory
#ifdef ENGINE_DLL
GetEngineFactoryD3D11Type GetEngineFactoryD3D11 = nullptr;
// Load the dll and import GetEngineFactoryD3D11() function
LoadGraphicsEngineD3D11(GetEngineFactoryD3D11);
#endif
auto *pFactoryD3D11 = GetEngineFactoryD3D11();
pFactoryD3D11->CreateDeviceAndContextsD3D11( DeviceAttribs, &pRenderDevice, &pImmediateContext, 0 );
pFactoryD3D11->CreateSwapChainD3D11( pRenderDevice, pImmediateContext, SwapChainDesc, hWnd, &pSwapChain );

Alternatively, the engine can be initialized by attaching to existing D3D11 device and immediate context (see below).

+

Interoperability with Direct3D11

+

Diligent Engine exposes methods to access internal D3D11 objects, is able to create diligent engine buffers and textures from existing Direct3D11 buffers and textures, and can be initialized by attaching to existing D3D11 device and immediate context.

+

Accessing Native D3D11 objects

+

Below are some of the methods that provide access to internal D3D11 objects:

+ + + + + + + + + + + + + + + +
Function Description
ID3D11Buffer *IBufferD3D11::GetD3D11Buffer() returns a pointer to the ID3D11Buffer interface of the internal Direct3D11 buffer object
ID3D11Resource* ITextureD3D11::GetD3D11Texture() returns a pointer to the ID3D11Resource interface of the internal Direct3D11 texture object
ID3D11View* IBufferViewD3D11()::GetD3D11View() returns a pointer to the ID3D11View interface of the internal d3d11 object representing the buffer view
ID3D11View* ITextureViewD3D11::GetD3D11View() returns a pointer to the ID3D11View interface of the internal d3d11 object representing the texture view
ID3D11Device* IRenderDeviceD3D11::GetD3D11Device() returns a pointer to the native D3D11 device object
ID3D11DeviceContext* IDeviceContextD3D11::GetD3D11DeviceContext() returns a pointer to the native ID3D11DeviceContext object
+

Creating Diligent Engine Objects from D3D11 Resources

+
    +
  • void IRenderDeviceD3D11::CreateBufferFromD3DResource(ID3D11Buffer *pd3d11Buffer, const BufferDesc& BuffDesc, IBuffer **ppBuffer) - creates a diligent engine buffer object from the native d3d11 buffer
  • +
  • void IRenderDeviceD3D11::CreateTextureFromD3DResource(ID3D11Texture1D *pd3d11Texture, ITexture **ppTexture) - create a diligent engine texture object from the native D3D11 1D texture
  • +
  • void IRenderDeviceD3D11::CreateTextureFromD3DResource(ID3D11Texture2D *pd3d11Texture, ITexture **ppTexture) - create a diligent engine texture object from the native D3D11 2D texture
  • +
  • void IRenderDeviceD3D11::CreateTextureFromD3DResource(ID3D11Texture3D *pd3d11Texture, ITexture **ppTexture) - create a diligent engine texture object from the native D3D11 3D texture
  • +
+

Initializing the Engine by Attaching to Existing D3D11 Device and Immediate Context

+

The code snippet below shows how diligent engine can be attached to D3D11 device returned by Unity

+
IUnityGraphicsD3D11* d3d = interfaces->Get<IUnityGraphicsD3D11>();
ID3D11Device* d3d11NativeDevice = d3d->GetDevice();
CComPtr<ID3D11DeviceContext> d3d11ImmediateContext;
d3d11NativeDevice->GetImmediateContext(&d3d11ImmediateContext);
auto *pFactoryD3d11 = GetEngineFactoryD3D11();
EngineD3D11Attribs Attribs;
pFactoryD3d11->AttachToD3D11Device(d3d11NativeDevice, d3d11ImmediateContext, Attribs, &m_Device, &m_Context, 0);

For more information about interoperability with D3D11, please visit Diligent Engine web site

+

References

+

Diligent Engine

+

Interoperability with Direct3D11

+

Architecture of D3D11-based implementation

+

Release Notes

+

2.1

+

New features

+
    +
  • Interoperability with Direct3D11
      +
    • Accessing internal D3D11 objects and handles
    • +
    • Createing diligent engine buffers/textures from D3D11 resources
    • +
    • Attaching to existing D3D11 device
    • +
    +
  • +
  • Integraion with Unity
  • +
  • Geometry shader support
  • +
  • Tessellation support
  • +
  • Support for structured buffers in HSLS shaders
  • +
+

API Changes

+
    +
  • Updated map interface: removed MAP_WRITE_DISCARD and MAP_WRITE_NO_OVERWRITE map types and added MAP_FLAG_DISCARD and MAP_FLAG_DO_NOT_SYNCHRONIZE flags instead
  • +
+

Bug fixes

+
    +
  • Fixed issue with unaligned uniform buffers
  • +
+

2.0

+

Reworked the API to follow D3D12 style

+

1.0

+

Initial release

+

Copyright 2015-2017 Egor Yusov

+

Diligent Graphics

+
+ + + + + diff --git a/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_d3_d12_readme.html b/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_d3_d12_readme.html new file mode 100644 index 00000000..7b528812 --- /dev/null +++ b/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_d3_d12_readme.html @@ -0,0 +1,174 @@ + + + + + + + +Diligent Engine API Reference: GraphicsEngineD3D12 + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
GraphicsEngineD3D12
+
+
+

Implementation of Diligent Engine API using Direct3D12

+

Initialization

+

The following code snippet shows how to initialize diligent engine in D3D12 mode.

+
#include "RenderDeviceFactoryD3D12.h"
using namespace Diligent;
// ...
#ifdef ENGINE_DLL
GetEngineFactoryD3D12Type GetEngineFactoryD3D12 = nullptr;
// Load the dll and import GetEngineFactoryD3D12() function
LoadGraphicsEngineD3D12(GetEngineFactoryD3D12);
#endif
auto *pFactoryD3D11 = GetEngineFactoryD3D12();
EngineD3D12Attribs EngD3D12Attribs;
EngD3D12Attribs.CPUDescriptorHeapAllocationSize[0] = 1024;
EngD3D12Attribs.CPUDescriptorHeapAllocationSize[1] = 32;
EngD3D12Attribs.CPUDescriptorHeapAllocationSize[2] = 16;
EngD3D12Attribs.CPUDescriptorHeapAllocationSize[3] = 16;
EngD3D12Attribs.NumCommandsToFlushCmdList = 64;
pFactoryD3D11->CreateDeviceAndContextsD3D12( EngD3D12Attribs, &pRenderDevice, &pImmediateContext, 0 );
pFactoryD3D11->CreateSwapChainD3D12( pRenderDevice, pImmediateContext, SwapChainDesc, hWnd, &pSwapChain );

Alternatively, the engine can be initialized by attaching to existing D3D12 device (see below).

+

Interoperability with Direct3D12

+

Diligent Engine exposes methods to access internal D3D12 objects, is able to create diligent engine buffers and textures from existing Direct3D12 resources, and can be initialized by attaching to existing D3D12 device and provide synchronization tools.

+

Accessing Native D3D12 Resources

+

Below are some of the methods that provide access to internal D3D12 objects:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Function Description
ID3D12Resource* IBufferD3D12::GetD3D12Buffer(size_t &DataStartByteOffset, Uint32 ContextId) returns a pointer to the ID3D12Resource interface of the internal Direct3D12 buffer object. Note that dynamic buffers are suballocated from dynamic heap, and every context has its own dynamic heap. Offset from the beginning of the dynamic heap for a context identified by ContextId is returned in DataStartByteOffset parameter
void IBufferD3D12::SetD3D12ResourceState(D3D12_RESOURCE_STATES state) sets the buffer usage state. This method should be used when an application transitions the buffer to inform diligent engine about the current usage state
D3D12_CPU_DESCRIPTOR_HANDLE IBufferViewD3D12::GetCPUDescriptorHandle() returns CPU descriptor handle of the buffer view
ID3D12Resource* ITextureD3D12::GetD3D12Texture() returns a pointer to the ID3D12Resource interface of the internal Direct3D12 texture object
void ITextureD3D12::SetD3D12ResourceState(D3D12_RESOURCE_STATES state) sets the texture usage state. This method should be used when an application transitions the texture to inform diligent engine about the current usage state
D3D12_CPU_DESCRIPTOR_HANDLE ITextureViewD3D12::GetCPUDescriptorHandle() returns CPU descriptor handle of the texture view
void IDeviceContextD3D12::TransitionTextureState(ITexture *pTexture, D3D12_RESOURCE_STATES State) transitions internal D3D12 texture object to a specified state
void IDeviceContextD3D12::TransitionBufferState(IBuffer *pBuffer, D3D12_RESOURCE_STATES State) transitions internal D3D12 buffer object to a specified state
ID3D12PipelineState* IPipelineStateD3D12::GetD3D12PipelineState() returns ID3D12PipelineState interface of the internal D3D12 pipeline state object object
ID3D12RootSignature* IPipelineStateD3D12::GetD3D12RootSignature() returns a pointer to the root signature object associated with this pipeline state
D3D12_CPU_DESCRIPTOR_HANDLE ISamplerD3D12::GetCPUDescriptorHandle() returns a CPU descriptor handle of the D3D12 sampler object
ID3D12Device* IRenderDeviceD3D12::GetD3D12Device() returns ID3D12Device interface of the internal Direct3D12 device object
+

Synchronization Tools

+ + + + + + + + + +
Function Description
Uint64 IRenderDeviceD3D12::GetNextFenceValue() returns the fence value that will be signaled by the GPU command queue when the next command list is submitted for execution
Bool IRenderDeviceD3D12::IsFenceSignaled(Uint64 FenceValue) checks if the fence value has been signaled by the GPU. True means that all associated work has been finished
void IRenderDeviceD3D12::FinishFrame() this method should be called at the end of the frame when attached to existing D3D12 device. Otherwise the method is automatically called before present
+

Creating Diligent Engine Objects from D3D12 Resources

+
    +
  • void IRenderDeviceD3D12::CreateTextureFromD3DResource(ID3D12Resource *pd3d12Texture, ITexture **ppTexture) - creates a diligent engine texture object from native D3D12 resource.
  • +
  • void IRenderDeviceD3D12::CreateBufferFromD3DResource(ID3D12Resource *pd3d12Buffer, const BufferDesc& BuffDesc, IBuffer **ppBuffer) - creates a diligent engine buffer object from native D3D12 resource. The method takes a pointer to the native d3d12 resiyrce pd3d12Buffer, buffer description BuffDesc and writes a pointer to the IBuffer interface at the memory location pointed to by ppBuffer. The system can recover buffer size, but the rest of the fields of BuffDesc structure need to be populated by the client as they cannot be recovered from d3d12 resource description.
  • +
+

Initializing the Engine by Attaching to Existing D3D12 Device

+

To attach diligent engine to existing D3D12 device, use the following factory function:

+
void IEngineFactoryD3D12::AttachToD3D12Device(void *pd3d12NativeDevice,
class ICommandQueueD3D12 *pCommandQueue,
const EngineD3D12Attribs& EngineAttribs,
IRenderDevice **ppDevice,
IDeviceContext **ppContexts,
Uint32 NumDeferredContexts);

The method takes a pointer to the native D3D12 device pd3d12NativeDevice, initialization parameters EngineAttribs, and returns diligent engine device interface in ppDevice, and diligent engine contexts in ppContexts. Pointer to the immediate goes at position 0. If NumDeferredContexts > 0, pointers to deferred contexts go afterwards. The function also takes a pointer to the command queue object pCommandQueue, which needs to implement ICommandQueueD3D12 interface.

+

For more information about interoperability with D3D12, please visit Diligent Engine web site

+

References

+

Diligent Engine

+

Interoperability with Direct3D12

+

Architecture of D3D12-based implementation

+

Release Notes

+

2.1

+

New fatures

+
    +
  • Interoperability with Direct3D12 ** Accessing internal D3D12 objects and handles ** Createing diligent engine buffers/textures from D3D12 resources ** Attaching to existing D3D12 device ** Resource state and command queue synchronization
  • +
  • Integraion with Unity
  • +
  • Geometry shader support
  • +
  • Tessellation support
  • +
  • Support for dynamic buffers with SRV/UAV bind flags
  • +
  • Support for structured buffers in HSLS shaders
  • +
  • Performance optimizations
  • +
+

API Changes

+
    +
  • Updated map interface: removed MAP_WRITE_DISCARD and MAP_WRITE_NO_OVERWRITE map types and added MAP_FLAG_DISCARD and MAP_FLAG_DO_NOT_SYNCHRONIZE flags instead
  • +
+

Bug fixes

+
    +
  • Issues with deferred contexts
      +
    • Never flush deferred D3D12 context
    • +
    • Invalidate context state from FinishCommandList() and ExecuteCommandList()
    • +
    • Not binding default RTV & DSV for deferred contexts
    • +
    +
  • +
  • Issues with idling GPU
  • +
  • Object relase bug: when releasing last reference to a device object, render device was destroyed before the object was fully released
  • +
  • Fixed mipmap generation for SRGB textures
  • +
  • Fixed mipmap generation for texture arrays
  • +
+

2.0

+

Reworked the API to follow D3D12 style

+

1.0

+

Initial release

+

Copyright 2015-2017 Egor Yusov

+

Diligent Graphics

+
+ + + + + diff --git a/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_open_g_l_readme.html b/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_open_g_l_readme.html new file mode 100644 index 00000000..29f535d3 --- /dev/null +++ b/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_open_g_l_readme.html @@ -0,0 +1,135 @@ + + + + + + + +Diligent Engine API Reference: GraphicsEngineOpenGL + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
GraphicsEngineOpenGL
+
+
+

Implementation of Diligent Engine API using OpenGL/GLES

+

Initialization

+

The following code snippet shows how to initialize diligent engine in OpenGL/GLES mode.

+
#include "RenderDeviceFactoryOpenGL.h"
using namespace Diligent;
// ...
#ifdef ENGINE_DLL
GetEngineFactoryOpenGLType GetEngineFactoryOpenGL;
if( !LoadGraphicsEngineOpenGL(GetEngineFactoryOpenGL) )
return FALSE;
#endif
GetEngineFactoryOpenGL()->CreateDeviceAndSwapChainGL(
EngineCreationAttribs(), &pRenderDevice, &pImmediateContext, SwapChainDesc, hWnd, &pSwapChain );

Alternatively, the engine can be initialized by attaching to existing OpenGL context (see below).

+

Interoperability with OpenGL/GLES

+

Diligent Engine exposes methods to access internal OpenGL/GLES objects, is able to create diligent engine buffers and textures from existing GL buffer and texture handles, and can be initialized by attaching to existing GL context.

+

Accessing Native GL objects

+

Below are some of the methods that provide access to internal D3D11 objects:

+ + + + + + + + + + + +
Function Description
GLuint IBufferGL::GetGLBufferHandle() returns GL buffer handle
bool IDeviceContextGL::UpdateCurrentGLContext() attaches to the active GL context in the thread. Returns false if there is no active context, and true otherwise. If an application uses multiple GL contexts, this method must be called before any other command to let the engine update the active context.
GLuint ITextureGL::GetGLTextureHandle() returns GL texture handle
GLenum ITextureGL::GetBindTarget() returns GL texture bind target
+

Creating Diligent Engine Objects from OpenGL Handles

+
    +
  • void IRenderDeviceGL::CreateTextureFromGLHandle(Uint32 GLHandle, const TextureDesc &TexDesc, ITexture **ppTexture) - creates a diligent engine texture from OpenGL handle. The method takes OpenGL handle GLHandle, texture description TexDesc, and writes the pointer to the created texture object at the memory address pointed to by ppTexture. The engine can automatically set texture width, height, depth, mip levels count, and format, but the remaining field of TexDesc structure must be populated by the application. Note that diligent engine texture object does not take ownership of the GL resource, and the application must not destroy it while it is in use by the engine.
  • +
  • void IRenderDeviceGL::CreateBufferFromGLHandle(Uint32 GLHandle, const BufferDesc &BuffDesc, IBuffer **ppBuffer) - creates a diligent engine buffer from OpenGL handle. The method takes OpenGL handle GLHandle, buffer description BuffDesc, and writes the pointer to the created buffer object at the memory address pointed to by ppBuffer. The engine can automatically set the buffer size, but the rest of the fields need to be set by the client. Note that diligent engine buffer object does not take ownership of the GL resource, and the application must not destroy it while it is in use by the engine.
  • +
+

Initializing the Engine by Attaching to Existing GL Context

+

The code snippet below shows how diligent engine can be attached to existing GL context

+
auto *pFactoryGL = GetEngineFactoryOpenGL();
EngineCreationAttribs Attribs;
pFactoryGL->AttachToActiveGLContext(Attribs, &m_Device, &m_Context);

For more information about interoperability with OpenGL, please visit Diligent Engine web site

+

References

+

Diligent Engine

+

Interoperability with OpenGL/GLES

+

Release Notes

+

2.1

+

New features

+
    +
  • Interoperability with OpenGL/GLES
      +
    • Accessing GL handles of internal texture/buffer objects
    • +
    • Createing diligent engine buffers/textures from OpenGL handles
    • +
    • Attaching to existing OpenGL context
    • +
    +
  • +
  • Integraion with Unity
  • +
  • Geometry shader support
  • +
  • Tessellation support
  • +
  • Support ofr multiple GL contexts: VAO, FBO & Program Pipelines are created and cached for multiple native contexts. IDeviceContextGL::UpdateCurrentGLContext() sets the active GL context in the thread
  • +
+

API Changes

+
    +
  • Updated map interface: removed MAP_WRITE_DISCARD and MAP_WRITE_NO_OVERWRITE map types and added MAP_FLAG_DISCARD and MAP_FLAG_DO_NOT_SYNCHRONIZE flags instead
  • +
+

2.0

+

Reworked the API to follow D3D12 style

+

1.0

+

Initial release

+

Copyright 2015-2017 Egor Yusov

+

Diligent Graphics

+
+ + + + + diff --git a/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__h_l_s_l2_g_l_s_l_converter_lib_readme.html b/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__h_l_s_l2_g_l_s_l_converter_lib_readme.html new file mode 100644 index 00000000..46d7af49 --- /dev/null +++ b/doc/html/md__d_1__git_hub__diligent_engine__diligent_core__graphics__h_l_s_l2_g_l_s_l_converter_lib_readme.html @@ -0,0 +1,191 @@ + + + + + + + +Diligent Engine API Reference: HLSL2GLSLConverterLib + + + + + + + + + +
+
+ + + + + + +
+
Diligent Engine API Reference +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
HLSL2GLSLConverterLib
+
+
+

Implementation of HLSL to GLSL source converter

+

DirectX and OpenGL use different shading languages, which share a lot in common, but sometimes differ substantially. For cross-platform applications, maintaining two versions of each shader is time-consuming and error-prone. Diligent Engine uses HLSL2GLSL Converter that allows shader authored in HLSL to be converted into GLSL source.

+

Details

+

Requirements

+

The converter supports HLSL5.0, all shader types (vertex, geometry, pixel, domain, hull, and compute) as well as most of the language constructs. There are however few special requirements that must be met in order for the HLSL source to be successfully converted to GLSL:

+
    +
  • Inputs to a vertex shader is recommended to have ATTRIBn semantic, where n defines the location of the corresponding GLSL input variable (layout(location = n)). For any other input semantic, the converter automatically assigns input location.
  • +
  • Inputs of a subsequent shader stage must be declared in exact same order as outputs of the previous shader stage. Return value of a function counts as its first output.

    +

    The converter parses all input and output arguments (including structure members) in the order of declaration and automatically assigns locations to every argument. To make sure that input and output locations match, the arguments must be declared in exact same order. For the same reason, if an argument is not used by the shader, it still needs to be declared to preserve original ordering.

    +
  • +
+

The code snippet below gives examples of supported shader declarations:

+
struct VSInput
{
// It is recommended (though not required) to assign
// ATTRIBn semantics to inputs from input assembler
in float3 f3PosWS : ATTRIB0;
in float2 f2UV : ATTRIB1;
uint VertexID : SV_VertexID;
};
struct VSOutput
{
float2 UV : TEX_COORDINATES;
float3 Normal : NORMAL;
float4 f4PosPS : SV_Position;
};
VSOutput VertexShader ( in VSInput VSIn,
in float3 f3UV : ATTRIB2,
uint InstID : SV_InstanceID,
out float3 f3Tangent : TANGENT )
{
VSOutput VSOut;
// Body elided
f3Tangent = ...
return VSOut;
}
float4 PixelShader ( // Pixel shader inputs must be declared in exact same order
// as outputs of the vertex shader
VSOutput PSIn,
in float3 f3Tangent : TaNgEnT // Semantics are case-insensitive
out float3 Color2 : SV_Target2 ) : SV_Target
{
// Body elided
}
    +
  • When tessellation is enabled in OpenGL, partitioning as well as output patch topology are defined by the tessellation evaluation shader (domain shader) rather than by the tessellation control shader (hull shader). As a result, the converter cannot generate GLSL code without using special hints. To indicate missing attributes, the following specially formatted comment should be added right on top of the domain shader entry function:
  • +
+
/* partitioning = {integer|fractional_even|fractional_odd}, outputtopology = {triangle_cw|triangle_ccw} */

For example, the following is a valid domain shader declaration:

+
[domain("quad")]
/* partitioning = fractional_even, outputtopology = triangle_cw */
DSOutput main( HS_CONSTANT_DATA_OUTPUT input,
float2 QuadUV : SV_DomainLocation,
OutputPatch<HSOutput, 2> QuadPatch)
{
// Body elided
}
    +
  • Geometry, Domain and Hull shaders must be defined in separate files
  • +
  • GLSL allows samplers to be declared as global variables or function arguments only. It does not allow local variables of sampler type.
  • +
+

Textures and samplers

+

The following rules are used to convert HLSL texture declaration into GLSL sampler:

+

HLSL texture dimension defines GLSL sampler dimension:

+
    +
  • Texture2D -> sampler2D
  • +
  • TextureCube -> samplerCube
  • +
+

HLSL texture component type defines GLSL sampler type. If no type is specified, float4 is assumed:

+
    +
  • Texture2D<float> -> sampler2D
  • +
  • Texture3D<uint4> -> usampler3D
  • +
  • Texture2DArray<int2> -> isampler2DArray
  • +
  • Texture2D -> sampler2D
  • +
+

To distinguish if sampler should be shadow or not, the converter tries to find <Texture Name>_sampler among samplers (global variables and function arguments). If the sampler type is comparison, the texture is converted to shadow sampler. If sampler state is either not comparison or not found, regular sampler is used. For example

+
Texture2D g_ShadowMap;
SamplerComparisonState g_ShadowMap_sampler;
Texture2D g_Tex2D;
SamplerState g_Tex2D_sampler;
Texture3D g_Tex3D;

is converted to

+
sampler2DShadow g_ShadowMap;
sampler2D g_Tex2D;
sampler3D g_Tex3D;

GLSL requires format to be specified for all images (rw textures) allowing writes. HLSL converter allows GLSL image format specification inside the special comment block:

RWTexture2D<float /* format=r32f */ > Tex2D;

Important notes/known issues

+
    +
  • GLSL compiler does not handle float3 (vec3) structure members correctly. It is strongly suggested avoid using this type in structure definitions
  • +
  • At least NVidia GLSL compiler does not apply layout(row_major) to structure members. By default, all matrices in both HLSL and GLSL are column major
  • +
  • GLSL compiler does not properly handle structs passed as function arguments!!!!
  • +
+
struct MyStruct
{
matrix Matr;
}
void Func(in MyStruct S)
{
...
mul(f4PosWS, S.Matr); // This will not work!!!
}

DO NOT pass structs to functions, use only built-in types!!!

+
    +
  • GLSL does not support most of the implicit type conversions. The following are some examples of the required modifications to HLSL code:
      +
    • float4 vec = 0; -> float4 vec = float4(0.0, 0.0, 0.0, 0.0);
    • +
    • float x = 0; -> float x = 0.0;
    • +
    • uint x = 0; -> uint x = 0u;
    • +
    +
  • +
  • GLES is immensely strict about type conversions. For instance, this code will produce compiler error: float4(0, 0, 0, 0). It must be written as float4(0.0, 0.0, 0.0, 0.0)
  • +
  • GLSL does not support relational and boolean operations on vector types:
  • +
+
float2 p = float2(1.0, 2.0), q = float2(3.0, 4.0);
bool2 b = p < q; // Error
all(p < q); // Error
    +
  • To facilitate relational and Boolean operations on vector types, the following functions are predefined:
      +
    • Less
    • +
    • LessEqual
    • +
    • Greater
    • +
    • GreaterEqual
    • +
    • Equal
    • +
    • NotEqual
    • +
    • Not
    • +
    • And
    • +
    • Or
    • +
    • BoolToFloat
    • +
    +
  • +
  • Examples:
      +
    • bool2 b = x < y; -> b = Less(x, y);
    • +
    • all(p>=q) -> all( GreaterEqual(p,q) )
    • +
    +
  • +
  • When accessing elements of an HLSL matrix, the first index is always a row: mat[row][column] In GLSL, the first index is always a column: mat[column][row] MATRIX_ELEMENT(mat, row, col) macros is provided to facilitate matrix element retrieval
  • +
  • The following functions do not have counterparts in GLSL and should be avoided:
      +
    • Texture2DArray.SampleCmpLevelZero()
    • +
    • TextureCube.SampleCmpLevelZero()
    • +
    • TextureCubeArray.SampleCmpLevelZero()
    • +
    +
  • +
+

Limitations

+

Converter does not perform macros expansion, so usage of preprocessor directives is limited to text block that do not need to be converted. The following are some examples that are not supported.

+

Using macros in declarations of shader entry points:

+
VSOut TestVS (
#ifdef SOME_MACRO
in VSInput0 VSInput
#else
in VSInput1 VSInput
#endif
)

The following is not allowed as well:

+
#ifdef SOME_MACRO
VSOut TestVS (in VSInput0 VSInput)
#else
VSOut TestVS (in VSInput1 VSInput)
#endif

In cases like that it is necessary to create two separate shader entry points and give them distinctive names. Likewise, macros cannot be used in definitions of structures that are used to pass data between shader stages:

+
struct VSInput
{
in float3 f3PosWS : ATTRIB0;
#ifdef SOME_MACRO
in float2 f2UV : ATTRIB1;
#else
in float4 f4UV : ATTRIB1;
#endif
uint VertexID : SV_VertexID;
};

Similarly to shader entry points, in the scenario above, the two structures need to be defined with distinctive names. Shader macros are allowed in structures that are not used to pass data between shader stages.

+

Defining language keywords with macros is not allowed:

#define TEXTURE2D Texture2D
TEXTURE2D MacroTex2D;

Macros can be used within function bodies:

+
VSOut VSTes(...)
{
#ifdef SOME_MACRO
// OK
#else
// OK
#endif
}

Features

+

Please visit this page for the full list of supported language features.

+

References

+

HLSL to GLSL Source Converter

+

Release Notes

+

2.1

+

New features

+
    +
  • Support for structured buffers
  • +
  • HLSL->GLSL conversion is now a two-stage process:
      +
    • Creating conversion stream
    • +
    • Creating GLSL source from the stream
    • +
    +
  • +
  • Geometry shader support
  • +
  • Tessellation control and tessellation evaluation shader support
  • +
  • Support for non-void shader functions
  • +
  • Allowing structs as input parameters for shader functions
  • +
+

2.0

+

Reworked the API to follow D3D12 style

+

1.0

+

Initial release

+

Copyright 2015-2017 Egor Yusov

+

Diligent Graphics

+
+ + + + + diff --git a/doc/html/menu.js b/doc/html/menu.js new file mode 100644 index 00000000..89aaf575 --- /dev/null +++ b/doc/html/menu.js @@ -0,0 +1,50 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/doc/html/menudata.js b/doc/html/menudata.js new file mode 100644 index 00000000..f05ee96d --- /dev/null +++ b/doc/html/menudata.js @@ -0,0 +1,145 @@ +/* +@ @licstart The following is the entire license notice for the +JavaScript code in this file. + +Copyright (C) 1997-2017 by Dimitri van Heesch + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +@licend The above is the entire license notice +for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}, +{text:"Namespaces",url:"namespaces.html",children:[ +{text:"Namespace List",url:"namespaces.html"}, +{text:"Namespace Members",url:"namespacemembers.html",children:[ +{text:"All",url:"namespacemembers.html",children:[ +{text:"b",url:"namespacemembers.html#index_b"}, +{text:"c",url:"namespacemembers_c.html#index_c"}, +{text:"d",url:"namespacemembers_d.html#index_d"}, +{text:"e",url:"namespacemembers_e.html#index_e"}, +{text:"f",url:"namespacemembers_f.html#index_f"}, +{text:"g",url:"namespacemembers_g.html#index_g"}, +{text:"l",url:"namespacemembers_l.html#index_l"}, +{text:"m",url:"namespacemembers_m.html#index_m"}, +{text:"p",url:"namespacemembers_p.html#index_p"}, +{text:"r",url:"namespacemembers_r.html#index_r"}, +{text:"s",url:"namespacemembers_s.html#index_s"}, +{text:"t",url:"namespacemembers_t.html#index_t"}, +{text:"u",url:"namespacemembers_u.html#index_u"}, +{text:"v",url:"namespacemembers_v.html#index_v"}]}, +{text:"Functions",url:"namespacemembers_func.html"}, +{text:"Variables",url:"namespacemembers_vars.html"}, +{text:"Enumerations",url:"namespacemembers_enum.html",children:[ +{text:"b",url:"namespacemembers_enum.html#index_b"}, +{text:"c",url:"namespacemembers_enum.html#index_c"}, +{text:"d",url:"namespacemembers_enum.html#index_d"}, +{text:"e",url:"namespacemembers_enum.html#index_e"}, +{text:"f",url:"namespacemembers_enum.html#index_f"}, +{text:"l",url:"namespacemembers_enum.html#index_l"}, +{text:"m",url:"namespacemembers_enum.html#index_m"}, +{text:"p",url:"namespacemembers_enum.html#index_p"}, +{text:"r",url:"namespacemembers_enum.html#index_r"}, +{text:"s",url:"namespacemembers_enum.html#index_s"}, +{text:"t",url:"namespacemembers_enum.html#index_t"}, +{text:"u",url:"namespacemembers_enum.html#index_u"}, +{text:"v",url:"namespacemembers_enum.html#index_v"}]}, +{text:"Enumerator",url:"namespacemembers_eval.html",children:[ +{text:"b",url:"namespacemembers_eval.html#index_b"}, +{text:"c",url:"namespacemembers_eval_c.html#index_c"}, +{text:"f",url:"namespacemembers_eval_f.html#index_f"}, +{text:"l",url:"namespacemembers_eval_l.html#index_l"}, +{text:"m",url:"namespacemembers_eval_m.html#index_m"}, +{text:"p",url:"namespacemembers_eval_p.html#index_p"}, +{text:"r",url:"namespacemembers_eval_r.html#index_r"}, +{text:"s",url:"namespacemembers_eval_s.html#index_s"}, +{text:"t",url:"namespacemembers_eval_t.html#index_t"}, +{text:"u",url:"namespacemembers_eval_u.html#index_u"}, +{text:"v",url:"namespacemembers_eval_v.html#index_v"}]}]}]}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"b",url:"functions_b.html#index_b"}, +{text:"c",url:"functions_c.html#index_c"}, +{text:"d",url:"functions_d.html#index_d"}, +{text:"e",url:"functions_e.html#index_e"}, +{text:"f",url:"functions_f.html#index_f"}, +{text:"g",url:"functions_g.html#index_g"}, +{text:"h",url:"functions_h.html#index_h"}, +{text:"i",url:"functions_i.html#index_i"}, +{text:"l",url:"functions_l.html#index_l"}, +{text:"m",url:"functions_m.html#index_m"}, +{text:"n",url:"functions_n.html#index_n"}, +{text:"o",url:"functions_o.html#index_o"}, +{text:"p",url:"functions_p.html#index_p"}, +{text:"q",url:"functions_q.html#index_q"}, +{text:"r",url:"functions_r.html#index_r"}, +{text:"s",url:"functions_s.html#index_s"}, +{text:"t",url:"functions_t.html#index_t"}, +{text:"u",url:"functions_u.html#index_u"}, +{text:"v",url:"functions_v.html#index_v"}, +{text:"w",url:"functions_w.html#index_w"}, +{text:"~",url:"functions_0x7e.html#index_0x7e"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"a",url:"functions_func.html#index_a"}, +{text:"b",url:"functions_func_b.html#index_b"}, +{text:"c",url:"functions_func_c.html#index_c"}, +{text:"d",url:"functions_func_d.html#index_d"}, +{text:"e",url:"functions_func_e.html#index_e"}, +{text:"f",url:"functions_func_f.html#index_f"}, +{text:"g",url:"functions_func_g.html#index_g"}, +{text:"i",url:"functions_func_i.html#index_i"}, +{text:"l",url:"functions_func_l.html#index_l"}, +{text:"m",url:"functions_func_m.html#index_m"}, +{text:"o",url:"functions_func_o.html#index_o"}, +{text:"p",url:"functions_func_p.html#index_p"}, +{text:"q",url:"functions_func_q.html#index_q"}, +{text:"r",url:"functions_func_r.html#index_r"}, +{text:"s",url:"functions_func_s.html#index_s"}, +{text:"t",url:"functions_func_t.html#index_t"}, +{text:"u",url:"functions_func_u.html#index_u"}, +{text:"v",url:"functions_func_v.html#index_v"}, +{text:"w",url:"functions_func_w.html#index_w"}, +{text:"~",url:"functions_func_0x7e.html#index_0x7e"}]}, +{text:"Variables",url:"functions_vars.html",children:[ +{text:"a",url:"functions_vars.html#index_a"}, +{text:"b",url:"functions_vars_b.html#index_b"}, +{text:"c",url:"functions_vars_c.html#index_c"}, +{text:"d",url:"functions_vars_d.html#index_d"}, +{text:"e",url:"functions_vars_e.html#index_e"}, +{text:"f",url:"functions_vars_f.html#index_f"}, +{text:"g",url:"functions_vars_g.html#index_g"}, +{text:"h",url:"functions_vars_h.html#index_h"}, +{text:"i",url:"functions_vars_i.html#index_i"}, +{text:"l",url:"functions_vars_l.html#index_l"}, +{text:"m",url:"functions_vars_m.html#index_m"}, +{text:"n",url:"functions_vars_n.html#index_n"}, +{text:"o",url:"functions_vars_o.html#index_o"}, +{text:"p",url:"functions_vars_p.html#index_p"}, +{text:"q",url:"functions_vars_q.html#index_q"}, +{text:"r",url:"functions_vars_r.html#index_r"}, +{text:"s",url:"functions_vars_s.html#index_s"}, +{text:"t",url:"functions_vars_t.html#index_t"}, +{text:"u",url:"functions_vars_u.html#index_u"}, +{text:"v",url:"functions_vars_v.html#index_v"}, +{text:"w",url:"functions_vars_w.html#index_w"}]}, +{text:"Enumerations",url:"functions_enum.html"}, +{text:"Enumerator",url:"functions_eval.html"}]}]}]} diff --git a/doc/html/mesa__license_8h_source.html b/doc/html/mesa__license_8h_source.html new file mode 100644 index 00000000..0a0e67b9 --- /dev/null +++ b/doc/html/mesa__license_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/auto/src/mesa_license.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    mesa_license.h
    +
    +
    +
    1 /*
    2  * Mesa 3-D graphics library
    3  * Version: 7.0
    4  *
    5  * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
    6  *
    7  * Permission is hereby granted, free of charge, to any person obtaining a
    8  * copy of this software and associated documentation files (the "Software"),
    9  * to deal in the Software without restriction, including without limitation
    10  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
    11  * and/or sell copies of the Software, and to permit persons to whom the
    12  * Software is furnished to do so, subject to the following conditions:
    13  *
    14  * The above copyright notice and this permission notice shall be included
    15  * in all copies or substantial portions of the Software.
    16  *
    17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    18  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    19  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
    20  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
    21  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    22  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    23  */
    24 
    + + + + + diff --git a/doc/html/namespace_diligent.html b/doc/html/namespace_diligent.html new file mode 100644 index 00000000..c1acbac5 --- /dev/null +++ b/doc/html/namespace_diligent.html @@ -0,0 +1,2960 @@ + + + + + + + +Diligent Engine API Reference: Diligent Namespace Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    Diligent Namespace Reference
    +
    +
    + +

    Namespace for the OpenGL implementation of the graphics engine. +More...

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

    +Classes

    class  BasicFileStream
     Basic file stream implementation. More...
     
    struct  BlendStateDesc
     Blend state description. More...
     
    struct  Box
     Box. More...
     
    class  BufferBase
     Template class implementing base functionality for a buffer object. More...
     
    class  BufferD3D11Impl
     Implementation of the Diligent::IBufferD3D11 interface. More...
     
    class  BufferD3D12Impl
     Implementation of the Diligent::IBufferD3D12 interface. More...
     
    struct  BufferData
     Describes the buffer initial data. More...
     
    struct  BufferDesc
     Buffer description. More...
     
    class  BufferGLImpl
     Implementation of the Diligent::IBufferGL interface. More...
     
    class  BufferViewBase
     Template class implementing base functionality for a buffer view object. More...
     
    class  BufferViewD3D11Impl
     Implementation of the Diligent::IBufferViewD3D11 interface. More...
     
    class  BufferViewD3D12Impl
     Implementation of the Diligent::IBufferViewD3D12 interface. More...
     
    struct  BufferViewDesc
     Buffer view description. More...
     
    class  BufferViewGLImpl
     Implementation of the Diligent::IBufferViewGL interface. More...
     
    class  CommandListBase
     Template class implementing base functionality for a command list object. More...
     
    class  CommandListD3D11Impl
     Implementation of the Diligent::ICommandListD3D11 interface. More...
     
    class  CommandListD3D12Impl
     Implementation of the Diligent::ICommandList interface. More...
     
    class  CommandQueueD3D12Impl
     Implementation of the Diligent::ICommandQueueD3D12 interface. More...
     
    struct  ComputePipelineDesc
     Compute pipeline state description. More...
     
    class  D3D12ResourceBase
     Base implementation of a D3D12 resource. More...
     
    class  DataBlobImpl
     Base interface for a file stream. More...
     
    struct  DepthStencilClearValue
     Defines optimized depth-stencil clear value. More...
     
    struct  DepthStencilStateDesc
     Depth stencil state description. More...
     
    struct  DeviceCaps
     Device capabilities. More...
     
    class  DeviceContextBase
     Base implementation of the device context. More...
     
    class  DeviceContextD3D11Impl
     Implementation of the Diligent::IDeviceContextD3D11 interface. More...
     
    class  DeviceContextD3D12Impl
     Implementation of the Diligent::IDeviceContext interface. More...
     
    class  DeviceContextGLImpl
     Implementation of the Diligent::IDeviceContextGL interface. More...
     
    struct  DeviceObjectAttribs
     Describes common device object attributes. More...
     
    class  DeviceObjectBase
     Template class implementing base functionality for a device object. More...
     
    struct  DispatchComputeAttribs
     Describes dispatch command arguments. More...
     
    struct  DrawAttribs
     Defines the draw command attributes. More...
     
    struct  DummyShaderVariable
     Implementation of a dummy shader variable that silently ignores all operations. More...
     
    struct  EngineCreationAttribs
     Engine creation attibutes. More...
     
    struct  EngineD3D11Attribs
     Attributes of the Direct3D11-based engine implementation. More...
     
    struct  EngineD3D12Attribs
     Attributes specific to D3D12 engine. More...
     
    class  FixedBlockMemoryAllocator
     Memory allocator that allocates memory in a fixed-size chunks. More...
     
    struct  GraphicsPipelineDesc
     Graphics pipeline state description. More...
     
    struct  HashMapStringKey
     This helper structure is intended to facilitate using strings as a hash table key. It provides constructors that can make a copy of the source string or just keep pointer to it, which enables searching in the hash using raw const Char* pointers. More...
     
    class  IBuffer
     Buffer interface. More...
     
    class  IBufferD3D11
     Interface to the buffer object implemented in D3D11. More...
     
    class  IBufferD3D12
     Interface to the buffer object implemented in D3D12. More...
     
    class  IBufferGL
     Interface to the buffer object implemented in OpenGL. More...
     
    class  IBufferView
     Buffer view interface. More...
     
    class  IBufferViewD3D11
     Interface to the buffer view object implemented in D3D11. More...
     
    class  IBufferViewD3D12
     Interface to the buffer view object implemented in D3D12. More...
     
    class  IBufferViewGL
     Interface to the buffer view object implemented in OpenGL. More...
     
    class  ICommandList
     Command list interface. More...
     
    class  ICommandQueueD3D12
     Command queue interface. More...
     
    class  IDeviceContext
     Device context interface. More...
     
    class  IDeviceContextD3D11
     Interface to the device context object implemented in D3D11. More...
     
    class  IDeviceContextD3D12
     Interface to the device context object implemented in D3D12. More...
     
    class  IDeviceContextGL
     Interface to the device context object implemented in OpenGL. More...
     
    class  IDeviceObject
     Base interface for all objects created by the render device Diligent::IRenderDevice. More...
     
    struct  InputLayoutDesc
     Layout description. More...
     
    class  IPipelineState
     
    class  IPipelineStateD3D11
     Interface to the blend state object implemented in D3D11. More...
     
    class  IPipelineStateD3D12
     Interface to the blend state object implemented in D3D12. More...
     
    class  IPipelineStateGL
     Interface to the PipelineState object implemented in OpenGL. More...
     
    class  IRenderDevice
     Render device interface. More...
     
    class  IRenderDeviceD3D11
     Interface to the render device object implemented in D3D11. More...
     
    class  IRenderDeviceD3D12
     Interface to the render device object implemented in D3D12. More...
     
    class  IRenderDeviceGL
     Interface to the render device object implemented in OpenGL. More...
     
    class  IRenderDeviceGLES
     Interface to the render device object implemented in OpenGLES. More...
     
    class  IResourceMapping
     Resouce mapping. More...
     
    class  ISampler
     Texture sampler interface. More...
     
    class  ISamplerD3D11
     Interface to the sampler object implemented in D3D11. More...
     
    class  ISamplerD3D12
     Interface to the sampler object implemented in D3D12. More...
     
    class  ISamplerGL
     Interface to the sampler object object implemented in OpenGL. More...
     
    class  IShader
     Shader interface. More...
     
    class  IShaderD3D11
     Interface to the shader object implemented in D3D11. More...
     
    class  IShaderD3D12
     Interface to the shader object implemented in D3D12. More...
     
    class  IShaderGL
     Interface to the shader object implemented in OpenGL. More...
     
    class  IShaderResourceBinding
     Shader resource binding interface. More...
     
    class  IShaderResourceBindingD3D11
     Shader resource binding interface. More...
     
    class  IShaderResourceBindingD3D12
     Shader resource binding interface. More...
     
    class  IShaderResourceBindingGL
     Shader resource binding interface. More...
     
    class  IShaderSourceInputStreamFactory
     Shader source stream factory interface. More...
     
    class  IShaderVariable
     Shader resource variable. More...
     
    class  ISwapChain
     Swap chain interface. More...
     
    class  ISwapChainD3D11
     Interface to the swap chain object implemented in D3D11. More...
     
    class  ISwapChainD3D12
     Interface to the swap chain object implemented in D3D12. More...
     
    class  ISwapChainGL
     Interface to the swap chain object implemented in OpenGL. More...
     
    class  ITexture
     Texture inteface. More...
     
    class  ITextureD3D11
     Interface to the texture object implemented in D3D11. More...
     
    class  ITextureD3D12
     Interface to the texture object implemented in D3D11. More...
     
    class  ITextureGL
     Interface to the texture object implemented in OpenGL. More...
     
    class  ITextureView
     Texture view interface. More...
     
    class  ITextureViewD3D11
     Interface to the texture view object implemented in D3D11. More...
     
    class  ITextureViewD3D12
     Interface to the texture view object implemented in D3D11. More...
     
    class  ITextureViewGL
     Interface to the texture view object implemented in OpenGL. More...
     
    struct  LayoutElement
     Description of a single element of the input layout. More...
     
    class  MapHelper
     Facilitates resource mapping. More...
     
    class  ObjectBase
     Template class implementing base functionality for an object. More...
     
    struct  OptimizedClearValue
     Defines optimized clear value. More...
     
    class  PipelineStateBase
     Template class implementing base functionality for a pipeline state object. More...
     
    class  PipelineStateD3D11Impl
     Implementation of the Diligent::IPipelineStateD3D11 interface. More...
     
    class  PipelineStateD3D12Impl
     Implementation of the Diligent::IRenderDeviceD3D12 interface. More...
     
    struct  PipelineStateDesc
     Pipeline state description. More...
     
    class  PipelineStateGLImpl
     Implementation of the Diligent::IPipelineStateGL interface. More...
     
    struct  RasterizerStateDesc
     Rasterizer state description. More...
     
    struct  Rect
     Describes the rectangle. More...
     
    class  RefCntAutoPtr
     Template class that implements reference counting. More...
     
    class  RefCntWeakPtr
     Implementation of weak pointers. More...
     
    class  RefCountedObject
     Base class for all reference counting objects. More...
     
    class  RenderDeviceBase
     Base implementation of a render device. More...
     
    class  RenderDeviceD3D11Impl
     Implementation of the Diligent::IRenderDeviceD3D11 interface. More...
     
    class  RenderDeviceD3D12Impl
     Implementation of the Diligent::IRenderDeviceD3D12 interface. More...
     
    class  RenderDeviceGLImpl
     Implementation of the render device interface in OpenGL. More...
     
    struct  RenderTargetBlendDesc
     Describes a blend state for a single render target. More...
     
    struct  ResourceMappingDesc
     Resource mapping description. More...
     
    struct  ResourceMappingEntry
     Describes the resourse mapping object entry. More...
     
    class  ResourceMappingImpl
     Implementation of the resource mapping. More...
     
    class  RootSignature
     Implementation of the Diligent::RootSignature class. More...
     
    struct  SampleDesc
     Sample description. More...
     
    class  SamplerBase
     Template class implementing base functionality for a sampler object. More...
     
    struct  SamplerCaps
     Texture sampler capabilities. More...
     
    class  SamplerD3D11Impl
     Implementation of the Diligent::ISamplerD3D11 interface. More...
     
    class  SamplerD3D12Impl
     Implementation of the Diligent::ISamplerD3D12 interface. More...
     
    struct  SamplerDesc
     Sampler description. More...
     
    class  SamplerGLImpl
     Implementation of the Diligent::ISamplerGL interface. More...
     
    class  ShaderBase
     Template class implementing base functionality for a shader object. More...
     
    struct  ShaderCreationAttribs
     Shader creation attributes. More...
     
    class  ShaderD3D11Impl
     Implementation of the Diligent::IShaderD3D11 interface. More...
     
    class  ShaderD3D12Impl
     Implementation of the Diligent::IShaderD3D12 interface. More...
     
    struct  ShaderDesc
     Shader description. More...
     
    class  ShaderGLImpl
     Implementation of the Diligent::IShaderGL interface. More...
     
    class  ShaderResourceBindingBase
     Template class implementing base functionality for a shader resource binding. More...
     
    class  ShaderResourceBindingD3D11Impl
     Implementation of the Diligent::IShaderResourceBindingD3D11 interface. More...
     
    class  ShaderResourceBindingD3D12Impl
     Implementation of the Diligent::IShaderResourceBindingD3D12 interface. More...
     
    class  ShaderResourceBindingGLImpl
     Implementation of the Diligent::IShaderResourceBindingGL interface. More...
     
    class  ShaderResourceCacheD3D11
     The class implements a cache that holds resources bound to a specific shader stage. More...
     
    class  ShaderResourceLayoutD3D11
     Diligent::ShaderResourceLayoutD3D11 class http://diligentgraphics.com/diligent-engine/architecture/d3d11/shader-resource-layout/. More...
     
    class  ShaderResourceLayoutD3D12
     Diligent::ShaderResourceLayoutD3D12 class. More...
     
    class  ShaderResourcesD3D11
     Diligent::ShaderResources class. More...
     
    class  ShaderResourcesD3D12
     Diligent::ShaderResources class. More...
     
    struct  ShaderVariableBase
     Base implementation of a shader variable. More...
     
    struct  ShaderVariableDesc
     Describes shader variable. More...
     
    class  StateObjectsRegistry
     Template class implementing state object registry. More...
     
    struct  StaticSamplerDesc
     Static sampler description. More...
     
    struct  StencilOpDesc
     Describes stencil operations that are performed based on the results of depth test. More...
     
    class  StringDataBlobImpl
     Base interface for a file stream. More...
     
    class  SwapChainBase
     Base implementation of the swap chain. More...
     
    class  SwapChainD3D11Impl
     Implementation of the Diligent::ISwapChainD3D11 interface. More...
     
    class  SwapChainD3D12Impl
     Implementation of the Diligent::ISwapChainD3D12 interface. More...
     
    struct  SwapChainDesc
     Swap chain description. More...
     
    class  SwapChainGLImpl
     Implementation of the Diligent::ISwapChainGL interface. More...
     
    class  Texture1D_D3D11
     Implementation of a 1D texture. More...
     
    class  Texture2D_D3D11
     Implementation of a 2D texture. More...
     
    class  Texture3D_D3D11
     Implementation of a 3D texture. More...
     
    class  TextureBase
     Base implementation of the ITexture interface. More...
     
    class  TextureBaseD3D11
     Base implementation of the Diligent::ITextureD3D11 interface. More...
     
    class  TextureBaseGL
     Base implementation of the Diligent::ITextureGL interface. More...
     
    struct  TextureCaps
     Texture capabilities. More...
     
    class  TextureD3D12Impl
     Base implementation of the Diligent::ITextureD3D12 interface. More...
     
    struct  TextureData
     Describes the initial data to store in the texture. More...
     
    struct  TextureDesc
     Texture description. More...
     
    struct  TextureFormatAttribs
     Describes invariant texture format attributes. These attributes are intrinsic to the texture format itself and do not depend on the format support. More...
     
    struct  TextureFormatInfo
     Basic texture format description. More...
     
    struct  TextureFormatInfoExt
     Extended texture format description. More...
     
    struct  TextureSubResData
     Describes data for one subresource. More...
     
    class  TextureViewBase
     Template class implementing base functionality for a texture view interface. More...
     
    class  TextureViewD3D11Impl
     Implementation of the Diligent::ITextureViewD3D11 interface. More...
     
    class  TextureViewD3D12Impl
     Implementation of the Diligent::ITextureViewD3D12 interface. More...
     
    struct  TextureViewDesc
     Texture view description. More...
     
    class  TextureViewGLImpl
     Implementation of the Diligent::ITextureViewGL interface. More...
     
    struct  VertexStreamInfo
     Describes input vertex stream. More...
     
    struct  Viewport
     Describes the viewport. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Enumerations

    enum  EngineD3D11DebugFlags : Uint32 { EngineD3D11DebugFlags::VerifyCommittedShaderResources = 0x01, +EngineD3D11DebugFlags::VerifyCommittedResourceRelevance = 0x02 + }
     Debug flags that can be specified when creating Direct3D11-based engine implementation. More...
     
    enum  BLEND_FACTOR : Int8 {
    +  BLEND_FACTOR_UNDEFINED = 0, +BLEND_FACTOR_ZERO, +BLEND_FACTOR_ONE, +BLEND_FACTOR_SRC_COLOR, +
    +  BLEND_FACTOR_INV_SRC_COLOR, +BLEND_FACTOR_SRC_ALPHA, +BLEND_FACTOR_INV_SRC_ALPHA, +BLEND_FACTOR_DEST_ALPHA, +
    +  BLEND_FACTOR_INV_DEST_ALPHA, +BLEND_FACTOR_DEST_COLOR, +BLEND_FACTOR_INV_DEST_COLOR, +BLEND_FACTOR_SRC_ALPHA_SAT, +
    +  BLEND_FACTOR_BLEND_FACTOR, +BLEND_FACTOR_INV_BLEND_FACTOR, +BLEND_FACTOR_SRC1_COLOR, +BLEND_FACTOR_INV_SRC1_COLOR, +
    +  BLEND_FACTOR_SRC1_ALPHA, +BLEND_FACTOR_INV_SRC1_ALPHA, +BLEND_FACTOR_NUM_FACTORS +
    + }
     Blend factors. More...
     
    enum  BLEND_OPERATION : Int8 {
    +  BLEND_OPERATION_UNDEFINED = 0, +BLEND_OPERATION_ADD, +BLEND_OPERATION_SUBTRACT, +BLEND_OPERATION_REV_SUBTRACT, +
    +  BLEND_OPERATION_MIN, +BLEND_OPERATION_MAX, +BLEND_OPERATION_NUM_OPERATIONS +
    + }
     Blending operation. More...
     
    enum  COLOR_MASK : Int32 {
    +  COLOR_MASK_RED = 1, +COLOR_MASK_GREEN = 2, +COLOR_MASK_BLUE = 4, +COLOR_MASK_ALPHA = 8, +
    +  COLOR_MASK_ALL = ( ( ( COLOR_MASK_RED | COLOR_MASK_GREEN ) | COLOR_MASK_BLUE ) | COLOR_MASK_ALPHA ) +
    + }
     Color component write flags. More...
     
    enum  LOGIC_OPERATION : Int8 {
    +  LOGIC_OP_CLEAR = 0, +LOGIC_OP_SET, +LOGIC_OP_COPY, +LOGIC_OP_COPY_INVERTED, +
    +  LOGIC_OP_NOOP, +LOGIC_OP_INVERT, +LOGIC_OP_AND, +LOGIC_OP_NAND, +
    +  LOGIC_OP_OR, +LOGIC_OP_NOR, +LOGIC_OP_XOR, +LOGIC_OP_EQUIV, +
    +  LOGIC_OP_AND_REVERSE, +LOGIC_OP_AND_INVERTED, +LOGIC_OP_OR_REVERSE, +LOGIC_OP_OR_INVERTED, +
    +  LOGIC_OP_NUM_OPERATIONS +
    + }
     Logic operation. More...
     
    enum  BUFFER_MODE : Int32 { BUFFER_MODE_UNDEFINED = 0, +BUFFER_MODE_FORMATTED, +BUFFER_MODE_STRUCTURED, +BUFFER_MODE_NUM_MODES + }
     Describes the buffer access mode. More...
     
    enum  STENCIL_OP : Int32 {
    +  STENCIL_OP_UNDEFINED = 0, +STENCIL_OP_KEEP = 1, +STENCIL_OP_ZERO = 2, +STENCIL_OP_REPLACE = 3, +
    +  STENCIL_OP_INCR_SAT = 4, +STENCIL_OP_DECR_SAT = 5, +STENCIL_OP_INVERT = 6, +STENCIL_OP_INCR_WRAP = 7, +
    +  STENCIL_OP_DECR_WRAP = 8, +STENCIL_OP_NUM_OPS +
    + }
     Stencil operation. More...
     
    enum  DeviceType : Int32 {
    +  DeviceType::Undefined = 0, +DeviceType::D3D11, +DeviceType::D3D12, +DeviceType::OpenGL, +
    +  DeviceType::OpenGLES +
    + }
     Device type. More...
     
    enum  PRIMITIVE_TOPOLOGY : Int32 {
    +  PRIMITIVE_TOPOLOGY_UNDEFINED = 0, +PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, +PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, +PRIMITIVE_TOPOLOGY_POINT_LIST, +
    +  PRIMITIVE_TOPOLOGY_LINE_LIST, +PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST, +
    +  PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST, +
    +  PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST, +
    +  PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST, +
    +  PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST, +
    +  PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST, +
    +  PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST, +
    +  PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST, +
    +  PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST, +PRIMITIVE_TOPOLOGY_NUM_TOPOLOGIES +
    + }
     Input primitive topology. More...
     
    enum  CLEAR_DEPTH_STENCIL_FLAGS : Int32 { CLEAR_DEPTH_FLAG = 0x01, +CLEAR_STENCIL_FLAG = 0x02 + }
     Defines which parts of the depth-stencil buffer to clear. More...
     
    enum  SET_VERTEX_BUFFERS_FLAGS : Int32 { SET_VERTEX_BUFFERS_FLAG_RESET = 0x01 + }
     Defines allowed flags for IDeviceContext::SetVertexBuffers() function. More...
     
    enum  COMMIT_SHADER_RESOURCES_FLAG { COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES = 0x01 + }
     Defines allowed flags for IDeviceContext::CommitShaderResources() function. More...
     
    enum  VALUE_TYPE : Int32 {
    +  VT_UNDEFINED = 0, +VT_INT8, +VT_INT16, +VT_INT32, +
    +  VT_UINT8, +VT_UINT16, +VT_UINT32, +VT_FLOAT16, +
    +  VT_FLOAT32, +VT_NUM_TYPES +
    + }
     Value type. More...
     
    enum  BIND_FLAGS : Int32 {
    +  BIND_NONE = 0x0L, +BIND_VERTEX_BUFFER = 0x1L, +BIND_INDEX_BUFFER = 0x2L, +BIND_UNIFORM_BUFFER = 0x4L, +
    +  BIND_SHADER_RESOURCE = 0x8L, +BIND_STREAM_OUTPUT = 0x10L, +BIND_RENDER_TARGET = 0x20L, +BIND_DEPTH_STENCIL = 0x40L, +
    +  BIND_UNORDERED_ACCESS = 0x80L, +BIND_INDIRECT_DRAW_ARGS = 0x100L +
    + }
     Resource binding flags. More...
     
    enum  USAGE : Int32 { USAGE_STATIC = 0, +USAGE_DEFAULT, +USAGE_DYNAMIC, +USAGE_CPU_ACCESSIBLE + }
     Resource usage. More...
     
    enum  CPU_ACCESS_FLAG : Int32 { CPU_ACCESS_READ = 0x01, +CPU_ACCESS_WRITE = 0x02 + }
     Allowed CPU access mode flags when mapping a resource. More...
     
    enum  MAP_TYPE : Int32 { MAP_READ = 0x01, +MAP_WRITE = 0x02, +MAP_READ_WRITE = 0x03 + }
     Resource mapping type. More...
     
    enum  MAP_FLAGS : Int32 { MAP_FLAG_DO_NOT_WAIT = 0x001, +MAP_FLAG_DISCARD = 0x002, +MAP_FLAG_DO_NOT_SYNCHRONIZE = 0x004 + }
     Special map flags. More...
     
    enum  RESOURCE_DIMENSION : Int32 {
    +  RESOURCE_DIM_UNDEFINED = 0, +RESOURCE_DIM_BUFFER, +RESOURCE_DIM_TEX_1D, +RESOURCE_DIM_TEX_1D_ARRAY, +
    +  RESOURCE_DIM_TEX_2D, +RESOURCE_DIM_TEX_2D_ARRAY, +RESOURCE_DIM_TEX_3D, +RESOURCE_DIM_TEX_CUBE, +
    +  RESOURCE_DIM_TEX_CUBE_ARRAY, +RESOURCE_DIM_NUM_DIMENSIONS +
    + }
     Describes resource dimension. More...
     
    enum  TEXTURE_VIEW_TYPE : Int32 {
    +  TEXTURE_VIEW_UNDEFINED = 0, +TEXTURE_VIEW_SHADER_RESOURCE, +TEXTURE_VIEW_RENDER_TARGET, +TEXTURE_VIEW_DEPTH_STENCIL, +
    +  TEXTURE_VIEW_UNORDERED_ACCESS, +TEXTURE_VIEW_NUM_VIEWS +
    + }
     Texture view type. More...
     
    enum  BUFFER_VIEW_TYPE : Int32 { BUFFER_VIEW_UNDEFINED = 0, +BUFFER_VIEW_SHADER_RESOURCE, +BUFFER_VIEW_UNORDERED_ACCESS, +BUFFER_VIEW_NUM_VIEWS + }
     Buffer view type. More...
     
    enum  TEXTURE_FORMAT : Int32 {
    +  TEX_FORMAT_UNKNOWN = 0, +TEX_FORMAT_RGBA32_TYPELESS, +TEX_FORMAT_RGBA32_FLOAT, +TEX_FORMAT_RGBA32_UINT, +
    +  TEX_FORMAT_RGBA32_SINT, +TEX_FORMAT_RGB32_TYPELESS, +TEX_FORMAT_RGB32_FLOAT, +TEX_FORMAT_RGB32_UINT, +
    +  TEX_FORMAT_RGB32_SINT, +TEX_FORMAT_RGBA16_TYPELESS, +TEX_FORMAT_RGBA16_FLOAT, +TEX_FORMAT_RGBA16_UNORM, +
    +  TEX_FORMAT_RGBA16_UINT, +TEX_FORMAT_RGBA16_SNORM, +TEX_FORMAT_RGBA16_SINT, +TEX_FORMAT_RG32_TYPELESS, +
    +  TEX_FORMAT_RG32_FLOAT, +TEX_FORMAT_RG32_UINT, +TEX_FORMAT_RG32_SINT, +TEX_FORMAT_R32G8X24_TYPELESS, +
    +  TEX_FORMAT_D32_FLOAT_S8X24_UINT, +TEX_FORMAT_R32_FLOAT_X8X24_TYPELESS, +TEX_FORMAT_X32_TYPELESS_G8X24_UINT, +TEX_FORMAT_RGB10A2_TYPELESS, +
    +  TEX_FORMAT_RGB10A2_UNORM, +TEX_FORMAT_RGB10A2_UINT, +TEX_FORMAT_R11G11B10_FLOAT, +TEX_FORMAT_RGBA8_TYPELESS, +
    +  TEX_FORMAT_RGBA8_UNORM, +TEX_FORMAT_RGBA8_UNORM_SRGB, +TEX_FORMAT_RGBA8_UINT, +TEX_FORMAT_RGBA8_SNORM, +
    +  TEX_FORMAT_RGBA8_SINT, +TEX_FORMAT_RG16_TYPELESS, +TEX_FORMAT_RG16_FLOAT, +TEX_FORMAT_RG16_UNORM, +
    +  TEX_FORMAT_RG16_UINT, +TEX_FORMAT_RG16_SNORM, +TEX_FORMAT_RG16_SINT, +TEX_FORMAT_R32_TYPELESS, +
    +  TEX_FORMAT_D32_FLOAT, +TEX_FORMAT_R32_FLOAT, +TEX_FORMAT_R32_UINT, +TEX_FORMAT_R32_SINT, +
    +  TEX_FORMAT_R24G8_TYPELESS, +TEX_FORMAT_D24_UNORM_S8_UINT, +TEX_FORMAT_R24_UNORM_X8_TYPELESS, +TEX_FORMAT_X24_TYPELESS_G8_UINT, +
    +  TEX_FORMAT_RG8_TYPELESS, +TEX_FORMAT_RG8_UNORM, +TEX_FORMAT_RG8_UINT, +TEX_FORMAT_RG8_SNORM, +
    +  TEX_FORMAT_RG8_SINT, +TEX_FORMAT_R16_TYPELESS, +TEX_FORMAT_R16_FLOAT, +TEX_FORMAT_D16_UNORM, +
    +  TEX_FORMAT_R16_UNORM, +TEX_FORMAT_R16_UINT, +TEX_FORMAT_R16_SNORM, +TEX_FORMAT_R16_SINT, +
    +  TEX_FORMAT_R8_TYPELESS, +TEX_FORMAT_R8_UNORM, +TEX_FORMAT_R8_UINT, +TEX_FORMAT_R8_SNORM, +
    +  TEX_FORMAT_R8_SINT, +TEX_FORMAT_A8_UNORM, +TEX_FORMAT_R1_UNORM, +TEX_FORMAT_RGB9E5_SHAREDEXP, +
    +  TEX_FORMAT_RG8_B8G8_UNORM, +TEX_FORMAT_G8R8_G8B8_UNORM, +TEX_FORMAT_BC1_TYPELESS, +TEX_FORMAT_BC1_UNORM, +
    +  TEX_FORMAT_BC1_UNORM_SRGB, +TEX_FORMAT_BC2_TYPELESS, +TEX_FORMAT_BC2_UNORM, +TEX_FORMAT_BC2_UNORM_SRGB, +
    +  TEX_FORMAT_BC3_TYPELESS, +TEX_FORMAT_BC3_UNORM, +TEX_FORMAT_BC3_UNORM_SRGB, +TEX_FORMAT_BC4_TYPELESS, +
    +  TEX_FORMAT_BC4_UNORM, +TEX_FORMAT_BC4_SNORM, +TEX_FORMAT_BC5_TYPELESS, +TEX_FORMAT_BC5_UNORM, +
    +  TEX_FORMAT_BC5_SNORM, +TEX_FORMAT_B5G6R5_UNORM, +TEX_FORMAT_B5G5R5A1_UNORM, +TEX_FORMAT_BGRA8_UNORM, +
    +  TEX_FORMAT_BGRX8_UNORM, +TEX_FORMAT_R10G10B10_XR_BIAS_A2_UNORM, +TEX_FORMAT_BGRA8_TYPELESS, +TEX_FORMAT_BGRA8_UNORM_SRGB, +
    +  TEX_FORMAT_BGRX8_TYPELESS, +TEX_FORMAT_BGRX8_UNORM_SRGB, +TEX_FORMAT_BC6H_TYPELESS, +TEX_FORMAT_BC6H_UF16, +
    +  TEX_FORMAT_BC6H_SF16, +TEX_FORMAT_BC7_TYPELESS, +TEX_FORMAT_BC7_UNORM, +TEX_FORMAT_BC7_UNORM_SRGB, +
    +  TEX_FORMAT_NUM_FORMATS +
    + }
     Texture formats. More...
     
    enum  FILTER_TYPE : Int32 {
    +  FILTER_TYPE_UNKNOWN = 0, +FILTER_TYPE_POINT, +FILTER_TYPE_LINEAR, +FILTER_TYPE_ANISOTROPIC, +
    +  FILTER_TYPE_COMPARISON_POINT, +FILTER_TYPE_COMPARISON_LINEAR, +FILTER_TYPE_COMPARISON_ANISOTROPIC, +FILTER_TYPE_MINIMUM_POINT, +
    +  FILTER_TYPE_MINIMUM_LINEAR, +FILTER_TYPE_MINIMUM_ANISOTROPIC, +FILTER_TYPE_MAXIMUM_POINT, +FILTER_TYPE_MAXIMUM_LINEAR, +
    +  FILTER_TYPE_MAXIMUM_ANISOTROPIC, +FILTER_TYPE_NUM_FILTERS +
    + }
     Filter type. More...
     
    enum  TEXTURE_ADDRESS_MODE : Int32 {
    +  TEXTURE_ADDRESS_UNKNOWN = 0, +TEXTURE_ADDRESS_WRAP = 1, +TEXTURE_ADDRESS_MIRROR = 2, +TEXTURE_ADDRESS_CLAMP = 3, +
    +  TEXTURE_ADDRESS_BORDER = 4, +TEXTURE_ADDRESS_MIRROR_ONCE = 5, +TEXTURE_ADDRESS_NUM_MODES +
    + }
     Texture address mode. More...
     
    enum  COMPARISON_FUNCTION : Int32 {
    +  COMPARISON_FUNC_UNKNOWN = 0, +COMPARISON_FUNC_NEVER, +COMPARISON_FUNC_LESS, +COMPARISON_FUNC_EQUAL, +
    +  COMPARISON_FUNC_LESS_EQUAL, +COMPARISON_FUNC_GREATER, +COMPARISON_FUNC_NOT_EQUAL, +COMPARISON_FUNC_GREATER_EQUAL, +
    +  COMPARISON_FUNC_ALWAYS, +COMPARISON_FUNC_NUM_FUNCTIONS +
    + }
     Comparison function. More...
     
    enum  MISC_TEXTURE_FLAG { MISC_TEXTURE_FLAG_GENERATE_MIPS = 0x01 + }
     Miscellaneous texture flags. More...
     
    enum  COMPONENT_TYPE : Int32 {
    +  COMPONENT_TYPE_UNDEFINED, +COMPONENT_TYPE_FLOAT, +COMPONENT_TYPE_SNORM, +COMPONENT_TYPE_UNORM, +
    +  COMPONENT_TYPE_UNORM_SRGB, +COMPONENT_TYPE_SINT, +COMPONENT_TYPE_UINT, +COMPONENT_TYPE_DEPTH, +
    +  COMPONENT_TYPE_DEPTH_STENCIL, +COMPONENT_TYPE_COMPOUND, +COMPONENT_TYPE_COMPRESSED +
    + }
     Describes texture format component type. More...
     
    enum  PRIMITIVE_TOPOLOGY_TYPE : Int32 {
    +  PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0, +PRIMITIVE_TOPOLOGY_TYPE_POINT, +PRIMITIVE_TOPOLOGY_TYPE_LINE, +PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE, +
    +  PRIMITIVE_TOPOLOGY_TYPE_PATCH, +PRIMITIVE_TOPOLOGY_TYPE_NUM_TYPES +
    + }
     Primitive topology type. More...
     
    enum  FILL_MODE : Int32 { FILL_MODE_UNDEFINED = 0, +FILL_MODE_WIREFRAME, +FILL_MODE_SOLID, +FILL_MODE_NUM_MODES + }
     Fill mode. More...
     
    enum  CULL_MODE : Int32 {
    +  CULL_MODE_UNDEFINED = 0, +CULL_MODE_NONE, +CULL_MODE_FRONT, +CULL_MODE_BACK, +
    +  CULL_MODE_NUM_MODES +
    + }
     Cull mode. More...
     
    enum  SHADER_TYPE : Int32 {
    +  SHADER_TYPE_UNKNOWN = 0x000, +SHADER_TYPE_VERTEX = 0x001, +SHADER_TYPE_PIXEL = 0x002, +SHADER_TYPE_GEOMETRY = 0x004, +
    +  SHADER_TYPE_HULL = 0x008, +SHADER_TYPE_DOMAIN = 0x010, +SHADER_TYPE_COMPUTE = 0x020 +
    + }
     Describes the shader type. More...
     
    enum  SHADER_SOURCE_LANGUAGE : Int32 { SHADER_SOURCE_LANGUAGE_DEFAULT = 0, +SHADER_SOURCE_LANGUAGE_HLSL, +SHADER_SOURCE_LANGUAGE_GLSL + }
     Describes shader source code language. More...
     
    enum  BIND_SHADER_RESOURCES_FLAGS : Int32 { BIND_SHADER_RESOURCES_RESET_BINDINGS = 0x01, +BIND_SHADER_RESOURCES_UPDATE_UNRESOLVED = 0x02, +BIND_SHADER_RESOURCES_ALL_RESOLVED = 0x04 + }
     Describes flags that can be supplied to IShader::BindResources() and IDeviceContext::BindShaderResources(). More...
     
    enum  SHADER_VARIABLE_TYPE : Int32 { SHADER_VARIABLE_TYPE_STATIC = 0, +SHADER_VARIABLE_TYPE_MUTABLE, +SHADER_VARIABLE_TYPE_DYNAMIC, +SHADER_VARIABLE_TYPE_NUM_TYPES + }
     Describes shader variable type that is used by ShaderVariableDesc. More...
     
    enum  UAV_ACCESS_FLAG : Int32 { UAV_ACCESS_UNSPECIFIED = 0x00, +UAV_ACCESS_FLAG_READ = 0x01, +UAV_ACCESS_FLAG_WRITE = 0x02, +UAV_ACCESS_FLAG_READ_WRITE = UAV_ACCESS_FLAG_READ | UAV_ACCESS_FLAG_WRITE + }
     Describes allowed unordered access view mode. More...
     
    + + + + + + + + + + + + + + + + +

    +Functions

    void LoadGraphicsEngineD3D11 (GetEngineFactoryD3D11Type &GetFactoryFunc)
     Loads Direct3D11-based engine implementation and exports factory functions. More...
     
    void LoadGraphicsEngineOpenGL (GetEngineFactoryOpenGLType &GetFactoryFunc)
     Loads OpenGL-based engine implementation and exports factory functions. More...
     
    +IMemoryAllocator & GetRawAllocator ()
     Returns raw memory allocator.
     
    void LoadGraphicsEngineD3D12 (GetEngineFactoryD3D12Type &GetFactoryFunc)
     Loads Direct3D12-based engine implementation and exports factory functions. More...
     
    +void SetRawAllocator (IMemoryAllocator *pRawAllocator)
     Sets raw memory allocator. This function must be called before any memory allocation/deallocation function is called.
     
    + + + + + + + +

    +Variables

    +static constexpr Uint32 MaxBufferSlots = 32
     Maximum number of input buffer slots. D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT == 32.
     
    +static constexpr Uint32 MaxRenderTargets = 8
     Maximum number of simultaneous render targets.
     
    +

    Detailed Description

    +

    Namespace for the OpenGL implementation of the graphics engine.

    +

    Graphics engine namespace.

    +

    Namespace for the Direct3D11 implementation of the graphics engine.

    +

    Enumeration Type Documentation

    + +

    ◆ BIND_FLAGS

    + +
    +
    + + + + +
    enum Diligent::BIND_FLAGS : Int32
    +
    + +

    Resource binding flags.

    +

    This enumeration describes which parts of the pipeline a resource can be bound to. It generally mirrors D3D11_BIND_FLAG enumeration. It is used by

    + + + + + + + + + + + +
    Enumerator
    BIND_NONE 

    Undefined binding.

    +
    BIND_VERTEX_BUFFER 

    A buffer can be bound as a vertex buffer.

    +
    BIND_INDEX_BUFFER 

    A buffer can be bound as an index buffer.

    +
    BIND_UNIFORM_BUFFER 

    A buffer can be bound as a uniform buffer.

    +
    Warning
    This flag may not be combined with any other bind flag
    +
    BIND_SHADER_RESOURCE 

    A buffer or a texture can be bound as a shader resource.

    +
    Warning
    This flag cannot be used with MAP_WRITE_NO_OVERWRITE flag
    +
    BIND_STREAM_OUTPUT 

    A buffer can be bound as a target for stream output stage.

    +
    BIND_RENDER_TARGET 

    A texture can be bound as a render target.

    +
    BIND_DEPTH_STENCIL 

    A texture can be bound as a depth-stencil target.

    +
    BIND_UNORDERED_ACCESS 

    A buffer or a texture can be bound as an unordered access view.

    +
    BIND_INDIRECT_DRAW_ARGS 

    A buffer can be bound as the source buffer for indirect draw commands.

    +
    + +
    +
    + +

    ◆ BIND_SHADER_RESOURCES_FLAGS

    + +
    +
    + + + + +
    enum Diligent::BIND_SHADER_RESOURCES_FLAGS : Int32
    +
    + +

    Describes flags that can be supplied to IShader::BindResources() and IDeviceContext::BindShaderResources().

    + + + + +
    Enumerator
    BIND_SHADER_RESOURCES_RESET_BINDINGS 

    Reset all bindings. If this flag is specified, all existing bindings will be broken. By default all existing bindings are preserved.

    +
    BIND_SHADER_RESOURCES_UPDATE_UNRESOLVED 

    If this flag is specified, only unresolved bindings will be updated. All resolved bindings will keep their original values. If this flag is not specified, every shader variable will be updated if the mapping contains corresponding resource.

    +
    BIND_SHADER_RESOURCES_ALL_RESOLVED 

    If this flag is specified, all shader bindings are expected to be resolved after the call. If this is not the case, debug error will be displayed.

    +
    + +
    +
    + +

    ◆ BLEND_FACTOR

    + +
    +
    + + + + +
    enum Diligent::BLEND_FACTOR : Int8
    +
    + +

    Blend factors.

    +

    This enumeration defines blend factors for alpha-blending. It generatlly mirrors D3D11_BLEND and D3D12_BLEND enumerations and is used by RenderTargetBlendDesc structure to define source and destination blend factors for color and alpha channels.

    See also
    D3D11_BLEND on MSDN, D3D12_BLEND on MSDN, glBlendFuncSeparate on OpenGL.org
    + + + + + + + + + + + + + + + + + + + + +
    Enumerator
    BLEND_FACTOR_UNDEFINED 

    Undefined blend factor.

    +
    BLEND_FACTOR_ZERO 

    The blend factor is zero.
    + Direct3D counterpart: D3D11_BLEND_ZERO/D3D12_BLEND_ZERO. OpenGL counterpart: GL_ZERO.

    +
    BLEND_FACTOR_ONE 

    The blend factor is one.
    + Direct3D counterpart: D3D11_BLEND_ONE/D3D12_BLEND_ONE. OpenGL counterpart: GL_ONE.

    +
    BLEND_FACTOR_SRC_COLOR 

    The blend factor is RGB data from a pixel shader.
    + Direct3D counterpart: D3D11_BLEND_SRC_COLOR/D3D12_BLEND_SRC_COLOR. OpenGL counterpart: GL_SRC_COLOR.

    +
    BLEND_FACTOR_INV_SRC_COLOR 

    The blend factor is 1-RGB, where RGB is the data from a pixel shader.
    + Direct3D counterpart: D3D11_BLEND_INV_SRC_COLOR/D3D12_BLEND_INV_SRC_COLOR. OpenGL counterpart: GL_ONE_MINUS_SRC_COLOR.

    +
    BLEND_FACTOR_SRC_ALPHA 

    The blend factor is alpha (A) data from a pixel shader.
    + Direct3D counterpart: D3D11_BLEND_SRC_ALPHA/D3D12_BLEND_SRC_ALPHA. OpenGL counterpart: GL_SRC_ALPHA.

    +
    BLEND_FACTOR_INV_SRC_ALPHA 

    The blend factor is 1-A, where A is alpha data from a pixel shader.
    + Direct3D counterpart: D3D11_BLEND_INV_SRC_ALPHA/D3D12_BLEND_INV_SRC_ALPHA. OpenGL counterpart: GL_ONE_MINUS_SRC_ALPHA.

    +
    BLEND_FACTOR_DEST_ALPHA 

    The blend factor is alpha (A) data from a render target.
    + Direct3D counterpart: D3D11_BLEND_DEST_ALPHA/D3D12_BLEND_DEST_ALPHA. OpenGL counterpart: GL_DST_ALPHA.

    +
    BLEND_FACTOR_INV_DEST_ALPHA 

    The blend factor is 1-A, where A is alpha data from a render target.
    + Direct3D counterpart: D3D11_BLEND_INV_DEST_ALPHA/D3D12_BLEND_INV_DEST_ALPHA. OpenGL counterpart: GL_ONE_MINUS_DST_ALPHA.

    +
    BLEND_FACTOR_DEST_COLOR 

    The blend factor is RGB data from a render target.
    + Direct3D counterpart: D3D11_BLEND_DEST_COLOR/D3D12_BLEND_DEST_COLOR. OpenGL counterpart: GL_DST_COLOR.

    +
    BLEND_FACTOR_INV_DEST_COLOR 

    The blend factor is 1-RGB, where RGB is the data from a render target.
    + Direct3D counterpart: D3D11_BLEND_INV_DEST_COLOR/D3D12_BLEND_INV_DEST_COLOR. OpenGL counterpart: GL_ONE_MINUS_DST_COLOR.

    +
    BLEND_FACTOR_SRC_ALPHA_SAT 

    The blend factor is (f,f,f,1), where f = min(As, 1-Ad), As is alpha data from a pixel shader, and Ad is alpha data from a render target.
    + Direct3D counterpart: D3D11_BLEND_SRC_ALPHA_SAT/D3D12_BLEND_SRC_ALPHA_SAT. OpenGL counterpart: GL_SRC_ALPHA_SATURATE.

    +
    BLEND_FACTOR_BLEND_FACTOR 

    The blend factor is the constant blend factor set with IDeviceContext::SetBlendFactors().
    + Direct3D counterpart: D3D11_BLEND_BLEND_FACTOR/D3D12_BLEND_BLEND_FACTOR. OpenGL counterpart: GL_CONSTANT_COLOR.

    +
    BLEND_FACTOR_INV_BLEND_FACTOR 

    The blend factor is one minus constant blend factor set with IDeviceContext::SetBlendFactors().
    + Direct3D counterpart: D3D11_BLEND_INV_BLEND_FACTOR/D3D12_BLEND_INV_BLEND_FACTOR. OpenGL counterpart: GL_ONE_MINUS_CONSTANT_COLOR.

    +
    BLEND_FACTOR_SRC1_COLOR 

    The blend factor is the second RGB data output from a pixel shader.
    + Direct3D counterpart: D3D11_BLEND_SRC1_COLOR/D3D12_BLEND_SRC1_COLOR. OpenGL counterpart: GL_SRC1_COLOR.

    +
    BLEND_FACTOR_INV_SRC1_COLOR 

    The blend factor is 1-RGB, where RGB is the second RGB data output from a pixel shader.
    + Direct3D counterpart: D3D11_BLEND_INV_SRC1_COLOR/D3D12_BLEND_INV_SRC1_COLOR. OpenGL counterpart: GL_ONE_MINUS_SRC1_COLOR.

    +
    BLEND_FACTOR_SRC1_ALPHA 

    The blend factor is the second alpha (A) data output from a pixel shader.
    + Direct3D counterpart: D3D11_BLEND_SRC1_ALPHA/D3D12_BLEND_SRC1_ALPHA. OpenGL counterpart: GL_SRC1_ALPHA.

    +
    BLEND_FACTOR_INV_SRC1_ALPHA 

    The blend factor is 1-A, where A is the second alpha data output from a pixel shader.
    + Direct3D counterpart: D3D11_BLEND_INV_SRC1_ALPHA/D3D12_BLEND_INV_SRC1_ALPHA. OpenGL counterpart: GL_ONE_MINUS_SRC1_ALPHA.

    +
    BLEND_FACTOR_NUM_FACTORS 

    Helper value that stores the total number of blend factors in the enumeration.

    +
    + +
    +
    + +

    ◆ BLEND_OPERATION

    + +
    +
    + + + + +
    enum Diligent::BLEND_OPERATION : Int8
    +
    + +

    Blending operation.

    +

    This enumeration describes blending operation for RGB or Alpha channels and generally mirrors D3D11_BLEND_OP and D3D12_BLEND_OP enums. It is used by RenderTargetBlendDesc structure to define RGB and Alpha blending operations

    See also
    D3D11_BLEND_OP on MSDN, D3D12_BLEND_OP on MSDN, glBlendEquationSeparate on OpenGL.org
    + + + + + + + + +
    Enumerator
    BLEND_OPERATION_UNDEFINED 

    Undefined blend operation.

    +
    BLEND_OPERATION_ADD 

    Add source and destination color components.
    + Direct3D counterpart: D3D11_BLEND_OP_ADD/D3D12_BLEND_OP_ADD. OpenGL counterpart: GL_FUNC_ADD.

    +
    BLEND_OPERATION_SUBTRACT 

    Subtract destination color components from source color components.
    + Direct3D counterpart: D3D11_BLEND_OP_SUBTRACT/D3D12_BLEND_OP_SUBTRACT. OpenGL counterpart: GL_FUNC_SUBTRACT.

    +
    BLEND_OPERATION_REV_SUBTRACT 

    Subtract source color components from destination color components.
    + Direct3D counterpart: D3D11_BLEND_OP_REV_SUBTRACT/D3D12_BLEND_OP_REV_SUBTRACT. OpenGL counterpart: GL_FUNC_REVERSE_SUBTRACT.

    +
    BLEND_OPERATION_MIN 

    Compute the minimum of source and destination color components.
    + Direct3D counterpart: D3D11_BLEND_OP_MIN/D3D12_BLEND_OP_MIN. OpenGL counterpart: GL_MIN.

    +
    BLEND_OPERATION_MAX 

    Compute the maximum of source and destination color components.
    + Direct3D counterpart: D3D11_BLEND_OP_MAX/D3D12_BLEND_OP_MAX. OpenGL counterpart: GL_MAX.

    +
    BLEND_OPERATION_NUM_OPERATIONS 

    Helper value that stores the total number of blend operations in the enumeration.

    +
    + +
    +
    + +

    ◆ BUFFER_MODE

    + +
    +
    + + + + +
    enum Diligent::BUFFER_MODE : Int32
    +
    + +

    Describes the buffer access mode.

    +

    This enumeration is used by BufferDesc structure.

    + + + + + +
    Enumerator
    BUFFER_MODE_UNDEFINED 

    Undefined mode.

    +
    BUFFER_MODE_FORMATTED 

    Formated buffer.

    +
    BUFFER_MODE_STRUCTURED 

    Structured buffer.

    +
    BUFFER_MODE_NUM_MODES 

    Helper value storing the total number of modes in the enumeration.

    +
    + +
    +
    + +

    ◆ BUFFER_VIEW_TYPE

    + +
    +
    + + + + +
    enum Diligent::BUFFER_VIEW_TYPE : Int32
    +
    + +

    Buffer view type.

    +

    This enumeration describes allowed view types for a buffer view. It is used by BufferViewDesc structure.

    + + + + + +
    Enumerator
    BUFFER_VIEW_UNDEFINED 

    Undefined view type.

    +
    BUFFER_VIEW_SHADER_RESOURCE 

    A buffer view will define a shader resource view that will be used as the source for the shader read operations.

    +
    BUFFER_VIEW_UNORDERED_ACCESS 

    A buffer view will define an unordered access view that will be used for unordered read/write operations from the shaders.

    +
    BUFFER_VIEW_NUM_VIEWS 

    Helper value that stores that total number of buffer views.

    +
    + +
    +
    + +

    ◆ CLEAR_DEPTH_STENCIL_FLAGS

    + +
    +
    + + + + +
    enum Diligent::CLEAR_DEPTH_STENCIL_FLAGS : Int32
    +
    + +

    Defines which parts of the depth-stencil buffer to clear.

    +

    These flags are used by IDeviceContext::ClearDepthStencil().

    + + + +
    Enumerator
    CLEAR_DEPTH_FLAG 

    Clear depth part of the buffer.

    +
    CLEAR_STENCIL_FLAG 

    Clear stencil part of the buffer.

    +
    + +
    +
    + +

    ◆ COLOR_MASK

    + +
    +
    + + + + +
    enum Diligent::COLOR_MASK : Int32
    +
    + +

    Color component write flags.

    +

    These flags are used by RenderTargetBlendDesc structure to define writable components of the render target

    + + + + + + +
    Enumerator
    COLOR_MASK_RED 

    Allow data to be stored in the red component.

    +
    COLOR_MASK_GREEN 

    Allow data to be stored in the green component.

    +
    COLOR_MASK_BLUE 

    Allow data to be stored in the blue component.

    +
    COLOR_MASK_ALPHA 

    Allow data to be stored in the alpha component.

    +
    COLOR_MASK_ALL 

    Allow data to be stored in all components.

    +
    + +
    +
    + +

    ◆ COMMIT_SHADER_RESOURCES_FLAG

    + +
    +
    + +

    Defines allowed flags for IDeviceContext::CommitShaderResources() function.

    + + +
    Enumerator
    COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES 

    Transition resources being committed.

    +

    If this flag is specified when IDeviceContext::CommitShaderResources() is called, the engine will transition all shader resources to the correct state.

    +
    + +
    +
    + +

    ◆ COMPARISON_FUNCTION

    + +
    +
    + + + + +
    enum Diligent::COMPARISON_FUNCTION : Int32
    +
    + +

    Comparison function.

    +

    This enumeartion defines a comparison function. It generally mirrors D3D11_COMPARISON_FUNC/D3D12_COMPARISON_FUNC enum and is used by

    + + + + + + + + + + + +
    Enumerator
    COMPARISON_FUNC_UNKNOWN 

    Unknown comparison function.

    +
    COMPARISON_FUNC_NEVER 

    Comparison never passes.
    + Direct3D counterpart: D3D11_COMPARISON_NEVER/D3D12_COMPARISON_FUNC_NEVER. OpenGL counterpart: GL_NEVER.

    +
    COMPARISON_FUNC_LESS 

    Comparison passes if the source data is less than the destination data.
    + Direct3D counterpart: D3D11_COMPARISON_LESS/D3D12_COMPARISON_FUNC_LESS. OpenGL counterpart: GL_LESS.

    +
    COMPARISON_FUNC_EQUAL 

    Comparison passes if the source data is equal to the destination data.
    + Direct3D counterpart: D3D11_COMPARISON_EQUAL/D3D12_COMPARISON_FUNC_EQUAL. OpenGL counterpart: GL_EQUAL.

    +
    COMPARISON_FUNC_LESS_EQUAL 

    Comparison passes if the source data is less than or equal to the destination data.
    + Direct3D counterpart: D3D11_COMPARISON_LESS_EQUAL/D3D12_COMPARISON_FUNC_LESS_EQUAL. OpenGL counterpart: GL_LEQUAL.

    +
    COMPARISON_FUNC_GREATER 

    Comparison passes if the source data is greater than the destination data.
    + Direct3D counterpart: 3D11_COMPARISON_GREATER/D3D12_COMPARISON_FUNC_GREATER. OpenGL counterpart: GL_GREATER.

    +
    COMPARISON_FUNC_NOT_EQUAL 

    Comparison passes if the source data is not equal to the destination data.
    + Direct3D counterpart: D3D11_COMPARISON_NOT_EQUAL/D3D12_COMPARISON_FUNC_NOT_EQUAL. OpenGL counterpart: GL_NOTEQUAL.

    +
    COMPARISON_FUNC_GREATER_EQUAL 

    Comparison passes if the source data is greater than or equal to the destination data.
    + Direct3D counterpart: D3D11_COMPARISON_GREATER_EQUAL/D3D12_COMPARISON_FUNC_GREATER_EQUAL. OpenGL counterpart: GL_GEQUAL.

    +
    COMPARISON_FUNC_ALWAYS 

    Comparison always passes.
    + Direct3D counterpart: D3D11_COMPARISON_ALWAYS/D3D12_COMPARISON_FUNC_ALWAYS. OpenGL counterpart: GL_ALWAYS.

    +
    COMPARISON_FUNC_NUM_FUNCTIONS 

    Helper value that stores the total number of comparison functions in the enumeration.

    +
    + +
    +
    + +

    ◆ COMPONENT_TYPE

    + +
    +
    + + + + +
    enum Diligent::COMPONENT_TYPE : Int32
    +
    + +

    Describes texture format component type.

    + + + + + + + + + + + + +
    Enumerator
    COMPONENT_TYPE_UNDEFINED 

    Undefined component type.

    +
    COMPONENT_TYPE_FLOAT 

    Floating point component type.

    +
    COMPONENT_TYPE_SNORM 

    Signed-normalized-integer component type.

    +
    COMPONENT_TYPE_UNORM 

    Unsigned-normalized-integer component type.

    +
    COMPONENT_TYPE_UNORM_SRGB 

    Unsigned-normalized-integer sRGB component type.

    +
    COMPONENT_TYPE_SINT 

    Signed-integer component type.

    +
    COMPONENT_TYPE_UINT 

    Unsigned-integer component type.

    +
    COMPONENT_TYPE_DEPTH 

    Depth component type.

    +
    COMPONENT_TYPE_DEPTH_STENCIL 

    Depth-stencil component type.

    +
    COMPONENT_TYPE_COMPOUND 

    Compound component type (example texture formats: TEX_FORMAT_R11G11B10_FLOAT or TEX_FORMAT_RGB9E5_SHAREDEXP)

    +
    COMPONENT_TYPE_COMPRESSED 

    Compressed component type.

    +
    + +
    +
    + +

    ◆ CPU_ACCESS_FLAG

    + +
    +
    + + + + +
    enum Diligent::CPU_ACCESS_FLAG : Int32
    +
    + +

    Allowed CPU access mode flags when mapping a resource.

    +

    The enumeration is used by

      +
    • BufferDesc to describe CPU access mode for a buffer
    • +
    • TextureDesc to describe CPU access mode for a texture
      Note
      Only USAGE_DYNAMIC resources can be mapped
      +
    • +
    + + + +
    Enumerator
    CPU_ACCESS_READ 

    A resource can be mapped for reading.

    +
    CPU_ACCESS_WRITE 

    A resource can be mapped for writing.

    +
    + +
    +
    + +

    ◆ CULL_MODE

    + +
    +
    + + + + +
    enum Diligent::CULL_MODE : Int32
    +
    + +

    Cull mode.

    +

    This enumeration defines which triangles are not drawn during the rasterization and mirrors D3D11_CULL_MODE/D3D12_CULL_MODE enum. It is used by RasterizerStateDesc structure to define the polygon cull mode.

    + + + + + + +
    Enumerator
    CULL_MODE_UNDEFINED 

    Undefined cull mode.

    +
    CULL_MODE_NONE 

    Draw all triangles.
    + Direct3D counterpart: D3D11_CULL_NONE/D3D12_CULL_MODE_NONE. OpenGL counterpart: glDisable( GL_CULL_FACE ).

    +
    CULL_MODE_FRONT 

    Do not draw triangles that are front-facing. Front- and back-facing triangles are determined by the RasterizerStateDesc::FrontCounterClockwise member.
    + Direct3D counterpart: D3D11_CULL_FRONT/D3D12_CULL_MODE_FRONT. OpenGL counterpart: GL_FRONT.

    +
    CULL_MODE_BACK 

    Do not draw triangles that are back-facing. Front- and back-facing triangles are determined by the RasterizerStateDesc::FrontCounterClockwise member.
    + Direct3D counterpart: D3D11_CULL_BACK/D3D12_CULL_MODE_BACK. OpenGL counterpart: GL_BACK.

    +
    CULL_MODE_NUM_MODES 

    Helper value that stores the total number of cull modes in the enumeration.

    +
    + +
    +
    + +

    ◆ DeviceType

    + +
    +
    + + + + + +
    + + + + +
    enum Diligent::DeviceType : Int32
    +
    +strong
    +
    + +

    Device type.

    + + + + + + +
    Enumerator
    Undefined 

    Undefined device.

    +
    D3D11 

    D3D11 device.

    +
    D3D12 

    D3D12 device.

    +
    OpenGL 

    OpenGL device.

    +
    OpenGLES 

    OpenGLES device.

    +
    + +
    +
    + +

    ◆ EngineD3D11DebugFlags

    + +
    +
    + + + + + +
    + + + + +
    enum Diligent::EngineD3D11DebugFlags : Uint32
    +
    +strong
    +
    + +

    Debug flags that can be specified when creating Direct3D11-based engine implementation.

    +
    See also
    CreateDeviceAndContextsD3D11Type, CreateSwapChainD3D11Type, LoadGraphicsEngineD3D11
    + + + +
    Enumerator
    VerifyCommittedShaderResources 

    Before executing draw/dispatch command, verify that all required shader resources are bound to the device context.

    +
    VerifyCommittedResourceRelevance 

    Verify that all committed cotext resources are relevant, i.e. they are consistent with the committed resource cache. This is very expensive operation and should generally not be necessary.

    +
    + +
    +
    + +

    ◆ FILL_MODE

    + +
    +
    + + + + +
    enum Diligent::FILL_MODE : Int32
    +
    + +

    Fill mode.

    +

    This enumeration determines the fill mode to use when rendering triangles and mirrors the D3D11_FILL_MODE/D3D12_FILL_MODE enum. It is used by RasterizerStateDesc structure to define the fill mode.

    + + + + + +
    Enumerator
    FILL_MODE_UNDEFINED 

    Undefined fill mode.

    +
    FILL_MODE_WIREFRAME 

    Rasterize triangles using wireframe fill.
    + Direct3D counterpart: D3D11_FILL_WIREFRAME/D3D12_FILL_MODE_WIREFRAME. OpenGL counterpart: GL_LINE.

    +
    FILL_MODE_SOLID 

    Rasterize triangles using solid fill.
    + Direct3D counterpart: D3D11_FILL_SOLID/D3D12_FILL_MODE_SOLID. OpenGL counterpart: GL_FILL.

    +
    FILL_MODE_NUM_MODES 

    Helper value that stores the total number of fill modes in the enumeration.

    +
    + +
    +
    + +

    ◆ FILTER_TYPE

    + +
    +
    + + + + +
    enum Diligent::FILTER_TYPE : Int32
    +
    + +

    Filter type.

    +

    This enumeration defines filter type. It is used by SamplerDesc structure to define min, mag and mip filters.

    Note
    On D3D11, comparison filters only work with textures that have the following formats: R32_FLOAT_X8X24_TYPELESS, R32_FLOAT, R24_UNORM_X8_TYPELESS, R16_UNORM.
    + + + + + + + + + + + + + + + +
    Enumerator
    FILTER_TYPE_UNKNOWN 

    Unknown filter type.

    +
    FILTER_TYPE_POINT 

    Point filtering.

    +
    FILTER_TYPE_LINEAR 

    Linear filtering.

    +
    FILTER_TYPE_ANISOTROPIC 

    Anisotropic filtering.

    +
    FILTER_TYPE_COMPARISON_POINT 

    Comparison-point filtering.

    +
    FILTER_TYPE_COMPARISON_LINEAR 

    Comparison-linear filtering.

    +
    FILTER_TYPE_COMPARISON_ANISOTROPIC 

    Comparison-anisotropic filtering.

    +
    FILTER_TYPE_MINIMUM_POINT 

    Minimum-point filtering (DX12 only)

    +
    FILTER_TYPE_MINIMUM_LINEAR 

    Minimum-linear filtering (DX12 only)

    +
    FILTER_TYPE_MINIMUM_ANISOTROPIC 

    Minimum-anisotropic filtering (DX12 only)

    +
    FILTER_TYPE_MAXIMUM_POINT 

    Maximum-point filtering (DX12 only)

    +
    FILTER_TYPE_MAXIMUM_LINEAR 

    Maximum-linear filtering (DX12 only)

    +
    FILTER_TYPE_MAXIMUM_ANISOTROPIC 

    Maximum-anisotropic filtering (DX12 only)

    +
    FILTER_TYPE_NUM_FILTERS 

    Helper value that stores the total number of filter types in the enumeration.

    +
    + +
    +
    + +

    ◆ LOGIC_OPERATION

    + +
    +
    + + + + +
    enum Diligent::LOGIC_OPERATION : Int8
    +
    + +

    Logic operation.

    +

    This enumeration describes logic operation and generally mirrors D3D12_LOGIC_OP enum. It is used by RenderTargetBlendDesc structure to define logic operation. Only available on D3D12 engine

    See also
    D3D12_LOGIC_OP on MSDN
    + + + + + + + + + + + + + + + + + + +
    Enumerator
    LOGIC_OP_CLEAR 

    Clear the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_CLEAR.

    +
    LOGIC_OP_SET 

    Set the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_SET.

    +
    LOGIC_OP_COPY 

    Copy the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_COPY.

    +
    LOGIC_OP_COPY_INVERTED 

    Perform an inverted-copy of the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_COPY_INVERTED.

    +
    LOGIC_OP_NOOP 

    No operation is performed on the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_NOOP.

    +
    LOGIC_OP_INVERT 

    Invert the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_INVERT.

    +
    LOGIC_OP_AND 

    Perform a logical AND operation on the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_AND.

    +
    LOGIC_OP_NAND 

    Perform a logical NAND operation on the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_NAND.

    +
    LOGIC_OP_OR 

    Perform a logical OR operation on the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_OR.

    +
    LOGIC_OP_NOR 

    Perform a logical NOR operation on the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_NOR.

    +
    LOGIC_OP_XOR 

    Perform a logical XOR operation on the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_XOR.

    +
    LOGIC_OP_EQUIV 

    Perform a logical equal operation on the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_EQUIV.

    +
    LOGIC_OP_AND_REVERSE 

    Perform a logical AND and reverse operation on the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_AND_REVERSE.

    +
    LOGIC_OP_AND_INVERTED 

    Perform a logical AND and invert operation on the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_AND_INVERTED.

    +
    LOGIC_OP_OR_REVERSE 

    Perform a logical OR and reverse operation on the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_OR_REVERSE.

    +
    LOGIC_OP_OR_INVERTED 

    Perform a logical OR and invert operation on the render target.
    + Direct3D12 counterpart: D3D12_LOGIC_OP_OR_INVERTED.

    +
    LOGIC_OP_NUM_OPERATIONS 

    Helper value that stores the total number of logical operations in the enumeration.

    +
    + +
    +
    + +

    ◆ MAP_FLAGS

    + +
    +
    + + + + +
    enum Diligent::MAP_FLAGS : Int32
    +
    + +

    Special map flags.

    +

    Describes special arguments for a map operation. This enumeration is used by

    + + + + +
    Enumerator
    MAP_FLAG_DO_NOT_WAIT 

    Specifies that map operation should not wait until previous command that using the same resource completes. Map returns null pointer if the resource is still in use.
    + D3D11 counterpart: D3D11_MAP_FLAG_DO_NOT_WAIT.

    +
    Note
    : OpenGL does not have corresponding flag, so a buffer will always be mapped
    +
    MAP_FLAG_DISCARD 

    Previous contents of the resource will be undefined. This flag is only compatible with MAP_WRITE
    + D3D11 counterpart: D3D11_MAP_WRITE_DISCARD. OpenGL counterpart: GL_MAP_INVALIDATE_BUFFER_BIT.

    +
    Note
    OpenGL implementation may orphan a buffer instead
    +
    MAP_FLAG_DO_NOT_SYNCHRONIZE 

    The system will not synchronize pending operations before mapping the buffer. It is responsibility of the application to make sure that the buffer contents is not overwritten while it is in use by the GPU.
    + D3D11 counterpart: D3D11_MAP_WRITE_NO_OVERWRITE. OpenGL counterpart: GL_MAP_UNSYNCHRONIZED_BIT.

    +
    + +
    +
    + +

    ◆ MAP_TYPE

    + +
    +
    + + + + +
    enum Diligent::MAP_TYPE : Int32
    +
    + +

    Resource mapping type.

    +

    Describes how a mapped resource will be accessed. This enumeration generally mirrors D3D11_MAP enumeration. It is used by

    + + + + +
    Enumerator
    MAP_READ 

    Resource is mapped for reading.
    + D3D11 counterpart: D3D11_MAP_READ. OpenGL counterpart: GL_MAP_READ_BIT.

    +
    MAP_WRITE 

    Resource is mapped for writing.
    + D3D11 counterpart: D3D11_MAP_WRITE. OpenGL counterpart: GL_MAP_WRITE_BIT.

    +
    MAP_READ_WRITE 

    Resource is mapped for reading and writing.
    + D3D11 counterpart: D3D11_MAP_READ_WRITE. OpenGL counterpart: GL_MAP_WRITE_BIT | GL_MAP_READ_BIT.

    +
    + +
    +
    + +

    ◆ MISC_TEXTURE_FLAG

    + +
    +
    + + + + +
    enum Diligent::MISC_TEXTURE_FLAG
    +
    + +

    Miscellaneous texture flags.

    +

    The enumeration is used by TextureDesc to describe misc texture flags

    + + +
    Enumerator
    MISC_TEXTURE_FLAG_GENERATE_MIPS 

    Allow automatic mipmap generation with ITextureView::GenerateMips()

    +
    Note
    A texture must be created with BIND_RENDER_TARGET bind flag
    +
    + +
    +
    + +

    ◆ PRIMITIVE_TOPOLOGY

    + +
    +
    + + + + +
    enum Diligent::PRIMITIVE_TOPOLOGY : Int32
    +
    + +

    Input primitive topology.

    +

    This enumeration is used by DrawAttribs structure to define input primitive topology.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Enumerator
    PRIMITIVE_TOPOLOGY_UNDEFINED 

    Undefined topology.

    +
    PRIMITIVE_TOPOLOGY_TRIANGLE_LIST 

    Interpret the vertex data as a list of triangles.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST. OpenGL counterpart: GL_TRIANGLES.

    +
    PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP 

    Interpret the vertex data as a triangle strip.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP. OpenGL counterpart: GL_TRIANGLE_STRIP.

    +
    PRIMITIVE_TOPOLOGY_POINT_LIST 

    Interpret the vertex data as a list of points.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_POINTLIST. OpenGL counterpart: GL_POINTS.

    +
    PRIMITIVE_TOPOLOGY_LINE_LIST 

    Interpret the vertex data as a list of lines.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_LINELIST. OpenGL counterpart: GL_LINES.

    +
    PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of one control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of two control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of three control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of four control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of five control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of six control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of seven control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of eight control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of nine control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of ten control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 11 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 12 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 13 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 14 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 15 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 16 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 17 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 18 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 19 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 20 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 21 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 22 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 23 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 24 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 25 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 26 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 27 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 28 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 29 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 30 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 31 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST 

    Interpret the vertex data as a list of 32 control point patches.
    + D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.

    +
    PRIMITIVE_TOPOLOGY_NUM_TOPOLOGIES 

    Helper value that stores the total number of topologies in the enumeration.

    +
    + +
    +
    + +

    ◆ PRIMITIVE_TOPOLOGY_TYPE

    + +
    +
    + + + + +
    enum Diligent::PRIMITIVE_TOPOLOGY_TYPE : Int32
    +
    + +

    Primitive topology type.

    +

    This enumeration describes primitive topology type. It generally mirrors D3D12_PRIMITIVE_TOPOLOGY_TYPE enumeration. The enumeration is used by GraphicsPipelineDesc to describe how the pipeline interprets geometry or hull shader input primitives

    + + + + + + + +
    Enumerator
    PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED 

    Topology is not defined.

    +
    PRIMITIVE_TOPOLOGY_TYPE_POINT 

    Interpret the input primitive as a point.

    +
    PRIMITIVE_TOPOLOGY_TYPE_LINE 

    Interpret the input primitive as a line.

    +
    PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE 

    Interpret the input primitive as a triangle.

    +
    PRIMITIVE_TOPOLOGY_TYPE_PATCH 

    Interpret the input primitive as a control point patch.

    +
    PRIMITIVE_TOPOLOGY_TYPE_NUM_TYPES 

    Total number of topology types.

    +
    + +
    +
    + +

    ◆ RESOURCE_DIMENSION

    + +
    +
    + + + + +
    enum Diligent::RESOURCE_DIMENSION : Int32
    +
    + +

    Describes resource dimension.

    +

    This enumeration is used by

    + + + + + + + + + + + +
    Enumerator
    RESOURCE_DIM_UNDEFINED 

    Texture type undefined.

    +
    RESOURCE_DIM_BUFFER 

    Buffer.

    +
    RESOURCE_DIM_TEX_1D 

    One-dimensional texture.

    +
    RESOURCE_DIM_TEX_1D_ARRAY 

    One-dimensional texture array.

    +
    RESOURCE_DIM_TEX_2D 

    Two-dimensional texture.

    +
    RESOURCE_DIM_TEX_2D_ARRAY 

    Two-dimensional texture array.

    +
    RESOURCE_DIM_TEX_3D 

    Three-dimensional texture.

    +
    RESOURCE_DIM_TEX_CUBE 

    Cube-map texture.

    +
    RESOURCE_DIM_TEX_CUBE_ARRAY 

    Cube-map array texture.

    +
    RESOURCE_DIM_NUM_DIMENSIONS 

    Helper value that stores the total number of texture types in the enumeration.

    +
    + +
    +
    + +

    ◆ SET_VERTEX_BUFFERS_FLAGS

    + +
    +
    + + + + +
    enum Diligent::SET_VERTEX_BUFFERS_FLAGS : Int32
    +
    + +

    Defines allowed flags for IDeviceContext::SetVertexBuffers() function.

    + + +
    Enumerator
    SET_VERTEX_BUFFERS_FLAG_RESET 

    Reset the vertex buffers to only the buffers specified in this call. All buffers previously bound to the pipeline will be unbound.

    +
    + +
    +
    + +

    ◆ SHADER_SOURCE_LANGUAGE

    + +
    +
    + + + + +
    enum Diligent::SHADER_SOURCE_LANGUAGE : Int32
    +
    + +

    Describes shader source code language.

    + + + + +
    Enumerator
    SHADER_SOURCE_LANGUAGE_DEFAULT 

    Default language (GLSL for OpenGL/OpenGLES devices, HLSL for Direct3D11/Direct3D12 devices)

    +
    SHADER_SOURCE_LANGUAGE_HLSL 

    The source language is HLSL.

    +
    SHADER_SOURCE_LANGUAGE_GLSL 

    The source language is GLSL.

    +
    + +
    +
    + +

    ◆ SHADER_TYPE

    + +
    +
    + + + + +
    enum Diligent::SHADER_TYPE : Int32
    +
    + +

    Describes the shader type.

    + + + + + + + + +
    Enumerator
    SHADER_TYPE_UNKNOWN 

    Unknown shader type.

    +
    SHADER_TYPE_VERTEX 

    Vertex shader.

    +
    SHADER_TYPE_PIXEL 

    Pixel (fragment) shader.

    +
    SHADER_TYPE_GEOMETRY 

    Geometry shader.

    +
    SHADER_TYPE_HULL 

    Hull (tessellation control) shader.

    +
    SHADER_TYPE_DOMAIN 

    Domain (tessellation evaluation) shader.

    +
    SHADER_TYPE_COMPUTE 

    Compute shader.

    +
    + +
    +
    + +

    ◆ SHADER_VARIABLE_TYPE

    + +
    +
    + + + + +
    enum Diligent::SHADER_VARIABLE_TYPE : Int32
    +
    + +

    Describes shader variable type that is used by ShaderVariableDesc.

    + + + + + +
    Enumerator
    SHADER_VARIABLE_TYPE_STATIC 

    Shader variable is constant across all shader instances. It must be set once directly through IShader::BindResources() or through the shader variable.

    +
    SHADER_VARIABLE_TYPE_MUTABLE 

    Shader variable is constant across shader resource bindings instance (see IShaderResourceBinding). It must be set once through IShaderResourceBinding::BindResources() or through the shader variable. It cannot be set through IShader interface.

    +
    SHADER_VARIABLE_TYPE_DYNAMIC 

    Shader variable is dynamic. It can be set multiple times for every instance of shader resource bindings (see IShaderResourceBinding). It cannot be set through IShader interface.

    +
    SHADER_VARIABLE_TYPE_NUM_TYPES 

    Total number of shader variable types.

    +
    + +
    +
    + +

    ◆ STENCIL_OP

    + +
    +
    + + + + +
    enum Diligent::STENCIL_OP : Int32
    +
    + +

    Stencil operation.

    +

    This enumeration describes the stencil operation and generally mirrors D3D11_STENCIL_OP/D3D12_STENCIL_OP enumeration. It is used by Diligent::StencilOpDesc structure to describe the stencil fail, depth fail and stencil pass operations

    + + + + + + + + + + + +
    Enumerator
    STENCIL_OP_UNDEFINED 

    Undefined operation.

    +
    STENCIL_OP_KEEP 

    Keep the existing stencil data.
    + Direct3D counterpart: D3D11_STENCIL_OP_KEEP/D3D12_STENCIL_OP_KEEP. OpenGL counterpart: GL_KEEP.

    +
    STENCIL_OP_ZERO 

    Set the stencil data to 0.
    + Direct3D counterpart: D3D11_STENCIL_OP_ZERO/D3D12_STENCIL_OP_ZERO. OpenGL counterpart: GL_ZERO.

    +
    STENCIL_OP_REPLACE 

    Set the stencil data to the reference value set by calling IDeviceContext::SetStencilRef().
    + Direct3D counterpart: D3D11_STENCIL_OP_REPLACE/D3D12_STENCIL_OP_REPLACE. OpenGL counterpart: GL_REPLACE.

    +
    STENCIL_OP_INCR_SAT 

    Increment the current stencil value, and clamp to the maximum representable unsigned value.
    + Direct3D counterpart: D3D11_STENCIL_OP_INCR_SAT/D3D12_STENCIL_OP_INCR_SAT. OpenGL counterpart: GL_INCR.

    +
    STENCIL_OP_DECR_SAT 

    Decrement the current stencil value, and clamp to 0.
    + Direct3D counterpart: D3D11_STENCIL_OP_DECR_SAT/D3D12_STENCIL_OP_DECR_SAT. OpenGL counterpart: GL_DECR.

    +
    STENCIL_OP_INVERT 

    Bitwise invert the current stencil buffer value.
    + Direct3D counterpart: D3D11_STENCIL_OP_INVERT/D3D12_STENCIL_OP_INVERT. OpenGL counterpart: GL_INVERT.

    +
    STENCIL_OP_INCR_WRAP 

    Increment the current stencil value, and wrap the value to zero when incrementing the maximum representable unsigned value.
    + Direct3D counterpart: D3D11_STENCIL_OP_INCR/D3D12_STENCIL_OP_INCR. OpenGL counterpart: GL_INCR_WRAP.

    +
    STENCIL_OP_DECR_WRAP 

    Decrement the current stencil value, and wrap the value to the maximum representable unsigned value when decrementing a value of zero.
    + Direct3D counterpart: D3D11_STENCIL_OP_DECR/D3D12_STENCIL_OP_DECR. OpenGL counterpart: GL_DECR_WRAP.

    +
    STENCIL_OP_NUM_OPS 

    Helper value that stores the total number of stencil operations in the enumeration.

    +
    + +
    +
    + +

    ◆ TEXTURE_ADDRESS_MODE

    + +
    +
    + + + + +
    enum Diligent::TEXTURE_ADDRESS_MODE : Int32
    +
    + +

    Texture address mode.

    +

    Defines a technique for resolving texture coordinates that are outside of the boundaries of a texture. The enumeration generally mirrors D3D11_TEXTURE_ADDRESS_MODE/D3D12_TEXTURE_ADDRESS_MODE enumeration. It is used by SamplerDesc structure to define the address mode for U,V and W texture coordinates.

    + + + + + + + + +
    Enumerator
    TEXTURE_ADDRESS_UNKNOWN 

    Unknown mode.

    +
    TEXTURE_ADDRESS_WRAP 

    Tile the texture at every integer junction.
    + Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_WRAP/D3D12_TEXTURE_ADDRESS_MODE_WRAP. OpenGL counterpart: GL_REPEAT.

    +
    TEXTURE_ADDRESS_MIRROR 

    Flip the texture at every integer junction.
    + Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_MIRROR/D3D12_TEXTURE_ADDRESS_MODE_MIRROR. OpenGL counterpart: GL_MIRRORED_REPEAT.

    +
    TEXTURE_ADDRESS_CLAMP 

    Texture coordinates outside the range [0.0, 1.0] are set to the texture color at 0.0 or 1.0, respectively.
    + Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_CLAMP/D3D12_TEXTURE_ADDRESS_MODE_CLAMP. OpenGL counterpart: GL_CLAMP_TO_EDGE.

    +
    TEXTURE_ADDRESS_BORDER 

    Texture coordinates outside the range [0.0, 1.0] are set to the border color specified specified in SamplerDesc structure.
    + Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_BORDER/D3D12_TEXTURE_ADDRESS_MODE_BORDER. OpenGL counterpart: GL_CLAMP_TO_BORDER.

    +
    TEXTURE_ADDRESS_MIRROR_ONCE 

    Similar to TEXTURE_ADDRESS_MIRROR and TEXTURE_ADDRESS_CLAMP. Takes the absolute value of the texture coordinate (thus, mirroring around 0), and then clamps to the maximum value.
    + Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_MIRROR_ONCE/D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE. OpenGL counterpart: GL_MIRROR_CLAMP_TO_EDGE.

    +
    Note
    GL_MIRROR_CLAMP_TO_EDGE is only available in OpenGL4.4+, and is not available until at least OpenGLES3.1
    +
    TEXTURE_ADDRESS_NUM_MODES 

    Helper value that stores the total number of texture address modes in the enumeration.

    +
    + +
    +
    + +

    ◆ TEXTURE_FORMAT

    + +
    +
    + + + + +
    enum Diligent::TEXTURE_FORMAT : Int32
    +
    + +

    Texture formats.

    +

    This enumeration describes available texture formats and generally mirrors DXGI_FORMAT enumeration. The table below provides detailed information on each format. Most of the formats are widely supported by all modern APIs (DX10+, OpenGL3.3+ and OpenGLES3.0+). Specific requirements are additionally indicated.

    See also
    DXGI_FORMAT enumeration on MSDN, OpenGL Texture Formats
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Enumerator
    TEX_FORMAT_UNKNOWN 

    Unknown format.

    +
    TEX_FORMAT_RGBA32_TYPELESS 

    Four-component 128-bit typeless format with 32-bit channels.
    + D3D counterpart: DXGI_FORMAT_R32G32B32A32_TYPELESS. OpenGL does not have direct counterpart, GL_RGBA32F is used.

    +
    TEX_FORMAT_RGBA32_FLOAT 

    Four-component 128-bit floating-point format with 32-bit channels.
    + D3D counterpart: DXGI_FORMAT_R32G32B32A32_FLOAT. OpenGL counterpart: GL_RGBA32F.

    +
    TEX_FORMAT_RGBA32_UINT 

    Four-component 128-bit unsigned-integer format with 32-bit channels.
    + D3D counterpart: DXGI_FORMAT_R32G32B32A32_UINT. OpenGL counterpart: GL_RGBA32UI.

    +
    TEX_FORMAT_RGBA32_SINT 

    Four-component 128-bit signed-integer format with 32-bit channels.
    + D3D counterpart: DXGI_FORMAT_R32G32B32A32_SINT. OpenGL counterpart: GL_RGBA32I.

    +
    TEX_FORMAT_RGB32_TYPELESS 

    Three-component 96-bit typeless format with 32-bit channels.
    + D3D counterpart: DXGI_FORMAT_R32G32B32_TYPELESS. OpenGL does not have direct counterpart, GL_RGB32F is used.

    +
    Warning
    This format has weak hardware support and is not recommended
    +
    TEX_FORMAT_RGB32_FLOAT 

    Three-component 96-bit floating-point format with 32-bit channels.
    + D3D counterpart: DXGI_FORMAT_R32G32B32_FLOAT. OpenGL counterpart: GL_RGB32F.

    +
    Warning
    This format has weak hardware support and is not recommended
    +
    TEX_FORMAT_RGB32_UINT 

    Three-component 96-bit unsigned-integer format with 32-bit channels.
    + D3D counterpart: DXGI_FORMAT_R32G32B32_UINT. OpenGL counterpart: GL_RGB32UI.

    +
    Warning
    This format has weak hardware support and is not recommended
    +
    TEX_FORMAT_RGB32_SINT 

    Three-component 96-bit signed-integer format with 32-bit channels.
    + D3D counterpart: DXGI_FORMAT_R32G32B32_SINT. OpenGL counterpart: GL_RGB32I.

    +
    Warning
    This format has weak hardware support and is not recommended
    +
    TEX_FORMAT_RGBA16_TYPELESS 

    Four-component 64-bit typeless format with 16-bit channels.
    + D3D counterpart: DXGI_FORMAT_R16G16B16A16_TYPELESS. OpenGL does not have direct counterpart, GL_RGBA16F is used.

    +
    TEX_FORMAT_RGBA16_FLOAT 

    Four-component 64-bit half-precision floating-point format with 16-bit channels.
    + D3D counterpart: DXGI_FORMAT_R16G16B16A16_FLOAT. OpenGL counterpart: GL_RGBA16F.

    +
    TEX_FORMAT_RGBA16_UNORM 

    Four-component 64-bit unsigned-normalized-integer format with 16-bit channels.
    + D3D counterpart: DXGI_FORMAT_R16G16B16A16_UNORM. OpenGL counterpart: GL_RGBA16.
    + OpenGLES: GL_EXT_texture_norm16 extension is required.

    +
    TEX_FORMAT_RGBA16_UINT 

    Four-component 64-bit unsigned-integer format with 16-bit channels.
    + D3D counterpart: DXGI_FORMAT_R16G16B16A16_UINT. OpenGL counterpart: GL_RGBA16UI.

    +
    TEX_FORMAT_RGBA16_SNORM 

    Four-component 64-bit signed-normalized-integer format with 16-bit channels.
    + D3D counterpart: DXGI_FORMAT_R16G16B16A16_SNORM. OpenGL counterpart: GL_RGBA16_SNORM.
    + OpenGLES: GL_EXT_texture_norm16 extension is required.

    +
    TEX_FORMAT_RGBA16_SINT 

    Four-component 64-bit signed-integer format with 16-bit channels.
    + D3D counterpart: DXGI_FORMAT_R16G16B16A16_SINT. OpenGL counterpart: GL_RGBA16I.

    +
    TEX_FORMAT_RG32_TYPELESS 

    Two-component 64-bit typeless format with 32-bit channels.
    + D3D counterpart: DXGI_FORMAT_R32G32_TYPELESS. OpenGL does not have direct counterpart, GL_RG32F is used.

    +
    TEX_FORMAT_RG32_FLOAT 

    Two-component 64-bit floating-point format with 32-bit channels.
    + D3D counterpart: DXGI_FORMAT_R32G32_FLOAT. OpenGL counterpart: GL_RG32F.

    +
    TEX_FORMAT_RG32_UINT 

    Two-component 64-bit unsigned-integer format with 32-bit channels.
    + D3D counterpart: DXGI_FORMAT_R32G32_UINT. OpenGL counterpart: GL_RG32UI.

    +
    TEX_FORMAT_RG32_SINT 

    Two-component 64-bit signed-integer format with 32-bit channels.
    + D3D counterpart: DXGI_FORMAT_R32G32_SINT. OpenGL counterpart: GL_RG32I.

    +
    TEX_FORMAT_R32G8X24_TYPELESS 

    Two-component 64-bit typeless format with 32-bits for R channel and 8 bits for G channel.
    + D3D counterpart: DXGI_FORMAT_R32G8X24_TYPELESS. OpenGL does not have direct counterpart, GL_DEPTH32F_STENCIL8 is used.

    +
    TEX_FORMAT_D32_FLOAT_S8X24_UINT 

    Two-component 64-bit format with 32-bit floating-point depth channel and 8-bit stencil channel.
    + D3D counterpart: DXGI_FORMAT_D32_FLOAT_S8X24_UINT. OpenGL counterpart: GL_DEPTH32F_STENCIL8.

    +
    TEX_FORMAT_R32_FLOAT_X8X24_TYPELESS 

    Two-component 64-bit format with 32-bit floating-point R channel and 8+24-bits of typeless data.
    + D3D counterpart: DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS. OpenGL does not have direct counterpart, GL_DEPTH32F_STENCIL8 is used.

    +
    TEX_FORMAT_X32_TYPELESS_G8X24_UINT 

    Two-component 64-bit format with 32-bit typeless data and 8-bit G channel.
    + D3D counterpart: DXGI_FORMAT_X32_TYPELESS_G8X24_UINT.

    +
    Warning
    This format is currently not implemented in OpenGL version
    +
    TEX_FORMAT_RGB10A2_TYPELESS 

    Four-component 32-bit typeless format with 10 bits for RGB and 2 bits for alpha channel.
    + D3D counterpart: DXGI_FORMAT_R10G10B10A2_TYPELESS. OpenGL does not have direct counterpart, GL_RGB10_A2 is used.

    +
    TEX_FORMAT_RGB10A2_UNORM 

    Four-component 32-bit unsigned-normalized-integer format with 10 bits for each color and 2 bits for alpha channel.
    + D3D counterpart: DXGI_FORMAT_R10G10B10A2_UNORM. OpenGL counterpart: GL_RGB10_A2.

    +
    TEX_FORMAT_RGB10A2_UINT 

    Four-component 32-bit unsigned-integer format with 10 bits for each color and 2 bits for alpha channel.
    + D3D counterpart: DXGI_FORMAT_R10G10B10A2_UINT. OpenGL counterpart: GL_RGB10_A2UI.

    +
    TEX_FORMAT_R11G11B10_FLOAT 

    Three-component 32-bit format encoding three partial precision channels using 11 bits for red and green and 10 bits for blue channel.
    + D3D counterpart: DXGI_FORMAT_R11G11B10_FLOAT. OpenGL counterpart: GL_R11F_G11F_B10F.

    +
    TEX_FORMAT_RGBA8_TYPELESS 

    Four-component 32-bit typeless format with 8-bit channels.
    + D3D counterpart: DXGI_FORMAT_R8G8B8A8_TYPELESS. OpenGL does not have direct counterpart, GL_RGBA8 is used.

    +
    TEX_FORMAT_RGBA8_UNORM 

    Four-component 32-bit unsigned-normalized-integer format with 8-bit channels.
    + D3D counterpart: DXGI_FORMAT_R8G8B8A8_UNORM. OpenGL counterpart: GL_RGBA8.

    +
    TEX_FORMAT_RGBA8_UNORM_SRGB 

    Four-component 32-bit unsigned-normalized-integer sRGB format with 8-bit channels.
    + D3D counterpart: DXGI_FORMAT_R8G8B8A8_UNORM_SRGB. OpenGL counterpart: GL_SRGB8_ALPHA8.

    +
    TEX_FORMAT_RGBA8_UINT 

    Four-component 32-bit unsigned-integer format with 8-bit channels.
    + D3D counterpart: DXGI_FORMAT_R8G8B8A8_UINT. OpenGL counterpart: GL_RGBA8UI.

    +
    TEX_FORMAT_RGBA8_SNORM 

    Four-component 32-bit signed-normalized-integer format with 8-bit channels.
    + D3D counterpart: DXGI_FORMAT_R8G8B8A8_SNORM. OpenGL counterpart: GL_RGBA8_SNORM.

    +
    TEX_FORMAT_RGBA8_SINT 

    Four-component 32-bit signed-integer format with 8-bit channels.
    + D3D counterpart: DXGI_FORMAT_R8G8B8A8_SINT. OpenGL counterpart: GL_RGBA8I.

    +
    TEX_FORMAT_RG16_TYPELESS 

    Two-component 32-bit typeless format with 16-bit channels.
    + D3D counterpart: DXGI_FORMAT_R16G16_TYPELESS. OpenGL does not have direct counterpart, GL_RG16F is used.

    +
    TEX_FORMAT_RG16_FLOAT 

    Two-component 32-bit half-precision floating-point format with 16-bit channels.
    + D3D counterpart: DXGI_FORMAT_R16G16_FLOAT. OpenGL counterpart: GL_RG16F.

    +
    TEX_FORMAT_RG16_UNORM 

    Two-component 32-bit unsigned-normalized-integer format with 16-bit channels.
    + D3D counterpart: DXGI_FORMAT_R16G16_UNORM. OpenGL counterpart: GL_RG16.
    + OpenGLES: GL_EXT_texture_norm16 extension is required.

    +
    TEX_FORMAT_RG16_UINT 

    Two-component 32-bit unsigned-integer format with 16-bit channels.
    + D3D counterpart: DXGI_FORMAT_R16G16_UINT. OpenGL counterpart: GL_RG16UI.

    +
    TEX_FORMAT_RG16_SNORM 

    Two-component 32-bit signed-normalized-integer format with 16-bit channels.
    + D3D counterpart: DXGI_FORMAT_R16G16_SNORM. OpenGL counterpart: GL_RG16_SNORM.
    + OpenGLES: GL_EXT_texture_norm16 extension is required.

    +
    TEX_FORMAT_RG16_SINT 

    Two-component 32-bit signed-integer format with 16-bit channels.
    + D3D counterpart: DXGI_FORMAT_R16G16_SINT. OpenGL counterpart: GL_RG16I.

    +
    TEX_FORMAT_R32_TYPELESS 

    Single-component 32-bit typeless format.
    + D3D counterpart: DXGI_FORMAT_R32_TYPELESS. OpenGL does not have direct counterpart, GL_R32F is used.

    +
    TEX_FORMAT_D32_FLOAT 

    Single-component 32-bit floating-point depth format.
    + D3D counterpart: DXGI_FORMAT_D32_FLOAT. OpenGL counterpart: GL_DEPTH_COMPONENT32F.

    +
    TEX_FORMAT_R32_FLOAT 

    Single-component 32-bit floating-point format.
    + D3D counterpart: DXGI_FORMAT_R32_FLOAT. OpenGL counterpart: GL_R32F.

    +
    TEX_FORMAT_R32_UINT 

    Single-component 32-bit unsigned-integer format.
    + D3D counterpart: DXGI_FORMAT_R32_UINT. OpenGL counterpart: GL_R32UI.

    +
    TEX_FORMAT_R32_SINT 

    Single-component 32-bit signed-integer format.
    + D3D counterpart: DXGI_FORMAT_R32_SINT. OpenGL counterpart: GL_R32I.

    +
    TEX_FORMAT_R24G8_TYPELESS 

    Two-component 32-bit typeless format with 24 bits for R and 8 bits for G channel.
    + D3D counterpart: DXGI_FORMAT_R24G8_TYPELESS. OpenGL does not have direct counterpart, GL_DEPTH24_STENCIL8 is used.

    +
    TEX_FORMAT_D24_UNORM_S8_UINT 

    Two-component 32-bit format with 24 bits for unsigned-normalized-integer depth and 8 bits for stencil.
    + D3D counterpart: DXGI_FORMAT_D24_UNORM_S8_UINT. OpenGL counterpart: GL_DEPTH24_STENCIL8.

    +
    TEX_FORMAT_R24_UNORM_X8_TYPELESS 

    Two-component 32-bit format with 24 bits for unsigned-normalized-integer data and 8 bits of unreferenced data.
    + D3D counterpart: DXGI_FORMAT_R24_UNORM_X8_TYPELESS. OpenGL does not have direct counterpart, GL_DEPTH24_STENCIL8 is used.

    +
    TEX_FORMAT_X24_TYPELESS_G8_UINT 

    Two-component 32-bit format with 24 bits of unreferenced data and 8 bits of unsigned-integer data.
    + D3D counterpart: DXGI_FORMAT_X24_TYPELESS_G8_UINT.

    +
    Warning
    This format is currently not implemented in OpenGL version
    +
    TEX_FORMAT_RG8_TYPELESS 

    Two-component 16-bit typeless format with 8-bit channels.
    + D3D counterpart: DXGI_FORMAT_R8G8_TYPELESS. OpenGL does not have direct counterpart, GL_RG8 is used.

    +
    TEX_FORMAT_RG8_UNORM 

    Two-component 16-bit unsigned-normalized-integer format with 8-bit channels.
    + D3D counterpart: DXGI_FORMAT_R8G8_UNORM. OpenGL counterpart: GL_RG8.

    +
    TEX_FORMAT_RG8_UINT 

    Two-component 16-bit unsigned-integer format with 8-bit channels.
    + D3D counterpart: DXGI_FORMAT_R8G8_UINT. OpenGL counterpart: GL_RG8UI.

    +
    TEX_FORMAT_RG8_SNORM 

    Two-component 16-bit signed-normalized-integer format with 8-bit channels.
    + D3D counterpart: DXGI_FORMAT_R8G8_SNORM. OpenGL counterpart: GL_RG8_SNORM.

    +
    TEX_FORMAT_RG8_SINT 

    Two-component 16-bit signed-integer format with 8-bit channels.
    + D3D counterpart: DXGI_FORMAT_R8G8_SINT. OpenGL counterpart: GL_RG8I.

    +
    TEX_FORMAT_R16_TYPELESS 

    Single-component 16-bit typeless format.
    + D3D counterpart: DXGI_FORMAT_R16_TYPELESS. OpenGL does not have direct counterpart, GL_R16F is used.

    +
    TEX_FORMAT_R16_FLOAT 

    Single-component 16-bit half-precisoin floating-point format.
    + D3D counterpart: DXGI_FORMAT_R16_FLOAT. OpenGL counterpart: GL_R16F.

    +
    TEX_FORMAT_D16_UNORM 

    Single-component 16-bit unsigned-normalized-integer depth format.
    + D3D counterpart: DXGI_FORMAT_D16_UNORM. OpenGL counterpart: GL_DEPTH_COMPONENT16.

    +
    TEX_FORMAT_R16_UNORM 

    Single-component 16-bit unsigned-normalized-integer format.
    + D3D counterpart: DXGI_FORMAT_R16_UNORM. OpenGL counterpart: GL_R16.

    +

    OpenGLES: GL_EXT_texture_norm16 extension is required.

    +
    TEX_FORMAT_R16_UINT 

    Single-component 16-bit unsigned-integer format.
    + D3D counterpart: DXGI_FORMAT_R16_UINT. OpenGL counterpart: GL_R16UI.

    +
    TEX_FORMAT_R16_SNORM 

    Single-component 16-bit signed-normalized-integer format.
    + D3D counterpart: DXGI_FORMAT_R16_SNORM. OpenGL counterpart: GL_R16_SNORM.
    + OpenGLES: GL_EXT_texture_norm16 extension is required.

    +
    TEX_FORMAT_R16_SINT 

    Single-component 16-bit signed-integer format.
    + D3D counterpart: DXGI_FORMAT_R16_SINT. OpenGL counterpart: GL_R16I.

    +
    TEX_FORMAT_R8_TYPELESS 

    Single-component 8-bit typeless format.
    + D3D counterpart: DXGI_FORMAT_R8_TYPELESS. OpenGL does not have direct counterpart, GL_R8 is used.

    +
    TEX_FORMAT_R8_UNORM 

    Single-component 8-bit unsigned-normalized-integer format.
    + D3D counterpart: DXGI_FORMAT_R8_UNORM. OpenGL counterpart: GL_R8.

    +
    TEX_FORMAT_R8_UINT 

    Single-component 8-bit unsigned-integer format.
    + D3D counterpart: DXGI_FORMAT_R8_UINT. OpenGL counterpart: GL_R8UI.

    +
    TEX_FORMAT_R8_SNORM 

    Single-component 8-bit signed-normalized-integer format.
    + D3D counterpart: DXGI_FORMAT_R8_SNORM. OpenGL counterpart: GL_R8_SNORM.

    +
    TEX_FORMAT_R8_SINT 

    Single-component 8-bit signed-integer format.
    + D3D counterpart: DXGI_FORMAT_R8_SINT. OpenGL counterpart: GL_R8I.

    +
    TEX_FORMAT_A8_UNORM 

    Single-component 8-bit unsigned-normalized-integer format for alpha only.
    + D3D counterpart: DXGI_FORMAT_A8_UNORM.

    +
    Warning
    This format is not availanle in OpenGL
    +
    TEX_FORMAT_R1_UNORM 

    Single-component 1-bit format.
    + D3D counterpart: DXGI_FORMAT_R1_UNORM.

    +
    Warning
    This format is not availanle in OpenGL
    +
    TEX_FORMAT_RGB9E5_SHAREDEXP 

    Three partial-precision floating pointer numbers sharing single exponent encoded into a 32-bit value.
    + D3D counterpart: DXGI_FORMAT_R9G9B9E5_SHAREDEXP. OpenGL counterpart: GL_RGB9_E5.

    +
    TEX_FORMAT_RG8_B8G8_UNORM 

    Four-component unsigned-normalized integer format analogous to UYVY encoding.
    + D3D counterpart: DXGI_FORMAT_R8G8_B8G8_UNORM.

    +
    Warning
    This format is not availanle in OpenGL
    +
    TEX_FORMAT_G8R8_G8B8_UNORM 

    Four-component unsigned-normalized integer format analogous to YUY2 encoding.
    + D3D counterpart: DXGI_FORMAT_G8R8_G8B8_UNORM.

    +
    Warning
    This format is not availanle in OpenGL
    +
    TEX_FORMAT_BC1_TYPELESS 

    Four-component typeless block-compression format with 1:8 compression ratio.
    + D3D counterpart: DXGI_FORMAT_BC1_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RGB_S3TC_DXT1_EXT is used.
    + OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required.

    +
    See also
    BC1 on MSDN , DXT1 on OpenGL.org
    +
    TEX_FORMAT_BC1_UNORM 

    Four-component unsigned-normalized-integer block-compression format with 5 bits for R, 6 bits for G, 5 bits for B, and 0 or 1 bit for A channel. The pixel data is encoded using 8 bytes per 4x4 block (4 bits per pixel) providing 1:8 compression ratio against RGBA8 format.
    + D3D counterpart: DXGI_FORMAT_BC1_UNORM. OpenGL counterpart: GL_COMPRESSED_RGB_S3TC_DXT1_EXT.
    + OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required.

    +
    See also
    BC1 on MSDN , DXT1 on OpenGL.org
    +
    TEX_FORMAT_BC1_UNORM_SRGB 

    Four-component unsigned-normalized-integer block-compression sRGB format with 5 bits for R, 6 bits for G, 5 bits for B, and 0 or 1 bit for A channel.
    + The pixel data is encoded using 8 bytes per 4x4 block (4 bits per pixel) providing 1:8 compression ratio against RGBA8 format.
    + D3D counterpart: DXGI_FORMAT_BC1_UNORM_SRGB. OpenGL counterpart: GL_COMPRESSED_SRGB_S3TC_DXT1_EXT.
    + OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required.

    +
    See also
    BC1 on MSDN , DXT1 on OpenGL.org
    +
    TEX_FORMAT_BC2_TYPELESS 

    Four component typeless block-compression format with 1:4 compression ratio.
    + D3D counterpart: DXGI_FORMAT_BC2_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RGBA_S3TC_DXT3_EXT is used.
    +

    +

    OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required.

    +
    See also
    BC2 on MSDN , DXT3 on OpenGL.org
    +
    TEX_FORMAT_BC2_UNORM 

    Four-component unsigned-normalized-integer block-compression format with 5 bits for R, 6 bits for G, 5 bits for B, and 4 bits for low-coherent separate A channel. The pixel data is encoded using 16 bytes per 4x4 block (8 bits per pixel) providing 1:4 compression ratio against RGBA8 format.
    + D3D counterpart: DXGI_FORMAT_BC2_UNORM. OpenGL counterpart: GL_COMPRESSED_RGBA_S3TC_DXT3_EXT.
    + OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required.

    +
    See also
    BC2 on MSDN , DXT3 on OpenGL.org
    +
    TEX_FORMAT_BC2_UNORM_SRGB 

    Four-component signed-normalized-integer block-compression sRGB format with 5 bits for R, 6 bits for G, 5 bits for B, and 4 bits for low-coherent separate A channel. The pixel data is encoded using 16 bytes per 4x4 block (8 bits per pixel) providing 1:4 compression ratio against RGBA8 format.
    + D3D counterpart: DXGI_FORMAT_BC2_UNORM_SRGB. OpenGL counterpart: GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT.
    + OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required.

    +
    See also
    BC2 on MSDN , DXT3 on OpenGL.org
    +
    TEX_FORMAT_BC3_TYPELESS 

    Four-component typeless block-compression format with 1:4 compression ratio.
    + D3D counterpart: DXGI_FORMAT_BC3_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT is used.
    + OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required.

    +
    See also
    BC3 on MSDN , DXT5 on OpenGL.org
    +
    TEX_FORMAT_BC3_UNORM 

    Four-component unsigned-normalized-integer block-compression format with 5 bits for R, 6 bits for G, 5 bits for B, and 8 bits for highly-coherent A channel. The pixel data is encoded using 16 bytes per 4x4 block (8 bits per pixel) providing 1:4 compression ratio against RGBA8 format.
    + D3D counterpart: DXGI_FORMAT_BC3_UNORM. OpenGL counterpart: GL_COMPRESSED_RGBA_S3TC_DXT5_EXT.
    + OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required.

    +
    See also
    BC3 on MSDN , DXT5 on OpenGL.org
    +
    TEX_FORMAT_BC3_UNORM_SRGB 

    Four-component unsigned-normalized-integer block-compression sRGB format with 5 bits for R, 6 bits for G, 5 bits for B, and 8 bits for highly-coherent A channel. The pixel data is encoded using 16 bytes per 4x4 block (8 bits per pixel) providing 1:4 compression ratio against RGBA8 format.
    + D3D counterpart: DXGI_FORMAT_BC3_UNORM_SRGB. OpenGL counterpart: GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT.
    + OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required.

    +
    See also
    BC3 on MSDN , DXT5 on OpenGL.org
    +
    TEX_FORMAT_BC4_TYPELESS 

    One-component typeless block-compression format with 1:2 compression ratio.
    + D3D counterpart: DXGI_FORMAT_BC4_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RED_RGTC1 is used.
    + OpenGL & OpenGLES: GL_ARB_texture_compression_rgtc extension is required.

    +
    See also
    BC4 on MSDN , Compressed formats on OpenGL.org
    +
    TEX_FORMAT_BC4_UNORM 

    One-component unsigned-normalized-integer block-compression format with 8 bits for R channel. The pixel data is encoded using 8 bytes per 4x4 block (4 bits per pixel) providing 1:2 compression ratio against R8 format.
    + D3D counterpart: DXGI_FORMAT_BC4_UNORM. OpenGL counterpart: GL_COMPRESSED_RED_RGTC1.
    + OpenGL & OpenGLES: GL_ARB_texture_compression_rgtc extension is required.

    +
    See also
    BC4 on MSDN , Compressed formats on OpenGL.org
    +
    TEX_FORMAT_BC4_SNORM 

    One-component signed-normalized-integer block-compression format with 8 bits for R channel. The pixel data is encoded using 8 bytes per 4x4 block (4 bits per pixel) providing 1:2 compression ratio against R8 format.
    + D3D counterpart: DXGI_FORMAT_BC4_SNORM. OpenGL counterpart: GL_COMPRESSED_SIGNED_RED_RGTC1.
    + OpenGL & OpenGLES: GL_ARB_texture_compression_rgtc extension is required.

    +
    See also
    BC4 on MSDN , Compressed formats on OpenGL.org
    +
    TEX_FORMAT_BC5_TYPELESS 

    Two-component typeless block-compression format with 1:2 compression ratio.
    + D3D counterpart: DXGI_FORMAT_BC5_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RG_RGTC2 is used.
    + OpenGL & OpenGLES: GL_ARB_texture_compression_rgtc extension is required.

    +
    See also
    BC5 on MSDN , Compressed formats on OpenGL.org
    +
    TEX_FORMAT_BC5_UNORM 

    Two-component unsigned-normalized-integer block-compression format with 8 bits for R and 8 bits for G channel. The pixel data is encoded using 16 bytes per 4x4 block (8 bits per pixel) providing 1:2 compression ratio against RG8 format.
    + D3D counterpart: DXGI_FORMAT_BC5_UNORM. OpenGL counterpart: GL_COMPRESSED_RG_RGTC2.
    + OpenGL & OpenGLES: GL_ARB_texture_compression_rgtc extension is required.

    +
    See also
    BC5 on MSDN , Compressed formats on OpenGL.org
    +
    TEX_FORMAT_BC5_SNORM 

    Two-component signed-normalized-integer block-compression format with 8 bits for R and 8 bits for G channel. The pixel data is encoded using 16 bytes per 4x4 block (8 bits per pixel) providing 1:2 compression ratio against RG8 format.
    + D3D counterpart: DXGI_FORMAT_BC5_SNORM. OpenGL counterpart: GL_COMPRESSED_SIGNED_RG_RGTC2.
    + OpenGL & OpenGLES: GL_ARB_texture_compression_rgtc extension is required.

    +
    See also
    BC5 on MSDN , Compressed formats on OpenGL.org
    +
    TEX_FORMAT_B5G6R5_UNORM 

    Three-component 16-bit unsigned-normalized-integer format with 5 bits for blue, 6 bits for green, and 5 bits for red channel.
    + D3D counterpart: DXGI_FORMAT_B5G6R5_UNORM.

    +
    Warning
    This format is not available until D3D11.1 and Windows 8. It is also not available in OpenGL
    +
    TEX_FORMAT_B5G5R5A1_UNORM 

    Four-component 16-bit unsigned-normalized-integer format with 5 bits for each color channel and 1-bit alpha.
    + D3D counterpart: DXGI_FORMAT_B5G5R5A1_UNORM.

    +
    Warning
    This format is not available until D3D11.1 and Windows 8. It is also not available in OpenGL
    +
    TEX_FORMAT_BGRA8_UNORM 

    Four-component 32-bit unsigned-normalized-integer format with 8 bits for each channel.
    + D3D counterpart: DXGI_FORMAT_B8G8R8A8_UNORM.

    +
    Warning
    This format is not available in OpenGL
    +
    TEX_FORMAT_BGRX8_UNORM 

    Four-component 32-bit unsigned-normalized-integer format with 8 bits for each color channel and 8 bits unused.
    + D3D counterpart: DXGI_FORMAT_B8G8R8X8_UNORM.

    +
    Warning
    This format is not available in OpenGL
    +
    TEX_FORMAT_R10G10B10_XR_BIAS_A2_UNORM 

    Four-component 32-bit 2.8-biased fixed-point format with 10 bits for each color channel and 2-bit alpha.
    + D3D counterpart: DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM.

    +
    Warning
    This format is not available in OpenGL
    +
    TEX_FORMAT_BGRA8_TYPELESS 

    Four-component 32-bit typeless format with 8 bits for each channel.
    + D3D counterpart: DXGI_FORMAT_B8G8R8A8_TYPELESS.

    +
    Warning
    This format is not available in OpenGL
    +
    TEX_FORMAT_BGRA8_UNORM_SRGB 

    Four-component 32-bit unsigned-normalized sRGB format with 8 bits for each channel.
    + D3D counterpart: DXGI_FORMAT_B8G8R8A8_UNORM_SRGB.

    +
    Warning
    This format is not available in OpenGL.
    +
    TEX_FORMAT_BGRX8_TYPELESS 

    Four-component 32-bit typeless format that with 8 bits for each color channel, and 8 bits are unused.
    + D3D counterpart: DXGI_FORMAT_B8G8R8X8_TYPELESS.

    +
    Warning
    This format is not available in OpenGL.
    +
    TEX_FORMAT_BGRX8_UNORM_SRGB 

    Four-component 32-bit unsigned-normalized sRGB format with 8 bits for each color channel, and 8 bits are unused.
    + D3D counterpart: DXGI_FORMAT_B8G8R8X8_UNORM_SRGB.

    +
    Warning
    This format is not available in OpenGL.
    +
    TEX_FORMAT_BC6H_TYPELESS 

    Three-component typeless block-compression format.
    + D3D counterpart: DXGI_FORMAT_BC6H_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT is used.
    + OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1.

    +
    See also
    BC6H on MSDN , BPTC Texture Compression on OpenGL.org
    +
    TEX_FORMAT_BC6H_UF16 

    Three-component unsigned half-precision floating-point format with 16 bits for each channel.
    + D3D counterpart: DXGI_FORMAT_BC6H_UF16. OpenGL counterpart: GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT.
    + OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1.

    +
    See also
    BC6H on MSDN , BPTC Texture Compression on OpenGL.org
    +
    TEX_FORMAT_BC6H_SF16 

    Three-channel signed half-precision floating-point format with 16 bits per each channel.
    + D3D counterpart: DXGI_FORMAT_BC6H_SF16. OpenGL counterpart: GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT.
    + OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1.

    +
    See also
    BC6H on MSDN , BPTC Texture Compression on OpenGL.org
    +
    TEX_FORMAT_BC7_TYPELESS 

    Three-component typeless block-compression format.
    + D3D counterpart: DXGI_FORMAT_BC7_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RGBA_BPTC_UNORM is used.
    + OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1.

    +
    See also
    BC7 on MSDN , BPTC Texture Compression on OpenGL.org
    +
    TEX_FORMAT_BC7_UNORM 

    Three-component block-compression unsigned-normalized-integer format with 4 to 7 bits per color channel and 0 to 8 bits of alpha.
    + D3D counterpart: DXGI_FORMAT_BC7_UNORM. OpenGL counterpart: GL_COMPRESSED_RGBA_BPTC_UNORM.
    + OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1.

    +
    See also
    BC7 on MSDN , BPTC Texture Compression on OpenGL.org
    +
    TEX_FORMAT_BC7_UNORM_SRGB 

    Three-component block-compression unsigned-normalized-integer sRGB format with 4 to 7 bits per color channel and 0 to 8 bits of alpha.
    + D3D counterpart: DXGI_FORMAT_BC7_UNORM_SRGB. OpenGL counterpart: GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM.
    + OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1.

    +
    See also
    BC7 on MSDN , BPTC Texture Compression on OpenGL.org
    +
    TEX_FORMAT_NUM_FORMATS 

    Helper member containing the total number of texture formats in the enumeration.

    +
    + +
    +
    + +

    ◆ TEXTURE_VIEW_TYPE

    + +
    +
    + + + + +
    enum Diligent::TEXTURE_VIEW_TYPE : Int32
    +
    + +

    Texture view type.

    +

    This enumeration describes allowed view types for a texture view. It is used by TextureViewDesc structure.

    + + + + + + + +
    Enumerator
    TEXTURE_VIEW_UNDEFINED 

    Undefined view type.

    +
    TEXTURE_VIEW_SHADER_RESOURCE 

    A texture view will define a shader resource view that will be used as the source for the shader read operations.

    +
    TEXTURE_VIEW_RENDER_TARGET 

    A texture view will define a render target view that will be used as the target for rendering operations.

    +
    TEXTURE_VIEW_DEPTH_STENCIL 

    A texture view will define a depth stencil view that will be used as the target for rendering operations.

    +
    TEXTURE_VIEW_UNORDERED_ACCESS 

    A texture view will define an unordered access view that will be used for unordered read/write operations from the shaders.

    +
    TEXTURE_VIEW_NUM_VIEWS 

    Helper value that stores that total number of texture views.

    +
    + +
    +
    + +

    ◆ UAV_ACCESS_FLAG

    + +
    +
    + + + + +
    enum Diligent::UAV_ACCESS_FLAG : Int32
    +
    + +

    Describes allowed unordered access view mode.

    + + + + + +
    Enumerator
    UAV_ACCESS_UNSPECIFIED 

    Access mode is unspecified.

    +
    UAV_ACCESS_FLAG_READ 

    Allow read operations on the UAV.

    +
    UAV_ACCESS_FLAG_WRITE 

    Allow write operations on the UAV.

    +
    UAV_ACCESS_FLAG_READ_WRITE 

    Allow read and write operations on the UAV.

    +
    + +
    +
    + +

    ◆ USAGE

    + +
    +
    + + + + +
    enum Diligent::USAGE : Int32
    +
    + +

    Resource usage.

    +

    This enumeration describes expected resource usage. It generally mirrors D3D11_USAGE enumeration. The enumeration is used by

    + + + + + +
    Enumerator
    USAGE_STATIC 

    A resource that can only be read by the GPU. It cannot be written by the GPU, and cannot be accessed at all by the CPU. This type of resource must be initialized when it is created, since it cannot be changed after creation.
    + D3D11 Counterpart: D3D11_USAGE_IMMUTABLE. OpenGL counterpart: GL_STATIC_DRAW.

    +
    USAGE_DEFAULT 

    A resource that requires read and write access by the GPU and can also be occasionally written by the CPU.
    + D3D11 Counterpart: D3D11_USAGE_DEFAULT. OpenGL counterpart: GL_DYNAMIC_DRAW.

    +
    USAGE_DYNAMIC 

    A resource that can be read by the GPU and written at least once per frame by the CPU.
    + D3D11 Counterpart: D3D11_USAGE_DYNAMIC. OpenGL counterpart: GL_STREAM_DRAW.

    +
    USAGE_CPU_ACCESSIBLE 

    A resource that facilitates transferring data from GPU to CPU.
    + D3D11 Counterpart: D3D11_USAGE_STAGING. OpenGL counterpart: GL_DYNAMIC_READ.

    +
    + +
    +
    + +

    ◆ VALUE_TYPE

    + +
    +
    + + + + +
    enum Diligent::VALUE_TYPE : Int32
    +
    + +

    Value type.

    +

    This enumeration describes value type. It is used by

      +
    • BufferDesc structure to describe value type of a formatted buffer
    • +
    • DrawAttribs structure to describe index type for an indexed draw call
    • +
    + + + + + + + + + + + +
    Enumerator
    VT_UNDEFINED 

    Undefined type.

    +
    VT_INT8 

    Signed 8-bit integer.

    +
    VT_INT16 

    Signed 16-bit integer.

    +
    VT_INT32 

    Signed 32-bit integer.

    +
    VT_UINT8 

    Unsigned 8-bit integer.

    +
    VT_UINT16 

    Unsigned 16-bit integer.

    +
    VT_UINT32 

    Unsigned 32-bit integer.

    +
    VT_FLOAT16 

    Half-precision 16-bit floating point.

    +
    VT_FLOAT32 

    Full-precision 32-bit floating point.

    +
    VT_NUM_TYPES 

    Helper value storing total number of types in the enumeration.

    +
    + +
    +
    +

    Function Documentation

    + +

    ◆ LoadGraphicsEngineD3D11()

    + +
    +
    + + + + + + + + +
    void Diligent::LoadGraphicsEngineD3D11 (GetEngineFactoryD3D11Type & GetFactoryFunc)
    +
    + +

    Loads Direct3D11-based engine implementation and exports factory functions.

    +
    Parameters
    + + +
    [out]GetFactoryFunc- Pointer to the function that returns factory for D3D11 engine implementation See EngineFactoryD3D11Impl.
    +
    +
    +
    Remarks
    Depending on the configuration and platform, the function loads different dll: + + + + + + +
    Platform\Configuration Debug Release ---------—
    x86 GraphicsEngineD3D11_32d.dll GraphicsEngineD3D11_32r.dll
    x64 GraphicsEngineD3D11_64d.dll GraphicsEngineD3D11_64r.dll
    +
    + +
    +
    + +

    ◆ LoadGraphicsEngineD3D12()

    + +
    +
    + + + + + + + + +
    void Diligent::LoadGraphicsEngineD3D12 (GetEngineFactoryD3D12Type & GetFactoryFunc)
    +
    + +

    Loads Direct3D12-based engine implementation and exports factory functions.

    +
    Parameters
    + + +
    [out]GetFactoryFunc- Pointer to the function that returns factory for D3D12 engine implementation. See EngineFactoryD3D12Impl.
    +
    +
    +
    Remarks
    Depending on the configuration and platform, the function loads different dll: + + + + + + +
    Platform\Configuration Debug Release ---------—
    x86 GraphicsEngineD3D12_32d.dll GraphicsEngineD3D12_32r.dll
    x64 GraphicsEngineD3D12_64d.dll GraphicsEngineD3D12_64r.dll
    +
    + +
    +
    + +

    ◆ LoadGraphicsEngineOpenGL()

    + +
    +
    + + + + + + + + +
    void Diligent::LoadGraphicsEngineOpenGL (GetEngineFactoryOpenGLType & GetFactoryFunc)
    +
    + +

    Loads OpenGL-based engine implementation and exports factory functions.

    +
    Parameters
    + + +
    [out]GetFactoryFunc- Pointer to the function that returns pointer to the factory for the OpenGL engine implementation See EngineFactoryOpenGLImpl::CreateDeviceAndSwapChainGL().
    +
    +
    +
    Remarks
    Depending on the configuration and platform, the function loads different dll: + + + + + + +
    Platform\Configuration Debug Release -------—
    Win32/x86 GraphicsEngineOpenGL_32d.dll GraphicsEngineOpenGL_32r.dll
    Win32/x64 GraphicsEngineOpenGL_64d.dll GraphicsEngineOpenGL_64r.dll
    +
    +

    To load the library on Android, it is necessary to call System.loadLibrary("GraphicsEngineOpenGL") from Java.

    + +
    +
    +
    + + + + + diff --git a/doc/html/namespacemembers.html b/doc/html/namespacemembers.html new file mode 100644 index 00000000..dcb24e2d --- /dev/null +++ b/doc/html/namespacemembers.html @@ -0,0 +1,238 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - b -

    +
    + + + + + diff --git a/doc/html/namespacemembers_c.html b/doc/html/namespacemembers_c.html new file mode 100644 index 00000000..2006ba2c --- /dev/null +++ b/doc/html/namespacemembers_c.html @@ -0,0 +1,208 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - c -

    +
    + + + + + diff --git a/doc/html/namespacemembers_d.html b/doc/html/namespacemembers_d.html new file mode 100644 index 00000000..5ca6bbfa --- /dev/null +++ b/doc/html/namespacemembers_d.html @@ -0,0 +1,82 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - d -

    +
    + + + + + diff --git a/doc/html/namespacemembers_e.html b/doc/html/namespacemembers_e.html new file mode 100644 index 00000000..b1f01143 --- /dev/null +++ b/doc/html/namespacemembers_e.html @@ -0,0 +1,82 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - e -

    +
    + + + + + diff --git a/doc/html/namespacemembers_enum.html b/doc/html/namespacemembers_enum.html new file mode 100644 index 00000000..c4a042eb --- /dev/null +++ b/doc/html/namespacemembers_enum.html @@ -0,0 +1,232 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - b -

    + + +

    - c -

    + + +

    - d -

    + + +

    - e -

    + + +

    - f -

    + + +

    - l -

    + + +

    - m -

    + + +

    - p -

    + + +

    - r -

    + + +

    - s -

    + + +

    - t -

    + + +

    - u -

    + + +

    - v -

    +
    + + + + + diff --git a/doc/html/namespacemembers_eval.html b/doc/html/namespacemembers_eval.html new file mode 100644 index 00000000..75305146 --- /dev/null +++ b/doc/html/namespacemembers_eval.html @@ -0,0 +1,220 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - b -

    +
    + + + + + diff --git a/doc/html/namespacemembers_eval_c.html b/doc/html/namespacemembers_eval_c.html new file mode 100644 index 00000000..1841c9af --- /dev/null +++ b/doc/html/namespacemembers_eval_c.html @@ -0,0 +1,187 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - c -

    +
    + + + + + diff --git a/doc/html/namespacemembers_eval_f.html b/doc/html/namespacemembers_eval_f.html new file mode 100644 index 00000000..23b1ffe6 --- /dev/null +++ b/doc/html/namespacemembers_eval_f.html @@ -0,0 +1,133 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - f -

    +
    + + + + + diff --git a/doc/html/namespacemembers_eval_l.html b/doc/html/namespacemembers_eval_l.html new file mode 100644 index 00000000..a362a4d8 --- /dev/null +++ b/doc/html/namespacemembers_eval_l.html @@ -0,0 +1,130 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - l -

    +
    + + + + + diff --git a/doc/html/namespacemembers_eval_m.html b/doc/html/namespacemembers_eval_m.html new file mode 100644 index 00000000..6de36101 --- /dev/null +++ b/doc/html/namespacemembers_eval_m.html @@ -0,0 +1,100 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - m -

    +
    + + + + + diff --git a/doc/html/namespacemembers_eval_p.html b/doc/html/namespacemembers_eval_p.html new file mode 100644 index 00000000..cdc76e67 --- /dev/null +++ b/doc/html/namespacemembers_eval_p.html @@ -0,0 +1,211 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - p -

      +
    • PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_LINE_LIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_NUM_TOPOLOGIES +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_POINT_LIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TRIANGLE_LIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TYPE_LINE +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TYPE_NUM_TYPES +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TYPE_PATCH +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TYPE_POINT +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_UNDEFINED +: Diligent +
    • +
    +
    + + + + + diff --git a/doc/html/namespacemembers_eval_r.html b/doc/html/namespacemembers_eval_r.html new file mode 100644 index 00000000..201af61f --- /dev/null +++ b/doc/html/namespacemembers_eval_r.html @@ -0,0 +1,109 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - r -

    +
    + + + + + diff --git a/doc/html/namespacemembers_eval_s.html b/doc/html/namespacemembers_eval_s.html new file mode 100644 index 00000000..3fc87b0c --- /dev/null +++ b/doc/html/namespacemembers_eval_s.html @@ -0,0 +1,154 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - s -

    +
    + + + + + diff --git a/doc/html/namespacemembers_eval_t.html b/doc/html/namespacemembers_eval_t.html new file mode 100644 index 00000000..44351648 --- /dev/null +++ b/doc/html/namespacemembers_eval_t.html @@ -0,0 +1,421 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - t -

    +
    + + + + + diff --git a/doc/html/namespacemembers_eval_u.html b/doc/html/namespacemembers_eval_u.html new file mode 100644 index 00000000..e7dce0ee --- /dev/null +++ b/doc/html/namespacemembers_eval_u.html @@ -0,0 +1,103 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - u -

    +
    + + + + + diff --git a/doc/html/namespacemembers_eval_v.html b/doc/html/namespacemembers_eval_v.html new file mode 100644 index 00000000..a4ce3178 --- /dev/null +++ b/doc/html/namespacemembers_eval_v.html @@ -0,0 +1,109 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - v -

    +
    + + + + + diff --git a/doc/html/namespacemembers_f.html b/doc/html/namespacemembers_f.html new file mode 100644 index 00000000..7e1c6642 --- /dev/null +++ b/doc/html/namespacemembers_f.html @@ -0,0 +1,139 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - f -

    +
    + + + + + diff --git a/doc/html/namespacemembers_func.html b/doc/html/namespacemembers_func.html new file mode 100644 index 00000000..e4c0ac71 --- /dev/null +++ b/doc/html/namespacemembers_func.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    + + + + + diff --git a/doc/html/namespacemembers_g.html b/doc/html/namespacemembers_g.html new file mode 100644 index 00000000..97d2440a --- /dev/null +++ b/doc/html/namespacemembers_g.html @@ -0,0 +1,82 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - g -

    +
    + + + + + diff --git a/doc/html/namespacemembers_i.html b/doc/html/namespacemembers_i.html new file mode 100644 index 00000000..a39574e7 --- /dev/null +++ b/doc/html/namespacemembers_i.html @@ -0,0 +1,97 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - i -

    +
    + + + + + diff --git a/doc/html/namespacemembers_l.html b/doc/html/namespacemembers_l.html new file mode 100644 index 00000000..d1e8cacb --- /dev/null +++ b/doc/html/namespacemembers_l.html @@ -0,0 +1,142 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - l -

    +
    + + + + + diff --git a/doc/html/namespacemembers_m.html b/doc/html/namespacemembers_m.html new file mode 100644 index 00000000..fbdfa20e --- /dev/null +++ b/doc/html/namespacemembers_m.html @@ -0,0 +1,115 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - m -

    +
    + + + + + diff --git a/doc/html/namespacemembers_p.html b/doc/html/namespacemembers_p.html new file mode 100644 index 00000000..509d543a --- /dev/null +++ b/doc/html/namespacemembers_p.html @@ -0,0 +1,217 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - p -

      +
    • PRIMITIVE_TOPOLOGY +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_LINE_LIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_NUM_TOPOLOGIES +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_POINT_LIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TRIANGLE_LIST +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TYPE +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TYPE_LINE +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TYPE_NUM_TYPES +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TYPE_PATCH +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TYPE_POINT +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED +: Diligent +
    • +
    • PRIMITIVE_TOPOLOGY_UNDEFINED +: Diligent +
    • +
    +
    + + + + + diff --git a/doc/html/namespacemembers_r.html b/doc/html/namespacemembers_r.html new file mode 100644 index 00000000..64e4d149 --- /dev/null +++ b/doc/html/namespacemembers_r.html @@ -0,0 +1,112 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - r -

    +
    + + + + + diff --git a/doc/html/namespacemembers_s.html b/doc/html/namespacemembers_s.html new file mode 100644 index 00000000..645abf28 --- /dev/null +++ b/doc/html/namespacemembers_s.html @@ -0,0 +1,172 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - s -

    +
    + + + + + diff --git a/doc/html/namespacemembers_t.html b/doc/html/namespacemembers_t.html new file mode 100644 index 00000000..647ae804 --- /dev/null +++ b/doc/html/namespacemembers_t.html @@ -0,0 +1,430 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - t -

    +
    + + + + + diff --git a/doc/html/namespacemembers_type.html b/doc/html/namespacemembers_type.html new file mode 100644 index 00000000..73fe23fe --- /dev/null +++ b/doc/html/namespacemembers_type.html @@ -0,0 +1,110 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    + + + + + diff --git a/doc/html/namespacemembers_u.html b/doc/html/namespacemembers_u.html new file mode 100644 index 00000000..c36f12c3 --- /dev/null +++ b/doc/html/namespacemembers_u.html @@ -0,0 +1,109 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - u -

    +
    + + + + + diff --git a/doc/html/namespacemembers_v.html b/doc/html/namespacemembers_v.html new file mode 100644 index 00000000..26cfa75d --- /dev/null +++ b/doc/html/namespacemembers_v.html @@ -0,0 +1,112 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - v -

    +
    + + + + + diff --git a/doc/html/namespacemembers_vars.html b/doc/html/namespacemembers_vars.html new file mode 100644 index 00000000..b058b5ef --- /dev/null +++ b/doc/html/namespacemembers_vars.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    + + + + + diff --git a/doc/html/namespaces.html b/doc/html/namespaces.html new file mode 100644 index 00000000..80b9da81 --- /dev/null +++ b/doc/html/namespaces.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: Namespace List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Namespace List
    +
    +
    +
    Here is a list of all documented namespaces with brief descriptions:
    + + +
     NDiligentNamespace for the OpenGL implementation of the graphics engine
    +
    +
    + + + + + diff --git a/doc/html/nav_f.png b/doc/html/nav_f.png new file mode 100644 index 00000000..72a58a52 Binary files /dev/null and b/doc/html/nav_f.png differ diff --git a/doc/html/nav_g.png b/doc/html/nav_g.png new file mode 100644 index 00000000..2093a237 Binary files /dev/null and b/doc/html/nav_g.png differ diff --git a/doc/html/nav_h.png b/doc/html/nav_h.png new file mode 100644 index 00000000..33389b10 Binary files /dev/null and b/doc/html/nav_h.png differ diff --git a/doc/html/open.png b/doc/html/open.png new file mode 100644 index 00000000..30f75c7e Binary files /dev/null and b/doc/html/open.png differ diff --git a/doc/html/pages.html b/doc/html/pages.html new file mode 100644 index 00000000..7c6b4509 --- /dev/null +++ b/doc/html/pages.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: Related Pages + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    +
    + + + + + diff --git a/doc/html/perf_monitor_8h_source.html b/doc/html/perf_monitor_8h_source.html new file mode 100644 index 00000000..20c77d27 --- /dev/null +++ b/doc/html/perf_monitor_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/ndk_helper/include/perfMonitor.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    perfMonitor.h
    +
    +
    +
    1 /*
    2  * Copyright 2013 The Android Open Source Project
    3  *
    4  * Licensed under the Apache License, Version 2.0 (the "License");
    5  * you may not use this file except in compliance with the License.
    6  * You may obtain a copy of the License at
    7  *
    8  * http://www.apache.org/licenses/LICENSE-2.0
    9  *
    10  * Unless required by applicable law or agreed to in writing, software
    11  * distributed under the License is distributed on an "AS IS" BASIS,
    12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  * See the License for the specific language governing permissions and
    14  * limitations under the License.
    15  */
    16 
    17 #ifndef PERFMONITOR_H_
    18 #define PERFMONITOR_H_
    19 
    20 #include <jni.h>
    21 #include <errno.h>
    22 #include <time.h>
    23 #include "JNIHelper.h"
    24 
    25 namespace ndk_helper {
    26 
    27 const int32_t kNumSamples = 100;
    28 
    29 /******************************************************************
    30  * Helper class for a performance monitoring and get current tick time
    31  */
    32 class PerfMonitor {
    33  private:
    34  float current_FPS_;
    35  time_t tv_last_sec_;
    36 
    37  double last_tick_;
    38  int32_t tickindex_;
    39  double ticksum_;
    40  double ticklist_[kNumSamples];
    41 
    42  double UpdateTick(double current_tick);
    43 
    44  public:
    45  PerfMonitor();
    46  virtual ~PerfMonitor();
    47 
    48  bool Update(float &fFPS);
    49 
    50  static double GetCurrentTime() {
    51  struct timeval time;
    52  gettimeofday(&time, NULL);
    53  double ret = time.tv_sec + time.tv_usec * 1.0 / 1000000.0;
    54  return ret;
    55  }
    56 };
    57 
    58 } // namespace ndkHelper
    59 #endif /* PERFMONITOR_H_ */
    Definition: gestureDetector.h:32
    +
    + + + + + diff --git a/doc/html/search/all_0.html b/doc/html/search/all_0.html new file mode 100644 index 00000000..5125b940 --- /dev/null +++ b/doc/html/search/all_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_0.js b/doc/html/search/all_0.js new file mode 100644 index 00000000..37f573c8 --- /dev/null +++ b/doc/html/search/all_0.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['accessflags',['AccessFlags',['../struct_diligent_1_1_texture_view_desc.html#a126d7ad8dceaa57150ed6f1cb3e1b7e7',1,'Diligent::TextureViewDesc']]], + ['add',['Add',['../class_diligent_1_1_state_objects_registry.html#a24b0050a49d3cb95c7da0540648f4d28',1,'Diligent::StateObjectsRegistry']]], + ['addresource',['AddResource',['../class_diligent_1_1_resource_mapping_impl.html#a5563645976cf8dfc1107a6d4a663459a',1,'Diligent::ResourceMappingImpl::AddResource()'],['../class_diligent_1_1_i_resource_mapping.html#a89e4adea2dde57c68564fee88f4f4bb9',1,'Diligent::IResourceMapping::AddResource()']]], + ['addresourcearray',['AddResourceArray',['../class_diligent_1_1_resource_mapping_impl.html#a00d7867a060a590fd24b637dcd0c1c86',1,'Diligent::ResourceMappingImpl::AddResourceArray()'],['../class_diligent_1_1_i_resource_mapping.html#af643b8dbc85ae5181d9daaab89bfe839',1,'Diligent::IResourceMapping::AddResourceArray()']]], + ['addressu',['AddressU',['../struct_diligent_1_1_sampler_desc.html#a47c2269a565a1260a2bb8f07fef57e24',1,'Diligent::SamplerDesc']]], + ['addressv',['AddressV',['../struct_diligent_1_1_sampler_desc.html#a751e2c38fde79fca035b90316f2b4f89',1,'Diligent::SamplerDesc']]], + ['addressw',['AddressW',['../struct_diligent_1_1_sampler_desc.html#af674beea5aed837b3f3423f81bef13a2',1,'Diligent::SamplerDesc']]], + ['allocate',['Allocate',['../class_diligent_1_1_fixed_block_memory_allocator.html#a97106c54ad140316e521eaa104550537',1,'Diligent::FixedBlockMemoryAllocator']]], + ['alphatocoverageenable',['AlphaToCoverageEnable',['../struct_diligent_1_1_blend_state_desc.html#aefb15b0d100654533607e1b12bc7397d',1,'Diligent::BlendStateDesc']]], + ['antialiasedlineenable',['AntialiasedLineEnable',['../struct_diligent_1_1_rasterizer_state_desc.html#a7bdd03035417c3acb242cd7ffc7f7d94',1,'Diligent::RasterizerStateDesc']]], + ['arraysize',['ArraySize',['../struct_diligent_1_1_texture_desc.html#a9f1c03e9ab8af4d281c389e722f71931',1,'Diligent::TextureDesc']]] +]; diff --git a/doc/html/search/all_1.html b/doc/html/search/all_1.html new file mode 100644 index 00000000..b8ff8711 --- /dev/null +++ b/doc/html/search/all_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_1.js b/doc/html/search/all_1.js new file mode 100644 index 00000000..bd549739 --- /dev/null +++ b/doc/html/search/all_1.js @@ -0,0 +1,107 @@ +var searchData= +[ + ['backface',['BackFace',['../struct_diligent_1_1_depth_stencil_state_desc.html#ab70d10ee856e265058df2777461aa4bb',1,'Diligent::DepthStencilStateDesc']]], + ['banisotropicfilteringsupported',['bAnisotropicFilteringSupported',['../struct_diligent_1_1_sampler_caps.html#af72690e36ea28653de40fb24c69cc128',1,'Diligent::SamplerCaps']]], + ['basevertex',['BaseVertex',['../struct_diligent_1_1_draw_attribs.html#a75b6db30ed31a382ebb8de5201001ca4',1,'Diligent::DrawAttribs']]], + ['basicfilestream',['BasicFileStream',['../class_diligent_1_1_basic_file_stream.html',1,'Diligent']]], + ['bbordersamplingmodesupported',['bBorderSamplingModeSupported',['../struct_diligent_1_1_sampler_caps.html#ae7e0572d6cf6ccb8404693cc76934125',1,'Diligent::SamplerCaps']]], + ['bcubemaparrayssupported',['bCubemapArraysSupported',['../struct_diligent_1_1_texture_caps.html#a81cb7047b115144874298d7554207dc1',1,'Diligent::TextureCaps']]], + ['bind_5fdepth_5fstencil',['BIND_DEPTH_STENCIL',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbcead7245b76139a33a218e237afc6748b08',1,'Diligent']]], + ['bind_5fflags',['BIND_FLAGS',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbce',1,'Diligent']]], + ['bind_5findex_5fbuffer',['BIND_INDEX_BUFFER',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbceab548348e977fcc0e815a888d156b5c03',1,'Diligent']]], + ['bind_5findirect_5fdraw_5fargs',['BIND_INDIRECT_DRAW_ARGS',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbcea059916f0a480fa57e6e417f8d0acf67f',1,'Diligent']]], + ['bind_5fnone',['BIND_NONE',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbcea50d6810939c69ef5dec2658ad58d724c',1,'Diligent']]], + ['bind_5frender_5ftarget',['BIND_RENDER_TARGET',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbcea4154c60d5487f7cded7fc1ef4a1bba89',1,'Diligent']]], + ['bind_5fshader_5fresource',['BIND_SHADER_RESOURCE',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbceaef09415507884d7beea9a716e824a138',1,'Diligent']]], + ['bind_5fshader_5fresources_5fall_5fresolved',['BIND_SHADER_RESOURCES_ALL_RESOLVED',['../namespace_diligent.html#aa19d2573adf9fdd5763e4ff3a06ac1e8a996116faf0124f92452cb6b65a66a4bd',1,'Diligent']]], + ['bind_5fshader_5fresources_5fflags',['BIND_SHADER_RESOURCES_FLAGS',['../namespace_diligent.html#aa19d2573adf9fdd5763e4ff3a06ac1e8',1,'Diligent']]], + ['bind_5fshader_5fresources_5freset_5fbindings',['BIND_SHADER_RESOURCES_RESET_BINDINGS',['../namespace_diligent.html#aa19d2573adf9fdd5763e4ff3a06ac1e8a356bf35ddf7ca9489736c0d8992d3032',1,'Diligent']]], + ['bind_5fshader_5fresources_5fupdate_5funresolved',['BIND_SHADER_RESOURCES_UPDATE_UNRESOLVED',['../namespace_diligent.html#aa19d2573adf9fdd5763e4ff3a06ac1e8a6a7da6200cf9bedda2d76b51b2233170',1,'Diligent']]], + ['bind_5fstream_5foutput',['BIND_STREAM_OUTPUT',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbcea6e78d02c83dd86d2706c23cb7dc30222',1,'Diligent']]], + ['bind_5funiform_5fbuffer',['BIND_UNIFORM_BUFFER',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbceac2120e5b46a9b5611f937fb446d099f9',1,'Diligent']]], + ['bind_5funordered_5faccess',['BIND_UNORDERED_ACCESS',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbceaf4c7e9aeccba22f01ef46f348551fd0c',1,'Diligent']]], + ['bind_5fvertex_5fbuffer',['BIND_VERTEX_BUFFER',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbcea07e85db16b80e8505aaf17b8dd9c626c',1,'Diligent']]], + ['bindflags',['BindFlags',['../struct_diligent_1_1_buffer_desc.html#aa03cc2547017b124a690a50611f20b06',1,'Diligent::BufferDesc::BindFlags()'],['../struct_diligent_1_1_texture_desc.html#a884a52b8c5088e44640394c7cf26de3a',1,'Diligent::TextureDesc::BindFlags()']]], + ['bindirectrenderingsupported',['bIndirectRenderingSupported',['../struct_diligent_1_1_device_caps.html#a2a17664a40e5eb90a20c68a520a487e8',1,'Diligent::DeviceCaps']]], + ['bindresources',['BindResources',['../class_diligent_1_1_shader_d3_d11_impl.html#a730f5bf535b07fd1f14134cb67214dbd',1,'Diligent::ShaderD3D11Impl::BindResources()'],['../class_diligent_1_1_shader_resource_binding_d3_d11_impl.html#a4c604c75575aca767a96e691da4982d0',1,'Diligent::ShaderResourceBindingD3D11Impl::BindResources()'],['../class_diligent_1_1_shader_g_l_impl.html#a51ebcf3c80febe6c70f47998f4509e40',1,'Diligent::ShaderGLImpl::BindResources()'],['../class_diligent_1_1_shader_resource_binding_g_l_impl.html#a86af66b47e1ea015fe064e58b903a916',1,'Diligent::ShaderResourceBindingGLImpl::BindResources()'],['../class_diligent_1_1_shader_d3_d12_impl.html#a01f14dcdf380c178da27c4fc11f03b9c',1,'Diligent::ShaderD3D12Impl::BindResources()'],['../class_diligent_1_1_shader_resource_binding_d3_d12_impl.html#ac88a687870aae608663583aef16d2ce8',1,'Diligent::ShaderResourceBindingD3D12Impl::BindResources()'],['../class_diligent_1_1_i_shader.html#a631860cef0bb50e081bab0acd1345cf1',1,'Diligent::IShader::BindResources()'],['../class_diligent_1_1_i_shader_resource_binding.html#aa63808de1731984d160b6d06f6c89baa',1,'Diligent::IShaderResourceBinding::BindResources()']]], + ['bindshaderresources',['BindShaderResources',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#acb20b58acad55035d1ea8bab1537c471',1,'Diligent::PipelineStateD3D11Impl::BindShaderResources()'],['../class_diligent_1_1_pipeline_state_g_l_impl.html#aca1a687586f5f706fa6491c8b7c9cbc1',1,'Diligent::PipelineStateGLImpl::BindShaderResources()'],['../class_diligent_1_1_pipeline_state_d3_d12_impl.html#a972d662c2a94bb00707bf5f143f34e82',1,'Diligent::PipelineStateD3D12Impl::BindShaderResources()'],['../class_diligent_1_1_i_pipeline_state.html#a8f8652f7f9437c40ab34db20f419fa1f',1,'Diligent::IPipelineState::BindShaderResources()']]], + ['blend_5ffactor',['BLEND_FACTOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1',1,'Diligent']]], + ['blend_5ffactor_5fblend_5ffactor',['BLEND_FACTOR_BLEND_FACTOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a55990a5c0e48e2ecd81090e433e6ef06',1,'Diligent']]], + ['blend_5ffactor_5fdest_5falpha',['BLEND_FACTOR_DEST_ALPHA',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a6ae74671ee262ba8d396e898f90398ee',1,'Diligent']]], + ['blend_5ffactor_5fdest_5fcolor',['BLEND_FACTOR_DEST_COLOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a874d7c0d6c6212a313a2565b8289edd3',1,'Diligent']]], + ['blend_5ffactor_5finv_5fblend_5ffactor',['BLEND_FACTOR_INV_BLEND_FACTOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a636346de2f019fa3a3ae3392e37f1af8',1,'Diligent']]], + ['blend_5ffactor_5finv_5fdest_5falpha',['BLEND_FACTOR_INV_DEST_ALPHA',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a26b0fdff59e555e405da24bda789186b',1,'Diligent']]], + ['blend_5ffactor_5finv_5fdest_5fcolor',['BLEND_FACTOR_INV_DEST_COLOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a923de8f8b25551fb02c1265961bf2dcc',1,'Diligent']]], + ['blend_5ffactor_5finv_5fsrc1_5falpha',['BLEND_FACTOR_INV_SRC1_ALPHA',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1afd98dec225244fa1a213f528f4937615',1,'Diligent']]], + ['blend_5ffactor_5finv_5fsrc1_5fcolor',['BLEND_FACTOR_INV_SRC1_COLOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1abdb1924164eb185c9103ebb31558b81a',1,'Diligent']]], + ['blend_5ffactor_5finv_5fsrc_5falpha',['BLEND_FACTOR_INV_SRC_ALPHA',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a5bb6a5588766529cd50db693951fc976',1,'Diligent']]], + ['blend_5ffactor_5finv_5fsrc_5fcolor',['BLEND_FACTOR_INV_SRC_COLOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1ae5bf98a17ed70db4950c1bd852000fe3',1,'Diligent']]], + ['blend_5ffactor_5fnum_5ffactors',['BLEND_FACTOR_NUM_FACTORS',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a4ac776a641c5abe06578c37c22e1c2a0',1,'Diligent']]], + ['blend_5ffactor_5fone',['BLEND_FACTOR_ONE',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1ab81b4c36868770ea6a97048bb46190f9',1,'Diligent']]], + ['blend_5ffactor_5fsrc1_5falpha',['BLEND_FACTOR_SRC1_ALPHA',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a2add20baaa9ee7598b28e83c0cf64c9b',1,'Diligent']]], + ['blend_5ffactor_5fsrc1_5fcolor',['BLEND_FACTOR_SRC1_COLOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a2a9de58773a193ca26dc5747ad15d5a0',1,'Diligent']]], + ['blend_5ffactor_5fsrc_5falpha',['BLEND_FACTOR_SRC_ALPHA',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a948b5c73475cba94c6c028092f2b9e3a',1,'Diligent']]], + ['blend_5ffactor_5fsrc_5falpha_5fsat',['BLEND_FACTOR_SRC_ALPHA_SAT',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1af63ab4a6d981c0f847faae9f68421028',1,'Diligent']]], + ['blend_5ffactor_5fsrc_5fcolor',['BLEND_FACTOR_SRC_COLOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a565d3f80967d8c90ca2613cbe5bf07e7',1,'Diligent']]], + ['blend_5ffactor_5fundefined',['BLEND_FACTOR_UNDEFINED',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a607e0164f4cc7dace2760c1074c760be',1,'Diligent']]], + ['blend_5ffactor_5fzero',['BLEND_FACTOR_ZERO',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1aa78e79d5fc95c45698a965cb657a21b4',1,'Diligent']]], + ['blend_5foperation',['BLEND_OPERATION',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3',1,'Diligent']]], + ['blend_5foperation_5fadd',['BLEND_OPERATION_ADD',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3a9e84f0b1a683c460a49427cdc716a531',1,'Diligent']]], + ['blend_5foperation_5fmax',['BLEND_OPERATION_MAX',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3a538393fe379730eeb9472350b8e6f01c',1,'Diligent']]], + ['blend_5foperation_5fmin',['BLEND_OPERATION_MIN',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3a8842278a3b21bcc3ac743eb14cc34f15',1,'Diligent']]], + ['blend_5foperation_5fnum_5foperations',['BLEND_OPERATION_NUM_OPERATIONS',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3a3cd17b3a0762e892dd7dfc842a968406',1,'Diligent']]], + ['blend_5foperation_5frev_5fsubtract',['BLEND_OPERATION_REV_SUBTRACT',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3aae2cc1969f4c2d769409d9aaf4e39c00',1,'Diligent']]], + ['blend_5foperation_5fsubtract',['BLEND_OPERATION_SUBTRACT',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3a1ed369e906a5f05ba38bb58dbb30faeb',1,'Diligent']]], + ['blend_5foperation_5fundefined',['BLEND_OPERATION_UNDEFINED',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3a987616518a77bdf05e92b26fc957d407',1,'Diligent']]], + ['blenddesc',['BlendDesc',['../struct_diligent_1_1_graphics_pipeline_desc.html#ad86efecf9af6740b15aa2858d11d4ead',1,'Diligent::GraphicsPipelineDesc']]], + ['blendenable',['BlendEnable',['../struct_diligent_1_1_render_target_blend_desc.html#ae0e8734189e8344cd49121e0de5bfb3b',1,'Diligent::RenderTargetBlendDesc']]], + ['blendop',['BlendOp',['../struct_diligent_1_1_render_target_blend_desc.html#a9e425a2913f4ce256c0cd2dd02db67c4',1,'Diligent::RenderTargetBlendDesc']]], + ['blendopalpha',['BlendOpAlpha',['../struct_diligent_1_1_render_target_blend_desc.html#a7d8a84d41c3fe0edf0682bcd58331848',1,'Diligent::RenderTargetBlendDesc']]], + ['blendstatedesc',['BlendStateDesc',['../struct_diligent_1_1_blend_state_desc.html',1,'Diligent::BlendStateDesc'],['../struct_diligent_1_1_blend_state_desc.html#a8f602b74a29dab38856658f92d08cbc3',1,'Diligent::BlendStateDesc::BlendStateDesc()']]], + ['blodbiassupported',['bLODBiasSupported',['../struct_diligent_1_1_sampler_caps.html#a8c006d5540e11b89fd8cb8668758469d',1,'Diligent::SamplerCaps']]], + ['bmultithreadedresourcecreationsupported',['bMultithreadedResourceCreationSupported',['../struct_diligent_1_1_device_caps.html#a5e5213f80ddd3160766ec51c5ed2ab4b',1,'Diligent::DeviceCaps']]], + ['bordercolor',['BorderColor',['../struct_diligent_1_1_sampler_desc.html#a6ce9635826a946dfbadacd2adcff63e9',1,'Diligent::SamplerDesc']]], + ['bottom',['bottom',['../struct_diligent_1_1_rect.html#a0469c2165ebf1740d7af2f21d73d1416',1,'Diligent::Rect']]], + ['box',['Box',['../struct_diligent_1_1_box.html',1,'Diligent::Box'],['../struct_diligent_1_1_box.html#af14a0fee74cce558f3bef58b133702ac',1,'Diligent::Box::Box()']]], + ['bseparableprogramsupported',['bSeparableProgramSupported',['../struct_diligent_1_1_device_caps.html#a0972c2a042cd7266a5450a9f51452517',1,'Diligent::DeviceCaps']]], + ['btexture1darraysupported',['bTexture1DArraySupported',['../struct_diligent_1_1_texture_caps.html#aa4e3aeb3b8a7ae275d4b43a1a67bfe6e',1,'Diligent::TextureCaps']]], + ['btexture1dsupported',['bTexture1DSupported',['../struct_diligent_1_1_texture_caps.html#abc44c7348aaa30d2e046b5ccc3ab08d1',1,'Diligent::TextureCaps']]], + ['btexture2dmsarraysupported',['bTexture2DMSArraySupported',['../struct_diligent_1_1_texture_caps.html#ab56a36e4792921cef9ebdba1402904af',1,'Diligent::TextureCaps']]], + ['btexture2dmssupported',['bTexture2DMSSupported',['../struct_diligent_1_1_texture_caps.html#a5bdc97b634fffa3f7e9505845dd67c06',1,'Diligent::TextureCaps']]], + ['btextureviewsupported',['bTextureViewSupported',['../struct_diligent_1_1_texture_caps.html#aecfd0691323563f4af543d3d02cdb07c',1,'Diligent::TextureCaps']]], + ['buffer_5fmode',['BUFFER_MODE',['../namespace_diligent.html#afbdac277dbbb5b93d32b3ffd7df8b7da',1,'Diligent']]], + ['buffer_5fmode_5fformatted',['BUFFER_MODE_FORMATTED',['../namespace_diligent.html#afbdac277dbbb5b93d32b3ffd7df8b7daafd0744a938df39ac9cd93fdbf9bb704e',1,'Diligent']]], + ['buffer_5fmode_5fnum_5fmodes',['BUFFER_MODE_NUM_MODES',['../namespace_diligent.html#afbdac277dbbb5b93d32b3ffd7df8b7daa1ef9cfe62f24d6763f691281ef6c09f5',1,'Diligent']]], + ['buffer_5fmode_5fstructured',['BUFFER_MODE_STRUCTURED',['../namespace_diligent.html#afbdac277dbbb5b93d32b3ffd7df8b7daa8795c0e51bc4091c1efab4f65e5062e7',1,'Diligent']]], + ['buffer_5fmode_5fundefined',['BUFFER_MODE_UNDEFINED',['../namespace_diligent.html#afbdac277dbbb5b93d32b3ffd7df8b7daa3d5865d8818d99627ffe6775c4c219b2',1,'Diligent']]], + ['buffer_5fview_5fnum_5fviews',['BUFFER_VIEW_NUM_VIEWS',['../namespace_diligent.html#a6a774c831a175b647d9144fea155dd14a5ca9e42d5a3bd0c9cb84b192a2fd6c0c',1,'Diligent']]], + ['buffer_5fview_5fshader_5fresource',['BUFFER_VIEW_SHADER_RESOURCE',['../namespace_diligent.html#a6a774c831a175b647d9144fea155dd14ad1c69de4eb65756790d8110cb20adb4b',1,'Diligent']]], + ['buffer_5fview_5ftype',['BUFFER_VIEW_TYPE',['../namespace_diligent.html#a6a774c831a175b647d9144fea155dd14',1,'Diligent']]], + ['buffer_5fview_5fundefined',['BUFFER_VIEW_UNDEFINED',['../namespace_diligent.html#a6a774c831a175b647d9144fea155dd14aec8a0f6db367c6d64f2029d60570e86f',1,'Diligent']]], + ['buffer_5fview_5funordered_5faccess',['BUFFER_VIEW_UNORDERED_ACCESS',['../namespace_diligent.html#a6a774c831a175b647d9144fea155dd14a5422f79416a91ceb5767a242ca021e1a',1,'Diligent']]], + ['bufferbase',['BufferBase',['../class_diligent_1_1_buffer_base.html',1,'Diligent::BufferBase< BaseInterface, BufferViewImplType, TBuffViewObjAllocator >'],['../class_diligent_1_1_buffer_base.html#adf6f4c230332562c56285371c20f416c',1,'Diligent::BufferBase::BufferBase()']]], + ['bufferbase_3c_20ibufferd3d11_2c_20bufferviewd3d11impl_2c_20fixedblockmemoryallocator_20_3e',['BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >',['../class_diligent_1_1_buffer_base.html',1,'Diligent']]], + ['bufferbase_3c_20ibufferd3d12_2c_20bufferviewd3d12impl_2c_20fixedblockmemoryallocator_20_3e',['BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >',['../class_diligent_1_1_buffer_base.html',1,'Diligent']]], + ['bufferbase_3c_20ibuffergl_2c_20bufferviewglimpl_2c_20fixedblockmemoryallocator_20_3e',['BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >',['../class_diligent_1_1_buffer_base.html',1,'Diligent']]], + ['buffercount',['BufferCount',['../struct_diligent_1_1_swap_chain_desc.html#a05d5e9d8ca0869dd19d753d987b1454b',1,'Diligent::SwapChainDesc']]], + ['bufferd3d11impl',['BufferD3D11Impl',['../class_diligent_1_1_buffer_d3_d11_impl.html',1,'Diligent']]], + ['bufferd3d12impl',['BufferD3D12Impl',['../class_diligent_1_1_buffer_d3_d12_impl.html',1,'Diligent']]], + ['bufferdata',['BufferData',['../struct_diligent_1_1_buffer_data.html',1,'Diligent::BufferData'],['../struct_diligent_1_1_buffer_data.html#abbe1e758f160037334661f5a4decee2e',1,'Diligent::BufferData::BufferData()']]], + ['bufferdesc',['BufferDesc',['../struct_diligent_1_1_buffer_desc.html',1,'Diligent::BufferDesc'],['../struct_diligent_1_1_buffer_desc.html#a9587fb107cfd98028a10b59a88b8aee1',1,'Diligent::BufferDesc::BufferDesc()']]], + ['bufferformat',['BufferFormat',['../struct_diligent_1_1_buffer_desc_1_1_buffer_format.html',1,'Diligent::BufferDesc::BufferFormat'],['../struct_diligent_1_1_buffer_desc_1_1_buffer_format.html#abb64063c84bbb65eb392d4b13a1f1455',1,'Diligent::BufferDesc::BufferFormat::BufferFormat()']]], + ['bufferglimpl',['BufferGLImpl',['../class_diligent_1_1_buffer_g_l_impl.html',1,'Diligent']]], + ['bufferslot',['BufferSlot',['../struct_diligent_1_1_layout_element.html#abeef86e4713b4345f1b11887f4be5eb8',1,'Diligent::LayoutElement']]], + ['bufferviewbase',['BufferViewBase',['../class_diligent_1_1_buffer_view_base.html',1,'Diligent::BufferViewBase< BaseInterface >'],['../class_diligent_1_1_buffer_view_base.html#a7c5098e6cc1093d022aa4bb7a90166a7',1,'Diligent::BufferViewBase::BufferViewBase()']]], + ['bufferviewbase_3c_20ibufferviewd3d11_20_3e',['BufferViewBase< IBufferViewD3D11 >',['../class_diligent_1_1_buffer_view_base.html',1,'Diligent']]], + ['bufferviewbase_3c_20ibufferviewd3d12_20_3e',['BufferViewBase< IBufferViewD3D12 >',['../class_diligent_1_1_buffer_view_base.html',1,'Diligent']]], + ['bufferviewbase_3c_20ibufferviewgl_20_3e',['BufferViewBase< IBufferViewGL >',['../class_diligent_1_1_buffer_view_base.html',1,'Diligent']]], + ['bufferviewd3d11impl',['BufferViewD3D11Impl',['../class_diligent_1_1_buffer_view_d3_d11_impl.html',1,'Diligent']]], + ['bufferviewd3d12impl',['BufferViewD3D12Impl',['../class_diligent_1_1_buffer_view_d3_d12_impl.html',1,'Diligent']]], + ['bufferviewdesc',['BufferViewDesc',['../struct_diligent_1_1_buffer_view_desc.html',1,'Diligent::BufferViewDesc'],['../struct_diligent_1_1_buffer_view_desc.html#af850846cc7e46e2eb2139186671989fa',1,'Diligent::BufferViewDesc::BufferViewDesc()']]], + ['bufferviewglimpl',['BufferViewGLImpl',['../class_diligent_1_1_buffer_view_g_l_impl.html',1,'Diligent']]], + ['bwireframefillsupported',['bWireframeFillSupported',['../struct_diligent_1_1_device_caps.html#a04d752cb6bcb7fc56ff2533cdf48e796',1,'Diligent::DeviceCaps']]], + ['bytecode',['ByteCode',['../struct_diligent_1_1_shader_creation_attribs.html#ab91e80c16df5ee5624e56f8fdbb0e98d',1,'Diligent::ShaderCreationAttribs']]], + ['bytecodesize',['ByteCodeSize',['../struct_diligent_1_1_shader_creation_attribs.html#a2dc3b36f68b617161f138be5df2138f5',1,'Diligent::ShaderCreationAttribs']]], + ['byteoffset',['ByteOffset',['../struct_diligent_1_1_buffer_view_desc.html#a2e3849db8f49ddca6d7ee5c8c2fae36e',1,'Diligent::BufferViewDesc']]], + ['bytewidth',['ByteWidth',['../struct_diligent_1_1_buffer_view_desc.html#ac09688fcf3faf4dc4f2497cf0d0461ba',1,'Diligent::BufferViewDesc']]] +]; diff --git a/doc/html/search/all_10.html b/doc/html/search/all_10.html new file mode 100644 index 00000000..50bc449e --- /dev/null +++ b/doc/html/search/all_10.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_10.js b/doc/html/search/all_10.js new file mode 100644 index 00000000..adde3edc --- /dev/null +++ b/doc/html/search/all_10.js @@ -0,0 +1,121 @@ +var searchData= +[ + ['samcaps',['SamCaps',['../struct_diligent_1_1_device_caps.html#a408a266a56d81c953cdd0813617838af',1,'Diligent::DeviceCaps']]], + ['samplecount',['SampleCount',['../struct_diligent_1_1_texture_desc.html#a809c087dd8a353cbb4460e56b44720f4',1,'Diligent::TextureDesc']]], + ['sampledesc',['SampleDesc',['../struct_diligent_1_1_sample_desc.html',1,'Diligent']]], + ['samplemask',['SampleMask',['../struct_diligent_1_1_graphics_pipeline_desc.html#a48362f4ab2fc255d29bdf4c1c6d527f4',1,'Diligent::GraphicsPipelineDesc']]], + ['samplerbase',['SamplerBase',['../class_diligent_1_1_sampler_base.html',1,'Diligent::SamplerBase< BaseInterface, RenderDeviceBaseInterface >'],['../class_diligent_1_1_sampler_base.html#a1fcacfa05ea3acc53ae68d6e6b9e6879',1,'Diligent::SamplerBase::SamplerBase()']]], + ['samplerbase_3c_20isamplerd3d11_2c_20irenderdeviced3d11_20_3e',['SamplerBase< ISamplerD3D11, IRenderDeviceD3D11 >',['../class_diligent_1_1_sampler_base.html',1,'Diligent']]], + ['samplerbase_3c_20isamplerd3d12_2c_20irenderdeviced3d12_20_3e',['SamplerBase< ISamplerD3D12, IRenderDeviceD3D12 >',['../class_diligent_1_1_sampler_base.html',1,'Diligent']]], + ['samplerbase_3c_20isamplergl_2c_20igldevicebaseinterface_20_3e',['SamplerBase< ISamplerGL, IGLDeviceBaseInterface >',['../class_diligent_1_1_sampler_base.html',1,'Diligent']]], + ['samplercaps',['SamplerCaps',['../struct_diligent_1_1_sampler_caps.html',1,'Diligent::SamplerCaps'],['../struct_diligent_1_1_sampler_caps.html#abc1a0c3e9cccb15573e1cdf1ac99a18a',1,'Diligent::SamplerCaps::SamplerCaps()']]], + ['samplerd3d11impl',['SamplerD3D11Impl',['../class_diligent_1_1_sampler_d3_d11_impl.html',1,'Diligent']]], + ['samplerd3d12impl',['SamplerD3D12Impl',['../class_diligent_1_1_sampler_d3_d12_impl.html',1,'Diligent']]], + ['samplerdesc',['SamplerDesc',['../struct_diligent_1_1_sampler_desc.html',1,'Diligent::SamplerDesc'],['../struct_diligent_1_1_sampler_desc.html#a84f55fe6afe0c2397039503695bbfefb',1,'Diligent::SamplerDesc::SamplerDesc()']]], + ['samplerglimpl',['SamplerGLImpl',['../class_diligent_1_1_sampler_g_l_impl.html',1,'Diligent']]], + ['samplescount',['SamplesCount',['../struct_diligent_1_1_swap_chain_desc.html#abb6c480f76a89a38333249970fc0c6d9',1,'Diligent::SwapChainDesc']]], + ['scissorenable',['ScissorEnable',['../struct_diligent_1_1_rasterizer_state_desc.html#a71fed776ed7bfda220fdc4fb1632f3f8',1,'Diligent::RasterizerStateDesc']]], + ['set',['Set',['../struct_diligent_1_1_dummy_shader_variable.html#a10bc22958bd424b656d4c25a628c1deb',1,'Diligent::DummyShaderVariable::Set()'],['../class_diligent_1_1_i_shader_variable.html#abf1fd12f07f3d932f04e8e34a981d896',1,'Diligent::IShaderVariable::Set()']]], + ['set_5fvertex_5fbuffers_5fflag_5freset',['SET_VERTEX_BUFFERS_FLAG_RESET',['../namespace_diligent.html#a5720b03558fa0f988caaa3ea82f4f4d2a9d845821b9a5867760597bb117189aa8',1,'Diligent']]], + ['set_5fvertex_5fbuffers_5fflags',['SET_VERTEX_BUFFERS_FLAGS',['../namespace_diligent.html#a5720b03558fa0f988caaa3ea82f4f4d2',1,'Diligent']]], + ['setarray',['SetArray',['../struct_diligent_1_1_dummy_shader_variable.html#ac2c2d893e25346364e4d180ca03937f9',1,'Diligent::DummyShaderVariable::SetArray()'],['../class_diligent_1_1_i_shader_variable.html#a1485fa8a056824cf955b5bdbe1d7cd17',1,'Diligent::IShaderVariable::SetArray()']]], + ['setblendfactors',['SetBlendFactors',['../class_diligent_1_1_device_context_d3_d11_impl.html#af5b5a0d8d2932ee79a6c5cd04fa3a202',1,'Diligent::DeviceContextD3D11Impl::SetBlendFactors()'],['../class_diligent_1_1_device_context_g_l_impl.html#a41e56bc52ac83c0760046a6bb32ed7cb',1,'Diligent::DeviceContextGLImpl::SetBlendFactors()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#a97d639059bbba7eb0c92df19f2153886',1,'Diligent::DeviceContextD3D12Impl::SetBlendFactors()'],['../class_diligent_1_1_i_device_context.html#a170779986032fffbc8dc4fa33ff5d0cb',1,'Diligent::IDeviceContext::SetBlendFactors()']]], + ['setd3d12resourcestate',['SetD3D12ResourceState',['../class_diligent_1_1_buffer_d3_d12_impl.html#afc837f7cc6419b74be0c269d7b1969be',1,'Diligent::BufferD3D12Impl::SetD3D12ResourceState()'],['../class_diligent_1_1_texture_d3_d12_impl.html#ac44265e34a17b177212978ac29fed5db',1,'Diligent::TextureD3D12Impl::SetD3D12ResourceState()'],['../class_diligent_1_1_i_buffer_d3_d12.html#a5f6a7c18da3755cbeb63e300a58f593f',1,'Diligent::IBufferD3D12::SetD3D12ResourceState()'],['../class_diligent_1_1_i_texture_d3_d12.html#af5142471dd9e26efd297f4bb42d341c6',1,'Diligent::ITextureD3D12::SetD3D12ResourceState()']]], + ['setdeferredcontext',['SetDeferredContext',['../class_diligent_1_1_render_device_base.html#a12b47e7024812aa0a444610c4902a3a5',1,'Diligent::RenderDeviceBase']]], + ['setimmediatecontext',['SetImmediateContext',['../class_diligent_1_1_render_device_base.html#a4d5dfb51973e8b0331d3c56edacd0664',1,'Diligent::RenderDeviceBase']]], + ['setindexbuffer',['SetIndexBuffer',['../class_diligent_1_1_device_context_d3_d11_impl.html#a79db72bbef487409f46449b77f6ce6ed',1,'Diligent::DeviceContextD3D11Impl::SetIndexBuffer()'],['../class_diligent_1_1_device_context_g_l_impl.html#ac2cf1365e927df7d0390acb957b139f9',1,'Diligent::DeviceContextGLImpl::SetIndexBuffer()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#ac94879fd640a7a7ba53053b589f50b03',1,'Diligent::DeviceContextD3D12Impl::SetIndexBuffer()'],['../class_diligent_1_1_device_context_base.html#a55dbf6c9f66c76870792d6a81d11a00f',1,'Diligent::DeviceContextBase::SetIndexBuffer()'],['../class_diligent_1_1_i_device_context.html#a829a67ac1a254d2a3128d6fb95e672f5',1,'Diligent::IDeviceContext::SetIndexBuffer()']]], + ['setpipelinestate',['SetPipelineState',['../class_diligent_1_1_device_context_d3_d11_impl.html#a9bd8e3b1e8877e8488c5fa41836df4b3',1,'Diligent::DeviceContextD3D11Impl::SetPipelineState()'],['../class_diligent_1_1_device_context_g_l_impl.html#a6f833e7d9144b73eebe1d8c012807c4e',1,'Diligent::DeviceContextGLImpl::SetPipelineState()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#aa8cabf2a1bd3369f499f397ec71fff97',1,'Diligent::DeviceContextD3D12Impl::SetPipelineState()'],['../class_diligent_1_1_device_context_base.html#aa18c2e092f1a91ea09fea19973121f6e',1,'Diligent::DeviceContextBase::SetPipelineState()'],['../class_diligent_1_1_i_device_context.html#a5d4bdc4379dbe1b71268d71c5b238250',1,'Diligent::IDeviceContext::SetPipelineState()']]], + ['setrawallocator',['SetRawAllocator',['../namespace_diligent.html#aafc497c26b864a48cd17ad3fca1fe386',1,'Diligent']]], + ['setrendertargets',['SetRenderTargets',['../class_diligent_1_1_device_context_d3_d11_impl.html#ab0321f1d70ecd6cb01ee546579f3c5cc',1,'Diligent::DeviceContextD3D11Impl::SetRenderTargets()'],['../class_diligent_1_1_device_context_g_l_impl.html#aeb189139c4b3811fa74eadb84c1ab843',1,'Diligent::DeviceContextGLImpl::SetRenderTargets()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#a299ca555cf8774cdf7255d83c06af640',1,'Diligent::DeviceContextD3D12Impl::SetRenderTargets()'],['../class_diligent_1_1_device_context_base.html#a8fb34f12eb8e06764322ecde447ab856',1,'Diligent::DeviceContextBase::SetRenderTargets()'],['../class_diligent_1_1_i_device_context.html#a06aea8d7bc6fd65ab8e4da744092e82f',1,'Diligent::IDeviceContext::SetRenderTargets()']]], + ['setsampler',['SetSampler',['../class_diligent_1_1_texture_view_base.html#a19a845d21c78bec13d2f605b62df1944',1,'Diligent::TextureViewBase::SetSampler()'],['../class_diligent_1_1_i_texture_view.html#af8a11a7ad59eb094ec13eb3c80110a90',1,'Diligent::ITextureView::SetSampler()']]], + ['setscissorrects',['SetScissorRects',['../class_diligent_1_1_device_context_d3_d11_impl.html#ae23752e1818111e2bf036d44888ab840',1,'Diligent::DeviceContextD3D11Impl::SetScissorRects()'],['../class_diligent_1_1_device_context_g_l_impl.html#a38ddf7f7f6113a774586e79d4fbb0a34',1,'Diligent::DeviceContextGLImpl::SetScissorRects()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#aa269748d330b15309fef2b6e57d131e7',1,'Diligent::DeviceContextD3D12Impl::SetScissorRects()'],['../class_diligent_1_1_device_context_base.html#ab7c27f76fa2d281da1825fae09492016',1,'Diligent::DeviceContextBase::SetScissorRects()'],['../class_diligent_1_1_i_device_context.html#ae259f9a476c0dcd8f9081ac1c359f736',1,'Diligent::IDeviceContext::SetScissorRects()']]], + ['setstencilref',['SetStencilRef',['../class_diligent_1_1_device_context_d3_d11_impl.html#adb8322c16cd68def2cdbd9f53209d4a0',1,'Diligent::DeviceContextD3D11Impl::SetStencilRef()'],['../class_diligent_1_1_device_context_g_l_impl.html#a172afff42241e5d35d08201a8b8e5d25',1,'Diligent::DeviceContextGLImpl::SetStencilRef()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#a742cf62122dd7cfd91bad4b1e0d54ffd',1,'Diligent::DeviceContextD3D12Impl::SetStencilRef()'],['../class_diligent_1_1_i_device_context.html#ae85aea7907452cd1444cabc426d497a6',1,'Diligent::IDeviceContext::SetStencilRef()']]], + ['setswapchain',['SetSwapChain',['../class_diligent_1_1_device_context_base.html#abfb91863c108faf725d21930ebed5692',1,'Diligent::DeviceContextBase::SetSwapChain()'],['../class_diligent_1_1_i_device_context.html#a1e10c0132d064d9b890d9e39ba464c3e',1,'Diligent::IDeviceContext::SetSwapChain()']]], + ['setvertexbuffers',['SetVertexBuffers',['../class_diligent_1_1_device_context_d3_d11_impl.html#abfd53c39cbd1a77d19951664167dae2b',1,'Diligent::DeviceContextD3D11Impl::SetVertexBuffers()'],['../class_diligent_1_1_device_context_g_l_impl.html#a0ad4626f5e91b73350eadcdac4d4ad36',1,'Diligent::DeviceContextGLImpl::SetVertexBuffers()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#ae7ed63dc682ab486282e1cec4d15603f',1,'Diligent::DeviceContextD3D12Impl::SetVertexBuffers()'],['../class_diligent_1_1_device_context_base.html#a78a7051f15d5b0e2b3183fb9bf278adf',1,'Diligent::DeviceContextBase::SetVertexBuffers()'],['../class_diligent_1_1_i_device_context.html#a975090a15be01bff511543459bd9f53e',1,'Diligent::IDeviceContext::SetVertexBuffers()']]], + ['setviewports',['SetViewports',['../class_diligent_1_1_device_context_d3_d11_impl.html#a180ba0fb6b5468365d05f16fa9405800',1,'Diligent::DeviceContextD3D11Impl::SetViewports()'],['../class_diligent_1_1_device_context_g_l_impl.html#ab8f6aefa72856012408567b660c08005',1,'Diligent::DeviceContextGLImpl::SetViewports()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#a22f61d29ce0a772e971641fda2442655',1,'Diligent::DeviceContextD3D12Impl::SetViewports()'],['../class_diligent_1_1_device_context_base.html#a3ae8c0c570fbff02c39ba64464c30407',1,'Diligent::DeviceContextBase::SetViewports()'],['../class_diligent_1_1_i_device_context.html#a0162de3b063ef851a5ccb72aa03d6cac',1,'Diligent::IDeviceContext::SetViewports()']]], + ['shader_5fsource_5flanguage',['SHADER_SOURCE_LANGUAGE',['../namespace_diligent.html#afefecb3e9dff6f9b8b9f00cd2770c7b0',1,'Diligent']]], + ['shader_5fsource_5flanguage_5fdefault',['SHADER_SOURCE_LANGUAGE_DEFAULT',['../namespace_diligent.html#afefecb3e9dff6f9b8b9f00cd2770c7b0a80f04185cf1c04a1785f95352ce8fe98',1,'Diligent']]], + ['shader_5fsource_5flanguage_5fglsl',['SHADER_SOURCE_LANGUAGE_GLSL',['../namespace_diligent.html#afefecb3e9dff6f9b8b9f00cd2770c7b0a0fb7dd30648819a279edf2829d258561',1,'Diligent']]], + ['shader_5fsource_5flanguage_5fhlsl',['SHADER_SOURCE_LANGUAGE_HLSL',['../namespace_diligent.html#afefecb3e9dff6f9b8b9f00cd2770c7b0ae2902026c29ba5ceeec9a0bb4f25e111',1,'Diligent']]], + ['shader_5ftype',['SHADER_TYPE',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2',1,'Diligent']]], + ['shader_5ftype_5fcompute',['SHADER_TYPE_COMPUTE',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2a50dd2ab500bd69a67c8fd0f2790c6f29',1,'Diligent']]], + ['shader_5ftype_5fdomain',['SHADER_TYPE_DOMAIN',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2a5af9fe9cb224f5fc51edb07ff11108bf',1,'Diligent']]], + ['shader_5ftype_5fgeometry',['SHADER_TYPE_GEOMETRY',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2a3b18cd56185efef18ea985def8b8a8c3',1,'Diligent']]], + ['shader_5ftype_5fhull',['SHADER_TYPE_HULL',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2a25b84b38676bde314e05af55f07a5e6b',1,'Diligent']]], + ['shader_5ftype_5fpixel',['SHADER_TYPE_PIXEL',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2a9d50afa47ec991c605f6cde4dd872c34',1,'Diligent']]], + ['shader_5ftype_5funknown',['SHADER_TYPE_UNKNOWN',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2a6799c4292a2b6e6087a4f0ab3e6efc5a',1,'Diligent']]], + ['shader_5ftype_5fvertex',['SHADER_TYPE_VERTEX',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2a87d1509b84a192c452468277f015616f',1,'Diligent']]], + ['shader_5fvariable_5ftype',['SHADER_VARIABLE_TYPE',['../namespace_diligent.html#adea6ddf55230a2722e6a7401e18de698',1,'Diligent']]], + ['shader_5fvariable_5ftype_5fdynamic',['SHADER_VARIABLE_TYPE_DYNAMIC',['../namespace_diligent.html#adea6ddf55230a2722e6a7401e18de698a8f878878823106ce70c825475ef7ca16',1,'Diligent']]], + ['shader_5fvariable_5ftype_5fmutable',['SHADER_VARIABLE_TYPE_MUTABLE',['../namespace_diligent.html#adea6ddf55230a2722e6a7401e18de698a13c8763ed8f1413ee5d8b3d98c895c3a',1,'Diligent']]], + ['shader_5fvariable_5ftype_5fnum_5ftypes',['SHADER_VARIABLE_TYPE_NUM_TYPES',['../namespace_diligent.html#adea6ddf55230a2722e6a7401e18de698a6b6a3b5c0a1dec8fcf06ecb9f967acfb',1,'Diligent']]], + ['shader_5fvariable_5ftype_5fstatic',['SHADER_VARIABLE_TYPE_STATIC',['../namespace_diligent.html#adea6ddf55230a2722e6a7401e18de698a4c137d58eb6a965d1feb648e387a9ec3',1,'Diligent']]], + ['shaderbase',['ShaderBase',['../class_diligent_1_1_shader_base.html',1,'Diligent::ShaderBase< BaseInterface, RenderDeviceBaseInterface >'],['../class_diligent_1_1_shader_base.html#a7c4b7d4aaed6b8ef56ff03b2009d5f65',1,'Diligent::ShaderBase::ShaderBase()']]], + ['shaderbase_3c_20ishaderd3d11_2c_20irenderdeviced3d11_20_3e',['ShaderBase< IShaderD3D11, IRenderDeviceD3D11 >',['../class_diligent_1_1_shader_base.html',1,'Diligent']]], + ['shaderbase_3c_20ishaderd3d12_2c_20irenderdeviced3d12_20_3e',['ShaderBase< IShaderD3D12, IRenderDeviceD3D12 >',['../class_diligent_1_1_shader_base.html',1,'Diligent']]], + ['shaderbase_3c_20ishadergl_2c_20igldevicebaseinterface_20_3e',['ShaderBase< IShaderGL, IGLDeviceBaseInterface >',['../class_diligent_1_1_shader_base.html',1,'Diligent']]], + ['shadercreationattribs',['ShaderCreationAttribs',['../struct_diligent_1_1_shader_creation_attribs.html',1,'Diligent']]], + ['shaderd3d11impl',['ShaderD3D11Impl',['../class_diligent_1_1_shader_d3_d11_impl.html',1,'Diligent']]], + ['shaderd3d12impl',['ShaderD3D12Impl',['../class_diligent_1_1_shader_d3_d12_impl.html',1,'Diligent']]], + ['shaderdesc',['ShaderDesc',['../struct_diligent_1_1_shader_desc.html',1,'Diligent']]], + ['shaderglimpl',['ShaderGLImpl',['../class_diligent_1_1_shader_g_l_impl.html',1,'Diligent']]], + ['shaderresourcebindingbase',['ShaderResourceBindingBase',['../class_diligent_1_1_shader_resource_binding_base.html',1,'Diligent::ShaderResourceBindingBase< BaseInterface >'],['../class_diligent_1_1_shader_resource_binding_base.html#af54770f1954187f2f795b9ea20ad6581',1,'Diligent::ShaderResourceBindingBase::ShaderResourceBindingBase()']]], + ['shaderresourcebindingbase_3c_20ishaderresourcebindingd3d11_20_3e',['ShaderResourceBindingBase< IShaderResourceBindingD3D11 >',['../class_diligent_1_1_shader_resource_binding_base.html',1,'Diligent']]], + ['shaderresourcebindingbase_3c_20ishaderresourcebindingd3d12_20_3e',['ShaderResourceBindingBase< IShaderResourceBindingD3D12 >',['../class_diligent_1_1_shader_resource_binding_base.html',1,'Diligent']]], + ['shaderresourcebindingbase_3c_20ishaderresourcebindinggl_20_3e',['ShaderResourceBindingBase< IShaderResourceBindingGL >',['../class_diligent_1_1_shader_resource_binding_base.html',1,'Diligent']]], + ['shaderresourcebindingd3d11impl',['ShaderResourceBindingD3D11Impl',['../class_diligent_1_1_shader_resource_binding_d3_d11_impl.html',1,'Diligent']]], + ['shaderresourcebindingd3d12impl',['ShaderResourceBindingD3D12Impl',['../class_diligent_1_1_shader_resource_binding_d3_d12_impl.html',1,'Diligent']]], + ['shaderresourcebindingglimpl',['ShaderResourceBindingGLImpl',['../class_diligent_1_1_shader_resource_binding_g_l_impl.html',1,'Diligent']]], + ['shaderresourcecached3d11',['ShaderResourceCacheD3D11',['../class_diligent_1_1_shader_resource_cache_d3_d11.html',1,'Diligent']]], + ['shaderresourcelayoutd3d11',['ShaderResourceLayoutD3D11',['../class_diligent_1_1_shader_resource_layout_d3_d11.html',1,'Diligent']]], + ['shaderresourcelayoutd3d12',['ShaderResourceLayoutD3D12',['../class_diligent_1_1_shader_resource_layout_d3_d12.html',1,'Diligent']]], + ['shaderresourcesd3d11',['ShaderResourcesD3D11',['../class_diligent_1_1_shader_resources_d3_d11.html',1,'Diligent']]], + ['shaderresourcesd3d12',['ShaderResourcesD3D12',['../class_diligent_1_1_shader_resources_d3_d12.html',1,'Diligent']]], + ['shadertype',['ShaderType',['../struct_diligent_1_1_shader_desc.html#aded0e0cabe436be3da39e2353683ff68',1,'Diligent::ShaderDesc']]], + ['shadervariablebase',['ShaderVariableBase',['../struct_diligent_1_1_shader_variable_base.html',1,'Diligent']]], + ['shadervariabledesc',['ShaderVariableDesc',['../struct_diligent_1_1_shader_variable_desc.html',1,'Diligent']]], + ['slopescaleddepthbias',['SlopeScaledDepthBias',['../struct_diligent_1_1_rasterizer_state_desc.html#a140c14fa1af075cf3be5c1577bccdd86',1,'Diligent::RasterizerStateDesc']]], + ['smpldesc',['SmplDesc',['../struct_diligent_1_1_graphics_pipeline_desc.html#aa505cde7293c238fb23664b412da1388',1,'Diligent::GraphicsPipelineDesc']]], + ['source',['Source',['../struct_diligent_1_1_shader_creation_attribs.html#aef8d7926abec30fe25ee611f2f40d6ec',1,'Diligent::ShaderCreationAttribs']]], + ['sourcelanguage',['SourceLanguage',['../struct_diligent_1_1_shader_creation_attribs.html#ab4f1dc9f9314d639690bde42a8b56535',1,'Diligent::ShaderCreationAttribs']]], + ['srballocationgranularity',['SRBAllocationGranularity',['../struct_diligent_1_1_pipeline_state_desc.html#ad33e5797ce9cdb50dc5703511cff6ac6',1,'Diligent::PipelineStateDesc']]], + ['srcblend',['SrcBlend',['../struct_diligent_1_1_render_target_blend_desc.html#afebc07d02d747007045f9c120a08bc31',1,'Diligent::RenderTargetBlendDesc']]], + ['srcblendalpha',['SrcBlendAlpha',['../struct_diligent_1_1_render_target_blend_desc.html#ac1ee935ffe66f5fb5aaa14f0234e5c30',1,'Diligent::RenderTargetBlendDesc']]], + ['startvertexlocation',['StartVertexLocation',['../struct_diligent_1_1_draw_attribs.html#a0fb46bf99dc79966d25b7f0ff88e7f0b',1,'Diligent::DrawAttribs']]], + ['stateobjectsregistry',['StateObjectsRegistry',['../class_diligent_1_1_state_objects_registry.html',1,'Diligent']]], + ['stateobjectsregistry_3c_20diligent_3a_3asamplerdesc_20_3e',['StateObjectsRegistry< Diligent::SamplerDesc >',['../class_diligent_1_1_state_objects_registry.html',1,'Diligent']]], + ['staticsamplerdesc',['StaticSamplerDesc',['../struct_diligent_1_1_static_sampler_desc.html',1,'Diligent']]], + ['staticsamplers',['StaticSamplers',['../struct_diligent_1_1_shader_desc.html#accd32c314fc0290fd912f568e54709bf',1,'Diligent::ShaderDesc']]], + ['stencil',['Stencil',['../struct_diligent_1_1_depth_stencil_clear_value.html#aa66a0364673a8dad318084ca95e5e325',1,'Diligent::DepthStencilClearValue']]], + ['stencil_5fop',['STENCIL_OP',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29',1,'Diligent']]], + ['stencil_5fop_5fdecr_5fsat',['STENCIL_OP_DECR_SAT',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29a67d7f951aaa57ed1522fe66f43e32c78',1,'Diligent']]], + ['stencil_5fop_5fdecr_5fwrap',['STENCIL_OP_DECR_WRAP',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29af6d504952c26323aff8175c8f117c943',1,'Diligent']]], + ['stencil_5fop_5fincr_5fsat',['STENCIL_OP_INCR_SAT',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29acb3f32bf501fc645dea379a28e35df47',1,'Diligent']]], + ['stencil_5fop_5fincr_5fwrap',['STENCIL_OP_INCR_WRAP',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29aa2be5a5eaa59b9dda5f2336dfc9e1548',1,'Diligent']]], + ['stencil_5fop_5finvert',['STENCIL_OP_INVERT',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29ab365e790638343452b04c19e9b5064c1',1,'Diligent']]], + ['stencil_5fop_5fkeep',['STENCIL_OP_KEEP',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29a6e4efcc92b9fdd457f6a5d753b8ee6b7',1,'Diligent']]], + ['stencil_5fop_5fnum_5fops',['STENCIL_OP_NUM_OPS',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29ab30744e3d550c11a684d8cb8a9c82336',1,'Diligent']]], + ['stencil_5fop_5freplace',['STENCIL_OP_REPLACE',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29a5f484be67a9ed5fea8f2823fe48c97d4',1,'Diligent']]], + ['stencil_5fop_5fundefined',['STENCIL_OP_UNDEFINED',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29afac7937c3ec76ac501dd693217c7ab40',1,'Diligent']]], + ['stencil_5fop_5fzero',['STENCIL_OP_ZERO',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29acb6492e7d3ebd5cdfe9ff7fb8d666c90',1,'Diligent']]], + ['stencildepthfailop',['StencilDepthFailOp',['../struct_diligent_1_1_stencil_op_desc.html#a2e31ce16cfd5145b2e5578485e73d0f1',1,'Diligent::StencilOpDesc']]], + ['stencilenable',['StencilEnable',['../struct_diligent_1_1_depth_stencil_state_desc.html#a2350d1fe94693a9bf175a578a22a8f1b',1,'Diligent::DepthStencilStateDesc']]], + ['stencilfailop',['StencilFailOp',['../struct_diligent_1_1_stencil_op_desc.html#aa672789b4d459a4480baf3666c6945ad',1,'Diligent::StencilOpDesc']]], + ['stencilfunc',['StencilFunc',['../struct_diligent_1_1_stencil_op_desc.html#a5fbdb05e365ec418ba5a449265c3791f',1,'Diligent::StencilOpDesc']]], + ['stencilopdesc',['StencilOpDesc',['../struct_diligent_1_1_stencil_op_desc.html',1,'Diligent::StencilOpDesc'],['../struct_diligent_1_1_stencil_op_desc.html#abf76081f63b3aa0e2f45daddd530b28c',1,'Diligent::StencilOpDesc::StencilOpDesc()']]], + ['stencilpassop',['StencilPassOp',['../struct_diligent_1_1_stencil_op_desc.html#abb9e31d08669cafb05cb4e3b9f600785',1,'Diligent::StencilOpDesc']]], + ['stencilreadmask',['StencilReadMask',['../struct_diligent_1_1_depth_stencil_state_desc.html#acd5d4a05f83025dd3032e21f57e35025',1,'Diligent::DepthStencilStateDesc']]], + ['stencilwritemask',['StencilWriteMask',['../struct_diligent_1_1_depth_stencil_state_desc.html#a6b737a835a94f4ee667ba7b8bf53e086',1,'Diligent::DepthStencilStateDesc']]], + ['stride',['Stride',['../struct_diligent_1_1_vertex_stream_info.html#a1426bf561382713f7849d898f6356d52',1,'Diligent::VertexStreamInfo::Stride()'],['../struct_diligent_1_1_texture_sub_res_data.html#ae4f1c2064390d9fc3706d38523acac69',1,'Diligent::TextureSubResData::Stride()']]], + ['stringdatablobimpl',['StringDataBlobImpl',['../class_diligent_1_1_string_data_blob_impl.html',1,'Diligent']]], + ['supported',['Supported',['../struct_diligent_1_1_texture_format_info.html#ae26d9fbb8b9916341558eefaeb407c39',1,'Diligent::TextureFormatInfo']]], + ['supportsms',['SupportsMS',['../struct_diligent_1_1_texture_format_info_ext.html#a26e15c8d3bf315d271dca7c74f24a687',1,'Diligent::TextureFormatInfoExt']]], + ['swapchainbase',['SwapChainBase',['../class_diligent_1_1_swap_chain_base.html',1,'Diligent::SwapChainBase< BaseInterface >'],['../class_diligent_1_1_swap_chain_base.html#a2f792731da56cfe08f9c6d38bcab085a',1,'Diligent::SwapChainBase::SwapChainBase()']]], + ['swapchainbase_3c_20iswapchaind3d11_20_3e',['SwapChainBase< ISwapChainD3D11 >',['../class_diligent_1_1_swap_chain_base.html',1,'Diligent']]], + ['swapchainbase_3c_20iswapchaind3d12_20_3e',['SwapChainBase< ISwapChainD3D12 >',['../class_diligent_1_1_swap_chain_base.html',1,'Diligent']]], + ['swapchainbase_3c_20iswapchaingl_20_3e',['SwapChainBase< ISwapChainGL >',['../class_diligent_1_1_swap_chain_base.html',1,'Diligent']]], + ['swapchaind3d11impl',['SwapChainD3D11Impl',['../class_diligent_1_1_swap_chain_d3_d11_impl.html',1,'Diligent']]], + ['swapchaind3d12impl',['SwapChainD3D12Impl',['../class_diligent_1_1_swap_chain_d3_d12_impl.html',1,'Diligent']]], + ['swapchaindesc',['SwapChainDesc',['../struct_diligent_1_1_swap_chain_desc.html',1,'Diligent::SwapChainDesc'],['../struct_diligent_1_1_swap_chain_desc.html#afebad3ffd438ed535f4613407e4edc4c',1,'Diligent::SwapChainDesc::SwapChainDesc()']]], + ['swapchainglimpl',['SwapChainGLImpl',['../class_diligent_1_1_swap_chain_g_l_impl.html',1,'Diligent']]] +]; diff --git a/doc/html/search/all_11.html b/doc/html/search/all_11.html new file mode 100644 index 00000000..b35c8bf0 --- /dev/null +++ b/doc/html/search/all_11.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_11.js b/doc/html/search/all_11.js new file mode 100644 index 00000000..45154237 --- /dev/null +++ b/doc/html/search/all_11.js @@ -0,0 +1,163 @@ +var searchData= +[ + ['tex1dfmt',['Tex1DFmt',['../struct_diligent_1_1_texture_format_info_ext.html#a3d7aa73d17221417407c033cb340e584',1,'Diligent::TextureFormatInfoExt']]], + ['tex2dfmt',['Tex2DFmt',['../struct_diligent_1_1_texture_format_info_ext.html#a60616f120da2747f0f11c01911efdc6e',1,'Diligent::TextureFormatInfoExt']]], + ['tex3dfmt',['Tex3DFmt',['../struct_diligent_1_1_texture_format_info_ext.html#a1fe3cc09b666032db4b7511b8d5986f5',1,'Diligent::TextureFormatInfoExt']]], + ['tex_5fformat_5fa8_5funorm',['TEX_FORMAT_A8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a3723820d4d3828dfd2f9262a7dba6708',1,'Diligent']]], + ['tex_5fformat_5fb5g5r5a1_5funorm',['TEX_FORMAT_B5G5R5A1_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ab2f7731db1a82c6a1e1e376798668445',1,'Diligent']]], + ['tex_5fformat_5fb5g6r5_5funorm',['TEX_FORMAT_B5G6R5_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465adf11b47f6d9a00acdef8a6365627e236',1,'Diligent']]], + ['tex_5fformat_5fbc1_5ftypeless',['TEX_FORMAT_BC1_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a60f594c52fbcb1533d0cf8509a6c65ce',1,'Diligent']]], + ['tex_5fformat_5fbc1_5funorm',['TEX_FORMAT_BC1_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ab63331cd7ecf61190c25545324ea2ed7',1,'Diligent']]], + ['tex_5fformat_5fbc1_5funorm_5fsrgb',['TEX_FORMAT_BC1_UNORM_SRGB',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ae4ebd6ca8bd89786ce5397f0305bbc6e',1,'Diligent']]], + ['tex_5fformat_5fbc2_5ftypeless',['TEX_FORMAT_BC2_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aa15fff042b0c21e710e300304c30a3ed',1,'Diligent']]], + ['tex_5fformat_5fbc2_5funorm',['TEX_FORMAT_BC2_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a8cc3fcce89d2803794684ef3836da91b',1,'Diligent']]], + ['tex_5fformat_5fbc2_5funorm_5fsrgb',['TEX_FORMAT_BC2_UNORM_SRGB',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ae4c8df626ee847c0edc91e3f4074723e',1,'Diligent']]], + ['tex_5fformat_5fbc3_5ftypeless',['TEX_FORMAT_BC3_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a02c11ecab5cd1536f9f78b8cef4e5ba4',1,'Diligent']]], + ['tex_5fformat_5fbc3_5funorm',['TEX_FORMAT_BC3_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ac9d4bc97bbff4a3e369989e5f092c1fc',1,'Diligent']]], + ['tex_5fformat_5fbc3_5funorm_5fsrgb',['TEX_FORMAT_BC3_UNORM_SRGB',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aee1add9082d7de6c1b9a4e4dfcd6b32e',1,'Diligent']]], + ['tex_5fformat_5fbc4_5fsnorm',['TEX_FORMAT_BC4_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a72f458a370b3931c2a499a834f9a07ad',1,'Diligent']]], + ['tex_5fformat_5fbc4_5ftypeless',['TEX_FORMAT_BC4_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aef84cdaf5c49e1bc88a29138a12908a7',1,'Diligent']]], + ['tex_5fformat_5fbc4_5funorm',['TEX_FORMAT_BC4_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aaf7cc360071c3fa26a55da8e9a49c532',1,'Diligent']]], + ['tex_5fformat_5fbc5_5fsnorm',['TEX_FORMAT_BC5_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a0d3d63ade03dc83ba8e00f54eda5034e',1,'Diligent']]], + ['tex_5fformat_5fbc5_5ftypeless',['TEX_FORMAT_BC5_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ac60117a0faee2761b0af7e2aff3aa9dc',1,'Diligent']]], + ['tex_5fformat_5fbc5_5funorm',['TEX_FORMAT_BC5_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465af220720a273822e42215f64da22a39c2',1,'Diligent']]], + ['tex_5fformat_5fbc6h_5fsf16',['TEX_FORMAT_BC6H_SF16',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aef805e475325f97eec66964176f52a19',1,'Diligent']]], + ['tex_5fformat_5fbc6h_5ftypeless',['TEX_FORMAT_BC6H_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a2006402150aa88e16d5010b7ef808aa6',1,'Diligent']]], + ['tex_5fformat_5fbc6h_5fuf16',['TEX_FORMAT_BC6H_UF16',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aa89eb4d526cbabe4548ccb4e33371eda',1,'Diligent']]], + ['tex_5fformat_5fbc7_5ftypeless',['TEX_FORMAT_BC7_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465adbf9435e67a9b03c4988b191884d2c97',1,'Diligent']]], + ['tex_5fformat_5fbc7_5funorm',['TEX_FORMAT_BC7_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465af0128d2a0c05d795926d1b4be8c3e468',1,'Diligent']]], + ['tex_5fformat_5fbc7_5funorm_5fsrgb',['TEX_FORMAT_BC7_UNORM_SRGB',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a5660aeeaed147beaa9e4bdc8cff42bc5',1,'Diligent']]], + ['tex_5fformat_5fbgra8_5ftypeless',['TEX_FORMAT_BGRA8_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a680df490939619dd7b30ea7037b9a9f7',1,'Diligent']]], + ['tex_5fformat_5fbgra8_5funorm',['TEX_FORMAT_BGRA8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a85c8ec3cafb6f81a2beffd0d1a2ef9bc',1,'Diligent']]], + ['tex_5fformat_5fbgra8_5funorm_5fsrgb',['TEX_FORMAT_BGRA8_UNORM_SRGB',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ad6be5eaf8712b7c04727f9b4803911f5',1,'Diligent']]], + ['tex_5fformat_5fbgrx8_5ftypeless',['TEX_FORMAT_BGRX8_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a01d64cc54ad460cf23844197dbba3f9b',1,'Diligent']]], + ['tex_5fformat_5fbgrx8_5funorm',['TEX_FORMAT_BGRX8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aa4acef99829b6389f46c1d4974c3c608',1,'Diligent']]], + ['tex_5fformat_5fbgrx8_5funorm_5fsrgb',['TEX_FORMAT_BGRX8_UNORM_SRGB',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a849b5daeb4b639e1d7581177ddb53cc5',1,'Diligent']]], + ['tex_5fformat_5fd16_5funorm',['TEX_FORMAT_D16_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aea03d50f3700be94d30dc941aeb40724',1,'Diligent']]], + ['tex_5fformat_5fd24_5funorm_5fs8_5fuint',['TEX_FORMAT_D24_UNORM_S8_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aa984b72a532da68bd1f1fc33d54089c8',1,'Diligent']]], + ['tex_5fformat_5fd32_5ffloat',['TEX_FORMAT_D32_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ac2f008275b02ec4c7a85ac5da386958b',1,'Diligent']]], + ['tex_5fformat_5fd32_5ffloat_5fs8x24_5fuint',['TEX_FORMAT_D32_FLOAT_S8X24_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a8a2edc5d9907cd0426edb134dd9adbc5',1,'Diligent']]], + ['tex_5fformat_5fg8r8_5fg8b8_5funorm',['TEX_FORMAT_G8R8_G8B8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a870215407929c7531a71e7332024e388',1,'Diligent']]], + ['tex_5fformat_5fnum_5fformats',['TEX_FORMAT_NUM_FORMATS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a3dba41239c7c8a7cd6248c0f06a09a65',1,'Diligent']]], + ['tex_5fformat_5fr10g10b10_5fxr_5fbias_5fa2_5funorm',['TEX_FORMAT_R10G10B10_XR_BIAS_A2_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a62a2e8c0db0113b562af2be036586243',1,'Diligent']]], + ['tex_5fformat_5fr11g11b10_5ffloat',['TEX_FORMAT_R11G11B10_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aed9cce1141988f5e228dda57c87b9936',1,'Diligent']]], + ['tex_5fformat_5fr16_5ffloat',['TEX_FORMAT_R16_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a57374ece9cb48fbd4f0f7a834b565462',1,'Diligent']]], + ['tex_5fformat_5fr16_5fsint',['TEX_FORMAT_R16_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aac46b66d97842649d10c8ca15ea0e154',1,'Diligent']]], + ['tex_5fformat_5fr16_5fsnorm',['TEX_FORMAT_R16_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a0611b4b06d9f2395dc9cb22352f3e0e0',1,'Diligent']]], + ['tex_5fformat_5fr16_5ftypeless',['TEX_FORMAT_R16_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ade07fbcd1046d63804856cd55c6f5474',1,'Diligent']]], + ['tex_5fformat_5fr16_5fuint',['TEX_FORMAT_R16_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a6fc0ad69e558e6d0d363e69ada5e84ee',1,'Diligent']]], + ['tex_5fformat_5fr16_5funorm',['TEX_FORMAT_R16_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a29829600ff7adcb7a1f3b0b46ed1a840',1,'Diligent']]], + ['tex_5fformat_5fr1_5funorm',['TEX_FORMAT_R1_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a3de9268103c1ded8e4ffd975c0a705d4',1,'Diligent']]], + ['tex_5fformat_5fr24_5funorm_5fx8_5ftypeless',['TEX_FORMAT_R24_UNORM_X8_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a1bd8929331aee85bc24a61e239a65329',1,'Diligent']]], + ['tex_5fformat_5fr24g8_5ftypeless',['TEX_FORMAT_R24G8_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a31654723813dd33664da93c28781804b',1,'Diligent']]], + ['tex_5fformat_5fr32_5ffloat',['TEX_FORMAT_R32_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a0a5ec081ba06f50f1876d712c95fbbb2',1,'Diligent']]], + ['tex_5fformat_5fr32_5ffloat_5fx8x24_5ftypeless',['TEX_FORMAT_R32_FLOAT_X8X24_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a63e2520343d2091c58583e3738a3cd58',1,'Diligent']]], + ['tex_5fformat_5fr32_5fsint',['TEX_FORMAT_R32_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a7c8dc8d6f51535beca7a2073c3d4ecd5',1,'Diligent']]], + ['tex_5fformat_5fr32_5ftypeless',['TEX_FORMAT_R32_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a74ab0438f398e3fa1bd34156b5b0c507',1,'Diligent']]], + ['tex_5fformat_5fr32_5fuint',['TEX_FORMAT_R32_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a75a8f13a2db57163d48ee3f27e048c24',1,'Diligent']]], + ['tex_5fformat_5fr32g8x24_5ftypeless',['TEX_FORMAT_R32G8X24_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a9dd3ba150529545a79c1193a324775d2',1,'Diligent']]], + ['tex_5fformat_5fr8_5fsint',['TEX_FORMAT_R8_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a4ebb7d7011d8106feb04553e486dd509',1,'Diligent']]], + ['tex_5fformat_5fr8_5fsnorm',['TEX_FORMAT_R8_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a7340ccaf1e5bb4da97f53f9dc9cdaede',1,'Diligent']]], + ['tex_5fformat_5fr8_5ftypeless',['TEX_FORMAT_R8_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a5cb418acea50b394e5dfd254e7ced9f5',1,'Diligent']]], + ['tex_5fformat_5fr8_5fuint',['TEX_FORMAT_R8_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ae9e4c8ead49e7048193fa1dff0d2a823',1,'Diligent']]], + ['tex_5fformat_5fr8_5funorm',['TEX_FORMAT_R8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a21e4a0387472fc3ae5f4c7cc1ba853b7',1,'Diligent']]], + ['tex_5fformat_5frg16_5ffloat',['TEX_FORMAT_RG16_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aa8f7fb1f77bcd0288186783edbdbfe6b',1,'Diligent']]], + ['tex_5fformat_5frg16_5fsint',['TEX_FORMAT_RG16_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a3517095f8afdeb90e4cb8e07d0a4e853',1,'Diligent']]], + ['tex_5fformat_5frg16_5fsnorm',['TEX_FORMAT_RG16_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a7f9b08e92d01fa0d05415a50949f7988',1,'Diligent']]], + ['tex_5fformat_5frg16_5ftypeless',['TEX_FORMAT_RG16_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a75087518065ba0347cc5e7929fb552a7',1,'Diligent']]], + ['tex_5fformat_5frg16_5fuint',['TEX_FORMAT_RG16_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a5d522e3800275249b788a5daef991016',1,'Diligent']]], + ['tex_5fformat_5frg16_5funorm',['TEX_FORMAT_RG16_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a05de082cc29f4eb0a142ef09eb7063a8',1,'Diligent']]], + ['tex_5fformat_5frg32_5ffloat',['TEX_FORMAT_RG32_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aeea76393266977ffa2e7a8b252107133',1,'Diligent']]], + ['tex_5fformat_5frg32_5fsint',['TEX_FORMAT_RG32_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465adbc39705e8dd96a926cf75880096c18b',1,'Diligent']]], + ['tex_5fformat_5frg32_5ftypeless',['TEX_FORMAT_RG32_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a31b76f2efe51b25a7117da969e2b6ed2',1,'Diligent']]], + ['tex_5fformat_5frg32_5fuint',['TEX_FORMAT_RG32_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a3c7c65b42cd75a7d469ed99004afaa6c',1,'Diligent']]], + ['tex_5fformat_5frg8_5fb8g8_5funorm',['TEX_FORMAT_RG8_B8G8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aaa5dfc47c51837ad649fac6f00655841',1,'Diligent']]], + ['tex_5fformat_5frg8_5fsint',['TEX_FORMAT_RG8_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a9151fd16adda2dc9a0ebe06462192ad7',1,'Diligent']]], + ['tex_5fformat_5frg8_5fsnorm',['TEX_FORMAT_RG8_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a981eca1860bc430747e5f2107c3668d4',1,'Diligent']]], + ['tex_5fformat_5frg8_5ftypeless',['TEX_FORMAT_RG8_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465acc9be5a43fc28f9ad4c8bb351683c536',1,'Diligent']]], + ['tex_5fformat_5frg8_5fuint',['TEX_FORMAT_RG8_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a3e39944f1f4957c628463ea255827581',1,'Diligent']]], + ['tex_5fformat_5frg8_5funorm',['TEX_FORMAT_RG8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aae3fd0b0cf035ee8baaedd0af7d4bf1a',1,'Diligent']]], + ['tex_5fformat_5frgb10a2_5ftypeless',['TEX_FORMAT_RGB10A2_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ae2607a3439026f2d40895acb46b9f5b5',1,'Diligent']]], + ['tex_5fformat_5frgb10a2_5fuint',['TEX_FORMAT_RGB10A2_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a1a64579f737dd72bff3657a9c6ee9077',1,'Diligent']]], + ['tex_5fformat_5frgb10a2_5funorm',['TEX_FORMAT_RGB10A2_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a2710e10dfc4a6192e1769a6994551f3f',1,'Diligent']]], + ['tex_5fformat_5frgb32_5ffloat',['TEX_FORMAT_RGB32_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a4590c9158584f05893636a5d97db2e4a',1,'Diligent']]], + ['tex_5fformat_5frgb32_5fsint',['TEX_FORMAT_RGB32_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a8ffd14c97e1097079a88d16bc60a9145',1,'Diligent']]], + ['tex_5fformat_5frgb32_5ftypeless',['TEX_FORMAT_RGB32_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ae5f5acf9a6bbf8af39897c463502da0a',1,'Diligent']]], + ['tex_5fformat_5frgb32_5fuint',['TEX_FORMAT_RGB32_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a9eae2e4849709bcfec90276e67ac7f6b',1,'Diligent']]], + ['tex_5fformat_5frgb9e5_5fsharedexp',['TEX_FORMAT_RGB9E5_SHAREDEXP',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a9a560e8e14a941193b18ea3c751da263',1,'Diligent']]], + ['tex_5fformat_5frgba16_5ffloat',['TEX_FORMAT_RGBA16_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465adaa6d237efff5ee2324c3eb3c823e896',1,'Diligent']]], + ['tex_5fformat_5frgba16_5fsint',['TEX_FORMAT_RGBA16_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a2e395f3bd00e9ff71918447997192ce6',1,'Diligent']]], + ['tex_5fformat_5frgba16_5fsnorm',['TEX_FORMAT_RGBA16_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a71b0ad28b1acc91bc51c7313d981d116',1,'Diligent']]], + ['tex_5fformat_5frgba16_5ftypeless',['TEX_FORMAT_RGBA16_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465abfda350d368dfaac50622ac75df912dc',1,'Diligent']]], + ['tex_5fformat_5frgba16_5fuint',['TEX_FORMAT_RGBA16_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ac797c35718d5c17cad6f24b17d08ac9f',1,'Diligent']]], + ['tex_5fformat_5frgba16_5funorm',['TEX_FORMAT_RGBA16_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a1efb4f2505cd9631e84e5fb18c6af583',1,'Diligent']]], + ['tex_5fformat_5frgba32_5ffloat',['TEX_FORMAT_RGBA32_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ab9d0f625089592e367942df3c4b518f3',1,'Diligent']]], + ['tex_5fformat_5frgba32_5fsint',['TEX_FORMAT_RGBA32_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ada571f62be667654827c9dc2db417b8f',1,'Diligent']]], + ['tex_5fformat_5frgba32_5ftypeless',['TEX_FORMAT_RGBA32_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a4fee2013ae50b1b380735982b701f18c',1,'Diligent']]], + ['tex_5fformat_5frgba32_5fuint',['TEX_FORMAT_RGBA32_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a8e8af2b7e659503f7d143e9af26444f5',1,'Diligent']]], + ['tex_5fformat_5frgba8_5fsint',['TEX_FORMAT_RGBA8_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a971e25859d3b4412f0c3c50bab73d050',1,'Diligent']]], + ['tex_5fformat_5frgba8_5fsnorm',['TEX_FORMAT_RGBA8_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aee7096ae28505b3d8a5a3b35dd6a6137',1,'Diligent']]], + ['tex_5fformat_5frgba8_5ftypeless',['TEX_FORMAT_RGBA8_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a2adaa9f08962f9d5656966bb22ca4890',1,'Diligent']]], + ['tex_5fformat_5frgba8_5fuint',['TEX_FORMAT_RGBA8_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a1a4330e66e6d3435a44a27e546c71ed4',1,'Diligent']]], + ['tex_5fformat_5frgba8_5funorm',['TEX_FORMAT_RGBA8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a0bdd5c2150977a0d9092831c1f45e61b',1,'Diligent']]], + ['tex_5fformat_5frgba8_5funorm_5fsrgb',['TEX_FORMAT_RGBA8_UNORM_SRGB',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a86a2e99aecff070023e1dd0331fb9a95',1,'Diligent']]], + ['tex_5fformat_5funknown',['TEX_FORMAT_UNKNOWN',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465abbb06fb704822d0fd64d9e1e9e07eb7d',1,'Diligent']]], + ['tex_5fformat_5fx24_5ftypeless_5fg8_5fuint',['TEX_FORMAT_X24_TYPELESS_G8_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a33c39e645a66ed967ede7d1ff30c807c',1,'Diligent']]], + ['tex_5fformat_5fx32_5ftypeless_5fg8x24_5fuint',['TEX_FORMAT_X32_TYPELESS_G8X24_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a2e0d8a8dd3f7a02b3decd77f1dd70ab3',1,'Diligent']]], + ['texcaps',['TexCaps',['../struct_diligent_1_1_device_caps.html#ac95e490fb96d7bd0b4d1d91eb8d0c3bc',1,'Diligent::DeviceCaps']]], + ['texcubefmt',['TexCubeFmt',['../struct_diligent_1_1_texture_format_info_ext.html#a2983887c36e8830793cd2bea39519f9b',1,'Diligent::TextureFormatInfoExt']]], + ['texture1d_5fd3d11',['Texture1D_D3D11',['../class_diligent_1_1_texture1_d___d3_d11.html',1,'Diligent']]], + ['texture2d_5fd3d11',['Texture2D_D3D11',['../class_diligent_1_1_texture2_d___d3_d11.html',1,'Diligent']]], + ['texture3d_5fd3d11',['Texture3D_D3D11',['../class_diligent_1_1_texture3_d___d3_d11.html',1,'Diligent']]], + ['texture_5faddress_5fborder',['TEXTURE_ADDRESS_BORDER',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1a3f55d99e8bb9fbd60ad58ad42f7754cd',1,'Diligent']]], + ['texture_5faddress_5fclamp',['TEXTURE_ADDRESS_CLAMP',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1a5fc53ee0a53cc9c08ab0ede8c1305c7f',1,'Diligent']]], + ['texture_5faddress_5fmirror',['TEXTURE_ADDRESS_MIRROR',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1a64f197d0273cc23aec726ab2738dd45b',1,'Diligent']]], + ['texture_5faddress_5fmirror_5fonce',['TEXTURE_ADDRESS_MIRROR_ONCE',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1afadca32bf8a0f145bc506aa8583712c2',1,'Diligent']]], + ['texture_5faddress_5fmode',['TEXTURE_ADDRESS_MODE',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1',1,'Diligent']]], + ['texture_5faddress_5fnum_5fmodes',['TEXTURE_ADDRESS_NUM_MODES',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1a2d13beda40c3a09062c17faea418d142',1,'Diligent']]], + ['texture_5faddress_5funknown',['TEXTURE_ADDRESS_UNKNOWN',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1ae4eb70142178447e2c072c2d66d5c002',1,'Diligent']]], + ['texture_5faddress_5fwrap',['TEXTURE_ADDRESS_WRAP',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1a1aa369d33dd824b995deacb66a03bb32',1,'Diligent']]], + ['texture_5fformat',['TEXTURE_FORMAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465',1,'Diligent']]], + ['texture_5fview_5fdepth_5fstencil',['TEXTURE_VIEW_DEPTH_STENCIL',['../namespace_diligent.html#a4f10ca1e5c5034aa6dcc86224d1189bdaf974362f40fbd2a6062e8220124a86aa',1,'Diligent']]], + ['texture_5fview_5fnum_5fviews',['TEXTURE_VIEW_NUM_VIEWS',['../namespace_diligent.html#a4f10ca1e5c5034aa6dcc86224d1189bdab5bd5c90bb6c469b63cffe7947832970',1,'Diligent']]], + ['texture_5fview_5frender_5ftarget',['TEXTURE_VIEW_RENDER_TARGET',['../namespace_diligent.html#a4f10ca1e5c5034aa6dcc86224d1189bdae7e090499e01b1aa0e57e7d71c9e7d22',1,'Diligent']]], + ['texture_5fview_5fshader_5fresource',['TEXTURE_VIEW_SHADER_RESOURCE',['../namespace_diligent.html#a4f10ca1e5c5034aa6dcc86224d1189bdacd9fed7b22b88f0a8b40d0d98d3c1243',1,'Diligent']]], + ['texture_5fview_5ftype',['TEXTURE_VIEW_TYPE',['../namespace_diligent.html#a4f10ca1e5c5034aa6dcc86224d1189bd',1,'Diligent']]], + ['texture_5fview_5fundefined',['TEXTURE_VIEW_UNDEFINED',['../namespace_diligent.html#a4f10ca1e5c5034aa6dcc86224d1189bdaf08182e262af9a13ffed563d3ae6a791',1,'Diligent']]], + ['texture_5fview_5funordered_5faccess',['TEXTURE_VIEW_UNORDERED_ACCESS',['../namespace_diligent.html#a4f10ca1e5c5034aa6dcc86224d1189bda54fbca78137e0827e5691c21dde2d248',1,'Diligent']]], + ['texturebase',['TextureBase',['../class_diligent_1_1_texture_base.html',1,'Diligent::TextureBase< BaseInterface, TTextureViewImpl, TTexViewObjAllocator >'],['../class_diligent_1_1_texture_base.html#ab57ba2c59cef18b9a9a1b5d265108271',1,'Diligent::TextureBase::TextureBase()']]], + ['texturebase_3c_20itextured3d11_2c_20textureviewd3d11impl_2c_20fixedblockmemoryallocator_20_3e',['TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >',['../class_diligent_1_1_texture_base.html',1,'Diligent']]], + ['texturebase_3c_20itextured3d12_2c_20textureviewd3d12impl_2c_20fixedblockmemoryallocator_20_3e',['TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >',['../class_diligent_1_1_texture_base.html',1,'Diligent']]], + ['texturebase_3c_20itexturegl_2c_20textureviewglimpl_2c_20fixedblockmemoryallocator_20_3e',['TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >',['../class_diligent_1_1_texture_base.html',1,'Diligent']]], + ['texturebased3d11',['TextureBaseD3D11',['../class_diligent_1_1_texture_base_d3_d11.html',1,'Diligent']]], + ['texturebasegl',['TextureBaseGL',['../class_diligent_1_1_texture_base_g_l.html',1,'Diligent']]], + ['texturecaps',['TextureCaps',['../struct_diligent_1_1_texture_caps.html',1,'Diligent::TextureCaps'],['../struct_diligent_1_1_texture_caps.html#a325029c491ac552b745fe03bcf63e0e0',1,'Diligent::TextureCaps::TextureCaps()']]], + ['textured3d12impl',['TextureD3D12Impl',['../class_diligent_1_1_texture_d3_d12_impl.html',1,'Diligent']]], + ['texturedata',['TextureData',['../struct_diligent_1_1_texture_data.html',1,'Diligent::TextureData'],['../struct_diligent_1_1_texture_data.html#af0c0f1f5b7dbfc6f6c9d81e3646f48bf',1,'Diligent::TextureData::TextureData()']]], + ['texturedesc',['TextureDesc',['../struct_diligent_1_1_texture_desc.html',1,'Diligent::TextureDesc'],['../struct_diligent_1_1_texture_desc.html#aab1ba608a78b7eee921a94caa6f8c024',1,'Diligent::TextureDesc::TextureDesc()']]], + ['texturedim',['TextureDim',['../struct_diligent_1_1_texture_view_desc.html#ada0c9b06dd0b57096f8de1ed39e762ae',1,'Diligent::TextureViewDesc']]], + ['textureformatattribs',['TextureFormatAttribs',['../struct_diligent_1_1_texture_format_attribs.html',1,'Diligent::TextureFormatAttribs'],['../struct_diligent_1_1_texture_format_attribs.html#aea0954abcd11cbf0f9fe335be05716a9',1,'Diligent::TextureFormatAttribs::TextureFormatAttribs()']]], + ['textureformatinfo',['TextureFormatInfo',['../struct_diligent_1_1_texture_format_info.html',1,'Diligent::TextureFormatInfo'],['../struct_diligent_1_1_texture_format_info.html#a5ca4422a66a3d04dc4743d2b28e95321',1,'Diligent::TextureFormatInfo::TextureFormatInfo()']]], + ['textureformatinfoext',['TextureFormatInfoExt',['../struct_diligent_1_1_texture_format_info_ext.html',1,'Diligent::TextureFormatInfoExt'],['../struct_diligent_1_1_texture_format_info_ext.html#aec1531e0d19e57b0c3f11a6e1fce1741',1,'Diligent::TextureFormatInfoExt::TextureFormatInfoExt()']]], + ['texturename',['TextureName',['../struct_diligent_1_1_static_sampler_desc.html#a956d466b6039e2b23d3e14ee85b1b28c',1,'Diligent::StaticSamplerDesc']]], + ['texturesubresdata',['TextureSubResData',['../struct_diligent_1_1_texture_sub_res_data.html',1,'Diligent::TextureSubResData'],['../struct_diligent_1_1_texture_sub_res_data.html#a8198bdcafb7971398448a701dfa6b329',1,'Diligent::TextureSubResData::TextureSubResData()'],['../struct_diligent_1_1_texture_sub_res_data.html#a7035a123eda79ee0670960f011098beb',1,'Diligent::TextureSubResData::TextureSubResData(void *_pData, Uint32 _Stride, Uint32 _DepthStride=0)'],['../struct_diligent_1_1_texture_sub_res_data.html#a1a5c731825d0f686668f1f6bb3711224',1,'Diligent::TextureSubResData::TextureSubResData(IBuffer *_pBuffer, Uint32 _Stride, Uint32 _DepthStride=0)']]], + ['textureviewbase',['TextureViewBase',['../class_diligent_1_1_texture_view_base.html',1,'Diligent::TextureViewBase< BaseInterface >'],['../class_diligent_1_1_texture_view_base.html#af39c54431780ae60fd925d898050e651',1,'Diligent::TextureViewBase::TextureViewBase()']]], + ['textureviewbase_3c_20itextureviewd3d11_20_3e',['TextureViewBase< ITextureViewD3D11 >',['../class_diligent_1_1_texture_view_base.html',1,'Diligent']]], + ['textureviewbase_3c_20itextureviewd3d12_20_3e',['TextureViewBase< ITextureViewD3D12 >',['../class_diligent_1_1_texture_view_base.html',1,'Diligent']]], + ['textureviewbase_3c_20itextureviewgl_20_3e',['TextureViewBase< ITextureViewGL >',['../class_diligent_1_1_texture_view_base.html',1,'Diligent']]], + ['textureviewd3d11impl',['TextureViewD3D11Impl',['../class_diligent_1_1_texture_view_d3_d11_impl.html',1,'Diligent']]], + ['textureviewd3d12impl',['TextureViewD3D12Impl',['../class_diligent_1_1_texture_view_d3_d12_impl.html',1,'Diligent']]], + ['textureviewdesc',['TextureViewDesc',['../struct_diligent_1_1_texture_view_desc.html',1,'Diligent::TextureViewDesc'],['../struct_diligent_1_1_texture_view_desc.html#ae636c6540cdc1772f68af208174b8bed',1,'Diligent::TextureViewDesc::TextureViewDesc()']]], + ['textureviewglimpl',['TextureViewGLImpl',['../class_diligent_1_1_texture_view_g_l_impl.html',1,'Diligent']]], + ['threadgroupcountx',['ThreadGroupCountX',['../struct_diligent_1_1_dispatch_compute_attribs.html#ad6268495eacc1bdf2ae19538c5937c20',1,'Diligent::DispatchComputeAttribs']]], + ['threadgroupcounty',['ThreadGroupCountY',['../struct_diligent_1_1_dispatch_compute_attribs.html#a8e6828a4ff791324c42da5d296dac179',1,'Diligent::DispatchComputeAttribs']]], + ['threadgroupcountz',['ThreadGroupCountZ',['../struct_diligent_1_1_dispatch_compute_attribs.html#a0f7645f8572efd2cdf1a614ac2aca873',1,'Diligent::DispatchComputeAttribs']]], + ['top',['top',['../struct_diligent_1_1_rect.html#a2f179f7e304da900265df76803eb9de7',1,'Diligent::Rect']]], + ['topleftx',['TopLeftX',['../struct_diligent_1_1_viewport.html#a7362f6cfa69acfd6eb6a6471d11f8119',1,'Diligent::Viewport']]], + ['toplefty',['TopLeftY',['../struct_diligent_1_1_viewport.html#aa160a6d5d178c0b9cefc64c4e1442103',1,'Diligent::Viewport']]], + ['topology',['Topology',['../struct_diligent_1_1_draw_attribs.html#a377ef56a20ed55eea4f7cf908f24797c',1,'Diligent::DrawAttribs']]], + ['transitionbufferstate',['TransitionBufferState',['../class_diligent_1_1_device_context_d3_d12_impl.html#acfa61fa64e29aabcaf409ad3b046cb19',1,'Diligent::DeviceContextD3D12Impl::TransitionBufferState()'],['../class_diligent_1_1_i_device_context_d3_d12.html#a32dd9c551e75e475ee1db52c30e864c2',1,'Diligent::IDeviceContextD3D12::TransitionBufferState()']]], + ['transitionshaderresources',['TransitionShaderResources',['../class_diligent_1_1_device_context_d3_d11_impl.html#a50154dc4fbd19504c8e05e929bf8fa8c',1,'Diligent::DeviceContextD3D11Impl::TransitionShaderResources()'],['../class_diligent_1_1_device_context_g_l_impl.html#a7e8c475f0861a6feeb55befa51559b0c',1,'Diligent::DeviceContextGLImpl::TransitionShaderResources()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#ab06c150372ad091846090999c2f496fd',1,'Diligent::DeviceContextD3D12Impl::TransitionShaderResources()'],['../class_diligent_1_1_i_device_context.html#ad5f57343e1bbaf93831af9c0e262866b',1,'Diligent::IDeviceContext::TransitionShaderResources()']]], + ['transitiontexturestate',['TransitionTextureState',['../class_diligent_1_1_device_context_d3_d12_impl.html#a19f2b021aa089ee332ef4a35333589aa',1,'Diligent::DeviceContextD3D12Impl::TransitionTextureState()'],['../class_diligent_1_1_i_device_context_d3_d12.html#a1b4a0b051a9a1dee11c3dcaec0b5586a',1,'Diligent::IDeviceContextD3D12::TransitionTextureState()']]], + ['type',['Type',['../struct_diligent_1_1_shader_variable_desc.html#ab64013ee9fa8680ff4bc065adec33fa3',1,'Diligent::ShaderVariableDesc::Type()'],['../struct_diligent_1_1_texture_desc.html#ac2f19e2db2d62d58ecaae3b0f1c35490',1,'Diligent::TextureDesc::Type()']]] +]; diff --git a/doc/html/search/all_12.html b/doc/html/search/all_12.html new file mode 100644 index 00000000..fd265245 --- /dev/null +++ b/doc/html/search/all_12.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_12.js b/doc/html/search/all_12.js new file mode 100644 index 00000000..5f89522c --- /dev/null +++ b/doc/html/search/all_12.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['uav_5faccess_5fflag',['UAV_ACCESS_FLAG',['../namespace_diligent.html#a21f4e67e54527088e9ece576bf9c57b5',1,'Diligent']]], + ['uav_5faccess_5fflag_5fread',['UAV_ACCESS_FLAG_READ',['../namespace_diligent.html#a21f4e67e54527088e9ece576bf9c57b5ad42d434e060adc1108c8ae76a01e0001',1,'Diligent']]], + ['uav_5faccess_5fflag_5fread_5fwrite',['UAV_ACCESS_FLAG_READ_WRITE',['../namespace_diligent.html#a21f4e67e54527088e9ece576bf9c57b5a25a679f6814bcfb15998ba9e33077160',1,'Diligent']]], + ['uav_5faccess_5fflag_5fwrite',['UAV_ACCESS_FLAG_WRITE',['../namespace_diligent.html#a21f4e67e54527088e9ece576bf9c57b5afd106074c09decf99fde5a22568c0f96',1,'Diligent']]], + ['uav_5faccess_5funspecified',['UAV_ACCESS_UNSPECIFIED',['../namespace_diligent.html#a21f4e67e54527088e9ece576bf9c57b5af428b78aff9e3214463f0b6c11c6abfe',1,'Diligent']]], + ['uisizeinbytes',['uiSizeInBytes',['../struct_diligent_1_1_buffer_desc.html#a544e39f4d04894bc88237f22fc26fda8',1,'Diligent::BufferDesc']]], + ['undefined',['Undefined',['../namespace_diligent.html#a905d9d44892311167e9b28962bbf7e18aec0fc0100c4fc1ce4eea230c3dc10360',1,'Diligent']]], + ['unmap',['Unmap',['../class_diligent_1_1_buffer_d3_d11_impl.html#a3d0b88970c8762a4fd91e0ee96f96d42',1,'Diligent::BufferD3D11Impl::Unmap()'],['../class_diligent_1_1_texture_base_d3_d11.html#a1befa21d692561ad8143f33c80c3b2bd',1,'Diligent::TextureBaseD3D11::Unmap()'],['../class_diligent_1_1_buffer_g_l_impl.html#ae811627a470253192a9b34a578987986',1,'Diligent::BufferGLImpl::Unmap()'],['../class_diligent_1_1_texture_base_g_l.html#a771d0fa96be08e567b09cb22dfe9cf83',1,'Diligent::TextureBaseGL::Unmap()'],['../class_diligent_1_1_buffer_d3_d12_impl.html#a82bc5519edc10eebb0d193ac449339c0',1,'Diligent::BufferD3D12Impl::Unmap()'],['../class_diligent_1_1_texture_d3_d12_impl.html#a29700533b4983a0514a3a9b2ee4d548c',1,'Diligent::TextureD3D12Impl::Unmap()'],['../class_diligent_1_1_buffer_base.html#a36a0b578084d631a5d5547221f1f3eb4',1,'Diligent::BufferBase::Unmap()'],['../class_diligent_1_1_texture_base.html#ad1136237abd271ed16feb7972185b0fd',1,'Diligent::TextureBase::Unmap()'],['../class_diligent_1_1_i_buffer.html#a086169aac806b3a0b6f3b69a53c7bfa8',1,'Diligent::IBuffer::Unmap()'],['../class_diligent_1_1_map_helper.html#a62664e78fcdd9778302ff19f1c4c0ac6',1,'Diligent::MapHelper::Unmap()'],['../class_diligent_1_1_i_texture.html#af7ccbdefee685cb40a92ffb2fbb4c4ed',1,'Diligent::ITexture::Unmap()']]], + ['updatecurrentglcontext',['UpdateCurrentGLContext',['../class_diligent_1_1_device_context_g_l_impl.html#aada214b26f0289e0a7bcb7f9d4bcd626',1,'Diligent::DeviceContextGLImpl::UpdateCurrentGLContext()'],['../class_diligent_1_1_i_device_context_g_l.html#ae7207bb0aa6f055bcbecf1c4e187221f',1,'Diligent::IDeviceContextGL::UpdateCurrentGLContext()']]], + ['updatedata',['UpdateData',['../class_diligent_1_1_buffer_d3_d11_impl.html#ad05f05b7354d4b03ff042853a5283cda',1,'Diligent::BufferD3D11Impl::UpdateData()'],['../class_diligent_1_1_texture_base_d3_d11.html#a170da425e02469cadc16939a9fa7aeb4',1,'Diligent::TextureBaseD3D11::UpdateData()'],['../class_diligent_1_1_buffer_g_l_impl.html#ad13e71c052046cd38e5cc1d72ff3db70',1,'Diligent::BufferGLImpl::UpdateData()'],['../class_diligent_1_1_buffer_d3_d12_impl.html#abcf79071aa2bd6cf5c6559cf9a819348',1,'Diligent::BufferD3D12Impl::UpdateData()'],['../class_diligent_1_1_texture_d3_d12_impl.html#abc3712b7390da6ee07e0f0ec9d9ea115',1,'Diligent::TextureD3D12Impl::UpdateData()'],['../class_diligent_1_1_buffer_base.html#ad470fd908943c4408afcfc4c17abd129',1,'Diligent::BufferBase::UpdateData()'],['../class_diligent_1_1_texture_base.html#a8ebdab4ab9ffafd8fbf2470b74ee161f',1,'Diligent::TextureBase::UpdateData()'],['../class_diligent_1_1_i_buffer.html#a555a93cbf1811ea5bbf9222aacbaf4bc',1,'Diligent::IBuffer::UpdateData()'],['../class_diligent_1_1_i_texture.html#a8a3e8c23344b0fce96f61ea6732c0782',1,'Diligent::ITexture::UpdateData()']]], + ['usage',['Usage',['../struct_diligent_1_1_buffer_desc.html#a6f7b6c6ec7a2d6fd986ae2c2af9f315d',1,'Diligent::BufferDesc::Usage()'],['../struct_diligent_1_1_texture_desc.html#a2379f3e799a8b97f8c36c6ec1a42937c',1,'Diligent::TextureDesc::Usage()'],['../namespace_diligent.html#a5342fb015dbf7f2e638dbfccc325a746',1,'Diligent::USAGE()']]], + ['usage_5fcpu_5faccessible',['USAGE_CPU_ACCESSIBLE',['../namespace_diligent.html#a5342fb015dbf7f2e638dbfccc325a746ab62b9db4fc8e7188615217ab196e4985',1,'Diligent']]], + ['usage_5fdefault',['USAGE_DEFAULT',['../namespace_diligent.html#a5342fb015dbf7f2e638dbfccc325a746ae6658ba1c8f4426a8b0bdae1b7e3ae64',1,'Diligent']]], + ['usage_5fdynamic',['USAGE_DYNAMIC',['../namespace_diligent.html#a5342fb015dbf7f2e638dbfccc325a746a99a6c4fe39b32dc6f6f247554fa2eb1c',1,'Diligent']]], + ['usage_5fstatic',['USAGE_STATIC',['../namespace_diligent.html#a5342fb015dbf7f2e638dbfccc325a746aad6764a09ac229be9768507bf46c9747',1,'Diligent']]] +]; diff --git a/doc/html/search/all_13.html b/doc/html/search/all_13.html new file mode 100644 index 00000000..04f66e2f --- /dev/null +++ b/doc/html/search/all_13.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_13.js b/doc/html/search/all_13.js new file mode 100644 index 00000000..ee9e3207 --- /dev/null +++ b/doc/html/search/all_13.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['value_5ftype',['VALUE_TYPE',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957a',1,'Diligent']]], + ['valuetype',['ValueType',['../struct_diligent_1_1_buffer_desc_1_1_buffer_format.html#a014b1706b85db02a1be3799fd74ed9e9',1,'Diligent::BufferDesc::BufferFormat::ValueType()'],['../struct_diligent_1_1_layout_element.html#ac271843df1d7e276a504c12b4315e6e0',1,'Diligent::LayoutElement::ValueType()']]], + ['variabledesc',['VariableDesc',['../struct_diligent_1_1_shader_desc.html#a23854ef77a41630f14fcfc44b679f99a',1,'Diligent::ShaderDesc']]], + ['verifycommittedresourcerelevance',['VerifyCommittedResourceRelevance',['../namespace_diligent.html#a5c8758ce3fd35ebeff55489fba521a85a34263dc9e0364b5d7788048e0f993602',1,'Diligent']]], + ['verifycommittedshaderresources',['VerifyCommittedShaderResources',['../namespace_diligent.html#a5c8758ce3fd35ebeff55489fba521a85ab7d453859af84f92bcc33549827f05d9',1,'Diligent']]], + ['vertexstreaminfo',['VertexStreamInfo',['../struct_diligent_1_1_vertex_stream_info.html',1,'Diligent']]], + ['viewport',['Viewport',['../struct_diligent_1_1_viewport.html',1,'Diligent::Viewport'],['../struct_diligent_1_1_viewport.html#a1b94a0a7a166bf2f3bc40982be910b03',1,'Diligent::Viewport::Viewport()']]], + ['viewtype',['ViewType',['../struct_diligent_1_1_buffer_view_desc.html#ae7f3af81f195fd5c6c25ee9cc274bc55',1,'Diligent::BufferViewDesc::ViewType()'],['../struct_diligent_1_1_texture_view_desc.html#aff7202999e6f78d0f51e58ceb2e9e301',1,'Diligent::TextureViewDesc::ViewType()']]], + ['vt_5ffloat16',['VT_FLOAT16',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aa655c4d977016936a18aa460c739d65e4',1,'Diligent']]], + ['vt_5ffloat32',['VT_FLOAT32',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aafa7b5254b72dfc30886aa0578d783f94',1,'Diligent']]], + ['vt_5fint16',['VT_INT16',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aa3de9144a26c37fb6f00e6ab31019011a',1,'Diligent']]], + ['vt_5fint32',['VT_INT32',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aadce96830d631236f889b6131d8f93927',1,'Diligent']]], + ['vt_5fint8',['VT_INT8',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aa69a8f2c4802cb3dad00664337211e3d5',1,'Diligent']]], + ['vt_5fnum_5ftypes',['VT_NUM_TYPES',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aa404899904bf53c07bbdce4cdb2dc0fab',1,'Diligent']]], + ['vt_5fuint16',['VT_UINT16',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aa0e15f9d0c65df848ae20a42d67b78ee2',1,'Diligent']]], + ['vt_5fuint32',['VT_UINT32',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aa8d8ad1b30a33c40ba392d626909e200e',1,'Diligent']]], + ['vt_5fuint8',['VT_UINT8',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aae4d8703975c37ec65b37a255db3d573f',1,'Diligent']]], + ['vt_5fundefined',['VT_UNDEFINED',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aaa647691eb129443ff684b379a29819ab',1,'Diligent']]] +]; diff --git a/doc/html/search/all_14.html b/doc/html/search/all_14.html new file mode 100644 index 00000000..285f34bd --- /dev/null +++ b/doc/html/search/all_14.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_14.js b/doc/html/search/all_14.js new file mode 100644 index 00000000..50b71ba8 --- /dev/null +++ b/doc/html/search/all_14.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['width',['Width',['../struct_diligent_1_1_viewport.html#a2f96ff65484cd8f703ada0678f32a3e7',1,'Diligent::Viewport::Width()'],['../struct_diligent_1_1_swap_chain_desc.html#a93578e91e15e6546d33e292a9a43397a',1,'Diligent::SwapChainDesc::Width()'],['../struct_diligent_1_1_texture_desc.html#a9726140fc14cf4b4c0a274a2c5322709',1,'Diligent::TextureDesc::Width()']]], + ['write',['Write',['../class_diligent_1_1_basic_file_stream.html#a5ed589fefc69ac4ce56180f121bdf648',1,'Diligent::BasicFileStream']]] +]; diff --git a/doc/html/search/all_15.html b/doc/html/search/all_15.html new file mode 100644 index 00000000..0ed74e01 --- /dev/null +++ b/doc/html/search/all_15.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_15.js b/doc/html/search/all_15.js new file mode 100644 index 00000000..2263ccc2 --- /dev/null +++ b/doc/html/search/all_15.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['_7emaphelper',['~MapHelper',['../class_diligent_1_1_map_helper.html#a029c5809ad62fe02fd7b8453bff4208a',1,'Diligent::MapHelper']]], + ['_7esamplerbase',['~SamplerBase',['../class_diligent_1_1_sampler_base.html#ae5d5e692c43d7d262265e4226d031007',1,'Diligent::SamplerBase']]] +]; diff --git a/doc/html/search/all_2.html b/doc/html/search/all_2.html new file mode 100644 index 00000000..2f17735e --- /dev/null +++ b/doc/html/search/all_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_2.js b/doc/html/search/all_2.js new file mode 100644 index 00000000..d736c5c1 --- /dev/null +++ b/doc/html/search/all_2.js @@ -0,0 +1,89 @@ +var searchData= +[ + ['cachedcb',['CachedCB',['../struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_c_b.html',1,'Diligent::ShaderResourceCacheD3D11']]], + ['cachedresource',['CachedResource',['../struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_resource.html',1,'Diligent::ShaderResourceCacheD3D11']]], + ['cachedsampler',['CachedSampler',['../struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_sampler.html',1,'Diligent::ShaderResourceCacheD3D11']]], + ['clear_5fdepth_5fflag',['CLEAR_DEPTH_FLAG',['../namespace_diligent.html#aafeefaa870f5db1389590baa5d95058ba34afbc9a33f86780875da153ca6b2e48',1,'Diligent']]], + ['clear_5fdepth_5fstencil_5fflags',['CLEAR_DEPTH_STENCIL_FLAGS',['../namespace_diligent.html#aafeefaa870f5db1389590baa5d95058b',1,'Diligent']]], + ['clear_5fstencil_5fflag',['CLEAR_STENCIL_FLAG',['../namespace_diligent.html#aafeefaa870f5db1389590baa5d95058ba9f709957bf297f9f5e8ae3e2687302f8',1,'Diligent']]], + ['cleardepthstencil',['ClearDepthStencil',['../class_diligent_1_1_device_context_d3_d11_impl.html#a5175c43149f984dd3bebf6b421e39bea',1,'Diligent::DeviceContextD3D11Impl::ClearDepthStencil()'],['../class_diligent_1_1_device_context_g_l_impl.html#a6aecda5fc0ed209c140dca144081676f',1,'Diligent::DeviceContextGLImpl::ClearDepthStencil()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#aa5da52fb862de0daa38da2201325619c',1,'Diligent::DeviceContextD3D12Impl::ClearDepthStencil()'],['../class_diligent_1_1_i_device_context.html#a0c3efb4b15c56837a9e252772c222994',1,'Diligent::IDeviceContext::ClearDepthStencil()']]], + ['clearrendertarget',['ClearRenderTarget',['../class_diligent_1_1_device_context_d3_d11_impl.html#a38a49a11bff991901c6d2efe8e02502e',1,'Diligent::DeviceContextD3D11Impl::ClearRenderTarget()'],['../class_diligent_1_1_device_context_g_l_impl.html#ac60ce0cbb46f3109a7b3813dc0f4ea66',1,'Diligent::DeviceContextGLImpl::ClearRenderTarget()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#ad03325e9666bb7561d7c2c6754e08c7b',1,'Diligent::DeviceContextD3D12Impl::ClearRenderTarget()'],['../class_diligent_1_1_i_device_context.html#a27883957762f2e42f6dba9727a80b777',1,'Diligent::IDeviceContext::ClearRenderTarget()']]], + ['clearstatecache',['ClearStateCache',['../class_diligent_1_1_device_context_base.html#a775cf0092f0305be7732fe6c1ebfcbd8',1,'Diligent::DeviceContextBase']]], + ['clearvalue',['ClearValue',['../struct_diligent_1_1_texture_desc.html#ab13dcc16058700967e89c21ac1790cea',1,'Diligent::TextureDesc']]], + ['color',['Color',['../struct_diligent_1_1_optimized_clear_value.html#a11898e2bde2185d78d2ca05bc850e92f',1,'Diligent::OptimizedClearValue']]], + ['color_5fmask',['COLOR_MASK',['../namespace_diligent.html#a8dfef3a8f30375369b1ea5fe76abc35c',1,'Diligent']]], + ['color_5fmask_5fall',['COLOR_MASK_ALL',['../namespace_diligent.html#a8dfef3a8f30375369b1ea5fe76abc35cafd8cebfdaacbc52fff4edae2102ced91',1,'Diligent']]], + ['color_5fmask_5falpha',['COLOR_MASK_ALPHA',['../namespace_diligent.html#a8dfef3a8f30375369b1ea5fe76abc35ca8914c618d54477b9fa5f2b2323f0f726',1,'Diligent']]], + ['color_5fmask_5fblue',['COLOR_MASK_BLUE',['../namespace_diligent.html#a8dfef3a8f30375369b1ea5fe76abc35ca96c4ad2861f747d80853e59ee8bc9f73',1,'Diligent']]], + ['color_5fmask_5fgreen',['COLOR_MASK_GREEN',['../namespace_diligent.html#a8dfef3a8f30375369b1ea5fe76abc35ca0c48f62df6e9f3dd4a13a0a8125a5176',1,'Diligent']]], + ['color_5fmask_5fred',['COLOR_MASK_RED',['../namespace_diligent.html#a8dfef3a8f30375369b1ea5fe76abc35cab98fdb1a5bf1764c6c29e44adda56eec',1,'Diligent']]], + ['colorbufferformat',['ColorBufferFormat',['../struct_diligent_1_1_swap_chain_desc.html#a43f3ed5e1426f6260d8d55d252180a6d',1,'Diligent::SwapChainDesc']]], + ['colorrenderable',['ColorRenderable',['../struct_diligent_1_1_texture_format_info_ext.html#a65ac5cdc4ad7f1d0c11af3bcca89777e',1,'Diligent::TextureFormatInfoExt']]], + ['commandlistbase',['CommandListBase',['../class_diligent_1_1_command_list_base.html',1,'Diligent::CommandListBase< BaseInterface >'],['../class_diligent_1_1_command_list_base.html#a867892aa11155befa128ca859289dfa9',1,'Diligent::CommandListBase::CommandListBase()']]], + ['commandlistbase_3c_20icommandlist_20_3e',['CommandListBase< ICommandList >',['../class_diligent_1_1_command_list_base.html',1,'Diligent']]], + ['commandlistd3d11impl',['CommandListD3D11Impl',['../class_diligent_1_1_command_list_d3_d11_impl.html',1,'Diligent']]], + ['commandlistd3d12impl',['CommandListD3D12Impl',['../class_diligent_1_1_command_list_d3_d12_impl.html',1,'Diligent']]], + ['commandqueued3d12impl',['CommandQueueD3D12Impl',['../class_diligent_1_1_command_queue_d3_d12_impl.html',1,'Diligent']]], + ['commit_5fshader_5fresources_5fflag',['COMMIT_SHADER_RESOURCES_FLAG',['../namespace_diligent.html#a83a6318edc132699548ca2ae05374007',1,'Diligent']]], + ['commit_5fshader_5fresources_5fflag_5ftransition_5fresources',['COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES',['../namespace_diligent.html#a83a6318edc132699548ca2ae05374007add49cb7a8581173762b24c89992c544e',1,'Diligent']]], + ['commitshaderresources',['CommitShaderResources',['../class_diligent_1_1_device_context_d3_d11_impl.html#abbd0e2473b6222fc74c70ed5583b590e',1,'Diligent::DeviceContextD3D11Impl::CommitShaderResources()'],['../class_diligent_1_1_device_context_g_l_impl.html#aeb080cd5a8cf2ab99d836e799b12258f',1,'Diligent::DeviceContextGLImpl::CommitShaderResources()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#af14656733c2c20d5dc1b6b368be4670a',1,'Diligent::DeviceContextD3D12Impl::CommitShaderResources()'],['../class_diligent_1_1_device_context_base.html#a685f62e1630000359f9dbb7c463c63e4',1,'Diligent::DeviceContextBase::CommitShaderResources()'],['../class_diligent_1_1_i_device_context.html#a44ccc6a20358df3e3fb93c016eafa938',1,'Diligent::IDeviceContext::CommitShaderResources()']]], + ['comparison_5ffunc_5falways',['COMPARISON_FUNC_ALWAYS',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3a7cc8933aafb1e254a4be67a841698b11',1,'Diligent']]], + ['comparison_5ffunc_5fequal',['COMPARISON_FUNC_EQUAL',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3ad33573ebed971ae2e788c0c2119433c8',1,'Diligent']]], + ['comparison_5ffunc_5fgreater',['COMPARISON_FUNC_GREATER',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3ae3ab0763823fc67730b719b4acafeea2',1,'Diligent']]], + ['comparison_5ffunc_5fgreater_5fequal',['COMPARISON_FUNC_GREATER_EQUAL',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3ad35e669229761e23a8b6d7b1dff8d6a3',1,'Diligent']]], + ['comparison_5ffunc_5fless',['COMPARISON_FUNC_LESS',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3a411164cf3b8a7ce0e4d3792b4bfe3e63',1,'Diligent']]], + ['comparison_5ffunc_5fless_5fequal',['COMPARISON_FUNC_LESS_EQUAL',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3a15f8ce33479c9d7a64fb95dbf4280a11',1,'Diligent']]], + ['comparison_5ffunc_5fnever',['COMPARISON_FUNC_NEVER',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3a00b70a0d0b44e0eb2e2ab88ca2a509bb',1,'Diligent']]], + ['comparison_5ffunc_5fnot_5fequal',['COMPARISON_FUNC_NOT_EQUAL',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3abf16cedb7ad37988bab6e7a80e11f263',1,'Diligent']]], + ['comparison_5ffunc_5fnum_5ffunctions',['COMPARISON_FUNC_NUM_FUNCTIONS',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3a73e6559b15743c06d473c3ea60794761',1,'Diligent']]], + ['comparison_5ffunc_5funknown',['COMPARISON_FUNC_UNKNOWN',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3ac2643a547edf29e763af04c5ab82a7f5',1,'Diligent']]], + ['comparison_5ffunction',['COMPARISON_FUNCTION',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3',1,'Diligent']]], + ['comparisonfunc',['ComparisonFunc',['../struct_diligent_1_1_sampler_desc.html#ad20a594bd0a1bf52da3612a73753bf48',1,'Diligent::SamplerDesc']]], + ['component_5ftype',['COMPONENT_TYPE',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476c',1,'Diligent']]], + ['component_5ftype_5fcompound',['COMPONENT_TYPE_COMPOUND',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476ca9d4afc0fa9a367f3b34542f8d152e40a',1,'Diligent']]], + ['component_5ftype_5fcompressed',['COMPONENT_TYPE_COMPRESSED',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476cab1b19584374b1acb6e1984aa32ac9819',1,'Diligent']]], + ['component_5ftype_5fdepth',['COMPONENT_TYPE_DEPTH',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476caa3984b7039eb6b96b04a68ac8684750d',1,'Diligent']]], + ['component_5ftype_5fdepth_5fstencil',['COMPONENT_TYPE_DEPTH_STENCIL',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476ca2cdf1c20c083d2427affaba85e76102f',1,'Diligent']]], + ['component_5ftype_5ffloat',['COMPONENT_TYPE_FLOAT',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476cac0be9da22dea8c4f2254f57bb7bff4a1',1,'Diligent']]], + ['component_5ftype_5fsint',['COMPONENT_TYPE_SINT',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476ca0547352fdd2805b64922cc6737ec877a',1,'Diligent']]], + ['component_5ftype_5fsnorm',['COMPONENT_TYPE_SNORM',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476ca09045ed1da150ed46fc509775fe5944f',1,'Diligent']]], + ['component_5ftype_5fuint',['COMPONENT_TYPE_UINT',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476ca2254ce2599cdd04e947599b30a8da400',1,'Diligent']]], + ['component_5ftype_5fundefined',['COMPONENT_TYPE_UNDEFINED',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476cae0b3fdc5523e496fa7c4bbf417b4ad90',1,'Diligent']]], + ['component_5ftype_5funorm',['COMPONENT_TYPE_UNORM',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476caee0de6d3e12a57c53b9f6491300f7cb2',1,'Diligent']]], + ['component_5ftype_5funorm_5fsrgb',['COMPONENT_TYPE_UNORM_SRGB',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476cab7651620cd29d84d11b883db4397edde',1,'Diligent']]], + ['componentsize',['ComponentSize',['../struct_diligent_1_1_texture_format_attribs.html#a87c63340aa2c943fc0469d905090e728',1,'Diligent::TextureFormatAttribs']]], + ['componenttype',['ComponentType',['../struct_diligent_1_1_texture_format_attribs.html#a50c46afc1ac002c875469fa439faf2e9',1,'Diligent::TextureFormatAttribs']]], + ['computepipeline',['ComputePipeline',['../struct_diligent_1_1_pipeline_state_desc.html#ab5a386c636c28e6b18c618a7cc86c9a5',1,'Diligent::PipelineStateDesc']]], + ['computepipelinedesc',['ComputePipelineDesc',['../struct_diligent_1_1_compute_pipeline_desc.html',1,'Diligent']]], + ['copydata',['CopyData',['../class_diligent_1_1_buffer_d3_d11_impl.html#aad53f09b8042f1293af3298c3997c5d3',1,'Diligent::BufferD3D11Impl::CopyData()'],['../class_diligent_1_1_texture_base_d3_d11.html#a4d74db98d7ded0d72ba992afc93b34f8',1,'Diligent::TextureBaseD3D11::CopyData()'],['../class_diligent_1_1_buffer_g_l_impl.html#af473d6688b26bed7bd0683786aba3dee',1,'Diligent::BufferGLImpl::CopyData()'],['../class_diligent_1_1_texture_base_g_l.html#ae087c0ba29cd6813842a385abdf21537',1,'Diligent::TextureBaseGL::CopyData()'],['../class_diligent_1_1_buffer_d3_d12_impl.html#a957dcdd040cfbdddb6fce196825227f7',1,'Diligent::BufferD3D12Impl::CopyData()'],['../class_diligent_1_1_texture_d3_d12_impl.html#a5e580b4a669a3d3aac44256dee9ae8fa',1,'Diligent::TextureD3D12Impl::CopyData()'],['../class_diligent_1_1_buffer_base.html#a33ba03da302bb9b1dc72a20704574b5c',1,'Diligent::BufferBase::CopyData()'],['../class_diligent_1_1_texture_base.html#a614420569d09b39f90231181769b7d55',1,'Diligent::TextureBase::CopyData()'],['../class_diligent_1_1_i_buffer.html#a9f52c4f87b976cba6be125a37fa8a02a',1,'Diligent::IBuffer::CopyData()'],['../class_diligent_1_1_i_texture.html#a1141214ba00faa0ca61f656269bb3508',1,'Diligent::ITexture::CopyData()']]], + ['correctbufferviewdesc',['CorrectBufferViewDesc',['../class_diligent_1_1_buffer_base.html#a92e192b277bb3ee894bec156a3aa4ff1',1,'Diligent::BufferBase']]], + ['count',['Count',['../struct_diligent_1_1_sample_desc.html#a809d7d8a62bc2a6dc2f5eca51a9298a2',1,'Diligent::SampleDesc']]], + ['cpu_5faccess_5fflag',['CPU_ACCESS_FLAG',['../namespace_diligent.html#a0f62a9270b7cb35023bfb7ff6318bd01',1,'Diligent']]], + ['cpu_5faccess_5fread',['CPU_ACCESS_READ',['../namespace_diligent.html#a0f62a9270b7cb35023bfb7ff6318bd01a59c30a6f98d0cd0ecf886e6da6dfa364',1,'Diligent']]], + ['cpu_5faccess_5fwrite',['CPU_ACCESS_WRITE',['../namespace_diligent.html#a0f62a9270b7cb35023bfb7ff6318bd01a73d498f881235bb1efddb57352f0d5ca',1,'Diligent']]], + ['cpuaccessflags',['CPUAccessFlags',['../struct_diligent_1_1_buffer_desc.html#ae8db3e539cbbaca87fd437d67f26eb80',1,'Diligent::BufferDesc::CPUAccessFlags()'],['../struct_diligent_1_1_texture_desc.html#a429dac9dc391f1d139042708ae4f3111',1,'Diligent::TextureDesc::CPUAccessFlags()']]], + ['cpudescriptorheapallocationsize',['CPUDescriptorHeapAllocationSize',['../struct_diligent_1_1_engine_d3_d12_attribs.html#a12fe830b453e67b806300b7082aaa485',1,'Diligent::EngineD3D12Attribs']]], + ['createbuffer',['CreateBuffer',['../class_diligent_1_1_i_render_device.html#a638db185ec04614240d7421ec4e77a44',1,'Diligent::IRenderDevice']]], + ['createbufferfromd3dresource',['CreateBufferFromD3DResource',['../class_diligent_1_1_i_render_device_d3_d11.html#aec48e5769272650fd23d3953522d3032',1,'Diligent::IRenderDeviceD3D11::CreateBufferFromD3DResource()'],['../class_diligent_1_1_i_render_device_d3_d12.html#aebb331f0742f2f3d677bb8b4316ead31',1,'Diligent::IRenderDeviceD3D12::CreateBufferFromD3DResource()']]], + ['createbufferfromglhandle',['CreateBufferFromGLHandle',['../class_diligent_1_1_i_render_device_g_l.html#afe347ae560c5847a3b49c4492ea4cb21',1,'Diligent::IRenderDeviceGL']]], + ['createdefaultviews',['CreateDefaultViews',['../class_diligent_1_1_buffer_base.html#a324143f93e68357ee89c5b3116c2cd6b',1,'Diligent::BufferBase::CreateDefaultViews()'],['../class_diligent_1_1_texture_base.html#a832ba2a8e7a76ad9c0f349c839c1dbda',1,'Diligent::TextureBase::CreateDefaultViews()']]], + ['createdeviceobject',['CreateDeviceObject',['../class_diligent_1_1_render_device_base.html#a53a856542184d8a6c323af97a95979f4',1,'Diligent::RenderDeviceBase']]], + ['createpipelinestate',['CreatePipelineState',['../class_diligent_1_1_i_render_device.html#a265a34daa7463610a0d8d2dde06a0d8b',1,'Diligent::IRenderDevice']]], + ['createresourcemapping',['CreateResourceMapping',['../class_diligent_1_1_render_device_base.html#a111f8a099da34511c7b7084b3e215d16',1,'Diligent::RenderDeviceBase::CreateResourceMapping()'],['../class_diligent_1_1_i_render_device.html#a1dbef756cb359af864a1514d583b117d',1,'Diligent::IRenderDevice::CreateResourceMapping()']]], + ['createsampler',['CreateSampler',['../class_diligent_1_1_i_render_device.html#afbb066b8ac1fbcc47d852537c3f246c7',1,'Diligent::IRenderDevice']]], + ['createshader',['CreateShader',['../class_diligent_1_1_i_render_device.html#aded4e45804a8578ba5b202db26e43840',1,'Diligent::IRenderDevice']]], + ['createshaderresourcebinding',['CreateShaderResourceBinding',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#afcbe1925e337ad27541d908eff08d5f8',1,'Diligent::PipelineStateD3D11Impl::CreateShaderResourceBinding()'],['../class_diligent_1_1_pipeline_state_g_l_impl.html#ab6ada7fa88085ec29af09c0ee04d730d',1,'Diligent::PipelineStateGLImpl::CreateShaderResourceBinding()'],['../class_diligent_1_1_pipeline_state_d3_d12_impl.html#a3130cea7dfb9bd18a368e77b4281f7f8',1,'Diligent::PipelineStateD3D12Impl::CreateShaderResourceBinding()'],['../class_diligent_1_1_i_pipeline_state.html#a1500049f597cda22b862b5d967fceab5',1,'Diligent::IPipelineState::CreateShaderResourceBinding()']]], + ['createtexture',['CreateTexture',['../class_diligent_1_1_i_render_device.html#a2e9e3ef4a01fe9caca6f51617598548a',1,'Diligent::IRenderDevice']]], + ['createtexturefromd3dresource',['CreateTextureFromD3DResource',['../class_diligent_1_1_i_render_device_d3_d11.html#ae6ef26377c07203420784c19ebbfddcd',1,'Diligent::IRenderDeviceD3D11::CreateTextureFromD3DResource(ID3D11Texture1D *pd3d11Texture, ITexture **ppTexture)=0'],['../class_diligent_1_1_i_render_device_d3_d11.html#aed88d8ae1180ca2bc539db88f08a2ff2',1,'Diligent::IRenderDeviceD3D11::CreateTextureFromD3DResource(ID3D11Texture2D *pd3d11Texture, ITexture **ppTexture)=0'],['../class_diligent_1_1_i_render_device_d3_d11.html#a81d6997dcbec47c0b4f6c914860a1b54',1,'Diligent::IRenderDeviceD3D11::CreateTextureFromD3DResource(ID3D11Texture3D *pd3d11Texture, ITexture **ppTexture)=0'],['../class_diligent_1_1_i_render_device_d3_d12.html#a74fde1f49848b55d9d6d535af8703230',1,'Diligent::IRenderDeviceD3D12::CreateTextureFromD3DResource()']]], + ['createtexturefromglhandle',['CreateTextureFromGLHandle',['../class_diligent_1_1_i_render_device_g_l.html#a7411430f035826a4bb9228e75fc0472c',1,'Diligent::IRenderDeviceGL']]], + ['createview',['CreateView',['../class_diligent_1_1_buffer_base.html#ac67b656289f82ba476c4eaaa4f23fb2f',1,'Diligent::BufferBase::CreateView()'],['../class_diligent_1_1_texture_base.html#ac01f2d9b9d68038be0f307be08f25d07',1,'Diligent::TextureBase::CreateView()'],['../class_diligent_1_1_i_buffer.html#aa295fc943c9cfbd4d9a65465d4200be3',1,'Diligent::IBuffer::CreateView()'],['../class_diligent_1_1_i_texture.html#ab3f1935532ddd971e455941e3abc21f9',1,'Diligent::ITexture::CreateView()']]], + ['createviewinternal',['CreateViewInternal',['../class_diligent_1_1_texture_base_d3_d11.html#a7287d949e2502d56e237fe6183cf3c41',1,'Diligent::TextureBaseD3D11::CreateViewInternal()'],['../class_diligent_1_1_texture_base_g_l.html#a61a5b0b884668fc6c932f8cba9da2a18',1,'Diligent::TextureBaseGL::CreateViewInternal()'],['../class_diligent_1_1_texture_d3_d12_impl.html#a54a1792a4ccf01e8cee6bb8701910419',1,'Diligent::TextureD3D12Impl::CreateViewInternal()'],['../class_diligent_1_1_buffer_base.html#a1a89eae526881930d09a249521af2ed5',1,'Diligent::BufferBase::CreateViewInternal()'],['../class_diligent_1_1_texture_base.html#a3e8b435697f7083e4e7454dcb214f3f5',1,'Diligent::TextureBase::CreateViewInternal()']]], + ['cull_5fmode',['CULL_MODE',['../namespace_diligent.html#aeeda8d41835aaaca5142122552880896',1,'Diligent']]], + ['cull_5fmode_5fback',['CULL_MODE_BACK',['../namespace_diligent.html#aeeda8d41835aaaca5142122552880896aea9b199b178f12075d4d5df882043269',1,'Diligent']]], + ['cull_5fmode_5ffront',['CULL_MODE_FRONT',['../namespace_diligent.html#aeeda8d41835aaaca5142122552880896a573069ffcc465c046134a3fc51a52d1b',1,'Diligent']]], + ['cull_5fmode_5fnone',['CULL_MODE_NONE',['../namespace_diligent.html#aeeda8d41835aaaca5142122552880896a88bffa666bf1f0913c785f5adcc51a3c',1,'Diligent']]], + ['cull_5fmode_5fnum_5fmodes',['CULL_MODE_NUM_MODES',['../namespace_diligent.html#aeeda8d41835aaaca5142122552880896a0b91e2f89b17819acce7200fbdf87d8d',1,'Diligent']]], + ['cull_5fmode_5fundefined',['CULL_MODE_UNDEFINED',['../namespace_diligent.html#aeeda8d41835aaaca5142122552880896aceb414f364000c13d75a7a17fa0416ca',1,'Diligent']]], + ['cullmode',['CullMode',['../struct_diligent_1_1_rasterizer_state_desc.html#a5c331b6d0f4f320e6f088af64da6b842',1,'Diligent::RasterizerStateDesc']]], + ['common',['Common',['../md__d_1__git_hub__diligent_engine__diligent_core__common_readme.html',1,'']]] +]; diff --git a/doc/html/search/all_3.html b/doc/html/search/all_3.html new file mode 100644 index 00000000..a3e6f7db --- /dev/null +++ b/doc/html/search/all_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_3.js b/doc/html/search/all_3.js new file mode 100644 index 00000000..dd69536b --- /dev/null +++ b/doc/html/search/all_3.js @@ -0,0 +1,82 @@ +var searchData= +[ + ['d3d11',['D3D11',['../namespace_diligent.html#a905d9d44892311167e9b28962bbf7e18ad51c33ce106109ecd1596d83a11632a5',1,'Diligent']]], + ['d3d12',['D3D12',['../namespace_diligent.html#a905d9d44892311167e9b28962bbf7e18afac777d230cd7175697748a8c5260df6',1,'Diligent']]], + ['d3d12resourcebase',['D3D12ResourceBase',['../class_diligent_1_1_d3_d12_resource_base.html',1,'Diligent']]], + ['datablobimpl',['DataBlobImpl',['../class_diligent_1_1_data_blob_impl.html',1,'Diligent']]], + ['datasize',['DataSize',['../struct_diligent_1_1_buffer_data.html#a2384ba674fecafae7464d42290d6a7e3',1,'Diligent::BufferData']]], + ['debugflags',['DebugFlags',['../struct_diligent_1_1_engine_d3_d11_attribs.html#ae45ccd8517116ee19b002f85e80bf1b4',1,'Diligent::EngineD3D11Attribs']]], + ['defaultdepthvalue',['DefaultDepthValue',['../struct_diligent_1_1_swap_chain_desc.html#a4c098ffed1ea02069fe6141d80dd6d77',1,'Diligent::SwapChainDesc']]], + ['defaultstencilvalue',['DefaultStencilValue',['../struct_diligent_1_1_swap_chain_desc.html#a5d225a31e09f3cefab7a1146841c2abf',1,'Diligent::SwapChainDesc']]], + ['defaultvariabletype',['DefaultVariableType',['../struct_diligent_1_1_shader_desc.html#a585e792ee56999c8558a104bcb341481',1,'Diligent::ShaderDesc']]], + ['deletedobjectstopurge',['DeletedObjectsToPurge',['../class_diligent_1_1_state_objects_registry.html#ae826dc2c8950c7f40d3fe37dfc1d36b7',1,'Diligent::StateObjectsRegistry']]], + ['depth',['Depth',['../struct_diligent_1_1_depth_stencil_clear_value.html#afd8bc5b2356e2e962a2f5b9350388be0',1,'Diligent::DepthStencilClearValue::Depth()'],['../struct_diligent_1_1_texture_desc.html#ad87979958a20966805d72d9335179613',1,'Diligent::TextureDesc::Depth()']]], + ['depthbias',['DepthBias',['../struct_diligent_1_1_rasterizer_state_desc.html#a9f02e69f65dcaca4eca62f6d3838b87a',1,'Diligent::RasterizerStateDesc']]], + ['depthbiasclamp',['DepthBiasClamp',['../struct_diligent_1_1_rasterizer_state_desc.html#a2165764320d1a1aa270b966effd248ef',1,'Diligent::RasterizerStateDesc']]], + ['depthbufferformat',['DepthBufferFormat',['../struct_diligent_1_1_swap_chain_desc.html#a73cf565892611df8559aa13d1ff8f038',1,'Diligent::SwapChainDesc']]], + ['depthclipenable',['DepthClipEnable',['../struct_diligent_1_1_rasterizer_state_desc.html#ae8d2a89cac03a783c142bbab59f04d64',1,'Diligent::RasterizerStateDesc']]], + ['depthenable',['DepthEnable',['../struct_diligent_1_1_depth_stencil_state_desc.html#a72944ae920f64ba522b48146082c7d2b',1,'Diligent::DepthStencilStateDesc']]], + ['depthfunc',['DepthFunc',['../struct_diligent_1_1_depth_stencil_state_desc.html#a0a0d8bde935fe7b2224f69bbfaf7f851',1,'Diligent::DepthStencilStateDesc']]], + ['depthrenderable',['DepthRenderable',['../struct_diligent_1_1_texture_format_info_ext.html#a2313b53e88e1e5da431bfee32dd7e7d6',1,'Diligent::TextureFormatInfoExt']]], + ['depthstencil',['DepthStencil',['../struct_diligent_1_1_optimized_clear_value.html#a6262729d1a08fb34fb566e78f52ee7d4',1,'Diligent::OptimizedClearValue']]], + ['depthstencilclearvalue',['DepthStencilClearValue',['../struct_diligent_1_1_depth_stencil_clear_value.html',1,'Diligent']]], + ['depthstencildesc',['DepthStencilDesc',['../struct_diligent_1_1_graphics_pipeline_desc.html#ac88b622f9d8305a39e5098abb3f1868b',1,'Diligent::GraphicsPipelineDesc']]], + ['depthstencilstatedesc',['DepthStencilStateDesc',['../struct_diligent_1_1_depth_stencil_state_desc.html',1,'Diligent::DepthStencilStateDesc'],['../struct_diligent_1_1_depth_stencil_state_desc.html#a7eac7ebb962fb68b902f60a2e223d30d',1,'Diligent::DepthStencilStateDesc::DepthStencilStateDesc()']]], + ['depthstride',['DepthStride',['../struct_diligent_1_1_texture_sub_res_data.html#ae24a67af843826f53e4e1d8b0090b7fd',1,'Diligent::TextureSubResData']]], + ['depthwriteenable',['DepthWriteEnable',['../struct_diligent_1_1_depth_stencil_state_desc.html#a5b31340d85ad2c0652711a576c0aeb79',1,'Diligent::DepthStencilStateDesc']]], + ['desc',['Desc',['../struct_diligent_1_1_static_sampler_desc.html#af69223a4da9c3fa37a6b728e541a51bf',1,'Diligent::StaticSamplerDesc::Desc()'],['../struct_diligent_1_1_shader_creation_attribs.html#afc6c0ca2303848fec84b25e8c4a444fd',1,'Diligent::ShaderCreationAttribs::Desc()']]], + ['destblend',['DestBlend',['../struct_diligent_1_1_render_target_blend_desc.html#a2ce13abe089b2d4a38e1ccc547d6ef29',1,'Diligent::RenderTargetBlendDesc']]], + ['destblendalpha',['DestBlendAlpha',['../struct_diligent_1_1_render_target_blend_desc.html#a99cd9ca2244c4cf01717fde3daceba3a',1,'Diligent::RenderTargetBlendDesc']]], + ['devicecaps',['DeviceCaps',['../struct_diligent_1_1_device_caps.html',1,'Diligent::DeviceCaps'],['../struct_diligent_1_1_device_caps.html#a391b39a34d996b7a368a6255ae8923d2',1,'Diligent::DeviceCaps::DeviceCaps()']]], + ['devicecontextbase',['DeviceContextBase',['../class_diligent_1_1_device_context_base.html',1,'Diligent::DeviceContextBase< BaseInterface >'],['../class_diligent_1_1_device_context_base.html#af7c00ecd106d7f1f54cbd12d1d1650ff',1,'Diligent::DeviceContextBase::DeviceContextBase()']]], + ['devicecontextbase_3c_20idevicecontextd3d11_20_3e',['DeviceContextBase< IDeviceContextD3D11 >',['../class_diligent_1_1_device_context_base.html',1,'Diligent']]], + ['devicecontextbase_3c_20idevicecontextd3d12_20_3e',['DeviceContextBase< IDeviceContextD3D12 >',['../class_diligent_1_1_device_context_base.html',1,'Diligent']]], + ['devicecontextbase_3c_20idevicecontextgl_20_3e',['DeviceContextBase< IDeviceContextGL >',['../class_diligent_1_1_device_context_base.html',1,'Diligent']]], + ['devicecontextd3d11impl',['DeviceContextD3D11Impl',['../class_diligent_1_1_device_context_d3_d11_impl.html',1,'Diligent']]], + ['devicecontextd3d12impl',['DeviceContextD3D12Impl',['../class_diligent_1_1_device_context_d3_d12_impl.html',1,'Diligent']]], + ['devicecontextglimpl',['DeviceContextGLImpl',['../class_diligent_1_1_device_context_g_l_impl.html',1,'Diligent']]], + ['deviceobjectattribs',['DeviceObjectAttribs',['../struct_diligent_1_1_device_object_attribs.html',1,'Diligent::DeviceObjectAttribs'],['../struct_diligent_1_1_device_object_attribs.html#a579fff821d8252cf66fd6bcb4429efad',1,'Diligent::DeviceObjectAttribs::DeviceObjectAttribs()']]], + ['deviceobjectbase',['DeviceObjectBase',['../class_diligent_1_1_device_object_base.html',1,'Diligent::DeviceObjectBase< BaseInterface, ObjectDescType >'],['../class_diligent_1_1_device_object_base.html#a523ebe1047ebd39a94fbadf711834c92',1,'Diligent::DeviceObjectBase::DeviceObjectBase()']]], + ['deviceobjectbase_3c_20baseinterface_2c_20bufferdesc_20_3e',['DeviceObjectBase< BaseInterface, BufferDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20baseinterface_2c_20bufferviewdesc_20_3e',['DeviceObjectBase< BaseInterface, BufferViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20baseinterface_2c_20commandlistdesc_20_3e',['DeviceObjectBase< BaseInterface, CommandListDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20baseinterface_2c_20pipelinestatedesc_20_3e',['DeviceObjectBase< BaseInterface, PipelineStateDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20baseinterface_2c_20samplerdesc_20_3e',['DeviceObjectBase< BaseInterface, SamplerDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20baseinterface_2c_20shaderdesc_20_3e',['DeviceObjectBase< BaseInterface, ShaderDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20baseinterface_2c_20texturedesc_20_3e',['DeviceObjectBase< BaseInterface, TextureDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20baseinterface_2c_20textureviewdesc_20_3e',['DeviceObjectBase< BaseInterface, TextureViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ibufferd3d11_2c_20bufferdesc_20_3e',['DeviceObjectBase< IBufferD3D11, BufferDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ibufferd3d12_2c_20bufferdesc_20_3e',['DeviceObjectBase< IBufferD3D12, BufferDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ibuffergl_2c_20bufferdesc_20_3e',['DeviceObjectBase< IBufferGL, BufferDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ibufferviewd3d11_2c_20bufferviewdesc_20_3e',['DeviceObjectBase< IBufferViewD3D11, BufferViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ibufferviewd3d12_2c_20bufferviewdesc_20_3e',['DeviceObjectBase< IBufferViewD3D12, BufferViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ibufferviewgl_2c_20bufferviewdesc_20_3e',['DeviceObjectBase< IBufferViewGL, BufferViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20icommandlist_2c_20commandlistdesc_20_3e',['DeviceObjectBase< ICommandList, CommandListDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ipipelinestated3d11_2c_20pipelinestatedesc_20_3e',['DeviceObjectBase< IPipelineStateD3D11, PipelineStateDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ipipelinestated3d12_2c_20pipelinestatedesc_20_3e',['DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ipipelinestategl_2c_20pipelinestatedesc_20_3e',['DeviceObjectBase< IPipelineStateGL, PipelineStateDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20isamplerd3d11_2c_20samplerdesc_20_3e',['DeviceObjectBase< ISamplerD3D11, SamplerDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20isamplerd3d12_2c_20samplerdesc_20_3e',['DeviceObjectBase< ISamplerD3D12, SamplerDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20isamplergl_2c_20samplerdesc_20_3e',['DeviceObjectBase< ISamplerGL, SamplerDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ishaderd3d11_2c_20shaderdesc_20_3e',['DeviceObjectBase< IShaderD3D11, ShaderDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ishaderd3d12_2c_20shaderdesc_20_3e',['DeviceObjectBase< IShaderD3D12, ShaderDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ishadergl_2c_20shaderdesc_20_3e',['DeviceObjectBase< IShaderGL, ShaderDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20itextured3d11_2c_20texturedesc_20_3e',['DeviceObjectBase< ITextureD3D11, TextureDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20itextured3d12_2c_20texturedesc_20_3e',['DeviceObjectBase< ITextureD3D12, TextureDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20itexturegl_2c_20texturedesc_20_3e',['DeviceObjectBase< ITextureGL, TextureDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20itextureviewd3d11_2c_20textureviewdesc_20_3e',['DeviceObjectBase< ITextureViewD3D11, TextureViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20itextureviewd3d12_2c_20textureviewdesc_20_3e',['DeviceObjectBase< ITextureViewD3D12, TextureViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20itextureviewgl_2c_20textureviewdesc_20_3e',['DeviceObjectBase< ITextureViewGL, TextureViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['devicetype',['DeviceType',['../namespace_diligent.html#a905d9d44892311167e9b28962bbf7e18',1,'Diligent']]], + ['devtype',['DevType',['../struct_diligent_1_1_device_caps.html#abccee23ca3ca2340126ffa78e5800196',1,'Diligent::DeviceCaps']]], + ['diligent',['Diligent',['../namespace_diligent.html',1,'']]], + ['dispatchargsbyteoffset',['DispatchArgsByteOffset',['../struct_diligent_1_1_dispatch_compute_attribs.html#a29f5461bf93cbf25387b393dfee41995',1,'Diligent::DispatchComputeAttribs']]], + ['dispatchcompute',['DispatchCompute',['../class_diligent_1_1_device_context_d3_d11_impl.html#a0ab7354311291001bec3006c3e423ab4',1,'Diligent::DeviceContextD3D11Impl::DispatchCompute()'],['../class_diligent_1_1_device_context_g_l_impl.html#a54a1cb24ffff742d860f689697b81d02',1,'Diligent::DeviceContextGLImpl::DispatchCompute()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#acd2f0f0df4fbb30c1fd30f674e602515',1,'Diligent::DeviceContextD3D12Impl::DispatchCompute()'],['../class_diligent_1_1_i_device_context.html#aee2248061c09acad37df71b0edf75aa1',1,'Diligent::IDeviceContext::DispatchCompute()']]], + ['dispatchcomputeattribs',['DispatchComputeAttribs',['../struct_diligent_1_1_dispatch_compute_attribs.html',1,'Diligent::DispatchComputeAttribs'],['../struct_diligent_1_1_dispatch_compute_attribs.html#a0715c7607a8b2b10cf8bbb13161c1b24',1,'Diligent::DispatchComputeAttribs::DispatchComputeAttribs(Uint32 GroupsX=1, Uint32 GroupsY=1, Uint32 GroupsZ=1)'],['../struct_diligent_1_1_dispatch_compute_attribs.html#ad7115af02bba790ba14b1425e430e658',1,'Diligent::DispatchComputeAttribs::DispatchComputeAttribs(IBuffer *pDispatchAttribs, Uint32 Offset=0)']]], + ['draw',['Draw',['../class_diligent_1_1_device_context_d3_d11_impl.html#a5f369996a8f2ea086a825e00dd1b4a66',1,'Diligent::DeviceContextD3D11Impl::Draw()'],['../class_diligent_1_1_device_context_g_l_impl.html#a35040adde618247064ffc313a358b582',1,'Diligent::DeviceContextGLImpl::Draw()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#a60d37500fe1682ce3461b4e7142fbb47',1,'Diligent::DeviceContextD3D12Impl::Draw()'],['../class_diligent_1_1_i_device_context.html#a576a47689833f33ba34495f07074fd2a',1,'Diligent::IDeviceContext::Draw()']]], + ['drawattribs',['DrawAttribs',['../struct_diligent_1_1_draw_attribs.html',1,'Diligent::DrawAttribs'],['../struct_diligent_1_1_draw_attribs.html#ac3a0d636a0ab79514061ee47a526f9de',1,'Diligent::DrawAttribs::DrawAttribs()']]], + ['dsvformat',['DSVFormat',['../struct_diligent_1_1_graphics_pipeline_desc.html#ab64cc07f80b8ab677c34b4a17d445bf5',1,'Diligent::GraphicsPipelineDesc']]], + ['dummyshadervariable',['DummyShaderVariable',['../struct_diligent_1_1_dummy_shader_variable.html',1,'Diligent']]], + ['dynamicdescriptorallocationchunksize',['DynamicDescriptorAllocationChunkSize',['../struct_diligent_1_1_engine_d3_d12_attribs.html#a9b30d3de9423a1e8e6b3309b6fb7b613',1,'Diligent::EngineD3D12Attribs']]], + ['diligentcore',['DiligentCore',['../index.html',1,'']]] +]; diff --git a/doc/html/search/all_4.html b/doc/html/search/all_4.html new file mode 100644 index 00000000..6452295d --- /dev/null +++ b/doc/html/search/all_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_4.js b/doc/html/search/all_4.js new file mode 100644 index 00000000..241e392b --- /dev/null +++ b/doc/html/search/all_4.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['elementbytestride',['ElementByteStride',['../struct_diligent_1_1_buffer_desc.html#acb6ed74dcef3d9f2e585dff0d69c29cb',1,'Diligent::BufferDesc']]], + ['enginecreationattribs',['EngineCreationAttribs',['../struct_diligent_1_1_engine_creation_attribs.html',1,'Diligent']]], + ['engined3d11attribs',['EngineD3D11Attribs',['../struct_diligent_1_1_engine_d3_d11_attribs.html',1,'Diligent']]], + ['engined3d11debugflags',['EngineD3D11DebugFlags',['../namespace_diligent.html#a5c8758ce3fd35ebeff55489fba521a85',1,'Diligent']]], + ['engined3d12attribs',['EngineD3D12Attribs',['../struct_diligent_1_1_engine_d3_d12_attribs.html',1,'Diligent']]], + ['entrypoint',['EntryPoint',['../struct_diligent_1_1_shader_creation_attribs.html#ae06a6f4125da854f03b39f31ac0ad013',1,'Diligent::ShaderCreationAttribs']]], + ['executecommandlist',['ExecuteCommandList',['../class_diligent_1_1_device_context_d3_d11_impl.html#a6ff0d691eca9b6c70a7994d3bac49702',1,'Diligent::DeviceContextD3D11Impl::ExecuteCommandList()'],['../class_diligent_1_1_device_context_g_l_impl.html#a9da213c8dc16f80f21ca66f4843340bc',1,'Diligent::DeviceContextGLImpl::ExecuteCommandList()'],['../class_diligent_1_1_command_queue_d3_d12_impl.html#a249c30685a6308f587c5a5dcb3317890',1,'Diligent::CommandQueueD3D12Impl::ExecuteCommandList()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#ab0e3e7ec3c7ff575a9773288389d6c7b',1,'Diligent::DeviceContextD3D12Impl::ExecuteCommandList()'],['../class_diligent_1_1_i_command_queue_d3_d12.html#a19ecae695f1e1f160bb17fccbda4f972',1,'Diligent::ICommandQueueD3D12::ExecuteCommandList()'],['../class_diligent_1_1_i_device_context.html#ae76004ff8d4acebdcbccca079bd5eafb',1,'Diligent::IDeviceContext::ExecuteCommandList()']]] +]; diff --git a/doc/html/search/all_5.html b/doc/html/search/all_5.html new file mode 100644 index 00000000..e59e1d53 --- /dev/null +++ b/doc/html/search/all_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_5.js b/doc/html/search/all_5.js new file mode 100644 index 00000000..2ff4741a --- /dev/null +++ b/doc/html/search/all_5.js @@ -0,0 +1,44 @@ +var searchData= +[ + ['filepath',['FilePath',['../struct_diligent_1_1_shader_creation_attribs.html#a26734decb81a8c8d625f12596348096d',1,'Diligent::ShaderCreationAttribs']]], + ['fill_5fmode',['FILL_MODE',['../namespace_diligent.html#a3b85032ce91db5b8f9bcaab7bff02bc9',1,'Diligent']]], + ['fill_5fmode_5fnum_5fmodes',['FILL_MODE_NUM_MODES',['../namespace_diligent.html#a3b85032ce91db5b8f9bcaab7bff02bc9a4c5785c082fe9c9ab08c2558882af04f',1,'Diligent']]], + ['fill_5fmode_5fsolid',['FILL_MODE_SOLID',['../namespace_diligent.html#a3b85032ce91db5b8f9bcaab7bff02bc9a384ecd536cf5805995b7f7e2732ee0bf',1,'Diligent']]], + ['fill_5fmode_5fundefined',['FILL_MODE_UNDEFINED',['../namespace_diligent.html#a3b85032ce91db5b8f9bcaab7bff02bc9a4f9c2dce719b61de78321d1742ad4dd3',1,'Diligent']]], + ['fill_5fmode_5fwireframe',['FILL_MODE_WIREFRAME',['../namespace_diligent.html#a3b85032ce91db5b8f9bcaab7bff02bc9a1393780d3940ecd55c4f4ccd5dd9967a',1,'Diligent']]], + ['fillmode',['FillMode',['../struct_diligent_1_1_rasterizer_state_desc.html#a2740be4e85fa65f0f90c4fc19fee1969',1,'Diligent::RasterizerStateDesc']]], + ['filter_5ftype',['FILTER_TYPE',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3',1,'Diligent']]], + ['filter_5ftype_5fanisotropic',['FILTER_TYPE_ANISOTROPIC',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a9160b185205e04ac49ba0031934ee459',1,'Diligent']]], + ['filter_5ftype_5fcomparison_5fanisotropic',['FILTER_TYPE_COMPARISON_ANISOTROPIC',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a67ae6207484380e2b88d2d90d9e34e97',1,'Diligent']]], + ['filter_5ftype_5fcomparison_5flinear',['FILTER_TYPE_COMPARISON_LINEAR',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a9d07328c126cb498169a8eac1de6fc75',1,'Diligent']]], + ['filter_5ftype_5fcomparison_5fpoint',['FILTER_TYPE_COMPARISON_POINT',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a816cdeed28e1060e21208f673bd9751b',1,'Diligent']]], + ['filter_5ftype_5flinear',['FILTER_TYPE_LINEAR',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a167655f3ace23033921e2e4066796751',1,'Diligent']]], + ['filter_5ftype_5fmaximum_5fanisotropic',['FILTER_TYPE_MAXIMUM_ANISOTROPIC',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3aff4370c3c16294f04a71dc1c08c1c33a',1,'Diligent']]], + ['filter_5ftype_5fmaximum_5flinear',['FILTER_TYPE_MAXIMUM_LINEAR',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a5720a664a3426058b751eb06d5aaedb0',1,'Diligent']]], + ['filter_5ftype_5fmaximum_5fpoint',['FILTER_TYPE_MAXIMUM_POINT',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a64d461add82edd8068ef488d2d51db99',1,'Diligent']]], + ['filter_5ftype_5fminimum_5fanisotropic',['FILTER_TYPE_MINIMUM_ANISOTROPIC',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a4398678f25fd7f9c5ab22acb772a6188',1,'Diligent']]], + ['filter_5ftype_5fminimum_5flinear',['FILTER_TYPE_MINIMUM_LINEAR',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a75ee7cf1caa6d885ca48ef988c0baff1',1,'Diligent']]], + ['filter_5ftype_5fminimum_5fpoint',['FILTER_TYPE_MINIMUM_POINT',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3ad91cd8a6a5c31af9ce787010899ec69d',1,'Diligent']]], + ['filter_5ftype_5fnum_5ffilters',['FILTER_TYPE_NUM_FILTERS',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3ae96e67dde46ffaee98ac2f3625015267',1,'Diligent']]], + ['filter_5ftype_5fpoint',['FILTER_TYPE_POINT',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a4423b28e4552e47e8d71c1cc6b68b0bd',1,'Diligent']]], + ['filter_5ftype_5funknown',['FILTER_TYPE_UNKNOWN',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a93daeed05a3dd2c9b924c7c2717eb5d5',1,'Diligent']]], + ['filterable',['Filterable',['../struct_diligent_1_1_texture_format_info_ext.html#a1c36abe83f181f4379eea8a7f53758e1',1,'Diligent::TextureFormatInfoExt']]], + ['find',['Find',['../class_diligent_1_1_state_objects_registry.html#a6643d764bfcb0bc4314a4d4f227dc4a2',1,'Diligent::StateObjectsRegistry']]], + ['finishcommandlist',['FinishCommandList',['../class_diligent_1_1_device_context_d3_d11_impl.html#a0e1ff0f0f25a94bcac5848281e17ae17',1,'Diligent::DeviceContextD3D11Impl::FinishCommandList()'],['../class_diligent_1_1_device_context_g_l_impl.html#a38612e7fcab39ecd04375aa02287e4fc',1,'Diligent::DeviceContextGLImpl::FinishCommandList()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#a7a9ac2c49410dc0310c585720db3e95a',1,'Diligent::DeviceContextD3D12Impl::FinishCommandList()'],['../class_diligent_1_1_i_device_context.html#abd6004b19e22bc714cedcd4255665cd0',1,'Diligent::IDeviceContext::FinishCommandList()']]], + ['finishframe',['FinishFrame',['../class_diligent_1_1_i_render_device_d3_d12.html#a893bb519df45e870a1e8fcfb1fa47131',1,'Diligent::IRenderDeviceD3D12']]], + ['firstarrayslice',['FirstArraySlice',['../struct_diligent_1_1_texture_view_desc.html#af5acffe353e11f9eb4e30911d3a86fbf',1,'Diligent::TextureViewDesc']]], + ['firstdepthslice',['FirstDepthSlice',['../struct_diligent_1_1_texture_view_desc.html#ae9d517f33ca0e9d8218d9e5ed201c76a',1,'Diligent::TextureViewDesc']]], + ['firstindexlocation',['FirstIndexLocation',['../struct_diligent_1_1_draw_attribs.html#a74b73ded24ae0830a35d6558af87a1be',1,'Diligent::DrawAttribs']]], + ['firstinstancelocation',['FirstInstanceLocation',['../struct_diligent_1_1_draw_attribs.html#a6d5ebf96be85c07b868b576586aad8d6',1,'Diligent::DrawAttribs']]], + ['fixedblockmemoryallocator',['FixedBlockMemoryAllocator',['../class_diligent_1_1_fixed_block_memory_allocator.html',1,'Diligent']]], + ['flush',['Flush',['../class_diligent_1_1_device_context_d3_d11_impl.html#ac93002b69130999931670f9612304aa0',1,'Diligent::DeviceContextD3D11Impl::Flush()'],['../class_diligent_1_1_device_context_g_l_impl.html#a7472b84061b6197b0358e4c8a59dcb11',1,'Diligent::DeviceContextGLImpl::Flush()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#aa1b8e7977e26094b79cf365a4e3c228b',1,'Diligent::DeviceContextD3D12Impl::Flush()'],['../class_diligent_1_1_i_device_context.html#a1e57993497faadb4b3d166bc75718412',1,'Diligent::IDeviceContext::Flush()']]], + ['format',['Format',['../struct_diligent_1_1_buffer_desc.html#aad6e61d2cd4d66ad3c9fda10e275e296',1,'Diligent::BufferDesc::Format()'],['../struct_diligent_1_1_texture_format_attribs.html#ab63e880dcb9af649e4c52ead4fd3cafd',1,'Diligent::TextureFormatAttribs::Format()'],['../struct_diligent_1_1_optimized_clear_value.html#ac9d7d42da6e94a23a4146bf5bc5a9f04',1,'Diligent::OptimizedClearValue::Format()'],['../struct_diligent_1_1_texture_desc.html#a61757069b9f990537b730d7dc5033ee9',1,'Diligent::TextureDesc::Format()'],['../struct_diligent_1_1_texture_view_desc.html#aff7b78522241d5b185643ef3cba53a31',1,'Diligent::TextureViewDesc::Format()']]], + ['free',['Free',['../class_diligent_1_1_fixed_block_memory_allocator.html#a88b30af4317f6a0cdb305f4a5d942f2b',1,'Diligent::FixedBlockMemoryAllocator']]], + ['frequency',['FREQUENCY',['../struct_diligent_1_1_layout_element.html#a0e0d75c026027999ed229831f721804f',1,'Diligent::LayoutElement']]], + ['frequency_5fnum_5ffrequencies',['FREQUENCY_NUM_FREQUENCIES',['../struct_diligent_1_1_layout_element.html#a0e0d75c026027999ed229831f721804fa5ed3dc2a2aade6d8b7fbc222599dff33',1,'Diligent::LayoutElement']]], + ['frequency_5fper_5finstance',['FREQUENCY_PER_INSTANCE',['../struct_diligent_1_1_layout_element.html#a0e0d75c026027999ed229831f721804faac2a458944ea8bbfec153847ad93abe3',1,'Diligent::LayoutElement']]], + ['frequency_5fper_5fvertex',['FREQUENCY_PER_VERTEX',['../struct_diligent_1_1_layout_element.html#a0e0d75c026027999ed229831f721804fa82c41371a1ea79eb28874bdda04b24b7',1,'Diligent::LayoutElement']]], + ['frequency_5fundefined',['FREQUENCY_UNDEFINED',['../struct_diligent_1_1_layout_element.html#a0e0d75c026027999ed229831f721804fa2787941ec89050988624688469c067f4',1,'Diligent::LayoutElement']]], + ['frontcounterclockwise',['FrontCounterClockwise',['../struct_diligent_1_1_rasterizer_state_desc.html#a5d147341937d4edb0e68e267655b56b0',1,'Diligent::RasterizerStateDesc']]], + ['frontface',['FrontFace',['../struct_diligent_1_1_depth_stencil_state_desc.html#a59ced16fe3f430d8ac8e68bf95803c2d',1,'Diligent::DepthStencilStateDesc']]] +]; diff --git a/doc/html/search/all_6.html b/doc/html/search/all_6.html new file mode 100644 index 00000000..f75a754e --- /dev/null +++ b/doc/html/search/all_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_6.js b/doc/html/search/all_6.js new file mode 100644 index 00000000..9fd8e1d3 --- /dev/null +++ b/doc/html/search/all_6.js @@ -0,0 +1,68 @@ +var searchData= +[ + ['generatemips',['GenerateMips',['../class_diligent_1_1_texture_view_d3_d11_impl.html#a7f4cb4bdb363ec7ba45d436955b502b5',1,'Diligent::TextureViewD3D11Impl::GenerateMips()'],['../class_diligent_1_1_texture_view_g_l_impl.html#ae07084e8ea01dc8d49dd79738fc79e36',1,'Diligent::TextureViewGLImpl::GenerateMips()'],['../class_diligent_1_1_texture_view_d3_d12_impl.html#a621b502c83253d842918f5723854be78',1,'Diligent::TextureViewD3D12Impl::GenerateMips()'],['../class_diligent_1_1_i_texture_view.html#a9a54c5ad28e3ee53f923ee81c3e984a0',1,'Diligent::ITextureView::GenerateMips()']]], + ['getbindtarget',['GetBindTarget',['../class_diligent_1_1_texture_base_g_l.html#a966d0dd2dd0110a2059e88c2dad9aee5',1,'Diligent::TextureBaseGL::GetBindTarget()'],['../class_diligent_1_1_i_texture_g_l.html#a5d55833355abe3fc4cc802893ab41115',1,'Diligent::ITextureGL::GetBindTarget()']]], + ['getbuffer',['GetBuffer',['../class_diligent_1_1_buffer_view_base.html#a4e5e418edc518b72f448a256fce14361',1,'Diligent::BufferViewBase::GetBuffer()'],['../class_diligent_1_1_i_buffer_view.html#afbefc226d6dfdab0369e465dc04a5832',1,'Diligent::IBufferView::GetBuffer()']]], + ['getcompletedfencevalue',['GetCompletedFenceValue',['../class_diligent_1_1_command_queue_d3_d12_impl.html#a8ea4953f59a1b70108c4e033fa197a0e',1,'Diligent::CommandQueueD3D12Impl::GetCompletedFenceValue()'],['../class_diligent_1_1_i_command_queue_d3_d12.html#a4acb25ab54d5105af8f1805812957d27',1,'Diligent::ICommandQueueD3D12::GetCompletedFenceValue()']]], + ['getcpudescriptorhandle',['GetCPUDescriptorHandle',['../class_diligent_1_1_buffer_view_d3_d12_impl.html#a1afb7e1acf7138ec49d113aea88b18a5',1,'Diligent::BufferViewD3D12Impl::GetCPUDescriptorHandle()'],['../class_diligent_1_1_sampler_d3_d12_impl.html#a4f535e5053330f7030523f2e85bf5e65',1,'Diligent::SamplerD3D12Impl::GetCPUDescriptorHandle()'],['../class_diligent_1_1_texture_view_d3_d12_impl.html#ae3b7acd8ba5c2cd59b1b3433989a952c',1,'Diligent::TextureViewD3D12Impl::GetCPUDescriptorHandle()'],['../class_diligent_1_1_i_buffer_view_d3_d12.html#a11474ce1f6a0d33f62fbb005d7214bea',1,'Diligent::IBufferViewD3D12::GetCPUDescriptorHandle()'],['../class_diligent_1_1_i_sampler_d3_d12.html#a8f84ff506887f9a81b1332e6020b2b92',1,'Diligent::ISamplerD3D12::GetCPUDescriptorHandle()'],['../class_diligent_1_1_i_texture_view_d3_d12.html#a4ea879ed8f5ec9ad92cd5a0fcc0f62d7',1,'Diligent::ITextureViewD3D12::GetCPUDescriptorHandle()']]], + ['getcurrentbackbufferrtv',['GetCurrentBackBufferRTV',['../class_diligent_1_1_swap_chain_d3_d12_impl.html#a89d8ff966e12a7cc8deab53c8f9d5b73',1,'Diligent::SwapChainD3D12Impl::GetCurrentBackBufferRTV()'],['../class_diligent_1_1_i_swap_chain_d3_d12.html#aad6957dcade829f2388854844e9f7926',1,'Diligent::ISwapChainD3D12::GetCurrentBackBufferRTV()']]], + ['getd3d11blendstate',['GetD3D11BlendState',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#a6df29e1fec4bf908d858d7cfbf0aa36d',1,'Diligent::PipelineStateD3D11Impl::GetD3D11BlendState()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#a03914b983206cad1d9ffbc3fe90c7989',1,'Diligent::IPipelineStateD3D11::GetD3D11BlendState()']]], + ['getd3d11buffer',['GetD3D11Buffer',['../class_diligent_1_1_buffer_d3_d11_impl.html#ac026d9d84f69c56110b42b4a9e9428f6',1,'Diligent::BufferD3D11Impl::GetD3D11Buffer()'],['../class_diligent_1_1_i_buffer_d3_d11.html#a6d6191d4dfb4bca11e686e45d0fdab10',1,'Diligent::IBufferD3D11::GetD3D11Buffer()']]], + ['getd3d11computeshader',['GetD3D11ComputeShader',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#af0f01462446e3f23aca49904458b4bad',1,'Diligent::PipelineStateD3D11Impl::GetD3D11ComputeShader()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#ac863591fe920e226840e699057c0442c',1,'Diligent::IPipelineStateD3D11::GetD3D11ComputeShader()']]], + ['getd3d11depthstencilstate',['GetD3D11DepthStencilState',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#aef97ddf86eee72e03245321d3b203258',1,'Diligent::PipelineStateD3D11Impl::GetD3D11DepthStencilState()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#acc1542437873ce8a215825bbfcf59574',1,'Diligent::IPipelineStateD3D11::GetD3D11DepthStencilState()']]], + ['getd3d11device',['GetD3D11Device',['../class_diligent_1_1_i_render_device_d3_d11.html#a69d8ff7d7fe682be14264efce997bd50',1,'Diligent::IRenderDeviceD3D11']]], + ['getd3d11devicecontext',['GetD3D11DeviceContext',['../class_diligent_1_1_device_context_d3_d11_impl.html#a7a4893c7d2b02864121a803969d54956',1,'Diligent::DeviceContextD3D11Impl::GetD3D11DeviceContext()'],['../class_diligent_1_1_i_device_context_d3_d11.html#ace085a323a2fba05661212b424288962',1,'Diligent::IDeviceContextD3D11::GetD3D11DeviceContext()']]], + ['getd3d11domainshader',['GetD3D11DomainShader',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#ab7826f5dc1b510c7285e02042542913f',1,'Diligent::PipelineStateD3D11Impl::GetD3D11DomainShader()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#ab18f28189e255fc59fa080809d25417d',1,'Diligent::IPipelineStateD3D11::GetD3D11DomainShader()']]], + ['getd3d11geometryshader',['GetD3D11GeometryShader',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#a2afdb86a96525af3c827ef4b5ed6c2b1',1,'Diligent::PipelineStateD3D11Impl::GetD3D11GeometryShader()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#a96adf695b5e0a5a1830c4b043e603db4',1,'Diligent::IPipelineStateD3D11::GetD3D11GeometryShader()']]], + ['getd3d11hullshader',['GetD3D11HullShader',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#a3ce9a4f0f421421448d8a9c0a15fe183',1,'Diligent::PipelineStateD3D11Impl::GetD3D11HullShader()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#ab5b55de97ddb78146bccbeb16107276a',1,'Diligent::IPipelineStateD3D11::GetD3D11HullShader()']]], + ['getd3d11inputlayout',['GetD3D11InputLayout',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#a1735873b92d8f398437d4a1af55df98f',1,'Diligent::PipelineStateD3D11Impl::GetD3D11InputLayout()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#afe166b49b73df0741e258cfb57bb59f3',1,'Diligent::IPipelineStateD3D11::GetD3D11InputLayout()']]], + ['getd3d11pixelshader',['GetD3D11PixelShader',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#a9315cb9cdcdf87d2a4d482847b3adaac',1,'Diligent::PipelineStateD3D11Impl::GetD3D11PixelShader()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#a1e40b46d555f5fab691f094c362ec8ae',1,'Diligent::IPipelineStateD3D11::GetD3D11PixelShader()']]], + ['getd3d11rasterizerstate',['GetD3D11RasterizerState',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#a02aad253fbd57d902bc28b138d69b8c7',1,'Diligent::PipelineStateD3D11Impl::GetD3D11RasterizerState()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#a18b05eded32311719512a503137d7eef',1,'Diligent::IPipelineStateD3D11::GetD3D11RasterizerState()']]], + ['getd3d11samplerstate',['GetD3D11SamplerState',['../class_diligent_1_1_sampler_d3_d11_impl.html#addc99d4fe70241e90f4f852659be9828',1,'Diligent::SamplerD3D11Impl::GetD3D11SamplerState()'],['../class_diligent_1_1_i_sampler_d3_d11.html#a4f7b5e0793bf488c51135cdecd62718d',1,'Diligent::ISamplerD3D11::GetD3D11SamplerState()']]], + ['getd3d11shader',['GetD3D11Shader',['../class_diligent_1_1_shader_d3_d11_impl.html#a429a1560f416ca65f09748e4ef7fa887',1,'Diligent::ShaderD3D11Impl::GetD3D11Shader()'],['../class_diligent_1_1_i_shader_d3_d11.html#abfcdd672f89e4b1a783f4495e461da60',1,'Diligent::IShaderD3D11::GetD3D11Shader()']]], + ['getd3d11texture',['GetD3D11Texture',['../class_diligent_1_1_texture_base_d3_d11.html#afb680998c917c0311d6d495f99ab109a',1,'Diligent::TextureBaseD3D11::GetD3D11Texture()'],['../class_diligent_1_1_i_texture_d3_d11.html#adf1796931d51c7495e596050e7b74c58',1,'Diligent::ITextureD3D11::GetD3D11Texture()']]], + ['getd3d11vertexshader',['GetD3D11VertexShader',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#a6be0ba4e66ccf28590e35cd7d18925d9',1,'Diligent::PipelineStateD3D11Impl::GetD3D11VertexShader()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#aa33d69c253d3d77d8af8bc6ca5a868f6',1,'Diligent::IPipelineStateD3D11::GetD3D11VertexShader()']]], + ['getd3d11view',['GetD3D11View',['../class_diligent_1_1_buffer_view_d3_d11_impl.html#a71c339867d2edf58baa2c6bd80afce2c',1,'Diligent::BufferViewD3D11Impl::GetD3D11View()'],['../class_diligent_1_1_texture_view_d3_d11_impl.html#aa970773cab28d03b5cf15209b3eb140e',1,'Diligent::TextureViewD3D11Impl::GetD3D11View()'],['../class_diligent_1_1_i_buffer_view_d3_d11.html#a50f76fdf2c8139ec6db2623a91053a50',1,'Diligent::IBufferViewD3D11::GetD3D11View()'],['../class_diligent_1_1_i_texture_view_d3_d11.html#ae89ec2fb81d4c75139fccb0efd9b930a',1,'Diligent::ITextureViewD3D11::GetD3D11View()']]], + ['getd3d12buffer',['GetD3D12Buffer',['../class_diligent_1_1_buffer_d3_d12_impl.html#af4784a3d597ca9e6e0da4dd6f86532a3',1,'Diligent::BufferD3D12Impl::GetD3D12Buffer()'],['../class_diligent_1_1_i_buffer_d3_d12.html#ab72ec95da670a47d5e973cef765d8c13',1,'Diligent::IBufferD3D12::GetD3D12Buffer()']]], + ['getd3d12commandqueue',['GetD3D12CommandQueue',['../class_diligent_1_1_command_queue_d3_d12_impl.html#a2fbc0241cf97639ae136df2d4369e113',1,'Diligent::CommandQueueD3D12Impl::GetD3D12CommandQueue()'],['../class_diligent_1_1_i_command_queue_d3_d12.html#a39d8d8b4a98d0ebfc3050e9fa89c8c71',1,'Diligent::ICommandQueueD3D12::GetD3D12CommandQueue()']]], + ['getd3d12device',['GetD3D12Device',['../class_diligent_1_1_i_render_device_d3_d12.html#a5ecde6683f3c1e1971be88a9fcb0153d',1,'Diligent::IRenderDeviceD3D12']]], + ['getd3d12pipelinestate',['GetD3D12PipelineState',['../class_diligent_1_1_pipeline_state_d3_d12_impl.html#a32a0d2074411a1b761105047edb4a664',1,'Diligent::PipelineStateD3D12Impl::GetD3D12PipelineState()'],['../class_diligent_1_1_i_pipeline_state_d3_d12.html#ae40fb301da3c8dc1a48e7d32e3e8ffd7',1,'Diligent::IPipelineStateD3D12::GetD3D12PipelineState()']]], + ['getd3d12rootsignature',['GetD3D12RootSignature',['../class_diligent_1_1_pipeline_state_d3_d12_impl.html#a36c5b54e1750182c185fff98deac0efa',1,'Diligent::PipelineStateD3D12Impl::GetD3D12RootSignature()'],['../class_diligent_1_1_i_pipeline_state_d3_d12.html#a4020f566e718c9300c5963b4b82a10b7',1,'Diligent::IPipelineStateD3D12::GetD3D12RootSignature()']]], + ['getd3d12texture',['GetD3D12Texture',['../class_diligent_1_1_texture_d3_d12_impl.html#aa86ba650c3fecbba2a92a2d042bbdd8c',1,'Diligent::TextureD3D12Impl::GetD3D12Texture()'],['../class_diligent_1_1_i_texture_d3_d12.html#af922342877487c6e750e29f783cd11e5',1,'Diligent::ITextureD3D12::GetD3D12Texture()']]], + ['getdataptr',['GetDataPtr',['../class_diligent_1_1_data_blob_impl.html#a9b7efb629349251c069be80ba7270d3e',1,'Diligent::DataBlobImpl::GetDataPtr()'],['../class_diligent_1_1_string_data_blob_impl.html#a3b2379701e8317c99b814dad85d69077',1,'Diligent::StringDataBlobImpl::GetDataPtr()']]], + ['getdefaultview',['GetDefaultView',['../class_diligent_1_1_buffer_base.html#a5a63d5d9b3ee50aa33bbfd48204f0108',1,'Diligent::BufferBase::GetDefaultView()'],['../class_diligent_1_1_texture_base.html#a5fa5b07276e371a99eeb077ce62c06fc',1,'Diligent::TextureBase::GetDefaultView()'],['../class_diligent_1_1_i_buffer.html#ac858cc8ed157efaecb34648a447bafa7',1,'Diligent::IBuffer::GetDefaultView()'],['../class_diligent_1_1_i_texture.html#a9ba5c3ebe17f0a196b22295b611d168f',1,'Diligent::ITexture::GetDefaultView()']]], + ['getdepthbufferdsv',['GetDepthBufferDSV',['../class_diligent_1_1_swap_chain_d3_d12_impl.html#a94690b3c57829d90237bdc7de3916c09',1,'Diligent::SwapChainD3D12Impl::GetDepthBufferDSV()'],['../class_diligent_1_1_i_swap_chain_d3_d12.html#a4be4c4e747d60105dfb092a3321609aa',1,'Diligent::ISwapChainD3D12::GetDepthBufferDSV()']]], + ['getdesc',['GetDesc',['../class_diligent_1_1_swap_chain_base.html#a5e2c49ff4e687fa21fbb69c1b03d1e24',1,'Diligent::SwapChainBase::GetDesc()'],['../class_diligent_1_1_i_buffer.html#a7c88d0d7059bea7d530e112579cef1e2',1,'Diligent::IBuffer::GetDesc()'],['../class_diligent_1_1_i_buffer_view.html#a887ef2a08807fdb570f7a55ef3429825',1,'Diligent::IBufferView::GetDesc()'],['../class_diligent_1_1_i_device_object.html#ad881ca8984a57201f5d8febda7811948',1,'Diligent::IDeviceObject::GetDesc()'],['../class_diligent_1_1_i_pipeline_state.html#a7807cc8508d41b81fc2a580e7e53fbcb',1,'Diligent::IPipelineState::GetDesc()'],['../class_diligent_1_1_i_sampler.html#a1bfd5f947448b739ea28d757a2de9727',1,'Diligent::ISampler::GetDesc()'],['../class_diligent_1_1_i_shader.html#a4bd05dd784c6881c7f80e68df675f5e8',1,'Diligent::IShader::GetDesc()'],['../class_diligent_1_1_i_swap_chain.html#ab52c1742b2132aec905ab49a321e0b23',1,'Diligent::ISwapChain::GetDesc()'],['../class_diligent_1_1_i_texture.html#af98b320201b52d87b4c3e280a93d5e97',1,'Diligent::ITexture::GetDesc()'],['../class_diligent_1_1_i_texture_view.html#adf0698c6f29b61d6bcaffb5537e08bee',1,'Diligent::ITextureView::GetDesc()']]], + ['getdevice',['GetDevice',['../class_diligent_1_1_device_context_base.html#a20acb05b7312e1c038fffb10f0db541f',1,'Diligent::DeviceContextBase']]], + ['getdevicecaps',['GetDeviceCaps',['../class_diligent_1_1_render_device_base.html#a548efca4d6b74dae066d592a193a1169',1,'Diligent::RenderDeviceBase::GetDeviceCaps()'],['../class_diligent_1_1_i_render_device.html#a9ec6a527f7fca1e86c53f1b90e847ae2',1,'Diligent::IRenderDevice::GetDeviceCaps()']]], + ['getdsv',['GetDSV',['../class_diligent_1_1_swap_chain_d3_d11_impl.html#a5f206a17d241c1cbc3fc925a03d0dfc7',1,'Diligent::SwapChainD3D11Impl::GetDSV()'],['../class_diligent_1_1_i_swap_chain_d3_d11.html#aa15564484ae0f7c5191546687b87c3c2',1,'Diligent::ISwapChainD3D11::GetDSV()']]], + ['getdxgiswapchain',['GetDXGISwapChain',['../class_diligent_1_1_swap_chain_d3_d11_impl.html#ac0f6f26b649c88af28430c5197629176',1,'Diligent::SwapChainD3D11Impl::GetDXGISwapChain()'],['../class_diligent_1_1_i_swap_chain_d3_d11.html#af0e55b9dde1da1ab209439766b6de22b',1,'Diligent::ISwapChainD3D11::GetDXGISwapChain()'],['../class_diligent_1_1_swap_chain_d3_d12_impl.html#a5230d30e20acc005a17fcadb78dddb08',1,'Diligent::SwapChainD3D12Impl::GetDXGISwapChain()'],['../class_diligent_1_1_i_swap_chain_d3_d12.html#a75ac9652e62e8739d72ae2bd08bd2370',1,'Diligent::ISwapChainD3D12::GetDXGISwapChain()']]], + ['getglbufferhandle',['GetGLBufferHandle',['../class_diligent_1_1_buffer_g_l_impl.html#a22b80eebb5f8c8858ddc8c7d80085b2a',1,'Diligent::BufferGLImpl::GetGLBufferHandle()'],['../class_diligent_1_1_i_buffer_g_l.html#aeeeb583db75dcd00f9971ae03f8030d5',1,'Diligent::IBufferGL::GetGLBufferHandle()']]], + ['getgltexturehandle',['GetGLTextureHandle',['../class_diligent_1_1_texture_base_g_l.html#a2d74593340bf951750df5169ece8ff20',1,'Diligent::TextureBaseGL::GetGLTextureHandle()'],['../class_diligent_1_1_i_texture_g_l.html#a52de90ff7763df464ca38a78d4613629',1,'Diligent::ITextureGL::GetGLTextureHandle()']]], + ['getnativehandle',['GetNativeHandle',['../class_diligent_1_1_buffer_d3_d11_impl.html#a30d720ab9f8db17215ed1894c13943b0',1,'Diligent::BufferD3D11Impl::GetNativeHandle()'],['../class_diligent_1_1_texture_base_d3_d11.html#a1f2c2db637a93b0c5b07b7e01f0524f9',1,'Diligent::TextureBaseD3D11::GetNativeHandle()'],['../class_diligent_1_1_buffer_g_l_impl.html#ab335433ff0d1e55ca1ca916abcc90e5c',1,'Diligent::BufferGLImpl::GetNativeHandle()'],['../class_diligent_1_1_texture_base_g_l.html#a3f9de3628ca90e93a9c11142981dc840',1,'Diligent::TextureBaseGL::GetNativeHandle()'],['../class_diligent_1_1_buffer_d3_d12_impl.html#ab7bceac628b84b1375fb43180e33edf0',1,'Diligent::BufferD3D12Impl::GetNativeHandle()'],['../class_diligent_1_1_texture_d3_d12_impl.html#a610e841d55f450885431a1b0947edaf8',1,'Diligent::TextureD3D12Impl::GetNativeHandle()'],['../class_diligent_1_1_i_buffer.html#ac733f2223d82d4679d001d91235bc806',1,'Diligent::IBuffer::GetNativeHandle()'],['../class_diligent_1_1_i_texture.html#a6242160413bfb2962ecb5127dd66af77',1,'Diligent::ITexture::GetNativeHandle()']]], + ['getnextfencevalue',['GetNextFenceValue',['../class_diligent_1_1_command_queue_d3_d12_impl.html#a91523073b202a34b9192ff7487d81c95',1,'Diligent::CommandQueueD3D12Impl::GetNextFenceValue()'],['../class_diligent_1_1_i_command_queue_d3_d12.html#adda584f2430a53520af4c8b934e5c407',1,'Diligent::ICommandQueueD3D12::GetNextFenceValue()'],['../class_diligent_1_1_i_render_device_d3_d12.html#aa1bd3115f20daa537a1bdcb8b67e72bf',1,'Diligent::IRenderDeviceD3D12::GetNextFenceValue()']]], + ['getnumdeferredcontexts',['GetNumDeferredContexts',['../class_diligent_1_1_render_device_base.html#a71bf62b6b4fd94cdaa457c1bedc70958',1,'Diligent::RenderDeviceBase']]], + ['getpipelinestate',['GetPipelineState',['../class_diligent_1_1_device_context_base.html#a3dcdfd7d15966142ad2fff187ad791ab',1,'Diligent::DeviceContextBase::GetPipelineState()'],['../class_diligent_1_1_shader_resource_binding_base.html#ad65789a093a9c600c91710698fc0fdd6',1,'Diligent::ShaderResourceBindingBase::GetPipelineState()'],['../class_diligent_1_1_i_shader_resource_binding.html#ac62372c7b929d065ebc3f73e12c545ea',1,'Diligent::IShaderResourceBinding::GetPipelineState()']]], + ['getrawallocator',['GetRawAllocator',['../namespace_diligent.html#aef792a75d6b4771705fb4ed083428dc8',1,'Diligent']]], + ['getrendertargets',['GetRenderTargets',['../class_diligent_1_1_device_context_base.html#a705e2493b7a829da571d3ccf01a33fe2',1,'Diligent::DeviceContextBase']]], + ['getrendertargetsize',['GetRenderTargetSize',['../class_diligent_1_1_device_context_base.html#a84494604d0f3b7c84abf548509bf6b32',1,'Diligent::DeviceContextBase']]], + ['getresource',['GetResource',['../class_diligent_1_1_resource_mapping_impl.html#ac165e83d618f1dac9b1ebf4d59101d62',1,'Diligent::ResourceMappingImpl::GetResource()'],['../class_diligent_1_1_i_resource_mapping.html#ad6c3c3a143fbf01ce135ac9130ba7d61',1,'Diligent::IResourceMapping::GetResource()']]], + ['getrtv',['GetRTV',['../class_diligent_1_1_swap_chain_d3_d11_impl.html#a5028b6516e417053ba1b2e794a9cda2b',1,'Diligent::SwapChainD3D11Impl::GetRTV()'],['../class_diligent_1_1_i_swap_chain_d3_d11.html#ab57aacde93605c468cf8a14287bdf0f7',1,'Diligent::ISwapChainD3D11::GetRTV()']]], + ['getsampler',['GetSampler',['../class_diligent_1_1_texture_view_base.html#a3cfb65a9bfbccb84a3005aaa1edcf50f',1,'Diligent::TextureViewBase::GetSampler()'],['../class_diligent_1_1_i_texture_view.html#a33e3d0194be2cb2ac7a100d24ddafd35',1,'Diligent::ITextureView::GetSampler()']]], + ['getshadervariable',['GetShaderVariable',['../class_diligent_1_1_shader_d3_d11_impl.html#a0751ea45f162db3a99e13550056e5232',1,'Diligent::ShaderD3D11Impl::GetShaderVariable()'],['../class_diligent_1_1_shader_g_l_impl.html#ab870e3303471b852a0ddd3ed72be881e',1,'Diligent::ShaderGLImpl::GetShaderVariable()'],['../class_diligent_1_1_shader_d3_d12_impl.html#acaa2359a4d4b3c5bac5c418477acc6c5',1,'Diligent::ShaderD3D12Impl::GetShaderVariable()'],['../class_diligent_1_1_i_shader.html#ad3e51fa57cd1db70da2bc07773c1fdea',1,'Diligent::IShader::GetShaderVariable()']]], + ['getsize',['GetSize',['../class_diligent_1_1_data_blob_impl.html#a25783f78326dc09b2df27659a843d45f',1,'Diligent::DataBlobImpl::GetSize()'],['../class_diligent_1_1_string_data_blob_impl.html#a5c0075a45d1e17559b6194bf4bd756b9',1,'Diligent::StringDataBlobImpl::GetSize()'],['../class_diligent_1_1_resource_mapping_impl.html#afd919d655c3e00f4cb8064f6a5e8ae29',1,'Diligent::ResourceMappingImpl::GetSize()'],['../class_diligent_1_1_i_resource_mapping.html#a7729bb877a951908260978f8646fab4c',1,'Diligent::IResourceMapping::GetSize()']]], + ['getswapchain',['GetSwapChain',['../class_diligent_1_1_device_context_base.html#aa5d5e7fcbe239671373c95d324137ac8',1,'Diligent::DeviceContextBase']]], + ['gettexture',['GetTexture',['../class_diligent_1_1_texture_view_base.html#a61cc6594bfa7e4481ca159501f38bbca',1,'Diligent::TextureViewBase::GetTexture()'],['../class_diligent_1_1_i_texture_view.html#a5af346f3e31c7371060926e8d678fa47',1,'Diligent::ITextureView::GetTexture()']]], + ['gettextureformatinfo',['GetTextureFormatInfo',['../class_diligent_1_1_render_device_base.html#a3011f3972126101a2845cf1f05444d1e',1,'Diligent::RenderDeviceBase::GetTextureFormatInfo()'],['../class_diligent_1_1_i_render_device.html#ac7af1044d7f648a2483a9d0d0b497eec',1,'Diligent::IRenderDevice::GetTextureFormatInfo()']]], + ['gettextureformatinfoext',['GetTextureFormatInfoExt',['../class_diligent_1_1_render_device_base.html#a80112a1f01f47870ab1bd06e918ec753',1,'Diligent::RenderDeviceBase::GetTextureFormatInfoExt()'],['../class_diligent_1_1_i_render_device.html#a279386f22ed18238af8625d7b17f9efc',1,'Diligent::IRenderDevice::GetTextureFormatInfoExt()']]], + ['getuniqueid',['GetUniqueID',['../class_diligent_1_1_device_object_base.html#aafd0debde4434c1de91f18ad600373d2',1,'Diligent::DeviceObjectBase']]], + ['getvariable',['GetVariable',['../class_diligent_1_1_shader_resource_binding_d3_d11_impl.html#a4037df9b6e202393d80d9e619a9573e8',1,'Diligent::ShaderResourceBindingD3D11Impl::GetVariable()'],['../class_diligent_1_1_shader_resource_binding_g_l_impl.html#a74fbb80b2a3c7159d7382990a3bba47c',1,'Diligent::ShaderResourceBindingGLImpl::GetVariable()'],['../class_diligent_1_1_shader_resource_binding_d3_d12_impl.html#a65e999c2855afe4d4cb5441a6e112f93',1,'Diligent::ShaderResourceBindingD3D12Impl::GetVariable()'],['../class_diligent_1_1_i_shader_resource_binding.html#a618057fbf9b67670bd3107e1d9127a90',1,'Diligent::IShaderResourceBinding::GetVariable()']]], + ['getviewports',['GetViewports',['../class_diligent_1_1_device_context_base.html#a0e811225adb198a1a5fa6a6ffc7c9fb2',1,'Diligent::DeviceContextBase']]], + ['gpudescriptorheapdynamicsize',['GPUDescriptorHeapDynamicSize',['../struct_diligent_1_1_engine_d3_d12_attribs.html#a922a172c8be3881a1b1480802ac3ec10',1,'Diligent::EngineD3D12Attribs']]], + ['gpudescriptorheapsize',['GPUDescriptorHeapSize',['../struct_diligent_1_1_engine_d3_d12_attribs.html#af28560b39d2c2a20a6f0dfb4acfb641b',1,'Diligent::EngineD3D12Attribs']]], + ['graphicspipeline',['GraphicsPipeline',['../struct_diligent_1_1_pipeline_state_desc.html#ae92c6751af3487c12a3158ecc864b21f',1,'Diligent::PipelineStateDesc']]], + ['graphicspipelinedesc',['GraphicsPipelineDesc',['../struct_diligent_1_1_graphics_pipeline_desc.html',1,'Diligent']]], + ['graphicsengined3d11',['GraphicsEngineD3D11',['../md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_d3_d11_readme.html',1,'']]], + ['graphicsengined3d12',['GraphicsEngineD3D12',['../md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_d3_d12_readme.html',1,'']]], + ['graphicsengineopengl',['GraphicsEngineOpenGL',['../md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_open_g_l_readme.html',1,'']]] +]; diff --git a/doc/html/search/all_7.html b/doc/html/search/all_7.html new file mode 100644 index 00000000..88acd946 --- /dev/null +++ b/doc/html/search/all_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_7.js b/doc/html/search/all_7.js new file mode 100644 index 00000000..75466f4a --- /dev/null +++ b/doc/html/search/all_7.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['hash_3c_20diligent_3a_3ablendstatedesc_20_3e',['hash< Diligent::BlendStateDesc >',['../structstd_1_1hash_3_01_diligent_1_1_blend_state_desc_01_4.html',1,'std']]], + ['hash_3c_20diligent_3a_3adepthstencilstatedesc_20_3e',['hash< Diligent::DepthStencilStateDesc >',['../structstd_1_1hash_3_01_diligent_1_1_depth_stencil_state_desc_01_4.html',1,'std']]], + ['hash_3c_20diligent_3a_3arasterizerstatedesc_20_3e',['hash< Diligent::RasterizerStateDesc >',['../structstd_1_1hash_3_01_diligent_1_1_rasterizer_state_desc_01_4.html',1,'std']]], + ['hash_3c_20diligent_3a_3asamplerdesc_20_3e',['hash< Diligent::SamplerDesc >',['../structstd_1_1hash_3_01_diligent_1_1_sampler_desc_01_4.html',1,'std']]], + ['hash_3c_20diligent_3a_3astencilopdesc_20_3e',['hash< Diligent::StencilOpDesc >',['../structstd_1_1hash_3_01_diligent_1_1_stencil_op_desc_01_4.html',1,'std']]], + ['hash_3c_20diligent_3a_3atextureviewdesc_20_3e',['hash< Diligent::TextureViewDesc >',['../structstd_1_1hash_3_01_diligent_1_1_texture_view_desc_01_4.html',1,'std']]], + ['hashmapstringkey',['HashMapStringKey',['../struct_diligent_1_1_hash_map_string_key.html',1,'Diligent']]], + ['height',['Height',['../struct_diligent_1_1_viewport.html#a3bf0bdf2e63f5ddbb39771208714a6fd',1,'Diligent::Viewport::Height()'],['../struct_diligent_1_1_swap_chain_desc.html#abdfe5c1308ae6a670d4a27ee289fd945',1,'Diligent::SwapChainDesc::Height()'],['../struct_diligent_1_1_texture_desc.html#a61bc12d7c99fd26e00555776bf0e9fdf',1,'Diligent::TextureDesc::Height()']]] +]; diff --git a/doc/html/search/all_8.html b/doc/html/search/all_8.html new file mode 100644 index 00000000..b74d5fd8 --- /dev/null +++ b/doc/html/search/all_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_8.js b/doc/html/search/all_8.js new file mode 100644 index 00000000..bd7c6d58 --- /dev/null +++ b/doc/html/search/all_8.js @@ -0,0 +1,70 @@ +var searchData= +[ + ['ibuffer',['IBuffer',['../class_diligent_1_1_i_buffer.html',1,'Diligent']]], + ['ibufferd3d11',['IBufferD3D11',['../class_diligent_1_1_i_buffer_d3_d11.html',1,'Diligent']]], + ['ibufferd3d12',['IBufferD3D12',['../class_diligent_1_1_i_buffer_d3_d12.html',1,'Diligent']]], + ['ibuffergl',['IBufferGL',['../class_diligent_1_1_i_buffer_g_l.html',1,'Diligent']]], + ['ibufferview',['IBufferView',['../class_diligent_1_1_i_buffer_view.html',1,'Diligent']]], + ['ibufferviewd3d11',['IBufferViewD3D11',['../class_diligent_1_1_i_buffer_view_d3_d11.html',1,'Diligent']]], + ['ibufferviewd3d12',['IBufferViewD3D12',['../class_diligent_1_1_i_buffer_view_d3_d12.html',1,'Diligent']]], + ['ibufferviewgl',['IBufferViewGL',['../class_diligent_1_1_i_buffer_view_g_l.html',1,'Diligent']]], + ['icommandlist',['ICommandList',['../class_diligent_1_1_i_command_list.html',1,'Diligent']]], + ['icommandqueued3d12',['ICommandQueueD3D12',['../class_diligent_1_1_i_command_queue_d3_d12.html',1,'Diligent']]], + ['idevicecontext',['IDeviceContext',['../class_diligent_1_1_i_device_context.html',1,'Diligent']]], + ['idevicecontextd3d11',['IDeviceContextD3D11',['../class_diligent_1_1_i_device_context_d3_d11.html',1,'Diligent']]], + ['idevicecontextd3d12',['IDeviceContextD3D12',['../class_diligent_1_1_i_device_context_d3_d12.html',1,'Diligent']]], + ['idevicecontextgl',['IDeviceContextGL',['../class_diligent_1_1_i_device_context_g_l.html',1,'Diligent']]], + ['ideviceobject',['IDeviceObject',['../class_diligent_1_1_i_device_object.html',1,'Diligent']]], + ['idlegpu',['IdleGPU',['../class_diligent_1_1_command_queue_d3_d12_impl.html#a90f87e462c3f8cd7a5c9745271650bbc',1,'Diligent::CommandQueueD3D12Impl::IdleGPU()'],['../class_diligent_1_1_i_command_queue_d3_d12.html#a600037967c7c1d24480accc4b7ba999b',1,'Diligent::ICommandQueueD3D12::IdleGPU()']]], + ['independentblendenable',['IndependentBlendEnable',['../struct_diligent_1_1_blend_state_desc.html#ad54bf97f739f0f2e362073f90e6d91ed',1,'Diligent::BlendStateDesc']]], + ['indextype',['IndexType',['../struct_diligent_1_1_draw_attribs.html#a441e328dbf0df16449d1ebaec15f2f3f',1,'Diligent::DrawAttribs']]], + ['indirectdrawargsoffset',['IndirectDrawArgsOffset',['../struct_diligent_1_1_draw_attribs.html#a2bffcc70ecb79a93059cccafcc4c5622',1,'Diligent::DrawAttribs']]], + ['inputindex',['InputIndex',['../struct_diligent_1_1_layout_element.html#add2a1cf886367647a6b5897793328ba9',1,'Diligent::LayoutElement']]], + ['inputlayout',['InputLayout',['../struct_diligent_1_1_graphics_pipeline_desc.html#a1fc9bf9fa965b6c4b666e016e754c180',1,'Diligent::GraphicsPipelineDesc']]], + ['inputlayoutdesc',['InputLayoutDesc',['../struct_diligent_1_1_input_layout_desc.html',1,'Diligent']]], + ['instancedatasteprate',['InstanceDataStepRate',['../struct_diligent_1_1_layout_element.html#a7d7ba6ee279ffdb1ab101c164b32a203',1,'Diligent::LayoutElement']]], + ['invalidatestate',['InvalidateState',['../class_diligent_1_1_device_context_d3_d11_impl.html#a68d73ef2e9c725cefe31b9ac5dafd1ea',1,'Diligent::DeviceContextD3D11Impl::InvalidateState()'],['../class_diligent_1_1_device_context_g_l_impl.html#a6283cc1c6ab1d1ebb9d0e2b3431729ca',1,'Diligent::DeviceContextGLImpl::InvalidateState()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#adf347827ef3eaca3277783795648ddb8',1,'Diligent::DeviceContextD3D12Impl::InvalidateState()'],['../class_diligent_1_1_i_device_context.html#a5c0ab2630bf24514f2de851d1aaef1ab',1,'Diligent::IDeviceContext::InvalidateState()']]], + ['ipipelinestate',['IPipelineState',['../class_diligent_1_1_i_pipeline_state.html',1,'Diligent']]], + ['ipipelinestated3d11',['IPipelineStateD3D11',['../class_diligent_1_1_i_pipeline_state_d3_d11.html',1,'Diligent']]], + ['ipipelinestated3d12',['IPipelineStateD3D12',['../class_diligent_1_1_i_pipeline_state_d3_d12.html',1,'Diligent']]], + ['ipipelinestategl',['IPipelineStateGL',['../class_diligent_1_1_i_pipeline_state_g_l.html',1,'Diligent']]], + ['irenderdevice',['IRenderDevice',['../class_diligent_1_1_i_render_device.html',1,'Diligent']]], + ['irenderdeviced3d11',['IRenderDeviceD3D11',['../class_diligent_1_1_i_render_device_d3_d11.html',1,'Diligent']]], + ['irenderdeviced3d12',['IRenderDeviceD3D12',['../class_diligent_1_1_i_render_device_d3_d12.html',1,'Diligent']]], + ['irenderdevicegl',['IRenderDeviceGL',['../class_diligent_1_1_i_render_device_g_l.html',1,'Diligent']]], + ['irenderdevicegles',['IRenderDeviceGLES',['../class_diligent_1_1_i_render_device_g_l_e_s.html',1,'Diligent']]], + ['iresourcemapping',['IResourceMapping',['../class_diligent_1_1_i_resource_mapping.html',1,'Diligent']]], + ['isampler',['ISampler',['../class_diligent_1_1_i_sampler.html',1,'Diligent']]], + ['isamplerd3d11',['ISamplerD3D11',['../class_diligent_1_1_i_sampler_d3_d11.html',1,'Diligent']]], + ['isamplerd3d12',['ISamplerD3D12',['../class_diligent_1_1_i_sampler_d3_d12.html',1,'Diligent']]], + ['isamplergl',['ISamplerGL',['../class_diligent_1_1_i_sampler_g_l.html',1,'Diligent']]], + ['iscomputepipeline',['IsComputePipeline',['../struct_diligent_1_1_pipeline_state_desc.html#adbfcafcd303218af1c0123d0362dfe46',1,'Diligent::PipelineStateDesc']]], + ['isdefaultfbbound',['IsDefaultFBBound',['../class_diligent_1_1_device_context_base.html#ad481b1a3c896399271cebbc1de487823',1,'Diligent::DeviceContextBase']]], + ['isfencesignaled',['IsFenceSignaled',['../class_diligent_1_1_i_render_device_d3_d12.html#a97b891ad75062162ef1e7013824d4eab',1,'Diligent::IRenderDeviceD3D12']]], + ['ishader',['IShader',['../class_diligent_1_1_i_shader.html',1,'Diligent']]], + ['ishaderd3d11',['IShaderD3D11',['../class_diligent_1_1_i_shader_d3_d11.html',1,'Diligent']]], + ['ishaderd3d12',['IShaderD3D12',['../class_diligent_1_1_i_shader_d3_d12.html',1,'Diligent']]], + ['ishadergl',['IShaderGL',['../class_diligent_1_1_i_shader_g_l.html',1,'Diligent']]], + ['ishaderresourcebinding',['IShaderResourceBinding',['../class_diligent_1_1_i_shader_resource_binding.html',1,'Diligent']]], + ['ishaderresourcebindingd3d11',['IShaderResourceBindingD3D11',['../class_diligent_1_1_i_shader_resource_binding_d3_d11.html',1,'Diligent']]], + ['ishaderresourcebindingd3d12',['IShaderResourceBindingD3D12',['../class_diligent_1_1_i_shader_resource_binding_d3_d12.html',1,'Diligent']]], + ['ishaderresourcebindinggl',['IShaderResourceBindingGL',['../class_diligent_1_1_i_shader_resource_binding_g_l.html',1,'Diligent']]], + ['ishadersourceinputstreamfactory',['IShaderSourceInputStreamFactory',['../class_diligent_1_1_i_shader_source_input_stream_factory.html',1,'Diligent']]], + ['ishadervariable',['IShaderVariable',['../class_diligent_1_1_i_shader_variable.html',1,'Diligent']]], + ['isindexed',['IsIndexed',['../struct_diligent_1_1_draw_attribs.html#a1cc81bc2d59a429e39da7b84fe51d5c9',1,'Diligent::DrawAttribs']]], + ['isindirect',['IsIndirect',['../struct_diligent_1_1_draw_attribs.html#adf7f7c85b3c39454894e93666cc883c2',1,'Diligent::DrawAttribs']]], + ['isnormalized',['IsNormalized',['../struct_diligent_1_1_buffer_desc_1_1_buffer_format.html#a1050af245b83f52523bdc7cfed2ffd71',1,'Diligent::BufferDesc::BufferFormat::IsNormalized()'],['../struct_diligent_1_1_layout_element.html#abd37625caf1c0490740517b662a8a1ae',1,'Diligent::LayoutElement::IsNormalized()']]], + ['isvalid',['IsValid',['../class_diligent_1_1_ref_cnt_weak_ptr.html#a24085839a52ca922022a48f54e22f57f',1,'Diligent::RefCntWeakPtr']]], + ['iswapchain',['ISwapChain',['../class_diligent_1_1_i_swap_chain.html',1,'Diligent']]], + ['iswapchaind3d11',['ISwapChainD3D11',['../class_diligent_1_1_i_swap_chain_d3_d11.html',1,'Diligent']]], + ['iswapchaind3d12',['ISwapChainD3D12',['../class_diligent_1_1_i_swap_chain_d3_d12.html',1,'Diligent']]], + ['iswapchaingl',['ISwapChainGL',['../class_diligent_1_1_i_swap_chain_g_l.html',1,'Diligent']]], + ['itexture',['ITexture',['../class_diligent_1_1_i_texture.html',1,'Diligent']]], + ['itextured3d11',['ITextureD3D11',['../class_diligent_1_1_i_texture_d3_d11.html',1,'Diligent']]], + ['itextured3d12',['ITextureD3D12',['../class_diligent_1_1_i_texture_d3_d12.html',1,'Diligent']]], + ['itexturegl',['ITextureGL',['../class_diligent_1_1_i_texture_g_l.html',1,'Diligent']]], + ['itextureview',['ITextureView',['../class_diligent_1_1_i_texture_view.html',1,'Diligent']]], + ['itextureviewd3d11',['ITextureViewD3D11',['../class_diligent_1_1_i_texture_view_d3_d11.html',1,'Diligent']]], + ['itextureviewd3d12',['ITextureViewD3D12',['../class_diligent_1_1_i_texture_view_d3_d12.html',1,'Diligent']]], + ['itextureviewgl',['ITextureViewGL',['../class_diligent_1_1_i_texture_view_g_l.html',1,'Diligent']]] +]; diff --git a/doc/html/search/all_9.html b/doc/html/search/all_9.html new file mode 100644 index 00000000..95e88dd2 --- /dev/null +++ b/doc/html/search/all_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_9.js b/doc/html/search/all_9.js new file mode 100644 index 00000000..f9acbc04 --- /dev/null +++ b/doc/html/search/all_9.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['layoutelement',['LayoutElement',['../struct_diligent_1_1_layout_element.html',1,'Diligent::LayoutElement'],['../struct_diligent_1_1_layout_element.html#ab26b2052508c0af9bc3020a466b95016',1,'Diligent::LayoutElement::LayoutElement()']]], + ['layoutelements',['LayoutElements',['../struct_diligent_1_1_input_layout_desc.html#a3b6e3b8fcc1557ac07c78320c6ac399a',1,'Diligent::InputLayoutDesc']]], + ['left',['left',['../struct_diligent_1_1_rect.html#a2d66e3061bbee9a029437d24fc430507',1,'Diligent::Rect']]], + ['loadgraphicsengined3d11',['LoadGraphicsEngineD3D11',['../namespace_diligent.html#adfb2dafb678f595c8c1300cf53d14a15',1,'Diligent']]], + ['loadgraphicsengined3d12',['LoadGraphicsEngineD3D12',['../namespace_diligent.html#a8b3ac65ac7e5051a36f23aab198b7f26',1,'Diligent']]], + ['loadgraphicsengineopengl',['LoadGraphicsEngineOpenGL',['../namespace_diligent.html#a4102302b39db6902d51501d66e2fcfe6',1,'Diligent']]], + ['lock',['Lock',['../class_diligent_1_1_ref_cnt_weak_ptr.html#a39b29df7165190c63a48261e9fa2cd14',1,'Diligent::RefCntWeakPtr']]], + ['logic_5fop_5fand',['LOGIC_OP_AND',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a184dfeec861cffe26bcc2fc3b136d66d',1,'Diligent']]], + ['logic_5fop_5fand_5finverted',['LOGIC_OP_AND_INVERTED',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92ae21d1e9fb3eed77ddd76d4dce2c2d9fc',1,'Diligent']]], + ['logic_5fop_5fand_5freverse',['LOGIC_OP_AND_REVERSE',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a5e6b8778dc983d17194906f8642c3732',1,'Diligent']]], + ['logic_5fop_5fclear',['LOGIC_OP_CLEAR',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92afdfe9ad9094bc9f6a8a6e4f4f0b8a7f1',1,'Diligent']]], + ['logic_5fop_5fcopy',['LOGIC_OP_COPY',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92ac325ef2bf88d625c2432a827eb8c9782',1,'Diligent']]], + ['logic_5fop_5fcopy_5finverted',['LOGIC_OP_COPY_INVERTED',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92afb3a7e7949a22c09536c6cd737e8b5d3',1,'Diligent']]], + ['logic_5fop_5fequiv',['LOGIC_OP_EQUIV',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a1e38fa7811a232000ef9ccd0d77ce92b',1,'Diligent']]], + ['logic_5fop_5finvert',['LOGIC_OP_INVERT',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92aeb49b6fa869a72df66d0d428e4d00b8c',1,'Diligent']]], + ['logic_5fop_5fnand',['LOGIC_OP_NAND',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a91ebfea4ef01f358acd0ea79a074b972',1,'Diligent']]], + ['logic_5fop_5fnoop',['LOGIC_OP_NOOP',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a5216c93bdfa3dc7dbfa88d2464c1e1ad',1,'Diligent']]], + ['logic_5fop_5fnor',['LOGIC_OP_NOR',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a9f05b80e9e1de862d726c07d0dc8d29f',1,'Diligent']]], + ['logic_5fop_5fnum_5foperations',['LOGIC_OP_NUM_OPERATIONS',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a10885b91cf3d8c584a2a692a2acdf946',1,'Diligent']]], + ['logic_5fop_5for',['LOGIC_OP_OR',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a484dd041a2933b222acdbc3887ec784f',1,'Diligent']]], + ['logic_5fop_5for_5finverted',['LOGIC_OP_OR_INVERTED',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a20295cc262bf10f294531ec8d5d684e6',1,'Diligent']]], + ['logic_5fop_5for_5freverse',['LOGIC_OP_OR_REVERSE',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a2a82409fb240a540401f2f94171e7079',1,'Diligent']]], + ['logic_5fop_5fset',['LOGIC_OP_SET',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92aa0344ccea43ed2d74b7e0696bf8e7d73',1,'Diligent']]], + ['logic_5fop_5fxor',['LOGIC_OP_XOR',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92addf9c2927105ccdc9178d4d7524f6c4b',1,'Diligent']]], + ['logic_5foperation',['LOGIC_OPERATION',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92',1,'Diligent']]], + ['logicop',['LogicOp',['../struct_diligent_1_1_render_target_blend_desc.html#a6b1ca6f5409cb0df8c7091bd7238ca74',1,'Diligent::RenderTargetBlendDesc']]], + ['logicoperationenable',['LogicOperationEnable',['../struct_diligent_1_1_render_target_blend_desc.html#a975387a5370bd04a00d97d7a159398e6',1,'Diligent::RenderTargetBlendDesc']]] +]; diff --git a/doc/html/search/all_a.html b/doc/html/search/all_a.html new file mode 100644 index 00000000..3148a8e5 --- /dev/null +++ b/doc/html/search/all_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_a.js b/doc/html/search/all_a.js new file mode 100644 index 00000000..954a75b2 --- /dev/null +++ b/doc/html/search/all_a.js @@ -0,0 +1,99 @@ +var searchData= +[ + ['m_5fblendfactors',['m_BlendFactors',['../class_diligent_1_1_device_context_base.html#aa85029d7d67a055f1cbc85ec0bc27a60',1,'Diligent::DeviceContextBase']]], + ['m_5fbuffviewobjallocator',['m_BuffViewObjAllocator',['../class_diligent_1_1_render_device_base.html#a19aa05fcdd0288f4b4e5f4af578e7d77',1,'Diligent::RenderDeviceBase']]], + ['m_5fbufobjallocator',['m_BufObjAllocator',['../class_diligent_1_1_render_device_base.html#aceae2d24ad475dd41b74ef5acc3e33b0',1,'Diligent::RenderDeviceBase']]], + ['m_5fdesc',['m_Desc',['../class_diligent_1_1_device_object_base.html#a4ad4da7984cbf82505d362f0fc197bae',1,'Diligent::DeviceObjectBase']]], + ['m_5fdescriptor',['m_Descriptor',['../class_diligent_1_1_texture_view_d3_d12_impl.html#a929c92afae9a78068418964cc5b43331',1,'Diligent::TextureViewD3D12Impl']]], + ['m_5fdummyshadervar',['m_DummyShaderVar',['../class_diligent_1_1_shader_base.html#acfa66df57c881400087081985a26431e',1,'Diligent::ShaderBase']]], + ['m_5findexdatastartoffset',['m_IndexDataStartOffset',['../class_diligent_1_1_device_context_base.html#ad3c624d6156bab29d05458217e8ae060',1,'Diligent::DeviceContextBase']]], + ['m_5fisdefaultframebufferbound',['m_IsDefaultFramebufferBound',['../class_diligent_1_1_device_context_base.html#a048f97de19aa98d01a46891ff6ccb086',1,'Diligent::DeviceContextBase']]], + ['m_5fnumboundrendertargets',['m_NumBoundRenderTargets',['../class_diligent_1_1_device_context_base.html#acfa81f8449932663a06862f03d400b2c',1,'Diligent::DeviceContextBase']]], + ['m_5fnumscissorrects',['m_NumScissorRects',['../class_diligent_1_1_device_context_base.html#a0484a882bf170215e299b8046d47a4ef',1,'Diligent::DeviceContextBase']]], + ['m_5fnumshaders',['m_NumShaders',['../class_diligent_1_1_pipeline_state_base.html#a901b298592cced3a12082de676704d85',1,'Diligent::PipelineStateBase']]], + ['m_5fnumvertexstreams',['m_NumVertexStreams',['../class_diligent_1_1_device_context_base.html#a3e208cddf1ad782c614c626d6ecae429',1,'Diligent::DeviceContextBase']]], + ['m_5fnumviewports',['m_NumViewports',['../class_diligent_1_1_device_context_base.html#a19c9b26ce966ce3f6b6b3914cb803fa8',1,'Diligent::DeviceContextBase']]], + ['m_5fobjectnamecopy',['m_ObjectNameCopy',['../class_diligent_1_1_device_object_base.html#a38d8b07e45ed75f4e144c0d7f359a14d',1,'Diligent::DeviceObjectBase']]], + ['m_5fpbounddepthstencil',['m_pBoundDepthStencil',['../class_diligent_1_1_device_context_base.html#a3d6d4ed8592e5f9d388c167525201009',1,'Diligent::DeviceContextBase']]], + ['m_5fpboundrendertargets',['m_pBoundRenderTargets',['../class_diligent_1_1_device_context_base.html#a9792523cd2cc8ec09464e8b8d8771887',1,'Diligent::DeviceContextBase']]], + ['m_5fpbuffer',['m_pBuffer',['../class_diligent_1_1_buffer_view_base.html#a52e611ba9e96dd4cc985b9f77588529c',1,'Diligent::BufferViewBase']]], + ['m_5fpcs',['m_pCS',['../class_diligent_1_1_pipeline_state_base.html#ad9c448280c41c57d8c745edbde788063',1,'Diligent::PipelineStateBase']]], + ['m_5fpd3d11texture',['m_pd3d11Texture',['../class_diligent_1_1_texture_base_d3_d11.html#a681cce9a4730459dbb10871d4ab7c401',1,'Diligent::TextureBaseD3D11']]], + ['m_5fpd3d11view',['m_pD3D11View',['../class_diligent_1_1_buffer_view_d3_d11_impl.html#aa3e99b86b544dbb84e4b7eb725627dca',1,'Diligent::BufferViewD3D11Impl::m_pD3D11View()'],['../class_diligent_1_1_texture_view_d3_d11_impl.html#a2852fe19f64e1315f348a4ad3849dcda',1,'Diligent::TextureViewD3D11Impl::m_pD3D11View()']]], + ['m_5fpd3d12resource',['m_pd3d12Resource',['../class_diligent_1_1_d3_d12_resource_base.html#a384791577c4cfbd0cfaca4ab6057097a',1,'Diligent::D3D12ResourceBase']]], + ['m_5fpdefaultdsv',['m_pDefaultDSV',['../class_diligent_1_1_texture_base.html#a6a63f0edcd4eabfb50c2be35d4c42bba',1,'Diligent::TextureBase']]], + ['m_5fpdefaultrtv',['m_pDefaultRTV',['../class_diligent_1_1_texture_base.html#a6b84853e321ab2023d96a62ae1b71095',1,'Diligent::TextureBase']]], + ['m_5fpdefaultsrv',['m_pDefaultSRV',['../class_diligent_1_1_buffer_base.html#a07d78ac464ec5c8a05900bb4819d164d',1,'Diligent::BufferBase::m_pDefaultSRV()'],['../class_diligent_1_1_texture_base.html#a422073618342c8734795dee260e8b5b7',1,'Diligent::TextureBase::m_pDefaultSRV()']]], + ['m_5fpdefaultuav',['m_pDefaultUAV',['../class_diligent_1_1_buffer_base.html#af638f9c10f9c317845f1d73e35dccfdf',1,'Diligent::BufferBase::m_pDefaultUAV()'],['../class_diligent_1_1_texture_base.html#ac39e3ed2439c28eecbde7b5e57a80bec',1,'Diligent::TextureBase::m_pDefaultUAV()']]], + ['m_5fpdevice',['m_pDevice',['../class_diligent_1_1_device_context_base.html#aff0d5fdeb9c04c5d428befc53c2f1146',1,'Diligent::DeviceContextBase']]], + ['m_5fpds',['m_pDS',['../class_diligent_1_1_pipeline_state_base.html#a06bf5019d7ff2def707cc81bb79c3cee',1,'Diligent::PipelineStateBase']]], + ['m_5fpgs',['m_pGS',['../class_diligent_1_1_pipeline_state_base.html#adf8c72e092b514fb745cee9033343357',1,'Diligent::PipelineStateBase']]], + ['m_5fphs',['m_pHS',['../class_diligent_1_1_pipeline_state_base.html#a55066c8c3a861cf409f6e6535753372d',1,'Diligent::PipelineStateBase']]], + ['m_5fpindexbuffer',['m_pIndexBuffer',['../class_diligent_1_1_device_context_base.html#a086cb68e9fabbee8118793ffc5b3ea8d',1,'Diligent::DeviceContextBase']]], + ['m_5fppipelinestate',['m_pPipelineState',['../class_diligent_1_1_device_context_base.html#accdaef46d7edc861895c5616466b68ed',1,'Diligent::DeviceContextBase']]], + ['m_5fpps',['m_pPS',['../class_diligent_1_1_pipeline_state_base.html#ad3a1941b976b6c84a6dbb1b9b4d9a080',1,'Diligent::PipelineStateBase']]], + ['m_5fppshaders',['m_ppShaders',['../class_diligent_1_1_pipeline_state_base.html#a74528c3a0f9bf38b38775a272addd500',1,'Diligent::PipelineStateBase']]], + ['m_5fprenderdevice',['m_pRenderDevice',['../class_diligent_1_1_swap_chain_base.html#abc09a0e8693486adfde7b00359e70eb8',1,'Diligent::SwapChainBase']]], + ['m_5fpsampler',['m_pSampler',['../class_diligent_1_1_texture_view_base.html#a0c4b1d7ff93072f2bcc7c9843503c3b8',1,'Diligent::TextureViewBase']]], + ['m_5fpsoallocator',['m_PSOAllocator',['../class_diligent_1_1_render_device_base.html#a9ff23a4259f051a78e2292e7b5ae79c8',1,'Diligent::RenderDeviceBase']]], + ['m_5fpswapchain',['m_pSwapChain',['../class_diligent_1_1_device_context_base.html#a899f5fa7f6a7ec9e6751b453c8b8fdda',1,'Diligent::DeviceContextBase']]], + ['m_5fptexture',['m_pTexture',['../class_diligent_1_1_texture_view_base.html#aacd89c0d9f3151feee504630a3f2c5a1',1,'Diligent::TextureViewBase']]], + ['m_5fpvs',['m_pVS',['../class_diligent_1_1_pipeline_state_base.html#af66a7c20dc9251400779cf17cdbb4e87',1,'Diligent::PipelineStateBase']]], + ['m_5fresmappingallocator',['m_ResMappingAllocator',['../class_diligent_1_1_render_device_base.html#a02eeb28e659e12c5b5db22abd7b69ab0',1,'Diligent::RenderDeviceBase']]], + ['m_5fsamplerobjallocator',['m_SamplerObjAllocator',['../class_diligent_1_1_render_device_base.html#a21ecf62f9ad329322a2e29c327e22ca9',1,'Diligent::RenderDeviceBase']]], + ['m_5fsamplersregistry',['m_SamplersRegistry',['../class_diligent_1_1_render_device_base.html#a155f91be8d4e8edd610666ddc29021d1',1,'Diligent::RenderDeviceBase']]], + ['m_5fscissorrects',['m_ScissorRects',['../class_diligent_1_1_device_context_base.html#a44d5db30d0b829d95d2f58381fb0510c',1,'Diligent::DeviceContextBase']]], + ['m_5fshaderobjallocator',['m_ShaderObjAllocator',['../class_diligent_1_1_render_device_base.html#a9f24bf3592175584c001454c1650e6d2',1,'Diligent::RenderDeviceBase']]], + ['m_5fspbuffer',['m_spBuffer',['../class_diligent_1_1_buffer_view_base.html#ae76607f4c09fb252ffc0f5e5c433d5dd',1,'Diligent::BufferViewBase']]], + ['m_5fsppso',['m_spPSO',['../class_diligent_1_1_shader_resource_binding_base.html#af127da4b8c75ef46878a0c8762c8c707',1,'Diligent::ShaderResourceBindingBase']]], + ['m_5fsptexture',['m_spTexture',['../class_diligent_1_1_texture_view_base.html#a78cc90a178c7720f8a563e540e174691',1,'Diligent::TextureViewBase']]], + ['m_5fsrballocator',['m_SRBAllocator',['../class_diligent_1_1_render_device_base.html#a0877e7b3f2412aa9dd86c7ce7b6434ba',1,'Diligent::RenderDeviceBase']]], + ['m_5fstaticsamplers',['m_StaticSamplers',['../class_diligent_1_1_shader_base.html#a812944988f3a2cf9d4a1d074f1915295',1,'Diligent::ShaderBase']]], + ['m_5fstencilref',['m_StencilRef',['../class_diligent_1_1_device_context_base.html#adff46e5925212c4efb6d0deb35c2eb36',1,'Diligent::DeviceContextBase']]], + ['m_5fstringpool',['m_StringPool',['../class_diligent_1_1_shader_base.html#a64f93fb831a7678033d7240c81483095',1,'Diligent::ShaderBase']]], + ['m_5fswapchaindesc',['m_SwapChainDesc',['../class_diligent_1_1_swap_chain_base.html#a90d1239e1d91f6e4eed19d5f7cf6d0b7',1,'Diligent::SwapChainBase']]], + ['m_5ftexobjallocator',['m_TexObjAllocator',['../class_diligent_1_1_render_device_base.html#ac566200959ccaa4418651d7700f9d8be',1,'Diligent::RenderDeviceBase']]], + ['m_5ftexviewobjallocator',['m_TexViewObjAllocator',['../class_diligent_1_1_render_device_base.html#a1729f5bc9dc7c8588e8ddb3f54524330',1,'Diligent::RenderDeviceBase']]], + ['m_5fvariablesdesc',['m_VariablesDesc',['../class_diligent_1_1_shader_base.html#ade4d8dd8b6fc208f6d1318e4dffd7aaa',1,'Diligent::ShaderBase']]], + ['m_5fvertexstreams',['m_VertexStreams',['../class_diligent_1_1_device_context_base.html#a16bfbd8c1a539868f274b2491561f4a8',1,'Diligent::DeviceContextBase']]], + ['m_5fviewports',['m_Viewports',['../class_diligent_1_1_device_context_base.html#a21fcaf1398ab2d4eb3aadc5b16dc90ae',1,'Diligent::DeviceContextBase']]], + ['m_5fwpdeferredcontexts',['m_wpDeferredContexts',['../class_diligent_1_1_render_device_base.html#a0432cc6a912e9f5b87c470873840b068',1,'Diligent::RenderDeviceBase']]], + ['m_5fwpdevicecontext',['m_wpDeviceContext',['../class_diligent_1_1_swap_chain_base.html#adfa0afc3bec1c866c37015d8d4986540',1,'Diligent::SwapChainBase']]], + ['m_5fwpimmediatecontext',['m_wpImmediateContext',['../class_diligent_1_1_render_device_base.html#a141fe3acb5d2f5ff799c315e79b99eb8',1,'Diligent::RenderDeviceBase']]], + ['macros',['Macros',['../struct_diligent_1_1_shader_creation_attribs.html#afa568255f209ad0f61ef97e57bb0d402',1,'Diligent::ShaderCreationAttribs']]], + ['magfilter',['MagFilter',['../struct_diligent_1_1_sampler_desc.html#a86e07a8b1c2943695b996dc5043e26bd',1,'Diligent::SamplerDesc']]], + ['majorversion',['MajorVersion',['../struct_diligent_1_1_device_caps.html#aa6930d494e233ea0b46d0ec7d260a870',1,'Diligent::DeviceCaps']]], + ['map',['Map',['../class_diligent_1_1_buffer_d3_d11_impl.html#a5c77d5f307b1016aa9bbc3324caaa311',1,'Diligent::BufferD3D11Impl::Map()'],['../class_diligent_1_1_texture_base_d3_d11.html#aef90cfa2cb64f8478dc1e5da263a88ff',1,'Diligent::TextureBaseD3D11::Map()'],['../class_diligent_1_1_buffer_g_l_impl.html#a977490e09a76cc67cbc46ff9ca56f2e9',1,'Diligent::BufferGLImpl::Map()'],['../class_diligent_1_1_texture_base_g_l.html#a34a1a8a070f02497414b84322449d4b9',1,'Diligent::TextureBaseGL::Map()'],['../class_diligent_1_1_buffer_d3_d12_impl.html#a88f5c5e31ceaba1e8302415f9579fbd0',1,'Diligent::BufferD3D12Impl::Map()'],['../class_diligent_1_1_texture_d3_d12_impl.html#a7dfc1769e55ab8084ed0c61167964777',1,'Diligent::TextureD3D12Impl::Map()'],['../class_diligent_1_1_buffer_base.html#a138ba26c24c34b78ea4a0990b77fc14a',1,'Diligent::BufferBase::Map()'],['../class_diligent_1_1_texture_base.html#a9304ec9edb52c699cf958b51804fc532',1,'Diligent::TextureBase::Map()'],['../class_diligent_1_1_i_buffer.html#af7715744014ebca78a20fa9a92ddf9ae',1,'Diligent::IBuffer::Map()'],['../class_diligent_1_1_map_helper.html#a29122efd373088345e38593b72f00145',1,'Diligent::MapHelper::Map()'],['../class_diligent_1_1_i_texture.html#a3889d01df9f41ea6f07d6fb814ff466f',1,'Diligent::ITexture::Map()']]], + ['map_5fflag_5fdiscard',['MAP_FLAG_DISCARD',['../namespace_diligent.html#af3b0412706d6ab99faa6774f92ce9cc6a79bb58b801e3f09e62e15c16da90efc8',1,'Diligent']]], + ['map_5fflag_5fdo_5fnot_5fsynchronize',['MAP_FLAG_DO_NOT_SYNCHRONIZE',['../namespace_diligent.html#af3b0412706d6ab99faa6774f92ce9cc6a329aa426e3e1dc2ae4ce397bd3eb4f38',1,'Diligent']]], + ['map_5fflag_5fdo_5fnot_5fwait',['MAP_FLAG_DO_NOT_WAIT',['../namespace_diligent.html#af3b0412706d6ab99faa6774f92ce9cc6acbd8dc9cee248433c31593e4a62ecb15',1,'Diligent']]], + ['map_5fflags',['MAP_FLAGS',['../namespace_diligent.html#af3b0412706d6ab99faa6774f92ce9cc6',1,'Diligent']]], + ['map_5fread',['MAP_READ',['../namespace_diligent.html#aaf23669c215f709c983b1405efc19357a65436444d4034265e317ebc832a56cd4',1,'Diligent']]], + ['map_5fread_5fwrite',['MAP_READ_WRITE',['../namespace_diligent.html#aaf23669c215f709c983b1405efc19357af0effcf3a0f2ac99c954744ea9a09f85',1,'Diligent']]], + ['map_5ftype',['MAP_TYPE',['../namespace_diligent.html#aaf23669c215f709c983b1405efc19357',1,'Diligent']]], + ['map_5fwrite',['MAP_WRITE',['../namespace_diligent.html#aaf23669c215f709c983b1405efc19357aa72437321e4ef90f4e80a8bc316691ab',1,'Diligent']]], + ['maphelper',['MapHelper',['../class_diligent_1_1_map_helper.html',1,'Diligent::MapHelper< DataType, KeepStrongReferences >'],['../class_diligent_1_1_map_helper.html#a7efa028a961444e46cac1af58308878e',1,'Diligent::MapHelper::MapHelper()'],['../class_diligent_1_1_map_helper.html#a6bd2d032fc46a306e03bcaa09e07faf3',1,'Diligent::MapHelper::MapHelper(IDeviceContext *pContext, IBuffer *pBuffer, MAP_TYPE MapType, Uint32 MapFlags)'],['../class_diligent_1_1_map_helper.html#a05fa3d2538dacb300390d213ae2b1e40',1,'Diligent::MapHelper::MapHelper(MapHelper &&Helper)']]], + ['maxanisotropy',['MaxAnisotropy',['../struct_diligent_1_1_sampler_desc.html#a20c78bf3c4e7c05781f1e32dce60f025',1,'Diligent::SamplerDesc']]], + ['maxbufferslots',['MaxBufferSlots',['../namespace_diligent.html#a9d3d207f6d44cb2988a2748e4dc97722',1,'Diligent']]], + ['maxdepth',['MaxDepth',['../struct_diligent_1_1_viewport.html#a25f90df01dd587cc8ad69cfbf278d8bd',1,'Diligent::Viewport']]], + ['maxlod',['MaxLOD',['../struct_diligent_1_1_sampler_desc.html#a8e476ea05829137b4d53c47f41c1f306',1,'Diligent::SamplerDesc']]], + ['maxrendertargets',['MaxRenderTargets',['../struct_diligent_1_1_blend_state_desc.html#a7668a548a9b1760370514670791b0fb0',1,'Diligent::BlendStateDesc::MaxRenderTargets()'],['../namespace_diligent.html#ac667e59fc3ba021e3bd1d1424a3674d8',1,'Diligent::MaxRenderTargets()']]], + ['maxx',['MaxX',['../struct_diligent_1_1_box.html#a5f38a77f2749ad506c4418463ab7ab30',1,'Diligent::Box']]], + ['maxy',['MaxY',['../struct_diligent_1_1_box.html#a332e14c1408ce8b260c9ad4ffb422200',1,'Diligent::Box']]], + ['maxz',['MaxZ',['../struct_diligent_1_1_box.html#af5b6da6f645ee6d219b5723825b1ec15',1,'Diligent::Box']]], + ['mindepth',['MinDepth',['../struct_diligent_1_1_viewport.html#a7e6d0e084796700cad042cbf125f9f52',1,'Diligent::Viewport']]], + ['minfilter',['MinFilter',['../struct_diligent_1_1_sampler_desc.html#a033ebb2c7d97f8c4ec464d05499a9107',1,'Diligent::SamplerDesc']]], + ['minlod',['MinLOD',['../struct_diligent_1_1_sampler_desc.html#a5af812014f093aeea8edaf2dd26e0f61',1,'Diligent::SamplerDesc']]], + ['minorversion',['MinorVersion',['../struct_diligent_1_1_device_caps.html#abdc1be2715af7e39f54454b26395ac73',1,'Diligent::DeviceCaps']]], + ['minx',['MinX',['../struct_diligent_1_1_box.html#a6cec8f1f8c44cc53b4cd1dfe3b9f08d1',1,'Diligent::Box']]], + ['miny',['MinY',['../struct_diligent_1_1_box.html#aaf2671702197fb75ab16e80b71999768',1,'Diligent::Box']]], + ['minz',['MinZ',['../struct_diligent_1_1_box.html#aac79f5a5e0830b9cbdbb16ba04491420',1,'Diligent::Box']]], + ['mipfilter',['MipFilter',['../struct_diligent_1_1_sampler_desc.html#a64df7cb18ed8d2ed09f2fdd106f17dce',1,'Diligent::SamplerDesc']]], + ['miplevels',['MipLevels',['../struct_diligent_1_1_texture_desc.html#a3e1b9f6489054523bfeb0252071cf997',1,'Diligent::TextureDesc']]], + ['miplodbias',['MipLODBias',['../struct_diligent_1_1_sampler_desc.html#ae63028ae64656ff35520dab609f94696',1,'Diligent::SamplerDesc']]], + ['misc_5ftexture_5fflag',['MISC_TEXTURE_FLAG',['../namespace_diligent.html#a26330621767a4a6ed8f44c0426233782',1,'Diligent']]], + ['misc_5ftexture_5fflag_5fgenerate_5fmips',['MISC_TEXTURE_FLAG_GENERATE_MIPS',['../namespace_diligent.html#a26330621767a4a6ed8f44c0426233782a926903219be74a74df00dedd41cd1d84',1,'Diligent']]], + ['miscflags',['MiscFlags',['../struct_diligent_1_1_texture_desc.html#a9386aa4e98ad13a15363e647b4238a0d',1,'Diligent::TextureDesc']]], + ['mode',['Mode',['../struct_diligent_1_1_buffer_desc.html#accc3f239b5408d849414bcb6baabf6a7',1,'Diligent::BufferDesc']]], + ['mostdetailedmip',['MostDetailedMip',['../struct_diligent_1_1_texture_view_desc.html#a4dab3e4cc5720c1cb5eb5cc6e12c834f',1,'Diligent::TextureViewDesc']]] +]; diff --git a/doc/html/search/all_b.html b/doc/html/search/all_b.html new file mode 100644 index 00000000..f2a3c8d0 --- /dev/null +++ b/doc/html/search/all_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_b.js b/doc/html/search/all_b.js new file mode 100644 index 00000000..8da1d63e --- /dev/null +++ b/doc/html/search/all_b.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['name',['Name',['../struct_diligent_1_1_device_object_attribs.html#a14a31dc6ad69e0b79514e5349e9b4fc0',1,'Diligent::DeviceObjectAttribs::Name()'],['../struct_diligent_1_1_texture_format_attribs.html#a6ed4f3931984712f58e8ac6a4863565a',1,'Diligent::TextureFormatAttribs::Name()'],['../struct_diligent_1_1_resource_mapping_entry.html#a62f99ae784081dd78b7a3336c3e3662d',1,'Diligent::ResourceMappingEntry::Name()'],['../struct_diligent_1_1_shader_variable_desc.html#a469f1c83d48f666ec71cc8ec1015cfce',1,'Diligent::ShaderVariableDesc::Name()']]], + ['nodemask',['NodeMask',['../struct_diligent_1_1_graphics_pipeline_desc.html#adb8ecb078c4e457b37ba2e01fbbecb34',1,'Diligent::GraphicsPipelineDesc']]], + ['numarrayslices',['NumArraySlices',['../struct_diligent_1_1_texture_view_desc.html#a73d11640604c30831529fa0ed4bff739',1,'Diligent::TextureViewDesc']]], + ['numcommandstoflushcmdlist',['NumCommandsToFlushCmdList',['../struct_diligent_1_1_engine_d3_d12_attribs.html#a71eeaab09ee38f40ae159f7e8ecc801b',1,'Diligent::EngineD3D12Attribs']]], + ['numcomponents',['NumComponents',['../struct_diligent_1_1_buffer_desc_1_1_buffer_format.html#ae037802569e9d4f5c811dbf7c155f0ab',1,'Diligent::BufferDesc::BufferFormat::NumComponents()'],['../struct_diligent_1_1_texture_format_attribs.html#acfd78789dc8c707a8012fd1f858b6389',1,'Diligent::TextureFormatAttribs::NumComponents()'],['../struct_diligent_1_1_layout_element.html#ab3e9d89fa173939af8b440d597a3ff49',1,'Diligent::LayoutElement::NumComponents()']]], + ['numdepthslices',['NumDepthSlices',['../struct_diligent_1_1_texture_view_desc.html#ae06333b962447fde60b73ab36e5d4821',1,'Diligent::TextureViewDesc']]], + ['numelements',['NumElements',['../struct_diligent_1_1_input_layout_desc.html#a22b13cfa930507a76b6025ee6bf05553',1,'Diligent::InputLayoutDesc']]], + ['numindices',['NumIndices',['../struct_diligent_1_1_draw_attribs.html#a6c4d5baa3cbddc16e7ca12eba5823d7b',1,'Diligent::DrawAttribs']]], + ['numinstances',['NumInstances',['../struct_diligent_1_1_draw_attribs.html#afaa7465592245150fcd7edde9f3d769c',1,'Diligent::DrawAttribs']]], + ['nummiplevels',['NumMipLevels',['../struct_diligent_1_1_texture_view_desc.html#a579d6744e8fd271701401e1c9a903c74',1,'Diligent::TextureViewDesc']]], + ['numrendertargets',['NumRenderTargets',['../struct_diligent_1_1_graphics_pipeline_desc.html#acd646619226f2300e70e5c03bd5af7fc',1,'Diligent::GraphicsPipelineDesc']]], + ['numshadertypes',['NumShaderTypes',['../class_diligent_1_1_device_context_d3_d11_impl.html#afcd3ab8dc67e23c6689028bf34d22c16',1,'Diligent::DeviceContextD3D11Impl']]], + ['numstaticsamplers',['NumStaticSamplers',['../struct_diligent_1_1_shader_desc.html#ab7980cf953bf039450eabd77c6a79979',1,'Diligent::ShaderDesc']]], + ['numsubresources',['NumSubresources',['../struct_diligent_1_1_texture_data.html#aa2f8aae2bc55091930db5cbe89884712',1,'Diligent::TextureData']]], + ['numvariables',['NumVariables',['../struct_diligent_1_1_shader_desc.html#a0f313b46740d5a80c371acf89e29ec0f',1,'Diligent::ShaderDesc']]], + ['numvertices',['NumVertices',['../struct_diligent_1_1_draw_attribs.html#aac1a1696f8dbbbcc612ad6747ceb48de',1,'Diligent::DrawAttribs']]] +]; diff --git a/doc/html/search/all_c.html b/doc/html/search/all_c.html new file mode 100644 index 00000000..63768107 --- /dev/null +++ b/doc/html/search/all_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_c.js b/doc/html/search/all_c.js new file mode 100644 index 00000000..bad51bb7 --- /dev/null +++ b/doc/html/search/all_c.js @@ -0,0 +1,49 @@ +var searchData= +[ + ['objectbase',['ObjectBase',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ibufferd3d11_20_3e',['ObjectBase< IBufferD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ibufferd3d12_20_3e',['ObjectBase< IBufferD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ibuffergl_20_3e',['ObjectBase< IBufferGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ibufferviewd3d11_20_3e',['ObjectBase< IBufferViewD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ibufferviewd3d12_20_3e',['ObjectBase< IBufferViewD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ibufferviewgl_20_3e',['ObjectBase< IBufferViewGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20icommandlist_20_3e',['ObjectBase< ICommandList >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20icommandqueued3d12_20_3e',['ObjectBase< ICommandQueueD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20idatablob_20_3e',['ObjectBase< IDataBlob >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20idevicecontextd3d11_20_3e',['ObjectBase< IDeviceContextD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20idevicecontextd3d12_20_3e',['ObjectBase< IDeviceContextD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20idevicecontextgl_20_3e',['ObjectBase< IDeviceContextGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ifilestream_20_3e',['ObjectBase< IFileStream >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20igldevicebaseinterface_20_3e',['ObjectBase< IGLDeviceBaseInterface >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ipipelinestated3d11_20_3e',['ObjectBase< IPipelineStateD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ipipelinestated3d12_20_3e',['ObjectBase< IPipelineStateD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ipipelinestategl_20_3e',['ObjectBase< IPipelineStateGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20iresourcemapping_20_3e',['ObjectBase< IResourceMapping >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20isamplerd3d11_20_3e',['ObjectBase< ISamplerD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20isamplerd3d12_20_3e',['ObjectBase< ISamplerD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20isamplergl_20_3e',['ObjectBase< ISamplerGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ishaderd3d11_20_3e',['ObjectBase< IShaderD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ishaderd3d12_20_3e',['ObjectBase< IShaderD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ishadergl_20_3e',['ObjectBase< IShaderGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ishaderresourcebindingd3d11_20_3e',['ObjectBase< IShaderResourceBindingD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ishaderresourcebindingd3d12_20_3e',['ObjectBase< IShaderResourceBindingD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ishaderresourcebindinggl_20_3e',['ObjectBase< IShaderResourceBindingGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20iswapchaind3d11_20_3e',['ObjectBase< ISwapChainD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20iswapchaind3d12_20_3e',['ObjectBase< ISwapChainD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20iswapchaingl_20_3e',['ObjectBase< ISwapChainGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20itextured3d11_20_3e',['ObjectBase< ITextureD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20itextured3d12_20_3e',['ObjectBase< ITextureD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20itexturegl_20_3e',['ObjectBase< ITextureGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20itextureviewd3d11_20_3e',['ObjectBase< ITextureViewD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20itextureviewd3d12_20_3e',['ObjectBase< ITextureViewD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20itextureviewgl_20_3e',['ObjectBase< ITextureViewGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['offset',['Offset',['../struct_diligent_1_1_vertex_stream_info.html#ac839eba6e7edb4c22ad6d32e60dc4f58',1,'Diligent::VertexStreamInfo']]], + ['opengl',['OpenGL',['../namespace_diligent.html#a905d9d44892311167e9b28962bbf7e18a760716b590ee7c0adc25f434f577d8be',1,'Diligent']]], + ['opengles',['OpenGLES',['../namespace_diligent.html#a905d9d44892311167e9b28962bbf7e18af4b7db07e13ba92157b1b7d961abfaae',1,'Diligent']]], + ['operator_20const_20datatype_20_2a',['operator const DataType *',['../class_diligent_1_1_map_helper.html#a336fde9123de98e6cef49e46b3416896',1,'Diligent::MapHelper']]], + ['operator_20datatype_20_2a',['operator DataType *',['../class_diligent_1_1_map_helper.html#ae6173cf9a43e72ec1f2d2cf3f6b56021',1,'Diligent::MapHelper']]], + ['operator_2d_3e',['operator->',['../class_diligent_1_1_map_helper.html#a9a03b852a44669d4f08aa12cc4fa4f7c',1,'Diligent::MapHelper::operator->()'],['../class_diligent_1_1_map_helper.html#a468bff3eea36a37271053ba0feb7cd49',1,'Diligent::MapHelper::operator->() const']]], + ['operator_3d',['operator=',['../class_diligent_1_1_map_helper.html#aa99d9b36bc35fe2c5d3f87f9fcab6571',1,'Diligent::MapHelper']]], + ['operator_3d_3d',['operator==',['../struct_diligent_1_1_render_target_blend_desc.html#ac397a773166c5bbe3c4156cf02d28df5',1,'Diligent::RenderTargetBlendDesc::operator==()'],['../struct_diligent_1_1_blend_state_desc.html#afa384964ca7075462619b724d53f710e',1,'Diligent::BlendStateDesc::operator==()'],['../struct_diligent_1_1_buffer_desc_1_1_buffer_format.html#ad605a62df9b246a10f5870f9e904b50e',1,'Diligent::BufferDesc::BufferFormat::operator==()'],['../struct_diligent_1_1_buffer_desc.html#a5e2319a1a627e82958d3b13343e62c46',1,'Diligent::BufferDesc::operator==()'],['../struct_diligent_1_1_buffer_view_desc.html#a80d03a4bc5440858b808ffc2d02d3d12',1,'Diligent::BufferViewDesc::operator==()'],['../struct_diligent_1_1_stencil_op_desc.html#a62169ecf07e45e9244bfe27c0caf3982',1,'Diligent::StencilOpDesc::operator==()'],['../struct_diligent_1_1_depth_stencil_state_desc.html#a0d676528673a25693499f031af7e2a50',1,'Diligent::DepthStencilStateDesc::operator==()'],['../struct_diligent_1_1_rasterizer_state_desc.html#ac4f37d73250fb4c82fd731ad991ae9ed',1,'Diligent::RasterizerStateDesc::operator==()'],['../struct_diligent_1_1_sampler_desc.html#ae8684fb685c5e6e6accc6dbbca52e26d',1,'Diligent::SamplerDesc::operator==()'],['../struct_diligent_1_1_texture_desc.html#ade268a186493a358acfc457741f1611e',1,'Diligent::TextureDesc::operator==()'],['../struct_diligent_1_1_texture_view_desc.html#afed385710847ac44fd0ec08d1334bc08',1,'Diligent::TextureViewDesc::operator==()']]], + ['optimizedclearvalue',['OptimizedClearValue',['../struct_diligent_1_1_optimized_clear_value.html',1,'Diligent']]] +]; diff --git a/doc/html/search/all_d.html b/doc/html/search/all_d.html new file mode 100644 index 00000000..cc52c79f --- /dev/null +++ b/doc/html/search/all_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_d.js b/doc/html/search/all_d.js new file mode 100644 index 00000000..35172a5d --- /dev/null +++ b/doc/html/search/all_d.js @@ -0,0 +1,80 @@ +var searchData= +[ + ['pbuff',['pBuff',['../struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_c_b.html#a0681b9b314e7e71fcfdee6a1a7b488fa',1,'Diligent::ShaderResourceCacheD3D11::CachedCB']]], + ['pbuffer',['pBuffer',['../struct_diligent_1_1_vertex_stream_info.html#a2ec47825b3e3ebb2955b87692377c2be',1,'Diligent::VertexStreamInfo']]], + ['pcs',['pCS',['../struct_diligent_1_1_compute_pipeline_desc.html#a8fda9c722e19f615786f3bad1596d1d9',1,'Diligent::ComputePipelineDesc']]], + ['pdata',['pData',['../struct_diligent_1_1_buffer_data.html#a26cc7ca53f891a63ed1846e27b8e50d8',1,'Diligent::BufferData::pData()'],['../struct_diligent_1_1_texture_sub_res_data.html#a2b2bb575cc953e611b8cba07192f18d1',1,'Diligent::TextureSubResData::pData()']]], + ['pds',['pDS',['../struct_diligent_1_1_graphics_pipeline_desc.html#af5545df4251e77b506173ee4c1de0849',1,'Diligent::GraphicsPipelineDesc']]], + ['pentries',['pEntries',['../struct_diligent_1_1_resource_mapping_desc.html#a3d3600aeb1bb02e90078c19f5a917fe8',1,'Diligent::ResourceMappingDesc']]], + ['pgs',['pGS',['../struct_diligent_1_1_graphics_pipeline_desc.html#ae16271d03446561e726323f42c9a4a39',1,'Diligent::GraphicsPipelineDesc']]], + ['phs',['pHS',['../struct_diligent_1_1_graphics_pipeline_desc.html#a4c624af6f5113cbaa2a082d4191ab317',1,'Diligent::GraphicsPipelineDesc']]], + ['pindirectdispatchattribs',['pIndirectDispatchAttribs',['../struct_diligent_1_1_dispatch_compute_attribs.html#a6a3c601127e18c95e3b326acfca63bc9',1,'Diligent::DispatchComputeAttribs']]], + ['pindirectdrawattribs',['pIndirectDrawAttribs',['../struct_diligent_1_1_draw_attribs.html#a7eac52d6bb19de8669c431041bd81867',1,'Diligent::DrawAttribs']]], + ['pipelinestatebase',['PipelineStateBase',['../class_diligent_1_1_pipeline_state_base.html',1,'Diligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface >'],['../class_diligent_1_1_pipeline_state_base.html#a1e862710d0fbc29755b3c7059dd7a570',1,'Diligent::PipelineStateBase::PipelineStateBase()']]], + ['pipelinestatebase_3c_20ipipelinestated3d11_2c_20irenderdeviced3d11_20_3e',['PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 >',['../class_diligent_1_1_pipeline_state_base.html',1,'Diligent']]], + ['pipelinestatebase_3c_20ipipelinestated3d12_2c_20irenderdeviced3d12_20_3e',['PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 >',['../class_diligent_1_1_pipeline_state_base.html',1,'Diligent']]], + ['pipelinestatebase_3c_20ipipelinestategl_2c_20igldevicebaseinterface_20_3e',['PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface >',['../class_diligent_1_1_pipeline_state_base.html',1,'Diligent']]], + ['pipelinestated3d11impl',['PipelineStateD3D11Impl',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html',1,'Diligent']]], + ['pipelinestated3d12impl',['PipelineStateD3D12Impl',['../class_diligent_1_1_pipeline_state_d3_d12_impl.html',1,'Diligent']]], + ['pipelinestatedesc',['PipelineStateDesc',['../struct_diligent_1_1_pipeline_state_desc.html',1,'Diligent']]], + ['pipelinestateglimpl',['PipelineStateGLImpl',['../class_diligent_1_1_pipeline_state_g_l_impl.html',1,'Diligent']]], + ['pobject',['pObject',['../struct_diligent_1_1_resource_mapping_entry.html#a82aeec5138b18d665bce3a4d5bec1bfb',1,'Diligent::ResourceMappingEntry']]], + ['ppconversionstream',['ppConversionStream',['../struct_diligent_1_1_shader_creation_attribs.html#a7cab639ba508ebc065290f8d9d0c8e91',1,'Diligent::ShaderCreationAttribs']]], + ['pps',['pPS',['../struct_diligent_1_1_graphics_pipeline_desc.html#aab5ed20f36ab8e2c715eced91b420ca3',1,'Diligent::GraphicsPipelineDesc']]], + ['prawmemallocator',['pRawMemAllocator',['../struct_diligent_1_1_engine_creation_attribs.html#a4eec3de7d2ef7c409986620c204b5a29',1,'Diligent::EngineCreationAttribs']]], + ['present',['Present',['../class_diligent_1_1_swap_chain_d3_d11_impl.html#a184a546f820b13993ceeb38462207f26',1,'Diligent::SwapChainD3D11Impl::Present()'],['../class_diligent_1_1_swap_chain_g_l_impl.html#acb77b563ade60f92b38bbc29dfe49317',1,'Diligent::SwapChainGLImpl::Present()'],['../class_diligent_1_1_swap_chain_d3_d12_impl.html#a95bd81d5f0388819e4d53d1c69dcaf71',1,'Diligent::SwapChainD3D12Impl::Present()'],['../class_diligent_1_1_i_swap_chain.html#a58db3eb1439ca733cba6fb1bdd8447c0',1,'Diligent::ISwapChain::Present()']]], + ['primitive_5ftopology',['PRIMITIVE_TOPOLOGY',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5',1,'Diligent']]], + ['primitive_5ftopology_5f10_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a338f901ebaf7b1a39bf11df03b46706d',1,'Diligent']]], + ['primitive_5ftopology_5f11_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5af29f2e03da5da233318e9fe143e56f65',1,'Diligent']]], + ['primitive_5ftopology_5f12_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5ad5927a7c5890e224061a1b47b2e882a7',1,'Diligent']]], + ['primitive_5ftopology_5f13_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5ade1587aa65e3a045465613b1bed14480',1,'Diligent']]], + ['primitive_5ftopology_5f14_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aaff97290dcd0ae400127c49d1c693dd1',1,'Diligent']]], + ['primitive_5ftopology_5f15_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aca9973c74c8771d563acd96c7ab90220',1,'Diligent']]], + ['primitive_5ftopology_5f16_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a751ea00e3c825f8db30a213956d91d6a',1,'Diligent']]], + ['primitive_5ftopology_5f17_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a5ba5f423fa6a2cb829f3e1f9fe9ef777',1,'Diligent']]], + ['primitive_5ftopology_5f18_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5af1631cf630c60572095ed644cf056314',1,'Diligent']]], + ['primitive_5ftopology_5f19_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a7854b9554ef00a17316d63651d99c52b',1,'Diligent']]], + ['primitive_5ftopology_5f1_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a2391ccd64eef53c0afb38a4038ee60e8',1,'Diligent']]], + ['primitive_5ftopology_5f20_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a54a54ae55e13555e60038b5d1d224410',1,'Diligent']]], + ['primitive_5ftopology_5f21_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aafda4acec32c1420a69b04d9ca98b7b8',1,'Diligent']]], + ['primitive_5ftopology_5f22_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5afe47dcc2bb7023572919fd5422a8493a',1,'Diligent']]], + ['primitive_5ftopology_5f23_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a8006e8901a9dbca7bf00db8d9cc711ad',1,'Diligent']]], + ['primitive_5ftopology_5f24_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a25a7f7a9608c3f78767f2facafa0a58b',1,'Diligent']]], + ['primitive_5ftopology_5f25_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aa5fe455cd87a8f5b43f6bc144f9999d6',1,'Diligent']]], + ['primitive_5ftopology_5f26_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5ad37f9f89d54d3ddcfb1148614d2b544a',1,'Diligent']]], + ['primitive_5ftopology_5f27_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a600ccba949f8fc8d83087b6e5fee313d',1,'Diligent']]], + ['primitive_5ftopology_5f28_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a5a6323683bea2fbf85d9fbfe4d0c0f72',1,'Diligent']]], + ['primitive_5ftopology_5f29_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a2ac786c751b2c89db5ecd320cc9cc15a',1,'Diligent']]], + ['primitive_5ftopology_5f2_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aa3f5de372e432227935523d3340c31c4',1,'Diligent']]], + ['primitive_5ftopology_5f30_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a6a30c15e62e2cf8b568473e3de9f1fc2',1,'Diligent']]], + ['primitive_5ftopology_5f31_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aefa709253ebb4377a447a123c0cb1ad5',1,'Diligent']]], + ['primitive_5ftopology_5f32_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aadfb69f9081328984e67040484a46d03',1,'Diligent']]], + ['primitive_5ftopology_5f3_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5ab080bb03f1dd1780108a4f063f912f56',1,'Diligent']]], + ['primitive_5ftopology_5f4_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aca80f744bb8fd1b7dfb7e9c6f30e7226',1,'Diligent']]], + ['primitive_5ftopology_5f5_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a143737d74c6d54f6d306e9cfaec5e123',1,'Diligent']]], + ['primitive_5ftopology_5f6_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a89e83959864817ded36df88d008a852d',1,'Diligent']]], + ['primitive_5ftopology_5f7_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a40cc9177e4dd6ebfe8af822805ca3a7b',1,'Diligent']]], + ['primitive_5ftopology_5f8_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a83efcf6d5e7344bded72e8ab0e4987fe',1,'Diligent']]], + ['primitive_5ftopology_5f9_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a4773f73683ef10aab0d173184c83fec3',1,'Diligent']]], + ['primitive_5ftopology_5fline_5flist',['PRIMITIVE_TOPOLOGY_LINE_LIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a9cc861405d74774fa3e1dfea46af38f5',1,'Diligent']]], + ['primitive_5ftopology_5fnum_5ftopologies',['PRIMITIVE_TOPOLOGY_NUM_TOPOLOGIES',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5ad6da20e017f1d6cd47c8480b2e2d10c7',1,'Diligent']]], + ['primitive_5ftopology_5fpoint_5flist',['PRIMITIVE_TOPOLOGY_POINT_LIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a6ac72ddf8c6ba3f85c505eed11b7f869',1,'Diligent']]], + ['primitive_5ftopology_5ftriangle_5flist',['PRIMITIVE_TOPOLOGY_TRIANGLE_LIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5ae92cbcbf18a66dbe4463436512255d71',1,'Diligent']]], + ['primitive_5ftopology_5ftriangle_5fstrip',['PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a7be4708b91dbb1e86bc0e83bf4f7c3d6',1,'Diligent']]], + ['primitive_5ftopology_5ftype',['PRIMITIVE_TOPOLOGY_TYPE',['../namespace_diligent.html#a2966e113686e1311912fd7b350721094',1,'Diligent']]], + ['primitive_5ftopology_5ftype_5fline',['PRIMITIVE_TOPOLOGY_TYPE_LINE',['../namespace_diligent.html#a2966e113686e1311912fd7b350721094ad131024e4a7404656eb622ff9be6c601',1,'Diligent']]], + ['primitive_5ftopology_5ftype_5fnum_5ftypes',['PRIMITIVE_TOPOLOGY_TYPE_NUM_TYPES',['../namespace_diligent.html#a2966e113686e1311912fd7b350721094af497bdd7a40a5102cdbb3d20c573f5be',1,'Diligent']]], + ['primitive_5ftopology_5ftype_5fpatch',['PRIMITIVE_TOPOLOGY_TYPE_PATCH',['../namespace_diligent.html#a2966e113686e1311912fd7b350721094a71000b83d328f3d03ec828944aac5836',1,'Diligent']]], + ['primitive_5ftopology_5ftype_5fpoint',['PRIMITIVE_TOPOLOGY_TYPE_POINT',['../namespace_diligent.html#a2966e113686e1311912fd7b350721094a1672e494693357f88375ce4df38a3e0c',1,'Diligent']]], + ['primitive_5ftopology_5ftype_5ftriangle',['PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE',['../namespace_diligent.html#a2966e113686e1311912fd7b350721094abc916aeed560a57e484623c409c48d8f',1,'Diligent']]], + ['primitive_5ftopology_5ftype_5fundefined',['PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED',['../namespace_diligent.html#a2966e113686e1311912fd7b350721094a87b55988e035b78978809914fbeceeb4',1,'Diligent']]], + ['primitive_5ftopology_5fundefined',['PRIMITIVE_TOPOLOGY_UNDEFINED',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5ad267d66962cb5db91791b795890a4543',1,'Diligent']]], + ['primitivetopologytype',['PrimitiveTopologyType',['../struct_diligent_1_1_graphics_pipeline_desc.html#a958649ac80956180b9ee7f3f6311e05d',1,'Diligent::GraphicsPipelineDesc']]], + ['psampler',['pSampler',['../struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_sampler.html#a9474d89f3ab35a3a412f543fb323be63',1,'Diligent::ShaderResourceCacheD3D11::CachedSampler']]], + ['pshadersourcestreamfactory',['pShaderSourceStreamFactory',['../struct_diligent_1_1_shader_creation_attribs.html#a5e2f0d77ee1090be19d6d55c06df5972',1,'Diligent::ShaderCreationAttribs']]], + ['psrcbuffer',['pSrcBuffer',['../struct_diligent_1_1_texture_sub_res_data.html#a3b7a503a92d3c70b4875da0ac48facb9',1,'Diligent::TextureSubResData']]], + ['psubresources',['pSubResources',['../struct_diligent_1_1_texture_data.html#ab7bd0ded2a2f31e8f6bdb1eaec410c04',1,'Diligent::TextureData']]], + ['purge',['Purge',['../class_diligent_1_1_state_objects_registry.html#ac4e68d1e015e2ad5941700b4d595a71a',1,'Diligent::StateObjectsRegistry']]], + ['pview',['pView',['../struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_resource.html#a53963c151854c0e310d7fc724ec232b1',1,'Diligent::ShaderResourceCacheD3D11::CachedResource']]], + ['pvs',['pVS',['../struct_diligent_1_1_graphics_pipeline_desc.html#aa91ba617bd9f5b1feed4d6ccccf0cfdb',1,'Diligent::GraphicsPipelineDesc']]] +]; diff --git a/doc/html/search/all_e.html b/doc/html/search/all_e.html new file mode 100644 index 00000000..85b39bd4 --- /dev/null +++ b/doc/html/search/all_e.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_e.js b/doc/html/search/all_e.js new file mode 100644 index 00000000..cdd712d7 --- /dev/null +++ b/doc/html/search/all_e.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['quality',['Quality',['../struct_diligent_1_1_sample_desc.html#afb1004a448b0019aed45a3fcf72afeb8',1,'Diligent::SampleDesc']]], + ['queryinterface',['QueryInterface',['../class_diligent_1_1_buffer_d3_d11_impl.html#a1af9d84c737cae597ffef439e9840508',1,'Diligent::BufferD3D11Impl::QueryInterface()'],['../class_diligent_1_1_buffer_view_d3_d11_impl.html#a5a010417880df870c0cdfb01e0c6cbdc',1,'Diligent::BufferViewD3D11Impl::QueryInterface()'],['../class_diligent_1_1_device_context_d3_d11_impl.html#a7e7452e18ba0722adbec6664d4df094e',1,'Diligent::DeviceContextD3D11Impl::QueryInterface()'],['../class_diligent_1_1_sampler_d3_d11_impl.html#a288b876e2307d2d1dace7248fff024bf',1,'Diligent::SamplerD3D11Impl::QueryInterface()'],['../class_diligent_1_1_shader_d3_d11_impl.html#a20405a4386a02d45de3c9b84fd510fb3',1,'Diligent::ShaderD3D11Impl::QueryInterface()'],['../class_diligent_1_1_texture_base_d3_d11.html#a311d0bd5513e2f1c688d86c7383421a7',1,'Diligent::TextureBaseD3D11::QueryInterface()'],['../class_diligent_1_1_texture_view_d3_d11_impl.html#aef81bf0b6edd41ebbd98b382f5c80360',1,'Diligent::TextureViewD3D11Impl::QueryInterface()'],['../class_diligent_1_1_buffer_g_l_impl.html#a63eaa44c4730d09a494795b22bea0da6',1,'Diligent::BufferGLImpl::QueryInterface()'],['../class_diligent_1_1_buffer_view_g_l_impl.html#aafb66a0dec67dbce0316e47a140c6d75',1,'Diligent::BufferViewGLImpl::QueryInterface()'],['../class_diligent_1_1_device_context_g_l_impl.html#ae0adf77c4fa357673dbcf83e29497706',1,'Diligent::DeviceContextGLImpl::QueryInterface()'],['../class_diligent_1_1_pipeline_state_g_l_impl.html#add03e8cc624a0b5e30e7ecc343921df9',1,'Diligent::PipelineStateGLImpl::QueryInterface()'],['../class_diligent_1_1_sampler_g_l_impl.html#ad888f914793198afb6347eb416a832fc',1,'Diligent::SamplerGLImpl::QueryInterface()'],['../class_diligent_1_1_shader_g_l_impl.html#a734ec646a56520d6a375f29c6ea973f8',1,'Diligent::ShaderGLImpl::QueryInterface()'],['../class_diligent_1_1_texture_base_g_l.html#a6e0a428ffb29fc093f4bd97053632fee',1,'Diligent::TextureBaseGL::QueryInterface()'],['../class_diligent_1_1_texture_view_g_l_impl.html#a6f548d5aaea8818aca2907b91921aee4',1,'Diligent::TextureViewGLImpl::QueryInterface()'],['../class_diligent_1_1_buffer_d3_d12_impl.html#abd50d823e814256453b8a95f31e64947',1,'Diligent::BufferD3D12Impl::QueryInterface()'],['../class_diligent_1_1_buffer_view_d3_d12_impl.html#ae270b4462b5ff673a8a1abf4a7727166',1,'Diligent::BufferViewD3D12Impl::QueryInterface()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#ae248661db2fec30455a75547395b2014',1,'Diligent::DeviceContextD3D12Impl::QueryInterface()'],['../class_diligent_1_1_sampler_d3_d12_impl.html#a1d6be9611628ca7eaa48c83cb671a672',1,'Diligent::SamplerD3D12Impl::QueryInterface()'],['../class_diligent_1_1_texture_d3_d12_impl.html#a036fc5e08941a941dccbd0a339107482',1,'Diligent::TextureD3D12Impl::QueryInterface()'],['../class_diligent_1_1_texture_view_d3_d12_impl.html#af775420c4f093ff5d478403912eb9b93',1,'Diligent::TextureViewD3D12Impl::QueryInterface()'],['../class_diligent_1_1_resource_mapping_impl.html#a2659a974bccf43ba5c97ad2c34707c94',1,'Diligent::ResourceMappingImpl::QueryInterface()'],['../class_diligent_1_1_i_buffer.html#a25c1c634bbfb6338d13579e494e3d575',1,'Diligent::IBuffer::QueryInterface()'],['../class_diligent_1_1_i_buffer_view.html#ae5ca7e9a14b75d7f711a7bacaafb34b9',1,'Diligent::IBufferView::QueryInterface()'],['../class_diligent_1_1_i_device_context.html#a16e9b69846b67b17b2019bfe05d52793',1,'Diligent::IDeviceContext::QueryInterface()'],['../class_diligent_1_1_i_device_object.html#a9cfe050a29e23ceaed09572b6434a40d',1,'Diligent::IDeviceObject::QueryInterface()'],['../class_diligent_1_1_i_pipeline_state.html#a9e96684e976426af31a29c9ff6d10902',1,'Diligent::IPipelineState::QueryInterface()'],['../class_diligent_1_1_i_render_device.html#ac029e8f146c543a7fd9acabc13549b27',1,'Diligent::IRenderDevice::QueryInterface()'],['../class_diligent_1_1_i_resource_mapping.html#a0f3ac990caec67c9e02a3e0872763527',1,'Diligent::IResourceMapping::QueryInterface()'],['../class_diligent_1_1_i_sampler.html#a0a9bd69ab4d5ffa6cdb3a94b5b80b468',1,'Diligent::ISampler::QueryInterface()'],['../class_diligent_1_1_i_shader.html#a1927ad928f908db0d6f4f669202b90b2',1,'Diligent::IShader::QueryInterface()'],['../class_diligent_1_1_i_shader_resource_binding.html#a733aaed686db367caa9bbe86f62988c0',1,'Diligent::IShaderResourceBinding::QueryInterface()'],['../class_diligent_1_1_i_texture.html#a5e61c7d58d7c8a95c568dfeda661e496',1,'Diligent::ITexture::QueryInterface()'],['../class_diligent_1_1_i_texture_view.html#ac0ecf25c6a2c256d041941c101f7865a',1,'Diligent::ITextureView::QueryInterface()']]] +]; diff --git a/doc/html/search/all_f.html b/doc/html/search/all_f.html new file mode 100644 index 00000000..89fa15a6 --- /dev/null +++ b/doc/html/search/all_f.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/all_f.js b/doc/html/search/all_f.js new file mode 100644 index 00000000..9390d546 --- /dev/null +++ b/doc/html/search/all_f.js @@ -0,0 +1,93 @@ +var searchData= +[ + ['rasterizerdesc',['RasterizerDesc',['../struct_diligent_1_1_graphics_pipeline_desc.html#a03e5103a65698b8adc75ad0bd8fba27e',1,'Diligent::GraphicsPipelineDesc']]], + ['rasterizerstatedesc',['RasterizerStateDesc',['../struct_diligent_1_1_rasterizer_state_desc.html',1,'Diligent::RasterizerStateDesc'],['../struct_diligent_1_1_rasterizer_state_desc.html#a2eeb4d6f52d0746c733bb86fa0cac9f8',1,'Diligent::RasterizerStateDesc::RasterizerStateDesc()']]], + ['read',['Read',['../class_diligent_1_1_basic_file_stream.html#af67151ca8818f96f64efb4e7167131eb',1,'Diligent::BasicFileStream::Read(IDataBlob *pData) override'],['../class_diligent_1_1_basic_file_stream.html#a61433687b32ba77e90bc04275b5bc45c',1,'Diligent::BasicFileStream::Read(void *Data, size_t BufferSize) override']]], + ['rect',['Rect',['../struct_diligent_1_1_rect.html',1,'Diligent::Rect'],['../struct_diligent_1_1_rect.html#a4c540951e442bbb310eb6e0e249f08a0',1,'Diligent::Rect::Rect()']]], + ['refcntautoptr',['RefCntAutoPtr',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20class_20diligent_3a_3asamplerd3d11impl_20_3e',['RefCntAutoPtr< class Diligent::SamplerD3D11Impl >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20class_20diligent_3a_3asamplerglimpl_20_3e',['RefCntAutoPtr< class Diligent::SamplerGLImpl >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3abufferd3d11impl_20_3e',['RefCntAutoPtr< Diligent::BufferD3D11Impl >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aibuffer_20_3e',['RefCntAutoPtr< Diligent::IBuffer >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aicommandqueued3d12_20_3e',['RefCntAutoPtr< Diligent::ICommandQueueD3D12 >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aideviceobject_20_3e',['RefCntAutoPtr< Diligent::IDeviceObject >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aipipelinestate_20_3e',['RefCntAutoPtr< Diligent::IPipelineState >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3airenderdevice_20_3e',['RefCntAutoPtr< Diligent::IRenderDevice >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aisampler_20_3e',['RefCntAutoPtr< Diligent::ISampler >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aishader_20_3e',['RefCntAutoPtr< Diligent::IShader >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aiswapchain_20_3e',['RefCntAutoPtr< Diligent::ISwapChain >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aitexture_20_3e',['RefCntAutoPtr< Diligent::ITexture >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aitextureview_20_3e',['RefCntAutoPtr< Diligent::ITextureView >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aitextureviewd3d12_20_3e',['RefCntAutoPtr< Diligent::ITextureViewD3D12 >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntweakptr',['RefCntWeakPtr',['../class_diligent_1_1_ref_cnt_weak_ptr.html',1,'Diligent']]], + ['refcntweakptr_3c_20diligent_3a_3aidevicecontext_20_3e',['RefCntWeakPtr< Diligent::IDeviceContext >',['../class_diligent_1_1_ref_cnt_weak_ptr.html',1,'Diligent']]], + ['refcntweakptr_3c_20diligent_3a_3apipelinestateglimpl_20_3e',['RefCntWeakPtr< Diligent::PipelineStateGLImpl >',['../class_diligent_1_1_ref_cnt_weak_ptr.html',1,'Diligent']]], + ['refcountedobject',['RefCountedObject',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20baseinterface_20_3e',['RefCountedObject< BaseInterface >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ibufferd3d11_20_3e',['RefCountedObject< IBufferD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ibufferd3d12_20_3e',['RefCountedObject< IBufferD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ibuffergl_20_3e',['RefCountedObject< IBufferGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ibufferviewd3d11_20_3e',['RefCountedObject< IBufferViewD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ibufferviewd3d12_20_3e',['RefCountedObject< IBufferViewD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ibufferviewgl_20_3e',['RefCountedObject< IBufferViewGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20icommandlist_20_3e',['RefCountedObject< ICommandList >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20icommandqueued3d12_20_3e',['RefCountedObject< ICommandQueueD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20idatablob_20_3e',['RefCountedObject< IDataBlob >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20idevicecontextd3d11_20_3e',['RefCountedObject< IDeviceContextD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20idevicecontextd3d12_20_3e',['RefCountedObject< IDeviceContextD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20idevicecontextgl_20_3e',['RefCountedObject< IDeviceContextGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ifilestream_20_3e',['RefCountedObject< IFileStream >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20igldevicebaseinterface_20_3e',['RefCountedObject< IGLDeviceBaseInterface >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ipipelinestated3d11_20_3e',['RefCountedObject< IPipelineStateD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ipipelinestated3d12_20_3e',['RefCountedObject< IPipelineStateD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ipipelinestategl_20_3e',['RefCountedObject< IPipelineStateGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20iresourcemapping_20_3e',['RefCountedObject< IResourceMapping >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20isamplerd3d11_20_3e',['RefCountedObject< ISamplerD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20isamplerd3d12_20_3e',['RefCountedObject< ISamplerD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20isamplergl_20_3e',['RefCountedObject< ISamplerGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ishaderd3d11_20_3e',['RefCountedObject< IShaderD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ishaderd3d12_20_3e',['RefCountedObject< IShaderD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ishadergl_20_3e',['RefCountedObject< IShaderGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ishaderresourcebindingd3d11_20_3e',['RefCountedObject< IShaderResourceBindingD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ishaderresourcebindingd3d12_20_3e',['RefCountedObject< IShaderResourceBindingD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ishaderresourcebindinggl_20_3e',['RefCountedObject< IShaderResourceBindingGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20iswapchaind3d11_20_3e',['RefCountedObject< ISwapChainD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20iswapchaind3d12_20_3e',['RefCountedObject< ISwapChainD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20iswapchaingl_20_3e',['RefCountedObject< ISwapChainGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20itextured3d11_20_3e',['RefCountedObject< ITextureD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20itextured3d12_20_3e',['RefCountedObject< ITextureD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20itexturegl_20_3e',['RefCountedObject< ITextureGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20itextureviewd3d11_20_3e',['RefCountedObject< ITextureViewD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20itextureviewd3d12_20_3e',['RefCountedObject< ITextureViewD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20itextureviewgl_20_3e',['RefCountedObject< ITextureViewGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['relativeoffset',['RelativeOffset',['../struct_diligent_1_1_layout_element.html#af3f43010e8ffcd1a9b92e500ae0eefaf',1,'Diligent::LayoutElement']]], + ['releasecommittedshaderresources',['ReleaseCommittedShaderResources',['../class_diligent_1_1_device_context_d3_d11_impl.html#a87af9339883e1e50384508dc0a097a8f',1,'Diligent::DeviceContextD3D11Impl']]], + ['removeresourcebyname',['RemoveResourceByName',['../class_diligent_1_1_resource_mapping_impl.html#ae73c8979801d3aa935a820a1c7258c93',1,'Diligent::ResourceMappingImpl::RemoveResourceByName()'],['../class_diligent_1_1_i_resource_mapping.html#a8d3b4662cc80f6e6747a51736ae23ad0',1,'Diligent::IResourceMapping::RemoveResourceByName()']]], + ['renderdevicebase',['RenderDeviceBase',['../class_diligent_1_1_render_device_base.html',1,'Diligent::RenderDeviceBase< BaseInterface >'],['../class_diligent_1_1_render_device_base.html#a46bea5d1917e42d5d4785ae45d642106',1,'Diligent::RenderDeviceBase::RenderDeviceBase()']]], + ['renderdevicebase_3c_20igldevicebaseinterface_20_3e',['RenderDeviceBase< IGLDeviceBaseInterface >',['../class_diligent_1_1_render_device_base.html',1,'Diligent']]], + ['renderdeviced3d11impl',['RenderDeviceD3D11Impl',['../class_diligent_1_1_render_device_d3_d11_impl.html',1,'Diligent']]], + ['renderdeviced3d12impl',['RenderDeviceD3D12Impl',['../class_diligent_1_1_render_device_d3_d12_impl.html',1,'Diligent']]], + ['renderdeviceglimpl',['RenderDeviceGLImpl',['../class_diligent_1_1_render_device_g_l_impl.html',1,'Diligent']]], + ['rendertargetblenddesc',['RenderTargetBlendDesc',['../struct_diligent_1_1_render_target_blend_desc.html',1,'Diligent::RenderTargetBlendDesc'],['../struct_diligent_1_1_render_target_blend_desc.html#aa68723c4aa403b498b0f110fec65e4a3',1,'Diligent::RenderTargetBlendDesc::RenderTargetBlendDesc()']]], + ['rendertargets',['RenderTargets',['../struct_diligent_1_1_blend_state_desc.html#aae5a5ae252633121a1499db0d6d67462',1,'Diligent::BlendStateDesc']]], + ['rendertargetwritemask',['RenderTargetWriteMask',['../struct_diligent_1_1_render_target_blend_desc.html#afedb3e5e95720375c80ef7a14bad13f1',1,'Diligent::RenderTargetBlendDesc']]], + ['reportdeletedobject',['ReportDeletedObject',['../class_diligent_1_1_state_objects_registry.html#a65e4d7c1d3e3f1e6519979b7eac0498c',1,'Diligent::StateObjectsRegistry']]], + ['resize',['Resize',['../class_diligent_1_1_swap_chain_d3_d11_impl.html#ae48a4fb93b6f71f610a0100e3777f857',1,'Diligent::SwapChainD3D11Impl::Resize()'],['../class_diligent_1_1_swap_chain_g_l_impl.html#ab2c4136845e7e12e93b46342dff8e7f3',1,'Diligent::SwapChainGLImpl::Resize()'],['../class_diligent_1_1_data_blob_impl.html#a324a721107fa22c3113e49f61b9bca83',1,'Diligent::DataBlobImpl::Resize()'],['../class_diligent_1_1_string_data_blob_impl.html#af81eb85a085ab5923e7d1eb96486ba13',1,'Diligent::StringDataBlobImpl::Resize()'],['../class_diligent_1_1_swap_chain_d3_d12_impl.html#ac2c55b06f784ba3d876e370a7ecca6a7',1,'Diligent::SwapChainD3D12Impl::Resize()'],['../class_diligent_1_1_i_swap_chain.html#a83b525f779bd68d9e49e8065b876ec32',1,'Diligent::ISwapChain::Resize()']]], + ['resource_5fdim_5fbuffer',['RESOURCE_DIM_BUFFER',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67a266703b7f74b82531f02a1fa61fd6df1',1,'Diligent']]], + ['resource_5fdim_5fnum_5fdimensions',['RESOURCE_DIM_NUM_DIMENSIONS',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67aa8c62a6c20eefee728772831dd50b000',1,'Diligent']]], + ['resource_5fdim_5ftex_5f1d',['RESOURCE_DIM_TEX_1D',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67a1e2fafd112b4c4578d9a8eff40218cfa',1,'Diligent']]], + ['resource_5fdim_5ftex_5f1d_5farray',['RESOURCE_DIM_TEX_1D_ARRAY',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67a0307953fa536e87c4a7a2995a3cbc346',1,'Diligent']]], + ['resource_5fdim_5ftex_5f2d',['RESOURCE_DIM_TEX_2D',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67ac647e0be625f3b5724ae5bf26130969c',1,'Diligent']]], + ['resource_5fdim_5ftex_5f2d_5farray',['RESOURCE_DIM_TEX_2D_ARRAY',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67aba30654de202e4d748a6d4b4a7214efd',1,'Diligent']]], + ['resource_5fdim_5ftex_5f3d',['RESOURCE_DIM_TEX_3D',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67ac6cac31ad017cb986d0acb9775900d89',1,'Diligent']]], + ['resource_5fdim_5ftex_5fcube',['RESOURCE_DIM_TEX_CUBE',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67a2880d013561aef98ce197ef491adfbe9',1,'Diligent']]], + ['resource_5fdim_5ftex_5fcube_5farray',['RESOURCE_DIM_TEX_CUBE_ARRAY',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67a733c51d86d7108d6dc0811aebb583337',1,'Diligent']]], + ['resource_5fdim_5fundefined',['RESOURCE_DIM_UNDEFINED',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67af059ddcde8b1a3bf1c6f32f3b4865cfe',1,'Diligent']]], + ['resource_5fdimension',['RESOURCE_DIMENSION',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67',1,'Diligent']]], + ['resourcemappingdesc',['ResourceMappingDesc',['../struct_diligent_1_1_resource_mapping_desc.html',1,'Diligent::ResourceMappingDesc'],['../struct_diligent_1_1_resource_mapping_desc.html#a7832dd87176dbba566b4e77c8c2c26cf',1,'Diligent::ResourceMappingDesc::ResourceMappingDesc()']]], + ['resourcemappingentry',['ResourceMappingEntry',['../struct_diligent_1_1_resource_mapping_entry.html',1,'Diligent::ResourceMappingEntry'],['../struct_diligent_1_1_resource_mapping_entry.html#a808d47001e26ace2b2387f93b90f9bfe',1,'Diligent::ResourceMappingEntry::ResourceMappingEntry()']]], + ['resourcemappingimpl',['ResourceMappingImpl',['../class_diligent_1_1_resource_mapping_impl.html',1,'Diligent::ResourceMappingImpl'],['../class_diligent_1_1_resource_mapping_impl.html#a5a3832b08344cc202f3e56bb5354c467',1,'Diligent::ResourceMappingImpl::ResourceMappingImpl()']]], + ['right',['right',['../struct_diligent_1_1_rect.html#a3b11c8294a274db4109b74a049be1f79',1,'Diligent::Rect']]], + ['rootsignature',['RootSignature',['../class_diligent_1_1_root_signature.html',1,'Diligent']]], + ['rtvformats',['RTVFormats',['../struct_diligent_1_1_graphics_pipeline_desc.html#a8264e6f6d226faf9f648d32c05c93592',1,'Diligent::GraphicsPipelineDesc']]] +]; diff --git a/doc/html/search/classes_0.html b/doc/html/search/classes_0.html new file mode 100644 index 00000000..e935fdf7 --- /dev/null +++ b/doc/html/search/classes_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_0.js b/doc/html/search/classes_0.js new file mode 100644 index 00000000..b5f2b899 --- /dev/null +++ b/doc/html/search/classes_0.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['basicfilestream',['BasicFileStream',['../class_diligent_1_1_basic_file_stream.html',1,'Diligent']]], + ['blendstatedesc',['BlendStateDesc',['../struct_diligent_1_1_blend_state_desc.html',1,'Diligent']]], + ['box',['Box',['../struct_diligent_1_1_box.html',1,'Diligent']]], + ['bufferbase',['BufferBase',['../class_diligent_1_1_buffer_base.html',1,'Diligent']]], + ['bufferbase_3c_20ibufferd3d11_2c_20bufferviewd3d11impl_2c_20fixedblockmemoryallocator_20_3e',['BufferBase< IBufferD3D11, BufferViewD3D11Impl, FixedBlockMemoryAllocator >',['../class_diligent_1_1_buffer_base.html',1,'Diligent']]], + ['bufferbase_3c_20ibufferd3d12_2c_20bufferviewd3d12impl_2c_20fixedblockmemoryallocator_20_3e',['BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator >',['../class_diligent_1_1_buffer_base.html',1,'Diligent']]], + ['bufferbase_3c_20ibuffergl_2c_20bufferviewglimpl_2c_20fixedblockmemoryallocator_20_3e',['BufferBase< IBufferGL, BufferViewGLImpl, FixedBlockMemoryAllocator >',['../class_diligent_1_1_buffer_base.html',1,'Diligent']]], + ['bufferd3d11impl',['BufferD3D11Impl',['../class_diligent_1_1_buffer_d3_d11_impl.html',1,'Diligent']]], + ['bufferd3d12impl',['BufferD3D12Impl',['../class_diligent_1_1_buffer_d3_d12_impl.html',1,'Diligent']]], + ['bufferdata',['BufferData',['../struct_diligent_1_1_buffer_data.html',1,'Diligent']]], + ['bufferdesc',['BufferDesc',['../struct_diligent_1_1_buffer_desc.html',1,'Diligent']]], + ['bufferformat',['BufferFormat',['../struct_diligent_1_1_buffer_desc_1_1_buffer_format.html',1,'Diligent::BufferDesc']]], + ['bufferglimpl',['BufferGLImpl',['../class_diligent_1_1_buffer_g_l_impl.html',1,'Diligent']]], + ['bufferviewbase',['BufferViewBase',['../class_diligent_1_1_buffer_view_base.html',1,'Diligent']]], + ['bufferviewbase_3c_20ibufferviewd3d11_20_3e',['BufferViewBase< IBufferViewD3D11 >',['../class_diligent_1_1_buffer_view_base.html',1,'Diligent']]], + ['bufferviewbase_3c_20ibufferviewd3d12_20_3e',['BufferViewBase< IBufferViewD3D12 >',['../class_diligent_1_1_buffer_view_base.html',1,'Diligent']]], + ['bufferviewbase_3c_20ibufferviewgl_20_3e',['BufferViewBase< IBufferViewGL >',['../class_diligent_1_1_buffer_view_base.html',1,'Diligent']]], + ['bufferviewd3d11impl',['BufferViewD3D11Impl',['../class_diligent_1_1_buffer_view_d3_d11_impl.html',1,'Diligent']]], + ['bufferviewd3d12impl',['BufferViewD3D12Impl',['../class_diligent_1_1_buffer_view_d3_d12_impl.html',1,'Diligent']]], + ['bufferviewdesc',['BufferViewDesc',['../struct_diligent_1_1_buffer_view_desc.html',1,'Diligent']]], + ['bufferviewglimpl',['BufferViewGLImpl',['../class_diligent_1_1_buffer_view_g_l_impl.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_1.html b/doc/html/search/classes_1.html new file mode 100644 index 00000000..3df6e80a --- /dev/null +++ b/doc/html/search/classes_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_1.js b/doc/html/search/classes_1.js new file mode 100644 index 00000000..8973273f --- /dev/null +++ b/doc/html/search/classes_1.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['cachedcb',['CachedCB',['../struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_c_b.html',1,'Diligent::ShaderResourceCacheD3D11']]], + ['cachedresource',['CachedResource',['../struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_resource.html',1,'Diligent::ShaderResourceCacheD3D11']]], + ['cachedsampler',['CachedSampler',['../struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_sampler.html',1,'Diligent::ShaderResourceCacheD3D11']]], + ['commandlistbase',['CommandListBase',['../class_diligent_1_1_command_list_base.html',1,'Diligent']]], + ['commandlistbase_3c_20icommandlist_20_3e',['CommandListBase< ICommandList >',['../class_diligent_1_1_command_list_base.html',1,'Diligent']]], + ['commandlistd3d11impl',['CommandListD3D11Impl',['../class_diligent_1_1_command_list_d3_d11_impl.html',1,'Diligent']]], + ['commandlistd3d12impl',['CommandListD3D12Impl',['../class_diligent_1_1_command_list_d3_d12_impl.html',1,'Diligent']]], + ['commandqueued3d12impl',['CommandQueueD3D12Impl',['../class_diligent_1_1_command_queue_d3_d12_impl.html',1,'Diligent']]], + ['computepipelinedesc',['ComputePipelineDesc',['../struct_diligent_1_1_compute_pipeline_desc.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_10.html b/doc/html/search/classes_10.html new file mode 100644 index 00000000..0477a266 --- /dev/null +++ b/doc/html/search/classes_10.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_10.js b/doc/html/search/classes_10.js new file mode 100644 index 00000000..176a1210 --- /dev/null +++ b/doc/html/search/classes_10.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['value_5ftype2ctype',['VALUE_TYPE2CType',['../struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type.html',1,'Diligent']]], + ['value_5ftype2ctype_3c_20vt_5ffloat16_20_3e',['VALUE_TYPE2CType< VT_FLOAT16 >',['../struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t16_01_4.html',1,'Diligent']]], + ['value_5ftype2ctype_3c_20vt_5ffloat32_20_3e',['VALUE_TYPE2CType< VT_FLOAT32 >',['../struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t32_01_4.html',1,'Diligent']]], + ['value_5ftype2ctype_3c_20vt_5fint16_20_3e',['VALUE_TYPE2CType< VT_INT16 >',['../struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t16_01_4.html',1,'Diligent']]], + ['value_5ftype2ctype_3c_20vt_5fint32_20_3e',['VALUE_TYPE2CType< VT_INT32 >',['../struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t32_01_4.html',1,'Diligent']]], + ['value_5ftype2ctype_3c_20vt_5fint8_20_3e',['VALUE_TYPE2CType< VT_INT8 >',['../struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t8_01_4.html',1,'Diligent']]], + ['value_5ftype2ctype_3c_20vt_5fuint16_20_3e',['VALUE_TYPE2CType< VT_UINT16 >',['../struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t16_01_4.html',1,'Diligent']]], + ['value_5ftype2ctype_3c_20vt_5fuint32_20_3e',['VALUE_TYPE2CType< VT_UINT32 >',['../struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t32_01_4.html',1,'Diligent']]], + ['value_5ftype2ctype_3c_20vt_5fuint8_20_3e',['VALUE_TYPE2CType< VT_UINT8 >',['../struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t8_01_4.html',1,'Diligent']]], + ['vertexstreaminfo',['VertexStreamInfo',['../struct_diligent_1_1_vertex_stream_info.html',1,'Diligent']]], + ['viewport',['Viewport',['../struct_diligent_1_1_viewport.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_2.html b/doc/html/search/classes_2.html new file mode 100644 index 00000000..028694ff --- /dev/null +++ b/doc/html/search/classes_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_2.js b/doc/html/search/classes_2.js new file mode 100644 index 00000000..3630963f --- /dev/null +++ b/doc/html/search/classes_2.js @@ -0,0 +1,50 @@ +var searchData= +[ + ['d3d12resourcebase',['D3D12ResourceBase',['../class_diligent_1_1_d3_d12_resource_base.html',1,'Diligent']]], + ['datablobimpl',['DataBlobImpl',['../class_diligent_1_1_data_blob_impl.html',1,'Diligent']]], + ['depthstencilclearvalue',['DepthStencilClearValue',['../struct_diligent_1_1_depth_stencil_clear_value.html',1,'Diligent']]], + ['depthstencilstatedesc',['DepthStencilStateDesc',['../struct_diligent_1_1_depth_stencil_state_desc.html',1,'Diligent']]], + ['devicecaps',['DeviceCaps',['../struct_diligent_1_1_device_caps.html',1,'Diligent']]], + ['devicecontextbase',['DeviceContextBase',['../class_diligent_1_1_device_context_base.html',1,'Diligent']]], + ['devicecontextbase_3c_20idevicecontextd3d11_20_3e',['DeviceContextBase< IDeviceContextD3D11 >',['../class_diligent_1_1_device_context_base.html',1,'Diligent']]], + ['devicecontextbase_3c_20idevicecontextd3d12_20_3e',['DeviceContextBase< IDeviceContextD3D12 >',['../class_diligent_1_1_device_context_base.html',1,'Diligent']]], + ['devicecontextbase_3c_20idevicecontextgl_20_3e',['DeviceContextBase< IDeviceContextGL >',['../class_diligent_1_1_device_context_base.html',1,'Diligent']]], + ['devicecontextd3d11impl',['DeviceContextD3D11Impl',['../class_diligent_1_1_device_context_d3_d11_impl.html',1,'Diligent']]], + ['devicecontextd3d12impl',['DeviceContextD3D12Impl',['../class_diligent_1_1_device_context_d3_d12_impl.html',1,'Diligent']]], + ['devicecontextglimpl',['DeviceContextGLImpl',['../class_diligent_1_1_device_context_g_l_impl.html',1,'Diligent']]], + ['deviceobjectattribs',['DeviceObjectAttribs',['../struct_diligent_1_1_device_object_attribs.html',1,'Diligent']]], + ['deviceobjectbase',['DeviceObjectBase',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20baseinterface_2c_20bufferdesc_20_3e',['DeviceObjectBase< BaseInterface, BufferDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20baseinterface_2c_20bufferviewdesc_20_3e',['DeviceObjectBase< BaseInterface, BufferViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20baseinterface_2c_20commandlistdesc_20_3e',['DeviceObjectBase< BaseInterface, CommandListDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20baseinterface_2c_20pipelinestatedesc_20_3e',['DeviceObjectBase< BaseInterface, PipelineStateDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20baseinterface_2c_20samplerdesc_20_3e',['DeviceObjectBase< BaseInterface, SamplerDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20baseinterface_2c_20shaderdesc_20_3e',['DeviceObjectBase< BaseInterface, ShaderDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20baseinterface_2c_20texturedesc_20_3e',['DeviceObjectBase< BaseInterface, TextureDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20baseinterface_2c_20textureviewdesc_20_3e',['DeviceObjectBase< BaseInterface, TextureViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ibufferd3d11_2c_20bufferdesc_20_3e',['DeviceObjectBase< IBufferD3D11, BufferDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ibufferd3d12_2c_20bufferdesc_20_3e',['DeviceObjectBase< IBufferD3D12, BufferDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ibuffergl_2c_20bufferdesc_20_3e',['DeviceObjectBase< IBufferGL, BufferDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ibufferviewd3d11_2c_20bufferviewdesc_20_3e',['DeviceObjectBase< IBufferViewD3D11, BufferViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ibufferviewd3d12_2c_20bufferviewdesc_20_3e',['DeviceObjectBase< IBufferViewD3D12, BufferViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ibufferviewgl_2c_20bufferviewdesc_20_3e',['DeviceObjectBase< IBufferViewGL, BufferViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20icommandlist_2c_20commandlistdesc_20_3e',['DeviceObjectBase< ICommandList, CommandListDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ipipelinestated3d11_2c_20pipelinestatedesc_20_3e',['DeviceObjectBase< IPipelineStateD3D11, PipelineStateDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ipipelinestated3d12_2c_20pipelinestatedesc_20_3e',['DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ipipelinestategl_2c_20pipelinestatedesc_20_3e',['DeviceObjectBase< IPipelineStateGL, PipelineStateDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20isamplerd3d11_2c_20samplerdesc_20_3e',['DeviceObjectBase< ISamplerD3D11, SamplerDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20isamplerd3d12_2c_20samplerdesc_20_3e',['DeviceObjectBase< ISamplerD3D12, SamplerDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20isamplergl_2c_20samplerdesc_20_3e',['DeviceObjectBase< ISamplerGL, SamplerDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ishaderd3d11_2c_20shaderdesc_20_3e',['DeviceObjectBase< IShaderD3D11, ShaderDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ishaderd3d12_2c_20shaderdesc_20_3e',['DeviceObjectBase< IShaderD3D12, ShaderDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20ishadergl_2c_20shaderdesc_20_3e',['DeviceObjectBase< IShaderGL, ShaderDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20itextured3d11_2c_20texturedesc_20_3e',['DeviceObjectBase< ITextureD3D11, TextureDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20itextured3d12_2c_20texturedesc_20_3e',['DeviceObjectBase< ITextureD3D12, TextureDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20itexturegl_2c_20texturedesc_20_3e',['DeviceObjectBase< ITextureGL, TextureDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20itextureviewd3d11_2c_20textureviewdesc_20_3e',['DeviceObjectBase< ITextureViewD3D11, TextureViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20itextureviewd3d12_2c_20textureviewdesc_20_3e',['DeviceObjectBase< ITextureViewD3D12, TextureViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['deviceobjectbase_3c_20itextureviewgl_2c_20textureviewdesc_20_3e',['DeviceObjectBase< ITextureViewGL, TextureViewDesc >',['../class_diligent_1_1_device_object_base.html',1,'Diligent']]], + ['dispatchcomputeattribs',['DispatchComputeAttribs',['../struct_diligent_1_1_dispatch_compute_attribs.html',1,'Diligent']]], + ['drawattribs',['DrawAttribs',['../struct_diligent_1_1_draw_attribs.html',1,'Diligent']]], + ['dummyshadervariable',['DummyShaderVariable',['../struct_diligent_1_1_dummy_shader_variable.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_3.html b/doc/html/search/classes_3.html new file mode 100644 index 00000000..2b1abe38 --- /dev/null +++ b/doc/html/search/classes_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_3.js b/doc/html/search/classes_3.js new file mode 100644 index 00000000..098d2b65 --- /dev/null +++ b/doc/html/search/classes_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['enginecreationattribs',['EngineCreationAttribs',['../struct_diligent_1_1_engine_creation_attribs.html',1,'Diligent']]], + ['engined3d11attribs',['EngineD3D11Attribs',['../struct_diligent_1_1_engine_d3_d11_attribs.html',1,'Diligent']]], + ['engined3d12attribs',['EngineD3D12Attribs',['../struct_diligent_1_1_engine_d3_d12_attribs.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_4.html b/doc/html/search/classes_4.html new file mode 100644 index 00000000..87352149 --- /dev/null +++ b/doc/html/search/classes_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_4.js b/doc/html/search/classes_4.js new file mode 100644 index 00000000..9f5940e9 --- /dev/null +++ b/doc/html/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['fixedblockmemoryallocator',['FixedBlockMemoryAllocator',['../class_diligent_1_1_fixed_block_memory_allocator.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_5.html b/doc/html/search/classes_5.html new file mode 100644 index 00000000..ba8b1c69 --- /dev/null +++ b/doc/html/search/classes_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_5.js b/doc/html/search/classes_5.js new file mode 100644 index 00000000..d8b6879e --- /dev/null +++ b/doc/html/search/classes_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['graphicspipelinedesc',['GraphicsPipelineDesc',['../struct_diligent_1_1_graphics_pipeline_desc.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_6.html b/doc/html/search/classes_6.html new file mode 100644 index 00000000..f5850938 --- /dev/null +++ b/doc/html/search/classes_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_6.js b/doc/html/search/classes_6.js new file mode 100644 index 00000000..c1c5dcb5 --- /dev/null +++ b/doc/html/search/classes_6.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['hash_3c_20diligent_3a_3ablendstatedesc_20_3e',['hash< Diligent::BlendStateDesc >',['../structstd_1_1hash_3_01_diligent_1_1_blend_state_desc_01_4.html',1,'std']]], + ['hash_3c_20diligent_3a_3adepthstencilstatedesc_20_3e',['hash< Diligent::DepthStencilStateDesc >',['../structstd_1_1hash_3_01_diligent_1_1_depth_stencil_state_desc_01_4.html',1,'std']]], + ['hash_3c_20diligent_3a_3arasterizerstatedesc_20_3e',['hash< Diligent::RasterizerStateDesc >',['../structstd_1_1hash_3_01_diligent_1_1_rasterizer_state_desc_01_4.html',1,'std']]], + ['hash_3c_20diligent_3a_3asamplerdesc_20_3e',['hash< Diligent::SamplerDesc >',['../structstd_1_1hash_3_01_diligent_1_1_sampler_desc_01_4.html',1,'std']]], + ['hash_3c_20diligent_3a_3astencilopdesc_20_3e',['hash< Diligent::StencilOpDesc >',['../structstd_1_1hash_3_01_diligent_1_1_stencil_op_desc_01_4.html',1,'std']]], + ['hash_3c_20diligent_3a_3atextureviewdesc_20_3e',['hash< Diligent::TextureViewDesc >',['../structstd_1_1hash_3_01_diligent_1_1_texture_view_desc_01_4.html',1,'std']]], + ['hashmapstringkey',['HashMapStringKey',['../struct_diligent_1_1_hash_map_string_key.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_7.html b/doc/html/search/classes_7.html new file mode 100644 index 00000000..6418529c --- /dev/null +++ b/doc/html/search/classes_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_7.js b/doc/html/search/classes_7.js new file mode 100644 index 00000000..77f9ee4d --- /dev/null +++ b/doc/html/search/classes_7.js @@ -0,0 +1,55 @@ +var searchData= +[ + ['ibuffer',['IBuffer',['../class_diligent_1_1_i_buffer.html',1,'Diligent']]], + ['ibufferd3d11',['IBufferD3D11',['../class_diligent_1_1_i_buffer_d3_d11.html',1,'Diligent']]], + ['ibufferd3d12',['IBufferD3D12',['../class_diligent_1_1_i_buffer_d3_d12.html',1,'Diligent']]], + ['ibuffergl',['IBufferGL',['../class_diligent_1_1_i_buffer_g_l.html',1,'Diligent']]], + ['ibufferview',['IBufferView',['../class_diligent_1_1_i_buffer_view.html',1,'Diligent']]], + ['ibufferviewd3d11',['IBufferViewD3D11',['../class_diligent_1_1_i_buffer_view_d3_d11.html',1,'Diligent']]], + ['ibufferviewd3d12',['IBufferViewD3D12',['../class_diligent_1_1_i_buffer_view_d3_d12.html',1,'Diligent']]], + ['ibufferviewgl',['IBufferViewGL',['../class_diligent_1_1_i_buffer_view_g_l.html',1,'Diligent']]], + ['icommandlist',['ICommandList',['../class_diligent_1_1_i_command_list.html',1,'Diligent']]], + ['icommandqueued3d12',['ICommandQueueD3D12',['../class_diligent_1_1_i_command_queue_d3_d12.html',1,'Diligent']]], + ['idevicecontext',['IDeviceContext',['../class_diligent_1_1_i_device_context.html',1,'Diligent']]], + ['idevicecontextd3d11',['IDeviceContextD3D11',['../class_diligent_1_1_i_device_context_d3_d11.html',1,'Diligent']]], + ['idevicecontextd3d12',['IDeviceContextD3D12',['../class_diligent_1_1_i_device_context_d3_d12.html',1,'Diligent']]], + ['idevicecontextgl',['IDeviceContextGL',['../class_diligent_1_1_i_device_context_g_l.html',1,'Diligent']]], + ['ideviceobject',['IDeviceObject',['../class_diligent_1_1_i_device_object.html',1,'Diligent']]], + ['inputlayoutdesc',['InputLayoutDesc',['../struct_diligent_1_1_input_layout_desc.html',1,'Diligent']]], + ['ipipelinestate',['IPipelineState',['../class_diligent_1_1_i_pipeline_state.html',1,'Diligent']]], + ['ipipelinestated3d11',['IPipelineStateD3D11',['../class_diligent_1_1_i_pipeline_state_d3_d11.html',1,'Diligent']]], + ['ipipelinestated3d12',['IPipelineStateD3D12',['../class_diligent_1_1_i_pipeline_state_d3_d12.html',1,'Diligent']]], + ['ipipelinestategl',['IPipelineStateGL',['../class_diligent_1_1_i_pipeline_state_g_l.html',1,'Diligent']]], + ['irenderdevice',['IRenderDevice',['../class_diligent_1_1_i_render_device.html',1,'Diligent']]], + ['irenderdeviced3d11',['IRenderDeviceD3D11',['../class_diligent_1_1_i_render_device_d3_d11.html',1,'Diligent']]], + ['irenderdeviced3d12',['IRenderDeviceD3D12',['../class_diligent_1_1_i_render_device_d3_d12.html',1,'Diligent']]], + ['irenderdevicegl',['IRenderDeviceGL',['../class_diligent_1_1_i_render_device_g_l.html',1,'Diligent']]], + ['irenderdevicegles',['IRenderDeviceGLES',['../class_diligent_1_1_i_render_device_g_l_e_s.html',1,'Diligent']]], + ['iresourcemapping',['IResourceMapping',['../class_diligent_1_1_i_resource_mapping.html',1,'Diligent']]], + ['isampler',['ISampler',['../class_diligent_1_1_i_sampler.html',1,'Diligent']]], + ['isamplerd3d11',['ISamplerD3D11',['../class_diligent_1_1_i_sampler_d3_d11.html',1,'Diligent']]], + ['isamplerd3d12',['ISamplerD3D12',['../class_diligent_1_1_i_sampler_d3_d12.html',1,'Diligent']]], + ['isamplergl',['ISamplerGL',['../class_diligent_1_1_i_sampler_g_l.html',1,'Diligent']]], + ['ishader',['IShader',['../class_diligent_1_1_i_shader.html',1,'Diligent']]], + ['ishaderd3d11',['IShaderD3D11',['../class_diligent_1_1_i_shader_d3_d11.html',1,'Diligent']]], + ['ishaderd3d12',['IShaderD3D12',['../class_diligent_1_1_i_shader_d3_d12.html',1,'Diligent']]], + ['ishadergl',['IShaderGL',['../class_diligent_1_1_i_shader_g_l.html',1,'Diligent']]], + ['ishaderresourcebinding',['IShaderResourceBinding',['../class_diligent_1_1_i_shader_resource_binding.html',1,'Diligent']]], + ['ishaderresourcebindingd3d11',['IShaderResourceBindingD3D11',['../class_diligent_1_1_i_shader_resource_binding_d3_d11.html',1,'Diligent']]], + ['ishaderresourcebindingd3d12',['IShaderResourceBindingD3D12',['../class_diligent_1_1_i_shader_resource_binding_d3_d12.html',1,'Diligent']]], + ['ishaderresourcebindinggl',['IShaderResourceBindingGL',['../class_diligent_1_1_i_shader_resource_binding_g_l.html',1,'Diligent']]], + ['ishadersourceinputstreamfactory',['IShaderSourceInputStreamFactory',['../class_diligent_1_1_i_shader_source_input_stream_factory.html',1,'Diligent']]], + ['ishadervariable',['IShaderVariable',['../class_diligent_1_1_i_shader_variable.html',1,'Diligent']]], + ['iswapchain',['ISwapChain',['../class_diligent_1_1_i_swap_chain.html',1,'Diligent']]], + ['iswapchaind3d11',['ISwapChainD3D11',['../class_diligent_1_1_i_swap_chain_d3_d11.html',1,'Diligent']]], + ['iswapchaind3d12',['ISwapChainD3D12',['../class_diligent_1_1_i_swap_chain_d3_d12.html',1,'Diligent']]], + ['iswapchaingl',['ISwapChainGL',['../class_diligent_1_1_i_swap_chain_g_l.html',1,'Diligent']]], + ['itexture',['ITexture',['../class_diligent_1_1_i_texture.html',1,'Diligent']]], + ['itextured3d11',['ITextureD3D11',['../class_diligent_1_1_i_texture_d3_d11.html',1,'Diligent']]], + ['itextured3d12',['ITextureD3D12',['../class_diligent_1_1_i_texture_d3_d12.html',1,'Diligent']]], + ['itexturegl',['ITextureGL',['../class_diligent_1_1_i_texture_g_l.html',1,'Diligent']]], + ['itextureview',['ITextureView',['../class_diligent_1_1_i_texture_view.html',1,'Diligent']]], + ['itextureviewd3d11',['ITextureViewD3D11',['../class_diligent_1_1_i_texture_view_d3_d11.html',1,'Diligent']]], + ['itextureviewd3d12',['ITextureViewD3D12',['../class_diligent_1_1_i_texture_view_d3_d12.html',1,'Diligent']]], + ['itextureviewgl',['ITextureViewGL',['../class_diligent_1_1_i_texture_view_g_l.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_8.html b/doc/html/search/classes_8.html new file mode 100644 index 00000000..87af6f60 --- /dev/null +++ b/doc/html/search/classes_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_8.js b/doc/html/search/classes_8.js new file mode 100644 index 00000000..7e2e1f54 --- /dev/null +++ b/doc/html/search/classes_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['layoutelement',['LayoutElement',['../struct_diligent_1_1_layout_element.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_9.html b/doc/html/search/classes_9.html new file mode 100644 index 00000000..f830ae04 --- /dev/null +++ b/doc/html/search/classes_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_9.js b/doc/html/search/classes_9.js new file mode 100644 index 00000000..0849adf8 --- /dev/null +++ b/doc/html/search/classes_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['maphelper',['MapHelper',['../class_diligent_1_1_map_helper.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_a.html b/doc/html/search/classes_a.html new file mode 100644 index 00000000..0fd3b7ac --- /dev/null +++ b/doc/html/search/classes_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_a.js b/doc/html/search/classes_a.js new file mode 100644 index 00000000..8ade903f --- /dev/null +++ b/doc/html/search/classes_a.js @@ -0,0 +1,41 @@ +var searchData= +[ + ['objectbase',['ObjectBase',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ibufferd3d11_20_3e',['ObjectBase< IBufferD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ibufferd3d12_20_3e',['ObjectBase< IBufferD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ibuffergl_20_3e',['ObjectBase< IBufferGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ibufferviewd3d11_20_3e',['ObjectBase< IBufferViewD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ibufferviewd3d12_20_3e',['ObjectBase< IBufferViewD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ibufferviewgl_20_3e',['ObjectBase< IBufferViewGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20icommandlist_20_3e',['ObjectBase< ICommandList >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20icommandqueued3d12_20_3e',['ObjectBase< ICommandQueueD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20idatablob_20_3e',['ObjectBase< IDataBlob >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20idevicecontextd3d11_20_3e',['ObjectBase< IDeviceContextD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20idevicecontextd3d12_20_3e',['ObjectBase< IDeviceContextD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20idevicecontextgl_20_3e',['ObjectBase< IDeviceContextGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ifilestream_20_3e',['ObjectBase< IFileStream >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20igldevicebaseinterface_20_3e',['ObjectBase< IGLDeviceBaseInterface >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ipipelinestated3d11_20_3e',['ObjectBase< IPipelineStateD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ipipelinestated3d12_20_3e',['ObjectBase< IPipelineStateD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ipipelinestategl_20_3e',['ObjectBase< IPipelineStateGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20iresourcemapping_20_3e',['ObjectBase< IResourceMapping >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20isamplerd3d11_20_3e',['ObjectBase< ISamplerD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20isamplerd3d12_20_3e',['ObjectBase< ISamplerD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20isamplergl_20_3e',['ObjectBase< ISamplerGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ishaderd3d11_20_3e',['ObjectBase< IShaderD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ishaderd3d12_20_3e',['ObjectBase< IShaderD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ishadergl_20_3e',['ObjectBase< IShaderGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ishaderresourcebindingd3d11_20_3e',['ObjectBase< IShaderResourceBindingD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ishaderresourcebindingd3d12_20_3e',['ObjectBase< IShaderResourceBindingD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20ishaderresourcebindinggl_20_3e',['ObjectBase< IShaderResourceBindingGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20iswapchaind3d11_20_3e',['ObjectBase< ISwapChainD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20iswapchaind3d12_20_3e',['ObjectBase< ISwapChainD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20iswapchaingl_20_3e',['ObjectBase< ISwapChainGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20itextured3d11_20_3e',['ObjectBase< ITextureD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20itextured3d12_20_3e',['ObjectBase< ITextureD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20itexturegl_20_3e',['ObjectBase< ITextureGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20itextureviewd3d11_20_3e',['ObjectBase< ITextureViewD3D11 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20itextureviewd3d12_20_3e',['ObjectBase< ITextureViewD3D12 >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['objectbase_3c_20itextureviewgl_20_3e',['ObjectBase< ITextureViewGL >',['../class_diligent_1_1_object_base.html',1,'Diligent']]], + ['optimizedclearvalue',['OptimizedClearValue',['../struct_diligent_1_1_optimized_clear_value.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_b.html b/doc/html/search/classes_b.html new file mode 100644 index 00000000..886abdfc --- /dev/null +++ b/doc/html/search/classes_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_b.js b/doc/html/search/classes_b.js new file mode 100644 index 00000000..f8687823 --- /dev/null +++ b/doc/html/search/classes_b.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['pipelinestatebase',['PipelineStateBase',['../class_diligent_1_1_pipeline_state_base.html',1,'Diligent']]], + ['pipelinestatebase_3c_20ipipelinestated3d11_2c_20irenderdeviced3d11_20_3e',['PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 >',['../class_diligent_1_1_pipeline_state_base.html',1,'Diligent']]], + ['pipelinestatebase_3c_20ipipelinestated3d12_2c_20irenderdeviced3d12_20_3e',['PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 >',['../class_diligent_1_1_pipeline_state_base.html',1,'Diligent']]], + ['pipelinestatebase_3c_20ipipelinestategl_2c_20igldevicebaseinterface_20_3e',['PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface >',['../class_diligent_1_1_pipeline_state_base.html',1,'Diligent']]], + ['pipelinestated3d11impl',['PipelineStateD3D11Impl',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html',1,'Diligent']]], + ['pipelinestated3d12impl',['PipelineStateD3D12Impl',['../class_diligent_1_1_pipeline_state_d3_d12_impl.html',1,'Diligent']]], + ['pipelinestatedesc',['PipelineStateDesc',['../struct_diligent_1_1_pipeline_state_desc.html',1,'Diligent']]], + ['pipelinestateglimpl',['PipelineStateGLImpl',['../class_diligent_1_1_pipeline_state_g_l_impl.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_c.html b/doc/html/search/classes_c.html new file mode 100644 index 00000000..52ec2676 --- /dev/null +++ b/doc/html/search/classes_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_c.js b/doc/html/search/classes_c.js new file mode 100644 index 00000000..8d00cde3 --- /dev/null +++ b/doc/html/search/classes_c.js @@ -0,0 +1,71 @@ +var searchData= +[ + ['rasterizerstatedesc',['RasterizerStateDesc',['../struct_diligent_1_1_rasterizer_state_desc.html',1,'Diligent']]], + ['rect',['Rect',['../struct_diligent_1_1_rect.html',1,'Diligent']]], + ['refcntautoptr',['RefCntAutoPtr',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20class_20diligent_3a_3asamplerd3d11impl_20_3e',['RefCntAutoPtr< class Diligent::SamplerD3D11Impl >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20class_20diligent_3a_3asamplerglimpl_20_3e',['RefCntAutoPtr< class Diligent::SamplerGLImpl >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3abufferd3d11impl_20_3e',['RefCntAutoPtr< Diligent::BufferD3D11Impl >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aibuffer_20_3e',['RefCntAutoPtr< Diligent::IBuffer >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aicommandqueued3d12_20_3e',['RefCntAutoPtr< Diligent::ICommandQueueD3D12 >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aideviceobject_20_3e',['RefCntAutoPtr< Diligent::IDeviceObject >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aipipelinestate_20_3e',['RefCntAutoPtr< Diligent::IPipelineState >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3airenderdevice_20_3e',['RefCntAutoPtr< Diligent::IRenderDevice >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aisampler_20_3e',['RefCntAutoPtr< Diligent::ISampler >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aishader_20_3e',['RefCntAutoPtr< Diligent::IShader >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aiswapchain_20_3e',['RefCntAutoPtr< Diligent::ISwapChain >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aitexture_20_3e',['RefCntAutoPtr< Diligent::ITexture >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aitextureview_20_3e',['RefCntAutoPtr< Diligent::ITextureView >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntautoptr_3c_20diligent_3a_3aitextureviewd3d12_20_3e',['RefCntAutoPtr< Diligent::ITextureViewD3D12 >',['../class_diligent_1_1_ref_cnt_auto_ptr.html',1,'Diligent']]], + ['refcntweakptr',['RefCntWeakPtr',['../class_diligent_1_1_ref_cnt_weak_ptr.html',1,'Diligent']]], + ['refcntweakptr_3c_20diligent_3a_3aidevicecontext_20_3e',['RefCntWeakPtr< Diligent::IDeviceContext >',['../class_diligent_1_1_ref_cnt_weak_ptr.html',1,'Diligent']]], + ['refcntweakptr_3c_20diligent_3a_3apipelinestateglimpl_20_3e',['RefCntWeakPtr< Diligent::PipelineStateGLImpl >',['../class_diligent_1_1_ref_cnt_weak_ptr.html',1,'Diligent']]], + ['refcountedobject',['RefCountedObject',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20baseinterface_20_3e',['RefCountedObject< BaseInterface >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ibufferd3d11_20_3e',['RefCountedObject< IBufferD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ibufferd3d12_20_3e',['RefCountedObject< IBufferD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ibuffergl_20_3e',['RefCountedObject< IBufferGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ibufferviewd3d11_20_3e',['RefCountedObject< IBufferViewD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ibufferviewd3d12_20_3e',['RefCountedObject< IBufferViewD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ibufferviewgl_20_3e',['RefCountedObject< IBufferViewGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20icommandlist_20_3e',['RefCountedObject< ICommandList >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20icommandqueued3d12_20_3e',['RefCountedObject< ICommandQueueD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20idatablob_20_3e',['RefCountedObject< IDataBlob >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20idevicecontextd3d11_20_3e',['RefCountedObject< IDeviceContextD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20idevicecontextd3d12_20_3e',['RefCountedObject< IDeviceContextD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20idevicecontextgl_20_3e',['RefCountedObject< IDeviceContextGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ifilestream_20_3e',['RefCountedObject< IFileStream >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20igldevicebaseinterface_20_3e',['RefCountedObject< IGLDeviceBaseInterface >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ipipelinestated3d11_20_3e',['RefCountedObject< IPipelineStateD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ipipelinestated3d12_20_3e',['RefCountedObject< IPipelineStateD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ipipelinestategl_20_3e',['RefCountedObject< IPipelineStateGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20iresourcemapping_20_3e',['RefCountedObject< IResourceMapping >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20isamplerd3d11_20_3e',['RefCountedObject< ISamplerD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20isamplerd3d12_20_3e',['RefCountedObject< ISamplerD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20isamplergl_20_3e',['RefCountedObject< ISamplerGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ishaderd3d11_20_3e',['RefCountedObject< IShaderD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ishaderd3d12_20_3e',['RefCountedObject< IShaderD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ishadergl_20_3e',['RefCountedObject< IShaderGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ishaderresourcebindingd3d11_20_3e',['RefCountedObject< IShaderResourceBindingD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ishaderresourcebindingd3d12_20_3e',['RefCountedObject< IShaderResourceBindingD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20ishaderresourcebindinggl_20_3e',['RefCountedObject< IShaderResourceBindingGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20iswapchaind3d11_20_3e',['RefCountedObject< ISwapChainD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20iswapchaind3d12_20_3e',['RefCountedObject< ISwapChainD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20iswapchaingl_20_3e',['RefCountedObject< ISwapChainGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20itextured3d11_20_3e',['RefCountedObject< ITextureD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20itextured3d12_20_3e',['RefCountedObject< ITextureD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20itexturegl_20_3e',['RefCountedObject< ITextureGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20itextureviewd3d11_20_3e',['RefCountedObject< ITextureViewD3D11 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20itextureviewd3d12_20_3e',['RefCountedObject< ITextureViewD3D12 >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['refcountedobject_3c_20itextureviewgl_20_3e',['RefCountedObject< ITextureViewGL >',['../class_diligent_1_1_ref_counted_object.html',1,'Diligent']]], + ['renderdevicebase',['RenderDeviceBase',['../class_diligent_1_1_render_device_base.html',1,'Diligent']]], + ['renderdevicebase_3c_20igldevicebaseinterface_20_3e',['RenderDeviceBase< IGLDeviceBaseInterface >',['../class_diligent_1_1_render_device_base.html',1,'Diligent']]], + ['renderdeviced3d11impl',['RenderDeviceD3D11Impl',['../class_diligent_1_1_render_device_d3_d11_impl.html',1,'Diligent']]], + ['renderdeviced3d12impl',['RenderDeviceD3D12Impl',['../class_diligent_1_1_render_device_d3_d12_impl.html',1,'Diligent']]], + ['renderdeviceglimpl',['RenderDeviceGLImpl',['../class_diligent_1_1_render_device_g_l_impl.html',1,'Diligent']]], + ['rendertargetblenddesc',['RenderTargetBlendDesc',['../struct_diligent_1_1_render_target_blend_desc.html',1,'Diligent']]], + ['resourcemappingdesc',['ResourceMappingDesc',['../struct_diligent_1_1_resource_mapping_desc.html',1,'Diligent']]], + ['resourcemappingentry',['ResourceMappingEntry',['../struct_diligent_1_1_resource_mapping_entry.html',1,'Diligent']]], + ['resourcemappingimpl',['ResourceMappingImpl',['../class_diligent_1_1_resource_mapping_impl.html',1,'Diligent']]], + ['rootsignature',['RootSignature',['../class_diligent_1_1_root_signature.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_d.html b/doc/html/search/classes_d.html new file mode 100644 index 00000000..652508df --- /dev/null +++ b/doc/html/search/classes_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_d.js b/doc/html/search/classes_d.js new file mode 100644 index 00000000..94631a8c --- /dev/null +++ b/doc/html/search/classes_d.js @@ -0,0 +1,49 @@ +var searchData= +[ + ['sampledesc',['SampleDesc',['../struct_diligent_1_1_sample_desc.html',1,'Diligent']]], + ['samplerbase',['SamplerBase',['../class_diligent_1_1_sampler_base.html',1,'Diligent']]], + ['samplerbase_3c_20isamplerd3d11_2c_20irenderdeviced3d11_20_3e',['SamplerBase< ISamplerD3D11, IRenderDeviceD3D11 >',['../class_diligent_1_1_sampler_base.html',1,'Diligent']]], + ['samplerbase_3c_20isamplerd3d12_2c_20irenderdeviced3d12_20_3e',['SamplerBase< ISamplerD3D12, IRenderDeviceD3D12 >',['../class_diligent_1_1_sampler_base.html',1,'Diligent']]], + ['samplerbase_3c_20isamplergl_2c_20igldevicebaseinterface_20_3e',['SamplerBase< ISamplerGL, IGLDeviceBaseInterface >',['../class_diligent_1_1_sampler_base.html',1,'Diligent']]], + ['samplercaps',['SamplerCaps',['../struct_diligent_1_1_sampler_caps.html',1,'Diligent']]], + ['samplerd3d11impl',['SamplerD3D11Impl',['../class_diligent_1_1_sampler_d3_d11_impl.html',1,'Diligent']]], + ['samplerd3d12impl',['SamplerD3D12Impl',['../class_diligent_1_1_sampler_d3_d12_impl.html',1,'Diligent']]], + ['samplerdesc',['SamplerDesc',['../struct_diligent_1_1_sampler_desc.html',1,'Diligent']]], + ['samplerglimpl',['SamplerGLImpl',['../class_diligent_1_1_sampler_g_l_impl.html',1,'Diligent']]], + ['shaderbase',['ShaderBase',['../class_diligent_1_1_shader_base.html',1,'Diligent']]], + ['shaderbase_3c_20ishaderd3d11_2c_20irenderdeviced3d11_20_3e',['ShaderBase< IShaderD3D11, IRenderDeviceD3D11 >',['../class_diligent_1_1_shader_base.html',1,'Diligent']]], + ['shaderbase_3c_20ishaderd3d12_2c_20irenderdeviced3d12_20_3e',['ShaderBase< IShaderD3D12, IRenderDeviceD3D12 >',['../class_diligent_1_1_shader_base.html',1,'Diligent']]], + ['shaderbase_3c_20ishadergl_2c_20igldevicebaseinterface_20_3e',['ShaderBase< IShaderGL, IGLDeviceBaseInterface >',['../class_diligent_1_1_shader_base.html',1,'Diligent']]], + ['shadercreationattribs',['ShaderCreationAttribs',['../struct_diligent_1_1_shader_creation_attribs.html',1,'Diligent']]], + ['shaderd3d11impl',['ShaderD3D11Impl',['../class_diligent_1_1_shader_d3_d11_impl.html',1,'Diligent']]], + ['shaderd3d12impl',['ShaderD3D12Impl',['../class_diligent_1_1_shader_d3_d12_impl.html',1,'Diligent']]], + ['shaderdesc',['ShaderDesc',['../struct_diligent_1_1_shader_desc.html',1,'Diligent']]], + ['shaderglimpl',['ShaderGLImpl',['../class_diligent_1_1_shader_g_l_impl.html',1,'Diligent']]], + ['shaderresourcebindingbase',['ShaderResourceBindingBase',['../class_diligent_1_1_shader_resource_binding_base.html',1,'Diligent']]], + ['shaderresourcebindingbase_3c_20ishaderresourcebindingd3d11_20_3e',['ShaderResourceBindingBase< IShaderResourceBindingD3D11 >',['../class_diligent_1_1_shader_resource_binding_base.html',1,'Diligent']]], + ['shaderresourcebindingbase_3c_20ishaderresourcebindingd3d12_20_3e',['ShaderResourceBindingBase< IShaderResourceBindingD3D12 >',['../class_diligent_1_1_shader_resource_binding_base.html',1,'Diligent']]], + ['shaderresourcebindingbase_3c_20ishaderresourcebindinggl_20_3e',['ShaderResourceBindingBase< IShaderResourceBindingGL >',['../class_diligent_1_1_shader_resource_binding_base.html',1,'Diligent']]], + ['shaderresourcebindingd3d11impl',['ShaderResourceBindingD3D11Impl',['../class_diligent_1_1_shader_resource_binding_d3_d11_impl.html',1,'Diligent']]], + ['shaderresourcebindingd3d12impl',['ShaderResourceBindingD3D12Impl',['../class_diligent_1_1_shader_resource_binding_d3_d12_impl.html',1,'Diligent']]], + ['shaderresourcebindingglimpl',['ShaderResourceBindingGLImpl',['../class_diligent_1_1_shader_resource_binding_g_l_impl.html',1,'Diligent']]], + ['shaderresourcecached3d11',['ShaderResourceCacheD3D11',['../class_diligent_1_1_shader_resource_cache_d3_d11.html',1,'Diligent']]], + ['shaderresourcelayoutd3d11',['ShaderResourceLayoutD3D11',['../class_diligent_1_1_shader_resource_layout_d3_d11.html',1,'Diligent']]], + ['shaderresourcelayoutd3d12',['ShaderResourceLayoutD3D12',['../class_diligent_1_1_shader_resource_layout_d3_d12.html',1,'Diligent']]], + ['shaderresourcesd3d11',['ShaderResourcesD3D11',['../class_diligent_1_1_shader_resources_d3_d11.html',1,'Diligent']]], + ['shaderresourcesd3d12',['ShaderResourcesD3D12',['../class_diligent_1_1_shader_resources_d3_d12.html',1,'Diligent']]], + ['shadervariablebase',['ShaderVariableBase',['../struct_diligent_1_1_shader_variable_base.html',1,'Diligent']]], + ['shadervariabledesc',['ShaderVariableDesc',['../struct_diligent_1_1_shader_variable_desc.html',1,'Diligent']]], + ['stateobjectsregistry',['StateObjectsRegistry',['../class_diligent_1_1_state_objects_registry.html',1,'Diligent']]], + ['stateobjectsregistry_3c_20diligent_3a_3asamplerdesc_20_3e',['StateObjectsRegistry< Diligent::SamplerDesc >',['../class_diligent_1_1_state_objects_registry.html',1,'Diligent']]], + ['staticsamplerdesc',['StaticSamplerDesc',['../struct_diligent_1_1_static_sampler_desc.html',1,'Diligent']]], + ['stencilopdesc',['StencilOpDesc',['../struct_diligent_1_1_stencil_op_desc.html',1,'Diligent']]], + ['stringdatablobimpl',['StringDataBlobImpl',['../class_diligent_1_1_string_data_blob_impl.html',1,'Diligent']]], + ['swapchainbase',['SwapChainBase',['../class_diligent_1_1_swap_chain_base.html',1,'Diligent']]], + ['swapchainbase_3c_20iswapchaind3d11_20_3e',['SwapChainBase< ISwapChainD3D11 >',['../class_diligent_1_1_swap_chain_base.html',1,'Diligent']]], + ['swapchainbase_3c_20iswapchaind3d12_20_3e',['SwapChainBase< ISwapChainD3D12 >',['../class_diligent_1_1_swap_chain_base.html',1,'Diligent']]], + ['swapchainbase_3c_20iswapchaingl_20_3e',['SwapChainBase< ISwapChainGL >',['../class_diligent_1_1_swap_chain_base.html',1,'Diligent']]], + ['swapchaind3d11impl',['SwapChainD3D11Impl',['../class_diligent_1_1_swap_chain_d3_d11_impl.html',1,'Diligent']]], + ['swapchaind3d12impl',['SwapChainD3D12Impl',['../class_diligent_1_1_swap_chain_d3_d12_impl.html',1,'Diligent']]], + ['swapchaindesc',['SwapChainDesc',['../struct_diligent_1_1_swap_chain_desc.html',1,'Diligent']]], + ['swapchainglimpl',['SwapChainGLImpl',['../class_diligent_1_1_swap_chain_g_l_impl.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_e.html b/doc/html/search/classes_e.html new file mode 100644 index 00000000..7d4e9a56 --- /dev/null +++ b/doc/html/search/classes_e.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_e.js b/doc/html/search/classes_e.js new file mode 100644 index 00000000..3fe2511c --- /dev/null +++ b/doc/html/search/classes_e.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['texture1d_5fd3d11',['Texture1D_D3D11',['../class_diligent_1_1_texture1_d___d3_d11.html',1,'Diligent']]], + ['texture2d_5fd3d11',['Texture2D_D3D11',['../class_diligent_1_1_texture2_d___d3_d11.html',1,'Diligent']]], + ['texture3d_5fd3d11',['Texture3D_D3D11',['../class_diligent_1_1_texture3_d___d3_d11.html',1,'Diligent']]], + ['texturebase',['TextureBase',['../class_diligent_1_1_texture_base.html',1,'Diligent']]], + ['texturebase_3c_20itextured3d11_2c_20textureviewd3d11impl_2c_20fixedblockmemoryallocator_20_3e',['TextureBase< ITextureD3D11, TextureViewD3D11Impl, FixedBlockMemoryAllocator >',['../class_diligent_1_1_texture_base.html',1,'Diligent']]], + ['texturebase_3c_20itextured3d12_2c_20textureviewd3d12impl_2c_20fixedblockmemoryallocator_20_3e',['TextureBase< ITextureD3D12, TextureViewD3D12Impl, FixedBlockMemoryAllocator >',['../class_diligent_1_1_texture_base.html',1,'Diligent']]], + ['texturebase_3c_20itexturegl_2c_20textureviewglimpl_2c_20fixedblockmemoryallocator_20_3e',['TextureBase< ITextureGL, TextureViewGLImpl, FixedBlockMemoryAllocator >',['../class_diligent_1_1_texture_base.html',1,'Diligent']]], + ['texturebased3d11',['TextureBaseD3D11',['../class_diligent_1_1_texture_base_d3_d11.html',1,'Diligent']]], + ['texturebasegl',['TextureBaseGL',['../class_diligent_1_1_texture_base_g_l.html',1,'Diligent']]], + ['texturecaps',['TextureCaps',['../struct_diligent_1_1_texture_caps.html',1,'Diligent']]], + ['textured3d12impl',['TextureD3D12Impl',['../class_diligent_1_1_texture_d3_d12_impl.html',1,'Diligent']]], + ['texturedata',['TextureData',['../struct_diligent_1_1_texture_data.html',1,'Diligent']]], + ['texturedesc',['TextureDesc',['../struct_diligent_1_1_texture_desc.html',1,'Diligent']]], + ['textureformatattribs',['TextureFormatAttribs',['../struct_diligent_1_1_texture_format_attribs.html',1,'Diligent']]], + ['textureformatinfo',['TextureFormatInfo',['../struct_diligent_1_1_texture_format_info.html',1,'Diligent']]], + ['textureformatinfoext',['TextureFormatInfoExt',['../struct_diligent_1_1_texture_format_info_ext.html',1,'Diligent']]], + ['texturesubresdata',['TextureSubResData',['../struct_diligent_1_1_texture_sub_res_data.html',1,'Diligent']]], + ['textureviewbase',['TextureViewBase',['../class_diligent_1_1_texture_view_base.html',1,'Diligent']]], + ['textureviewbase_3c_20itextureviewd3d11_20_3e',['TextureViewBase< ITextureViewD3D11 >',['../class_diligent_1_1_texture_view_base.html',1,'Diligent']]], + ['textureviewbase_3c_20itextureviewd3d12_20_3e',['TextureViewBase< ITextureViewD3D12 >',['../class_diligent_1_1_texture_view_base.html',1,'Diligent']]], + ['textureviewbase_3c_20itextureviewgl_20_3e',['TextureViewBase< ITextureViewGL >',['../class_diligent_1_1_texture_view_base.html',1,'Diligent']]], + ['textureviewd3d11impl',['TextureViewD3D11Impl',['../class_diligent_1_1_texture_view_d3_d11_impl.html',1,'Diligent']]], + ['textureviewd3d12impl',['TextureViewD3D12Impl',['../class_diligent_1_1_texture_view_d3_d12_impl.html',1,'Diligent']]], + ['textureviewdesc',['TextureViewDesc',['../struct_diligent_1_1_texture_view_desc.html',1,'Diligent']]], + ['textureviewglimpl',['TextureViewGLImpl',['../class_diligent_1_1_texture_view_g_l_impl.html',1,'Diligent']]] +]; diff --git a/doc/html/search/classes_f.html b/doc/html/search/classes_f.html new file mode 100644 index 00000000..fa6ed25e --- /dev/null +++ b/doc/html/search/classes_f.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/classes_f.js b/doc/html/search/classes_f.js new file mode 100644 index 00000000..734b4ea3 --- /dev/null +++ b/doc/html/search/classes_f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['vertexstreaminfo',['VertexStreamInfo',['../struct_diligent_1_1_vertex_stream_info.html',1,'Diligent']]], + ['viewport',['Viewport',['../struct_diligent_1_1_viewport.html',1,'Diligent']]] +]; diff --git a/doc/html/search/close.png b/doc/html/search/close.png new file mode 100644 index 00000000..9342d3df Binary files /dev/null and b/doc/html/search/close.png differ diff --git a/doc/html/search/enums_0.html b/doc/html/search/enums_0.html new file mode 100644 index 00000000..9efcd1b7 --- /dev/null +++ b/doc/html/search/enums_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enums_0.js b/doc/html/search/enums_0.js new file mode 100644 index 00000000..0f411128 --- /dev/null +++ b/doc/html/search/enums_0.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['bind_5fflags',['BIND_FLAGS',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbce',1,'Diligent']]], + ['bind_5fshader_5fresources_5fflags',['BIND_SHADER_RESOURCES_FLAGS',['../namespace_diligent.html#aa19d2573adf9fdd5763e4ff3a06ac1e8',1,'Diligent']]], + ['blend_5ffactor',['BLEND_FACTOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1',1,'Diligent']]], + ['blend_5foperation',['BLEND_OPERATION',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3',1,'Diligent']]], + ['buffer_5fmode',['BUFFER_MODE',['../namespace_diligent.html#afbdac277dbbb5b93d32b3ffd7df8b7da',1,'Diligent']]], + ['buffer_5fview_5ftype',['BUFFER_VIEW_TYPE',['../namespace_diligent.html#a6a774c831a175b647d9144fea155dd14',1,'Diligent']]] +]; diff --git a/doc/html/search/enums_1.html b/doc/html/search/enums_1.html new file mode 100644 index 00000000..0edd7796 --- /dev/null +++ b/doc/html/search/enums_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enums_1.js b/doc/html/search/enums_1.js new file mode 100644 index 00000000..e20c66e2 --- /dev/null +++ b/doc/html/search/enums_1.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['clear_5fdepth_5fstencil_5fflags',['CLEAR_DEPTH_STENCIL_FLAGS',['../namespace_diligent.html#aafeefaa870f5db1389590baa5d95058b',1,'Diligent']]], + ['color_5fmask',['COLOR_MASK',['../namespace_diligent.html#a8dfef3a8f30375369b1ea5fe76abc35c',1,'Diligent']]], + ['commit_5fshader_5fresources_5fflag',['COMMIT_SHADER_RESOURCES_FLAG',['../namespace_diligent.html#a83a6318edc132699548ca2ae05374007',1,'Diligent']]], + ['comparison_5ffunction',['COMPARISON_FUNCTION',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3',1,'Diligent']]], + ['component_5ftype',['COMPONENT_TYPE',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476c',1,'Diligent']]], + ['cpu_5faccess_5fflag',['CPU_ACCESS_FLAG',['../namespace_diligent.html#a0f62a9270b7cb35023bfb7ff6318bd01',1,'Diligent']]], + ['cull_5fmode',['CULL_MODE',['../namespace_diligent.html#aeeda8d41835aaaca5142122552880896',1,'Diligent']]] +]; diff --git a/doc/html/search/enums_2.html b/doc/html/search/enums_2.html new file mode 100644 index 00000000..2b851b64 --- /dev/null +++ b/doc/html/search/enums_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enums_2.js b/doc/html/search/enums_2.js new file mode 100644 index 00000000..6803a59f --- /dev/null +++ b/doc/html/search/enums_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['devicetype',['DeviceType',['../namespace_diligent.html#a905d9d44892311167e9b28962bbf7e18',1,'Diligent']]] +]; diff --git a/doc/html/search/enums_3.html b/doc/html/search/enums_3.html new file mode 100644 index 00000000..b29d31c2 --- /dev/null +++ b/doc/html/search/enums_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enums_3.js b/doc/html/search/enums_3.js new file mode 100644 index 00000000..a010c586 --- /dev/null +++ b/doc/html/search/enums_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['engined3d11debugflags',['EngineD3D11DebugFlags',['../namespace_diligent.html#a5c8758ce3fd35ebeff55489fba521a85',1,'Diligent']]] +]; diff --git a/doc/html/search/enums_4.html b/doc/html/search/enums_4.html new file mode 100644 index 00000000..ad9ec5e9 --- /dev/null +++ b/doc/html/search/enums_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enums_4.js b/doc/html/search/enums_4.js new file mode 100644 index 00000000..0bf83d5b --- /dev/null +++ b/doc/html/search/enums_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['fill_5fmode',['FILL_MODE',['../namespace_diligent.html#a3b85032ce91db5b8f9bcaab7bff02bc9',1,'Diligent']]], + ['filter_5ftype',['FILTER_TYPE',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3',1,'Diligent']]], + ['frequency',['FREQUENCY',['../struct_diligent_1_1_layout_element.html#a0e0d75c026027999ed229831f721804f',1,'Diligent::LayoutElement']]] +]; diff --git a/doc/html/search/enums_5.html b/doc/html/search/enums_5.html new file mode 100644 index 00000000..3b863957 --- /dev/null +++ b/doc/html/search/enums_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enums_5.js b/doc/html/search/enums_5.js new file mode 100644 index 00000000..814cdcd6 --- /dev/null +++ b/doc/html/search/enums_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['logic_5foperation',['LOGIC_OPERATION',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92',1,'Diligent']]] +]; diff --git a/doc/html/search/enums_6.html b/doc/html/search/enums_6.html new file mode 100644 index 00000000..acd7a542 --- /dev/null +++ b/doc/html/search/enums_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enums_6.js b/doc/html/search/enums_6.js new file mode 100644 index 00000000..cec79037 --- /dev/null +++ b/doc/html/search/enums_6.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['map_5fflags',['MAP_FLAGS',['../namespace_diligent.html#af3b0412706d6ab99faa6774f92ce9cc6',1,'Diligent']]], + ['map_5ftype',['MAP_TYPE',['../namespace_diligent.html#aaf23669c215f709c983b1405efc19357',1,'Diligent']]], + ['misc_5ftexture_5fflag',['MISC_TEXTURE_FLAG',['../namespace_diligent.html#a26330621767a4a6ed8f44c0426233782',1,'Diligent']]] +]; diff --git a/doc/html/search/enums_7.html b/doc/html/search/enums_7.html new file mode 100644 index 00000000..ee24b455 --- /dev/null +++ b/doc/html/search/enums_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enums_7.js b/doc/html/search/enums_7.js new file mode 100644 index 00000000..77d6c86b --- /dev/null +++ b/doc/html/search/enums_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['primitive_5ftopology',['PRIMITIVE_TOPOLOGY',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5',1,'Diligent']]], + ['primitive_5ftopology_5ftype',['PRIMITIVE_TOPOLOGY_TYPE',['../namespace_diligent.html#a2966e113686e1311912fd7b350721094',1,'Diligent']]] +]; diff --git a/doc/html/search/enums_8.html b/doc/html/search/enums_8.html new file mode 100644 index 00000000..c6b4d24a --- /dev/null +++ b/doc/html/search/enums_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enums_8.js b/doc/html/search/enums_8.js new file mode 100644 index 00000000..37138bcf --- /dev/null +++ b/doc/html/search/enums_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['resource_5fdimension',['RESOURCE_DIMENSION',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67',1,'Diligent']]] +]; diff --git a/doc/html/search/enums_9.html b/doc/html/search/enums_9.html new file mode 100644 index 00000000..c7438683 --- /dev/null +++ b/doc/html/search/enums_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enums_9.js b/doc/html/search/enums_9.js new file mode 100644 index 00000000..ab5802e5 --- /dev/null +++ b/doc/html/search/enums_9.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['set_5fvertex_5fbuffers_5fflags',['SET_VERTEX_BUFFERS_FLAGS',['../namespace_diligent.html#a5720b03558fa0f988caaa3ea82f4f4d2',1,'Diligent']]], + ['shader_5fsource_5flanguage',['SHADER_SOURCE_LANGUAGE',['../namespace_diligent.html#afefecb3e9dff6f9b8b9f00cd2770c7b0',1,'Diligent']]], + ['shader_5ftype',['SHADER_TYPE',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2',1,'Diligent']]], + ['shader_5fvariable_5ftype',['SHADER_VARIABLE_TYPE',['../namespace_diligent.html#adea6ddf55230a2722e6a7401e18de698',1,'Diligent']]], + ['stencil_5fop',['STENCIL_OP',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29',1,'Diligent']]] +]; diff --git a/doc/html/search/enums_a.html b/doc/html/search/enums_a.html new file mode 100644 index 00000000..58694efd --- /dev/null +++ b/doc/html/search/enums_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enums_a.js b/doc/html/search/enums_a.js new file mode 100644 index 00000000..c8f3f737 --- /dev/null +++ b/doc/html/search/enums_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['texture_5faddress_5fmode',['TEXTURE_ADDRESS_MODE',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1',1,'Diligent']]], + ['texture_5fformat',['TEXTURE_FORMAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465',1,'Diligent']]], + ['texture_5fview_5ftype',['TEXTURE_VIEW_TYPE',['../namespace_diligent.html#a4f10ca1e5c5034aa6dcc86224d1189bd',1,'Diligent']]] +]; diff --git a/doc/html/search/enums_b.html b/doc/html/search/enums_b.html new file mode 100644 index 00000000..738b359c --- /dev/null +++ b/doc/html/search/enums_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enums_b.js b/doc/html/search/enums_b.js new file mode 100644 index 00000000..3bd084b4 --- /dev/null +++ b/doc/html/search/enums_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['uav_5faccess_5fflag',['UAV_ACCESS_FLAG',['../namespace_diligent.html#a21f4e67e54527088e9ece576bf9c57b5',1,'Diligent']]], + ['usage',['USAGE',['../namespace_diligent.html#a5342fb015dbf7f2e638dbfccc325a746',1,'Diligent']]] +]; diff --git a/doc/html/search/enums_c.html b/doc/html/search/enums_c.html new file mode 100644 index 00000000..593438a2 --- /dev/null +++ b/doc/html/search/enums_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enums_c.js b/doc/html/search/enums_c.js new file mode 100644 index 00000000..039b1fe0 --- /dev/null +++ b/doc/html/search/enums_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['value_5ftype',['VALUE_TYPE',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957a',1,'Diligent']]] +]; diff --git a/doc/html/search/enumvalues_0.html b/doc/html/search/enumvalues_0.html new file mode 100644 index 00000000..03fdfad9 --- /dev/null +++ b/doc/html/search/enumvalues_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enumvalues_0.js b/doc/html/search/enumvalues_0.js new file mode 100644 index 00000000..39b68d6c --- /dev/null +++ b/doc/html/search/enumvalues_0.js @@ -0,0 +1,50 @@ +var searchData= +[ + ['bind_5fdepth_5fstencil',['BIND_DEPTH_STENCIL',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbcead7245b76139a33a218e237afc6748b08',1,'Diligent']]], + ['bind_5findex_5fbuffer',['BIND_INDEX_BUFFER',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbceab548348e977fcc0e815a888d156b5c03',1,'Diligent']]], + ['bind_5findirect_5fdraw_5fargs',['BIND_INDIRECT_DRAW_ARGS',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbcea059916f0a480fa57e6e417f8d0acf67f',1,'Diligent']]], + ['bind_5fnone',['BIND_NONE',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbcea50d6810939c69ef5dec2658ad58d724c',1,'Diligent']]], + ['bind_5frender_5ftarget',['BIND_RENDER_TARGET',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbcea4154c60d5487f7cded7fc1ef4a1bba89',1,'Diligent']]], + ['bind_5fshader_5fresource',['BIND_SHADER_RESOURCE',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbceaef09415507884d7beea9a716e824a138',1,'Diligent']]], + ['bind_5fshader_5fresources_5fall_5fresolved',['BIND_SHADER_RESOURCES_ALL_RESOLVED',['../namespace_diligent.html#aa19d2573adf9fdd5763e4ff3a06ac1e8a996116faf0124f92452cb6b65a66a4bd',1,'Diligent']]], + ['bind_5fshader_5fresources_5freset_5fbindings',['BIND_SHADER_RESOURCES_RESET_BINDINGS',['../namespace_diligent.html#aa19d2573adf9fdd5763e4ff3a06ac1e8a356bf35ddf7ca9489736c0d8992d3032',1,'Diligent']]], + ['bind_5fshader_5fresources_5fupdate_5funresolved',['BIND_SHADER_RESOURCES_UPDATE_UNRESOLVED',['../namespace_diligent.html#aa19d2573adf9fdd5763e4ff3a06ac1e8a6a7da6200cf9bedda2d76b51b2233170',1,'Diligent']]], + ['bind_5fstream_5foutput',['BIND_STREAM_OUTPUT',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbcea6e78d02c83dd86d2706c23cb7dc30222',1,'Diligent']]], + ['bind_5funiform_5fbuffer',['BIND_UNIFORM_BUFFER',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbceac2120e5b46a9b5611f937fb446d099f9',1,'Diligent']]], + ['bind_5funordered_5faccess',['BIND_UNORDERED_ACCESS',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbceaf4c7e9aeccba22f01ef46f348551fd0c',1,'Diligent']]], + ['bind_5fvertex_5fbuffer',['BIND_VERTEX_BUFFER',['../namespace_diligent.html#ad748ff5bd670e021d6e29182b530cbcea07e85db16b80e8505aaf17b8dd9c626c',1,'Diligent']]], + ['blend_5ffactor_5fblend_5ffactor',['BLEND_FACTOR_BLEND_FACTOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a55990a5c0e48e2ecd81090e433e6ef06',1,'Diligent']]], + ['blend_5ffactor_5fdest_5falpha',['BLEND_FACTOR_DEST_ALPHA',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a6ae74671ee262ba8d396e898f90398ee',1,'Diligent']]], + ['blend_5ffactor_5fdest_5fcolor',['BLEND_FACTOR_DEST_COLOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a874d7c0d6c6212a313a2565b8289edd3',1,'Diligent']]], + ['blend_5ffactor_5finv_5fblend_5ffactor',['BLEND_FACTOR_INV_BLEND_FACTOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a636346de2f019fa3a3ae3392e37f1af8',1,'Diligent']]], + ['blend_5ffactor_5finv_5fdest_5falpha',['BLEND_FACTOR_INV_DEST_ALPHA',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a26b0fdff59e555e405da24bda789186b',1,'Diligent']]], + ['blend_5ffactor_5finv_5fdest_5fcolor',['BLEND_FACTOR_INV_DEST_COLOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a923de8f8b25551fb02c1265961bf2dcc',1,'Diligent']]], + ['blend_5ffactor_5finv_5fsrc1_5falpha',['BLEND_FACTOR_INV_SRC1_ALPHA',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1afd98dec225244fa1a213f528f4937615',1,'Diligent']]], + ['blend_5ffactor_5finv_5fsrc1_5fcolor',['BLEND_FACTOR_INV_SRC1_COLOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1abdb1924164eb185c9103ebb31558b81a',1,'Diligent']]], + ['blend_5ffactor_5finv_5fsrc_5falpha',['BLEND_FACTOR_INV_SRC_ALPHA',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a5bb6a5588766529cd50db693951fc976',1,'Diligent']]], + ['blend_5ffactor_5finv_5fsrc_5fcolor',['BLEND_FACTOR_INV_SRC_COLOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1ae5bf98a17ed70db4950c1bd852000fe3',1,'Diligent']]], + ['blend_5ffactor_5fnum_5ffactors',['BLEND_FACTOR_NUM_FACTORS',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a4ac776a641c5abe06578c37c22e1c2a0',1,'Diligent']]], + ['blend_5ffactor_5fone',['BLEND_FACTOR_ONE',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1ab81b4c36868770ea6a97048bb46190f9',1,'Diligent']]], + ['blend_5ffactor_5fsrc1_5falpha',['BLEND_FACTOR_SRC1_ALPHA',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a2add20baaa9ee7598b28e83c0cf64c9b',1,'Diligent']]], + ['blend_5ffactor_5fsrc1_5fcolor',['BLEND_FACTOR_SRC1_COLOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a2a9de58773a193ca26dc5747ad15d5a0',1,'Diligent']]], + ['blend_5ffactor_5fsrc_5falpha',['BLEND_FACTOR_SRC_ALPHA',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a948b5c73475cba94c6c028092f2b9e3a',1,'Diligent']]], + ['blend_5ffactor_5fsrc_5falpha_5fsat',['BLEND_FACTOR_SRC_ALPHA_SAT',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1af63ab4a6d981c0f847faae9f68421028',1,'Diligent']]], + ['blend_5ffactor_5fsrc_5fcolor',['BLEND_FACTOR_SRC_COLOR',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a565d3f80967d8c90ca2613cbe5bf07e7',1,'Diligent']]], + ['blend_5ffactor_5fundefined',['BLEND_FACTOR_UNDEFINED',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1a607e0164f4cc7dace2760c1074c760be',1,'Diligent']]], + ['blend_5ffactor_5fzero',['BLEND_FACTOR_ZERO',['../namespace_diligent.html#a781bf760ca4b6e5258059a857c2f70b1aa78e79d5fc95c45698a965cb657a21b4',1,'Diligent']]], + ['blend_5foperation_5fadd',['BLEND_OPERATION_ADD',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3a9e84f0b1a683c460a49427cdc716a531',1,'Diligent']]], + ['blend_5foperation_5fmax',['BLEND_OPERATION_MAX',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3a538393fe379730eeb9472350b8e6f01c',1,'Diligent']]], + ['blend_5foperation_5fmin',['BLEND_OPERATION_MIN',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3a8842278a3b21bcc3ac743eb14cc34f15',1,'Diligent']]], + ['blend_5foperation_5fnum_5foperations',['BLEND_OPERATION_NUM_OPERATIONS',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3a3cd17b3a0762e892dd7dfc842a968406',1,'Diligent']]], + ['blend_5foperation_5frev_5fsubtract',['BLEND_OPERATION_REV_SUBTRACT',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3aae2cc1969f4c2d769409d9aaf4e39c00',1,'Diligent']]], + ['blend_5foperation_5fsubtract',['BLEND_OPERATION_SUBTRACT',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3a1ed369e906a5f05ba38bb58dbb30faeb',1,'Diligent']]], + ['blend_5foperation_5fundefined',['BLEND_OPERATION_UNDEFINED',['../namespace_diligent.html#a1a15723d053d87194d02437ffd2f55f3a987616518a77bdf05e92b26fc957d407',1,'Diligent']]], + ['buffer_5fmode_5fformatted',['BUFFER_MODE_FORMATTED',['../namespace_diligent.html#afbdac277dbbb5b93d32b3ffd7df8b7daafd0744a938df39ac9cd93fdbf9bb704e',1,'Diligent']]], + ['buffer_5fmode_5fnum_5fmodes',['BUFFER_MODE_NUM_MODES',['../namespace_diligent.html#afbdac277dbbb5b93d32b3ffd7df8b7daa1ef9cfe62f24d6763f691281ef6c09f5',1,'Diligent']]], + ['buffer_5fmode_5fstructured',['BUFFER_MODE_STRUCTURED',['../namespace_diligent.html#afbdac277dbbb5b93d32b3ffd7df8b7daa8795c0e51bc4091c1efab4f65e5062e7',1,'Diligent']]], + ['buffer_5fmode_5fundefined',['BUFFER_MODE_UNDEFINED',['../namespace_diligent.html#afbdac277dbbb5b93d32b3ffd7df8b7daa3d5865d8818d99627ffe6775c4c219b2',1,'Diligent']]], + ['buffer_5fview_5fnum_5fviews',['BUFFER_VIEW_NUM_VIEWS',['../namespace_diligent.html#a6a774c831a175b647d9144fea155dd14a5ca9e42d5a3bd0c9cb84b192a2fd6c0c',1,'Diligent']]], + ['buffer_5fview_5fshader_5fresource',['BUFFER_VIEW_SHADER_RESOURCE',['../namespace_diligent.html#a6a774c831a175b647d9144fea155dd14ad1c69de4eb65756790d8110cb20adb4b',1,'Diligent']]], + ['buffer_5fview_5fundefined',['BUFFER_VIEW_UNDEFINED',['../namespace_diligent.html#a6a774c831a175b647d9144fea155dd14aec8a0f6db367c6d64f2029d60570e86f',1,'Diligent']]], + ['buffer_5fview_5funordered_5faccess',['BUFFER_VIEW_UNORDERED_ACCESS',['../namespace_diligent.html#a6a774c831a175b647d9144fea155dd14a5422f79416a91ceb5767a242ca021e1a',1,'Diligent']]] +]; diff --git a/doc/html/search/enumvalues_1.html b/doc/html/search/enumvalues_1.html new file mode 100644 index 00000000..abeea564 --- /dev/null +++ b/doc/html/search/enumvalues_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enumvalues_1.js b/doc/html/search/enumvalues_1.js new file mode 100644 index 00000000..5a9712ed --- /dev/null +++ b/doc/html/search/enumvalues_1.js @@ -0,0 +1,39 @@ +var searchData= +[ + ['clear_5fdepth_5fflag',['CLEAR_DEPTH_FLAG',['../namespace_diligent.html#aafeefaa870f5db1389590baa5d95058ba34afbc9a33f86780875da153ca6b2e48',1,'Diligent']]], + ['clear_5fstencil_5fflag',['CLEAR_STENCIL_FLAG',['../namespace_diligent.html#aafeefaa870f5db1389590baa5d95058ba9f709957bf297f9f5e8ae3e2687302f8',1,'Diligent']]], + ['color_5fmask_5fall',['COLOR_MASK_ALL',['../namespace_diligent.html#a8dfef3a8f30375369b1ea5fe76abc35cafd8cebfdaacbc52fff4edae2102ced91',1,'Diligent']]], + ['color_5fmask_5falpha',['COLOR_MASK_ALPHA',['../namespace_diligent.html#a8dfef3a8f30375369b1ea5fe76abc35ca8914c618d54477b9fa5f2b2323f0f726',1,'Diligent']]], + ['color_5fmask_5fblue',['COLOR_MASK_BLUE',['../namespace_diligent.html#a8dfef3a8f30375369b1ea5fe76abc35ca96c4ad2861f747d80853e59ee8bc9f73',1,'Diligent']]], + ['color_5fmask_5fgreen',['COLOR_MASK_GREEN',['../namespace_diligent.html#a8dfef3a8f30375369b1ea5fe76abc35ca0c48f62df6e9f3dd4a13a0a8125a5176',1,'Diligent']]], + ['color_5fmask_5fred',['COLOR_MASK_RED',['../namespace_diligent.html#a8dfef3a8f30375369b1ea5fe76abc35cab98fdb1a5bf1764c6c29e44adda56eec',1,'Diligent']]], + ['commit_5fshader_5fresources_5fflag_5ftransition_5fresources',['COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES',['../namespace_diligent.html#a83a6318edc132699548ca2ae05374007add49cb7a8581173762b24c89992c544e',1,'Diligent']]], + ['comparison_5ffunc_5falways',['COMPARISON_FUNC_ALWAYS',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3a7cc8933aafb1e254a4be67a841698b11',1,'Diligent']]], + ['comparison_5ffunc_5fequal',['COMPARISON_FUNC_EQUAL',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3ad33573ebed971ae2e788c0c2119433c8',1,'Diligent']]], + ['comparison_5ffunc_5fgreater',['COMPARISON_FUNC_GREATER',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3ae3ab0763823fc67730b719b4acafeea2',1,'Diligent']]], + ['comparison_5ffunc_5fgreater_5fequal',['COMPARISON_FUNC_GREATER_EQUAL',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3ad35e669229761e23a8b6d7b1dff8d6a3',1,'Diligent']]], + ['comparison_5ffunc_5fless',['COMPARISON_FUNC_LESS',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3a411164cf3b8a7ce0e4d3792b4bfe3e63',1,'Diligent']]], + ['comparison_5ffunc_5fless_5fequal',['COMPARISON_FUNC_LESS_EQUAL',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3a15f8ce33479c9d7a64fb95dbf4280a11',1,'Diligent']]], + ['comparison_5ffunc_5fnever',['COMPARISON_FUNC_NEVER',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3a00b70a0d0b44e0eb2e2ab88ca2a509bb',1,'Diligent']]], + ['comparison_5ffunc_5fnot_5fequal',['COMPARISON_FUNC_NOT_EQUAL',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3abf16cedb7ad37988bab6e7a80e11f263',1,'Diligent']]], + ['comparison_5ffunc_5fnum_5ffunctions',['COMPARISON_FUNC_NUM_FUNCTIONS',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3a73e6559b15743c06d473c3ea60794761',1,'Diligent']]], + ['comparison_5ffunc_5funknown',['COMPARISON_FUNC_UNKNOWN',['../namespace_diligent.html#a8d1dad077555a8b379c65d86c15518b3ac2643a547edf29e763af04c5ab82a7f5',1,'Diligent']]], + ['component_5ftype_5fcompound',['COMPONENT_TYPE_COMPOUND',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476ca9d4afc0fa9a367f3b34542f8d152e40a',1,'Diligent']]], + ['component_5ftype_5fcompressed',['COMPONENT_TYPE_COMPRESSED',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476cab1b19584374b1acb6e1984aa32ac9819',1,'Diligent']]], + ['component_5ftype_5fdepth',['COMPONENT_TYPE_DEPTH',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476caa3984b7039eb6b96b04a68ac8684750d',1,'Diligent']]], + ['component_5ftype_5fdepth_5fstencil',['COMPONENT_TYPE_DEPTH_STENCIL',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476ca2cdf1c20c083d2427affaba85e76102f',1,'Diligent']]], + ['component_5ftype_5ffloat',['COMPONENT_TYPE_FLOAT',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476cac0be9da22dea8c4f2254f57bb7bff4a1',1,'Diligent']]], + ['component_5ftype_5fsint',['COMPONENT_TYPE_SINT',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476ca0547352fdd2805b64922cc6737ec877a',1,'Diligent']]], + ['component_5ftype_5fsnorm',['COMPONENT_TYPE_SNORM',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476ca09045ed1da150ed46fc509775fe5944f',1,'Diligent']]], + ['component_5ftype_5fuint',['COMPONENT_TYPE_UINT',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476ca2254ce2599cdd04e947599b30a8da400',1,'Diligent']]], + ['component_5ftype_5fundefined',['COMPONENT_TYPE_UNDEFINED',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476cae0b3fdc5523e496fa7c4bbf417b4ad90',1,'Diligent']]], + ['component_5ftype_5funorm',['COMPONENT_TYPE_UNORM',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476caee0de6d3e12a57c53b9f6491300f7cb2',1,'Diligent']]], + ['component_5ftype_5funorm_5fsrgb',['COMPONENT_TYPE_UNORM_SRGB',['../namespace_diligent.html#ad488f0b4140addfa16d24580ee85476cab7651620cd29d84d11b883db4397edde',1,'Diligent']]], + ['cpu_5faccess_5fread',['CPU_ACCESS_READ',['../namespace_diligent.html#a0f62a9270b7cb35023bfb7ff6318bd01a59c30a6f98d0cd0ecf886e6da6dfa364',1,'Diligent']]], + ['cpu_5faccess_5fwrite',['CPU_ACCESS_WRITE',['../namespace_diligent.html#a0f62a9270b7cb35023bfb7ff6318bd01a73d498f881235bb1efddb57352f0d5ca',1,'Diligent']]], + ['cull_5fmode_5fback',['CULL_MODE_BACK',['../namespace_diligent.html#aeeda8d41835aaaca5142122552880896aea9b199b178f12075d4d5df882043269',1,'Diligent']]], + ['cull_5fmode_5ffront',['CULL_MODE_FRONT',['../namespace_diligent.html#aeeda8d41835aaaca5142122552880896a573069ffcc465c046134a3fc51a52d1b',1,'Diligent']]], + ['cull_5fmode_5fnone',['CULL_MODE_NONE',['../namespace_diligent.html#aeeda8d41835aaaca5142122552880896a88bffa666bf1f0913c785f5adcc51a3c',1,'Diligent']]], + ['cull_5fmode_5fnum_5fmodes',['CULL_MODE_NUM_MODES',['../namespace_diligent.html#aeeda8d41835aaaca5142122552880896a0b91e2f89b17819acce7200fbdf87d8d',1,'Diligent']]], + ['cull_5fmode_5fundefined',['CULL_MODE_UNDEFINED',['../namespace_diligent.html#aeeda8d41835aaaca5142122552880896aceb414f364000c13d75a7a17fa0416ca',1,'Diligent']]] +]; diff --git a/doc/html/search/enumvalues_2.html b/doc/html/search/enumvalues_2.html new file mode 100644 index 00000000..90289986 --- /dev/null +++ b/doc/html/search/enumvalues_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enumvalues_2.js b/doc/html/search/enumvalues_2.js new file mode 100644 index 00000000..1068d384 --- /dev/null +++ b/doc/html/search/enumvalues_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['d3d11',['D3D11',['../namespace_diligent.html#a905d9d44892311167e9b28962bbf7e18ad51c33ce106109ecd1596d83a11632a5',1,'Diligent']]], + ['d3d12',['D3D12',['../namespace_diligent.html#a905d9d44892311167e9b28962bbf7e18afac777d230cd7175697748a8c5260df6',1,'Diligent']]] +]; diff --git a/doc/html/search/enumvalues_3.html b/doc/html/search/enumvalues_3.html new file mode 100644 index 00000000..b152efcb --- /dev/null +++ b/doc/html/search/enumvalues_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enumvalues_3.js b/doc/html/search/enumvalues_3.js new file mode 100644 index 00000000..9fd5237b --- /dev/null +++ b/doc/html/search/enumvalues_3.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['fill_5fmode_5fnum_5fmodes',['FILL_MODE_NUM_MODES',['../namespace_diligent.html#a3b85032ce91db5b8f9bcaab7bff02bc9a4c5785c082fe9c9ab08c2558882af04f',1,'Diligent']]], + ['fill_5fmode_5fsolid',['FILL_MODE_SOLID',['../namespace_diligent.html#a3b85032ce91db5b8f9bcaab7bff02bc9a384ecd536cf5805995b7f7e2732ee0bf',1,'Diligent']]], + ['fill_5fmode_5fundefined',['FILL_MODE_UNDEFINED',['../namespace_diligent.html#a3b85032ce91db5b8f9bcaab7bff02bc9a4f9c2dce719b61de78321d1742ad4dd3',1,'Diligent']]], + ['fill_5fmode_5fwireframe',['FILL_MODE_WIREFRAME',['../namespace_diligent.html#a3b85032ce91db5b8f9bcaab7bff02bc9a1393780d3940ecd55c4f4ccd5dd9967a',1,'Diligent']]], + ['filter_5ftype_5fanisotropic',['FILTER_TYPE_ANISOTROPIC',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a9160b185205e04ac49ba0031934ee459',1,'Diligent']]], + ['filter_5ftype_5fcomparison_5fanisotropic',['FILTER_TYPE_COMPARISON_ANISOTROPIC',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a67ae6207484380e2b88d2d90d9e34e97',1,'Diligent']]], + ['filter_5ftype_5fcomparison_5flinear',['FILTER_TYPE_COMPARISON_LINEAR',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a9d07328c126cb498169a8eac1de6fc75',1,'Diligent']]], + ['filter_5ftype_5fcomparison_5fpoint',['FILTER_TYPE_COMPARISON_POINT',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a816cdeed28e1060e21208f673bd9751b',1,'Diligent']]], + ['filter_5ftype_5flinear',['FILTER_TYPE_LINEAR',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a167655f3ace23033921e2e4066796751',1,'Diligent']]], + ['filter_5ftype_5fmaximum_5fanisotropic',['FILTER_TYPE_MAXIMUM_ANISOTROPIC',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3aff4370c3c16294f04a71dc1c08c1c33a',1,'Diligent']]], + ['filter_5ftype_5fmaximum_5flinear',['FILTER_TYPE_MAXIMUM_LINEAR',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a5720a664a3426058b751eb06d5aaedb0',1,'Diligent']]], + ['filter_5ftype_5fmaximum_5fpoint',['FILTER_TYPE_MAXIMUM_POINT',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a64d461add82edd8068ef488d2d51db99',1,'Diligent']]], + ['filter_5ftype_5fminimum_5fanisotropic',['FILTER_TYPE_MINIMUM_ANISOTROPIC',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a4398678f25fd7f9c5ab22acb772a6188',1,'Diligent']]], + ['filter_5ftype_5fminimum_5flinear',['FILTER_TYPE_MINIMUM_LINEAR',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a75ee7cf1caa6d885ca48ef988c0baff1',1,'Diligent']]], + ['filter_5ftype_5fminimum_5fpoint',['FILTER_TYPE_MINIMUM_POINT',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3ad91cd8a6a5c31af9ce787010899ec69d',1,'Diligent']]], + ['filter_5ftype_5fnum_5ffilters',['FILTER_TYPE_NUM_FILTERS',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3ae96e67dde46ffaee98ac2f3625015267',1,'Diligent']]], + ['filter_5ftype_5fpoint',['FILTER_TYPE_POINT',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a4423b28e4552e47e8d71c1cc6b68b0bd',1,'Diligent']]], + ['filter_5ftype_5funknown',['FILTER_TYPE_UNKNOWN',['../namespace_diligent.html#a9001a5a822d4d0901acdc2c8cbe600b3a93daeed05a3dd2c9b924c7c2717eb5d5',1,'Diligent']]], + ['frequency_5fnum_5ffrequencies',['FREQUENCY_NUM_FREQUENCIES',['../struct_diligent_1_1_layout_element.html#a0e0d75c026027999ed229831f721804fa5ed3dc2a2aade6d8b7fbc222599dff33',1,'Diligent::LayoutElement']]], + ['frequency_5fper_5finstance',['FREQUENCY_PER_INSTANCE',['../struct_diligent_1_1_layout_element.html#a0e0d75c026027999ed229831f721804faac2a458944ea8bbfec153847ad93abe3',1,'Diligent::LayoutElement']]], + ['frequency_5fper_5fvertex',['FREQUENCY_PER_VERTEX',['../struct_diligent_1_1_layout_element.html#a0e0d75c026027999ed229831f721804fa82c41371a1ea79eb28874bdda04b24b7',1,'Diligent::LayoutElement']]], + ['frequency_5fundefined',['FREQUENCY_UNDEFINED',['../struct_diligent_1_1_layout_element.html#a0e0d75c026027999ed229831f721804fa2787941ec89050988624688469c067f4',1,'Diligent::LayoutElement']]] +]; diff --git a/doc/html/search/enumvalues_4.html b/doc/html/search/enumvalues_4.html new file mode 100644 index 00000000..3f50abb8 --- /dev/null +++ b/doc/html/search/enumvalues_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enumvalues_4.js b/doc/html/search/enumvalues_4.js new file mode 100644 index 00000000..401fdd92 --- /dev/null +++ b/doc/html/search/enumvalues_4.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['logic_5fop_5fand',['LOGIC_OP_AND',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a184dfeec861cffe26bcc2fc3b136d66d',1,'Diligent']]], + ['logic_5fop_5fand_5finverted',['LOGIC_OP_AND_INVERTED',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92ae21d1e9fb3eed77ddd76d4dce2c2d9fc',1,'Diligent']]], + ['logic_5fop_5fand_5freverse',['LOGIC_OP_AND_REVERSE',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a5e6b8778dc983d17194906f8642c3732',1,'Diligent']]], + ['logic_5fop_5fclear',['LOGIC_OP_CLEAR',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92afdfe9ad9094bc9f6a8a6e4f4f0b8a7f1',1,'Diligent']]], + ['logic_5fop_5fcopy',['LOGIC_OP_COPY',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92ac325ef2bf88d625c2432a827eb8c9782',1,'Diligent']]], + ['logic_5fop_5fcopy_5finverted',['LOGIC_OP_COPY_INVERTED',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92afb3a7e7949a22c09536c6cd737e8b5d3',1,'Diligent']]], + ['logic_5fop_5fequiv',['LOGIC_OP_EQUIV',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a1e38fa7811a232000ef9ccd0d77ce92b',1,'Diligent']]], + ['logic_5fop_5finvert',['LOGIC_OP_INVERT',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92aeb49b6fa869a72df66d0d428e4d00b8c',1,'Diligent']]], + ['logic_5fop_5fnand',['LOGIC_OP_NAND',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a91ebfea4ef01f358acd0ea79a074b972',1,'Diligent']]], + ['logic_5fop_5fnoop',['LOGIC_OP_NOOP',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a5216c93bdfa3dc7dbfa88d2464c1e1ad',1,'Diligent']]], + ['logic_5fop_5fnor',['LOGIC_OP_NOR',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a9f05b80e9e1de862d726c07d0dc8d29f',1,'Diligent']]], + ['logic_5fop_5fnum_5foperations',['LOGIC_OP_NUM_OPERATIONS',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a10885b91cf3d8c584a2a692a2acdf946',1,'Diligent']]], + ['logic_5fop_5for',['LOGIC_OP_OR',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a484dd041a2933b222acdbc3887ec784f',1,'Diligent']]], + ['logic_5fop_5for_5finverted',['LOGIC_OP_OR_INVERTED',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a20295cc262bf10f294531ec8d5d684e6',1,'Diligent']]], + ['logic_5fop_5for_5freverse',['LOGIC_OP_OR_REVERSE',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92a2a82409fb240a540401f2f94171e7079',1,'Diligent']]], + ['logic_5fop_5fset',['LOGIC_OP_SET',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92aa0344ccea43ed2d74b7e0696bf8e7d73',1,'Diligent']]], + ['logic_5fop_5fxor',['LOGIC_OP_XOR',['../namespace_diligent.html#a9d388fa6bbd172d43718f7f4ff5dcf92addf9c2927105ccdc9178d4d7524f6c4b',1,'Diligent']]] +]; diff --git a/doc/html/search/enumvalues_5.html b/doc/html/search/enumvalues_5.html new file mode 100644 index 00000000..b6f20f29 --- /dev/null +++ b/doc/html/search/enumvalues_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enumvalues_5.js b/doc/html/search/enumvalues_5.js new file mode 100644 index 00000000..f427533c --- /dev/null +++ b/doc/html/search/enumvalues_5.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['map_5fflag_5fdiscard',['MAP_FLAG_DISCARD',['../namespace_diligent.html#af3b0412706d6ab99faa6774f92ce9cc6a79bb58b801e3f09e62e15c16da90efc8',1,'Diligent']]], + ['map_5fflag_5fdo_5fnot_5fsynchronize',['MAP_FLAG_DO_NOT_SYNCHRONIZE',['../namespace_diligent.html#af3b0412706d6ab99faa6774f92ce9cc6a329aa426e3e1dc2ae4ce397bd3eb4f38',1,'Diligent']]], + ['map_5fflag_5fdo_5fnot_5fwait',['MAP_FLAG_DO_NOT_WAIT',['../namespace_diligent.html#af3b0412706d6ab99faa6774f92ce9cc6acbd8dc9cee248433c31593e4a62ecb15',1,'Diligent']]], + ['map_5fread',['MAP_READ',['../namespace_diligent.html#aaf23669c215f709c983b1405efc19357a65436444d4034265e317ebc832a56cd4',1,'Diligent']]], + ['map_5fread_5fwrite',['MAP_READ_WRITE',['../namespace_diligent.html#aaf23669c215f709c983b1405efc19357af0effcf3a0f2ac99c954744ea9a09f85',1,'Diligent']]], + ['map_5fwrite',['MAP_WRITE',['../namespace_diligent.html#aaf23669c215f709c983b1405efc19357aa72437321e4ef90f4e80a8bc316691ab',1,'Diligent']]], + ['misc_5ftexture_5fflag_5fgenerate_5fmips',['MISC_TEXTURE_FLAG_GENERATE_MIPS',['../namespace_diligent.html#a26330621767a4a6ed8f44c0426233782a926903219be74a74df00dedd41cd1d84',1,'Diligent']]] +]; diff --git a/doc/html/search/enumvalues_6.html b/doc/html/search/enumvalues_6.html new file mode 100644 index 00000000..93be1295 --- /dev/null +++ b/doc/html/search/enumvalues_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enumvalues_6.js b/doc/html/search/enumvalues_6.js new file mode 100644 index 00000000..a18c3f43 --- /dev/null +++ b/doc/html/search/enumvalues_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['opengl',['OpenGL',['../namespace_diligent.html#a905d9d44892311167e9b28962bbf7e18a760716b590ee7c0adc25f434f577d8be',1,'Diligent']]], + ['opengles',['OpenGLES',['../namespace_diligent.html#a905d9d44892311167e9b28962bbf7e18af4b7db07e13ba92157b1b7d961abfaae',1,'Diligent']]] +]; diff --git a/doc/html/search/enumvalues_7.html b/doc/html/search/enumvalues_7.html new file mode 100644 index 00000000..9fefbd65 --- /dev/null +++ b/doc/html/search/enumvalues_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enumvalues_7.js b/doc/html/search/enumvalues_7.js new file mode 100644 index 00000000..ea5ffb53 --- /dev/null +++ b/doc/html/search/enumvalues_7.js @@ -0,0 +1,47 @@ +var searchData= +[ + ['primitive_5ftopology_5f10_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a338f901ebaf7b1a39bf11df03b46706d',1,'Diligent']]], + ['primitive_5ftopology_5f11_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5af29f2e03da5da233318e9fe143e56f65',1,'Diligent']]], + ['primitive_5ftopology_5f12_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5ad5927a7c5890e224061a1b47b2e882a7',1,'Diligent']]], + ['primitive_5ftopology_5f13_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5ade1587aa65e3a045465613b1bed14480',1,'Diligent']]], + ['primitive_5ftopology_5f14_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aaff97290dcd0ae400127c49d1c693dd1',1,'Diligent']]], + ['primitive_5ftopology_5f15_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aca9973c74c8771d563acd96c7ab90220',1,'Diligent']]], + ['primitive_5ftopology_5f16_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a751ea00e3c825f8db30a213956d91d6a',1,'Diligent']]], + ['primitive_5ftopology_5f17_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a5ba5f423fa6a2cb829f3e1f9fe9ef777',1,'Diligent']]], + ['primitive_5ftopology_5f18_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5af1631cf630c60572095ed644cf056314',1,'Diligent']]], + ['primitive_5ftopology_5f19_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a7854b9554ef00a17316d63651d99c52b',1,'Diligent']]], + ['primitive_5ftopology_5f1_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a2391ccd64eef53c0afb38a4038ee60e8',1,'Diligent']]], + ['primitive_5ftopology_5f20_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a54a54ae55e13555e60038b5d1d224410',1,'Diligent']]], + ['primitive_5ftopology_5f21_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aafda4acec32c1420a69b04d9ca98b7b8',1,'Diligent']]], + ['primitive_5ftopology_5f22_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5afe47dcc2bb7023572919fd5422a8493a',1,'Diligent']]], + ['primitive_5ftopology_5f23_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a8006e8901a9dbca7bf00db8d9cc711ad',1,'Diligent']]], + ['primitive_5ftopology_5f24_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a25a7f7a9608c3f78767f2facafa0a58b',1,'Diligent']]], + ['primitive_5ftopology_5f25_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aa5fe455cd87a8f5b43f6bc144f9999d6',1,'Diligent']]], + ['primitive_5ftopology_5f26_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5ad37f9f89d54d3ddcfb1148614d2b544a',1,'Diligent']]], + ['primitive_5ftopology_5f27_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a600ccba949f8fc8d83087b6e5fee313d',1,'Diligent']]], + ['primitive_5ftopology_5f28_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a5a6323683bea2fbf85d9fbfe4d0c0f72',1,'Diligent']]], + ['primitive_5ftopology_5f29_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a2ac786c751b2c89db5ecd320cc9cc15a',1,'Diligent']]], + ['primitive_5ftopology_5f2_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aa3f5de372e432227935523d3340c31c4',1,'Diligent']]], + ['primitive_5ftopology_5f30_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a6a30c15e62e2cf8b568473e3de9f1fc2',1,'Diligent']]], + ['primitive_5ftopology_5f31_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aefa709253ebb4377a447a123c0cb1ad5',1,'Diligent']]], + ['primitive_5ftopology_5f32_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aadfb69f9081328984e67040484a46d03',1,'Diligent']]], + ['primitive_5ftopology_5f3_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5ab080bb03f1dd1780108a4f063f912f56',1,'Diligent']]], + ['primitive_5ftopology_5f4_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5aca80f744bb8fd1b7dfb7e9c6f30e7226',1,'Diligent']]], + ['primitive_5ftopology_5f5_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a143737d74c6d54f6d306e9cfaec5e123',1,'Diligent']]], + ['primitive_5ftopology_5f6_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a89e83959864817ded36df88d008a852d',1,'Diligent']]], + ['primitive_5ftopology_5f7_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a40cc9177e4dd6ebfe8af822805ca3a7b',1,'Diligent']]], + ['primitive_5ftopology_5f8_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a83efcf6d5e7344bded72e8ab0e4987fe',1,'Diligent']]], + ['primitive_5ftopology_5f9_5fcontrol_5fpoint_5fpatchlist',['PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a4773f73683ef10aab0d173184c83fec3',1,'Diligent']]], + ['primitive_5ftopology_5fline_5flist',['PRIMITIVE_TOPOLOGY_LINE_LIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a9cc861405d74774fa3e1dfea46af38f5',1,'Diligent']]], + ['primitive_5ftopology_5fnum_5ftopologies',['PRIMITIVE_TOPOLOGY_NUM_TOPOLOGIES',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5ad6da20e017f1d6cd47c8480b2e2d10c7',1,'Diligent']]], + ['primitive_5ftopology_5fpoint_5flist',['PRIMITIVE_TOPOLOGY_POINT_LIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a6ac72ddf8c6ba3f85c505eed11b7f869',1,'Diligent']]], + ['primitive_5ftopology_5ftriangle_5flist',['PRIMITIVE_TOPOLOGY_TRIANGLE_LIST',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5ae92cbcbf18a66dbe4463436512255d71',1,'Diligent']]], + ['primitive_5ftopology_5ftriangle_5fstrip',['PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5a7be4708b91dbb1e86bc0e83bf4f7c3d6',1,'Diligent']]], + ['primitive_5ftopology_5ftype_5fline',['PRIMITIVE_TOPOLOGY_TYPE_LINE',['../namespace_diligent.html#a2966e113686e1311912fd7b350721094ad131024e4a7404656eb622ff9be6c601',1,'Diligent']]], + ['primitive_5ftopology_5ftype_5fnum_5ftypes',['PRIMITIVE_TOPOLOGY_TYPE_NUM_TYPES',['../namespace_diligent.html#a2966e113686e1311912fd7b350721094af497bdd7a40a5102cdbb3d20c573f5be',1,'Diligent']]], + ['primitive_5ftopology_5ftype_5fpatch',['PRIMITIVE_TOPOLOGY_TYPE_PATCH',['../namespace_diligent.html#a2966e113686e1311912fd7b350721094a71000b83d328f3d03ec828944aac5836',1,'Diligent']]], + ['primitive_5ftopology_5ftype_5fpoint',['PRIMITIVE_TOPOLOGY_TYPE_POINT',['../namespace_diligent.html#a2966e113686e1311912fd7b350721094a1672e494693357f88375ce4df38a3e0c',1,'Diligent']]], + ['primitive_5ftopology_5ftype_5ftriangle',['PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE',['../namespace_diligent.html#a2966e113686e1311912fd7b350721094abc916aeed560a57e484623c409c48d8f',1,'Diligent']]], + ['primitive_5ftopology_5ftype_5fundefined',['PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED',['../namespace_diligent.html#a2966e113686e1311912fd7b350721094a87b55988e035b78978809914fbeceeb4',1,'Diligent']]], + ['primitive_5ftopology_5fundefined',['PRIMITIVE_TOPOLOGY_UNDEFINED',['../namespace_diligent.html#ae132e96b4b52bcb52026444873a794c5ad267d66962cb5db91791b795890a4543',1,'Diligent']]] +]; diff --git a/doc/html/search/enumvalues_8.html b/doc/html/search/enumvalues_8.html new file mode 100644 index 00000000..03f17f86 --- /dev/null +++ b/doc/html/search/enumvalues_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enumvalues_8.js b/doc/html/search/enumvalues_8.js new file mode 100644 index 00000000..a1fa6367 --- /dev/null +++ b/doc/html/search/enumvalues_8.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['resource_5fdim_5fbuffer',['RESOURCE_DIM_BUFFER',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67a266703b7f74b82531f02a1fa61fd6df1',1,'Diligent']]], + ['resource_5fdim_5fnum_5fdimensions',['RESOURCE_DIM_NUM_DIMENSIONS',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67aa8c62a6c20eefee728772831dd50b000',1,'Diligent']]], + ['resource_5fdim_5ftex_5f1d',['RESOURCE_DIM_TEX_1D',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67a1e2fafd112b4c4578d9a8eff40218cfa',1,'Diligent']]], + ['resource_5fdim_5ftex_5f1d_5farray',['RESOURCE_DIM_TEX_1D_ARRAY',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67a0307953fa536e87c4a7a2995a3cbc346',1,'Diligent']]], + ['resource_5fdim_5ftex_5f2d',['RESOURCE_DIM_TEX_2D',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67ac647e0be625f3b5724ae5bf26130969c',1,'Diligent']]], + ['resource_5fdim_5ftex_5f2d_5farray',['RESOURCE_DIM_TEX_2D_ARRAY',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67aba30654de202e4d748a6d4b4a7214efd',1,'Diligent']]], + ['resource_5fdim_5ftex_5f3d',['RESOURCE_DIM_TEX_3D',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67ac6cac31ad017cb986d0acb9775900d89',1,'Diligent']]], + ['resource_5fdim_5ftex_5fcube',['RESOURCE_DIM_TEX_CUBE',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67a2880d013561aef98ce197ef491adfbe9',1,'Diligent']]], + ['resource_5fdim_5ftex_5fcube_5farray',['RESOURCE_DIM_TEX_CUBE_ARRAY',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67a733c51d86d7108d6dc0811aebb583337',1,'Diligent']]], + ['resource_5fdim_5fundefined',['RESOURCE_DIM_UNDEFINED',['../namespace_diligent.html#aa01f48fca1ad92ac9a1eca28e2d51c67af059ddcde8b1a3bf1c6f32f3b4865cfe',1,'Diligent']]] +]; diff --git a/doc/html/search/enumvalues_9.html b/doc/html/search/enumvalues_9.html new file mode 100644 index 00000000..e60fe272 --- /dev/null +++ b/doc/html/search/enumvalues_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enumvalues_9.js b/doc/html/search/enumvalues_9.js new file mode 100644 index 00000000..55f36179 --- /dev/null +++ b/doc/html/search/enumvalues_9.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['set_5fvertex_5fbuffers_5fflag_5freset',['SET_VERTEX_BUFFERS_FLAG_RESET',['../namespace_diligent.html#a5720b03558fa0f988caaa3ea82f4f4d2a9d845821b9a5867760597bb117189aa8',1,'Diligent']]], + ['shader_5fsource_5flanguage_5fdefault',['SHADER_SOURCE_LANGUAGE_DEFAULT',['../namespace_diligent.html#afefecb3e9dff6f9b8b9f00cd2770c7b0a80f04185cf1c04a1785f95352ce8fe98',1,'Diligent']]], + ['shader_5fsource_5flanguage_5fglsl',['SHADER_SOURCE_LANGUAGE_GLSL',['../namespace_diligent.html#afefecb3e9dff6f9b8b9f00cd2770c7b0a0fb7dd30648819a279edf2829d258561',1,'Diligent']]], + ['shader_5fsource_5flanguage_5fhlsl',['SHADER_SOURCE_LANGUAGE_HLSL',['../namespace_diligent.html#afefecb3e9dff6f9b8b9f00cd2770c7b0ae2902026c29ba5ceeec9a0bb4f25e111',1,'Diligent']]], + ['shader_5ftype_5fcompute',['SHADER_TYPE_COMPUTE',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2a50dd2ab500bd69a67c8fd0f2790c6f29',1,'Diligent']]], + ['shader_5ftype_5fdomain',['SHADER_TYPE_DOMAIN',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2a5af9fe9cb224f5fc51edb07ff11108bf',1,'Diligent']]], + ['shader_5ftype_5fgeometry',['SHADER_TYPE_GEOMETRY',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2a3b18cd56185efef18ea985def8b8a8c3',1,'Diligent']]], + ['shader_5ftype_5fhull',['SHADER_TYPE_HULL',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2a25b84b38676bde314e05af55f07a5e6b',1,'Diligent']]], + ['shader_5ftype_5fpixel',['SHADER_TYPE_PIXEL',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2a9d50afa47ec991c605f6cde4dd872c34',1,'Diligent']]], + ['shader_5ftype_5funknown',['SHADER_TYPE_UNKNOWN',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2a6799c4292a2b6e6087a4f0ab3e6efc5a',1,'Diligent']]], + ['shader_5ftype_5fvertex',['SHADER_TYPE_VERTEX',['../namespace_diligent.html#a8294eb0a10dafa18441e78a80d231fd2a87d1509b84a192c452468277f015616f',1,'Diligent']]], + ['shader_5fvariable_5ftype_5fdynamic',['SHADER_VARIABLE_TYPE_DYNAMIC',['../namespace_diligent.html#adea6ddf55230a2722e6a7401e18de698a8f878878823106ce70c825475ef7ca16',1,'Diligent']]], + ['shader_5fvariable_5ftype_5fmutable',['SHADER_VARIABLE_TYPE_MUTABLE',['../namespace_diligent.html#adea6ddf55230a2722e6a7401e18de698a13c8763ed8f1413ee5d8b3d98c895c3a',1,'Diligent']]], + ['shader_5fvariable_5ftype_5fnum_5ftypes',['SHADER_VARIABLE_TYPE_NUM_TYPES',['../namespace_diligent.html#adea6ddf55230a2722e6a7401e18de698a6b6a3b5c0a1dec8fcf06ecb9f967acfb',1,'Diligent']]], + ['shader_5fvariable_5ftype_5fstatic',['SHADER_VARIABLE_TYPE_STATIC',['../namespace_diligent.html#adea6ddf55230a2722e6a7401e18de698a4c137d58eb6a965d1feb648e387a9ec3',1,'Diligent']]], + ['stencil_5fop_5fdecr_5fsat',['STENCIL_OP_DECR_SAT',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29a67d7f951aaa57ed1522fe66f43e32c78',1,'Diligent']]], + ['stencil_5fop_5fdecr_5fwrap',['STENCIL_OP_DECR_WRAP',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29af6d504952c26323aff8175c8f117c943',1,'Diligent']]], + ['stencil_5fop_5fincr_5fsat',['STENCIL_OP_INCR_SAT',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29acb3f32bf501fc645dea379a28e35df47',1,'Diligent']]], + ['stencil_5fop_5fincr_5fwrap',['STENCIL_OP_INCR_WRAP',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29aa2be5a5eaa59b9dda5f2336dfc9e1548',1,'Diligent']]], + ['stencil_5fop_5finvert',['STENCIL_OP_INVERT',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29ab365e790638343452b04c19e9b5064c1',1,'Diligent']]], + ['stencil_5fop_5fkeep',['STENCIL_OP_KEEP',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29a6e4efcc92b9fdd457f6a5d753b8ee6b7',1,'Diligent']]], + ['stencil_5fop_5fnum_5fops',['STENCIL_OP_NUM_OPS',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29ab30744e3d550c11a684d8cb8a9c82336',1,'Diligent']]], + ['stencil_5fop_5freplace',['STENCIL_OP_REPLACE',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29a5f484be67a9ed5fea8f2823fe48c97d4',1,'Diligent']]], + ['stencil_5fop_5fundefined',['STENCIL_OP_UNDEFINED',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29afac7937c3ec76ac501dd693217c7ab40',1,'Diligent']]], + ['stencil_5fop_5fzero',['STENCIL_OP_ZERO',['../namespace_diligent.html#a4d5f2c67b76f870790521dd26e4a8a29acb6492e7d3ebd5cdfe9ff7fb8d666c90',1,'Diligent']]] +]; diff --git a/doc/html/search/enumvalues_a.html b/doc/html/search/enumvalues_a.html new file mode 100644 index 00000000..1ec3a2a8 --- /dev/null +++ b/doc/html/search/enumvalues_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enumvalues_a.js b/doc/html/search/enumvalues_a.js new file mode 100644 index 00000000..44898e9f --- /dev/null +++ b/doc/html/search/enumvalues_a.js @@ -0,0 +1,117 @@ +var searchData= +[ + ['tex_5fformat_5fa8_5funorm',['TEX_FORMAT_A8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a3723820d4d3828dfd2f9262a7dba6708',1,'Diligent']]], + ['tex_5fformat_5fb5g5r5a1_5funorm',['TEX_FORMAT_B5G5R5A1_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ab2f7731db1a82c6a1e1e376798668445',1,'Diligent']]], + ['tex_5fformat_5fb5g6r5_5funorm',['TEX_FORMAT_B5G6R5_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465adf11b47f6d9a00acdef8a6365627e236',1,'Diligent']]], + ['tex_5fformat_5fbc1_5ftypeless',['TEX_FORMAT_BC1_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a60f594c52fbcb1533d0cf8509a6c65ce',1,'Diligent']]], + ['tex_5fformat_5fbc1_5funorm',['TEX_FORMAT_BC1_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ab63331cd7ecf61190c25545324ea2ed7',1,'Diligent']]], + ['tex_5fformat_5fbc1_5funorm_5fsrgb',['TEX_FORMAT_BC1_UNORM_SRGB',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ae4ebd6ca8bd89786ce5397f0305bbc6e',1,'Diligent']]], + ['tex_5fformat_5fbc2_5ftypeless',['TEX_FORMAT_BC2_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aa15fff042b0c21e710e300304c30a3ed',1,'Diligent']]], + ['tex_5fformat_5fbc2_5funorm',['TEX_FORMAT_BC2_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a8cc3fcce89d2803794684ef3836da91b',1,'Diligent']]], + ['tex_5fformat_5fbc2_5funorm_5fsrgb',['TEX_FORMAT_BC2_UNORM_SRGB',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ae4c8df626ee847c0edc91e3f4074723e',1,'Diligent']]], + ['tex_5fformat_5fbc3_5ftypeless',['TEX_FORMAT_BC3_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a02c11ecab5cd1536f9f78b8cef4e5ba4',1,'Diligent']]], + ['tex_5fformat_5fbc3_5funorm',['TEX_FORMAT_BC3_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ac9d4bc97bbff4a3e369989e5f092c1fc',1,'Diligent']]], + ['tex_5fformat_5fbc3_5funorm_5fsrgb',['TEX_FORMAT_BC3_UNORM_SRGB',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aee1add9082d7de6c1b9a4e4dfcd6b32e',1,'Diligent']]], + ['tex_5fformat_5fbc4_5fsnorm',['TEX_FORMAT_BC4_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a72f458a370b3931c2a499a834f9a07ad',1,'Diligent']]], + ['tex_5fformat_5fbc4_5ftypeless',['TEX_FORMAT_BC4_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aef84cdaf5c49e1bc88a29138a12908a7',1,'Diligent']]], + ['tex_5fformat_5fbc4_5funorm',['TEX_FORMAT_BC4_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aaf7cc360071c3fa26a55da8e9a49c532',1,'Diligent']]], + ['tex_5fformat_5fbc5_5fsnorm',['TEX_FORMAT_BC5_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a0d3d63ade03dc83ba8e00f54eda5034e',1,'Diligent']]], + ['tex_5fformat_5fbc5_5ftypeless',['TEX_FORMAT_BC5_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ac60117a0faee2761b0af7e2aff3aa9dc',1,'Diligent']]], + ['tex_5fformat_5fbc5_5funorm',['TEX_FORMAT_BC5_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465af220720a273822e42215f64da22a39c2',1,'Diligent']]], + ['tex_5fformat_5fbc6h_5fsf16',['TEX_FORMAT_BC6H_SF16',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aef805e475325f97eec66964176f52a19',1,'Diligent']]], + ['tex_5fformat_5fbc6h_5ftypeless',['TEX_FORMAT_BC6H_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a2006402150aa88e16d5010b7ef808aa6',1,'Diligent']]], + ['tex_5fformat_5fbc6h_5fuf16',['TEX_FORMAT_BC6H_UF16',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aa89eb4d526cbabe4548ccb4e33371eda',1,'Diligent']]], + ['tex_5fformat_5fbc7_5ftypeless',['TEX_FORMAT_BC7_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465adbf9435e67a9b03c4988b191884d2c97',1,'Diligent']]], + ['tex_5fformat_5fbc7_5funorm',['TEX_FORMAT_BC7_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465af0128d2a0c05d795926d1b4be8c3e468',1,'Diligent']]], + ['tex_5fformat_5fbc7_5funorm_5fsrgb',['TEX_FORMAT_BC7_UNORM_SRGB',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a5660aeeaed147beaa9e4bdc8cff42bc5',1,'Diligent']]], + ['tex_5fformat_5fbgra8_5ftypeless',['TEX_FORMAT_BGRA8_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a680df490939619dd7b30ea7037b9a9f7',1,'Diligent']]], + ['tex_5fformat_5fbgra8_5funorm',['TEX_FORMAT_BGRA8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a85c8ec3cafb6f81a2beffd0d1a2ef9bc',1,'Diligent']]], + ['tex_5fformat_5fbgra8_5funorm_5fsrgb',['TEX_FORMAT_BGRA8_UNORM_SRGB',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ad6be5eaf8712b7c04727f9b4803911f5',1,'Diligent']]], + ['tex_5fformat_5fbgrx8_5ftypeless',['TEX_FORMAT_BGRX8_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a01d64cc54ad460cf23844197dbba3f9b',1,'Diligent']]], + ['tex_5fformat_5fbgrx8_5funorm',['TEX_FORMAT_BGRX8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aa4acef99829b6389f46c1d4974c3c608',1,'Diligent']]], + ['tex_5fformat_5fbgrx8_5funorm_5fsrgb',['TEX_FORMAT_BGRX8_UNORM_SRGB',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a849b5daeb4b639e1d7581177ddb53cc5',1,'Diligent']]], + ['tex_5fformat_5fd16_5funorm',['TEX_FORMAT_D16_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aea03d50f3700be94d30dc941aeb40724',1,'Diligent']]], + ['tex_5fformat_5fd24_5funorm_5fs8_5fuint',['TEX_FORMAT_D24_UNORM_S8_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aa984b72a532da68bd1f1fc33d54089c8',1,'Diligent']]], + ['tex_5fformat_5fd32_5ffloat',['TEX_FORMAT_D32_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ac2f008275b02ec4c7a85ac5da386958b',1,'Diligent']]], + ['tex_5fformat_5fd32_5ffloat_5fs8x24_5fuint',['TEX_FORMAT_D32_FLOAT_S8X24_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a8a2edc5d9907cd0426edb134dd9adbc5',1,'Diligent']]], + ['tex_5fformat_5fg8r8_5fg8b8_5funorm',['TEX_FORMAT_G8R8_G8B8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a870215407929c7531a71e7332024e388',1,'Diligent']]], + ['tex_5fformat_5fnum_5fformats',['TEX_FORMAT_NUM_FORMATS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a3dba41239c7c8a7cd6248c0f06a09a65',1,'Diligent']]], + ['tex_5fformat_5fr10g10b10_5fxr_5fbias_5fa2_5funorm',['TEX_FORMAT_R10G10B10_XR_BIAS_A2_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a62a2e8c0db0113b562af2be036586243',1,'Diligent']]], + ['tex_5fformat_5fr11g11b10_5ffloat',['TEX_FORMAT_R11G11B10_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aed9cce1141988f5e228dda57c87b9936',1,'Diligent']]], + ['tex_5fformat_5fr16_5ffloat',['TEX_FORMAT_R16_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a57374ece9cb48fbd4f0f7a834b565462',1,'Diligent']]], + ['tex_5fformat_5fr16_5fsint',['TEX_FORMAT_R16_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aac46b66d97842649d10c8ca15ea0e154',1,'Diligent']]], + ['tex_5fformat_5fr16_5fsnorm',['TEX_FORMAT_R16_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a0611b4b06d9f2395dc9cb22352f3e0e0',1,'Diligent']]], + ['tex_5fformat_5fr16_5ftypeless',['TEX_FORMAT_R16_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ade07fbcd1046d63804856cd55c6f5474',1,'Diligent']]], + ['tex_5fformat_5fr16_5fuint',['TEX_FORMAT_R16_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a6fc0ad69e558e6d0d363e69ada5e84ee',1,'Diligent']]], + ['tex_5fformat_5fr16_5funorm',['TEX_FORMAT_R16_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a29829600ff7adcb7a1f3b0b46ed1a840',1,'Diligent']]], + ['tex_5fformat_5fr1_5funorm',['TEX_FORMAT_R1_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a3de9268103c1ded8e4ffd975c0a705d4',1,'Diligent']]], + ['tex_5fformat_5fr24_5funorm_5fx8_5ftypeless',['TEX_FORMAT_R24_UNORM_X8_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a1bd8929331aee85bc24a61e239a65329',1,'Diligent']]], + ['tex_5fformat_5fr24g8_5ftypeless',['TEX_FORMAT_R24G8_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a31654723813dd33664da93c28781804b',1,'Diligent']]], + ['tex_5fformat_5fr32_5ffloat',['TEX_FORMAT_R32_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a0a5ec081ba06f50f1876d712c95fbbb2',1,'Diligent']]], + ['tex_5fformat_5fr32_5ffloat_5fx8x24_5ftypeless',['TEX_FORMAT_R32_FLOAT_X8X24_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a63e2520343d2091c58583e3738a3cd58',1,'Diligent']]], + ['tex_5fformat_5fr32_5fsint',['TEX_FORMAT_R32_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a7c8dc8d6f51535beca7a2073c3d4ecd5',1,'Diligent']]], + ['tex_5fformat_5fr32_5ftypeless',['TEX_FORMAT_R32_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a74ab0438f398e3fa1bd34156b5b0c507',1,'Diligent']]], + ['tex_5fformat_5fr32_5fuint',['TEX_FORMAT_R32_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a75a8f13a2db57163d48ee3f27e048c24',1,'Diligent']]], + ['tex_5fformat_5fr32g8x24_5ftypeless',['TEX_FORMAT_R32G8X24_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a9dd3ba150529545a79c1193a324775d2',1,'Diligent']]], + ['tex_5fformat_5fr8_5fsint',['TEX_FORMAT_R8_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a4ebb7d7011d8106feb04553e486dd509',1,'Diligent']]], + ['tex_5fformat_5fr8_5fsnorm',['TEX_FORMAT_R8_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a7340ccaf1e5bb4da97f53f9dc9cdaede',1,'Diligent']]], + ['tex_5fformat_5fr8_5ftypeless',['TEX_FORMAT_R8_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a5cb418acea50b394e5dfd254e7ced9f5',1,'Diligent']]], + ['tex_5fformat_5fr8_5fuint',['TEX_FORMAT_R8_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ae9e4c8ead49e7048193fa1dff0d2a823',1,'Diligent']]], + ['tex_5fformat_5fr8_5funorm',['TEX_FORMAT_R8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a21e4a0387472fc3ae5f4c7cc1ba853b7',1,'Diligent']]], + ['tex_5fformat_5frg16_5ffloat',['TEX_FORMAT_RG16_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aa8f7fb1f77bcd0288186783edbdbfe6b',1,'Diligent']]], + ['tex_5fformat_5frg16_5fsint',['TEX_FORMAT_RG16_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a3517095f8afdeb90e4cb8e07d0a4e853',1,'Diligent']]], + ['tex_5fformat_5frg16_5fsnorm',['TEX_FORMAT_RG16_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a7f9b08e92d01fa0d05415a50949f7988',1,'Diligent']]], + ['tex_5fformat_5frg16_5ftypeless',['TEX_FORMAT_RG16_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a75087518065ba0347cc5e7929fb552a7',1,'Diligent']]], + ['tex_5fformat_5frg16_5fuint',['TEX_FORMAT_RG16_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a5d522e3800275249b788a5daef991016',1,'Diligent']]], + ['tex_5fformat_5frg16_5funorm',['TEX_FORMAT_RG16_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a05de082cc29f4eb0a142ef09eb7063a8',1,'Diligent']]], + ['tex_5fformat_5frg32_5ffloat',['TEX_FORMAT_RG32_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aeea76393266977ffa2e7a8b252107133',1,'Diligent']]], + ['tex_5fformat_5frg32_5fsint',['TEX_FORMAT_RG32_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465adbc39705e8dd96a926cf75880096c18b',1,'Diligent']]], + ['tex_5fformat_5frg32_5ftypeless',['TEX_FORMAT_RG32_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a31b76f2efe51b25a7117da969e2b6ed2',1,'Diligent']]], + ['tex_5fformat_5frg32_5fuint',['TEX_FORMAT_RG32_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a3c7c65b42cd75a7d469ed99004afaa6c',1,'Diligent']]], + ['tex_5fformat_5frg8_5fb8g8_5funorm',['TEX_FORMAT_RG8_B8G8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aaa5dfc47c51837ad649fac6f00655841',1,'Diligent']]], + ['tex_5fformat_5frg8_5fsint',['TEX_FORMAT_RG8_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a9151fd16adda2dc9a0ebe06462192ad7',1,'Diligent']]], + ['tex_5fformat_5frg8_5fsnorm',['TEX_FORMAT_RG8_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a981eca1860bc430747e5f2107c3668d4',1,'Diligent']]], + ['tex_5fformat_5frg8_5ftypeless',['TEX_FORMAT_RG8_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465acc9be5a43fc28f9ad4c8bb351683c536',1,'Diligent']]], + ['tex_5fformat_5frg8_5fuint',['TEX_FORMAT_RG8_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a3e39944f1f4957c628463ea255827581',1,'Diligent']]], + ['tex_5fformat_5frg8_5funorm',['TEX_FORMAT_RG8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aae3fd0b0cf035ee8baaedd0af7d4bf1a',1,'Diligent']]], + ['tex_5fformat_5frgb10a2_5ftypeless',['TEX_FORMAT_RGB10A2_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ae2607a3439026f2d40895acb46b9f5b5',1,'Diligent']]], + ['tex_5fformat_5frgb10a2_5fuint',['TEX_FORMAT_RGB10A2_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a1a64579f737dd72bff3657a9c6ee9077',1,'Diligent']]], + ['tex_5fformat_5frgb10a2_5funorm',['TEX_FORMAT_RGB10A2_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a2710e10dfc4a6192e1769a6994551f3f',1,'Diligent']]], + ['tex_5fformat_5frgb32_5ffloat',['TEX_FORMAT_RGB32_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a4590c9158584f05893636a5d97db2e4a',1,'Diligent']]], + ['tex_5fformat_5frgb32_5fsint',['TEX_FORMAT_RGB32_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a8ffd14c97e1097079a88d16bc60a9145',1,'Diligent']]], + ['tex_5fformat_5frgb32_5ftypeless',['TEX_FORMAT_RGB32_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ae5f5acf9a6bbf8af39897c463502da0a',1,'Diligent']]], + ['tex_5fformat_5frgb32_5fuint',['TEX_FORMAT_RGB32_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a9eae2e4849709bcfec90276e67ac7f6b',1,'Diligent']]], + ['tex_5fformat_5frgb9e5_5fsharedexp',['TEX_FORMAT_RGB9E5_SHAREDEXP',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a9a560e8e14a941193b18ea3c751da263',1,'Diligent']]], + ['tex_5fformat_5frgba16_5ffloat',['TEX_FORMAT_RGBA16_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465adaa6d237efff5ee2324c3eb3c823e896',1,'Diligent']]], + ['tex_5fformat_5frgba16_5fsint',['TEX_FORMAT_RGBA16_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a2e395f3bd00e9ff71918447997192ce6',1,'Diligent']]], + ['tex_5fformat_5frgba16_5fsnorm',['TEX_FORMAT_RGBA16_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a71b0ad28b1acc91bc51c7313d981d116',1,'Diligent']]], + ['tex_5fformat_5frgba16_5ftypeless',['TEX_FORMAT_RGBA16_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465abfda350d368dfaac50622ac75df912dc',1,'Diligent']]], + ['tex_5fformat_5frgba16_5fuint',['TEX_FORMAT_RGBA16_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ac797c35718d5c17cad6f24b17d08ac9f',1,'Diligent']]], + ['tex_5fformat_5frgba16_5funorm',['TEX_FORMAT_RGBA16_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a1efb4f2505cd9631e84e5fb18c6af583',1,'Diligent']]], + ['tex_5fformat_5frgba32_5ffloat',['TEX_FORMAT_RGBA32_FLOAT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ab9d0f625089592e367942df3c4b518f3',1,'Diligent']]], + ['tex_5fformat_5frgba32_5fsint',['TEX_FORMAT_RGBA32_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465ada571f62be667654827c9dc2db417b8f',1,'Diligent']]], + ['tex_5fformat_5frgba32_5ftypeless',['TEX_FORMAT_RGBA32_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a4fee2013ae50b1b380735982b701f18c',1,'Diligent']]], + ['tex_5fformat_5frgba32_5fuint',['TEX_FORMAT_RGBA32_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a8e8af2b7e659503f7d143e9af26444f5',1,'Diligent']]], + ['tex_5fformat_5frgba8_5fsint',['TEX_FORMAT_RGBA8_SINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a971e25859d3b4412f0c3c50bab73d050',1,'Diligent']]], + ['tex_5fformat_5frgba8_5fsnorm',['TEX_FORMAT_RGBA8_SNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465aee7096ae28505b3d8a5a3b35dd6a6137',1,'Diligent']]], + ['tex_5fformat_5frgba8_5ftypeless',['TEX_FORMAT_RGBA8_TYPELESS',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a2adaa9f08962f9d5656966bb22ca4890',1,'Diligent']]], + ['tex_5fformat_5frgba8_5fuint',['TEX_FORMAT_RGBA8_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a1a4330e66e6d3435a44a27e546c71ed4',1,'Diligent']]], + ['tex_5fformat_5frgba8_5funorm',['TEX_FORMAT_RGBA8_UNORM',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a0bdd5c2150977a0d9092831c1f45e61b',1,'Diligent']]], + ['tex_5fformat_5frgba8_5funorm_5fsrgb',['TEX_FORMAT_RGBA8_UNORM_SRGB',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a86a2e99aecff070023e1dd0331fb9a95',1,'Diligent']]], + ['tex_5fformat_5funknown',['TEX_FORMAT_UNKNOWN',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465abbb06fb704822d0fd64d9e1e9e07eb7d',1,'Diligent']]], + ['tex_5fformat_5fx24_5ftypeless_5fg8_5fuint',['TEX_FORMAT_X24_TYPELESS_G8_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a33c39e645a66ed967ede7d1ff30c807c',1,'Diligent']]], + ['tex_5fformat_5fx32_5ftypeless_5fg8x24_5fuint',['TEX_FORMAT_X32_TYPELESS_G8X24_UINT',['../namespace_diligent.html#ad7f1ec9812f01bc86834b408c5857465a2e0d8a8dd3f7a02b3decd77f1dd70ab3',1,'Diligent']]], + ['texture_5faddress_5fborder',['TEXTURE_ADDRESS_BORDER',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1a3f55d99e8bb9fbd60ad58ad42f7754cd',1,'Diligent']]], + ['texture_5faddress_5fclamp',['TEXTURE_ADDRESS_CLAMP',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1a5fc53ee0a53cc9c08ab0ede8c1305c7f',1,'Diligent']]], + ['texture_5faddress_5fmirror',['TEXTURE_ADDRESS_MIRROR',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1a64f197d0273cc23aec726ab2738dd45b',1,'Diligent']]], + ['texture_5faddress_5fmirror_5fonce',['TEXTURE_ADDRESS_MIRROR_ONCE',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1afadca32bf8a0f145bc506aa8583712c2',1,'Diligent']]], + ['texture_5faddress_5fnum_5fmodes',['TEXTURE_ADDRESS_NUM_MODES',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1a2d13beda40c3a09062c17faea418d142',1,'Diligent']]], + ['texture_5faddress_5funknown',['TEXTURE_ADDRESS_UNKNOWN',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1ae4eb70142178447e2c072c2d66d5c002',1,'Diligent']]], + ['texture_5faddress_5fwrap',['TEXTURE_ADDRESS_WRAP',['../namespace_diligent.html#a26cf0ec56d87b480b66e884231d113b1a1aa369d33dd824b995deacb66a03bb32',1,'Diligent']]], + ['texture_5fview_5fdepth_5fstencil',['TEXTURE_VIEW_DEPTH_STENCIL',['../namespace_diligent.html#a4f10ca1e5c5034aa6dcc86224d1189bdaf974362f40fbd2a6062e8220124a86aa',1,'Diligent']]], + ['texture_5fview_5fnum_5fviews',['TEXTURE_VIEW_NUM_VIEWS',['../namespace_diligent.html#a4f10ca1e5c5034aa6dcc86224d1189bdab5bd5c90bb6c469b63cffe7947832970',1,'Diligent']]], + ['texture_5fview_5frender_5ftarget',['TEXTURE_VIEW_RENDER_TARGET',['../namespace_diligent.html#a4f10ca1e5c5034aa6dcc86224d1189bdae7e090499e01b1aa0e57e7d71c9e7d22',1,'Diligent']]], + ['texture_5fview_5fshader_5fresource',['TEXTURE_VIEW_SHADER_RESOURCE',['../namespace_diligent.html#a4f10ca1e5c5034aa6dcc86224d1189bdacd9fed7b22b88f0a8b40d0d98d3c1243',1,'Diligent']]], + ['texture_5fview_5fundefined',['TEXTURE_VIEW_UNDEFINED',['../namespace_diligent.html#a4f10ca1e5c5034aa6dcc86224d1189bdaf08182e262af9a13ffed563d3ae6a791',1,'Diligent']]], + ['texture_5fview_5funordered_5faccess',['TEXTURE_VIEW_UNORDERED_ACCESS',['../namespace_diligent.html#a4f10ca1e5c5034aa6dcc86224d1189bda54fbca78137e0827e5691c21dde2d248',1,'Diligent']]] +]; diff --git a/doc/html/search/enumvalues_b.html b/doc/html/search/enumvalues_b.html new file mode 100644 index 00000000..bfc2bf3f --- /dev/null +++ b/doc/html/search/enumvalues_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enumvalues_b.js b/doc/html/search/enumvalues_b.js new file mode 100644 index 00000000..a0901dc7 --- /dev/null +++ b/doc/html/search/enumvalues_b.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['uav_5faccess_5fflag_5fread',['UAV_ACCESS_FLAG_READ',['../namespace_diligent.html#a21f4e67e54527088e9ece576bf9c57b5ad42d434e060adc1108c8ae76a01e0001',1,'Diligent']]], + ['uav_5faccess_5fflag_5fread_5fwrite',['UAV_ACCESS_FLAG_READ_WRITE',['../namespace_diligent.html#a21f4e67e54527088e9ece576bf9c57b5a25a679f6814bcfb15998ba9e33077160',1,'Diligent']]], + ['uav_5faccess_5fflag_5fwrite',['UAV_ACCESS_FLAG_WRITE',['../namespace_diligent.html#a21f4e67e54527088e9ece576bf9c57b5afd106074c09decf99fde5a22568c0f96',1,'Diligent']]], + ['uav_5faccess_5funspecified',['UAV_ACCESS_UNSPECIFIED',['../namespace_diligent.html#a21f4e67e54527088e9ece576bf9c57b5af428b78aff9e3214463f0b6c11c6abfe',1,'Diligent']]], + ['undefined',['Undefined',['../namespace_diligent.html#a905d9d44892311167e9b28962bbf7e18aec0fc0100c4fc1ce4eea230c3dc10360',1,'Diligent']]], + ['usage_5fcpu_5faccessible',['USAGE_CPU_ACCESSIBLE',['../namespace_diligent.html#a5342fb015dbf7f2e638dbfccc325a746ab62b9db4fc8e7188615217ab196e4985',1,'Diligent']]], + ['usage_5fdefault',['USAGE_DEFAULT',['../namespace_diligent.html#a5342fb015dbf7f2e638dbfccc325a746ae6658ba1c8f4426a8b0bdae1b7e3ae64',1,'Diligent']]], + ['usage_5fdynamic',['USAGE_DYNAMIC',['../namespace_diligent.html#a5342fb015dbf7f2e638dbfccc325a746a99a6c4fe39b32dc6f6f247554fa2eb1c',1,'Diligent']]], + ['usage_5fstatic',['USAGE_STATIC',['../namespace_diligent.html#a5342fb015dbf7f2e638dbfccc325a746aad6764a09ac229be9768507bf46c9747',1,'Diligent']]] +]; diff --git a/doc/html/search/enumvalues_c.html b/doc/html/search/enumvalues_c.html new file mode 100644 index 00000000..36070b87 --- /dev/null +++ b/doc/html/search/enumvalues_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/enumvalues_c.js b/doc/html/search/enumvalues_c.js new file mode 100644 index 00000000..9d23c51f --- /dev/null +++ b/doc/html/search/enumvalues_c.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['verifycommittedresourcerelevance',['VerifyCommittedResourceRelevance',['../namespace_diligent.html#a5c8758ce3fd35ebeff55489fba521a85a34263dc9e0364b5d7788048e0f993602',1,'Diligent']]], + ['verifycommittedshaderresources',['VerifyCommittedShaderResources',['../namespace_diligent.html#a5c8758ce3fd35ebeff55489fba521a85ab7d453859af84f92bcc33549827f05d9',1,'Diligent']]], + ['vt_5ffloat16',['VT_FLOAT16',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aa655c4d977016936a18aa460c739d65e4',1,'Diligent']]], + ['vt_5ffloat32',['VT_FLOAT32',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aafa7b5254b72dfc30886aa0578d783f94',1,'Diligent']]], + ['vt_5fint16',['VT_INT16',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aa3de9144a26c37fb6f00e6ab31019011a',1,'Diligent']]], + ['vt_5fint32',['VT_INT32',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aadce96830d631236f889b6131d8f93927',1,'Diligent']]], + ['vt_5fint8',['VT_INT8',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aa69a8f2c4802cb3dad00664337211e3d5',1,'Diligent']]], + ['vt_5fnum_5ftypes',['VT_NUM_TYPES',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aa404899904bf53c07bbdce4cdb2dc0fab',1,'Diligent']]], + ['vt_5fuint16',['VT_UINT16',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aa0e15f9d0c65df848ae20a42d67b78ee2',1,'Diligent']]], + ['vt_5fuint32',['VT_UINT32',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aa8d8ad1b30a33c40ba392d626909e200e',1,'Diligent']]], + ['vt_5fuint8',['VT_UINT8',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aae4d8703975c37ec65b37a255db3d573f',1,'Diligent']]], + ['vt_5fundefined',['VT_UNDEFINED',['../namespace_diligent.html#a1d12e97c6da58b2d4dd003db4a8a957aaa647691eb129443ff684b379a29819ab',1,'Diligent']]] +]; diff --git a/doc/html/search/functions_0.html b/doc/html/search/functions_0.html new file mode 100644 index 00000000..0539c8ce --- /dev/null +++ b/doc/html/search/functions_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_0.js b/doc/html/search/functions_0.js new file mode 100644 index 00000000..501c386d --- /dev/null +++ b/doc/html/search/functions_0.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['add',['Add',['../class_diligent_1_1_state_objects_registry.html#a24b0050a49d3cb95c7da0540648f4d28',1,'Diligent::StateObjectsRegistry']]], + ['addresource',['AddResource',['../class_diligent_1_1_resource_mapping_impl.html#a5563645976cf8dfc1107a6d4a663459a',1,'Diligent::ResourceMappingImpl::AddResource()'],['../class_diligent_1_1_i_resource_mapping.html#a89e4adea2dde57c68564fee88f4f4bb9',1,'Diligent::IResourceMapping::AddResource()']]], + ['addresourcearray',['AddResourceArray',['../class_diligent_1_1_resource_mapping_impl.html#a00d7867a060a590fd24b637dcd0c1c86',1,'Diligent::ResourceMappingImpl::AddResourceArray()'],['../class_diligent_1_1_i_resource_mapping.html#af643b8dbc85ae5181d9daaab89bfe839',1,'Diligent::IResourceMapping::AddResourceArray()']]], + ['allocate',['Allocate',['../class_diligent_1_1_fixed_block_memory_allocator.html#a97106c54ad140316e521eaa104550537',1,'Diligent::FixedBlockMemoryAllocator']]] +]; diff --git a/doc/html/search/functions_1.html b/doc/html/search/functions_1.html new file mode 100644 index 00000000..4878b3d1 --- /dev/null +++ b/doc/html/search/functions_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_1.js b/doc/html/search/functions_1.js new file mode 100644 index 00000000..6815c77e --- /dev/null +++ b/doc/html/search/functions_1.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['bindresources',['BindResources',['../class_diligent_1_1_shader_d3_d11_impl.html#a730f5bf535b07fd1f14134cb67214dbd',1,'Diligent::ShaderD3D11Impl::BindResources()'],['../class_diligent_1_1_shader_resource_binding_d3_d11_impl.html#a4c604c75575aca767a96e691da4982d0',1,'Diligent::ShaderResourceBindingD3D11Impl::BindResources()'],['../class_diligent_1_1_shader_g_l_impl.html#a51ebcf3c80febe6c70f47998f4509e40',1,'Diligent::ShaderGLImpl::BindResources()'],['../class_diligent_1_1_shader_resource_binding_g_l_impl.html#a86af66b47e1ea015fe064e58b903a916',1,'Diligent::ShaderResourceBindingGLImpl::BindResources()'],['../class_diligent_1_1_shader_d3_d12_impl.html#a01f14dcdf380c178da27c4fc11f03b9c',1,'Diligent::ShaderD3D12Impl::BindResources()'],['../class_diligent_1_1_shader_resource_binding_d3_d12_impl.html#ac88a687870aae608663583aef16d2ce8',1,'Diligent::ShaderResourceBindingD3D12Impl::BindResources()'],['../class_diligent_1_1_i_shader.html#a631860cef0bb50e081bab0acd1345cf1',1,'Diligent::IShader::BindResources()'],['../class_diligent_1_1_i_shader_resource_binding.html#aa63808de1731984d160b6d06f6c89baa',1,'Diligent::IShaderResourceBinding::BindResources()']]], + ['bindshaderresources',['BindShaderResources',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#acb20b58acad55035d1ea8bab1537c471',1,'Diligent::PipelineStateD3D11Impl::BindShaderResources()'],['../class_diligent_1_1_pipeline_state_g_l_impl.html#aca1a687586f5f706fa6491c8b7c9cbc1',1,'Diligent::PipelineStateGLImpl::BindShaderResources()'],['../class_diligent_1_1_pipeline_state_d3_d12_impl.html#a972d662c2a94bb00707bf5f143f34e82',1,'Diligent::PipelineStateD3D12Impl::BindShaderResources()'],['../class_diligent_1_1_i_pipeline_state.html#a8f8652f7f9437c40ab34db20f419fa1f',1,'Diligent::IPipelineState::BindShaderResources()']]], + ['blendstatedesc',['BlendStateDesc',['../struct_diligent_1_1_blend_state_desc.html#a8f602b74a29dab38856658f92d08cbc3',1,'Diligent::BlendStateDesc']]], + ['box',['Box',['../struct_diligent_1_1_box.html#af14a0fee74cce558f3bef58b133702ac',1,'Diligent::Box']]], + ['bufferbase',['BufferBase',['../class_diligent_1_1_buffer_base.html#adf6f4c230332562c56285371c20f416c',1,'Diligent::BufferBase']]], + ['bufferdata',['BufferData',['../struct_diligent_1_1_buffer_data.html#abbe1e758f160037334661f5a4decee2e',1,'Diligent::BufferData']]], + ['bufferdesc',['BufferDesc',['../struct_diligent_1_1_buffer_desc.html#a9587fb107cfd98028a10b59a88b8aee1',1,'Diligent::BufferDesc']]], + ['bufferformat',['BufferFormat',['../struct_diligent_1_1_buffer_desc_1_1_buffer_format.html#abb64063c84bbb65eb392d4b13a1f1455',1,'Diligent::BufferDesc::BufferFormat']]], + ['bufferviewbase',['BufferViewBase',['../class_diligent_1_1_buffer_view_base.html#a7c5098e6cc1093d022aa4bb7a90166a7',1,'Diligent::BufferViewBase']]], + ['bufferviewdesc',['BufferViewDesc',['../struct_diligent_1_1_buffer_view_desc.html#af850846cc7e46e2eb2139186671989fa',1,'Diligent::BufferViewDesc']]] +]; diff --git a/doc/html/search/functions_10.html b/doc/html/search/functions_10.html new file mode 100644 index 00000000..6f6fbae2 --- /dev/null +++ b/doc/html/search/functions_10.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_10.js b/doc/html/search/functions_10.js new file mode 100644 index 00000000..fb514fed --- /dev/null +++ b/doc/html/search/functions_10.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['unmap',['Unmap',['../class_diligent_1_1_buffer_d3_d11_impl.html#a3d0b88970c8762a4fd91e0ee96f96d42',1,'Diligent::BufferD3D11Impl::Unmap()'],['../class_diligent_1_1_texture_base_d3_d11.html#a1befa21d692561ad8143f33c80c3b2bd',1,'Diligent::TextureBaseD3D11::Unmap()'],['../class_diligent_1_1_buffer_g_l_impl.html#ae811627a470253192a9b34a578987986',1,'Diligent::BufferGLImpl::Unmap()'],['../class_diligent_1_1_texture_base_g_l.html#a771d0fa96be08e567b09cb22dfe9cf83',1,'Diligent::TextureBaseGL::Unmap()'],['../class_diligent_1_1_buffer_d3_d12_impl.html#a82bc5519edc10eebb0d193ac449339c0',1,'Diligent::BufferD3D12Impl::Unmap()'],['../class_diligent_1_1_texture_d3_d12_impl.html#a29700533b4983a0514a3a9b2ee4d548c',1,'Diligent::TextureD3D12Impl::Unmap()'],['../class_diligent_1_1_buffer_base.html#a36a0b578084d631a5d5547221f1f3eb4',1,'Diligent::BufferBase::Unmap()'],['../class_diligent_1_1_texture_base.html#ad1136237abd271ed16feb7972185b0fd',1,'Diligent::TextureBase::Unmap()'],['../class_diligent_1_1_i_buffer.html#a086169aac806b3a0b6f3b69a53c7bfa8',1,'Diligent::IBuffer::Unmap()'],['../class_diligent_1_1_map_helper.html#a62664e78fcdd9778302ff19f1c4c0ac6',1,'Diligent::MapHelper::Unmap()'],['../class_diligent_1_1_i_texture.html#af7ccbdefee685cb40a92ffb2fbb4c4ed',1,'Diligent::ITexture::Unmap()']]], + ['updatecurrentglcontext',['UpdateCurrentGLContext',['../class_diligent_1_1_device_context_g_l_impl.html#aada214b26f0289e0a7bcb7f9d4bcd626',1,'Diligent::DeviceContextGLImpl::UpdateCurrentGLContext()'],['../class_diligent_1_1_i_device_context_g_l.html#ae7207bb0aa6f055bcbecf1c4e187221f',1,'Diligent::IDeviceContextGL::UpdateCurrentGLContext()']]], + ['updatedata',['UpdateData',['../class_diligent_1_1_buffer_d3_d11_impl.html#ad05f05b7354d4b03ff042853a5283cda',1,'Diligent::BufferD3D11Impl::UpdateData()'],['../class_diligent_1_1_texture_base_d3_d11.html#a170da425e02469cadc16939a9fa7aeb4',1,'Diligent::TextureBaseD3D11::UpdateData()'],['../class_diligent_1_1_buffer_g_l_impl.html#ad13e71c052046cd38e5cc1d72ff3db70',1,'Diligent::BufferGLImpl::UpdateData()'],['../class_diligent_1_1_buffer_d3_d12_impl.html#abcf79071aa2bd6cf5c6559cf9a819348',1,'Diligent::BufferD3D12Impl::UpdateData()'],['../class_diligent_1_1_texture_d3_d12_impl.html#abc3712b7390da6ee07e0f0ec9d9ea115',1,'Diligent::TextureD3D12Impl::UpdateData()'],['../class_diligent_1_1_buffer_base.html#ad470fd908943c4408afcfc4c17abd129',1,'Diligent::BufferBase::UpdateData()'],['../class_diligent_1_1_texture_base.html#a8ebdab4ab9ffafd8fbf2470b74ee161f',1,'Diligent::TextureBase::UpdateData()'],['../class_diligent_1_1_i_buffer.html#a555a93cbf1811ea5bbf9222aacbaf4bc',1,'Diligent::IBuffer::UpdateData()'],['../class_diligent_1_1_i_texture.html#a8a3e8c23344b0fce96f61ea6732c0782',1,'Diligent::ITexture::UpdateData()']]] +]; diff --git a/doc/html/search/functions_11.html b/doc/html/search/functions_11.html new file mode 100644 index 00000000..dd88d8b7 --- /dev/null +++ b/doc/html/search/functions_11.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_11.js b/doc/html/search/functions_11.js new file mode 100644 index 00000000..9bda889d --- /dev/null +++ b/doc/html/search/functions_11.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['viewport',['Viewport',['../struct_diligent_1_1_viewport.html#a1b94a0a7a166bf2f3bc40982be910b03',1,'Diligent::Viewport']]] +]; diff --git a/doc/html/search/functions_12.html b/doc/html/search/functions_12.html new file mode 100644 index 00000000..7093d19f --- /dev/null +++ b/doc/html/search/functions_12.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_12.js b/doc/html/search/functions_12.js new file mode 100644 index 00000000..9c3f9e3d --- /dev/null +++ b/doc/html/search/functions_12.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['write',['Write',['../class_diligent_1_1_basic_file_stream.html#a5ed589fefc69ac4ce56180f121bdf648',1,'Diligent::BasicFileStream']]] +]; diff --git a/doc/html/search/functions_13.html b/doc/html/search/functions_13.html new file mode 100644 index 00000000..051a1eb8 --- /dev/null +++ b/doc/html/search/functions_13.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_13.js b/doc/html/search/functions_13.js new file mode 100644 index 00000000..2263ccc2 --- /dev/null +++ b/doc/html/search/functions_13.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['_7emaphelper',['~MapHelper',['../class_diligent_1_1_map_helper.html#a029c5809ad62fe02fd7b8453bff4208a',1,'Diligent::MapHelper']]], + ['_7esamplerbase',['~SamplerBase',['../class_diligent_1_1_sampler_base.html#ae5d5e692c43d7d262265e4226d031007',1,'Diligent::SamplerBase']]] +]; diff --git a/doc/html/search/functions_2.html b/doc/html/search/functions_2.html new file mode 100644 index 00000000..67d2a392 --- /dev/null +++ b/doc/html/search/functions_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_2.js b/doc/html/search/functions_2.js new file mode 100644 index 00000000..82a442d0 --- /dev/null +++ b/doc/html/search/functions_2.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['cleardepthstencil',['ClearDepthStencil',['../class_diligent_1_1_device_context_d3_d11_impl.html#a5175c43149f984dd3bebf6b421e39bea',1,'Diligent::DeviceContextD3D11Impl::ClearDepthStencil()'],['../class_diligent_1_1_device_context_g_l_impl.html#a6aecda5fc0ed209c140dca144081676f',1,'Diligent::DeviceContextGLImpl::ClearDepthStencil()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#aa5da52fb862de0daa38da2201325619c',1,'Diligent::DeviceContextD3D12Impl::ClearDepthStencil()'],['../class_diligent_1_1_i_device_context.html#a0c3efb4b15c56837a9e252772c222994',1,'Diligent::IDeviceContext::ClearDepthStencil()']]], + ['clearrendertarget',['ClearRenderTarget',['../class_diligent_1_1_device_context_d3_d11_impl.html#a38a49a11bff991901c6d2efe8e02502e',1,'Diligent::DeviceContextD3D11Impl::ClearRenderTarget()'],['../class_diligent_1_1_device_context_g_l_impl.html#ac60ce0cbb46f3109a7b3813dc0f4ea66',1,'Diligent::DeviceContextGLImpl::ClearRenderTarget()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#ad03325e9666bb7561d7c2c6754e08c7b',1,'Diligent::DeviceContextD3D12Impl::ClearRenderTarget()'],['../class_diligent_1_1_i_device_context.html#a27883957762f2e42f6dba9727a80b777',1,'Diligent::IDeviceContext::ClearRenderTarget()']]], + ['clearstatecache',['ClearStateCache',['../class_diligent_1_1_device_context_base.html#a775cf0092f0305be7732fe6c1ebfcbd8',1,'Diligent::DeviceContextBase']]], + ['commandlistbase',['CommandListBase',['../class_diligent_1_1_command_list_base.html#a867892aa11155befa128ca859289dfa9',1,'Diligent::CommandListBase']]], + ['commitshaderresources',['CommitShaderResources',['../class_diligent_1_1_device_context_d3_d11_impl.html#abbd0e2473b6222fc74c70ed5583b590e',1,'Diligent::DeviceContextD3D11Impl::CommitShaderResources()'],['../class_diligent_1_1_device_context_g_l_impl.html#aeb080cd5a8cf2ab99d836e799b12258f',1,'Diligent::DeviceContextGLImpl::CommitShaderResources()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#af14656733c2c20d5dc1b6b368be4670a',1,'Diligent::DeviceContextD3D12Impl::CommitShaderResources()'],['../class_diligent_1_1_device_context_base.html#a685f62e1630000359f9dbb7c463c63e4',1,'Diligent::DeviceContextBase::CommitShaderResources()'],['../class_diligent_1_1_i_device_context.html#a44ccc6a20358df3e3fb93c016eafa938',1,'Diligent::IDeviceContext::CommitShaderResources()']]], + ['copydata',['CopyData',['../class_diligent_1_1_buffer_d3_d11_impl.html#aad53f09b8042f1293af3298c3997c5d3',1,'Diligent::BufferD3D11Impl::CopyData()'],['../class_diligent_1_1_texture_base_d3_d11.html#a4d74db98d7ded0d72ba992afc93b34f8',1,'Diligent::TextureBaseD3D11::CopyData()'],['../class_diligent_1_1_buffer_g_l_impl.html#af473d6688b26bed7bd0683786aba3dee',1,'Diligent::BufferGLImpl::CopyData()'],['../class_diligent_1_1_texture_base_g_l.html#ae087c0ba29cd6813842a385abdf21537',1,'Diligent::TextureBaseGL::CopyData()'],['../class_diligent_1_1_buffer_d3_d12_impl.html#a957dcdd040cfbdddb6fce196825227f7',1,'Diligent::BufferD3D12Impl::CopyData()'],['../class_diligent_1_1_texture_d3_d12_impl.html#a5e580b4a669a3d3aac44256dee9ae8fa',1,'Diligent::TextureD3D12Impl::CopyData()'],['../class_diligent_1_1_buffer_base.html#a33ba03da302bb9b1dc72a20704574b5c',1,'Diligent::BufferBase::CopyData()'],['../class_diligent_1_1_texture_base.html#a614420569d09b39f90231181769b7d55',1,'Diligent::TextureBase::CopyData()'],['../class_diligent_1_1_i_buffer.html#a9f52c4f87b976cba6be125a37fa8a02a',1,'Diligent::IBuffer::CopyData()'],['../class_diligent_1_1_i_texture.html#a1141214ba00faa0ca61f656269bb3508',1,'Diligent::ITexture::CopyData()']]], + ['correctbufferviewdesc',['CorrectBufferViewDesc',['../class_diligent_1_1_buffer_base.html#a92e192b277bb3ee894bec156a3aa4ff1',1,'Diligent::BufferBase']]], + ['createbuffer',['CreateBuffer',['../class_diligent_1_1_i_render_device.html#a638db185ec04614240d7421ec4e77a44',1,'Diligent::IRenderDevice']]], + ['createbufferfromd3dresource',['CreateBufferFromD3DResource',['../class_diligent_1_1_i_render_device_d3_d11.html#aec48e5769272650fd23d3953522d3032',1,'Diligent::IRenderDeviceD3D11::CreateBufferFromD3DResource()'],['../class_diligent_1_1_i_render_device_d3_d12.html#aebb331f0742f2f3d677bb8b4316ead31',1,'Diligent::IRenderDeviceD3D12::CreateBufferFromD3DResource()']]], + ['createbufferfromglhandle',['CreateBufferFromGLHandle',['../class_diligent_1_1_i_render_device_g_l.html#afe347ae560c5847a3b49c4492ea4cb21',1,'Diligent::IRenderDeviceGL']]], + ['createdefaultviews',['CreateDefaultViews',['../class_diligent_1_1_buffer_base.html#a324143f93e68357ee89c5b3116c2cd6b',1,'Diligent::BufferBase::CreateDefaultViews()'],['../class_diligent_1_1_texture_base.html#a832ba2a8e7a76ad9c0f349c839c1dbda',1,'Diligent::TextureBase::CreateDefaultViews()']]], + ['createdeviceobject',['CreateDeviceObject',['../class_diligent_1_1_render_device_base.html#a53a856542184d8a6c323af97a95979f4',1,'Diligent::RenderDeviceBase']]], + ['createpipelinestate',['CreatePipelineState',['../class_diligent_1_1_i_render_device.html#a265a34daa7463610a0d8d2dde06a0d8b',1,'Diligent::IRenderDevice']]], + ['createresourcemapping',['CreateResourceMapping',['../class_diligent_1_1_render_device_base.html#a111f8a099da34511c7b7084b3e215d16',1,'Diligent::RenderDeviceBase::CreateResourceMapping()'],['../class_diligent_1_1_i_render_device.html#a1dbef756cb359af864a1514d583b117d',1,'Diligent::IRenderDevice::CreateResourceMapping()']]], + ['createsampler',['CreateSampler',['../class_diligent_1_1_i_render_device.html#afbb066b8ac1fbcc47d852537c3f246c7',1,'Diligent::IRenderDevice']]], + ['createshader',['CreateShader',['../class_diligent_1_1_i_render_device.html#aded4e45804a8578ba5b202db26e43840',1,'Diligent::IRenderDevice']]], + ['createshaderresourcebinding',['CreateShaderResourceBinding',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#afcbe1925e337ad27541d908eff08d5f8',1,'Diligent::PipelineStateD3D11Impl::CreateShaderResourceBinding()'],['../class_diligent_1_1_pipeline_state_g_l_impl.html#ab6ada7fa88085ec29af09c0ee04d730d',1,'Diligent::PipelineStateGLImpl::CreateShaderResourceBinding()'],['../class_diligent_1_1_pipeline_state_d3_d12_impl.html#a3130cea7dfb9bd18a368e77b4281f7f8',1,'Diligent::PipelineStateD3D12Impl::CreateShaderResourceBinding()'],['../class_diligent_1_1_i_pipeline_state.html#a1500049f597cda22b862b5d967fceab5',1,'Diligent::IPipelineState::CreateShaderResourceBinding()']]], + ['createtexture',['CreateTexture',['../class_diligent_1_1_i_render_device.html#a2e9e3ef4a01fe9caca6f51617598548a',1,'Diligent::IRenderDevice']]], + ['createtexturefromd3dresource',['CreateTextureFromD3DResource',['../class_diligent_1_1_i_render_device_d3_d11.html#ae6ef26377c07203420784c19ebbfddcd',1,'Diligent::IRenderDeviceD3D11::CreateTextureFromD3DResource(ID3D11Texture1D *pd3d11Texture, ITexture **ppTexture)=0'],['../class_diligent_1_1_i_render_device_d3_d11.html#aed88d8ae1180ca2bc539db88f08a2ff2',1,'Diligent::IRenderDeviceD3D11::CreateTextureFromD3DResource(ID3D11Texture2D *pd3d11Texture, ITexture **ppTexture)=0'],['../class_diligent_1_1_i_render_device_d3_d11.html#a81d6997dcbec47c0b4f6c914860a1b54',1,'Diligent::IRenderDeviceD3D11::CreateTextureFromD3DResource(ID3D11Texture3D *pd3d11Texture, ITexture **ppTexture)=0'],['../class_diligent_1_1_i_render_device_d3_d12.html#a74fde1f49848b55d9d6d535af8703230',1,'Diligent::IRenderDeviceD3D12::CreateTextureFromD3DResource()']]], + ['createtexturefromglhandle',['CreateTextureFromGLHandle',['../class_diligent_1_1_i_render_device_g_l.html#a7411430f035826a4bb9228e75fc0472c',1,'Diligent::IRenderDeviceGL']]], + ['createview',['CreateView',['../class_diligent_1_1_buffer_base.html#ac67b656289f82ba476c4eaaa4f23fb2f',1,'Diligent::BufferBase::CreateView()'],['../class_diligent_1_1_texture_base.html#ac01f2d9b9d68038be0f307be08f25d07',1,'Diligent::TextureBase::CreateView()'],['../class_diligent_1_1_i_buffer.html#aa295fc943c9cfbd4d9a65465d4200be3',1,'Diligent::IBuffer::CreateView()'],['../class_diligent_1_1_i_texture.html#ab3f1935532ddd971e455941e3abc21f9',1,'Diligent::ITexture::CreateView()']]], + ['createviewinternal',['CreateViewInternal',['../class_diligent_1_1_texture_base_d3_d11.html#a7287d949e2502d56e237fe6183cf3c41',1,'Diligent::TextureBaseD3D11::CreateViewInternal()'],['../class_diligent_1_1_texture_base_g_l.html#a61a5b0b884668fc6c932f8cba9da2a18',1,'Diligent::TextureBaseGL::CreateViewInternal()'],['../class_diligent_1_1_texture_d3_d12_impl.html#a54a1792a4ccf01e8cee6bb8701910419',1,'Diligent::TextureD3D12Impl::CreateViewInternal()'],['../class_diligent_1_1_buffer_base.html#a1a89eae526881930d09a249521af2ed5',1,'Diligent::BufferBase::CreateViewInternal()'],['../class_diligent_1_1_texture_base.html#a3e8b435697f7083e4e7454dcb214f3f5',1,'Diligent::TextureBase::CreateViewInternal()']]] +]; diff --git a/doc/html/search/functions_3.html b/doc/html/search/functions_3.html new file mode 100644 index 00000000..1f0eedb3 --- /dev/null +++ b/doc/html/search/functions_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_3.js b/doc/html/search/functions_3.js new file mode 100644 index 00000000..07f04e96 --- /dev/null +++ b/doc/html/search/functions_3.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['depthstencilstatedesc',['DepthStencilStateDesc',['../struct_diligent_1_1_depth_stencil_state_desc.html#a7eac7ebb962fb68b902f60a2e223d30d',1,'Diligent::DepthStencilStateDesc']]], + ['devicecaps',['DeviceCaps',['../struct_diligent_1_1_device_caps.html#a391b39a34d996b7a368a6255ae8923d2',1,'Diligent::DeviceCaps']]], + ['devicecontextbase',['DeviceContextBase',['../class_diligent_1_1_device_context_base.html#af7c00ecd106d7f1f54cbd12d1d1650ff',1,'Diligent::DeviceContextBase']]], + ['deviceobjectattribs',['DeviceObjectAttribs',['../struct_diligent_1_1_device_object_attribs.html#a579fff821d8252cf66fd6bcb4429efad',1,'Diligent::DeviceObjectAttribs']]], + ['deviceobjectbase',['DeviceObjectBase',['../class_diligent_1_1_device_object_base.html#a523ebe1047ebd39a94fbadf711834c92',1,'Diligent::DeviceObjectBase']]], + ['dispatchcompute',['DispatchCompute',['../class_diligent_1_1_device_context_d3_d11_impl.html#a0ab7354311291001bec3006c3e423ab4',1,'Diligent::DeviceContextD3D11Impl::DispatchCompute()'],['../class_diligent_1_1_device_context_g_l_impl.html#a54a1cb24ffff742d860f689697b81d02',1,'Diligent::DeviceContextGLImpl::DispatchCompute()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#acd2f0f0df4fbb30c1fd30f674e602515',1,'Diligent::DeviceContextD3D12Impl::DispatchCompute()'],['../class_diligent_1_1_i_device_context.html#aee2248061c09acad37df71b0edf75aa1',1,'Diligent::IDeviceContext::DispatchCompute()']]], + ['dispatchcomputeattribs',['DispatchComputeAttribs',['../struct_diligent_1_1_dispatch_compute_attribs.html#a0715c7607a8b2b10cf8bbb13161c1b24',1,'Diligent::DispatchComputeAttribs::DispatchComputeAttribs(Uint32 GroupsX=1, Uint32 GroupsY=1, Uint32 GroupsZ=1)'],['../struct_diligent_1_1_dispatch_compute_attribs.html#ad7115af02bba790ba14b1425e430e658',1,'Diligent::DispatchComputeAttribs::DispatchComputeAttribs(IBuffer *pDispatchAttribs, Uint32 Offset=0)']]], + ['draw',['Draw',['../class_diligent_1_1_device_context_d3_d11_impl.html#a5f369996a8f2ea086a825e00dd1b4a66',1,'Diligent::DeviceContextD3D11Impl::Draw()'],['../class_diligent_1_1_device_context_g_l_impl.html#a35040adde618247064ffc313a358b582',1,'Diligent::DeviceContextGLImpl::Draw()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#a60d37500fe1682ce3461b4e7142fbb47',1,'Diligent::DeviceContextD3D12Impl::Draw()'],['../class_diligent_1_1_i_device_context.html#a576a47689833f33ba34495f07074fd2a',1,'Diligent::IDeviceContext::Draw()']]], + ['drawattribs',['DrawAttribs',['../struct_diligent_1_1_draw_attribs.html#ac3a0d636a0ab79514061ee47a526f9de',1,'Diligent::DrawAttribs']]] +]; diff --git a/doc/html/search/functions_4.html b/doc/html/search/functions_4.html new file mode 100644 index 00000000..c5bf87a4 --- /dev/null +++ b/doc/html/search/functions_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_4.js b/doc/html/search/functions_4.js new file mode 100644 index 00000000..b9a18b7e --- /dev/null +++ b/doc/html/search/functions_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['executecommandlist',['ExecuteCommandList',['../class_diligent_1_1_device_context_d3_d11_impl.html#a6ff0d691eca9b6c70a7994d3bac49702',1,'Diligent::DeviceContextD3D11Impl::ExecuteCommandList()'],['../class_diligent_1_1_device_context_g_l_impl.html#a9da213c8dc16f80f21ca66f4843340bc',1,'Diligent::DeviceContextGLImpl::ExecuteCommandList()'],['../class_diligent_1_1_command_queue_d3_d12_impl.html#a249c30685a6308f587c5a5dcb3317890',1,'Diligent::CommandQueueD3D12Impl::ExecuteCommandList()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#ab0e3e7ec3c7ff575a9773288389d6c7b',1,'Diligent::DeviceContextD3D12Impl::ExecuteCommandList()'],['../class_diligent_1_1_i_command_queue_d3_d12.html#a19ecae695f1e1f160bb17fccbda4f972',1,'Diligent::ICommandQueueD3D12::ExecuteCommandList()'],['../class_diligent_1_1_i_device_context.html#ae76004ff8d4acebdcbccca079bd5eafb',1,'Diligent::IDeviceContext::ExecuteCommandList()']]] +]; diff --git a/doc/html/search/functions_5.html b/doc/html/search/functions_5.html new file mode 100644 index 00000000..a34446ce --- /dev/null +++ b/doc/html/search/functions_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_5.js b/doc/html/search/functions_5.js new file mode 100644 index 00000000..96910d96 --- /dev/null +++ b/doc/html/search/functions_5.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['find',['Find',['../class_diligent_1_1_state_objects_registry.html#a6643d764bfcb0bc4314a4d4f227dc4a2',1,'Diligent::StateObjectsRegistry']]], + ['finishcommandlist',['FinishCommandList',['../class_diligent_1_1_device_context_d3_d11_impl.html#a0e1ff0f0f25a94bcac5848281e17ae17',1,'Diligent::DeviceContextD3D11Impl::FinishCommandList()'],['../class_diligent_1_1_device_context_g_l_impl.html#a38612e7fcab39ecd04375aa02287e4fc',1,'Diligent::DeviceContextGLImpl::FinishCommandList()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#a7a9ac2c49410dc0310c585720db3e95a',1,'Diligent::DeviceContextD3D12Impl::FinishCommandList()'],['../class_diligent_1_1_i_device_context.html#abd6004b19e22bc714cedcd4255665cd0',1,'Diligent::IDeviceContext::FinishCommandList()']]], + ['finishframe',['FinishFrame',['../class_diligent_1_1_i_render_device_d3_d12.html#a893bb519df45e870a1e8fcfb1fa47131',1,'Diligent::IRenderDeviceD3D12']]], + ['flush',['Flush',['../class_diligent_1_1_device_context_d3_d11_impl.html#ac93002b69130999931670f9612304aa0',1,'Diligent::DeviceContextD3D11Impl::Flush()'],['../class_diligent_1_1_device_context_g_l_impl.html#a7472b84061b6197b0358e4c8a59dcb11',1,'Diligent::DeviceContextGLImpl::Flush()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#aa1b8e7977e26094b79cf365a4e3c228b',1,'Diligent::DeviceContextD3D12Impl::Flush()'],['../class_diligent_1_1_i_device_context.html#a1e57993497faadb4b3d166bc75718412',1,'Diligent::IDeviceContext::Flush()']]], + ['free',['Free',['../class_diligent_1_1_fixed_block_memory_allocator.html#a88b30af4317f6a0cdb305f4a5d942f2b',1,'Diligent::FixedBlockMemoryAllocator']]] +]; diff --git a/doc/html/search/functions_6.html b/doc/html/search/functions_6.html new file mode 100644 index 00000000..6fd4b1f3 --- /dev/null +++ b/doc/html/search/functions_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_6.js b/doc/html/search/functions_6.js new file mode 100644 index 00000000..fe569fe5 --- /dev/null +++ b/doc/html/search/functions_6.js @@ -0,0 +1,61 @@ +var searchData= +[ + ['generatemips',['GenerateMips',['../class_diligent_1_1_texture_view_d3_d11_impl.html#a7f4cb4bdb363ec7ba45d436955b502b5',1,'Diligent::TextureViewD3D11Impl::GenerateMips()'],['../class_diligent_1_1_texture_view_g_l_impl.html#ae07084e8ea01dc8d49dd79738fc79e36',1,'Diligent::TextureViewGLImpl::GenerateMips()'],['../class_diligent_1_1_texture_view_d3_d12_impl.html#a621b502c83253d842918f5723854be78',1,'Diligent::TextureViewD3D12Impl::GenerateMips()'],['../class_diligent_1_1_i_texture_view.html#a9a54c5ad28e3ee53f923ee81c3e984a0',1,'Diligent::ITextureView::GenerateMips()']]], + ['getbindtarget',['GetBindTarget',['../class_diligent_1_1_texture_base_g_l.html#a966d0dd2dd0110a2059e88c2dad9aee5',1,'Diligent::TextureBaseGL::GetBindTarget()'],['../class_diligent_1_1_i_texture_g_l.html#a5d55833355abe3fc4cc802893ab41115',1,'Diligent::ITextureGL::GetBindTarget()']]], + ['getbuffer',['GetBuffer',['../class_diligent_1_1_buffer_view_base.html#a4e5e418edc518b72f448a256fce14361',1,'Diligent::BufferViewBase::GetBuffer()'],['../class_diligent_1_1_i_buffer_view.html#afbefc226d6dfdab0369e465dc04a5832',1,'Diligent::IBufferView::GetBuffer()']]], + ['getcompletedfencevalue',['GetCompletedFenceValue',['../class_diligent_1_1_command_queue_d3_d12_impl.html#a8ea4953f59a1b70108c4e033fa197a0e',1,'Diligent::CommandQueueD3D12Impl::GetCompletedFenceValue()'],['../class_diligent_1_1_i_command_queue_d3_d12.html#a4acb25ab54d5105af8f1805812957d27',1,'Diligent::ICommandQueueD3D12::GetCompletedFenceValue()']]], + ['getcpudescriptorhandle',['GetCPUDescriptorHandle',['../class_diligent_1_1_buffer_view_d3_d12_impl.html#a1afb7e1acf7138ec49d113aea88b18a5',1,'Diligent::BufferViewD3D12Impl::GetCPUDescriptorHandle()'],['../class_diligent_1_1_sampler_d3_d12_impl.html#a4f535e5053330f7030523f2e85bf5e65',1,'Diligent::SamplerD3D12Impl::GetCPUDescriptorHandle()'],['../class_diligent_1_1_texture_view_d3_d12_impl.html#ae3b7acd8ba5c2cd59b1b3433989a952c',1,'Diligent::TextureViewD3D12Impl::GetCPUDescriptorHandle()'],['../class_diligent_1_1_i_buffer_view_d3_d12.html#a11474ce1f6a0d33f62fbb005d7214bea',1,'Diligent::IBufferViewD3D12::GetCPUDescriptorHandle()'],['../class_diligent_1_1_i_sampler_d3_d12.html#a8f84ff506887f9a81b1332e6020b2b92',1,'Diligent::ISamplerD3D12::GetCPUDescriptorHandle()'],['../class_diligent_1_1_i_texture_view_d3_d12.html#a4ea879ed8f5ec9ad92cd5a0fcc0f62d7',1,'Diligent::ITextureViewD3D12::GetCPUDescriptorHandle()']]], + ['getcurrentbackbufferrtv',['GetCurrentBackBufferRTV',['../class_diligent_1_1_swap_chain_d3_d12_impl.html#a89d8ff966e12a7cc8deab53c8f9d5b73',1,'Diligent::SwapChainD3D12Impl::GetCurrentBackBufferRTV()'],['../class_diligent_1_1_i_swap_chain_d3_d12.html#aad6957dcade829f2388854844e9f7926',1,'Diligent::ISwapChainD3D12::GetCurrentBackBufferRTV()']]], + ['getd3d11blendstate',['GetD3D11BlendState',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#a6df29e1fec4bf908d858d7cfbf0aa36d',1,'Diligent::PipelineStateD3D11Impl::GetD3D11BlendState()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#a03914b983206cad1d9ffbc3fe90c7989',1,'Diligent::IPipelineStateD3D11::GetD3D11BlendState()']]], + ['getd3d11buffer',['GetD3D11Buffer',['../class_diligent_1_1_buffer_d3_d11_impl.html#ac026d9d84f69c56110b42b4a9e9428f6',1,'Diligent::BufferD3D11Impl::GetD3D11Buffer()'],['../class_diligent_1_1_i_buffer_d3_d11.html#a6d6191d4dfb4bca11e686e45d0fdab10',1,'Diligent::IBufferD3D11::GetD3D11Buffer()']]], + ['getd3d11computeshader',['GetD3D11ComputeShader',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#af0f01462446e3f23aca49904458b4bad',1,'Diligent::PipelineStateD3D11Impl::GetD3D11ComputeShader()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#ac863591fe920e226840e699057c0442c',1,'Diligent::IPipelineStateD3D11::GetD3D11ComputeShader()']]], + ['getd3d11depthstencilstate',['GetD3D11DepthStencilState',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#aef97ddf86eee72e03245321d3b203258',1,'Diligent::PipelineStateD3D11Impl::GetD3D11DepthStencilState()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#acc1542437873ce8a215825bbfcf59574',1,'Diligent::IPipelineStateD3D11::GetD3D11DepthStencilState()']]], + ['getd3d11device',['GetD3D11Device',['../class_diligent_1_1_i_render_device_d3_d11.html#a69d8ff7d7fe682be14264efce997bd50',1,'Diligent::IRenderDeviceD3D11']]], + ['getd3d11devicecontext',['GetD3D11DeviceContext',['../class_diligent_1_1_device_context_d3_d11_impl.html#a7a4893c7d2b02864121a803969d54956',1,'Diligent::DeviceContextD3D11Impl::GetD3D11DeviceContext()'],['../class_diligent_1_1_i_device_context_d3_d11.html#ace085a323a2fba05661212b424288962',1,'Diligent::IDeviceContextD3D11::GetD3D11DeviceContext()']]], + ['getd3d11domainshader',['GetD3D11DomainShader',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#ab7826f5dc1b510c7285e02042542913f',1,'Diligent::PipelineStateD3D11Impl::GetD3D11DomainShader()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#ab18f28189e255fc59fa080809d25417d',1,'Diligent::IPipelineStateD3D11::GetD3D11DomainShader()']]], + ['getd3d11geometryshader',['GetD3D11GeometryShader',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#a2afdb86a96525af3c827ef4b5ed6c2b1',1,'Diligent::PipelineStateD3D11Impl::GetD3D11GeometryShader()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#a96adf695b5e0a5a1830c4b043e603db4',1,'Diligent::IPipelineStateD3D11::GetD3D11GeometryShader()']]], + ['getd3d11hullshader',['GetD3D11HullShader',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#a3ce9a4f0f421421448d8a9c0a15fe183',1,'Diligent::PipelineStateD3D11Impl::GetD3D11HullShader()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#ab5b55de97ddb78146bccbeb16107276a',1,'Diligent::IPipelineStateD3D11::GetD3D11HullShader()']]], + ['getd3d11inputlayout',['GetD3D11InputLayout',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#a1735873b92d8f398437d4a1af55df98f',1,'Diligent::PipelineStateD3D11Impl::GetD3D11InputLayout()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#afe166b49b73df0741e258cfb57bb59f3',1,'Diligent::IPipelineStateD3D11::GetD3D11InputLayout()']]], + ['getd3d11pixelshader',['GetD3D11PixelShader',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#a9315cb9cdcdf87d2a4d482847b3adaac',1,'Diligent::PipelineStateD3D11Impl::GetD3D11PixelShader()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#a1e40b46d555f5fab691f094c362ec8ae',1,'Diligent::IPipelineStateD3D11::GetD3D11PixelShader()']]], + ['getd3d11rasterizerstate',['GetD3D11RasterizerState',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#a02aad253fbd57d902bc28b138d69b8c7',1,'Diligent::PipelineStateD3D11Impl::GetD3D11RasterizerState()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#a18b05eded32311719512a503137d7eef',1,'Diligent::IPipelineStateD3D11::GetD3D11RasterizerState()']]], + ['getd3d11samplerstate',['GetD3D11SamplerState',['../class_diligent_1_1_sampler_d3_d11_impl.html#addc99d4fe70241e90f4f852659be9828',1,'Diligent::SamplerD3D11Impl::GetD3D11SamplerState()'],['../class_diligent_1_1_i_sampler_d3_d11.html#a4f7b5e0793bf488c51135cdecd62718d',1,'Diligent::ISamplerD3D11::GetD3D11SamplerState()']]], + ['getd3d11shader',['GetD3D11Shader',['../class_diligent_1_1_shader_d3_d11_impl.html#a429a1560f416ca65f09748e4ef7fa887',1,'Diligent::ShaderD3D11Impl::GetD3D11Shader()'],['../class_diligent_1_1_i_shader_d3_d11.html#abfcdd672f89e4b1a783f4495e461da60',1,'Diligent::IShaderD3D11::GetD3D11Shader()']]], + ['getd3d11texture',['GetD3D11Texture',['../class_diligent_1_1_texture_base_d3_d11.html#afb680998c917c0311d6d495f99ab109a',1,'Diligent::TextureBaseD3D11::GetD3D11Texture()'],['../class_diligent_1_1_i_texture_d3_d11.html#adf1796931d51c7495e596050e7b74c58',1,'Diligent::ITextureD3D11::GetD3D11Texture()']]], + ['getd3d11vertexshader',['GetD3D11VertexShader',['../class_diligent_1_1_pipeline_state_d3_d11_impl.html#a6be0ba4e66ccf28590e35cd7d18925d9',1,'Diligent::PipelineStateD3D11Impl::GetD3D11VertexShader()'],['../class_diligent_1_1_i_pipeline_state_d3_d11.html#aa33d69c253d3d77d8af8bc6ca5a868f6',1,'Diligent::IPipelineStateD3D11::GetD3D11VertexShader()']]], + ['getd3d11view',['GetD3D11View',['../class_diligent_1_1_buffer_view_d3_d11_impl.html#a71c339867d2edf58baa2c6bd80afce2c',1,'Diligent::BufferViewD3D11Impl::GetD3D11View()'],['../class_diligent_1_1_texture_view_d3_d11_impl.html#aa970773cab28d03b5cf15209b3eb140e',1,'Diligent::TextureViewD3D11Impl::GetD3D11View()'],['../class_diligent_1_1_i_buffer_view_d3_d11.html#a50f76fdf2c8139ec6db2623a91053a50',1,'Diligent::IBufferViewD3D11::GetD3D11View()'],['../class_diligent_1_1_i_texture_view_d3_d11.html#ae89ec2fb81d4c75139fccb0efd9b930a',1,'Diligent::ITextureViewD3D11::GetD3D11View()']]], + ['getd3d12buffer',['GetD3D12Buffer',['../class_diligent_1_1_buffer_d3_d12_impl.html#af4784a3d597ca9e6e0da4dd6f86532a3',1,'Diligent::BufferD3D12Impl::GetD3D12Buffer()'],['../class_diligent_1_1_i_buffer_d3_d12.html#ab72ec95da670a47d5e973cef765d8c13',1,'Diligent::IBufferD3D12::GetD3D12Buffer()']]], + ['getd3d12commandqueue',['GetD3D12CommandQueue',['../class_diligent_1_1_command_queue_d3_d12_impl.html#a2fbc0241cf97639ae136df2d4369e113',1,'Diligent::CommandQueueD3D12Impl::GetD3D12CommandQueue()'],['../class_diligent_1_1_i_command_queue_d3_d12.html#a39d8d8b4a98d0ebfc3050e9fa89c8c71',1,'Diligent::ICommandQueueD3D12::GetD3D12CommandQueue()']]], + ['getd3d12device',['GetD3D12Device',['../class_diligent_1_1_i_render_device_d3_d12.html#a5ecde6683f3c1e1971be88a9fcb0153d',1,'Diligent::IRenderDeviceD3D12']]], + ['getd3d12pipelinestate',['GetD3D12PipelineState',['../class_diligent_1_1_pipeline_state_d3_d12_impl.html#a32a0d2074411a1b761105047edb4a664',1,'Diligent::PipelineStateD3D12Impl::GetD3D12PipelineState()'],['../class_diligent_1_1_i_pipeline_state_d3_d12.html#ae40fb301da3c8dc1a48e7d32e3e8ffd7',1,'Diligent::IPipelineStateD3D12::GetD3D12PipelineState()']]], + ['getd3d12rootsignature',['GetD3D12RootSignature',['../class_diligent_1_1_pipeline_state_d3_d12_impl.html#a36c5b54e1750182c185fff98deac0efa',1,'Diligent::PipelineStateD3D12Impl::GetD3D12RootSignature()'],['../class_diligent_1_1_i_pipeline_state_d3_d12.html#a4020f566e718c9300c5963b4b82a10b7',1,'Diligent::IPipelineStateD3D12::GetD3D12RootSignature()']]], + ['getd3d12texture',['GetD3D12Texture',['../class_diligent_1_1_texture_d3_d12_impl.html#aa86ba650c3fecbba2a92a2d042bbdd8c',1,'Diligent::TextureD3D12Impl::GetD3D12Texture()'],['../class_diligent_1_1_i_texture_d3_d12.html#af922342877487c6e750e29f783cd11e5',1,'Diligent::ITextureD3D12::GetD3D12Texture()']]], + ['getdataptr',['GetDataPtr',['../class_diligent_1_1_data_blob_impl.html#a9b7efb629349251c069be80ba7270d3e',1,'Diligent::DataBlobImpl::GetDataPtr()'],['../class_diligent_1_1_string_data_blob_impl.html#a3b2379701e8317c99b814dad85d69077',1,'Diligent::StringDataBlobImpl::GetDataPtr()']]], + ['getdefaultview',['GetDefaultView',['../class_diligent_1_1_buffer_base.html#a5a63d5d9b3ee50aa33bbfd48204f0108',1,'Diligent::BufferBase::GetDefaultView()'],['../class_diligent_1_1_texture_base.html#a5fa5b07276e371a99eeb077ce62c06fc',1,'Diligent::TextureBase::GetDefaultView()'],['../class_diligent_1_1_i_buffer.html#ac858cc8ed157efaecb34648a447bafa7',1,'Diligent::IBuffer::GetDefaultView()'],['../class_diligent_1_1_i_texture.html#a9ba5c3ebe17f0a196b22295b611d168f',1,'Diligent::ITexture::GetDefaultView()']]], + ['getdepthbufferdsv',['GetDepthBufferDSV',['../class_diligent_1_1_swap_chain_d3_d12_impl.html#a94690b3c57829d90237bdc7de3916c09',1,'Diligent::SwapChainD3D12Impl::GetDepthBufferDSV()'],['../class_diligent_1_1_i_swap_chain_d3_d12.html#a4be4c4e747d60105dfb092a3321609aa',1,'Diligent::ISwapChainD3D12::GetDepthBufferDSV()']]], + ['getdesc',['GetDesc',['../class_diligent_1_1_swap_chain_base.html#a5e2c49ff4e687fa21fbb69c1b03d1e24',1,'Diligent::SwapChainBase::GetDesc()'],['../class_diligent_1_1_i_buffer.html#a7c88d0d7059bea7d530e112579cef1e2',1,'Diligent::IBuffer::GetDesc()'],['../class_diligent_1_1_i_buffer_view.html#a887ef2a08807fdb570f7a55ef3429825',1,'Diligent::IBufferView::GetDesc()'],['../class_diligent_1_1_i_device_object.html#ad881ca8984a57201f5d8febda7811948',1,'Diligent::IDeviceObject::GetDesc()'],['../class_diligent_1_1_i_pipeline_state.html#a7807cc8508d41b81fc2a580e7e53fbcb',1,'Diligent::IPipelineState::GetDesc()'],['../class_diligent_1_1_i_sampler.html#a1bfd5f947448b739ea28d757a2de9727',1,'Diligent::ISampler::GetDesc()'],['../class_diligent_1_1_i_shader.html#a4bd05dd784c6881c7f80e68df675f5e8',1,'Diligent::IShader::GetDesc()'],['../class_diligent_1_1_i_swap_chain.html#ab52c1742b2132aec905ab49a321e0b23',1,'Diligent::ISwapChain::GetDesc()'],['../class_diligent_1_1_i_texture.html#af98b320201b52d87b4c3e280a93d5e97',1,'Diligent::ITexture::GetDesc()'],['../class_diligent_1_1_i_texture_view.html#adf0698c6f29b61d6bcaffb5537e08bee',1,'Diligent::ITextureView::GetDesc()']]], + ['getdevice',['GetDevice',['../class_diligent_1_1_device_context_base.html#a20acb05b7312e1c038fffb10f0db541f',1,'Diligent::DeviceContextBase']]], + ['getdevicecaps',['GetDeviceCaps',['../class_diligent_1_1_render_device_base.html#a548efca4d6b74dae066d592a193a1169',1,'Diligent::RenderDeviceBase::GetDeviceCaps()'],['../class_diligent_1_1_i_render_device.html#a9ec6a527f7fca1e86c53f1b90e847ae2',1,'Diligent::IRenderDevice::GetDeviceCaps()']]], + ['getdsv',['GetDSV',['../class_diligent_1_1_swap_chain_d3_d11_impl.html#a5f206a17d241c1cbc3fc925a03d0dfc7',1,'Diligent::SwapChainD3D11Impl::GetDSV()'],['../class_diligent_1_1_i_swap_chain_d3_d11.html#aa15564484ae0f7c5191546687b87c3c2',1,'Diligent::ISwapChainD3D11::GetDSV()']]], + ['getdxgiswapchain',['GetDXGISwapChain',['../class_diligent_1_1_swap_chain_d3_d11_impl.html#ac0f6f26b649c88af28430c5197629176',1,'Diligent::SwapChainD3D11Impl::GetDXGISwapChain()'],['../class_diligent_1_1_i_swap_chain_d3_d11.html#af0e55b9dde1da1ab209439766b6de22b',1,'Diligent::ISwapChainD3D11::GetDXGISwapChain()'],['../class_diligent_1_1_swap_chain_d3_d12_impl.html#a5230d30e20acc005a17fcadb78dddb08',1,'Diligent::SwapChainD3D12Impl::GetDXGISwapChain()'],['../class_diligent_1_1_i_swap_chain_d3_d12.html#a75ac9652e62e8739d72ae2bd08bd2370',1,'Diligent::ISwapChainD3D12::GetDXGISwapChain()']]], + ['getglbufferhandle',['GetGLBufferHandle',['../class_diligent_1_1_buffer_g_l_impl.html#a22b80eebb5f8c8858ddc8c7d80085b2a',1,'Diligent::BufferGLImpl::GetGLBufferHandle()'],['../class_diligent_1_1_i_buffer_g_l.html#aeeeb583db75dcd00f9971ae03f8030d5',1,'Diligent::IBufferGL::GetGLBufferHandle()']]], + ['getgltexturehandle',['GetGLTextureHandle',['../class_diligent_1_1_texture_base_g_l.html#a2d74593340bf951750df5169ece8ff20',1,'Diligent::TextureBaseGL::GetGLTextureHandle()'],['../class_diligent_1_1_i_texture_g_l.html#a52de90ff7763df464ca38a78d4613629',1,'Diligent::ITextureGL::GetGLTextureHandle()']]], + ['getnativehandle',['GetNativeHandle',['../class_diligent_1_1_buffer_d3_d11_impl.html#a30d720ab9f8db17215ed1894c13943b0',1,'Diligent::BufferD3D11Impl::GetNativeHandle()'],['../class_diligent_1_1_texture_base_d3_d11.html#a1f2c2db637a93b0c5b07b7e01f0524f9',1,'Diligent::TextureBaseD3D11::GetNativeHandle()'],['../class_diligent_1_1_buffer_g_l_impl.html#ab335433ff0d1e55ca1ca916abcc90e5c',1,'Diligent::BufferGLImpl::GetNativeHandle()'],['../class_diligent_1_1_texture_base_g_l.html#a3f9de3628ca90e93a9c11142981dc840',1,'Diligent::TextureBaseGL::GetNativeHandle()'],['../class_diligent_1_1_buffer_d3_d12_impl.html#ab7bceac628b84b1375fb43180e33edf0',1,'Diligent::BufferD3D12Impl::GetNativeHandle()'],['../class_diligent_1_1_texture_d3_d12_impl.html#a610e841d55f450885431a1b0947edaf8',1,'Diligent::TextureD3D12Impl::GetNativeHandle()'],['../class_diligent_1_1_i_buffer.html#ac733f2223d82d4679d001d91235bc806',1,'Diligent::IBuffer::GetNativeHandle()'],['../class_diligent_1_1_i_texture.html#a6242160413bfb2962ecb5127dd66af77',1,'Diligent::ITexture::GetNativeHandle()']]], + ['getnextfencevalue',['GetNextFenceValue',['../class_diligent_1_1_command_queue_d3_d12_impl.html#a91523073b202a34b9192ff7487d81c95',1,'Diligent::CommandQueueD3D12Impl::GetNextFenceValue()'],['../class_diligent_1_1_i_command_queue_d3_d12.html#adda584f2430a53520af4c8b934e5c407',1,'Diligent::ICommandQueueD3D12::GetNextFenceValue()'],['../class_diligent_1_1_i_render_device_d3_d12.html#aa1bd3115f20daa537a1bdcb8b67e72bf',1,'Diligent::IRenderDeviceD3D12::GetNextFenceValue()']]], + ['getnumdeferredcontexts',['GetNumDeferredContexts',['../class_diligent_1_1_render_device_base.html#a71bf62b6b4fd94cdaa457c1bedc70958',1,'Diligent::RenderDeviceBase']]], + ['getpipelinestate',['GetPipelineState',['../class_diligent_1_1_device_context_base.html#a3dcdfd7d15966142ad2fff187ad791ab',1,'Diligent::DeviceContextBase::GetPipelineState()'],['../class_diligent_1_1_shader_resource_binding_base.html#ad65789a093a9c600c91710698fc0fdd6',1,'Diligent::ShaderResourceBindingBase::GetPipelineState()'],['../class_diligent_1_1_i_shader_resource_binding.html#ac62372c7b929d065ebc3f73e12c545ea',1,'Diligent::IShaderResourceBinding::GetPipelineState()']]], + ['getrawallocator',['GetRawAllocator',['../namespace_diligent.html#aef792a75d6b4771705fb4ed083428dc8',1,'Diligent']]], + ['getrendertargets',['GetRenderTargets',['../class_diligent_1_1_device_context_base.html#a705e2493b7a829da571d3ccf01a33fe2',1,'Diligent::DeviceContextBase']]], + ['getrendertargetsize',['GetRenderTargetSize',['../class_diligent_1_1_device_context_base.html#a84494604d0f3b7c84abf548509bf6b32',1,'Diligent::DeviceContextBase']]], + ['getresource',['GetResource',['../class_diligent_1_1_resource_mapping_impl.html#ac165e83d618f1dac9b1ebf4d59101d62',1,'Diligent::ResourceMappingImpl::GetResource()'],['../class_diligent_1_1_i_resource_mapping.html#ad6c3c3a143fbf01ce135ac9130ba7d61',1,'Diligent::IResourceMapping::GetResource()']]], + ['getrtv',['GetRTV',['../class_diligent_1_1_swap_chain_d3_d11_impl.html#a5028b6516e417053ba1b2e794a9cda2b',1,'Diligent::SwapChainD3D11Impl::GetRTV()'],['../class_diligent_1_1_i_swap_chain_d3_d11.html#ab57aacde93605c468cf8a14287bdf0f7',1,'Diligent::ISwapChainD3D11::GetRTV()']]], + ['getsampler',['GetSampler',['../class_diligent_1_1_texture_view_base.html#a3cfb65a9bfbccb84a3005aaa1edcf50f',1,'Diligent::TextureViewBase::GetSampler()'],['../class_diligent_1_1_i_texture_view.html#a33e3d0194be2cb2ac7a100d24ddafd35',1,'Diligent::ITextureView::GetSampler()']]], + ['getshadervariable',['GetShaderVariable',['../class_diligent_1_1_shader_d3_d11_impl.html#a0751ea45f162db3a99e13550056e5232',1,'Diligent::ShaderD3D11Impl::GetShaderVariable()'],['../class_diligent_1_1_shader_g_l_impl.html#ab870e3303471b852a0ddd3ed72be881e',1,'Diligent::ShaderGLImpl::GetShaderVariable()'],['../class_diligent_1_1_shader_d3_d12_impl.html#acaa2359a4d4b3c5bac5c418477acc6c5',1,'Diligent::ShaderD3D12Impl::GetShaderVariable()'],['../class_diligent_1_1_i_shader.html#ad3e51fa57cd1db70da2bc07773c1fdea',1,'Diligent::IShader::GetShaderVariable()']]], + ['getsize',['GetSize',['../class_diligent_1_1_data_blob_impl.html#a25783f78326dc09b2df27659a843d45f',1,'Diligent::DataBlobImpl::GetSize()'],['../class_diligent_1_1_string_data_blob_impl.html#a5c0075a45d1e17559b6194bf4bd756b9',1,'Diligent::StringDataBlobImpl::GetSize()'],['../class_diligent_1_1_resource_mapping_impl.html#afd919d655c3e00f4cb8064f6a5e8ae29',1,'Diligent::ResourceMappingImpl::GetSize()'],['../class_diligent_1_1_i_resource_mapping.html#a7729bb877a951908260978f8646fab4c',1,'Diligent::IResourceMapping::GetSize()']]], + ['getswapchain',['GetSwapChain',['../class_diligent_1_1_device_context_base.html#aa5d5e7fcbe239671373c95d324137ac8',1,'Diligent::DeviceContextBase']]], + ['gettexture',['GetTexture',['../class_diligent_1_1_texture_view_base.html#a61cc6594bfa7e4481ca159501f38bbca',1,'Diligent::TextureViewBase::GetTexture()'],['../class_diligent_1_1_i_texture_view.html#a5af346f3e31c7371060926e8d678fa47',1,'Diligent::ITextureView::GetTexture()']]], + ['gettextureformatinfo',['GetTextureFormatInfo',['../class_diligent_1_1_render_device_base.html#a3011f3972126101a2845cf1f05444d1e',1,'Diligent::RenderDeviceBase::GetTextureFormatInfo()'],['../class_diligent_1_1_i_render_device.html#ac7af1044d7f648a2483a9d0d0b497eec',1,'Diligent::IRenderDevice::GetTextureFormatInfo()']]], + ['gettextureformatinfoext',['GetTextureFormatInfoExt',['../class_diligent_1_1_render_device_base.html#a80112a1f01f47870ab1bd06e918ec753',1,'Diligent::RenderDeviceBase::GetTextureFormatInfoExt()'],['../class_diligent_1_1_i_render_device.html#a279386f22ed18238af8625d7b17f9efc',1,'Diligent::IRenderDevice::GetTextureFormatInfoExt()']]], + ['getuniqueid',['GetUniqueID',['../class_diligent_1_1_device_object_base.html#aafd0debde4434c1de91f18ad600373d2',1,'Diligent::DeviceObjectBase']]], + ['getvariable',['GetVariable',['../class_diligent_1_1_shader_resource_binding_d3_d11_impl.html#a4037df9b6e202393d80d9e619a9573e8',1,'Diligent::ShaderResourceBindingD3D11Impl::GetVariable()'],['../class_diligent_1_1_shader_resource_binding_g_l_impl.html#a74fbb80b2a3c7159d7382990a3bba47c',1,'Diligent::ShaderResourceBindingGLImpl::GetVariable()'],['../class_diligent_1_1_shader_resource_binding_d3_d12_impl.html#a65e999c2855afe4d4cb5441a6e112f93',1,'Diligent::ShaderResourceBindingD3D12Impl::GetVariable()'],['../class_diligent_1_1_i_shader_resource_binding.html#a618057fbf9b67670bd3107e1d9127a90',1,'Diligent::IShaderResourceBinding::GetVariable()']]], + ['getviewports',['GetViewports',['../class_diligent_1_1_device_context_base.html#a0e811225adb198a1a5fa6a6ffc7c9fb2',1,'Diligent::DeviceContextBase']]] +]; diff --git a/doc/html/search/functions_7.html b/doc/html/search/functions_7.html new file mode 100644 index 00000000..6e09abf1 --- /dev/null +++ b/doc/html/search/functions_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_7.js b/doc/html/search/functions_7.js new file mode 100644 index 00000000..dfc73468 --- /dev/null +++ b/doc/html/search/functions_7.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['idlegpu',['IdleGPU',['../class_diligent_1_1_command_queue_d3_d12_impl.html#a90f87e462c3f8cd7a5c9745271650bbc',1,'Diligent::CommandQueueD3D12Impl::IdleGPU()'],['../class_diligent_1_1_i_command_queue_d3_d12.html#a600037967c7c1d24480accc4b7ba999b',1,'Diligent::ICommandQueueD3D12::IdleGPU()']]], + ['invalidatestate',['InvalidateState',['../class_diligent_1_1_device_context_d3_d11_impl.html#a68d73ef2e9c725cefe31b9ac5dafd1ea',1,'Diligent::DeviceContextD3D11Impl::InvalidateState()'],['../class_diligent_1_1_device_context_g_l_impl.html#a6283cc1c6ab1d1ebb9d0e2b3431729ca',1,'Diligent::DeviceContextGLImpl::InvalidateState()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#adf347827ef3eaca3277783795648ddb8',1,'Diligent::DeviceContextD3D12Impl::InvalidateState()'],['../class_diligent_1_1_i_device_context.html#a5c0ab2630bf24514f2de851d1aaef1ab',1,'Diligent::IDeviceContext::InvalidateState()']]], + ['isdefaultfbbound',['IsDefaultFBBound',['../class_diligent_1_1_device_context_base.html#ad481b1a3c896399271cebbc1de487823',1,'Diligent::DeviceContextBase']]], + ['isfencesignaled',['IsFenceSignaled',['../class_diligent_1_1_i_render_device_d3_d12.html#a97b891ad75062162ef1e7013824d4eab',1,'Diligent::IRenderDeviceD3D12']]], + ['isvalid',['IsValid',['../class_diligent_1_1_ref_cnt_weak_ptr.html#a24085839a52ca922022a48f54e22f57f',1,'Diligent::RefCntWeakPtr']]] +]; diff --git a/doc/html/search/functions_8.html b/doc/html/search/functions_8.html new file mode 100644 index 00000000..d59ea971 --- /dev/null +++ b/doc/html/search/functions_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_8.js b/doc/html/search/functions_8.js new file mode 100644 index 00000000..41e4bc58 --- /dev/null +++ b/doc/html/search/functions_8.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['layoutelement',['LayoutElement',['../struct_diligent_1_1_layout_element.html#ab26b2052508c0af9bc3020a466b95016',1,'Diligent::LayoutElement']]], + ['loadgraphicsengined3d11',['LoadGraphicsEngineD3D11',['../namespace_diligent.html#adfb2dafb678f595c8c1300cf53d14a15',1,'Diligent']]], + ['loadgraphicsengined3d12',['LoadGraphicsEngineD3D12',['../namespace_diligent.html#a8b3ac65ac7e5051a36f23aab198b7f26',1,'Diligent']]], + ['loadgraphicsengineopengl',['LoadGraphicsEngineOpenGL',['../namespace_diligent.html#a4102302b39db6902d51501d66e2fcfe6',1,'Diligent']]], + ['lock',['Lock',['../class_diligent_1_1_ref_cnt_weak_ptr.html#a39b29df7165190c63a48261e9fa2cd14',1,'Diligent::RefCntWeakPtr']]] +]; diff --git a/doc/html/search/functions_9.html b/doc/html/search/functions_9.html new file mode 100644 index 00000000..5ccec429 --- /dev/null +++ b/doc/html/search/functions_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_9.js b/doc/html/search/functions_9.js new file mode 100644 index 00000000..49a3cf72 --- /dev/null +++ b/doc/html/search/functions_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['map',['Map',['../class_diligent_1_1_buffer_d3_d11_impl.html#a5c77d5f307b1016aa9bbc3324caaa311',1,'Diligent::BufferD3D11Impl::Map()'],['../class_diligent_1_1_texture_base_d3_d11.html#aef90cfa2cb64f8478dc1e5da263a88ff',1,'Diligent::TextureBaseD3D11::Map()'],['../class_diligent_1_1_buffer_g_l_impl.html#a977490e09a76cc67cbc46ff9ca56f2e9',1,'Diligent::BufferGLImpl::Map()'],['../class_diligent_1_1_texture_base_g_l.html#a34a1a8a070f02497414b84322449d4b9',1,'Diligent::TextureBaseGL::Map()'],['../class_diligent_1_1_buffer_d3_d12_impl.html#a88f5c5e31ceaba1e8302415f9579fbd0',1,'Diligent::BufferD3D12Impl::Map()'],['../class_diligent_1_1_texture_d3_d12_impl.html#a7dfc1769e55ab8084ed0c61167964777',1,'Diligent::TextureD3D12Impl::Map()'],['../class_diligent_1_1_buffer_base.html#a138ba26c24c34b78ea4a0990b77fc14a',1,'Diligent::BufferBase::Map()'],['../class_diligent_1_1_texture_base.html#a9304ec9edb52c699cf958b51804fc532',1,'Diligent::TextureBase::Map()'],['../class_diligent_1_1_i_buffer.html#af7715744014ebca78a20fa9a92ddf9ae',1,'Diligent::IBuffer::Map()'],['../class_diligent_1_1_map_helper.html#a29122efd373088345e38593b72f00145',1,'Diligent::MapHelper::Map()'],['../class_diligent_1_1_i_texture.html#a3889d01df9f41ea6f07d6fb814ff466f',1,'Diligent::ITexture::Map()']]], + ['maphelper',['MapHelper',['../class_diligent_1_1_map_helper.html#a7efa028a961444e46cac1af58308878e',1,'Diligent::MapHelper::MapHelper()'],['../class_diligent_1_1_map_helper.html#a6bd2d032fc46a306e03bcaa09e07faf3',1,'Diligent::MapHelper::MapHelper(IDeviceContext *pContext, IBuffer *pBuffer, MAP_TYPE MapType, Uint32 MapFlags)'],['../class_diligent_1_1_map_helper.html#a05fa3d2538dacb300390d213ae2b1e40',1,'Diligent::MapHelper::MapHelper(MapHelper &&Helper)']]] +]; diff --git a/doc/html/search/functions_a.html b/doc/html/search/functions_a.html new file mode 100644 index 00000000..3958eb7b --- /dev/null +++ b/doc/html/search/functions_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_a.js b/doc/html/search/functions_a.js new file mode 100644 index 00000000..c7fec9c2 --- /dev/null +++ b/doc/html/search/functions_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['operator_20const_20datatype_20_2a',['operator const DataType *',['../class_diligent_1_1_map_helper.html#a336fde9123de98e6cef49e46b3416896',1,'Diligent::MapHelper']]], + ['operator_20datatype_20_2a',['operator DataType *',['../class_diligent_1_1_map_helper.html#ae6173cf9a43e72ec1f2d2cf3f6b56021',1,'Diligent::MapHelper']]], + ['operator_2d_3e',['operator->',['../class_diligent_1_1_map_helper.html#a9a03b852a44669d4f08aa12cc4fa4f7c',1,'Diligent::MapHelper::operator->()'],['../class_diligent_1_1_map_helper.html#a468bff3eea36a37271053ba0feb7cd49',1,'Diligent::MapHelper::operator->() const']]], + ['operator_3d',['operator=',['../class_diligent_1_1_map_helper.html#aa99d9b36bc35fe2c5d3f87f9fcab6571',1,'Diligent::MapHelper']]], + ['operator_3d_3d',['operator==',['../struct_diligent_1_1_render_target_blend_desc.html#ac397a773166c5bbe3c4156cf02d28df5',1,'Diligent::RenderTargetBlendDesc::operator==()'],['../struct_diligent_1_1_blend_state_desc.html#afa384964ca7075462619b724d53f710e',1,'Diligent::BlendStateDesc::operator==()'],['../struct_diligent_1_1_buffer_desc_1_1_buffer_format.html#ad605a62df9b246a10f5870f9e904b50e',1,'Diligent::BufferDesc::BufferFormat::operator==()'],['../struct_diligent_1_1_buffer_desc.html#a5e2319a1a627e82958d3b13343e62c46',1,'Diligent::BufferDesc::operator==()'],['../struct_diligent_1_1_buffer_view_desc.html#a80d03a4bc5440858b808ffc2d02d3d12',1,'Diligent::BufferViewDesc::operator==()'],['../struct_diligent_1_1_stencil_op_desc.html#a62169ecf07e45e9244bfe27c0caf3982',1,'Diligent::StencilOpDesc::operator==()'],['../struct_diligent_1_1_depth_stencil_state_desc.html#a0d676528673a25693499f031af7e2a50',1,'Diligent::DepthStencilStateDesc::operator==()'],['../struct_diligent_1_1_rasterizer_state_desc.html#ac4f37d73250fb4c82fd731ad991ae9ed',1,'Diligent::RasterizerStateDesc::operator==()'],['../struct_diligent_1_1_sampler_desc.html#ae8684fb685c5e6e6accc6dbbca52e26d',1,'Diligent::SamplerDesc::operator==()'],['../struct_diligent_1_1_texture_desc.html#ade268a186493a358acfc457741f1611e',1,'Diligent::TextureDesc::operator==()'],['../struct_diligent_1_1_texture_view_desc.html#afed385710847ac44fd0ec08d1334bc08',1,'Diligent::TextureViewDesc::operator==()']]] +]; diff --git a/doc/html/search/functions_b.html b/doc/html/search/functions_b.html new file mode 100644 index 00000000..b99b702d --- /dev/null +++ b/doc/html/search/functions_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_b.js b/doc/html/search/functions_b.js new file mode 100644 index 00000000..b8522d04 --- /dev/null +++ b/doc/html/search/functions_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['pipelinestatebase',['PipelineStateBase',['../class_diligent_1_1_pipeline_state_base.html#a1e862710d0fbc29755b3c7059dd7a570',1,'Diligent::PipelineStateBase']]], + ['present',['Present',['../class_diligent_1_1_swap_chain_d3_d11_impl.html#a184a546f820b13993ceeb38462207f26',1,'Diligent::SwapChainD3D11Impl::Present()'],['../class_diligent_1_1_swap_chain_g_l_impl.html#acb77b563ade60f92b38bbc29dfe49317',1,'Diligent::SwapChainGLImpl::Present()'],['../class_diligent_1_1_swap_chain_d3_d12_impl.html#a95bd81d5f0388819e4d53d1c69dcaf71',1,'Diligent::SwapChainD3D12Impl::Present()'],['../class_diligent_1_1_i_swap_chain.html#a58db3eb1439ca733cba6fb1bdd8447c0',1,'Diligent::ISwapChain::Present()']]], + ['purge',['Purge',['../class_diligent_1_1_state_objects_registry.html#ac4e68d1e015e2ad5941700b4d595a71a',1,'Diligent::StateObjectsRegistry']]] +]; diff --git a/doc/html/search/functions_c.html b/doc/html/search/functions_c.html new file mode 100644 index 00000000..3a33d874 --- /dev/null +++ b/doc/html/search/functions_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_c.js b/doc/html/search/functions_c.js new file mode 100644 index 00000000..b9ea0d15 --- /dev/null +++ b/doc/html/search/functions_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['queryinterface',['QueryInterface',['../class_diligent_1_1_buffer_d3_d11_impl.html#a1af9d84c737cae597ffef439e9840508',1,'Diligent::BufferD3D11Impl::QueryInterface()'],['../class_diligent_1_1_buffer_view_d3_d11_impl.html#a5a010417880df870c0cdfb01e0c6cbdc',1,'Diligent::BufferViewD3D11Impl::QueryInterface()'],['../class_diligent_1_1_device_context_d3_d11_impl.html#a7e7452e18ba0722adbec6664d4df094e',1,'Diligent::DeviceContextD3D11Impl::QueryInterface()'],['../class_diligent_1_1_sampler_d3_d11_impl.html#a288b876e2307d2d1dace7248fff024bf',1,'Diligent::SamplerD3D11Impl::QueryInterface()'],['../class_diligent_1_1_shader_d3_d11_impl.html#a20405a4386a02d45de3c9b84fd510fb3',1,'Diligent::ShaderD3D11Impl::QueryInterface()'],['../class_diligent_1_1_texture_base_d3_d11.html#a311d0bd5513e2f1c688d86c7383421a7',1,'Diligent::TextureBaseD3D11::QueryInterface()'],['../class_diligent_1_1_texture_view_d3_d11_impl.html#aef81bf0b6edd41ebbd98b382f5c80360',1,'Diligent::TextureViewD3D11Impl::QueryInterface()'],['../class_diligent_1_1_buffer_g_l_impl.html#a63eaa44c4730d09a494795b22bea0da6',1,'Diligent::BufferGLImpl::QueryInterface()'],['../class_diligent_1_1_buffer_view_g_l_impl.html#aafb66a0dec67dbce0316e47a140c6d75',1,'Diligent::BufferViewGLImpl::QueryInterface()'],['../class_diligent_1_1_device_context_g_l_impl.html#ae0adf77c4fa357673dbcf83e29497706',1,'Diligent::DeviceContextGLImpl::QueryInterface()'],['../class_diligent_1_1_pipeline_state_g_l_impl.html#add03e8cc624a0b5e30e7ecc343921df9',1,'Diligent::PipelineStateGLImpl::QueryInterface()'],['../class_diligent_1_1_sampler_g_l_impl.html#ad888f914793198afb6347eb416a832fc',1,'Diligent::SamplerGLImpl::QueryInterface()'],['../class_diligent_1_1_shader_g_l_impl.html#a734ec646a56520d6a375f29c6ea973f8',1,'Diligent::ShaderGLImpl::QueryInterface()'],['../class_diligent_1_1_texture_base_g_l.html#a6e0a428ffb29fc093f4bd97053632fee',1,'Diligent::TextureBaseGL::QueryInterface()'],['../class_diligent_1_1_texture_view_g_l_impl.html#a6f548d5aaea8818aca2907b91921aee4',1,'Diligent::TextureViewGLImpl::QueryInterface()'],['../class_diligent_1_1_buffer_d3_d12_impl.html#abd50d823e814256453b8a95f31e64947',1,'Diligent::BufferD3D12Impl::QueryInterface()'],['../class_diligent_1_1_buffer_view_d3_d12_impl.html#ae270b4462b5ff673a8a1abf4a7727166',1,'Diligent::BufferViewD3D12Impl::QueryInterface()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#ae248661db2fec30455a75547395b2014',1,'Diligent::DeviceContextD3D12Impl::QueryInterface()'],['../class_diligent_1_1_sampler_d3_d12_impl.html#a1d6be9611628ca7eaa48c83cb671a672',1,'Diligent::SamplerD3D12Impl::QueryInterface()'],['../class_diligent_1_1_texture_d3_d12_impl.html#a036fc5e08941a941dccbd0a339107482',1,'Diligent::TextureD3D12Impl::QueryInterface()'],['../class_diligent_1_1_texture_view_d3_d12_impl.html#af775420c4f093ff5d478403912eb9b93',1,'Diligent::TextureViewD3D12Impl::QueryInterface()'],['../class_diligent_1_1_resource_mapping_impl.html#a2659a974bccf43ba5c97ad2c34707c94',1,'Diligent::ResourceMappingImpl::QueryInterface()'],['../class_diligent_1_1_i_buffer.html#a25c1c634bbfb6338d13579e494e3d575',1,'Diligent::IBuffer::QueryInterface()'],['../class_diligent_1_1_i_buffer_view.html#ae5ca7e9a14b75d7f711a7bacaafb34b9',1,'Diligent::IBufferView::QueryInterface()'],['../class_diligent_1_1_i_device_context.html#a16e9b69846b67b17b2019bfe05d52793',1,'Diligent::IDeviceContext::QueryInterface()'],['../class_diligent_1_1_i_device_object.html#a9cfe050a29e23ceaed09572b6434a40d',1,'Diligent::IDeviceObject::QueryInterface()'],['../class_diligent_1_1_i_pipeline_state.html#a9e96684e976426af31a29c9ff6d10902',1,'Diligent::IPipelineState::QueryInterface()'],['../class_diligent_1_1_i_render_device.html#ac029e8f146c543a7fd9acabc13549b27',1,'Diligent::IRenderDevice::QueryInterface()'],['../class_diligent_1_1_i_resource_mapping.html#a0f3ac990caec67c9e02a3e0872763527',1,'Diligent::IResourceMapping::QueryInterface()'],['../class_diligent_1_1_i_sampler.html#a0a9bd69ab4d5ffa6cdb3a94b5b80b468',1,'Diligent::ISampler::QueryInterface()'],['../class_diligent_1_1_i_shader.html#a1927ad928f908db0d6f4f669202b90b2',1,'Diligent::IShader::QueryInterface()'],['../class_diligent_1_1_i_shader_resource_binding.html#a733aaed686db367caa9bbe86f62988c0',1,'Diligent::IShaderResourceBinding::QueryInterface()'],['../class_diligent_1_1_i_texture.html#a5e61c7d58d7c8a95c568dfeda661e496',1,'Diligent::ITexture::QueryInterface()'],['../class_diligent_1_1_i_texture_view.html#ac0ecf25c6a2c256d041941c101f7865a',1,'Diligent::ITextureView::QueryInterface()']]] +]; diff --git a/doc/html/search/functions_d.html b/doc/html/search/functions_d.html new file mode 100644 index 00000000..31b75b88 --- /dev/null +++ b/doc/html/search/functions_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_d.js b/doc/html/search/functions_d.js new file mode 100644 index 00000000..b08c24c3 --- /dev/null +++ b/doc/html/search/functions_d.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['rasterizerstatedesc',['RasterizerStateDesc',['../struct_diligent_1_1_rasterizer_state_desc.html#a2eeb4d6f52d0746c733bb86fa0cac9f8',1,'Diligent::RasterizerStateDesc']]], + ['read',['Read',['../class_diligent_1_1_basic_file_stream.html#af67151ca8818f96f64efb4e7167131eb',1,'Diligent::BasicFileStream::Read(IDataBlob *pData) override'],['../class_diligent_1_1_basic_file_stream.html#a61433687b32ba77e90bc04275b5bc45c',1,'Diligent::BasicFileStream::Read(void *Data, size_t BufferSize) override']]], + ['rect',['Rect',['../struct_diligent_1_1_rect.html#a4c540951e442bbb310eb6e0e249f08a0',1,'Diligent::Rect']]], + ['releasecommittedshaderresources',['ReleaseCommittedShaderResources',['../class_diligent_1_1_device_context_d3_d11_impl.html#a87af9339883e1e50384508dc0a097a8f',1,'Diligent::DeviceContextD3D11Impl']]], + ['removeresourcebyname',['RemoveResourceByName',['../class_diligent_1_1_resource_mapping_impl.html#ae73c8979801d3aa935a820a1c7258c93',1,'Diligent::ResourceMappingImpl::RemoveResourceByName()'],['../class_diligent_1_1_i_resource_mapping.html#a8d3b4662cc80f6e6747a51736ae23ad0',1,'Diligent::IResourceMapping::RemoveResourceByName()']]], + ['renderdevicebase',['RenderDeviceBase',['../class_diligent_1_1_render_device_base.html#a46bea5d1917e42d5d4785ae45d642106',1,'Diligent::RenderDeviceBase']]], + ['rendertargetblenddesc',['RenderTargetBlendDesc',['../struct_diligent_1_1_render_target_blend_desc.html#aa68723c4aa403b498b0f110fec65e4a3',1,'Diligent::RenderTargetBlendDesc']]], + ['reportdeletedobject',['ReportDeletedObject',['../class_diligent_1_1_state_objects_registry.html#a65e4d7c1d3e3f1e6519979b7eac0498c',1,'Diligent::StateObjectsRegistry']]], + ['resize',['Resize',['../class_diligent_1_1_swap_chain_d3_d11_impl.html#ae48a4fb93b6f71f610a0100e3777f857',1,'Diligent::SwapChainD3D11Impl::Resize()'],['../class_diligent_1_1_swap_chain_g_l_impl.html#ab2c4136845e7e12e93b46342dff8e7f3',1,'Diligent::SwapChainGLImpl::Resize()'],['../class_diligent_1_1_data_blob_impl.html#a324a721107fa22c3113e49f61b9bca83',1,'Diligent::DataBlobImpl::Resize()'],['../class_diligent_1_1_string_data_blob_impl.html#af81eb85a085ab5923e7d1eb96486ba13',1,'Diligent::StringDataBlobImpl::Resize()'],['../class_diligent_1_1_swap_chain_d3_d12_impl.html#ac2c55b06f784ba3d876e370a7ecca6a7',1,'Diligent::SwapChainD3D12Impl::Resize()'],['../class_diligent_1_1_i_swap_chain.html#a83b525f779bd68d9e49e8065b876ec32',1,'Diligent::ISwapChain::Resize()']]], + ['resourcemappingdesc',['ResourceMappingDesc',['../struct_diligent_1_1_resource_mapping_desc.html#a7832dd87176dbba566b4e77c8c2c26cf',1,'Diligent::ResourceMappingDesc']]], + ['resourcemappingentry',['ResourceMappingEntry',['../struct_diligent_1_1_resource_mapping_entry.html#a808d47001e26ace2b2387f93b90f9bfe',1,'Diligent::ResourceMappingEntry']]], + ['resourcemappingimpl',['ResourceMappingImpl',['../class_diligent_1_1_resource_mapping_impl.html#a5a3832b08344cc202f3e56bb5354c467',1,'Diligent::ResourceMappingImpl']]] +]; diff --git a/doc/html/search/functions_e.html b/doc/html/search/functions_e.html new file mode 100644 index 00000000..cddb9bb5 --- /dev/null +++ b/doc/html/search/functions_e.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_e.js b/doc/html/search/functions_e.js new file mode 100644 index 00000000..a4f17919 --- /dev/null +++ b/doc/html/search/functions_e.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['samplerbase',['SamplerBase',['../class_diligent_1_1_sampler_base.html#a1fcacfa05ea3acc53ae68d6e6b9e6879',1,'Diligent::SamplerBase']]], + ['samplercaps',['SamplerCaps',['../struct_diligent_1_1_sampler_caps.html#abc1a0c3e9cccb15573e1cdf1ac99a18a',1,'Diligent::SamplerCaps']]], + ['samplerdesc',['SamplerDesc',['../struct_diligent_1_1_sampler_desc.html#a84f55fe6afe0c2397039503695bbfefb',1,'Diligent::SamplerDesc']]], + ['set',['Set',['../struct_diligent_1_1_dummy_shader_variable.html#a10bc22958bd424b656d4c25a628c1deb',1,'Diligent::DummyShaderVariable::Set()'],['../class_diligent_1_1_i_shader_variable.html#abf1fd12f07f3d932f04e8e34a981d896',1,'Diligent::IShaderVariable::Set()']]], + ['setarray',['SetArray',['../struct_diligent_1_1_dummy_shader_variable.html#ac2c2d893e25346364e4d180ca03937f9',1,'Diligent::DummyShaderVariable::SetArray()'],['../class_diligent_1_1_i_shader_variable.html#a1485fa8a056824cf955b5bdbe1d7cd17',1,'Diligent::IShaderVariable::SetArray()']]], + ['setblendfactors',['SetBlendFactors',['../class_diligent_1_1_device_context_d3_d11_impl.html#af5b5a0d8d2932ee79a6c5cd04fa3a202',1,'Diligent::DeviceContextD3D11Impl::SetBlendFactors()'],['../class_diligent_1_1_device_context_g_l_impl.html#a41e56bc52ac83c0760046a6bb32ed7cb',1,'Diligent::DeviceContextGLImpl::SetBlendFactors()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#a97d639059bbba7eb0c92df19f2153886',1,'Diligent::DeviceContextD3D12Impl::SetBlendFactors()'],['../class_diligent_1_1_i_device_context.html#a170779986032fffbc8dc4fa33ff5d0cb',1,'Diligent::IDeviceContext::SetBlendFactors()']]], + ['setd3d12resourcestate',['SetD3D12ResourceState',['../class_diligent_1_1_buffer_d3_d12_impl.html#afc837f7cc6419b74be0c269d7b1969be',1,'Diligent::BufferD3D12Impl::SetD3D12ResourceState()'],['../class_diligent_1_1_texture_d3_d12_impl.html#ac44265e34a17b177212978ac29fed5db',1,'Diligent::TextureD3D12Impl::SetD3D12ResourceState()'],['../class_diligent_1_1_i_buffer_d3_d12.html#a5f6a7c18da3755cbeb63e300a58f593f',1,'Diligent::IBufferD3D12::SetD3D12ResourceState()'],['../class_diligent_1_1_i_texture_d3_d12.html#af5142471dd9e26efd297f4bb42d341c6',1,'Diligent::ITextureD3D12::SetD3D12ResourceState()']]], + ['setdeferredcontext',['SetDeferredContext',['../class_diligent_1_1_render_device_base.html#a12b47e7024812aa0a444610c4902a3a5',1,'Diligent::RenderDeviceBase']]], + ['setimmediatecontext',['SetImmediateContext',['../class_diligent_1_1_render_device_base.html#a4d5dfb51973e8b0331d3c56edacd0664',1,'Diligent::RenderDeviceBase']]], + ['setindexbuffer',['SetIndexBuffer',['../class_diligent_1_1_device_context_d3_d11_impl.html#a79db72bbef487409f46449b77f6ce6ed',1,'Diligent::DeviceContextD3D11Impl::SetIndexBuffer()'],['../class_diligent_1_1_device_context_g_l_impl.html#ac2cf1365e927df7d0390acb957b139f9',1,'Diligent::DeviceContextGLImpl::SetIndexBuffer()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#ac94879fd640a7a7ba53053b589f50b03',1,'Diligent::DeviceContextD3D12Impl::SetIndexBuffer()'],['../class_diligent_1_1_device_context_base.html#a55dbf6c9f66c76870792d6a81d11a00f',1,'Diligent::DeviceContextBase::SetIndexBuffer()'],['../class_diligent_1_1_i_device_context.html#a829a67ac1a254d2a3128d6fb95e672f5',1,'Diligent::IDeviceContext::SetIndexBuffer()']]], + ['setpipelinestate',['SetPipelineState',['../class_diligent_1_1_device_context_d3_d11_impl.html#a9bd8e3b1e8877e8488c5fa41836df4b3',1,'Diligent::DeviceContextD3D11Impl::SetPipelineState()'],['../class_diligent_1_1_device_context_g_l_impl.html#a6f833e7d9144b73eebe1d8c012807c4e',1,'Diligent::DeviceContextGLImpl::SetPipelineState()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#aa8cabf2a1bd3369f499f397ec71fff97',1,'Diligent::DeviceContextD3D12Impl::SetPipelineState()'],['../class_diligent_1_1_device_context_base.html#aa18c2e092f1a91ea09fea19973121f6e',1,'Diligent::DeviceContextBase::SetPipelineState()'],['../class_diligent_1_1_i_device_context.html#a5d4bdc4379dbe1b71268d71c5b238250',1,'Diligent::IDeviceContext::SetPipelineState()']]], + ['setrawallocator',['SetRawAllocator',['../namespace_diligent.html#aafc497c26b864a48cd17ad3fca1fe386',1,'Diligent']]], + ['setrendertargets',['SetRenderTargets',['../class_diligent_1_1_device_context_d3_d11_impl.html#ab0321f1d70ecd6cb01ee546579f3c5cc',1,'Diligent::DeviceContextD3D11Impl::SetRenderTargets()'],['../class_diligent_1_1_device_context_g_l_impl.html#aeb189139c4b3811fa74eadb84c1ab843',1,'Diligent::DeviceContextGLImpl::SetRenderTargets()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#a299ca555cf8774cdf7255d83c06af640',1,'Diligent::DeviceContextD3D12Impl::SetRenderTargets()'],['../class_diligent_1_1_device_context_base.html#a8fb34f12eb8e06764322ecde447ab856',1,'Diligent::DeviceContextBase::SetRenderTargets()'],['../class_diligent_1_1_i_device_context.html#a06aea8d7bc6fd65ab8e4da744092e82f',1,'Diligent::IDeviceContext::SetRenderTargets()']]], + ['setsampler',['SetSampler',['../class_diligent_1_1_texture_view_base.html#a19a845d21c78bec13d2f605b62df1944',1,'Diligent::TextureViewBase::SetSampler()'],['../class_diligent_1_1_i_texture_view.html#af8a11a7ad59eb094ec13eb3c80110a90',1,'Diligent::ITextureView::SetSampler()']]], + ['setscissorrects',['SetScissorRects',['../class_diligent_1_1_device_context_d3_d11_impl.html#ae23752e1818111e2bf036d44888ab840',1,'Diligent::DeviceContextD3D11Impl::SetScissorRects()'],['../class_diligent_1_1_device_context_g_l_impl.html#a38ddf7f7f6113a774586e79d4fbb0a34',1,'Diligent::DeviceContextGLImpl::SetScissorRects()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#aa269748d330b15309fef2b6e57d131e7',1,'Diligent::DeviceContextD3D12Impl::SetScissorRects()'],['../class_diligent_1_1_device_context_base.html#ab7c27f76fa2d281da1825fae09492016',1,'Diligent::DeviceContextBase::SetScissorRects()'],['../class_diligent_1_1_i_device_context.html#ae259f9a476c0dcd8f9081ac1c359f736',1,'Diligent::IDeviceContext::SetScissorRects()']]], + ['setstencilref',['SetStencilRef',['../class_diligent_1_1_device_context_d3_d11_impl.html#adb8322c16cd68def2cdbd9f53209d4a0',1,'Diligent::DeviceContextD3D11Impl::SetStencilRef()'],['../class_diligent_1_1_device_context_g_l_impl.html#a172afff42241e5d35d08201a8b8e5d25',1,'Diligent::DeviceContextGLImpl::SetStencilRef()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#a742cf62122dd7cfd91bad4b1e0d54ffd',1,'Diligent::DeviceContextD3D12Impl::SetStencilRef()'],['../class_diligent_1_1_i_device_context.html#ae85aea7907452cd1444cabc426d497a6',1,'Diligent::IDeviceContext::SetStencilRef()']]], + ['setswapchain',['SetSwapChain',['../class_diligent_1_1_device_context_base.html#abfb91863c108faf725d21930ebed5692',1,'Diligent::DeviceContextBase::SetSwapChain()'],['../class_diligent_1_1_i_device_context.html#a1e10c0132d064d9b890d9e39ba464c3e',1,'Diligent::IDeviceContext::SetSwapChain()']]], + ['setvertexbuffers',['SetVertexBuffers',['../class_diligent_1_1_device_context_d3_d11_impl.html#abfd53c39cbd1a77d19951664167dae2b',1,'Diligent::DeviceContextD3D11Impl::SetVertexBuffers()'],['../class_diligent_1_1_device_context_g_l_impl.html#a0ad4626f5e91b73350eadcdac4d4ad36',1,'Diligent::DeviceContextGLImpl::SetVertexBuffers()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#ae7ed63dc682ab486282e1cec4d15603f',1,'Diligent::DeviceContextD3D12Impl::SetVertexBuffers()'],['../class_diligent_1_1_device_context_base.html#a78a7051f15d5b0e2b3183fb9bf278adf',1,'Diligent::DeviceContextBase::SetVertexBuffers()'],['../class_diligent_1_1_i_device_context.html#a975090a15be01bff511543459bd9f53e',1,'Diligent::IDeviceContext::SetVertexBuffers()']]], + ['setviewports',['SetViewports',['../class_diligent_1_1_device_context_d3_d11_impl.html#a180ba0fb6b5468365d05f16fa9405800',1,'Diligent::DeviceContextD3D11Impl::SetViewports()'],['../class_diligent_1_1_device_context_g_l_impl.html#ab8f6aefa72856012408567b660c08005',1,'Diligent::DeviceContextGLImpl::SetViewports()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#a22f61d29ce0a772e971641fda2442655',1,'Diligent::DeviceContextD3D12Impl::SetViewports()'],['../class_diligent_1_1_device_context_base.html#a3ae8c0c570fbff02c39ba64464c30407',1,'Diligent::DeviceContextBase::SetViewports()'],['../class_diligent_1_1_i_device_context.html#a0162de3b063ef851a5ccb72aa03d6cac',1,'Diligent::IDeviceContext::SetViewports()']]], + ['shaderbase',['ShaderBase',['../class_diligent_1_1_shader_base.html#a7c4b7d4aaed6b8ef56ff03b2009d5f65',1,'Diligent::ShaderBase']]], + ['shaderresourcebindingbase',['ShaderResourceBindingBase',['../class_diligent_1_1_shader_resource_binding_base.html#af54770f1954187f2f795b9ea20ad6581',1,'Diligent::ShaderResourceBindingBase']]], + ['stencilopdesc',['StencilOpDesc',['../struct_diligent_1_1_stencil_op_desc.html#abf76081f63b3aa0e2f45daddd530b28c',1,'Diligent::StencilOpDesc']]], + ['swapchainbase',['SwapChainBase',['../class_diligent_1_1_swap_chain_base.html#a2f792731da56cfe08f9c6d38bcab085a',1,'Diligent::SwapChainBase']]], + ['swapchaindesc',['SwapChainDesc',['../struct_diligent_1_1_swap_chain_desc.html#afebad3ffd438ed535f4613407e4edc4c',1,'Diligent::SwapChainDesc']]] +]; diff --git a/doc/html/search/functions_f.html b/doc/html/search/functions_f.html new file mode 100644 index 00000000..49672926 --- /dev/null +++ b/doc/html/search/functions_f.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/functions_f.js b/doc/html/search/functions_f.js new file mode 100644 index 00000000..0aaaea07 --- /dev/null +++ b/doc/html/search/functions_f.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['texturebase',['TextureBase',['../class_diligent_1_1_texture_base.html#ab57ba2c59cef18b9a9a1b5d265108271',1,'Diligent::TextureBase']]], + ['texturecaps',['TextureCaps',['../struct_diligent_1_1_texture_caps.html#a325029c491ac552b745fe03bcf63e0e0',1,'Diligent::TextureCaps']]], + ['texturedata',['TextureData',['../struct_diligent_1_1_texture_data.html#af0c0f1f5b7dbfc6f6c9d81e3646f48bf',1,'Diligent::TextureData']]], + ['texturedesc',['TextureDesc',['../struct_diligent_1_1_texture_desc.html#aab1ba608a78b7eee921a94caa6f8c024',1,'Diligent::TextureDesc']]], + ['textureformatattribs',['TextureFormatAttribs',['../struct_diligent_1_1_texture_format_attribs.html#aea0954abcd11cbf0f9fe335be05716a9',1,'Diligent::TextureFormatAttribs']]], + ['textureformatinfo',['TextureFormatInfo',['../struct_diligent_1_1_texture_format_info.html#a5ca4422a66a3d04dc4743d2b28e95321',1,'Diligent::TextureFormatInfo']]], + ['textureformatinfoext',['TextureFormatInfoExt',['../struct_diligent_1_1_texture_format_info_ext.html#aec1531e0d19e57b0c3f11a6e1fce1741',1,'Diligent::TextureFormatInfoExt']]], + ['texturesubresdata',['TextureSubResData',['../struct_diligent_1_1_texture_sub_res_data.html#a8198bdcafb7971398448a701dfa6b329',1,'Diligent::TextureSubResData::TextureSubResData()'],['../struct_diligent_1_1_texture_sub_res_data.html#a7035a123eda79ee0670960f011098beb',1,'Diligent::TextureSubResData::TextureSubResData(void *_pData, Uint32 _Stride, Uint32 _DepthStride=0)'],['../struct_diligent_1_1_texture_sub_res_data.html#a1a5c731825d0f686668f1f6bb3711224',1,'Diligent::TextureSubResData::TextureSubResData(IBuffer *_pBuffer, Uint32 _Stride, Uint32 _DepthStride=0)']]], + ['textureviewbase',['TextureViewBase',['../class_diligent_1_1_texture_view_base.html#af39c54431780ae60fd925d898050e651',1,'Diligent::TextureViewBase']]], + ['textureviewdesc',['TextureViewDesc',['../struct_diligent_1_1_texture_view_desc.html#ae636c6540cdc1772f68af208174b8bed',1,'Diligent::TextureViewDesc']]], + ['transitionbufferstate',['TransitionBufferState',['../class_diligent_1_1_device_context_d3_d12_impl.html#acfa61fa64e29aabcaf409ad3b046cb19',1,'Diligent::DeviceContextD3D12Impl::TransitionBufferState()'],['../class_diligent_1_1_i_device_context_d3_d12.html#a32dd9c551e75e475ee1db52c30e864c2',1,'Diligent::IDeviceContextD3D12::TransitionBufferState()']]], + ['transitionshaderresources',['TransitionShaderResources',['../class_diligent_1_1_device_context_d3_d11_impl.html#a50154dc4fbd19504c8e05e929bf8fa8c',1,'Diligent::DeviceContextD3D11Impl::TransitionShaderResources()'],['../class_diligent_1_1_device_context_g_l_impl.html#a7e8c475f0861a6feeb55befa51559b0c',1,'Diligent::DeviceContextGLImpl::TransitionShaderResources()'],['../class_diligent_1_1_device_context_d3_d12_impl.html#ab06c150372ad091846090999c2f496fd',1,'Diligent::DeviceContextD3D12Impl::TransitionShaderResources()'],['../class_diligent_1_1_i_device_context.html#ad5f57343e1bbaf93831af9c0e262866b',1,'Diligent::IDeviceContext::TransitionShaderResources()']]], + ['transitiontexturestate',['TransitionTextureState',['../class_diligent_1_1_device_context_d3_d12_impl.html#a19f2b021aa089ee332ef4a35333589aa',1,'Diligent::DeviceContextD3D12Impl::TransitionTextureState()'],['../class_diligent_1_1_i_device_context_d3_d12.html#a1b4a0b051a9a1dee11c3dcaec0b5586a',1,'Diligent::IDeviceContextD3D12::TransitionTextureState()']]] +]; diff --git a/doc/html/search/mag_sel.png b/doc/html/search/mag_sel.png new file mode 100644 index 00000000..81f6040a Binary files /dev/null and b/doc/html/search/mag_sel.png differ diff --git a/doc/html/search/namespaces_0.html b/doc/html/search/namespaces_0.html new file mode 100644 index 00000000..f55ca63a --- /dev/null +++ b/doc/html/search/namespaces_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/namespaces_0.js b/doc/html/search/namespaces_0.js new file mode 100644 index 00000000..af5411f4 --- /dev/null +++ b/doc/html/search/namespaces_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['diligent',['Diligent',['../namespace_diligent.html',1,'']]] +]; diff --git a/doc/html/search/nomatches.html b/doc/html/search/nomatches.html new file mode 100644 index 00000000..b1ded27e --- /dev/null +++ b/doc/html/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/doc/html/search/pages_0.html b/doc/html/search/pages_0.html new file mode 100644 index 00000000..d7528582 --- /dev/null +++ b/doc/html/search/pages_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/pages_0.js b/doc/html/search/pages_0.js new file mode 100644 index 00000000..89fadf9b --- /dev/null +++ b/doc/html/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['common',['Common',['../md__d_1__git_hub__diligent_engine__diligent_core__common_readme.html',1,'']]] +]; diff --git a/doc/html/search/pages_1.html b/doc/html/search/pages_1.html new file mode 100644 index 00000000..924fb482 --- /dev/null +++ b/doc/html/search/pages_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/pages_1.js b/doc/html/search/pages_1.js new file mode 100644 index 00000000..dfd75af4 --- /dev/null +++ b/doc/html/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['diligentcore',['DiligentCore',['../index.html',1,'']]] +]; diff --git a/doc/html/search/pages_2.html b/doc/html/search/pages_2.html new file mode 100644 index 00000000..ffc6d929 --- /dev/null +++ b/doc/html/search/pages_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/pages_2.js b/doc/html/search/pages_2.js new file mode 100644 index 00000000..738ce19e --- /dev/null +++ b/doc/html/search/pages_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['graphicsengined3d11',['GraphicsEngineD3D11',['../md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_d3_d11_readme.html',1,'']]], + ['graphicsengined3d12',['GraphicsEngineD3D12',['../md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_d3_d12_readme.html',1,'']]], + ['graphicsengineopengl',['GraphicsEngineOpenGL',['../md__d_1__git_hub__diligent_engine__diligent_core__graphics__graphics_engine_open_g_l_readme.html',1,'']]] +]; diff --git a/doc/html/search/pages_3.html b/doc/html/search/pages_3.html new file mode 100644 index 00000000..f3746246 --- /dev/null +++ b/doc/html/search/pages_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/pages_3.js b/doc/html/search/pages_3.js new file mode 100644 index 00000000..a067c110 --- /dev/null +++ b/doc/html/search/pages_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hlsl2glslconverterlib',['HLSL2GLSLConverterLib',['../md__d_1__git_hub__diligent_engine__diligent_core__graphics__h_l_s_l2_g_l_s_l_converter_lib_readme.html',1,'']]] +]; diff --git a/doc/html/search/search.css b/doc/html/search/search.css new file mode 100644 index 00000000..3cf9df94 --- /dev/null +++ b/doc/html/search/search.css @@ -0,0 +1,271 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + float: none; + margin-top: 8px; + right: 0px; + width: 170px; + height: 24px; + z-index: 102; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:115px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:8px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + 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 Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + 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 #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + 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; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + 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/doc/html/search/search.js b/doc/html/search/search.js new file mode 100644 index 00000000..a554ab9c --- /dev/null +++ b/doc/html/search/search.js @@ -0,0 +1,814 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @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 resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- 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'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// 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 == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == '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 + { + parent.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 + { + parent.searchBox.CloseResultsWindow(); + parent.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 + { + parent.searchBox.CloseResultsWindow(); + parent.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() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/typedefs_0.js b/doc/html/search/typedefs_0.js new file mode 100644 index 00000000..302cc553 --- /dev/null +++ b/doc/html/search/typedefs_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['bool',['Bool',['../namespace_diligent.html#a1348d994a23f6b38215d775be3931056',1,'Diligent']]] +]; diff --git a/doc/html/search/typedefs_1.html b/doc/html/search/typedefs_1.html new file mode 100644 index 00000000..7af807db --- /dev/null +++ b/doc/html/search/typedefs_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/typedefs_1.js b/doc/html/search/typedefs_1.js new file mode 100644 index 00000000..d4d05617 --- /dev/null +++ b/doc/html/search/typedefs_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['float32',['Float32',['../namespace_diligent.html#a32283d7134e62a58530ba1b0afb4e59e',1,'Diligent']]] +]; diff --git a/doc/html/search/typedefs_2.html b/doc/html/search/typedefs_2.html new file mode 100644 index 00000000..745d076c --- /dev/null +++ b/doc/html/search/typedefs_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/typedefs_2.js b/doc/html/search/typedefs_2.js new file mode 100644 index 00000000..7a5c27d1 --- /dev/null +++ b/doc/html/search/typedefs_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['int16',['Int16',['../namespace_diligent.html#a8d5a3f689eb95c5f5c6cecf4d2c4acb9',1,'Diligent']]], + ['int32',['Int32',['../namespace_diligent.html#a645a22e6073f4b6d0c46d95b9bc11fdb',1,'Diligent']]], + ['int64',['Int64',['../namespace_diligent.html#a2d2b3a7301fd8731c6b997df30b6446e',1,'Diligent']]], + ['int8',['Int8',['../namespace_diligent.html#a70b89ad84f51b1f35d7156dca7596361',1,'Diligent']]] +]; diff --git a/doc/html/search/typedefs_3.html b/doc/html/search/typedefs_3.html new file mode 100644 index 00000000..def60a5b --- /dev/null +++ b/doc/html/search/typedefs_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/typedefs_3.js b/doc/html/search/typedefs_3.js new file mode 100644 index 00000000..ce4deb2d --- /dev/null +++ b/doc/html/search/typedefs_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['string',['String',['../namespace_diligent.html#a3d23c2ee2a78504778603d8ef49ae314',1,'Diligent']]] +]; diff --git a/doc/html/search/typedefs_4.html b/doc/html/search/typedefs_4.html new file mode 100644 index 00000000..ef733ad2 --- /dev/null +++ b/doc/html/search/typedefs_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/typedefs_4.js b/doc/html/search/typedefs_4.js new file mode 100644 index 00000000..e447cab8 --- /dev/null +++ b/doc/html/search/typedefs_4.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['uint16',['Uint16',['../namespace_diligent.html#aed4157b3402532cf891c93eac3b41479',1,'Diligent']]], + ['uint32',['Uint32',['../namespace_diligent.html#a9e27ac38f8dccaa4b4f8e967cd1e868e',1,'Diligent']]], + ['uint64',['Uint64',['../namespace_diligent.html#a217aba875c8d4bd7843939762d6ff492',1,'Diligent']]], + ['uint8',['Uint8',['../namespace_diligent.html#a3392c10112f826c3bcc60366e0f533db',1,'Diligent']]] +]; diff --git a/doc/html/search/variables_0.html b/doc/html/search/variables_0.html new file mode 100644 index 00000000..51f7bd6b --- /dev/null +++ b/doc/html/search/variables_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_0.js b/doc/html/search/variables_0.js new file mode 100644 index 00000000..42408f3a --- /dev/null +++ b/doc/html/search/variables_0.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['accessflags',['AccessFlags',['../struct_diligent_1_1_texture_view_desc.html#a126d7ad8dceaa57150ed6f1cb3e1b7e7',1,'Diligent::TextureViewDesc']]], + ['addressu',['AddressU',['../struct_diligent_1_1_sampler_desc.html#a47c2269a565a1260a2bb8f07fef57e24',1,'Diligent::SamplerDesc']]], + ['addressv',['AddressV',['../struct_diligent_1_1_sampler_desc.html#a751e2c38fde79fca035b90316f2b4f89',1,'Diligent::SamplerDesc']]], + ['addressw',['AddressW',['../struct_diligent_1_1_sampler_desc.html#af674beea5aed837b3f3423f81bef13a2',1,'Diligent::SamplerDesc']]], + ['alphatocoverageenable',['AlphaToCoverageEnable',['../struct_diligent_1_1_blend_state_desc.html#aefb15b0d100654533607e1b12bc7397d',1,'Diligent::BlendStateDesc']]], + ['antialiasedlineenable',['AntialiasedLineEnable',['../struct_diligent_1_1_rasterizer_state_desc.html#a7bdd03035417c3acb242cd7ffc7f7d94',1,'Diligent::RasterizerStateDesc']]], + ['arraysize',['ArraySize',['../struct_diligent_1_1_texture_desc.html#a9f1c03e9ab8af4d281c389e722f71931',1,'Diligent::TextureDesc']]] +]; diff --git a/doc/html/search/variables_1.html b/doc/html/search/variables_1.html new file mode 100644 index 00000000..f46154d8 --- /dev/null +++ b/doc/html/search/variables_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_1.js b/doc/html/search/variables_1.js new file mode 100644 index 00000000..5f617549 --- /dev/null +++ b/doc/html/search/variables_1.js @@ -0,0 +1,31 @@ +var searchData= +[ + ['backface',['BackFace',['../struct_diligent_1_1_depth_stencil_state_desc.html#ab70d10ee856e265058df2777461aa4bb',1,'Diligent::DepthStencilStateDesc']]], + ['banisotropicfilteringsupported',['bAnisotropicFilteringSupported',['../struct_diligent_1_1_sampler_caps.html#af72690e36ea28653de40fb24c69cc128',1,'Diligent::SamplerCaps']]], + ['basevertex',['BaseVertex',['../struct_diligent_1_1_draw_attribs.html#a75b6db30ed31a382ebb8de5201001ca4',1,'Diligent::DrawAttribs']]], + ['bbordersamplingmodesupported',['bBorderSamplingModeSupported',['../struct_diligent_1_1_sampler_caps.html#ae7e0572d6cf6ccb8404693cc76934125',1,'Diligent::SamplerCaps']]], + ['bcubemaparrayssupported',['bCubemapArraysSupported',['../struct_diligent_1_1_texture_caps.html#a81cb7047b115144874298d7554207dc1',1,'Diligent::TextureCaps']]], + ['bindflags',['BindFlags',['../struct_diligent_1_1_buffer_desc.html#aa03cc2547017b124a690a50611f20b06',1,'Diligent::BufferDesc::BindFlags()'],['../struct_diligent_1_1_texture_desc.html#a884a52b8c5088e44640394c7cf26de3a',1,'Diligent::TextureDesc::BindFlags()']]], + ['bindirectrenderingsupported',['bIndirectRenderingSupported',['../struct_diligent_1_1_device_caps.html#a2a17664a40e5eb90a20c68a520a487e8',1,'Diligent::DeviceCaps']]], + ['blenddesc',['BlendDesc',['../struct_diligent_1_1_graphics_pipeline_desc.html#ad86efecf9af6740b15aa2858d11d4ead',1,'Diligent::GraphicsPipelineDesc']]], + ['blendenable',['BlendEnable',['../struct_diligent_1_1_render_target_blend_desc.html#ae0e8734189e8344cd49121e0de5bfb3b',1,'Diligent::RenderTargetBlendDesc']]], + ['blendop',['BlendOp',['../struct_diligent_1_1_render_target_blend_desc.html#a9e425a2913f4ce256c0cd2dd02db67c4',1,'Diligent::RenderTargetBlendDesc']]], + ['blendopalpha',['BlendOpAlpha',['../struct_diligent_1_1_render_target_blend_desc.html#a7d8a84d41c3fe0edf0682bcd58331848',1,'Diligent::RenderTargetBlendDesc']]], + ['blodbiassupported',['bLODBiasSupported',['../struct_diligent_1_1_sampler_caps.html#a8c006d5540e11b89fd8cb8668758469d',1,'Diligent::SamplerCaps']]], + ['bmultithreadedresourcecreationsupported',['bMultithreadedResourceCreationSupported',['../struct_diligent_1_1_device_caps.html#a5e5213f80ddd3160766ec51c5ed2ab4b',1,'Diligent::DeviceCaps']]], + ['bordercolor',['BorderColor',['../struct_diligent_1_1_sampler_desc.html#a6ce9635826a946dfbadacd2adcff63e9',1,'Diligent::SamplerDesc']]], + ['bottom',['bottom',['../struct_diligent_1_1_rect.html#a0469c2165ebf1740d7af2f21d73d1416',1,'Diligent::Rect']]], + ['bseparableprogramsupported',['bSeparableProgramSupported',['../struct_diligent_1_1_device_caps.html#a0972c2a042cd7266a5450a9f51452517',1,'Diligent::DeviceCaps']]], + ['btexture1darraysupported',['bTexture1DArraySupported',['../struct_diligent_1_1_texture_caps.html#aa4e3aeb3b8a7ae275d4b43a1a67bfe6e',1,'Diligent::TextureCaps']]], + ['btexture1dsupported',['bTexture1DSupported',['../struct_diligent_1_1_texture_caps.html#abc44c7348aaa30d2e046b5ccc3ab08d1',1,'Diligent::TextureCaps']]], + ['btexture2dmsarraysupported',['bTexture2DMSArraySupported',['../struct_diligent_1_1_texture_caps.html#ab56a36e4792921cef9ebdba1402904af',1,'Diligent::TextureCaps']]], + ['btexture2dmssupported',['bTexture2DMSSupported',['../struct_diligent_1_1_texture_caps.html#a5bdc97b634fffa3f7e9505845dd67c06',1,'Diligent::TextureCaps']]], + ['btextureviewsupported',['bTextureViewSupported',['../struct_diligent_1_1_texture_caps.html#aecfd0691323563f4af543d3d02cdb07c',1,'Diligent::TextureCaps']]], + ['buffercount',['BufferCount',['../struct_diligent_1_1_swap_chain_desc.html#a05d5e9d8ca0869dd19d753d987b1454b',1,'Diligent::SwapChainDesc']]], + ['bufferslot',['BufferSlot',['../struct_diligent_1_1_layout_element.html#abeef86e4713b4345f1b11887f4be5eb8',1,'Diligent::LayoutElement']]], + ['bwireframefillsupported',['bWireframeFillSupported',['../struct_diligent_1_1_device_caps.html#a04d752cb6bcb7fc56ff2533cdf48e796',1,'Diligent::DeviceCaps']]], + ['bytecode',['ByteCode',['../struct_diligent_1_1_shader_creation_attribs.html#ab91e80c16df5ee5624e56f8fdbb0e98d',1,'Diligent::ShaderCreationAttribs']]], + ['bytecodesize',['ByteCodeSize',['../struct_diligent_1_1_shader_creation_attribs.html#a2dc3b36f68b617161f138be5df2138f5',1,'Diligent::ShaderCreationAttribs']]], + ['byteoffset',['ByteOffset',['../struct_diligent_1_1_buffer_view_desc.html#a2e3849db8f49ddca6d7ee5c8c2fae36e',1,'Diligent::BufferViewDesc']]], + ['bytewidth',['ByteWidth',['../struct_diligent_1_1_buffer_view_desc.html#ac09688fcf3faf4dc4f2497cf0d0461ba',1,'Diligent::BufferViewDesc']]] +]; diff --git a/doc/html/search/variables_10.html b/doc/html/search/variables_10.html new file mode 100644 index 00000000..b62b717e --- /dev/null +++ b/doc/html/search/variables_10.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_10.js b/doc/html/search/variables_10.js new file mode 100644 index 00000000..3e3fc951 --- /dev/null +++ b/doc/html/search/variables_10.js @@ -0,0 +1,29 @@ +var searchData= +[ + ['samcaps',['SamCaps',['../struct_diligent_1_1_device_caps.html#a408a266a56d81c953cdd0813617838af',1,'Diligent::DeviceCaps']]], + ['samplecount',['SampleCount',['../struct_diligent_1_1_texture_desc.html#a809c087dd8a353cbb4460e56b44720f4',1,'Diligent::TextureDesc']]], + ['samplemask',['SampleMask',['../struct_diligent_1_1_graphics_pipeline_desc.html#a48362f4ab2fc255d29bdf4c1c6d527f4',1,'Diligent::GraphicsPipelineDesc']]], + ['samplescount',['SamplesCount',['../struct_diligent_1_1_swap_chain_desc.html#abb6c480f76a89a38333249970fc0c6d9',1,'Diligent::SwapChainDesc']]], + ['scissorenable',['ScissorEnable',['../struct_diligent_1_1_rasterizer_state_desc.html#a71fed776ed7bfda220fdc4fb1632f3f8',1,'Diligent::RasterizerStateDesc']]], + ['shadertype',['ShaderType',['../struct_diligent_1_1_shader_desc.html#aded0e0cabe436be3da39e2353683ff68',1,'Diligent::ShaderDesc']]], + ['slopescaleddepthbias',['SlopeScaledDepthBias',['../struct_diligent_1_1_rasterizer_state_desc.html#a140c14fa1af075cf3be5c1577bccdd86',1,'Diligent::RasterizerStateDesc']]], + ['smpldesc',['SmplDesc',['../struct_diligent_1_1_graphics_pipeline_desc.html#aa505cde7293c238fb23664b412da1388',1,'Diligent::GraphicsPipelineDesc']]], + ['source',['Source',['../struct_diligent_1_1_shader_creation_attribs.html#aef8d7926abec30fe25ee611f2f40d6ec',1,'Diligent::ShaderCreationAttribs']]], + ['sourcelanguage',['SourceLanguage',['../struct_diligent_1_1_shader_creation_attribs.html#ab4f1dc9f9314d639690bde42a8b56535',1,'Diligent::ShaderCreationAttribs']]], + ['srballocationgranularity',['SRBAllocationGranularity',['../struct_diligent_1_1_pipeline_state_desc.html#ad33e5797ce9cdb50dc5703511cff6ac6',1,'Diligent::PipelineStateDesc']]], + ['srcblend',['SrcBlend',['../struct_diligent_1_1_render_target_blend_desc.html#afebc07d02d747007045f9c120a08bc31',1,'Diligent::RenderTargetBlendDesc']]], + ['srcblendalpha',['SrcBlendAlpha',['../struct_diligent_1_1_render_target_blend_desc.html#ac1ee935ffe66f5fb5aaa14f0234e5c30',1,'Diligent::RenderTargetBlendDesc']]], + ['startvertexlocation',['StartVertexLocation',['../struct_diligent_1_1_draw_attribs.html#a0fb46bf99dc79966d25b7f0ff88e7f0b',1,'Diligent::DrawAttribs']]], + ['staticsamplers',['StaticSamplers',['../struct_diligent_1_1_shader_desc.html#accd32c314fc0290fd912f568e54709bf',1,'Diligent::ShaderDesc']]], + ['stencil',['Stencil',['../struct_diligent_1_1_depth_stencil_clear_value.html#aa66a0364673a8dad318084ca95e5e325',1,'Diligent::DepthStencilClearValue']]], + ['stencildepthfailop',['StencilDepthFailOp',['../struct_diligent_1_1_stencil_op_desc.html#a2e31ce16cfd5145b2e5578485e73d0f1',1,'Diligent::StencilOpDesc']]], + ['stencilenable',['StencilEnable',['../struct_diligent_1_1_depth_stencil_state_desc.html#a2350d1fe94693a9bf175a578a22a8f1b',1,'Diligent::DepthStencilStateDesc']]], + ['stencilfailop',['StencilFailOp',['../struct_diligent_1_1_stencil_op_desc.html#aa672789b4d459a4480baf3666c6945ad',1,'Diligent::StencilOpDesc']]], + ['stencilfunc',['StencilFunc',['../struct_diligent_1_1_stencil_op_desc.html#a5fbdb05e365ec418ba5a449265c3791f',1,'Diligent::StencilOpDesc']]], + ['stencilpassop',['StencilPassOp',['../struct_diligent_1_1_stencil_op_desc.html#abb9e31d08669cafb05cb4e3b9f600785',1,'Diligent::StencilOpDesc']]], + ['stencilreadmask',['StencilReadMask',['../struct_diligent_1_1_depth_stencil_state_desc.html#acd5d4a05f83025dd3032e21f57e35025',1,'Diligent::DepthStencilStateDesc']]], + ['stencilwritemask',['StencilWriteMask',['../struct_diligent_1_1_depth_stencil_state_desc.html#a6b737a835a94f4ee667ba7b8bf53e086',1,'Diligent::DepthStencilStateDesc']]], + ['stride',['Stride',['../struct_diligent_1_1_vertex_stream_info.html#a1426bf561382713f7849d898f6356d52',1,'Diligent::VertexStreamInfo::Stride()'],['../struct_diligent_1_1_texture_sub_res_data.html#ae4f1c2064390d9fc3706d38523acac69',1,'Diligent::TextureSubResData::Stride()']]], + ['supported',['Supported',['../struct_diligent_1_1_texture_format_info.html#ae26d9fbb8b9916341558eefaeb407c39',1,'Diligent::TextureFormatInfo']]], + ['supportsms',['SupportsMS',['../struct_diligent_1_1_texture_format_info_ext.html#a26e15c8d3bf315d271dca7c74f24a687',1,'Diligent::TextureFormatInfoExt']]] +]; diff --git a/doc/html/search/variables_11.html b/doc/html/search/variables_11.html new file mode 100644 index 00000000..2ce8561a --- /dev/null +++ b/doc/html/search/variables_11.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_11.js b/doc/html/search/variables_11.js new file mode 100644 index 00000000..06611bf1 --- /dev/null +++ b/doc/html/search/variables_11.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['tex1dfmt',['Tex1DFmt',['../struct_diligent_1_1_texture_format_info_ext.html#a3d7aa73d17221417407c033cb340e584',1,'Diligent::TextureFormatInfoExt']]], + ['tex2dfmt',['Tex2DFmt',['../struct_diligent_1_1_texture_format_info_ext.html#a60616f120da2747f0f11c01911efdc6e',1,'Diligent::TextureFormatInfoExt']]], + ['tex3dfmt',['Tex3DFmt',['../struct_diligent_1_1_texture_format_info_ext.html#a1fe3cc09b666032db4b7511b8d5986f5',1,'Diligent::TextureFormatInfoExt']]], + ['texcaps',['TexCaps',['../struct_diligent_1_1_device_caps.html#ac95e490fb96d7bd0b4d1d91eb8d0c3bc',1,'Diligent::DeviceCaps']]], + ['texcubefmt',['TexCubeFmt',['../struct_diligent_1_1_texture_format_info_ext.html#a2983887c36e8830793cd2bea39519f9b',1,'Diligent::TextureFormatInfoExt']]], + ['texturedim',['TextureDim',['../struct_diligent_1_1_texture_view_desc.html#ada0c9b06dd0b57096f8de1ed39e762ae',1,'Diligent::TextureViewDesc']]], + ['texturename',['TextureName',['../struct_diligent_1_1_static_sampler_desc.html#a956d466b6039e2b23d3e14ee85b1b28c',1,'Diligent::StaticSamplerDesc']]], + ['threadgroupcountx',['ThreadGroupCountX',['../struct_diligent_1_1_dispatch_compute_attribs.html#ad6268495eacc1bdf2ae19538c5937c20',1,'Diligent::DispatchComputeAttribs']]], + ['threadgroupcounty',['ThreadGroupCountY',['../struct_diligent_1_1_dispatch_compute_attribs.html#a8e6828a4ff791324c42da5d296dac179',1,'Diligent::DispatchComputeAttribs']]], + ['threadgroupcountz',['ThreadGroupCountZ',['../struct_diligent_1_1_dispatch_compute_attribs.html#a0f7645f8572efd2cdf1a614ac2aca873',1,'Diligent::DispatchComputeAttribs']]], + ['top',['top',['../struct_diligent_1_1_rect.html#a2f179f7e304da900265df76803eb9de7',1,'Diligent::Rect']]], + ['topleftx',['TopLeftX',['../struct_diligent_1_1_viewport.html#a7362f6cfa69acfd6eb6a6471d11f8119',1,'Diligent::Viewport']]], + ['toplefty',['TopLeftY',['../struct_diligent_1_1_viewport.html#aa160a6d5d178c0b9cefc64c4e1442103',1,'Diligent::Viewport']]], + ['topology',['Topology',['../struct_diligent_1_1_draw_attribs.html#a377ef56a20ed55eea4f7cf908f24797c',1,'Diligent::DrawAttribs']]], + ['type',['Type',['../struct_diligent_1_1_shader_variable_desc.html#ab64013ee9fa8680ff4bc065adec33fa3',1,'Diligent::ShaderVariableDesc::Type()'],['../struct_diligent_1_1_texture_desc.html#ac2f19e2db2d62d58ecaae3b0f1c35490',1,'Diligent::TextureDesc::Type()']]] +]; diff --git a/doc/html/search/variables_12.html b/doc/html/search/variables_12.html new file mode 100644 index 00000000..bba5857f --- /dev/null +++ b/doc/html/search/variables_12.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_12.js b/doc/html/search/variables_12.js new file mode 100644 index 00000000..f997936a --- /dev/null +++ b/doc/html/search/variables_12.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['uisizeinbytes',['uiSizeInBytes',['../struct_diligent_1_1_buffer_desc.html#a544e39f4d04894bc88237f22fc26fda8',1,'Diligent::BufferDesc']]], + ['usage',['Usage',['../struct_diligent_1_1_buffer_desc.html#a6f7b6c6ec7a2d6fd986ae2c2af9f315d',1,'Diligent::BufferDesc::Usage()'],['../struct_diligent_1_1_texture_desc.html#a2379f3e799a8b97f8c36c6ec1a42937c',1,'Diligent::TextureDesc::Usage()']]] +]; diff --git a/doc/html/search/variables_13.html b/doc/html/search/variables_13.html new file mode 100644 index 00000000..c92cbcc3 --- /dev/null +++ b/doc/html/search/variables_13.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_13.js b/doc/html/search/variables_13.js new file mode 100644 index 00000000..bf775460 --- /dev/null +++ b/doc/html/search/variables_13.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['valuetype',['ValueType',['../struct_diligent_1_1_buffer_desc_1_1_buffer_format.html#a014b1706b85db02a1be3799fd74ed9e9',1,'Diligent::BufferDesc::BufferFormat::ValueType()'],['../struct_diligent_1_1_layout_element.html#ac271843df1d7e276a504c12b4315e6e0',1,'Diligent::LayoutElement::ValueType()']]], + ['variabledesc',['VariableDesc',['../struct_diligent_1_1_shader_desc.html#a23854ef77a41630f14fcfc44b679f99a',1,'Diligent::ShaderDesc']]], + ['viewtype',['ViewType',['../struct_diligent_1_1_buffer_view_desc.html#ae7f3af81f195fd5c6c25ee9cc274bc55',1,'Diligent::BufferViewDesc::ViewType()'],['../struct_diligent_1_1_texture_view_desc.html#aff7202999e6f78d0f51e58ceb2e9e301',1,'Diligent::TextureViewDesc::ViewType()']]] +]; diff --git a/doc/html/search/variables_14.html b/doc/html/search/variables_14.html new file mode 100644 index 00000000..2c462043 --- /dev/null +++ b/doc/html/search/variables_14.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_14.js b/doc/html/search/variables_14.js new file mode 100644 index 00000000..3d1414af --- /dev/null +++ b/doc/html/search/variables_14.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['width',['Width',['../struct_diligent_1_1_viewport.html#a2f96ff65484cd8f703ada0678f32a3e7',1,'Diligent::Viewport::Width()'],['../struct_diligent_1_1_swap_chain_desc.html#a93578e91e15e6546d33e292a9a43397a',1,'Diligent::SwapChainDesc::Width()'],['../struct_diligent_1_1_texture_desc.html#a9726140fc14cf4b4c0a274a2c5322709',1,'Diligent::TextureDesc::Width()']]] +]; diff --git a/doc/html/search/variables_2.html b/doc/html/search/variables_2.html new file mode 100644 index 00000000..15275b7a --- /dev/null +++ b/doc/html/search/variables_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_2.js b/doc/html/search/variables_2.js new file mode 100644 index 00000000..0c3f6bf5 --- /dev/null +++ b/doc/html/search/variables_2.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['clearvalue',['ClearValue',['../struct_diligent_1_1_texture_desc.html#ab13dcc16058700967e89c21ac1790cea',1,'Diligent::TextureDesc']]], + ['color',['Color',['../struct_diligent_1_1_optimized_clear_value.html#a11898e2bde2185d78d2ca05bc850e92f',1,'Diligent::OptimizedClearValue']]], + ['colorbufferformat',['ColorBufferFormat',['../struct_diligent_1_1_swap_chain_desc.html#a43f3ed5e1426f6260d8d55d252180a6d',1,'Diligent::SwapChainDesc']]], + ['colorrenderable',['ColorRenderable',['../struct_diligent_1_1_texture_format_info_ext.html#a65ac5cdc4ad7f1d0c11af3bcca89777e',1,'Diligent::TextureFormatInfoExt']]], + ['comparisonfunc',['ComparisonFunc',['../struct_diligent_1_1_sampler_desc.html#ad20a594bd0a1bf52da3612a73753bf48',1,'Diligent::SamplerDesc']]], + ['componentsize',['ComponentSize',['../struct_diligent_1_1_texture_format_attribs.html#a87c63340aa2c943fc0469d905090e728',1,'Diligent::TextureFormatAttribs']]], + ['componenttype',['ComponentType',['../struct_diligent_1_1_texture_format_attribs.html#a50c46afc1ac002c875469fa439faf2e9',1,'Diligent::TextureFormatAttribs']]], + ['computepipeline',['ComputePipeline',['../struct_diligent_1_1_pipeline_state_desc.html#ab5a386c636c28e6b18c618a7cc86c9a5',1,'Diligent::PipelineStateDesc']]], + ['count',['Count',['../struct_diligent_1_1_sample_desc.html#a809d7d8a62bc2a6dc2f5eca51a9298a2',1,'Diligent::SampleDesc']]], + ['cpuaccessflags',['CPUAccessFlags',['../struct_diligent_1_1_buffer_desc.html#ae8db3e539cbbaca87fd437d67f26eb80',1,'Diligent::BufferDesc::CPUAccessFlags()'],['../struct_diligent_1_1_texture_desc.html#a429dac9dc391f1d139042708ae4f3111',1,'Diligent::TextureDesc::CPUAccessFlags()']]], + ['cpudescriptorheapallocationsize',['CPUDescriptorHeapAllocationSize',['../struct_diligent_1_1_engine_d3_d12_attribs.html#a12fe830b453e67b806300b7082aaa485',1,'Diligent::EngineD3D12Attribs']]], + ['cullmode',['CullMode',['../struct_diligent_1_1_rasterizer_state_desc.html#a5c331b6d0f4f320e6f088af64da6b842',1,'Diligent::RasterizerStateDesc']]] +]; diff --git a/doc/html/search/variables_3.html b/doc/html/search/variables_3.html new file mode 100644 index 00000000..fbc36712 --- /dev/null +++ b/doc/html/search/variables_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_3.js b/doc/html/search/variables_3.js new file mode 100644 index 00000000..12f8bae8 --- /dev/null +++ b/doc/html/search/variables_3.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['datasize',['DataSize',['../struct_diligent_1_1_buffer_data.html#a2384ba674fecafae7464d42290d6a7e3',1,'Diligent::BufferData']]], + ['debugflags',['DebugFlags',['../struct_diligent_1_1_engine_d3_d11_attribs.html#ae45ccd8517116ee19b002f85e80bf1b4',1,'Diligent::EngineD3D11Attribs']]], + ['defaultdepthvalue',['DefaultDepthValue',['../struct_diligent_1_1_swap_chain_desc.html#a4c098ffed1ea02069fe6141d80dd6d77',1,'Diligent::SwapChainDesc']]], + ['defaultstencilvalue',['DefaultStencilValue',['../struct_diligent_1_1_swap_chain_desc.html#a5d225a31e09f3cefab7a1146841c2abf',1,'Diligent::SwapChainDesc']]], + ['defaultvariabletype',['DefaultVariableType',['../struct_diligent_1_1_shader_desc.html#a585e792ee56999c8558a104bcb341481',1,'Diligent::ShaderDesc']]], + ['deletedobjectstopurge',['DeletedObjectsToPurge',['../class_diligent_1_1_state_objects_registry.html#ae826dc2c8950c7f40d3fe37dfc1d36b7',1,'Diligent::StateObjectsRegistry']]], + ['depth',['Depth',['../struct_diligent_1_1_depth_stencil_clear_value.html#afd8bc5b2356e2e962a2f5b9350388be0',1,'Diligent::DepthStencilClearValue::Depth()'],['../struct_diligent_1_1_texture_desc.html#ad87979958a20966805d72d9335179613',1,'Diligent::TextureDesc::Depth()']]], + ['depthbias',['DepthBias',['../struct_diligent_1_1_rasterizer_state_desc.html#a9f02e69f65dcaca4eca62f6d3838b87a',1,'Diligent::RasterizerStateDesc']]], + ['depthbiasclamp',['DepthBiasClamp',['../struct_diligent_1_1_rasterizer_state_desc.html#a2165764320d1a1aa270b966effd248ef',1,'Diligent::RasterizerStateDesc']]], + ['depthbufferformat',['DepthBufferFormat',['../struct_diligent_1_1_swap_chain_desc.html#a73cf565892611df8559aa13d1ff8f038',1,'Diligent::SwapChainDesc']]], + ['depthclipenable',['DepthClipEnable',['../struct_diligent_1_1_rasterizer_state_desc.html#ae8d2a89cac03a783c142bbab59f04d64',1,'Diligent::RasterizerStateDesc']]], + ['depthenable',['DepthEnable',['../struct_diligent_1_1_depth_stencil_state_desc.html#a72944ae920f64ba522b48146082c7d2b',1,'Diligent::DepthStencilStateDesc']]], + ['depthfunc',['DepthFunc',['../struct_diligent_1_1_depth_stencil_state_desc.html#a0a0d8bde935fe7b2224f69bbfaf7f851',1,'Diligent::DepthStencilStateDesc']]], + ['depthrenderable',['DepthRenderable',['../struct_diligent_1_1_texture_format_info_ext.html#a2313b53e88e1e5da431bfee32dd7e7d6',1,'Diligent::TextureFormatInfoExt']]], + ['depthstencil',['DepthStencil',['../struct_diligent_1_1_optimized_clear_value.html#a6262729d1a08fb34fb566e78f52ee7d4',1,'Diligent::OptimizedClearValue']]], + ['depthstencildesc',['DepthStencilDesc',['../struct_diligent_1_1_graphics_pipeline_desc.html#ac88b622f9d8305a39e5098abb3f1868b',1,'Diligent::GraphicsPipelineDesc']]], + ['depthstride',['DepthStride',['../struct_diligent_1_1_texture_sub_res_data.html#ae24a67af843826f53e4e1d8b0090b7fd',1,'Diligent::TextureSubResData']]], + ['depthwriteenable',['DepthWriteEnable',['../struct_diligent_1_1_depth_stencil_state_desc.html#a5b31340d85ad2c0652711a576c0aeb79',1,'Diligent::DepthStencilStateDesc']]], + ['desc',['Desc',['../struct_diligent_1_1_static_sampler_desc.html#af69223a4da9c3fa37a6b728e541a51bf',1,'Diligent::StaticSamplerDesc::Desc()'],['../struct_diligent_1_1_shader_creation_attribs.html#afc6c0ca2303848fec84b25e8c4a444fd',1,'Diligent::ShaderCreationAttribs::Desc()']]], + ['destblend',['DestBlend',['../struct_diligent_1_1_render_target_blend_desc.html#a2ce13abe089b2d4a38e1ccc547d6ef29',1,'Diligent::RenderTargetBlendDesc']]], + ['destblendalpha',['DestBlendAlpha',['../struct_diligent_1_1_render_target_blend_desc.html#a99cd9ca2244c4cf01717fde3daceba3a',1,'Diligent::RenderTargetBlendDesc']]], + ['devtype',['DevType',['../struct_diligent_1_1_device_caps.html#abccee23ca3ca2340126ffa78e5800196',1,'Diligent::DeviceCaps']]], + ['dispatchargsbyteoffset',['DispatchArgsByteOffset',['../struct_diligent_1_1_dispatch_compute_attribs.html#a29f5461bf93cbf25387b393dfee41995',1,'Diligent::DispatchComputeAttribs']]], + ['dsvformat',['DSVFormat',['../struct_diligent_1_1_graphics_pipeline_desc.html#ab64cc07f80b8ab677c34b4a17d445bf5',1,'Diligent::GraphicsPipelineDesc']]], + ['dynamicdescriptorallocationchunksize',['DynamicDescriptorAllocationChunkSize',['../struct_diligent_1_1_engine_d3_d12_attribs.html#a9b30d3de9423a1e8e6b3309b6fb7b613',1,'Diligent::EngineD3D12Attribs']]] +]; diff --git a/doc/html/search/variables_4.html b/doc/html/search/variables_4.html new file mode 100644 index 00000000..8067e67f --- /dev/null +++ b/doc/html/search/variables_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_4.js b/doc/html/search/variables_4.js new file mode 100644 index 00000000..1cd3554b --- /dev/null +++ b/doc/html/search/variables_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['elementbytestride',['ElementByteStride',['../struct_diligent_1_1_buffer_desc.html#acb6ed74dcef3d9f2e585dff0d69c29cb',1,'Diligent::BufferDesc']]], + ['entrypoint',['EntryPoint',['../struct_diligent_1_1_shader_creation_attribs.html#ae06a6f4125da854f03b39f31ac0ad013',1,'Diligent::ShaderCreationAttribs']]] +]; diff --git a/doc/html/search/variables_5.html b/doc/html/search/variables_5.html new file mode 100644 index 00000000..7e95e946 --- /dev/null +++ b/doc/html/search/variables_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_5.js b/doc/html/search/variables_5.js new file mode 100644 index 00000000..97b68bc3 --- /dev/null +++ b/doc/html/search/variables_5.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['filepath',['FilePath',['../struct_diligent_1_1_shader_creation_attribs.html#a26734decb81a8c8d625f12596348096d',1,'Diligent::ShaderCreationAttribs']]], + ['fillmode',['FillMode',['../struct_diligent_1_1_rasterizer_state_desc.html#a2740be4e85fa65f0f90c4fc19fee1969',1,'Diligent::RasterizerStateDesc']]], + ['filterable',['Filterable',['../struct_diligent_1_1_texture_format_info_ext.html#a1c36abe83f181f4379eea8a7f53758e1',1,'Diligent::TextureFormatInfoExt']]], + ['firstarrayslice',['FirstArraySlice',['../struct_diligent_1_1_texture_view_desc.html#af5acffe353e11f9eb4e30911d3a86fbf',1,'Diligent::TextureViewDesc']]], + ['firstdepthslice',['FirstDepthSlice',['../struct_diligent_1_1_texture_view_desc.html#ae9d517f33ca0e9d8218d9e5ed201c76a',1,'Diligent::TextureViewDesc']]], + ['firstindexlocation',['FirstIndexLocation',['../struct_diligent_1_1_draw_attribs.html#a74b73ded24ae0830a35d6558af87a1be',1,'Diligent::DrawAttribs']]], + ['firstinstancelocation',['FirstInstanceLocation',['../struct_diligent_1_1_draw_attribs.html#a6d5ebf96be85c07b868b576586aad8d6',1,'Diligent::DrawAttribs']]], + ['format',['Format',['../struct_diligent_1_1_buffer_desc.html#aad6e61d2cd4d66ad3c9fda10e275e296',1,'Diligent::BufferDesc::Format()'],['../struct_diligent_1_1_texture_format_attribs.html#ab63e880dcb9af649e4c52ead4fd3cafd',1,'Diligent::TextureFormatAttribs::Format()'],['../struct_diligent_1_1_optimized_clear_value.html#ac9d7d42da6e94a23a4146bf5bc5a9f04',1,'Diligent::OptimizedClearValue::Format()'],['../struct_diligent_1_1_texture_desc.html#a61757069b9f990537b730d7dc5033ee9',1,'Diligent::TextureDesc::Format()'],['../struct_diligent_1_1_texture_view_desc.html#aff7b78522241d5b185643ef3cba53a31',1,'Diligent::TextureViewDesc::Format()']]], + ['frontcounterclockwise',['FrontCounterClockwise',['../struct_diligent_1_1_rasterizer_state_desc.html#a5d147341937d4edb0e68e267655b56b0',1,'Diligent::RasterizerStateDesc']]], + ['frontface',['FrontFace',['../struct_diligent_1_1_depth_stencil_state_desc.html#a59ced16fe3f430d8ac8e68bf95803c2d',1,'Diligent::DepthStencilStateDesc']]] +]; diff --git a/doc/html/search/variables_6.html b/doc/html/search/variables_6.html new file mode 100644 index 00000000..3d398e62 --- /dev/null +++ b/doc/html/search/variables_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_6.js b/doc/html/search/variables_6.js new file mode 100644 index 00000000..a91deaad --- /dev/null +++ b/doc/html/search/variables_6.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['gpudescriptorheapdynamicsize',['GPUDescriptorHeapDynamicSize',['../struct_diligent_1_1_engine_d3_d12_attribs.html#a922a172c8be3881a1b1480802ac3ec10',1,'Diligent::EngineD3D12Attribs']]], + ['gpudescriptorheapsize',['GPUDescriptorHeapSize',['../struct_diligent_1_1_engine_d3_d12_attribs.html#af28560b39d2c2a20a6f0dfb4acfb641b',1,'Diligent::EngineD3D12Attribs']]], + ['graphicspipeline',['GraphicsPipeline',['../struct_diligent_1_1_pipeline_state_desc.html#ae92c6751af3487c12a3158ecc864b21f',1,'Diligent::PipelineStateDesc']]] +]; diff --git a/doc/html/search/variables_7.html b/doc/html/search/variables_7.html new file mode 100644 index 00000000..7b791460 --- /dev/null +++ b/doc/html/search/variables_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_7.js b/doc/html/search/variables_7.js new file mode 100644 index 00000000..622f6e02 --- /dev/null +++ b/doc/html/search/variables_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['height',['Height',['../struct_diligent_1_1_viewport.html#a3bf0bdf2e63f5ddbb39771208714a6fd',1,'Diligent::Viewport::Height()'],['../struct_diligent_1_1_swap_chain_desc.html#abdfe5c1308ae6a670d4a27ee289fd945',1,'Diligent::SwapChainDesc::Height()'],['../struct_diligent_1_1_texture_desc.html#a61bc12d7c99fd26e00555776bf0e9fdf',1,'Diligent::TextureDesc::Height()']]] +]; diff --git a/doc/html/search/variables_8.html b/doc/html/search/variables_8.html new file mode 100644 index 00000000..8ebc5f6b --- /dev/null +++ b/doc/html/search/variables_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_8.js b/doc/html/search/variables_8.js new file mode 100644 index 00000000..9f4d3bdc --- /dev/null +++ b/doc/html/search/variables_8.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['independentblendenable',['IndependentBlendEnable',['../struct_diligent_1_1_blend_state_desc.html#ad54bf97f739f0f2e362073f90e6d91ed',1,'Diligent::BlendStateDesc']]], + ['indextype',['IndexType',['../struct_diligent_1_1_draw_attribs.html#a441e328dbf0df16449d1ebaec15f2f3f',1,'Diligent::DrawAttribs']]], + ['indirectdrawargsoffset',['IndirectDrawArgsOffset',['../struct_diligent_1_1_draw_attribs.html#a2bffcc70ecb79a93059cccafcc4c5622',1,'Diligent::DrawAttribs']]], + ['inputindex',['InputIndex',['../struct_diligent_1_1_layout_element.html#add2a1cf886367647a6b5897793328ba9',1,'Diligent::LayoutElement']]], + ['inputlayout',['InputLayout',['../struct_diligent_1_1_graphics_pipeline_desc.html#a1fc9bf9fa965b6c4b666e016e754c180',1,'Diligent::GraphicsPipelineDesc']]], + ['instancedatasteprate',['InstanceDataStepRate',['../struct_diligent_1_1_layout_element.html#a7d7ba6ee279ffdb1ab101c164b32a203',1,'Diligent::LayoutElement']]], + ['iscomputepipeline',['IsComputePipeline',['../struct_diligent_1_1_pipeline_state_desc.html#adbfcafcd303218af1c0123d0362dfe46',1,'Diligent::PipelineStateDesc']]], + ['isindexed',['IsIndexed',['../struct_diligent_1_1_draw_attribs.html#a1cc81bc2d59a429e39da7b84fe51d5c9',1,'Diligent::DrawAttribs']]], + ['isindirect',['IsIndirect',['../struct_diligent_1_1_draw_attribs.html#adf7f7c85b3c39454894e93666cc883c2',1,'Diligent::DrawAttribs']]], + ['isnormalized',['IsNormalized',['../struct_diligent_1_1_buffer_desc_1_1_buffer_format.html#a1050af245b83f52523bdc7cfed2ffd71',1,'Diligent::BufferDesc::BufferFormat::IsNormalized()'],['../struct_diligent_1_1_layout_element.html#abd37625caf1c0490740517b662a8a1ae',1,'Diligent::LayoutElement::IsNormalized()']]] +]; diff --git a/doc/html/search/variables_9.html b/doc/html/search/variables_9.html new file mode 100644 index 00000000..12136613 --- /dev/null +++ b/doc/html/search/variables_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_9.js b/doc/html/search/variables_9.js new file mode 100644 index 00000000..e45d4bfa --- /dev/null +++ b/doc/html/search/variables_9.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['layoutelements',['LayoutElements',['../struct_diligent_1_1_input_layout_desc.html#a3b6e3b8fcc1557ac07c78320c6ac399a',1,'Diligent::InputLayoutDesc']]], + ['left',['left',['../struct_diligent_1_1_rect.html#a2d66e3061bbee9a029437d24fc430507',1,'Diligent::Rect']]], + ['logicop',['LogicOp',['../struct_diligent_1_1_render_target_blend_desc.html#a6b1ca6f5409cb0df8c7091bd7238ca74',1,'Diligent::RenderTargetBlendDesc']]], + ['logicoperationenable',['LogicOperationEnable',['../struct_diligent_1_1_render_target_blend_desc.html#a975387a5370bd04a00d97d7a159398e6',1,'Diligent::RenderTargetBlendDesc']]] +]; diff --git a/doc/html/search/variables_a.html b/doc/html/search/variables_a.html new file mode 100644 index 00000000..24819a37 --- /dev/null +++ b/doc/html/search/variables_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_a.js b/doc/html/search/variables_a.js new file mode 100644 index 00000000..08912c0c --- /dev/null +++ b/doc/html/search/variables_a.js @@ -0,0 +1,87 @@ +var searchData= +[ + ['m_5fblendfactors',['m_BlendFactors',['../class_diligent_1_1_device_context_base.html#aa85029d7d67a055f1cbc85ec0bc27a60',1,'Diligent::DeviceContextBase']]], + ['m_5fbuffviewobjallocator',['m_BuffViewObjAllocator',['../class_diligent_1_1_render_device_base.html#a19aa05fcdd0288f4b4e5f4af578e7d77',1,'Diligent::RenderDeviceBase']]], + ['m_5fbufobjallocator',['m_BufObjAllocator',['../class_diligent_1_1_render_device_base.html#aceae2d24ad475dd41b74ef5acc3e33b0',1,'Diligent::RenderDeviceBase']]], + ['m_5fdesc',['m_Desc',['../class_diligent_1_1_device_object_base.html#a4ad4da7984cbf82505d362f0fc197bae',1,'Diligent::DeviceObjectBase']]], + ['m_5fdescriptor',['m_Descriptor',['../class_diligent_1_1_texture_view_d3_d12_impl.html#a929c92afae9a78068418964cc5b43331',1,'Diligent::TextureViewD3D12Impl']]], + ['m_5fdummyshadervar',['m_DummyShaderVar',['../class_diligent_1_1_shader_base.html#acfa66df57c881400087081985a26431e',1,'Diligent::ShaderBase']]], + ['m_5findexdatastartoffset',['m_IndexDataStartOffset',['../class_diligent_1_1_device_context_base.html#ad3c624d6156bab29d05458217e8ae060',1,'Diligent::DeviceContextBase']]], + ['m_5fisdefaultframebufferbound',['m_IsDefaultFramebufferBound',['../class_diligent_1_1_device_context_base.html#a048f97de19aa98d01a46891ff6ccb086',1,'Diligent::DeviceContextBase']]], + ['m_5fnumboundrendertargets',['m_NumBoundRenderTargets',['../class_diligent_1_1_device_context_base.html#acfa81f8449932663a06862f03d400b2c',1,'Diligent::DeviceContextBase']]], + ['m_5fnumscissorrects',['m_NumScissorRects',['../class_diligent_1_1_device_context_base.html#a0484a882bf170215e299b8046d47a4ef',1,'Diligent::DeviceContextBase']]], + ['m_5fnumshaders',['m_NumShaders',['../class_diligent_1_1_pipeline_state_base.html#a901b298592cced3a12082de676704d85',1,'Diligent::PipelineStateBase']]], + ['m_5fnumvertexstreams',['m_NumVertexStreams',['../class_diligent_1_1_device_context_base.html#a3e208cddf1ad782c614c626d6ecae429',1,'Diligent::DeviceContextBase']]], + ['m_5fnumviewports',['m_NumViewports',['../class_diligent_1_1_device_context_base.html#a19c9b26ce966ce3f6b6b3914cb803fa8',1,'Diligent::DeviceContextBase']]], + ['m_5fobjectnamecopy',['m_ObjectNameCopy',['../class_diligent_1_1_device_object_base.html#a38d8b07e45ed75f4e144c0d7f359a14d',1,'Diligent::DeviceObjectBase']]], + ['m_5fpbounddepthstencil',['m_pBoundDepthStencil',['../class_diligent_1_1_device_context_base.html#a3d6d4ed8592e5f9d388c167525201009',1,'Diligent::DeviceContextBase']]], + ['m_5fpboundrendertargets',['m_pBoundRenderTargets',['../class_diligent_1_1_device_context_base.html#a9792523cd2cc8ec09464e8b8d8771887',1,'Diligent::DeviceContextBase']]], + ['m_5fpbuffer',['m_pBuffer',['../class_diligent_1_1_buffer_view_base.html#a52e611ba9e96dd4cc985b9f77588529c',1,'Diligent::BufferViewBase']]], + ['m_5fpcs',['m_pCS',['../class_diligent_1_1_pipeline_state_base.html#ad9c448280c41c57d8c745edbde788063',1,'Diligent::PipelineStateBase']]], + ['m_5fpd3d11texture',['m_pd3d11Texture',['../class_diligent_1_1_texture_base_d3_d11.html#a681cce9a4730459dbb10871d4ab7c401',1,'Diligent::TextureBaseD3D11']]], + ['m_5fpd3d11view',['m_pD3D11View',['../class_diligent_1_1_buffer_view_d3_d11_impl.html#aa3e99b86b544dbb84e4b7eb725627dca',1,'Diligent::BufferViewD3D11Impl::m_pD3D11View()'],['../class_diligent_1_1_texture_view_d3_d11_impl.html#a2852fe19f64e1315f348a4ad3849dcda',1,'Diligent::TextureViewD3D11Impl::m_pD3D11View()']]], + ['m_5fpd3d12resource',['m_pd3d12Resource',['../class_diligent_1_1_d3_d12_resource_base.html#a384791577c4cfbd0cfaca4ab6057097a',1,'Diligent::D3D12ResourceBase']]], + ['m_5fpdefaultdsv',['m_pDefaultDSV',['../class_diligent_1_1_texture_base.html#a6a63f0edcd4eabfb50c2be35d4c42bba',1,'Diligent::TextureBase']]], + ['m_5fpdefaultrtv',['m_pDefaultRTV',['../class_diligent_1_1_texture_base.html#a6b84853e321ab2023d96a62ae1b71095',1,'Diligent::TextureBase']]], + ['m_5fpdefaultsrv',['m_pDefaultSRV',['../class_diligent_1_1_buffer_base.html#a07d78ac464ec5c8a05900bb4819d164d',1,'Diligent::BufferBase::m_pDefaultSRV()'],['../class_diligent_1_1_texture_base.html#a422073618342c8734795dee260e8b5b7',1,'Diligent::TextureBase::m_pDefaultSRV()']]], + ['m_5fpdefaultuav',['m_pDefaultUAV',['../class_diligent_1_1_buffer_base.html#af638f9c10f9c317845f1d73e35dccfdf',1,'Diligent::BufferBase::m_pDefaultUAV()'],['../class_diligent_1_1_texture_base.html#ac39e3ed2439c28eecbde7b5e57a80bec',1,'Diligent::TextureBase::m_pDefaultUAV()']]], + ['m_5fpdevice',['m_pDevice',['../class_diligent_1_1_device_context_base.html#aff0d5fdeb9c04c5d428befc53c2f1146',1,'Diligent::DeviceContextBase']]], + ['m_5fpds',['m_pDS',['../class_diligent_1_1_pipeline_state_base.html#a06bf5019d7ff2def707cc81bb79c3cee',1,'Diligent::PipelineStateBase']]], + ['m_5fpgs',['m_pGS',['../class_diligent_1_1_pipeline_state_base.html#adf8c72e092b514fb745cee9033343357',1,'Diligent::PipelineStateBase']]], + ['m_5fphs',['m_pHS',['../class_diligent_1_1_pipeline_state_base.html#a55066c8c3a861cf409f6e6535753372d',1,'Diligent::PipelineStateBase']]], + ['m_5fpindexbuffer',['m_pIndexBuffer',['../class_diligent_1_1_device_context_base.html#a086cb68e9fabbee8118793ffc5b3ea8d',1,'Diligent::DeviceContextBase']]], + ['m_5fppipelinestate',['m_pPipelineState',['../class_diligent_1_1_device_context_base.html#accdaef46d7edc861895c5616466b68ed',1,'Diligent::DeviceContextBase']]], + ['m_5fpps',['m_pPS',['../class_diligent_1_1_pipeline_state_base.html#ad3a1941b976b6c84a6dbb1b9b4d9a080',1,'Diligent::PipelineStateBase']]], + ['m_5fppshaders',['m_ppShaders',['../class_diligent_1_1_pipeline_state_base.html#a74528c3a0f9bf38b38775a272addd500',1,'Diligent::PipelineStateBase']]], + ['m_5fprenderdevice',['m_pRenderDevice',['../class_diligent_1_1_swap_chain_base.html#abc09a0e8693486adfde7b00359e70eb8',1,'Diligent::SwapChainBase']]], + ['m_5fpsampler',['m_pSampler',['../class_diligent_1_1_texture_view_base.html#a0c4b1d7ff93072f2bcc7c9843503c3b8',1,'Diligent::TextureViewBase']]], + ['m_5fpsoallocator',['m_PSOAllocator',['../class_diligent_1_1_render_device_base.html#a9ff23a4259f051a78e2292e7b5ae79c8',1,'Diligent::RenderDeviceBase']]], + ['m_5fpswapchain',['m_pSwapChain',['../class_diligent_1_1_device_context_base.html#a899f5fa7f6a7ec9e6751b453c8b8fdda',1,'Diligent::DeviceContextBase']]], + ['m_5fptexture',['m_pTexture',['../class_diligent_1_1_texture_view_base.html#aacd89c0d9f3151feee504630a3f2c5a1',1,'Diligent::TextureViewBase']]], + ['m_5fpvs',['m_pVS',['../class_diligent_1_1_pipeline_state_base.html#af66a7c20dc9251400779cf17cdbb4e87',1,'Diligent::PipelineStateBase']]], + ['m_5fresmappingallocator',['m_ResMappingAllocator',['../class_diligent_1_1_render_device_base.html#a02eeb28e659e12c5b5db22abd7b69ab0',1,'Diligent::RenderDeviceBase']]], + ['m_5fsamplerobjallocator',['m_SamplerObjAllocator',['../class_diligent_1_1_render_device_base.html#a21ecf62f9ad329322a2e29c327e22ca9',1,'Diligent::RenderDeviceBase']]], + ['m_5fsamplersregistry',['m_SamplersRegistry',['../class_diligent_1_1_render_device_base.html#a155f91be8d4e8edd610666ddc29021d1',1,'Diligent::RenderDeviceBase']]], + ['m_5fscissorrects',['m_ScissorRects',['../class_diligent_1_1_device_context_base.html#a44d5db30d0b829d95d2f58381fb0510c',1,'Diligent::DeviceContextBase']]], + ['m_5fshaderobjallocator',['m_ShaderObjAllocator',['../class_diligent_1_1_render_device_base.html#a9f24bf3592175584c001454c1650e6d2',1,'Diligent::RenderDeviceBase']]], + ['m_5fspbuffer',['m_spBuffer',['../class_diligent_1_1_buffer_view_base.html#ae76607f4c09fb252ffc0f5e5c433d5dd',1,'Diligent::BufferViewBase']]], + ['m_5fsppso',['m_spPSO',['../class_diligent_1_1_shader_resource_binding_base.html#af127da4b8c75ef46878a0c8762c8c707',1,'Diligent::ShaderResourceBindingBase']]], + ['m_5fsptexture',['m_spTexture',['../class_diligent_1_1_texture_view_base.html#a78cc90a178c7720f8a563e540e174691',1,'Diligent::TextureViewBase']]], + ['m_5fsrballocator',['m_SRBAllocator',['../class_diligent_1_1_render_device_base.html#a0877e7b3f2412aa9dd86c7ce7b6434ba',1,'Diligent::RenderDeviceBase']]], + ['m_5fstaticsamplers',['m_StaticSamplers',['../class_diligent_1_1_shader_base.html#a812944988f3a2cf9d4a1d074f1915295',1,'Diligent::ShaderBase']]], + ['m_5fstencilref',['m_StencilRef',['../class_diligent_1_1_device_context_base.html#adff46e5925212c4efb6d0deb35c2eb36',1,'Diligent::DeviceContextBase']]], + ['m_5fstringpool',['m_StringPool',['../class_diligent_1_1_shader_base.html#a64f93fb831a7678033d7240c81483095',1,'Diligent::ShaderBase']]], + ['m_5fswapchaindesc',['m_SwapChainDesc',['../class_diligent_1_1_swap_chain_base.html#a90d1239e1d91f6e4eed19d5f7cf6d0b7',1,'Diligent::SwapChainBase']]], + ['m_5ftexobjallocator',['m_TexObjAllocator',['../class_diligent_1_1_render_device_base.html#ac566200959ccaa4418651d7700f9d8be',1,'Diligent::RenderDeviceBase']]], + ['m_5ftexviewobjallocator',['m_TexViewObjAllocator',['../class_diligent_1_1_render_device_base.html#a1729f5bc9dc7c8588e8ddb3f54524330',1,'Diligent::RenderDeviceBase']]], + ['m_5fvariablesdesc',['m_VariablesDesc',['../class_diligent_1_1_shader_base.html#ade4d8dd8b6fc208f6d1318e4dffd7aaa',1,'Diligent::ShaderBase']]], + ['m_5fvertexstreams',['m_VertexStreams',['../class_diligent_1_1_device_context_base.html#a16bfbd8c1a539868f274b2491561f4a8',1,'Diligent::DeviceContextBase']]], + ['m_5fviewports',['m_Viewports',['../class_diligent_1_1_device_context_base.html#a21fcaf1398ab2d4eb3aadc5b16dc90ae',1,'Diligent::DeviceContextBase']]], + ['m_5fwpdeferredcontexts',['m_wpDeferredContexts',['../class_diligent_1_1_render_device_base.html#a0432cc6a912e9f5b87c470873840b068',1,'Diligent::RenderDeviceBase']]], + ['m_5fwpdevicecontext',['m_wpDeviceContext',['../class_diligent_1_1_swap_chain_base.html#adfa0afc3bec1c866c37015d8d4986540',1,'Diligent::SwapChainBase']]], + ['m_5fwpimmediatecontext',['m_wpImmediateContext',['../class_diligent_1_1_render_device_base.html#a141fe3acb5d2f5ff799c315e79b99eb8',1,'Diligent::RenderDeviceBase']]], + ['macros',['Macros',['../struct_diligent_1_1_shader_creation_attribs.html#afa568255f209ad0f61ef97e57bb0d402',1,'Diligent::ShaderCreationAttribs']]], + ['magfilter',['MagFilter',['../struct_diligent_1_1_sampler_desc.html#a86e07a8b1c2943695b996dc5043e26bd',1,'Diligent::SamplerDesc']]], + ['majorversion',['MajorVersion',['../struct_diligent_1_1_device_caps.html#aa6930d494e233ea0b46d0ec7d260a870',1,'Diligent::DeviceCaps']]], + ['maxanisotropy',['MaxAnisotropy',['../struct_diligent_1_1_sampler_desc.html#a20c78bf3c4e7c05781f1e32dce60f025',1,'Diligent::SamplerDesc']]], + ['maxbufferslots',['MaxBufferSlots',['../namespace_diligent.html#a9d3d207f6d44cb2988a2748e4dc97722',1,'Diligent']]], + ['maxdepth',['MaxDepth',['../struct_diligent_1_1_viewport.html#a25f90df01dd587cc8ad69cfbf278d8bd',1,'Diligent::Viewport']]], + ['maxlod',['MaxLOD',['../struct_diligent_1_1_sampler_desc.html#a8e476ea05829137b4d53c47f41c1f306',1,'Diligent::SamplerDesc']]], + ['maxrendertargets',['MaxRenderTargets',['../struct_diligent_1_1_blend_state_desc.html#a7668a548a9b1760370514670791b0fb0',1,'Diligent::BlendStateDesc::MaxRenderTargets()'],['../namespace_diligent.html#ac667e59fc3ba021e3bd1d1424a3674d8',1,'Diligent::MaxRenderTargets()']]], + ['maxx',['MaxX',['../struct_diligent_1_1_box.html#a5f38a77f2749ad506c4418463ab7ab30',1,'Diligent::Box']]], + ['maxy',['MaxY',['../struct_diligent_1_1_box.html#a332e14c1408ce8b260c9ad4ffb422200',1,'Diligent::Box']]], + ['maxz',['MaxZ',['../struct_diligent_1_1_box.html#af5b6da6f645ee6d219b5723825b1ec15',1,'Diligent::Box']]], + ['mindepth',['MinDepth',['../struct_diligent_1_1_viewport.html#a7e6d0e084796700cad042cbf125f9f52',1,'Diligent::Viewport']]], + ['minfilter',['MinFilter',['../struct_diligent_1_1_sampler_desc.html#a033ebb2c7d97f8c4ec464d05499a9107',1,'Diligent::SamplerDesc']]], + ['minlod',['MinLOD',['../struct_diligent_1_1_sampler_desc.html#a5af812014f093aeea8edaf2dd26e0f61',1,'Diligent::SamplerDesc']]], + ['minorversion',['MinorVersion',['../struct_diligent_1_1_device_caps.html#abdc1be2715af7e39f54454b26395ac73',1,'Diligent::DeviceCaps']]], + ['minx',['MinX',['../struct_diligent_1_1_box.html#a6cec8f1f8c44cc53b4cd1dfe3b9f08d1',1,'Diligent::Box']]], + ['miny',['MinY',['../struct_diligent_1_1_box.html#aaf2671702197fb75ab16e80b71999768',1,'Diligent::Box']]], + ['minz',['MinZ',['../struct_diligent_1_1_box.html#aac79f5a5e0830b9cbdbb16ba04491420',1,'Diligent::Box']]], + ['mipfilter',['MipFilter',['../struct_diligent_1_1_sampler_desc.html#a64df7cb18ed8d2ed09f2fdd106f17dce',1,'Diligent::SamplerDesc']]], + ['miplevels',['MipLevels',['../struct_diligent_1_1_texture_desc.html#a3e1b9f6489054523bfeb0252071cf997',1,'Diligent::TextureDesc']]], + ['miplodbias',['MipLODBias',['../struct_diligent_1_1_sampler_desc.html#ae63028ae64656ff35520dab609f94696',1,'Diligent::SamplerDesc']]], + ['miscflags',['MiscFlags',['../struct_diligent_1_1_texture_desc.html#a9386aa4e98ad13a15363e647b4238a0d',1,'Diligent::TextureDesc']]], + ['mode',['Mode',['../struct_diligent_1_1_buffer_desc.html#accc3f239b5408d849414bcb6baabf6a7',1,'Diligent::BufferDesc']]], + ['mostdetailedmip',['MostDetailedMip',['../struct_diligent_1_1_texture_view_desc.html#a4dab3e4cc5720c1cb5eb5cc6e12c834f',1,'Diligent::TextureViewDesc']]] +]; diff --git a/doc/html/search/variables_b.html b/doc/html/search/variables_b.html new file mode 100644 index 00000000..b306931e --- /dev/null +++ b/doc/html/search/variables_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_b.js b/doc/html/search/variables_b.js new file mode 100644 index 00000000..8da1d63e --- /dev/null +++ b/doc/html/search/variables_b.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['name',['Name',['../struct_diligent_1_1_device_object_attribs.html#a14a31dc6ad69e0b79514e5349e9b4fc0',1,'Diligent::DeviceObjectAttribs::Name()'],['../struct_diligent_1_1_texture_format_attribs.html#a6ed4f3931984712f58e8ac6a4863565a',1,'Diligent::TextureFormatAttribs::Name()'],['../struct_diligent_1_1_resource_mapping_entry.html#a62f99ae784081dd78b7a3336c3e3662d',1,'Diligent::ResourceMappingEntry::Name()'],['../struct_diligent_1_1_shader_variable_desc.html#a469f1c83d48f666ec71cc8ec1015cfce',1,'Diligent::ShaderVariableDesc::Name()']]], + ['nodemask',['NodeMask',['../struct_diligent_1_1_graphics_pipeline_desc.html#adb8ecb078c4e457b37ba2e01fbbecb34',1,'Diligent::GraphicsPipelineDesc']]], + ['numarrayslices',['NumArraySlices',['../struct_diligent_1_1_texture_view_desc.html#a73d11640604c30831529fa0ed4bff739',1,'Diligent::TextureViewDesc']]], + ['numcommandstoflushcmdlist',['NumCommandsToFlushCmdList',['../struct_diligent_1_1_engine_d3_d12_attribs.html#a71eeaab09ee38f40ae159f7e8ecc801b',1,'Diligent::EngineD3D12Attribs']]], + ['numcomponents',['NumComponents',['../struct_diligent_1_1_buffer_desc_1_1_buffer_format.html#ae037802569e9d4f5c811dbf7c155f0ab',1,'Diligent::BufferDesc::BufferFormat::NumComponents()'],['../struct_diligent_1_1_texture_format_attribs.html#acfd78789dc8c707a8012fd1f858b6389',1,'Diligent::TextureFormatAttribs::NumComponents()'],['../struct_diligent_1_1_layout_element.html#ab3e9d89fa173939af8b440d597a3ff49',1,'Diligent::LayoutElement::NumComponents()']]], + ['numdepthslices',['NumDepthSlices',['../struct_diligent_1_1_texture_view_desc.html#ae06333b962447fde60b73ab36e5d4821',1,'Diligent::TextureViewDesc']]], + ['numelements',['NumElements',['../struct_diligent_1_1_input_layout_desc.html#a22b13cfa930507a76b6025ee6bf05553',1,'Diligent::InputLayoutDesc']]], + ['numindices',['NumIndices',['../struct_diligent_1_1_draw_attribs.html#a6c4d5baa3cbddc16e7ca12eba5823d7b',1,'Diligent::DrawAttribs']]], + ['numinstances',['NumInstances',['../struct_diligent_1_1_draw_attribs.html#afaa7465592245150fcd7edde9f3d769c',1,'Diligent::DrawAttribs']]], + ['nummiplevels',['NumMipLevels',['../struct_diligent_1_1_texture_view_desc.html#a579d6744e8fd271701401e1c9a903c74',1,'Diligent::TextureViewDesc']]], + ['numrendertargets',['NumRenderTargets',['../struct_diligent_1_1_graphics_pipeline_desc.html#acd646619226f2300e70e5c03bd5af7fc',1,'Diligent::GraphicsPipelineDesc']]], + ['numshadertypes',['NumShaderTypes',['../class_diligent_1_1_device_context_d3_d11_impl.html#afcd3ab8dc67e23c6689028bf34d22c16',1,'Diligent::DeviceContextD3D11Impl']]], + ['numstaticsamplers',['NumStaticSamplers',['../struct_diligent_1_1_shader_desc.html#ab7980cf953bf039450eabd77c6a79979',1,'Diligent::ShaderDesc']]], + ['numsubresources',['NumSubresources',['../struct_diligent_1_1_texture_data.html#aa2f8aae2bc55091930db5cbe89884712',1,'Diligent::TextureData']]], + ['numvariables',['NumVariables',['../struct_diligent_1_1_shader_desc.html#a0f313b46740d5a80c371acf89e29ec0f',1,'Diligent::ShaderDesc']]], + ['numvertices',['NumVertices',['../struct_diligent_1_1_draw_attribs.html#aac1a1696f8dbbbcc612ad6747ceb48de',1,'Diligent::DrawAttribs']]] +]; diff --git a/doc/html/search/variables_c.html b/doc/html/search/variables_c.html new file mode 100644 index 00000000..75709df8 --- /dev/null +++ b/doc/html/search/variables_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_c.js b/doc/html/search/variables_c.js new file mode 100644 index 00000000..5fb714ca --- /dev/null +++ b/doc/html/search/variables_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['offset',['Offset',['../struct_diligent_1_1_vertex_stream_info.html#ac839eba6e7edb4c22ad6d32e60dc4f58',1,'Diligent::VertexStreamInfo']]] +]; diff --git a/doc/html/search/variables_d.html b/doc/html/search/variables_d.html new file mode 100644 index 00000000..34c80a48 --- /dev/null +++ b/doc/html/search/variables_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_d.js b/doc/html/search/variables_d.js new file mode 100644 index 00000000..319aa42c --- /dev/null +++ b/doc/html/search/variables_d.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['pbuff',['pBuff',['../struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_c_b.html#a0681b9b314e7e71fcfdee6a1a7b488fa',1,'Diligent::ShaderResourceCacheD3D11::CachedCB']]], + ['pbuffer',['pBuffer',['../struct_diligent_1_1_vertex_stream_info.html#a2ec47825b3e3ebb2955b87692377c2be',1,'Diligent::VertexStreamInfo']]], + ['pcs',['pCS',['../struct_diligent_1_1_compute_pipeline_desc.html#a8fda9c722e19f615786f3bad1596d1d9',1,'Diligent::ComputePipelineDesc']]], + ['pdata',['pData',['../struct_diligent_1_1_buffer_data.html#a26cc7ca53f891a63ed1846e27b8e50d8',1,'Diligent::BufferData::pData()'],['../struct_diligent_1_1_texture_sub_res_data.html#a2b2bb575cc953e611b8cba07192f18d1',1,'Diligent::TextureSubResData::pData()']]], + ['pds',['pDS',['../struct_diligent_1_1_graphics_pipeline_desc.html#af5545df4251e77b506173ee4c1de0849',1,'Diligent::GraphicsPipelineDesc']]], + ['pentries',['pEntries',['../struct_diligent_1_1_resource_mapping_desc.html#a3d3600aeb1bb02e90078c19f5a917fe8',1,'Diligent::ResourceMappingDesc']]], + ['pgs',['pGS',['../struct_diligent_1_1_graphics_pipeline_desc.html#ae16271d03446561e726323f42c9a4a39',1,'Diligent::GraphicsPipelineDesc']]], + ['phs',['pHS',['../struct_diligent_1_1_graphics_pipeline_desc.html#a4c624af6f5113cbaa2a082d4191ab317',1,'Diligent::GraphicsPipelineDesc']]], + ['pindirectdispatchattribs',['pIndirectDispatchAttribs',['../struct_diligent_1_1_dispatch_compute_attribs.html#a6a3c601127e18c95e3b326acfca63bc9',1,'Diligent::DispatchComputeAttribs']]], + ['pindirectdrawattribs',['pIndirectDrawAttribs',['../struct_diligent_1_1_draw_attribs.html#a7eac52d6bb19de8669c431041bd81867',1,'Diligent::DrawAttribs']]], + ['pobject',['pObject',['../struct_diligent_1_1_resource_mapping_entry.html#a82aeec5138b18d665bce3a4d5bec1bfb',1,'Diligent::ResourceMappingEntry']]], + ['ppconversionstream',['ppConversionStream',['../struct_diligent_1_1_shader_creation_attribs.html#a7cab639ba508ebc065290f8d9d0c8e91',1,'Diligent::ShaderCreationAttribs']]], + ['pps',['pPS',['../struct_diligent_1_1_graphics_pipeline_desc.html#aab5ed20f36ab8e2c715eced91b420ca3',1,'Diligent::GraphicsPipelineDesc']]], + ['prawmemallocator',['pRawMemAllocator',['../struct_diligent_1_1_engine_creation_attribs.html#a4eec3de7d2ef7c409986620c204b5a29',1,'Diligent::EngineCreationAttribs']]], + ['primitivetopologytype',['PrimitiveTopologyType',['../struct_diligent_1_1_graphics_pipeline_desc.html#a958649ac80956180b9ee7f3f6311e05d',1,'Diligent::GraphicsPipelineDesc']]], + ['psampler',['pSampler',['../struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_sampler.html#a9474d89f3ab35a3a412f543fb323be63',1,'Diligent::ShaderResourceCacheD3D11::CachedSampler']]], + ['pshadersourcestreamfactory',['pShaderSourceStreamFactory',['../struct_diligent_1_1_shader_creation_attribs.html#a5e2f0d77ee1090be19d6d55c06df5972',1,'Diligent::ShaderCreationAttribs']]], + ['psrcbuffer',['pSrcBuffer',['../struct_diligent_1_1_texture_sub_res_data.html#a3b7a503a92d3c70b4875da0ac48facb9',1,'Diligent::TextureSubResData']]], + ['psubresources',['pSubResources',['../struct_diligent_1_1_texture_data.html#ab7bd0ded2a2f31e8f6bdb1eaec410c04',1,'Diligent::TextureData']]], + ['pview',['pView',['../struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_resource.html#a53963c151854c0e310d7fc724ec232b1',1,'Diligent::ShaderResourceCacheD3D11::CachedResource']]], + ['pvs',['pVS',['../struct_diligent_1_1_graphics_pipeline_desc.html#aa91ba617bd9f5b1feed4d6ccccf0cfdb',1,'Diligent::GraphicsPipelineDesc']]] +]; diff --git a/doc/html/search/variables_e.html b/doc/html/search/variables_e.html new file mode 100644 index 00000000..4a1c8a61 --- /dev/null +++ b/doc/html/search/variables_e.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_e.js b/doc/html/search/variables_e.js new file mode 100644 index 00000000..27850ff7 --- /dev/null +++ b/doc/html/search/variables_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['quality',['Quality',['../struct_diligent_1_1_sample_desc.html#afb1004a448b0019aed45a3fcf72afeb8',1,'Diligent::SampleDesc']]] +]; diff --git a/doc/html/search/variables_f.html b/doc/html/search/variables_f.html new file mode 100644 index 00000000..cc86fb59 --- /dev/null +++ b/doc/html/search/variables_f.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/doc/html/search/variables_f.js b/doc/html/search/variables_f.js new file mode 100644 index 00000000..737179ee --- /dev/null +++ b/doc/html/search/variables_f.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['rasterizerdesc',['RasterizerDesc',['../struct_diligent_1_1_graphics_pipeline_desc.html#a03e5103a65698b8adc75ad0bd8fba27e',1,'Diligent::GraphicsPipelineDesc']]], + ['relativeoffset',['RelativeOffset',['../struct_diligent_1_1_layout_element.html#af3f43010e8ffcd1a9b92e500ae0eefaf',1,'Diligent::LayoutElement']]], + ['rendertargets',['RenderTargets',['../struct_diligent_1_1_blend_state_desc.html#aae5a5ae252633121a1499db0d6d67462',1,'Diligent::BlendStateDesc']]], + ['rendertargetwritemask',['RenderTargetWriteMask',['../struct_diligent_1_1_render_target_blend_desc.html#afedb3e5e95720375c80ef7a14bad13f1',1,'Diligent::RenderTargetBlendDesc']]], + ['right',['right',['../struct_diligent_1_1_rect.html#a3b11c8294a274db4109b74a049be1f79',1,'Diligent::Rect']]], + ['rtvformats',['RTVFormats',['../struct_diligent_1_1_graphics_pipeline_desc.html#a8264e6f6d226faf9f648d32c05c93592',1,'Diligent::GraphicsPipelineDesc']]] +]; diff --git a/doc/html/sensor_manager_8h_source.html b/doc/html/sensor_manager_8h_source.html new file mode 100644 index 00000000..c7264cb4 --- /dev/null +++ b/doc/html/sensor_manager_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/ndk_helper/include/sensorManager.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    sensorManager.h
    +
    +
    +
    1 /*
    2  * Copyright 2013 The Android Open Source Project
    3  *
    4  * Licensed under the Apache License, Version 2.0 (the "License");
    5  * you may not use this file except in compliance with the License.
    6  * You may obtain a copy of the License at
    7  *
    8  * http://www.apache.org/licenses/LICENSE-2.0
    9  *
    10  * Unless required by applicable law or agreed to in writing, software
    11  * distributed under the License is distributed on an "AS IS" BASIS,
    12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  * See the License for the specific language governing permissions and
    14  * limitations under the License.
    15  */
    16 
    17 //--------------------------------------------------------------------------------
    18 // sensorManager.h
    19 //--------------------------------------------------------------------------------
    20 #ifndef SENSORMANAGER_H_
    21 #define SENSORMANAGER_H_
    22 
    23 #include <android/sensor.h>
    24 #include "JNIHelper.h"
    25 
    26 namespace ndk_helper {
    27 //--------------------------------------------------------------------------------
    28 // Constants
    29 //--------------------------------------------------------------------------------
    30 enum ORIENTATION {
    31  ORIENTATION_UNKNOWN = -1,
    32  ORIENTATION_PORTRAIT = 0,
    33  ORIENTATION_LANDSCAPE = 1,
    34  ORIENTATION_REVERSE_PORTRAIT = 2,
    35  ORIENTATION_REVERSE_LANDSCAPE = 3,
    36 };
    37 
    38 /*
    39  * Helper to handle sensor inputs such as accelerometer.
    40  * The helper also check for screen rotation
    41  *
    42  */
    43 class SensorManager {
    44  ASensorManager *sensorManager_;
    45  const ASensor *accelerometerSensor_;
    46  ASensorEventQueue *sensorEventQueue_;
    47 
    48  protected:
    49  public:
    50  SensorManager();
    51  ~SensorManager();
    52  void Init(android_app *state);
    53  void Process(const int32_t id);
    54  void Suspend();
    55  void Resume();
    56 };
    57 
    58 /*
    59  * AcquireASensorManagerInstance(android_app* app)
    60  * Workaround ASensorManager_getInstance() deprecation false alarm
    61  * for Android-N and before, when compiling with NDK-r15
    62  */
    63 ASensorManager* AcquireASensorManagerInstance(android_app* app);
    64 } // namespace ndkHelper
    65 #endif /* SENSORMANAGER_H_ */
    Definition: gestureDetector.h:32
    +
    Definition: android_native_app_glue.h:111
    +
    + + + + + diff --git a/doc/html/splitbar.png b/doc/html/splitbar.png new file mode 100644 index 00000000..fe895f2c Binary files /dev/null and b/doc/html/splitbar.png differ diff --git a/doc/html/struct_diligent_1_1_blend_state_desc-members.html b/doc/html/struct_diligent_1_1_blend_state_desc-members.html new file mode 100644 index 00000000..f5bea1c5 --- /dev/null +++ b/doc/html/struct_diligent_1_1_blend_state_desc-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::BlendStateDesc Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_blend_state_desc.html b/doc/html/struct_diligent_1_1_blend_state_desc.html new file mode 100644 index 00000000..61d5f7c7 --- /dev/null +++ b/doc/html/struct_diligent_1_1_blend_state_desc.html @@ -0,0 +1,206 @@ + + + + + + + +Diligent Engine API Reference: Diligent::BlendStateDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::BlendStateDesc Struct Reference
    +
    +
    + +

    Blend state description. + More...

    + + + + + + + + +

    +Public Member Functions

     BlendStateDesc ()
     Constructor initializes structure members with default values. More...
     
    bool operator== (const BlendStateDesc &RHS) const
     Comparison operator tests if two structures are equivalent. More...
     
    + + + + + + + + + + +

    +Public Attributes

    +Bool AlphaToCoverageEnable
     Specifies whether to use alpha-to-coverage as a multisampling technique when setting a pixel to a render target. Default value: False.
     
    +Bool IndependentBlendEnable
     Specifies whether to enable independent blending in simultaneous render targets. If set to False, only RenderTargets[0] is used. Default value: False.
     
    +RenderTargetBlendDesc RenderTargets [MaxRenderTargets]
     An array of RenderTargetBlendDesc structures that describe the blend states for render targets.
     
    + + + + +

    +Static Public Attributes

    +static constexpr int MaxRenderTargets = 8
     Constant member defining the maximum number of render targets.
     
    +

    Detailed Description

    +

    Blend state description.

    +

    This structure describes the blend state and is part of the GraphicsPipelineDesc.

    +

    Constructor & Destructor Documentation

    + +

    ◆ BlendStateDesc()

    + +
    +
    + + + + + +
    + + + + + + + +
    Diligent::BlendStateDesc::BlendStateDesc ()
    +
    +inline
    +
    + +

    Constructor initializes structure members with default values.

    + + + + + + + +
    Member Default va
    AlphaToCoverageEnable False
    IndependentBlendEnable False
    +

    Members of RenderTargets[] are initialized with default values by RenderTargetBlendDesc::RenderTargetBlendDesc()

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator==()

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool Diligent::BlendStateDesc::operator== (const BlendStateDescRHS) const
    +
    +inline
    +
    + +

    Comparison operator tests if two structures are equivalent.

    +
    Parameters
    + + +
    [in]RHS- reference to the structure to perform comparison with
    +
    +
    +
    Returns
      +
    • True if all members are of the two structures equal.
    • +
    +
    +
    Note
    The operator performs bitwise comparison of the two structures. That is if for instance both structures have IndependentBlendEnable set to False, but differ in render target other than 0, the operator will return False even though the two blend states created from these structures will be identical.
      +
    • False otherwise
    • +
    +
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_box-members.html b/doc/html/struct_diligent_1_1_box-members.html new file mode 100644 index 00000000..b15601dc --- /dev/null +++ b/doc/html/struct_diligent_1_1_box-members.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::Box Member List
    +
    +
    + +

    This is the complete list of members for Diligent::Box, including all inherited members.

    + + + + + + + + +
    Box(Uint32 _MinX=0, Uint32 _MaxX=0, Uint32 _MinY=0, Uint32 _MaxY=0, Uint32 _MinZ=0, Uint32 _MaxZ=1)Diligent::Boxinline
    MaxXDiligent::Box
    MaxYDiligent::Box
    MaxZDiligent::Box
    MinXDiligent::Box
    MinYDiligent::Box
    MinZDiligent::Box
    + + + + + diff --git a/doc/html/struct_diligent_1_1_box.html b/doc/html/struct_diligent_1_1_box.html new file mode 100644 index 00000000..84472967 --- /dev/null +++ b/doc/html/struct_diligent_1_1_box.html @@ -0,0 +1,127 @@ + + + + + + + +Diligent Engine API Reference: Diligent::Box Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::Box Struct Reference
    +
    +
    + +

    Box. + More...

    + + + + + +

    +Public Member Functions

    Box (Uint32 _MinX=0, Uint32 _MaxX=0, Uint32 _MinY=0, Uint32 _MaxY=0, Uint32 _MinZ=0, Uint32 _MaxZ=1)
     Constructor intializes the structure.
     
    + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +Uint32 MinX
     Minimal X coordinate. Default value is 0.
     
    +Uint32 MaxX
     Maximal X coordinate. Default value is 0.
     
    +Uint32 MinY
     Minimal Y coordinate. Default value is 0.
     
    +Uint32 MaxY
     Maximal Y coordinate. Default value is 0.
     
    +Uint32 MinZ
     Minimal Z coordinate. Default value is 0.
     
    +Uint32 MaxZ
     Maximal Z coordinate. Default value is 1.
     
    +

    Detailed Description

    +

    Box.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_buffer_data-members.html b/doc/html/struct_diligent_1_1_buffer_data-members.html new file mode 100644 index 00000000..42599348 --- /dev/null +++ b/doc/html/struct_diligent_1_1_buffer_data-members.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::BufferData Member List
    +
    +
    + +

    This is the complete list of members for Diligent::BufferData, including all inherited members.

    + + + + +
    BufferData()Diligent::BufferDatainline
    DataSizeDiligent::BufferData
    pDataDiligent::BufferData
    + + + + + diff --git a/doc/html/struct_diligent_1_1_buffer_data.html b/doc/html/struct_diligent_1_1_buffer_data.html new file mode 100644 index 00000000..49b66577 --- /dev/null +++ b/doc/html/struct_diligent_1_1_buffer_data.html @@ -0,0 +1,146 @@ + + + + + + + +Diligent Engine API Reference: Diligent::BufferData Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::BufferData Struct Reference
    +
    +
    + +

    Describes the buffer initial data. + More...

    + + + + + +

    +Public Member Functions

     BufferData ()
     Initializes the structure members with default values. More...
     
    + + + + + + + +

    +Public Attributes

    +const void * pData
     Pointer to the data.
     
    +Uint32 DataSize
     Data size, in bytes.
     
    +

    Detailed Description

    +

    Describes the buffer initial data.

    +

    Constructor & Destructor Documentation

    + +

    ◆ BufferData()

    + +
    +
    + + + + + +
    + + + + + + + +
    Diligent::BufferData::BufferData ()
    +
    +inline
    +
    + +

    Initializes the structure members with default values.

    +

    Default values:

    + + + + + + +
    Member Default value
    pData nullptr
    DataSize 0
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_buffer_desc-members.html b/doc/html/struct_diligent_1_1_buffer_desc-members.html new file mode 100644 index 00000000..ec1785df --- /dev/null +++ b/doc/html/struct_diligent_1_1_buffer_desc-members.html @@ -0,0 +1,97 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::BufferDesc Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_buffer_desc.html b/doc/html/struct_diligent_1_1_buffer_desc.html new file mode 100644 index 00000000..57466692 --- /dev/null +++ b/doc/html/struct_diligent_1_1_buffer_desc.html @@ -0,0 +1,277 @@ + + + + + + + +Diligent Engine API Reference: Diligent::BufferDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::BufferDesc Struct Reference
    +
    +
    + +

    Buffer description. + More...

    +
    +Inheritance diagram for Diligent::BufferDesc:
    +
    +
    + + +Diligent::DeviceObjectAttribs + +
    + + + + + +

    +Classes

    struct  BufferFormat
     Buffer format description. More...
     
    + + + + + + + + + + + +

    +Public Member Functions

     BufferDesc ()
     Initializes the structure members with default values. More...
     
    bool operator== (const BufferDesc &RHS) const
     Tests if two structures are equivalent. More...
     
    - Public Member Functions inherited from Diligent::DeviceObjectAttribs
    DeviceObjectAttribs ()
     Constructor intializes the structure members with default values.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +Uint32 uiSizeInBytes
     Size of the buffer, in bytes. For a uniform buffer, this must be multiple of 16.
     
    Uint32 BindFlags
     Buffer bind flags, see Diligent::BIND_FLAGS for details. More...
     
    +USAGE Usage
     Buffer usage, see Diligent::USAGE for details.
     
    +Uint32 CPUAccessFlags
     CPU access flags or 0 if no CPU access is allowed, see Diligent::CPU_ACCESS_FLAG for details.
     
    +BUFFER_MODE Mode
     Buffer mode.
     
    BufferFormat Format
     Buffer format. More...
     
    +Uint32 ElementByteStride
     Buffer element stride, in bytes. For a structured buffer (BufferDesc::Mode equals Diligent::BUFFER_MODE_STRUCTURED), this member cannot be zero. For a formatted buffer (BufferDesc::Mode equals Diligent::BUFFER_MODE_FORMATTED), this member can either specify the stride, or be 0. In the latter case, the stride is computed automatically based on the format size and assuming that elements are densely packed.
     
    - Public Attributes inherited from Diligent::DeviceObjectAttribs
    +const Char * Name
     Object name.
     
    +

    Detailed Description

    +

    Buffer description.

    +

    Constructor & Destructor Documentation

    + +

    ◆ BufferDesc()

    + +
    +
    + + + + + +
    + + + + + + + +
    Diligent::BufferDesc::BufferDesc ()
    +
    +inline
    +
    + +

    Initializes the structure members with default values.

    +

    Default values:

    + + + + + + + + + + + + + + +
    Member Default value
    uiSizeInBytes 0
    BindFlags 0
    Usage Diligent::USAGE_DEFAULT
    CPUAccessFlags 0
    Mode Diligent::BUFFER_MODE_UNDEFINED
    ElementByteStride 0
    +

    Members of BufferDesc::Format are initialized with default values by BufferFormat::BufferFormat()

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator==()

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool Diligent::BufferDesc::operator== (const BufferDescRHS) const
    +
    +inline
    +
    + +

    Tests if two structures are equivalent.

    +
    Parameters
    + + +
    [in]RHS- reference to the structure to perform comparison with
    +
    +
    +
    Returns
      +
    • True if all members of the two structures except for the Name are equal.
    • +
    • False otherwise. The operator ignores DeviceObjectAttribs::Name field as it does not affect the buffer description.
    • +
    +
    + +
    +
    +

    Member Data Documentation

    + +

    ◆ BindFlags

    + +
    +
    + + + + +
    Uint32 Diligent::BufferDesc::BindFlags
    +
    +
    + +

    ◆ Format

    + +
    +
    + + + + +
    BufferFormat Diligent::BufferDesc::Format
    +
    + +

    Buffer format.

    +

    For a formatted buffer (BufferDesc::Mode equals Diligent::BUFFER_MODE_FORMATTED), this member describes the buffer format, see BufferFormat. Ignored otherwise.

    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_buffer_desc.png b/doc/html/struct_diligent_1_1_buffer_desc.png new file mode 100644 index 00000000..0675ec8a Binary files /dev/null and b/doc/html/struct_diligent_1_1_buffer_desc.png differ diff --git a/doc/html/struct_diligent_1_1_buffer_desc_1_1_buffer_format-members.html b/doc/html/struct_diligent_1_1_buffer_desc_1_1_buffer_format-members.html new file mode 100644 index 00000000..fa1857ff --- /dev/null +++ b/doc/html/struct_diligent_1_1_buffer_desc_1_1_buffer_format-members.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::BufferDesc::BufferFormat Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_buffer_desc_1_1_buffer_format.html b/doc/html/struct_diligent_1_1_buffer_desc_1_1_buffer_format.html new file mode 100644 index 00000000..c5bc5d54 --- /dev/null +++ b/doc/html/struct_diligent_1_1_buffer_desc_1_1_buffer_format.html @@ -0,0 +1,156 @@ + + + + + + + +Diligent Engine API Reference: Diligent::BufferDesc::BufferFormat Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::BufferDesc::BufferFormat Struct Reference
    +
    +
    + +

    Buffer format description. + More...

    + + + + + + + + +

    +Public Member Functions

     BufferFormat ()
     Initializes the structure members with default values. More...
     
    +bool operator== (const BufferFormat &RHS) const
     Tests if two structures are equivalent.
     
    + + + + + + + + + + +

    +Public Attributes

    +VALUE_TYPE ValueType
     Type of components. For a formatted buffer, this value cannot be VT_UNDEFINED.
     
    +Uint32 NumComponents
     Number of components. Allowed values: 1, 2, 3, 4. For a formatted buffer, this value cannot be 0.
     
    +Bool IsNormalized
     For signed and unsigned integer value types (VT_INT8, VT_INT16, VT_INT32, VT_UINT8, VT_UINT16, VT_UINT32) indicates if the value should be normalized to [-1,+1] or [0, 1] range respectively. For floating point types (VT_FLOAT16 and VT_FLOAT32), this member is ignored.
     
    +

    Detailed Description

    +

    Buffer format description.

    +

    Constructor & Destructor Documentation

    + +

    ◆ BufferFormat()

    + +
    +
    + + + + + +
    + + + + + + + +
    Diligent::BufferDesc::BufferFormat::BufferFormat ()
    +
    +inline
    +
    + +

    Initializes the structure members with default values.

    +

    Default values:

    + + + + + + + + +
    Member Default value
    ValueType VT_UNDEFINED
    NumComponents 0
    IsNormalized True
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_buffer_view_desc-members.html b/doc/html/struct_diligent_1_1_buffer_view_desc-members.html new file mode 100644 index 00000000..a91f2b7e --- /dev/null +++ b/doc/html/struct_diligent_1_1_buffer_view_desc-members.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::BufferViewDesc Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_buffer_view_desc.html b/doc/html/struct_diligent_1_1_buffer_view_desc.html new file mode 100644 index 00000000..52445ad9 --- /dev/null +++ b/doc/html/struct_diligent_1_1_buffer_view_desc.html @@ -0,0 +1,215 @@ + + + + + + + +Diligent Engine API Reference: Diligent::BufferViewDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::BufferViewDesc Struct Reference
    +
    +
    + +

    Buffer view description. + More...

    +
    +Inheritance diagram for Diligent::BufferViewDesc:
    +
    +
    + + +Diligent::DeviceObjectAttribs + +
    + + + + + + + + + + + + +

    +Public Member Functions

     BufferViewDesc ()
     Initializes the structure members with default values. More...
     
    bool operator== (const BufferViewDesc &RHS) const
     Comparison operator tests if two structures are equivalent. More...
     
    - Public Member Functions inherited from Diligent::DeviceObjectAttribs
    DeviceObjectAttribs ()
     Constructor intializes the structure members with default values.
     
    + + + + + + + + + + + + + + +

    +Public Attributes

    +BUFFER_VIEW_TYPE ViewType
     View type. See Diligent::BUFFER_VIEW_TYPE for details.
     
    +Uint32 ByteOffset
     Offset in bytes from the beginnig of the buffer to the start of the buffer region referenced by the view.
     
    +Uint32 ByteWidth
     Size in bytes of the referenced buffer region.
     
    - Public Attributes inherited from Diligent::DeviceObjectAttribs
    +const Char * Name
     Object name.
     
    +

    Detailed Description

    +

    Buffer view description.

    +

    Constructor & Destructor Documentation

    + +

    ◆ BufferViewDesc()

    + +
    +
    + + + + + +
    + + + + + + + +
    Diligent::BufferViewDesc::BufferViewDesc ()
    +
    +inline
    +
    + +

    Initializes the structure members with default values.

    +

    Default values:

    + + + + + + + + +
    Member Default value
    ViewType Diligent::BUFFER_VIEW_UNDEFINED
    ByteOffset 0
    ByteWidth 0
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator==()

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool Diligent::BufferViewDesc::operator== (const BufferViewDescRHS) const
    +
    +inline
    +
    + +

    Comparison operator tests if two structures are equivalent.

    +
    Parameters
    + + +
    [in]RHS- reference to the structure to perform comparison with
    +
    +
    +
    Returns
      +
    • True if all members of the two structures are equal.
    • +
    • False otherwise
    • +
    +
    +
    Remarks
    The operator ignores DeviceObjectAttribs::Name field.
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_buffer_view_desc.png b/doc/html/struct_diligent_1_1_buffer_view_desc.png new file mode 100644 index 00000000..1bfc988a Binary files /dev/null and b/doc/html/struct_diligent_1_1_buffer_view_desc.png differ diff --git a/doc/html/struct_diligent_1_1_compute_pipeline_desc-members.html b/doc/html/struct_diligent_1_1_compute_pipeline_desc-members.html new file mode 100644 index 00000000..be33d698 --- /dev/null +++ b/doc/html/struct_diligent_1_1_compute_pipeline_desc-members.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::ComputePipelineDesc Member List
    +
    +
    + +

    This is the complete list of members for Diligent::ComputePipelineDesc, including all inherited members.

    + + +
    pCSDiligent::ComputePipelineDesc
    + + + + + diff --git a/doc/html/struct_diligent_1_1_compute_pipeline_desc.html b/doc/html/struct_diligent_1_1_compute_pipeline_desc.html new file mode 100644 index 00000000..0f2caa05 --- /dev/null +++ b/doc/html/struct_diligent_1_1_compute_pipeline_desc.html @@ -0,0 +1,100 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ComputePipelineDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::ComputePipelineDesc Struct Reference
    +
    +
    + +

    Compute pipeline state description. + More...

    + + + + + +

    +Public Attributes

    +IShaderpCS
     Compute shader to be used with the pipeline.
     
    +

    Detailed Description

    +

    Compute pipeline state description.

    +

    This structure describes the compute pipeline state and is part of the PipelineStateDesc structure.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_depth_stencil_clear_value-members.html b/doc/html/struct_diligent_1_1_depth_stencil_clear_value-members.html new file mode 100644 index 00000000..4952bd97 --- /dev/null +++ b/doc/html/struct_diligent_1_1_depth_stencil_clear_value-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::DepthStencilClearValue Member List
    +
    +
    + +

    This is the complete list of members for Diligent::DepthStencilClearValue, including all inherited members.

    + + + +
    DepthDiligent::DepthStencilClearValue
    StencilDiligent::DepthStencilClearValue
    + + + + + diff --git a/doc/html/struct_diligent_1_1_depth_stencil_clear_value.html b/doc/html/struct_diligent_1_1_depth_stencil_clear_value.html new file mode 100644 index 00000000..0febf945 --- /dev/null +++ b/doc/html/struct_diligent_1_1_depth_stencil_clear_value.html @@ -0,0 +1,103 @@ + + + + + + + +Diligent Engine API Reference: Diligent::DepthStencilClearValue Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::DepthStencilClearValue Struct Reference
    +
    +
    + +

    Defines optimized depth-stencil clear value. + More...

    + + + + + + + + +

    +Public Attributes

    +Float32 Depth
     Depth clear value.
     
    +Uint8 Stencil
     Stencil clear value.
     
    +

    Detailed Description

    +

    Defines optimized depth-stencil clear value.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_depth_stencil_state_desc-members.html b/doc/html/struct_diligent_1_1_depth_stencil_state_desc-members.html new file mode 100644 index 00000000..844875ea --- /dev/null +++ b/doc/html/struct_diligent_1_1_depth_stencil_state_desc-members.html @@ -0,0 +1,96 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::DepthStencilStateDesc Member List
    +
    +
    + +

    This is the complete list of members for Diligent::DepthStencilStateDesc, including all inherited members.

    + + + + + + + + + + + +
    BackFaceDiligent::DepthStencilStateDesc
    DepthEnableDiligent::DepthStencilStateDesc
    DepthFuncDiligent::DepthStencilStateDesc
    DepthStencilStateDesc(Bool _DepthEnable=True, Bool _DepthWriteEnable=True, COMPARISON_FUNCTION _DepthFunc=COMPARISON_FUNC_LESS, Bool _StencilEnable=False, Uint8 _StencilReadMask=0xFF, Uint8 _StencilWriteMask=0xFF)Diligent::DepthStencilStateDescinline
    DepthWriteEnableDiligent::DepthStencilStateDesc
    FrontFaceDiligent::DepthStencilStateDesc
    operator==(const DepthStencilStateDesc &rhs) constDiligent::DepthStencilStateDescinline
    StencilEnableDiligent::DepthStencilStateDesc
    StencilReadMaskDiligent::DepthStencilStateDesc
    StencilWriteMaskDiligent::DepthStencilStateDesc
    + + + + + diff --git a/doc/html/struct_diligent_1_1_depth_stencil_state_desc.html b/doc/html/struct_diligent_1_1_depth_stencil_state_desc.html new file mode 100644 index 00000000..64bc435b --- /dev/null +++ b/doc/html/struct_diligent_1_1_depth_stencil_state_desc.html @@ -0,0 +1,258 @@ + + + + + + + +Diligent Engine API Reference: Diligent::DepthStencilStateDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::DepthStencilStateDesc Struct Reference
    +
    +
    + +

    Depth stencil state description. + More...

    + + + + + + + + +

    +Public Member Functions

     DepthStencilStateDesc (Bool _DepthEnable=True, Bool _DepthWriteEnable=True, COMPARISON_FUNCTION _DepthFunc=COMPARISON_FUNC_LESS, Bool _StencilEnable=False, Uint8 _StencilReadMask=0xFF, Uint8 _StencilWriteMask=0xFF)
     Initializes the structure members. More...
     
    bool operator== (const DepthStencilStateDesc &rhs) const
     Tests if two structures are equivalent. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +Bool DepthEnable
     Enable depth-stencil operations. When it is set to False, depth test always passes, depth writes are disabled, and no stencil operations are performed.
     
    +Bool DepthWriteEnable
     Enable or disable writes to a depth buffer.
     
    +COMPARISON_FUNCTION DepthFunc
     A function that compares depth data against existing depth data. See Diligent::COMPARISON_FUNCTION for details.
     
    +Bool StencilEnable
     Enable stencil opertaions.
     
    +Uint8 StencilReadMask
     Identify which bits of the depth-stencil buffer are accessed when reading stencil data.
     
    +Uint8 StencilWriteMask
     Identify which bits of the depth-stencil buffer are accessed when writing stencil data.
     
    +StencilOpDesc FrontFace
     Identify stencil operations for the front-facing triangles, see Diligent::StencilOpDesc.
     
    +StencilOpDesc BackFace
     Identify stencil operations for the back-facing triangles, see Diligent::StencilOpDesc.
     
    +

    Detailed Description

    +

    Depth stencil state description.

    +

    This structure describes the depth stencil state and is part of the GraphicsPipelineDesc. The structure generally mirrors D3D11_DEPTH_STENCIL_DESC/D3D12_DEPTH_STENCIL_DESC structure.

    +

    Constructor & Destructor Documentation

    + +

    ◆ DepthStencilStateDesc()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Diligent::DepthStencilStateDesc::DepthStencilStateDesc (Bool _DepthEnable = True,
    Bool _DepthWriteEnable = True,
    COMPARISON_FUNCTION _DepthFunc = COMPARISON_FUNC_LESS,
    Bool _StencilEnable = False,
    Uint8 _StencilReadMask = 0xFF,
    Uint8 _StencilWriteMask = 0xFF 
    )
    +
    +inline
    +
    + +

    Initializes the structure members.

    +

    Default values:

    + + + + + + + + + + + + + + +
    Member Default value
    DepthEnable True
    DepthWriteEnable True
    DepthFunc Diligent::COMPARISON_FUNC_LESS
    StencilEnable False
    StencilReadMask 0xFF
    StencilWriteMask 0xFF
    +

    Members of FrontFace and BackFace are initialized by StencilOpDesc::StencilOpDesc()

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator==()

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool Diligent::DepthStencilStateDesc::operator== (const DepthStencilStateDescrhs) const
    +
    +inline
    +
    + +

    Tests if two structures are equivalent.

    +
    Parameters
    + + +
    [in]rhs- reference to the structure to perform comparison with
    +
    +
    +
    Returns
      +
    • True if all members of the two structures are equal.
    • +
    • False otherwise
    • +
    +
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_device_caps-members.html b/doc/html/struct_diligent_1_1_device_caps-members.html new file mode 100644 index 00000000..e1876b08 --- /dev/null +++ b/doc/html/struct_diligent_1_1_device_caps-members.html @@ -0,0 +1,96 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::DeviceCaps Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_device_caps.html b/doc/html/struct_diligent_1_1_device_caps.html new file mode 100644 index 00000000..0a4c85d5 --- /dev/null +++ b/doc/html/struct_diligent_1_1_device_caps.html @@ -0,0 +1,139 @@ + + + + + + + +Diligent Engine API Reference: Diligent::DeviceCaps Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::DeviceCaps Struct Reference
    +
    +
    + +

    Device capabilities. + More...

    + + + + + +

    +Public Member Functions

    DeviceCaps ()
     Initializes the structure members with default values.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +DeviceType DevType
     Device type. See Diligent::DeviceType.
     
    +Int32 MajorVersion
     Major API revision. For instance, for D3D11.2 this value would be 11, and for OpenGL4.3 this value would be 4.
     
    +Int32 MinorVersion
     Major API revision. For instance, for D3D11.2 this value would be 2, and for OpenGL4.3 this value would be 3.
     
    +Bool bSeparableProgramSupported
     Indicates if device supports separable programs.
     
    +Bool bIndirectRenderingSupported
     Indicates if device supports indirect draw commands.
     
    +Bool bWireframeFillSupported
     Indicates if device supports wireframe fill mode.
     
    +Bool bMultithreadedResourceCreationSupported
     Indicates if device supports multithreaded resource creation.
     
    +SamplerCaps SamCaps
     Texture sampling capabilities. See Diligent::SamplerCaps.
     
    +TextureCaps TexCaps
     Texture capabilities. See Diligent::TextureCaps.
     
    +

    Detailed Description

    +

    Device capabilities.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_device_object_attribs-members.html b/doc/html/struct_diligent_1_1_device_object_attribs-members.html new file mode 100644 index 00000000..ed8b8a53 --- /dev/null +++ b/doc/html/struct_diligent_1_1_device_object_attribs-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::DeviceObjectAttribs Member List
    +
    +
    + +

    This is the complete list of members for Diligent::DeviceObjectAttribs, including all inherited members.

    + + + +
    DeviceObjectAttribs()Diligent::DeviceObjectAttribsinline
    NameDiligent::DeviceObjectAttribs
    + + + + + diff --git a/doc/html/struct_diligent_1_1_device_object_attribs.html b/doc/html/struct_diligent_1_1_device_object_attribs.html new file mode 100644 index 00000000..3b96174c --- /dev/null +++ b/doc/html/struct_diligent_1_1_device_object_attribs.html @@ -0,0 +1,122 @@ + + + + + + + +Diligent Engine API Reference: Diligent::DeviceObjectAttribs Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::DeviceObjectAttribs Struct Reference
    +
    +
    + +

    Describes common device object attributes. + More...

    +
    +Inheritance diagram for Diligent::DeviceObjectAttribs:
    +
    +
    + + +Diligent::BufferDesc +Diligent::BufferViewDesc +Diligent::PipelineStateDesc +Diligent::SamplerDesc +Diligent::ShaderDesc +Diligent::TextureDesc +Diligent::TextureViewDesc + +
    + + + + + +

    +Public Member Functions

    DeviceObjectAttribs ()
     Constructor intializes the structure members with default values.
     
    + + + + +

    +Public Attributes

    +const Char * Name
     Object name.
     
    +

    Detailed Description

    +

    Describes common device object attributes.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_device_object_attribs.png b/doc/html/struct_diligent_1_1_device_object_attribs.png new file mode 100644 index 00000000..b35b9c49 Binary files /dev/null and b/doc/html/struct_diligent_1_1_device_object_attribs.png differ diff --git a/doc/html/struct_diligent_1_1_dispatch_compute_attribs-members.html b/doc/html/struct_diligent_1_1_dispatch_compute_attribs-members.html new file mode 100644 index 00000000..da796ee3 --- /dev/null +++ b/doc/html/struct_diligent_1_1_dispatch_compute_attribs-members.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::DispatchComputeAttribs Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_dispatch_compute_attribs.html b/doc/html/struct_diligent_1_1_dispatch_compute_attribs.html new file mode 100644 index 00000000..c5bc36b1 --- /dev/null +++ b/doc/html/struct_diligent_1_1_dispatch_compute_attribs.html @@ -0,0 +1,224 @@ + + + + + + + +Diligent Engine API Reference: Diligent::DispatchComputeAttribs Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::DispatchComputeAttribs Struct Reference
    +
    +
    + +

    Describes dispatch command arguments. + More...

    + + + + + + + + +

    +Public Member Functions

     DispatchComputeAttribs (Uint32 GroupsX=1, Uint32 GroupsY=1, Uint32 GroupsZ=1)
     Initializes the structure to perform non-indirect dispatch command. More...
     
     DispatchComputeAttribs (IBuffer *pDispatchAttribs, Uint32 Offset=0)
     Initializes the structure to perform indirect dispatch command. More...
     
    + + + + + + + + + + + + + + + + +

    +Public Attributes

    +Uint32 ThreadGroupCountX
     Number of groups dispatched in X direction.
     
    +Uint32 ThreadGroupCountY
     Number of groups dispatched in Y direction.
     
    +Uint32 ThreadGroupCountZ
     Number of groups dispatched in Z direction.
     
    +IBufferpIndirectDispatchAttribs
     Pointer to the buffer containing dispatch arguments. If not nullptr, then indirect dispatch command is executed, and ThreadGroupCountX, ThreadGroupCountY, and ThreadGroupCountZ are ignored.
     
    +Uint32 DispatchArgsByteOffset
     If pIndirectDispatchAttribs is not nullptr, indicates offset from the beginning of the buffer to the dispatch command arguments. Ignored otherwise.
     
    +

    Detailed Description

    +

    Describes dispatch command arguments.

    +

    This structure is used by IDeviceContext::DispatchCompute(). See ID3D11DeviceContext::Dispatch on MSDN for details.

    +

    Constructor & Destructor Documentation

    + +

    ◆ DispatchComputeAttribs() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    Diligent::DispatchComputeAttribs::DispatchComputeAttribs (Uint32 GroupsX = 1,
    Uint32 GroupsY = 1,
    Uint32 GroupsZ = 1 
    )
    +
    +inline
    +
    + +

    Initializes the structure to perform non-indirect dispatch command.

    +
    Parameters
    + + + + +
    [in]GroupsX- Number of groups dispatched in X direction. Default value is 1.
    [in]GroupsY- Number of groups dispatched in Y direction. Default value is 1.
    [in]GroupsZ- Number of groups dispatched in Z direction. Default value is 1.
    +
    +
    + +
    +
    + +

    ◆ DispatchComputeAttribs() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    Diligent::DispatchComputeAttribs::DispatchComputeAttribs (IBufferpDispatchAttribs,
    Uint32 Offset = 0 
    )
    +
    +inline
    +
    + +

    Initializes the structure to perform indirect dispatch command.

    +
    Parameters
    + + + +
    [in]pDispatchAttribs- Pointer to the buffer containing dispatch arguments.
    [in]Offset- Offset from the beginning of the buffer to the dispatch command arguments. Default value is 0.
    +
    +
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_draw_attribs-members.html b/doc/html/struct_diligent_1_1_draw_attribs-members.html new file mode 100644 index 00000000..98be1883 --- /dev/null +++ b/doc/html/struct_diligent_1_1_draw_attribs-members.html @@ -0,0 +1,100 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::DrawAttribs Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_draw_attribs.html b/doc/html/struct_diligent_1_1_draw_attribs.html new file mode 100644 index 00000000..a53f1dde --- /dev/null +++ b/doc/html/struct_diligent_1_1_draw_attribs.html @@ -0,0 +1,209 @@ + + + + + + + +Diligent Engine API Reference: Diligent::DrawAttribs Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::DrawAttribs Struct Reference
    +
    +
    + +

    Defines the draw command attributes. + More...

    + + + + + +

    +Public Member Functions

     DrawAttribs ()
     Initializes the structure members with default values. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +PRIMITIVE_TOPOLOGY Topology
     Input primitive topology, see Diligent::PRIMITIVE_TOPOLOGY.
     
    +VALUE_TYPE IndexType
     For an indexed draw call, type of elements in the index buffer. Allowed values: VT_UINT16 and VT_UINT32. Ignored if DrawAttribs::IsIndexed is False.
     
    +Bool IsIndexed
     Indicates if index buffer will be used to index input vertices.
     
    +Uint32 NumInstances
     Number of instances to draw. If more than one instance is specified, instanced draw call will be performed.
     
    +Bool IsIndirect
     Indicates if indirect draw call will be performed. If set to True, pIndirectDrawAttribs must contain valid pointer to the buffer, from which draw attributes will be read.
     
    +Uint32 BaseVertex
     For indexed rendering, a constant which is added to each index before accessing the vertex buffer.
     
    +Uint32 IndirectDrawArgsOffset
     For indirect rendering, offset from the beginning of the buffer to the location of draw command attributes. Ignored if DrawAttribs::IsIndirect is False.
     
    +Uint32 FirstInstanceLocation
     For instanced rendering, LOCATION (or INDEX, but NOT the byte offset) in the vertex buffer to start reading instance data from.
     
    +IBufferpIndirectDrawAttribs
     For indirect rendering, pointer to the buffer, from which draw attributes will be read. Ignored if DrawAttribs::IsIndirect is False.
     
    +Uint32 NumVertices
     For a non-indexed draw call, number of vertices to draw.
     
    +Uint32 NumIndices
     For an indexed draw call, number of indices to draw.
     
    +Uint32 StartVertexLocation
     For non-indexed rendering, LOCATION (or INDEX, but NOT the byte offset) of the first vertex in the vertex buffer to start reading vertices from.
     
    +Uint32 FirstIndexLocation
     For indexed rendering, LOCATION (NOT the byte offset) of the first index in the index buffer to start reading indices from.
     
    +

    Detailed Description

    +

    Defines the draw command attributes.

    +

    This structure is used by IRenderDevice::Draw()

    +

    Constructor & Destructor Documentation

    + +

    ◆ DrawAttribs()

    + +
    +
    + + + + + +
    + + + + + + + +
    Diligent::DrawAttribs::DrawAttribs ()
    +
    +inline
    +
    + +

    Initializes the structure members with default values.

    +

    Default values:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Member Default value
    Topology PRIMITIVE_TOPOLOGY_UNDEFINED
    NumVertices 0
    IndexType VT_UNDEFINED
    IsIndexed False
    NumInstances 1
    IsIndirect False
    BaseVertex 0
    IndirectDrawArgsOffset 0
    StartVertexLocation 0
    FirstInstanceLocation 0
    pIndirectDrawAttribs nullptr
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_dummy_shader_variable-members.html b/doc/html/struct_diligent_1_1_dummy_shader_variable-members.html new file mode 100644 index 00000000..4f340698 --- /dev/null +++ b/doc/html/struct_diligent_1_1_dummy_shader_variable-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::DummyShaderVariable Member List
    +
    +
    + +

    This is the complete list of members for Diligent::DummyShaderVariable, including all inherited members.

    + + + +
    Set(IDeviceObject *pObject) override finalDiligent::DummyShaderVariableinlinevirtual
    SetArray(IDeviceObject *const *ppObjects, Uint32 FirstElement, Uint32 NumElements) override finalDiligent::DummyShaderVariableinlinevirtual
    + + + + + diff --git a/doc/html/struct_diligent_1_1_dummy_shader_variable.html b/doc/html/struct_diligent_1_1_dummy_shader_variable.html new file mode 100644 index 00000000..d0bdb580 --- /dev/null +++ b/doc/html/struct_diligent_1_1_dummy_shader_variable.html @@ -0,0 +1,198 @@ + + + + + + + +Diligent Engine API Reference: Diligent::DummyShaderVariable Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::DummyShaderVariable Struct Reference
    +
    +
    + +

    Implementation of a dummy shader variable that silently ignores all operations. + More...

    +
    +Inheritance diagram for Diligent::DummyShaderVariable:
    +
    +
    + + +Diligent::ShaderVariableBase +Diligent::IShaderVariable + +
    + + + + + + + + +

    +Public Member Functions

    virtual void Set (IDeviceObject *pObject) override final
     Sets the variable to the given value. More...
     
    virtual void SetArray (IDeviceObject *const *ppObjects, Uint32 FirstElement, Uint32 NumElements) override final
     Sets the variable array. More...
     
    +

    Detailed Description

    +

    Implementation of a dummy shader variable that silently ignores all operations.

    +

    Member Function Documentation

    + +

    ◆ Set()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual void Diligent::DummyShaderVariable::Set (IDeviceObjectpObject)
    +
    +inlinefinaloverridevirtual
    +
    + +

    Sets the variable to the given value.

    +
    Remarks
    The method performs run-time correctness checks. For instance, shader resource view cannot be assigned to a constant buffer variable.
    + +

    Implements Diligent::IShaderVariable.

    + +
    +
    + +

    ◆ SetArray()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    virtual void Diligent::DummyShaderVariable::SetArray (IDeviceObject *const * ppObjects,
    Uint32 FirstElement,
    Uint32 NumElements 
    )
    +
    +inlinefinaloverridevirtual
    +
    + +

    Sets the variable array.

    +
    Parameters
    + + + + +
    [in]ppObjects- pointer to the array of objects
    [in]FirstElement- first array element to set
    [in]NumElements- number of objects in ppObjects array
    +
    +
    +
    Remarks
    The method performs run-time correctness checks. For instance, shader resource view cannot be assigned to a constant buffer variable.
    + +

    Implements Diligent::IShaderVariable.

    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_dummy_shader_variable.png b/doc/html/struct_diligent_1_1_dummy_shader_variable.png new file mode 100644 index 00000000..86ee35b3 Binary files /dev/null and b/doc/html/struct_diligent_1_1_dummy_shader_variable.png differ diff --git a/doc/html/struct_diligent_1_1_engine_creation_attribs-members.html b/doc/html/struct_diligent_1_1_engine_creation_attribs-members.html new file mode 100644 index 00000000..3725f1e4 --- /dev/null +++ b/doc/html/struct_diligent_1_1_engine_creation_attribs-members.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::EngineCreationAttribs Member List
    +
    +
    + +

    This is the complete list of members for Diligent::EngineCreationAttribs, including all inherited members.

    + + +
    pRawMemAllocatorDiligent::EngineCreationAttribs
    + + + + + diff --git a/doc/html/struct_diligent_1_1_engine_creation_attribs.html b/doc/html/struct_diligent_1_1_engine_creation_attribs.html new file mode 100644 index 00000000..2dc2e890 --- /dev/null +++ b/doc/html/struct_diligent_1_1_engine_creation_attribs.html @@ -0,0 +1,109 @@ + + + + + + + +Diligent Engine API Reference: Diligent::EngineCreationAttribs Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::EngineCreationAttribs Struct Reference
    +
    +
    + +

    Engine creation attibutes. + More...

    +
    +Inheritance diagram for Diligent::EngineCreationAttribs:
    +
    +
    + + +Diligent::EngineD3D11Attribs +Diligent::EngineD3D12Attribs + +
    + + + + + +

    +Public Attributes

    +class IMemoryAllocator * pRawMemAllocator
     Pointer to the raw memory allocator that will be used for all memory allocation/deallocation operations in an engine.
     
    +

    Detailed Description

    +

    Engine creation attibutes.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_engine_creation_attribs.png b/doc/html/struct_diligent_1_1_engine_creation_attribs.png new file mode 100644 index 00000000..0321f625 Binary files /dev/null and b/doc/html/struct_diligent_1_1_engine_creation_attribs.png differ diff --git a/doc/html/struct_diligent_1_1_engine_d3_d11_attribs-members.html b/doc/html/struct_diligent_1_1_engine_d3_d11_attribs-members.html new file mode 100644 index 00000000..f93e084f --- /dev/null +++ b/doc/html/struct_diligent_1_1_engine_d3_d11_attribs-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::EngineD3D11Attribs Member List
    +
    +
    + +

    This is the complete list of members for Diligent::EngineD3D11Attribs, including all inherited members.

    + + + +
    DebugFlagsDiligent::EngineD3D11Attribs
    pRawMemAllocatorDiligent::EngineCreationAttribs
    + + + + + diff --git a/doc/html/struct_diligent_1_1_engine_d3_d11_attribs.html b/doc/html/struct_diligent_1_1_engine_d3_d11_attribs.html new file mode 100644 index 00000000..f609e9dd --- /dev/null +++ b/doc/html/struct_diligent_1_1_engine_d3_d11_attribs.html @@ -0,0 +1,130 @@ + + + + + + + +Diligent Engine API Reference: Diligent::EngineD3D11Attribs Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::EngineD3D11Attribs Struct Reference
    +
    +
    + +

    Attributes of the Direct3D11-based engine implementation. + More...

    +
    +Inheritance diagram for Diligent::EngineD3D11Attribs:
    +
    +
    + + +Diligent::EngineCreationAttribs + +
    + + + + + + + + + +

    +Public Attributes

    Uint32 DebugFlags
     Debug flags. See Diligent::EngineD3D11DebugFlags for a list of allowed values. More...
     
    - Public Attributes inherited from Diligent::EngineCreationAttribs
    +class IMemoryAllocator * pRawMemAllocator
     Pointer to the raw memory allocator that will be used for all memory allocation/deallocation operations in an engine.
     
    +

    Detailed Description

    +

    Attributes of the Direct3D11-based engine implementation.

    +

    Member Data Documentation

    + +

    ◆ DebugFlags

    + +
    +
    + + + + +
    Uint32 Diligent::EngineD3D11Attribs::DebugFlags
    +
    + +

    Debug flags. See Diligent::EngineD3D11DebugFlags for a list of allowed values.

    +
    See also
    CreateDeviceAndContextsD3D11Type, CreateSwapChainD3D11Type, LoadGraphicsEngineD3D11
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_engine_d3_d11_attribs.png b/doc/html/struct_diligent_1_1_engine_d3_d11_attribs.png new file mode 100644 index 00000000..3bf5e39a Binary files /dev/null and b/doc/html/struct_diligent_1_1_engine_d3_d11_attribs.png differ diff --git a/doc/html/struct_diligent_1_1_engine_d3_d12_attribs-members.html b/doc/html/struct_diligent_1_1_engine_d3_d12_attribs-members.html new file mode 100644 index 00000000..b1af9f3b --- /dev/null +++ b/doc/html/struct_diligent_1_1_engine_d3_d12_attribs-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::EngineD3D12Attribs Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_engine_d3_d12_attribs.html b/doc/html/struct_diligent_1_1_engine_d3_d12_attribs.html new file mode 100644 index 00000000..870c78d9 --- /dev/null +++ b/doc/html/struct_diligent_1_1_engine_d3_d12_attribs.html @@ -0,0 +1,129 @@ + + + + + + + +Diligent Engine API Reference: Diligent::EngineD3D12Attribs Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::EngineD3D12Attribs Struct Reference
    +
    +
    + +

    Attributes specific to D3D12 engine. + More...

    +
    +Inheritance diagram for Diligent::EngineD3D12Attribs:
    +
    +
    + + +Diligent::EngineCreationAttribs + +
    + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +Uint32 CPUDescriptorHeapAllocationSize [4]
     Size of the CPU descriptor heap allocations for different heap types.
     
    +Uint32 GPUDescriptorHeapSize [2]
     Size of the GPU descriptor heap allocations for different heap types.
     
    +Uint32 GPUDescriptorHeapDynamicSize [2]
     Size of the dynamic GPU descriptor heap region for different heap types.
     
    +Uint32 DynamicDescriptorAllocationChunkSize [2]
     This is the size of the chunk that dynamic descriptor allocations manager request from the main GPU descriptor heap.
     
    +Uint32 NumCommandsToFlushCmdList = 256
     Number of commands to flush the command list. Only draw/dispatch commands count towards the limit. Command lists are only flushed when pipeline state is changed or when backbuffer is presented.
     
    - Public Attributes inherited from Diligent::EngineCreationAttribs
    +class IMemoryAllocator * pRawMemAllocator
     Pointer to the raw memory allocator that will be used for all memory allocation/deallocation operations in an engine.
     
    +

    Detailed Description

    +

    Attributes specific to D3D12 engine.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_engine_d3_d12_attribs.png b/doc/html/struct_diligent_1_1_engine_d3_d12_attribs.png new file mode 100644 index 00000000..1ecbc58a Binary files /dev/null and b/doc/html/struct_diligent_1_1_engine_d3_d12_attribs.png differ diff --git a/doc/html/struct_diligent_1_1_graphics_pipeline_desc-members.html b/doc/html/struct_diligent_1_1_graphics_pipeline_desc-members.html new file mode 100644 index 00000000..a8eb0c98 --- /dev/null +++ b/doc/html/struct_diligent_1_1_graphics_pipeline_desc-members.html @@ -0,0 +1,102 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::GraphicsPipelineDesc Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_graphics_pipeline_desc.html b/doc/html/struct_diligent_1_1_graphics_pipeline_desc.html new file mode 100644 index 00000000..eaefe4b0 --- /dev/null +++ b/doc/html/struct_diligent_1_1_graphics_pipeline_desc.html @@ -0,0 +1,160 @@ + + + + + + + +Diligent Engine API Reference: Diligent::GraphicsPipelineDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::GraphicsPipelineDesc Struct Reference
    +
    +
    + +

    Graphics pipeline state description. + More...

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

    +Public Attributes

    +IShaderpVS
     Vertex shader to be used with the pipeline.
     
    +IShaderpPS
     Pixel shader to be used with the pipeline.
     
    +IShaderpDS
     Domain shader to be used with the pipeline.
     
    +IShaderpHS
     Hull shader to be used with the pipeline.
     
    +IShaderpGS
     Geometry shader to be used with the pipeline.
     
    +BlendStateDesc BlendDesc
     Blend state description.
     
    +Uint32 SampleMask
     32-bit sample mask that determines which samples get updated in all the active render targets. A sample mask is always applied; it is independent of whether multisampling is enabled, and does not depend on whether an application uses multisample render targets.
     
    +RasterizerStateDesc RasterizerDesc
     Rasterizer state description.
     
    +DepthStencilStateDesc DepthStencilDesc
     Depth-stencil state description.
     
    +InputLayoutDesc InputLayout
     Input layout.
     
    +PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType
     Primitive topology type.
     
    +Uint32 NumRenderTargets
     Number of render targets in the RTVFormats member.
     
    +TEXTURE_FORMAT RTVFormats [8]
     Render target formats.
     
    +TEXTURE_FORMAT DSVFormat
     Depth-stencil format.
     
    +SampleDesc SmplDesc
     Multisampling parameters.
     
    +Uint32 NodeMask
     Node mask.
     
    +

    Detailed Description

    +

    Graphics pipeline state description.

    +

    This structure describes the graphics pipeline state and is part of the PipelineStateDesc structure.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_hash_map_string_key-members.html b/doc/html/struct_diligent_1_1_hash_map_string_key-members.html new file mode 100644 index 00000000..3b440538 --- /dev/null +++ b/doc/html/struct_diligent_1_1_hash_map_string_key-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::HashMapStringKey Member List
    +
    +
    + +

    This is the complete list of members for Diligent::HashMapStringKey, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_hash_map_string_key.html b/doc/html/struct_diligent_1_1_hash_map_string_key.html new file mode 100644 index 00000000..a89c30fd --- /dev/null +++ b/doc/html/struct_diligent_1_1_hash_map_string_key.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Diligent::HashMapStringKey Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::HashMapStringKey Struct Reference
    +
    +
    + +

    This helper structure is intended to facilitate using strings as a hash table key. It provides constructors that can make a copy of the source string or just keep pointer to it, which enables searching in the hash using raw const Char* pointers. + More...

    +

    Detailed Description

    +

    This helper structure is intended to facilitate using strings as a hash table key. It provides constructors that can make a copy of the source string or just keep pointer to it, which enables searching in the hash using raw const Char* pointers.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_i_n_t_e_r_f_a_c_e___i_d-members.html b/doc/html/struct_diligent_1_1_i_n_t_e_r_f_a_c_e___i_d-members.html new file mode 100644 index 00000000..0a5873db --- /dev/null +++ b/doc/html/struct_diligent_1_1_i_n_t_e_r_f_a_c_e___i_d-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::INTERFACE_ID Member List
    +
    +
    + +

    This is the complete list of members for Diligent::INTERFACE_ID, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_i_n_t_e_r_f_a_c_e___i_d.html b/doc/html/struct_diligent_1_1_i_n_t_e_r_f_a_c_e___i_d.html new file mode 100644 index 00000000..cfe44c40 --- /dev/null +++ b/doc/html/struct_diligent_1_1_i_n_t_e_r_f_a_c_e___i_d.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Diligent::INTERFACE_ID Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::INTERFACE_ID Struct Reference
    +
    +
    + +

    Describes unique identifier. + More...

    +

    Detailed Description

    +

    Describes unique identifier.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_input_layout_desc-members.html b/doc/html/struct_diligent_1_1_input_layout_desc-members.html new file mode 100644 index 00000000..13dea809 --- /dev/null +++ b/doc/html/struct_diligent_1_1_input_layout_desc-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::InputLayoutDesc Member List
    +
    +
    + +

    This is the complete list of members for Diligent::InputLayoutDesc, including all inherited members.

    + + + +
    LayoutElementsDiligent::InputLayoutDesc
    NumElementsDiligent::InputLayoutDesc
    + + + + + diff --git a/doc/html/struct_diligent_1_1_input_layout_desc.html b/doc/html/struct_diligent_1_1_input_layout_desc.html new file mode 100644 index 00000000..79a5f6fa --- /dev/null +++ b/doc/html/struct_diligent_1_1_input_layout_desc.html @@ -0,0 +1,104 @@ + + + + + + + +Diligent Engine API Reference: Diligent::InputLayoutDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::InputLayoutDesc Struct Reference
    +
    +
    + +

    Layout description. + More...

    + + + + + + + + +

    +Public Attributes

    +const LayoutElementLayoutElements
     Array of layout elements.
     
    +Uint32 NumElements
     Number of layout elements.
     
    +

    Detailed Description

    +

    Layout description.

    +

    This structure is used by IRenderDevice::CreatePipelineState().

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_layout_element-members.html b/doc/html/struct_diligent_1_1_layout_element-members.html new file mode 100644 index 00000000..05c04513 --- /dev/null +++ b/doc/html/struct_diligent_1_1_layout_element-members.html @@ -0,0 +1,99 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::LayoutElement Member List
    +
    +
    + +

    This is the complete list of members for Diligent::LayoutElement, including all inherited members.

    + + + + + + + + + + + + + + +
    BufferSlotDiligent::LayoutElement
    FREQUENCY enum nameDiligent::LayoutElement
    FREQUENCY_NUM_FREQUENCIES enum valueDiligent::LayoutElement
    FREQUENCY_PER_INSTANCE enum valueDiligent::LayoutElement
    FREQUENCY_PER_VERTEX enum valueDiligent::LayoutElement
    FREQUENCY_UNDEFINED enum valueDiligent::LayoutElement
    InputIndexDiligent::LayoutElement
    InstanceDataStepRateDiligent::LayoutElement
    IsNormalizedDiligent::LayoutElement
    LayoutElement(Uint32 _InputIndex=0, Uint32 _BufferSlot=0, Uint32 _NumComponents=0, VALUE_TYPE _ValueType=VT_FLOAT32, Bool _IsNormalized=True, Uint32 _RelativeOffset=0, FREQUENCY _Frequency=FREQUENCY_PER_VERTEX, Uint32 _InstanceDataStepRate=1)Diligent::LayoutElementinline
    NumComponentsDiligent::LayoutElement
    RelativeOffsetDiligent::LayoutElement
    ValueTypeDiligent::LayoutElement
    + + + + + diff --git a/doc/html/struct_diligent_1_1_layout_element.html b/doc/html/struct_diligent_1_1_layout_element.html new file mode 100644 index 00000000..d3f447e4 --- /dev/null +++ b/doc/html/struct_diligent_1_1_layout_element.html @@ -0,0 +1,169 @@ + + + + + + + +Diligent Engine API Reference: Diligent::LayoutElement Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::LayoutElement Struct Reference
    +
    +
    + +

    Description of a single element of the input layout. + More...

    + + + + + +

    +Public Types

    enum  FREQUENCY : Int32 { FREQUENCY_UNDEFINED = 0, +FREQUENCY_PER_VERTEX, +FREQUENCY_PER_INSTANCE, +FREQUENCY_NUM_FREQUENCIES + }
     Input frequency. More...
     
    + + + + +

    +Public Member Functions

    LayoutElement (Uint32 _InputIndex=0, Uint32 _BufferSlot=0, Uint32 _NumComponents=0, VALUE_TYPE _ValueType=VT_FLOAT32, Bool _IsNormalized=True, Uint32 _RelativeOffset=0, FREQUENCY _Frequency=FREQUENCY_PER_VERTEX, Uint32 _InstanceDataStepRate=1)
     Initializes the structure.
     
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +Uint32 InputIndex
     Input index of the element, which is specified in the vertex shader.
     
    +Uint32 BufferSlot
     Buffer slot index that this element is read from.
     
    +Uint32 NumComponents
     Number of components in the element. Allowed values are 1, 2, 3, and 4.
     
    +VALUE_TYPE ValueType
     Type of the element components, see Diligent::VALUE_TYPE for details.
     
    +Bool IsNormalized
     For signed and unsigned integer value types (VT_INT8, VT_INT16, VT_INT32, VT_UINT8, VT_UINT16, VT_UINT32) indicates if the value should be normalized to [-1,+1] or [0, 1] range respectively. For floating point types (VT_FLOAT16 and VT_FLOAT32), this member is ignored.
     
    +Uint32 RelativeOffset
     Relative offset, in bytes, to the element bits. If this value is zero, the offset will be computed automatically assuming that all previous elements in the same buffer slot a tightly packed. Overlapping elements are not allowed.
     
    +Uint32 InstanceDataStepRate
     The number of instances to draw using the same per-instance data before advancing in the buffer by one element.
     
    +

    Detailed Description

    +

    Description of a single element of the input layout.

    +

    Member Enumeration Documentation

    + +

    ◆ FREQUENCY

    + +
    +
    + + + + +
    enum Diligent::LayoutElement::FREQUENCY : Int32
    +
    + +

    Input frequency.

    + + + + + +
    Enumerator
    FREQUENCY_UNDEFINED 

    Frequency is undefined.

    +
    FREQUENCY_PER_VERTEX 

    Input data is per-vertex data.

    +
    FREQUENCY_PER_INSTANCE 

    Input data is per-instance data.

    +
    FREQUENCY_NUM_FREQUENCIES 

    Helper value that stores the total number of frequencies in the enumeration.

    +
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_optimized_clear_value-members.html b/doc/html/struct_diligent_1_1_optimized_clear_value-members.html new file mode 100644 index 00000000..bcc6e44f --- /dev/null +++ b/doc/html/struct_diligent_1_1_optimized_clear_value-members.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::OptimizedClearValue Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_optimized_clear_value.html b/doc/html/struct_diligent_1_1_optimized_clear_value.html new file mode 100644 index 00000000..dfbeb1d4 --- /dev/null +++ b/doc/html/struct_diligent_1_1_optimized_clear_value.html @@ -0,0 +1,107 @@ + + + + + + + +Diligent Engine API Reference: Diligent::OptimizedClearValue Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::OptimizedClearValue Struct Reference
    +
    +
    + +

    Defines optimized clear value. + More...

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

    +Public Attributes

    +TEXTURE_FORMAT Format
     Format.
     
    +Float32 Color [4]
     Render target clear value.
     
    +DepthStencilClearValue DepthStencil
     Depth stencil clear value.
     
    +

    Detailed Description

    +

    Defines optimized clear value.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_pipeline_state_desc-members.html b/doc/html/struct_diligent_1_1_pipeline_state_desc-members.html new file mode 100644 index 00000000..606f0d4a --- /dev/null +++ b/doc/html/struct_diligent_1_1_pipeline_state_desc-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::PipelineStateDesc Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_pipeline_state_desc.html b/doc/html/struct_diligent_1_1_pipeline_state_desc.html new file mode 100644 index 00000000..9c8233d7 --- /dev/null +++ b/doc/html/struct_diligent_1_1_pipeline_state_desc.html @@ -0,0 +1,150 @@ + + + + + + + +Diligent Engine API Reference: Diligent::PipelineStateDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::PipelineStateDesc Struct Reference
    +
    +
    + +

    Pipeline state description. + More...

    +
    +Inheritance diagram for Diligent::PipelineStateDesc:
    +
    +
    + + +Diligent::DeviceObjectAttribs + +
    + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +bool IsComputePipeline
     Flag indicating if pipeline state is a compute pipeline state.
     
    +GraphicsPipelineDesc GraphicsPipeline
     Graphics pipeline state description. This memeber is ignored if IsComputePipeline == True.
     
    +ComputePipelineDesc ComputePipeline
     Compute pipeline state description. This memeber is ignored if IsComputePipeline == False.
     
    Uint32 SRBAllocationGranularity
     Shader resource binding allocation granularity. More...
     
    - Public Attributes inherited from Diligent::DeviceObjectAttribs
    +const Char * Name
     Object name.
     
    + + + + + +

    +Additional Inherited Members

    - Public Member Functions inherited from Diligent::DeviceObjectAttribs
    DeviceObjectAttribs ()
     Constructor intializes the structure members with default values.
     
    +

    Detailed Description

    +

    Pipeline state description.

    +

    Member Data Documentation

    + +

    ◆ SRBAllocationGranularity

    + +
    +
    + + + + +
    Uint32 Diligent::PipelineStateDesc::SRBAllocationGranularity
    +
    + +

    Shader resource binding allocation granularity.

    +

    This member defines allocation granularity for internal resources required by the shader resource binding object instances.

    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_pipeline_state_desc.png b/doc/html/struct_diligent_1_1_pipeline_state_desc.png new file mode 100644 index 00000000..a28aca55 Binary files /dev/null and b/doc/html/struct_diligent_1_1_pipeline_state_desc.png differ diff --git a/doc/html/struct_diligent_1_1_rasterizer_state_desc-members.html b/doc/html/struct_diligent_1_1_rasterizer_state_desc-members.html new file mode 100644 index 00000000..3bfaf349 --- /dev/null +++ b/doc/html/struct_diligent_1_1_rasterizer_state_desc-members.html @@ -0,0 +1,97 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::RasterizerStateDesc Member List
    +
    +
    + +

    This is the complete list of members for Diligent::RasterizerStateDesc, including all inherited members.

    + + + + + + + + + + + + +
    AntialiasedLineEnableDiligent::RasterizerStateDesc
    CullModeDiligent::RasterizerStateDesc
    DepthBiasDiligent::RasterizerStateDesc
    DepthBiasClampDiligent::RasterizerStateDesc
    DepthClipEnableDiligent::RasterizerStateDesc
    FillModeDiligent::RasterizerStateDesc
    FrontCounterClockwiseDiligent::RasterizerStateDesc
    operator==(const RasterizerStateDesc &RHS) constDiligent::RasterizerStateDescinline
    RasterizerStateDesc(FILL_MODE _FillMode=FILL_MODE_SOLID, CULL_MODE _CullMode=CULL_MODE_BACK, Bool _FrontCounterClockwise=False, Int32 _DepthBias=0, Float32 _DepthBiasClamp=0.f, Float32 _SlopeScaledDepthBias=0.f, Bool _DepthClipEnable=True, Bool _ScissorEnable=False, Bool _AntialiasedLineEnable=False)Diligent::RasterizerStateDescinline
    ScissorEnableDiligent::RasterizerStateDesc
    SlopeScaledDepthBiasDiligent::RasterizerStateDesc
    + + + + + diff --git a/doc/html/struct_diligent_1_1_rasterizer_state_desc.html b/doc/html/struct_diligent_1_1_rasterizer_state_desc.html new file mode 100644 index 00000000..df62b961 --- /dev/null +++ b/doc/html/struct_diligent_1_1_rasterizer_state_desc.html @@ -0,0 +1,318 @@ + + + + + + + +Diligent Engine API Reference: Diligent::RasterizerStateDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::RasterizerStateDesc Struct Reference
    +
    +
    + +

    Rasterizer state description. + More...

    + + + + + + + + +

    +Public Member Functions

     RasterizerStateDesc (FILL_MODE _FillMode=FILL_MODE_SOLID, CULL_MODE _CullMode=CULL_MODE_BACK, Bool _FrontCounterClockwise=False, Int32 _DepthBias=0, Float32 _DepthBiasClamp=0.f, Float32 _SlopeScaledDepthBias=0.f, Bool _DepthClipEnable=True, Bool _ScissorEnable=False, Bool _AntialiasedLineEnable=False)
     Initializes the structure members. More...
     
    bool operator== (const RasterizerStateDesc &RHS) const
     Tests if two structures are equivalent. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +FILL_MODE FillMode
     Determines traingle fill mode, see Diligent::FILL_MODE for details.
     
    +CULL_MODE CullMode
     Determines traingle cull mode, see Diligent::CULL_MODE for details.
     
    +Bool FrontCounterClockwise
     Determines if a triangle is front- or back-facing. If this parameter is True, a triangle will be considered front-facing if its vertices are counter-clockwise on the render target and considered back-facing if they are clockwise. If this parameter is False, the opposite is true.
     
    +Int32 DepthBias
     Constant value added to the depth of a given pixel.
     
    Float32 DepthBiasClamp
     Maximum depth bias of a pixel. More...
     
    +Float32 SlopeScaledDepthBias
     Scalar that scales the given pixel's slope before adding to the pixel's depth.
     
    Bool DepthClipEnable
     Enable clipping based on distance. More...
     
    +Bool ScissorEnable
     Enable scissor-rectangle culling. All pixels outside an active scissor rectangle are culled.
     
    +Bool AntialiasedLineEnable
     Specifies whether to enable line antialiasing.
     
    +

    Detailed Description

    +

    Rasterizer state description.

    +

    This structure describes the rasterizer state and is part of the GraphicsPipelineDesc.

    +

    Constructor & Destructor Documentation

    + +

    ◆ RasterizerStateDesc()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Diligent::RasterizerStateDesc::RasterizerStateDesc (FILL_MODE _FillMode = FILL_MODE_SOLID,
    CULL_MODE _CullMode = CULL_MODE_BACK,
    Bool _FrontCounterClockwise = False,
    Int32 _DepthBias = 0,
    Float32 _DepthBiasClamp = 0.f,
    Float32 _SlopeScaledDepthBias = 0.f,
    Bool _DepthClipEnable = True,
    Bool _ScissorEnable = False,
    Bool _AntialiasedLineEnable = False 
    )
    +
    +inline
    +
    + +

    Initializes the structure members.

    + + + + + + + + + + + + + + + + + + + + + +
    Member Default va
    FillMode FILL_MODE_SOLID
    CullMode CULL_MODE_BACK
    FrontCounterClockwise False
    DepthBias 0
    DepthBiasClamp 0.f
    SlopeScaledDepthBias 0.f
    DepthClipEnable True
    ScissorEnable False
    AntialiasedLineEnable False
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator==()

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool Diligent::RasterizerStateDesc::operator== (const RasterizerStateDescRHS) const
    +
    +inline
    +
    + +

    Tests if two structures are equivalent.

    +
    Parameters
    + + +
    [in]RHS- reference to the structure to perform comparison with
    +
    +
    +
    Returns
      +
    • True if all members of the two structures are equal.
    • +
    • False otherwise
    • +
    +
    + +
    +
    +

    Member Data Documentation

    + +

    ◆ DepthBiasClamp

    + +
    +
    + + + + +
    Float32 Diligent::RasterizerStateDesc::DepthBiasClamp
    +
    + +

    Maximum depth bias of a pixel.

    +
    Warning
    Depth bias clamp is not available in OpenGL
    + +
    +
    + +

    ◆ DepthClipEnable

    + +
    +
    + + + + +
    Bool Diligent::RasterizerStateDesc::DepthClipEnable
    +
    + +

    Enable clipping based on distance.

    +
    Warning
    On DirectX this only disables clipping against far clipping plane, while on OpenGL this disables clipping against both far and near clip planes.
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_rect-members.html b/doc/html/struct_diligent_1_1_rect-members.html new file mode 100644 index 00000000..cb37fd50 --- /dev/null +++ b/doc/html/struct_diligent_1_1_rect-members.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::Rect Member List
    +
    +
    + +

    This is the complete list of members for Diligent::Rect, including all inherited members.

    + + + + + + +
    bottomDiligent::Rect
    leftDiligent::Rect
    Rect(Int32 _left=0, Int32 _top=0, Int32 _right=0, Int32 _bottom=0)Diligent::Rectinline
    rightDiligent::Rect
    topDiligent::Rect
    + + + + + diff --git a/doc/html/struct_diligent_1_1_rect.html b/doc/html/struct_diligent_1_1_rect.html new file mode 100644 index 00000000..d4e2ef92 --- /dev/null +++ b/doc/html/struct_diligent_1_1_rect.html @@ -0,0 +1,121 @@ + + + + + + + +Diligent Engine API Reference: Diligent::Rect Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::Rect Struct Reference
    +
    +
    + +

    Describes the rectangle. + More...

    + + + + + +

    +Public Member Functions

    Rect (Int32 _left=0, Int32 _top=0, Int32 _right=0, Int32 _bottom=0)
     Initializes the structure.
     
    + + + + + + + + + + + + + +

    +Public Attributes

    +Int32 left
     X coordinate of the left boundary of the viewport.
     
    +Int32 top
     Y coordinate of the top boundary of the viewport.
     
    +Int32 right
     X coordinate of the right boundary of the viewport.
     
    +Int32 bottom
     Y coordinate of the bottom boundary of the viewport.
     
    +

    Detailed Description

    +

    Describes the rectangle.

    +

    This structure is used by IDeviceContext::SetScissorRects().

    +
    Remarks
    When defining a viewport, Windows convention is used: window coordinate systems originates in the LEFT TOP corner of the screen with Y axis pointing down.
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_render_target_blend_desc-members.html b/doc/html/struct_diligent_1_1_render_target_blend_desc-members.html new file mode 100644 index 00000000..b5481348 --- /dev/null +++ b/doc/html/struct_diligent_1_1_render_target_blend_desc-members.html @@ -0,0 +1,98 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::RenderTargetBlendDesc Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_render_target_blend_desc.html b/doc/html/struct_diligent_1_1_render_target_blend_desc.html new file mode 100644 index 00000000..c2f6e20c --- /dev/null +++ b/doc/html/struct_diligent_1_1_render_target_blend_desc.html @@ -0,0 +1,238 @@ + + + + + + + +Diligent Engine API Reference: Diligent::RenderTargetBlendDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::RenderTargetBlendDesc Struct Reference
    +
    +
    + +

    Describes a blend state for a single render target. + More...

    + + + + + + + + +

    +Public Member Functions

     RenderTargetBlendDesc ()
     Constructor initializes structure members with default values. More...
     
    bool operator== (const RenderTargetBlendDesc &rhs) const
     Comparison operator tests if two structures are equivalent. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +Bool BlendEnable
     Enable or disable blending for this render target.
     
    +Bool LogicOperationEnable
     Enable or disable a logical operation for this render target.
     
    +BLEND_FACTOR SrcBlend
     Specifies the blend factor to apply to the RGB value output from the pixel shader.
     
    +BLEND_FACTOR DestBlend
     Specifies the blend factor to apply to the RGB value in the render target.
     
    +BLEND_OPERATION BlendOp
     Defines how to combine the source and destination RGB values after applying the SrcBlend and DestBlend factors.
     
    +BLEND_FACTOR SrcBlendAlpha
     Specifies the blend factor to apply to the alpha value output from the pixel shader. Blend factors that end in _COLOR are not allowed.
     
    +BLEND_FACTOR DestBlendAlpha
     Specifies the blend factor to apply to the alpha value in the render target. Blend factors that end in _COLOR are not allowed.
     
    +BLEND_OPERATION BlendOpAlpha
     Defines how to combine the source and destination alpha values after applying the SrcBlendAlpha and DestBlendAlpha factors.
     
    +LOGIC_OPERATION LogicOp
     Defines logical operation for the render target.
     
    +Uint32 RenderTargetWriteMask
     Render target write mask.
     
    +

    Detailed Description

    +

    Describes a blend state for a single render target.

    +

    This structure is used by BlendStateDesc to describe blend states for render targets

    +

    Constructor & Destructor Documentation

    + +

    ◆ RenderTargetBlendDesc()

    + +
    +
    + + + + + +
    + + + + + + + +
    Diligent::RenderTargetBlendDesc::RenderTargetBlendDesc ()
    +
    +inline
    +
    + +

    Constructor initializes structure members with default values.

    + + + + + + + + + + + + + + + + + + + + + + + +
    Member Default va
    BlendEnable False
    LogicOperationEnable False
    SrcBlend Diligent::BLEND_FACTOR_ONE
    DestBlend Diligent::BLEND_FACTOR_ZERO
    BlendOp Diligent::BLEND_OPERATION_ADD
    SrcBlendAlpha Diligent::BLEND_FACTOR_ONE
    DestBlendAlpha Diligent::BLEND_FACTOR_ZERO
    BlendOpAlpha Diligent::BLEND_OPERATION_ADD
    LogicOp Diligent::LOGIC_OP_NOOP
    RenderTargetWriteMask Diligent::COLOR_MASK_ALL
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator==()

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool Diligent::RenderTargetBlendDesc::operator== (const RenderTargetBlendDescrhs) const
    +
    +inline
    +
    + +

    Comparison operator tests if two structures are equivalent.

    +
    Parameters
    + + +
    [in]rhs- reference to the structure to perform comparison with
    +
    +
    +
    Returns
      +
    • True if all members of the two structures are equal.
    • +
    • False otherwise
    • +
    +
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_resource_mapping_desc-members.html b/doc/html/struct_diligent_1_1_resource_mapping_desc-members.html new file mode 100644 index 00000000..3d96dac4 --- /dev/null +++ b/doc/html/struct_diligent_1_1_resource_mapping_desc-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::ResourceMappingDesc Member List
    +
    +
    + +

    This is the complete list of members for Diligent::ResourceMappingDesc, including all inherited members.

    + + + +
    pEntriesDiligent::ResourceMappingDesc
    ResourceMappingDesc()Diligent::ResourceMappingDescinline
    + + + + + diff --git a/doc/html/struct_diligent_1_1_resource_mapping_desc.html b/doc/html/struct_diligent_1_1_resource_mapping_desc.html new file mode 100644 index 00000000..fffbbf03 --- /dev/null +++ b/doc/html/struct_diligent_1_1_resource_mapping_desc.html @@ -0,0 +1,140 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ResourceMappingDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::ResourceMappingDesc Struct Reference
    +
    +
    + +

    Resource mapping description. + More...

    + + + + + +

    +Public Member Functions

     ResourceMappingDesc ()
     Initializes the structure members with default values. More...
     
    + + + + +

    +Public Attributes

    +ResourceMappingEntrypEntries
     Pointer to the array of resource mapping entries. The last element in the array must be default value created by ResourceMappingEntry::ResourceMappingEntry()
     
    +

    Detailed Description

    +

    Resource mapping description.

    +

    Constructor & Destructor Documentation

    + +

    ◆ ResourceMappingDesc()

    + +
    +
    + + + + + +
    + + + + + + + +
    Diligent::ResourceMappingDesc::ResourceMappingDesc ()
    +
    +inline
    +
    + +

    Initializes the structure members with default values.

    + + + + + +
    Member Default va
    pEntries nullptr
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_resource_mapping_entry-members.html b/doc/html/struct_diligent_1_1_resource_mapping_entry-members.html new file mode 100644 index 00000000..9a482c19 --- /dev/null +++ b/doc/html/struct_diligent_1_1_resource_mapping_entry-members.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::ResourceMappingEntry Member List
    +
    +
    + +

    This is the complete list of members for Diligent::ResourceMappingEntry, including all inherited members.

    + + + + +
    NameDiligent::ResourceMappingEntry
    pObjectDiligent::ResourceMappingEntry
    ResourceMappingEntry(const Char *_Name=nullptr, IDeviceObject *_pObject=nullptr, Uint32 _ArrayIndex=0)Diligent::ResourceMappingEntryinline
    + + + + + diff --git a/doc/html/struct_diligent_1_1_resource_mapping_entry.html b/doc/html/struct_diligent_1_1_resource_mapping_entry.html new file mode 100644 index 00000000..9a4afd16 --- /dev/null +++ b/doc/html/struct_diligent_1_1_resource_mapping_entry.html @@ -0,0 +1,163 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ResourceMappingEntry Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::ResourceMappingEntry Struct Reference
    +
    +
    + +

    Describes the resourse mapping object entry. + More...

    + + + + + +

    +Public Member Functions

     ResourceMappingEntry (const Char *_Name=nullptr, IDeviceObject *_pObject=nullptr, Uint32 _ArrayIndex=0)
     Initializes the structure members. More...
     
    + + + + + + + +

    +Public Attributes

    +const Char * Name
     Object name.
     
    +IDeviceObjectpObject
     Pointer to the object's interface.
     
    +

    Detailed Description

    +

    Describes the resourse mapping object entry.

    +

    Constructor & Destructor Documentation

    + +

    ◆ ResourceMappingEntry()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    Diligent::ResourceMappingEntry::ResourceMappingEntry (const Char * _Name = nullptr,
    IDeviceObject_pObject = nullptr,
    Uint32 _ArrayIndex = 0 
    )
    +
    +inline
    +
    + +

    Initializes the structure members.

    +
    Parameters
    + + + + +
    [in]_Name- Object name. Default value is nullptr
    [in]_pObject- Pointer to the object. Default value is nullptr
    [in]_ArrayIndex- For array resources, index in the array
    +
    +
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_sample_desc-members.html b/doc/html/struct_diligent_1_1_sample_desc-members.html new file mode 100644 index 00000000..a1e8661c --- /dev/null +++ b/doc/html/struct_diligent_1_1_sample_desc-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::SampleDesc Member List
    +
    +
    + +

    This is the complete list of members for Diligent::SampleDesc, including all inherited members.

    + + + +
    CountDiligent::SampleDesc
    QualityDiligent::SampleDesc
    + + + + + diff --git a/doc/html/struct_diligent_1_1_sample_desc.html b/doc/html/struct_diligent_1_1_sample_desc.html new file mode 100644 index 00000000..94bb766e --- /dev/null +++ b/doc/html/struct_diligent_1_1_sample_desc.html @@ -0,0 +1,104 @@ + + + + + + + +Diligent Engine API Reference: Diligent::SampleDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::SampleDesc Struct Reference
    +
    +
    + +

    Sample description. + More...

    + + + + + + + + +

    +Public Attributes

    +Uint32 Count
     Sample count.
     
    +Uint32 Quality
     Quality.
     
    +

    Detailed Description

    +

    Sample description.

    +

    This structure is used by GraphicsPipelineDesc to describe multisampling parameters

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_sampler_caps-members.html b/doc/html/struct_diligent_1_1_sampler_caps-members.html new file mode 100644 index 00000000..d687c6c0 --- /dev/null +++ b/doc/html/struct_diligent_1_1_sampler_caps-members.html @@ -0,0 +1,90 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::SamplerCaps Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_sampler_caps.html b/doc/html/struct_diligent_1_1_sampler_caps.html new file mode 100644 index 00000000..d7283e06 --- /dev/null +++ b/doc/html/struct_diligent_1_1_sampler_caps.html @@ -0,0 +1,115 @@ + + + + + + + +Diligent Engine API Reference: Diligent::SamplerCaps Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::SamplerCaps Struct Reference
    +
    +
    + +

    Texture sampler capabilities. + More...

    + + + + + +

    +Public Member Functions

    SamplerCaps ()
     Initializes the structure members with default values.
     
    + + + + + + + + + + +

    +Public Attributes

    +Bool bBorderSamplingModeSupported
     Indicates if device supports border texture addressing mode.
     
    +Bool bAnisotropicFilteringSupported
     Indicates if device supports anisotrpoic filtering.
     
    +Bool bLODBiasSupported
     Indicates if device supports MIP load bias.
     
    +

    Detailed Description

    +

    Texture sampler capabilities.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_sampler_desc-members.html b/doc/html/struct_diligent_1_1_sampler_desc-members.html new file mode 100644 index 00000000..a22ed34f --- /dev/null +++ b/doc/html/struct_diligent_1_1_sampler_desc-members.html @@ -0,0 +1,102 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::SamplerDesc Member List
    +
    +
    + +

    This is the complete list of members for Diligent::SamplerDesc, including all inherited members.

    + + + + + + + + + + + + + + + + + +
    AddressUDiligent::SamplerDesc
    AddressVDiligent::SamplerDesc
    AddressWDiligent::SamplerDesc
    BorderColorDiligent::SamplerDesc
    ComparisonFuncDiligent::SamplerDesc
    DeviceObjectAttribs()Diligent::DeviceObjectAttribsinline
    MagFilterDiligent::SamplerDesc
    MaxAnisotropyDiligent::SamplerDesc
    MaxLODDiligent::SamplerDesc
    MinFilterDiligent::SamplerDesc
    MinLODDiligent::SamplerDesc
    MipFilterDiligent::SamplerDesc
    MipLODBiasDiligent::SamplerDesc
    NameDiligent::DeviceObjectAttribs
    operator==(const SamplerDesc &RHS) constDiligent::SamplerDescinline
    SamplerDesc(FILTER_TYPE _MinFilter=FILTER_TYPE_LINEAR, FILTER_TYPE _MagFilter=FILTER_TYPE_LINEAR, FILTER_TYPE _MipFilter=FILTER_TYPE_LINEAR, TEXTURE_ADDRESS_MODE _AddressU=TEXTURE_ADDRESS_CLAMP, TEXTURE_ADDRESS_MODE _AddressV=TEXTURE_ADDRESS_CLAMP, TEXTURE_ADDRESS_MODE _AddressW=TEXTURE_ADDRESS_CLAMP, Float32 _MipLODBias=0, Uint32 _MaxAnisotropy=0, COMPARISON_FUNCTION _ComparisonFunc=COMPARISON_FUNC_NEVER, float _MinLOD=0, float _MaxLOD=+FLT_MAX)Diligent::SamplerDescinline
    + + + + + diff --git a/doc/html/struct_diligent_1_1_sampler_desc.html b/doc/html/struct_diligent_1_1_sampler_desc.html new file mode 100644 index 00000000..375d5f49 --- /dev/null +++ b/doc/html/struct_diligent_1_1_sampler_desc.html @@ -0,0 +1,337 @@ + + + + + + + +Diligent Engine API Reference: Diligent::SamplerDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::SamplerDesc Struct Reference
    +
    +
    + +

    Sampler description. + More...

    +
    +Inheritance diagram for Diligent::SamplerDesc:
    +
    +
    + + +Diligent::DeviceObjectAttribs + +
    + + + + + + + + + + + + +

    +Public Member Functions

     SamplerDesc (FILTER_TYPE _MinFilter=FILTER_TYPE_LINEAR, FILTER_TYPE _MagFilter=FILTER_TYPE_LINEAR, FILTER_TYPE _MipFilter=FILTER_TYPE_LINEAR, TEXTURE_ADDRESS_MODE _AddressU=TEXTURE_ADDRESS_CLAMP, TEXTURE_ADDRESS_MODE _AddressV=TEXTURE_ADDRESS_CLAMP, TEXTURE_ADDRESS_MODE _AddressW=TEXTURE_ADDRESS_CLAMP, Float32 _MipLODBias=0, Uint32 _MaxAnisotropy=0, COMPARISON_FUNCTION _ComparisonFunc=COMPARISON_FUNC_NEVER, float _MinLOD=0, float _MaxLOD=+FLT_MAX)
     Initializes the structure members. More...
     
    bool operator== (const SamplerDesc &RHS) const
     Tests if two structures are equivalent. More...
     
    - Public Member Functions inherited from Diligent::DeviceObjectAttribs
    DeviceObjectAttribs ()
     Constructor intializes the structure members with default values.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +FILTER_TYPE MinFilter
     Texture minification filter, see Diligent::FILTER_TYPE for details.
     
    +FILTER_TYPE MagFilter
     Texture magnification filter, see Diligent::FILTER_TYPE for details.
     
    +FILTER_TYPE MipFilter
     Mip filter, see Diligent::FILTER_TYPE for details. Only FILTER_TYPE_POINT, FILTER_TYPE_LINEAR, FILTER_TYPE_ANISOTROPIC, and FILTER_TYPE_COMPARISON_ANISOTROPIC are allowed.
     
    +TEXTURE_ADDRESS_MODE AddressU
     Texture address mode for U coordinate, see Diligent::TEXTURE_ADDRESS_MODE for details.
     
    +TEXTURE_ADDRESS_MODE AddressV
     Texture address mode for V coordinate, see Diligent::TEXTURE_ADDRESS_MODE for details.
     
    +TEXTURE_ADDRESS_MODE AddressW
     Texture address mode for W coordinate, see Diligent::TEXTURE_ADDRESS_MODE for details.
     
    +Float32 MipLODBias
     Offset from the calculated mipmap level. For example, if a sampler calculates that a texture should be sampled at mipmap level 1.2 and MipLODBias is 2.3, then the texture will be sampled at mipmap level 3.5.
     
    +Uint32 MaxAnisotropy
     Maximum anisotropy level for the anisotropic filter.
     
    +COMPARISON_FUNCTION ComparisonFunc
     A function that compares sampled data against existing sampled data when comparsion filter is used.
     
    +Float32 BorderColor [4]
     Border color to use if TEXTURE_ADDRESS_BORDER is specified for AddressU, AddressV, or AddressW.
     
    +float MinLOD
     Specifies the minimum value that LOD is clamped to before accessing the texture MIP levels. Must be less than or equal to MaxLOD.
     
    +float MaxLOD
     Specifies the maximum value that LOD is clamped to before accessing the texture MIP levels. Must be greater than or equal to MinLOD.
     
    - Public Attributes inherited from Diligent::DeviceObjectAttribs
    +const Char * Name
     Object name.
     
    +

    Detailed Description

    +

    Sampler description.

    +

    This structure describes the sampler state which is used in a call to IRenderDevice::CreateSampler() to create a sampler object.

    +

    To create an anisotropic filter, all three filters must either be Diligent::FILTER_TYPE_ANISOTROPIC or Diligent::FILTER_TYPE_COMPARISON_ANISOTROPIC.

    +

    MipFilter cannot be comparison filter except for Diligent::FILTER_TYPE_ANISOTROPIC if all three filters have that value.

    +

    Both MinFilter and MagFilter must either be regular filters or comparison filters. Mixing comparison and regular filters is an error.

    +

    Constructor & Destructor Documentation

    + +

    ◆ SamplerDesc()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Diligent::SamplerDesc::SamplerDesc (FILTER_TYPE _MinFilter = FILTER_TYPE_LINEAR,
    FILTER_TYPE _MagFilter = FILTER_TYPE_LINEAR,
    FILTER_TYPE _MipFilter = FILTER_TYPE_LINEAR,
    TEXTURE_ADDRESS_MODE _AddressU = TEXTURE_ADDRESS_CLAMP,
    TEXTURE_ADDRESS_MODE _AddressV = TEXTURE_ADDRESS_CLAMP,
    TEXTURE_ADDRESS_MODE _AddressW = TEXTURE_ADDRESS_CLAMP,
    Float32 _MipLODBias = 0,
    Uint32 _MaxAnisotropy = 0,
    COMPARISON_FUNCTION _ComparisonFunc = COMPARISON_FUNC_NEVER,
    float _MinLOD = 0,
    float _MaxLOD = +FLT_MAX 
    )
    +
    +inline
    +
    + +

    Initializes the structure members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Member Default va
    MinFilter FILTER_TYPE_LINEAR
    MagFilter FILTER_TYPE_LINEAR
    MipFilter FILTER_TYPE_LINEAR
    AddressU TEXTURE_ADDRESS_CLAMP
    AddressV TEXTURE_ADDRESS_CLAMP
    AddressW TEXTURE_ADDRESS_CLAMP
    MipLODBias 0
    MaxAnisotropy 0
    ComparisonFunc COMPARISON_FUNC_NEVER
    BorderColor (0,0,0,0)
    MinLOD 0
    MaxLOD +FLT_MAX
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator==()

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool Diligent::SamplerDesc::operator== (const SamplerDescRHS) const
    +
    +inline
    +
    + +

    Tests if two structures are equivalent.

    +
    Parameters
    + + +
    [in]RHS- reference to the structure to perform comparison with
    +
    +
    +
    Returns
      +
    • True if all members of the two structures are equal.
    • +
    • False otherwise. The operator ignores DeviceObjectAttribs::Name field as it does not affect the sampler state.
    • +
    +
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_sampler_desc.png b/doc/html/struct_diligent_1_1_sampler_desc.png new file mode 100644 index 00000000..f70f3018 Binary files /dev/null and b/doc/html/struct_diligent_1_1_sampler_desc.png differ diff --git a/doc/html/struct_diligent_1_1_shader_creation_attribs-members.html b/doc/html/struct_diligent_1_1_shader_creation_attribs-members.html new file mode 100644 index 00000000..b0699e43 --- /dev/null +++ b/doc/html/struct_diligent_1_1_shader_creation_attribs-members.html @@ -0,0 +1,96 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::ShaderCreationAttribs Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_shader_creation_attribs.html b/doc/html/struct_diligent_1_1_shader_creation_attribs.html new file mode 100644 index 00000000..ae30f484 --- /dev/null +++ b/doc/html/struct_diligent_1_1_shader_creation_attribs.html @@ -0,0 +1,264 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderCreationAttribs Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::ShaderCreationAttribs Struct Reference
    +
    +
    + +

    Shader creation attributes. + More...

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

    +Public Attributes

    const Char * FilePath = nullptr
     Source file path. More...
     
    IShaderSourceInputStreamFactorypShaderSourceStreamFactory = nullptr
     Pointer to the shader source input stream factory. More...
     
    class IHLSL2GLSLConversionStream ** ppConversionStream = nullptr
     HLSL->GLSL conversion stream. More...
     
    const Char * Source = nullptr
     Shader source. More...
     
    const void * ByteCode = nullptr
     Compiled shader bytecode. More...
     
    size_t ByteCodeSize = 0
     Size of the compiled shader bytecode. More...
     
    const Char * EntryPoint = "main"
     Shader entry point. More...
     
    const ShaderMacro * Macros = nullptr
     Shader macros. More...
     
    +ShaderDesc Desc
     Shader description. See Diligent::ShaderDesc.
     
    +SHADER_SOURCE_LANGUAGE SourceLanguage = SHADER_SOURCE_LANGUAGE_DEFAULT
     Shader source language. See Diligent::SHADER_SOURCE_LANGUAGE.
     
    +

    Detailed Description

    +

    Shader creation attributes.

    +

    Member Data Documentation

    + +

    ◆ ByteCode

    + +
    +
    + + + + +
    const void* Diligent::ShaderCreationAttribs::ByteCode = nullptr
    +
    + +

    Compiled shader bytecode.

    +

    If shader byte code is provided, FilePath and Source members must be null

    Note
    . This option is currently only supported for D3D11 and D3D12
    + +
    +
    + +

    ◆ ByteCodeSize

    + +
    +
    + + + + +
    size_t Diligent::ShaderCreationAttribs::ByteCodeSize = 0
    +
    + +

    Size of the compiled shader bytecode.

    +

    Byte code size must be provided if ByteCode is not null

    + +
    +
    + +

    ◆ EntryPoint

    + +
    +
    + + + + +
    const Char* Diligent::ShaderCreationAttribs::EntryPoint = "main"
    +
    + +

    Shader entry point.

    +

    This member is ignored if ByteCode is not null

    + +
    +
    + +

    ◆ FilePath

    + +
    +
    + + + + +
    const Char* Diligent::ShaderCreationAttribs::FilePath = nullptr
    +
    + +

    Source file path.

    +

    If source file path is provided, Source and ByteCode members must be null

    + +
    +
    + +

    ◆ Macros

    + +
    +
    + + + + +
    const ShaderMacro* Diligent::ShaderCreationAttribs::Macros = nullptr
    +
    + +

    Shader macros.

    +

    This member is ignored if ByteCode is not null

    + +
    +
    + +

    ◆ ppConversionStream

    + +
    +
    + + + + +
    class IHLSL2GLSLConversionStream** Diligent::ShaderCreationAttribs::ppConversionStream = nullptr
    +
    + +

    HLSL->GLSL conversion stream.

    +

    If HLSL->GLSL converter is used to convert HLSL shader source to GLSL, this member can provide pointer to the conversion stream. It is useful when the same file is used to create a number of different shaders. If ppConversionStream is null, the converter will parse the same file every time new shader is converted. If ppConversionStream is not null, the converter will write pointer to the conversion stream to *ppConversionStream the first time and will use it in all subsequent times. For all subsequent conversions, FilePath member must be the same, or new stream will be crated and warning message will be displayed.

    + +
    +
    + +

    ◆ pShaderSourceStreamFactory

    + +
    +
    + + + + +
    IShaderSourceInputStreamFactory* Diligent::ShaderCreationAttribs::pShaderSourceStreamFactory = nullptr
    +
    + +

    Pointer to the shader source input stream factory.

    +

    The factory is used to load the shader source file if FilePath is not null. It is also used to create additional input streams for shader include files

    + +
    +
    + +

    ◆ Source

    + +
    +
    + + + + +
    const Char* Diligent::ShaderCreationAttribs::Source = nullptr
    +
    + +

    Shader source.

    +

    If shader source is provided, FilePath and ByteCode members must be null

    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_shader_desc-members.html b/doc/html/struct_diligent_1_1_shader_desc-members.html new file mode 100644 index 00000000..cfab012c --- /dev/null +++ b/doc/html/struct_diligent_1_1_shader_desc-members.html @@ -0,0 +1,94 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::ShaderDesc Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_shader_desc.html b/doc/html/struct_diligent_1_1_shader_desc.html new file mode 100644 index 00000000..1b549a9f --- /dev/null +++ b/doc/html/struct_diligent_1_1_shader_desc.html @@ -0,0 +1,141 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::ShaderDesc Struct Reference
    +
    +
    + +

    Shader description. + More...

    +
    +Inheritance diagram for Diligent::ShaderDesc:
    +
    +
    + + +Diligent::DeviceObjectAttribs + +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +SHADER_TYPE ShaderType
     Shader type. See Diligent::SHADER_TYPE.
     
    +SHADER_VARIABLE_TYPE DefaultVariableType
     Default shader variable type. This type will be used if shader variable description is not found in array VariableDesc points to or if VariableDesc == nullptr.
     
    +const ShaderVariableDescVariableDesc
     Array of shader variable descriptions.
     
    +Uint32 NumVariables
     Number of elements in VariableDesc array.
     
    +Uint32 NumStaticSamplers
     Number of static samplers in StaticSamplers array.
     
    +const StaticSamplerDescStaticSamplers
     Array of static sampler descriptions.
     
    - Public Attributes inherited from Diligent::DeviceObjectAttribs
    +const Char * Name
     Object name.
     
    + + + + + +

    +Additional Inherited Members

    - Public Member Functions inherited from Diligent::DeviceObjectAttribs
    DeviceObjectAttribs ()
     Constructor intializes the structure members with default values.
     
    +

    Detailed Description

    +

    Shader description.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_shader_desc.png b/doc/html/struct_diligent_1_1_shader_desc.png new file mode 100644 index 00000000..b0efd1d3 Binary files /dev/null and b/doc/html/struct_diligent_1_1_shader_desc.png differ diff --git a/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_c_b-members.html b/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_c_b-members.html new file mode 100644 index 00000000..ec1d1b63 --- /dev/null +++ b/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_c_b-members.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::ShaderResourceCacheD3D11::CachedCB Member List
    +
    +
    + +

    This is the complete list of members for Diligent::ShaderResourceCacheD3D11::CachedCB, including all inherited members.

    + + +
    pBuffDiligent::ShaderResourceCacheD3D11::CachedCB
    + + + + + diff --git a/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_c_b.html b/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_c_b.html new file mode 100644 index 00000000..6e10da83 --- /dev/null +++ b/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_c_b.html @@ -0,0 +1,99 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderResourceCacheD3D11::CachedCB Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::ShaderResourceCacheD3D11::CachedCB Struct Reference
    +
    +
    + +

    Describes resources associated with the cached constant buffer. + More...

    + + + + + +

    +Public Attributes

    +RefCntAutoPtr< BufferD3D11ImplpBuff
     Strong reference to the buffer.
     
    +

    Detailed Description

    +

    Describes resources associated with the cached constant buffer.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_resource-members.html b/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_resource-members.html new file mode 100644 index 00000000..61d97825 --- /dev/null +++ b/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_resource-members.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::ShaderResourceCacheD3D11::CachedResource Member List
    +
    +
    + +

    This is the complete list of members for Diligent::ShaderResourceCacheD3D11::CachedResource, including all inherited members.

    + + +
    pViewDiligent::ShaderResourceCacheD3D11::CachedResource
    + + + + + diff --git a/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_resource.html b/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_resource.html new file mode 100644 index 00000000..180818cd --- /dev/null +++ b/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_resource.html @@ -0,0 +1,99 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderResourceCacheD3D11::CachedResource Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::ShaderResourceCacheD3D11::CachedResource Struct Reference
    +
    +
    + +

    Describes resources associated with the cached SRV or UAV. + More...

    + + + + + +

    +Public Attributes

    +RefCntAutoPtr< IDeviceObjectpView
     Wee keep strong reference to the view instead of the reference to the texture or buffer because this is more efficient from performance point of view: this avoids one pair of AddStrongRef()/ReleaseStrongRef(). The view holds strong reference to the texture or the buffer, so it makes no difference.
     
    +

    Detailed Description

    +

    Describes resources associated with the cached SRV or UAV.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_sampler-members.html b/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_sampler-members.html new file mode 100644 index 00000000..b6904181 --- /dev/null +++ b/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_sampler-members.html @@ -0,0 +1,87 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::ShaderResourceCacheD3D11::CachedSampler Member List
    +
    +
    + +

    This is the complete list of members for Diligent::ShaderResourceCacheD3D11::CachedSampler, including all inherited members.

    + + +
    pSamplerDiligent::ShaderResourceCacheD3D11::CachedSampler
    + + + + + diff --git a/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_sampler.html b/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_sampler.html new file mode 100644 index 00000000..b26a91da --- /dev/null +++ b/doc/html/struct_diligent_1_1_shader_resource_cache_d3_d11_1_1_cached_sampler.html @@ -0,0 +1,99 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderResourceCacheD3D11::CachedSampler Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::ShaderResourceCacheD3D11::CachedSampler Struct Reference
    +
    +
    + +

    Describes resources associated with the cached sampler. + More...

    + + + + + +

    +Public Attributes

    +RefCntAutoPtr< class SamplerD3D11ImplpSampler
     Strong reference to the sampler.
     
    +

    Detailed Description

    +

    Describes resources associated with the cached sampler.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_shader_variable_base-members.html b/doc/html/struct_diligent_1_1_shader_variable_base-members.html new file mode 100644 index 00000000..9531350d --- /dev/null +++ b/doc/html/struct_diligent_1_1_shader_variable_base-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::ShaderVariableBase Member List
    +
    +
    + +

    This is the complete list of members for Diligent::ShaderVariableBase, including all inherited members.

    + + + +
    Set(IDeviceObject *pObject)=0Diligent::IShaderVariablepure virtual
    SetArray(IDeviceObject *const *ppObjects, Uint32 FirstElement, Uint32 NumElements)=0Diligent::IShaderVariablepure virtual
    + + + + + diff --git a/doc/html/struct_diligent_1_1_shader_variable_base.html b/doc/html/struct_diligent_1_1_shader_variable_base.html new file mode 100644 index 00000000..83dfffd3 --- /dev/null +++ b/doc/html/struct_diligent_1_1_shader_variable_base.html @@ -0,0 +1,111 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderVariableBase Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::ShaderVariableBase Struct Reference
    +
    +
    + +

    Base implementation of a shader variable. + More...

    +
    +Inheritance diagram for Diligent::ShaderVariableBase:
    +
    +
    + + +Diligent::IShaderVariable +Diligent::DummyShaderVariable + +
    + + + + + + + + + +

    +Additional Inherited Members

    - Public Member Functions inherited from Diligent::IShaderVariable
    virtual void Set (IDeviceObject *pObject)=0
     Sets the variable to the given value. More...
     
    virtual void SetArray (IDeviceObject *const *ppObjects, Uint32 FirstElement, Uint32 NumElements)=0
     Sets the variable array. More...
     
    +

    Detailed Description

    +

    Base implementation of a shader variable.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_shader_variable_base.png b/doc/html/struct_diligent_1_1_shader_variable_base.png new file mode 100644 index 00000000..e01fa9d3 Binary files /dev/null and b/doc/html/struct_diligent_1_1_shader_variable_base.png differ diff --git a/doc/html/struct_diligent_1_1_shader_variable_desc-members.html b/doc/html/struct_diligent_1_1_shader_variable_desc-members.html new file mode 100644 index 00000000..1175d188 --- /dev/null +++ b/doc/html/struct_diligent_1_1_shader_variable_desc-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::ShaderVariableDesc Member List
    +
    +
    + +

    This is the complete list of members for Diligent::ShaderVariableDesc, including all inherited members.

    + + + +
    NameDiligent::ShaderVariableDesc
    TypeDiligent::ShaderVariableDesc
    + + + + + diff --git a/doc/html/struct_diligent_1_1_shader_variable_desc.html b/doc/html/struct_diligent_1_1_shader_variable_desc.html new file mode 100644 index 00000000..88805836 --- /dev/null +++ b/doc/html/struct_diligent_1_1_shader_variable_desc.html @@ -0,0 +1,103 @@ + + + + + + + +Diligent Engine API Reference: Diligent::ShaderVariableDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::ShaderVariableDesc Struct Reference
    +
    +
    + +

    Describes shader variable. + More...

    + + + + + + + + +

    +Public Attributes

    +const Char * Name
     Shader variable name.
     
    +SHADER_VARIABLE_TYPE Type
     Shader variable type. See Diligent::SHADER_VARIABLE_TYPE for a list of allowed types.
     
    +

    Detailed Description

    +

    Describes shader variable.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_static_sampler_desc-members.html b/doc/html/struct_diligent_1_1_static_sampler_desc-members.html new file mode 100644 index 00000000..12a23991 --- /dev/null +++ b/doc/html/struct_diligent_1_1_static_sampler_desc-members.html @@ -0,0 +1,88 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::StaticSamplerDesc Member List
    +
    +
    + +

    This is the complete list of members for Diligent::StaticSamplerDesc, including all inherited members.

    + + + +
    DescDiligent::StaticSamplerDesc
    TextureNameDiligent::StaticSamplerDesc
    + + + + + diff --git a/doc/html/struct_diligent_1_1_static_sampler_desc.html b/doc/html/struct_diligent_1_1_static_sampler_desc.html new file mode 100644 index 00000000..80491bf7 --- /dev/null +++ b/doc/html/struct_diligent_1_1_static_sampler_desc.html @@ -0,0 +1,103 @@ + + + + + + + +Diligent Engine API Reference: Diligent::StaticSamplerDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::StaticSamplerDesc Struct Reference
    +
    +
    + +

    Static sampler description. + More...

    + + + + + + + + +

    +Public Attributes

    +const Char * TextureName = nullptr
     Name of the texture variable that static sampler will be assigned to.
     
    +SamplerDesc Desc
     Sampler description.
     
    +

    Detailed Description

    +

    Static sampler description.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_stencil_op_desc-members.html b/doc/html/struct_diligent_1_1_stencil_op_desc-members.html new file mode 100644 index 00000000..bf68c625 --- /dev/null +++ b/doc/html/struct_diligent_1_1_stencil_op_desc-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::StencilOpDesc Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_stencil_op_desc.html b/doc/html/struct_diligent_1_1_stencil_op_desc.html new file mode 100644 index 00000000..60644e37 --- /dev/null +++ b/doc/html/struct_diligent_1_1_stencil_op_desc.html @@ -0,0 +1,202 @@ + + + + + + + +Diligent Engine API Reference: Diligent::StencilOpDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::StencilOpDesc Struct Reference
    +
    +
    + +

    Describes stencil operations that are performed based on the results of depth test. + More...

    + + + + + + + + +

    +Public Member Functions

     StencilOpDesc ()
     Initializes the structure members with default values. More...
     
    bool operator== (const StencilOpDesc &rhs) const
     Tests if two structures are equivalent. More...
     
    + + + + + + + + + + + + + +

    +Public Attributes

    +STENCIL_OP StencilFailOp
     The stencil operation to perform when stencil testing fails.
     
    +STENCIL_OP StencilDepthFailOp
     The stencil operation to perform when stencil testing passes and depth testing fails.
     
    +STENCIL_OP StencilPassOp
     The stencil operation to perform when stencil testing and depth testing both pass.
     
    +COMPARISON_FUNCTION StencilFunc
     A function that compares stencil data against existing stencil data. See Diligent::COMPARISON_FUNCTION.
     
    +

    Detailed Description

    +

    Describes stencil operations that are performed based on the results of depth test.

    +

    The structure generally mirrors D3D11_DEPTH_STENCILOP_DESC/D3D12_DEPTH_STENCILOP_DESC structure. It is used by Diligent::DepthStencilStateDesc structure to describe the stencil operations for the front and back facing polygons.

    +

    Constructor & Destructor Documentation

    + +

    ◆ StencilOpDesc()

    + +
    +
    + + + + + +
    + + + + + + + +
    Diligent::StencilOpDesc::StencilOpDesc ()
    +
    +inline
    +
    + +

    Initializes the structure members with default values.

    +

    Default values:

    + + + + + + + + + + +
    Member Default value
    StencilFailOp Diligent::STENCIL_OP_KEEP
    StencilDepthFailOp Diligent::STENCIL_OP_KEEP
    StencilPassOp Diligent::STENCIL_OP_KEEP
    StencilFunc Diligent::COMPARISON_FUNC_ALWAYS
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator==()

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool Diligent::StencilOpDesc::operator== (const StencilOpDescrhs) const
    +
    +inline
    +
    + +

    Tests if two structures are equivalent.

    +
    Parameters
    + + +
    [in]rhs- reference to the structure to perform comparison with
    +
    +
    +
    Returns
      +
    • True if all members of the two structures are equal.
    • +
    • False otherwise
    • +
    +
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_swap_chain_desc-members.html b/doc/html/struct_diligent_1_1_swap_chain_desc-members.html new file mode 100644 index 00000000..8ba0970f --- /dev/null +++ b/doc/html/struct_diligent_1_1_swap_chain_desc-members.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::SwapChainDesc Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_swap_chain_desc.html b/doc/html/struct_diligent_1_1_swap_chain_desc.html new file mode 100644 index 00000000..ea2c8f32 --- /dev/null +++ b/doc/html/struct_diligent_1_1_swap_chain_desc.html @@ -0,0 +1,135 @@ + + + + + + + +Diligent Engine API Reference: Diligent::SwapChainDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::SwapChainDesc Struct Reference
    +
    +
    + +

    Swap chain description. + More...

    + + + + + +

    +Public Member Functions

    SwapChainDesc ()
     Constructor intializes the structure members with default values.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +Uint32 Width
     The swap chain width. Default value is 0.
     
    +Uint32 Height
     The swap chain height. Default value is 0.
     
    +TEXTURE_FORMAT ColorBufferFormat
     Back buffer format. Default value is TEX_FORMAT_RGBA8_UNORM_SRGB.
     
    +TEXTURE_FORMAT DepthBufferFormat
     Depth buffer format. Default value is TEX_FORMAT_D32_FLOAT.
     
    +Uint32 SamplesCount
     Sample count. Default value is 1.
     
    +Uint32 BufferCount
     Number of buffers int the swap chain.
     
    +Float32 DefaultDepthValue
     Default depth value, which is used as optimized depth clear value in D3D12.
     
    +Uint8 DefaultStencilValue
     Default stencil value, which is used as optimized stencil clear value in D3D12.
     
    +

    Detailed Description

    +

    Swap chain description.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_caps-members.html b/doc/html/struct_diligent_1_1_texture_caps-members.html new file mode 100644 index 00000000..87710e3f --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_caps-members.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::TextureCaps Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_caps.html b/doc/html/struct_diligent_1_1_texture_caps.html new file mode 100644 index 00000000..0aa511cb --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_caps.html @@ -0,0 +1,127 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureCaps Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::TextureCaps Struct Reference
    +
    +
    + +

    Texture capabilities. + More...

    + + + + + +

    +Public Member Functions

    TextureCaps ()
     Initializes the structure members with default values.
     
    + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +Bool bTexture1DSupported
     Indicates if device supports 1D textures.
     
    +Bool bTexture1DArraySupported
     Indicates if device supports 1D texture arrays.
     
    +Bool bTexture2DMSSupported
     Indicates if device supports 2D multisampled textures.
     
    +Bool bTexture2DMSArraySupported
     Indicates if device supports 2D multisampled texture arrays.
     
    +bool bTextureViewSupported
     Indicates if device supports texture views.
     
    +bool bCubemapArraysSupported
     Indicates if device supports cubemap arrays.
     
    +

    Detailed Description

    +

    Texture capabilities.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_data-members.html b/doc/html/struct_diligent_1_1_texture_data-members.html new file mode 100644 index 00000000..4744aa6f --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_data-members.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::TextureData Member List
    +
    +
    + +

    This is the complete list of members for Diligent::TextureData, including all inherited members.

    + + + + +
    NumSubresourcesDiligent::TextureData
    pSubResourcesDiligent::TextureData
    TextureData()Diligent::TextureDatainline
    + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_data.html b/doc/html/struct_diligent_1_1_texture_data.html new file mode 100644 index 00000000..7bf46717 --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_data.html @@ -0,0 +1,146 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureData Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::TextureData Struct Reference
    +
    +
    + +

    Describes the initial data to store in the texture. + More...

    + + + + + +

    +Public Member Functions

     TextureData ()
     Initializes the structure members with default values. More...
     
    + + + + + + + +

    +Public Attributes

    +TextureSubResDatapSubResources
     Pointer to the array of the TextureSubResData elements containing information about each subresource.
     
    +Uint32 NumSubresources
     Number of elements in pSubResources array. NumSubresources must exactly match the number of subresources in the texture. Otherwise an error occurs.
     
    +

    Detailed Description

    +

    Describes the initial data to store in the texture.

    +

    Constructor & Destructor Documentation

    + +

    ◆ TextureData()

    + +
    +
    + + + + + +
    + + + + + + + +
    Diligent::TextureData::TextureData ()
    +
    +inline
    +
    + +

    Initializes the structure members with default values.

    +

    Default values:

    + + + + + + +
    Member Default value
    pSubResources nullptr
    NumSubresources 0
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_desc-members.html b/doc/html/struct_diligent_1_1_texture_desc-members.html new file mode 100644 index 00000000..e2b934a4 --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_desc-members.html @@ -0,0 +1,103 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::TextureDesc Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_desc.html b/doc/html/struct_diligent_1_1_texture_desc.html new file mode 100644 index 00000000..3c1d5e71 --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_desc.html @@ -0,0 +1,273 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::TextureDesc Struct Reference
    +
    +
    + +

    Texture description. + More...

    +
    +Inheritance diagram for Diligent::TextureDesc:
    +
    +
    + + +Diligent::DeviceObjectAttribs + +
    + + + + + + + + + + + + +

    +Public Member Functions

     TextureDesc ()
     Initializes the structure members with default values. More...
     
    bool operator== (const TextureDesc &RHS) const
     Tests if two structures are equivalent. More...
     
    - Public Member Functions inherited from Diligent::DeviceObjectAttribs
    DeviceObjectAttribs ()
     Constructor intializes the structure members with default values.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +RESOURCE_DIMENSION Type
     Texture type. See Diligent::RESOURCE_DIMENSION for details.
     
    +Uint32 Width
     Texture width, in pixels.
     
    +Uint32 Height
     Texture height, in pixels.
     
    +TEXTURE_FORMAT Format
     Texture format, see Diligent::TEXTURE_FORMAT.
     
    +Uint32 MipLevels
     Number of Mip levels in the texture. Multisampled textures can only have 1 Mip level. Specify 0 to generate full mipmap chain.
     
    +Uint32 SampleCount
     Number of samples.
    +Only 2D textures or 2D texture arrays can be multisampled.
     
    +USAGE Usage
     Texture usage. See Diligent::USAGE for details.
     
    +Uint32 BindFlags
     Bind flags, see Diligent::BIND_FLAGS for details.
    +The following bind flags are allowed: Diligent::BIND_SHADER_RESOURCE, Diligent::BIND_RENDER_TARGET, Diligent::BIND_DEPTH_STENCIL, Diligent::and BIND_UNORDERED_ACCESS.
    +Multisampled textures cannot have Diligent::BIND_UNORDERED_ACCESS flag set.
     
    +Uint32 CPUAccessFlags
     CPU access flags or 0 if no CPU access is allowed, see Diligent::CPU_ACCESS_FLAG for details.
     
    +Uint32 MiscFlags
     Miscellaneous flags, see Diligent::MISC_TEXTURE_FLAG for details.
     
    +OptimizedClearValue ClearValue
     Optimized clear value.
     
    +Uint32 ArraySize
     For a 1D array or 2D array, number of array slices.
     
    +Uint32 Depth
     For a 3D texture, number of depth slices.
     
    - Public Attributes inherited from Diligent::DeviceObjectAttribs
    +const Char * Name
     Object name.
     
    +

    Detailed Description

    +

    Texture description.

    +

    Constructor & Destructor Documentation

    + +

    ◆ TextureDesc()

    + +
    +
    + + + + + +
    + + + + + + + +
    Diligent::TextureDesc::TextureDesc ()
    +
    +inline
    +
    + +

    Initializes the structure members with default values.

    +

    Default values:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Member Default value
    Type RESOURCE_DIM_UNDEFINED
    Width 0
    Height 0
    ArraySize 1
    Format TEX_FORMAT_UNKNOWN
    MipLevels 1
    SampleCount 1
    Usage USAGE_DEFAULT
    BindFlags 0
    CPUAccessFlags 0
    MiscFlags 0
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator==()

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool Diligent::TextureDesc::operator== (const TextureDescRHS) const
    +
    +inline
    +
    + +

    Tests if two structures are equivalent.

    +
    Parameters
    + + +
    [in]RHS- reference to the structure to perform comparison with
    +
    +
    +
    Returns
      +
    • True if all members of the two structures except for the Name are equal.
    • +
    • False otherwise. The operator ignores DeviceObjectAttribs::Name field as it does not affect the texture description state.
    • +
    +
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_desc.png b/doc/html/struct_diligent_1_1_texture_desc.png new file mode 100644 index 00000000..33760c5c Binary files /dev/null and b/doc/html/struct_diligent_1_1_texture_desc.png differ diff --git a/doc/html/struct_diligent_1_1_texture_format_attribs-members.html b/doc/html/struct_diligent_1_1_texture_format_attribs-members.html new file mode 100644 index 00000000..0b022c06 --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_format_attribs-members.html @@ -0,0 +1,92 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::TextureFormatAttribs Member List
    +
    +
    + +

    This is the complete list of members for Diligent::TextureFormatAttribs, including all inherited members.

    + + + + + + + +
    ComponentSizeDiligent::TextureFormatAttribs
    ComponentTypeDiligent::TextureFormatAttribs
    FormatDiligent::TextureFormatAttribs
    NameDiligent::TextureFormatAttribs
    NumComponentsDiligent::TextureFormatAttribs
    TextureFormatAttribs(TEXTURE_FORMAT _Format=TEX_FORMAT_UNKNOWN, const Char *_Name="TEX_FORMAT_UNKNOWN", Uint32 _ComponentSize=0, Uint32 _NumComponents=0, COMPONENT_TYPE _ComponentType=COMPONENT_TYPE_UNDEFINED)Diligent::TextureFormatAttribsinlineexplicit
    + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_format_attribs.html b/doc/html/struct_diligent_1_1_texture_format_attribs.html new file mode 100644 index 00000000..7e1abd7b --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_format_attribs.html @@ -0,0 +1,133 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureFormatAttribs Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::TextureFormatAttribs Struct Reference
    +
    +
    + +

    Describes invariant texture format attributes. These attributes are intrinsic to the texture format itself and do not depend on the format support. + More...

    +
    +Inheritance diagram for Diligent::TextureFormatAttribs:
    +
    +
    + + +Diligent::TextureFormatInfo +Diligent::TextureFormatInfoExt + +
    + + + + + +

    +Public Member Functions

    TextureFormatAttribs (TEXTURE_FORMAT _Format=TEX_FORMAT_UNKNOWN, const Char *_Name="TEX_FORMAT_UNKNOWN", Uint32 _ComponentSize=0, Uint32 _NumComponents=0, COMPONENT_TYPE _ComponentType=COMPONENT_TYPE_UNDEFINED)
     Initializes the structure.
     
    + + + + + + + + + + + + + + + + +

    +Public Attributes

    +TEXTURE_FORMAT Format
     Texture format, see Diligent::TEXTURE_FORMAT for a list of supported texture formats.
     
    +const Char * Name
     Literal texture format name (for instance, for TEX_FORMAT_RGBA8_UNORM format, this will be "TEX_FORMAT_RGBA8_UNORM")
     
    +Uint32 ComponentSize
     Size of one component in bytes (for instance, for TEX_FORMAT_RGBA8_UNORM format, this will be 1) For compressed formats, this is the block size in bytes (for TEX_FORMAT_BC1_UNORM format, this will be 8)
     
    +Uint32 NumComponents
     Number of components.
     
    +COMPONENT_TYPE ComponentType
     Component type, see Diligent::COMPONENT_TYPE for details.
     
    +

    Detailed Description

    +

    Describes invariant texture format attributes. These attributes are intrinsic to the texture format itself and do not depend on the format support.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_format_attribs.png b/doc/html/struct_diligent_1_1_texture_format_attribs.png new file mode 100644 index 00000000..b203fad4 Binary files /dev/null and b/doc/html/struct_diligent_1_1_texture_format_attribs.png differ diff --git a/doc/html/struct_diligent_1_1_texture_format_info-members.html b/doc/html/struct_diligent_1_1_texture_format_info-members.html new file mode 100644 index 00000000..62f2c727 --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_format_info-members.html @@ -0,0 +1,94 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::TextureFormatInfo Member List
    +
    +
    + +

    This is the complete list of members for Diligent::TextureFormatInfo, including all inherited members.

    + + + + + + + + + +
    ComponentSizeDiligent::TextureFormatAttribs
    ComponentTypeDiligent::TextureFormatAttribs
    FormatDiligent::TextureFormatAttribs
    NameDiligent::TextureFormatAttribs
    NumComponentsDiligent::TextureFormatAttribs
    SupportedDiligent::TextureFormatInfo
    TextureFormatAttribs(TEXTURE_FORMAT _Format=TEX_FORMAT_UNKNOWN, const Char *_Name="TEX_FORMAT_UNKNOWN", Uint32 _ComponentSize=0, Uint32 _NumComponents=0, COMPONENT_TYPE _ComponentType=COMPONENT_TYPE_UNDEFINED)Diligent::TextureFormatAttribsinlineexplicit
    TextureFormatInfo()Diligent::TextureFormatInfoinlineexplicit
    + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_format_info.html b/doc/html/struct_diligent_1_1_texture_format_info.html new file mode 100644 index 00000000..5d7861da --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_format_info.html @@ -0,0 +1,144 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureFormatInfo Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::TextureFormatInfo Struct Reference
    +
    +
    + +

    Basic texture format description. + More...

    +
    +Inheritance diagram for Diligent::TextureFormatInfo:
    +
    +
    + + +Diligent::TextureFormatAttribs +Diligent::TextureFormatInfoExt + +
    + + + + + + + + + +

    +Public Member Functions

    TextureFormatInfo ()
     Initializes the structure with default values.
     
    - Public Member Functions inherited from Diligent::TextureFormatAttribs
    TextureFormatAttribs (TEXTURE_FORMAT _Format=TEX_FORMAT_UNKNOWN, const Char *_Name="TEX_FORMAT_UNKNOWN", Uint32 _ComponentSize=0, Uint32 _NumComponents=0, COMPONENT_TYPE _ComponentType=COMPONENT_TYPE_UNDEFINED)
     Initializes the structure.
     
    + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +bool Supported
     Indicates if the format is supported by the device.
     
    - Public Attributes inherited from Diligent::TextureFormatAttribs
    +TEXTURE_FORMAT Format
     Texture format, see Diligent::TEXTURE_FORMAT for a list of supported texture formats.
     
    +const Char * Name
     Literal texture format name (for instance, for TEX_FORMAT_RGBA8_UNORM format, this will be "TEX_FORMAT_RGBA8_UNORM")
     
    +Uint32 ComponentSize
     Size of one component in bytes (for instance, for TEX_FORMAT_RGBA8_UNORM format, this will be 1) For compressed formats, this is the block size in bytes (for TEX_FORMAT_BC1_UNORM format, this will be 8)
     
    +Uint32 NumComponents
     Number of components.
     
    +COMPONENT_TYPE ComponentType
     Component type, see Diligent::COMPONENT_TYPE for details.
     
    +

    Detailed Description

    +

    Basic texture format description.

    +

    This structure is returned by IRenderDevice::GetTextureFormatInfo()

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_format_info.png b/doc/html/struct_diligent_1_1_texture_format_info.png new file mode 100644 index 00000000..9e496432 Binary files /dev/null and b/doc/html/struct_diligent_1_1_texture_format_info.png differ diff --git a/doc/html/struct_diligent_1_1_texture_format_info_ext-members.html b/doc/html/struct_diligent_1_1_texture_format_info_ext-members.html new file mode 100644 index 00000000..4e4452e2 --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_format_info_ext-members.html @@ -0,0 +1,103 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::TextureFormatInfoExt Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_format_info_ext.html b/doc/html/struct_diligent_1_1_texture_format_info_ext.html new file mode 100644 index 00000000..ecb232a3 --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_format_info_ext.html @@ -0,0 +1,182 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureFormatInfoExt Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::TextureFormatInfoExt Struct Reference
    +
    +
    + +

    Extended texture format description. + More...

    +
    +Inheritance diagram for Diligent::TextureFormatInfoExt:
    +
    +
    + + +Diligent::TextureFormatInfo +Diligent::TextureFormatAttribs + +
    + + + + + + + + + + + + + +

    +Public Member Functions

    TextureFormatInfoExt ()
     Initializes the structure with default values.
     
    - Public Member Functions inherited from Diligent::TextureFormatInfo
    TextureFormatInfo ()
     Initializes the structure with default values.
     
    - Public Member Functions inherited from Diligent::TextureFormatAttribs
    TextureFormatAttribs (TEXTURE_FORMAT _Format=TEX_FORMAT_UNKNOWN, const Char *_Name="TEX_FORMAT_UNKNOWN", Uint32 _ComponentSize=0, Uint32 _NumComponents=0, COMPONENT_TYPE _ComponentType=COMPONENT_TYPE_UNDEFINED)
     Initializes the structure.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +bool Filterable
     Indicates if the format can be filtered.
     
    +bool ColorRenderable
     Indicates if the format can be used as a render target format.
     
    +bool DepthRenderable
     Indicates if the format can be used as a depth format.
     
    +bool Tex1DFmt
     Indicates if the format can be used to create a 1D texture.
     
    +bool Tex2DFmt
     Indicates if the format can be used to create a 2D texture.
     
    +bool Tex3DFmt
     Indicates if the format can be used to create a 3D texture.
     
    +bool TexCubeFmt
     Indicates if the format can be used to create a cube texture.
     
    +bool SupportsMS
     Indicates if the format can be used to create a multisampled 2D texture.
     
    - Public Attributes inherited from Diligent::TextureFormatInfo
    +bool Supported
     Indicates if the format is supported by the device.
     
    - Public Attributes inherited from Diligent::TextureFormatAttribs
    +TEXTURE_FORMAT Format
     Texture format, see Diligent::TEXTURE_FORMAT for a list of supported texture formats.
     
    +const Char * Name
     Literal texture format name (for instance, for TEX_FORMAT_RGBA8_UNORM format, this will be "TEX_FORMAT_RGBA8_UNORM")
     
    +Uint32 ComponentSize
     Size of one component in bytes (for instance, for TEX_FORMAT_RGBA8_UNORM format, this will be 1) For compressed formats, this is the block size in bytes (for TEX_FORMAT_BC1_UNORM format, this will be 8)
     
    +Uint32 NumComponents
     Number of components.
     
    +COMPONENT_TYPE ComponentType
     Component type, see Diligent::COMPONENT_TYPE for details.
     
    +

    Detailed Description

    +

    Extended texture format description.

    +

    This structure is returned by IRenderDevice::GetTextureFormatInfoExt()

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_format_info_ext.png b/doc/html/struct_diligent_1_1_texture_format_info_ext.png new file mode 100644 index 00000000..0f4b7069 Binary files /dev/null and b/doc/html/struct_diligent_1_1_texture_format_info_ext.png differ diff --git a/doc/html/struct_diligent_1_1_texture_sub_res_data-members.html b/doc/html/struct_diligent_1_1_texture_sub_res_data-members.html new file mode 100644 index 00000000..92d7e22c --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_sub_res_data-members.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::TextureSubResData Member List
    +
    +
    + +

    This is the complete list of members for Diligent::TextureSubResData, including all inherited members.

    + + + + + + + + +
    DepthStrideDiligent::TextureSubResData
    pDataDiligent::TextureSubResData
    pSrcBufferDiligent::TextureSubResData
    StrideDiligent::TextureSubResData
    TextureSubResData()Diligent::TextureSubResDatainline
    TextureSubResData(void *_pData, Uint32 _Stride, Uint32 _DepthStride=0)Diligent::TextureSubResDatainline
    TextureSubResData(IBuffer *_pBuffer, Uint32 _Stride, Uint32 _DepthStride=0)Diligent::TextureSubResDatainline
    + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_sub_res_data.html b/doc/html/struct_diligent_1_1_texture_sub_res_data.html new file mode 100644 index 00000000..23d07509 --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_sub_res_data.html @@ -0,0 +1,181 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureSubResData Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::TextureSubResData Struct Reference
    +
    +
    + +

    Describes data for one subresource. + More...

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

    +Public Member Functions

     TextureSubResData ()
     Initializes the structure members with default values. More...
     
    TextureSubResData (void *_pData, Uint32 _Stride, Uint32 _DepthStride=0)
     Initializes the structure members to perform copy from the CPU memory.
     
    TextureSubResData (IBuffer *_pBuffer, Uint32 _Stride, Uint32 _DepthStride=0)
     Initializes the structure members to perform copy from the GPU buffer.
     
    + + + + + + + + + + + + + +

    +Public Attributes

    +const void * pData
     Pointer to the subresource data in CPU memory. If provided, pSrcBuffer must be null.
     
    +class IBufferpSrcBuffer
     Pointer to the GPU buffer that contains subresource data. If provided, pData must be null.
     
    +Uint32 Stride
     For 2D and 3D textures, row stride in bytes.
     
    Uint32 DepthStride
     For 3D textures, depth slice stride in bytes. More...
     
    +

    Detailed Description

    +

    Describes data for one subresource.

    +

    Constructor & Destructor Documentation

    + +

    ◆ TextureSubResData()

    + +
    +
    + + + + + +
    + + + + + + + +
    Diligent::TextureSubResData::TextureSubResData ()
    +
    +inline
    +
    + +

    Initializes the structure members with default values.

    +

    Default values:

    + + + + + + + + +
    Member Default value
    pData nullptr
    Stride 0
    DepthStride 0
    + +
    +
    +

    Member Data Documentation

    + +

    ◆ DepthStride

    + +
    +
    + + + + +
    Uint32 Diligent::TextureSubResData::DepthStride
    +
    + +

    For 3D textures, depth slice stride in bytes.

    +
    Note
    On OpenGL, this must be a mutliple of Stride
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_view_desc-members.html b/doc/html/struct_diligent_1_1_texture_view_desc-members.html new file mode 100644 index 00000000..498c47f9 --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_view_desc-members.html @@ -0,0 +1,100 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::TextureViewDesc Member List
    +
    + + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_view_desc.html b/doc/html/struct_diligent_1_1_texture_view_desc.html new file mode 100644 index 00000000..2b67714e --- /dev/null +++ b/doc/html/struct_diligent_1_1_texture_view_desc.html @@ -0,0 +1,252 @@ + + + + + + + +Diligent Engine API Reference: Diligent::TextureViewDesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::TextureViewDesc Struct Reference
    +
    +
    + +

    Texture view description. + More...

    +
    +Inheritance diagram for Diligent::TextureViewDesc:
    +
    +
    + + +Diligent::DeviceObjectAttribs + +
    + + + + + + + + + + + + +

    +Public Member Functions

     TextureViewDesc ()
     Initializes the structure members with default values. More...
     
    bool operator== (const TextureViewDesc &RHS) const
     Tests if two structures are equivalent. More...
     
    - Public Member Functions inherited from Diligent::DeviceObjectAttribs
    DeviceObjectAttribs ()
     Constructor intializes the structure members with default values.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +TEXTURE_VIEW_TYPE ViewType
     Describes the texture view type, see Diligent::TEXTURE_VIEW_TYPE for details.
     
    +RESOURCE_DIMENSION TextureDim
     View interpretation of the original texture. For instance, one slice of a 2D texture array can be viewed as a 2D texture. See Diligent::RESOURCE_DIMENSION for a list of texture types. If default value Diligent::RESOURCE_DIM_UNDEFINED is provided, the view type will match the type of the referenced texture.
     
    +TEXTURE_FORMAT Format
     View format. If default value Diligent::TEX_FORMAT_UNKNOWN is provided, the view format will match the referenced texture format.
     
    +Uint32 MostDetailedMip
     Most detailed mip level to use.
     
    +Uint32 NumMipLevels
     Total number of mip levels for the view of the texture. Render target and depth stencil views can address only one mip level. If 0 is provided, then for a shader resource view all mip levels will be referenced, and for a render target or a depth stencil view, one mip level will be referenced.
     
    +Uint32 AccessFlags
     For an unordered access view, allowed access flags. See Diligent::UAV_ACCESS_FLAG for details.
     
    +Uint32 FirstArraySlice
     For a texture array, first array slice to address in the view.
     
    +Uint32 FirstDepthSlice
     For a 3D texture, first depth slice to address the view.
     
    +Uint32 NumArraySlices
     For a texture array, number of array slices to address in the view. Set to 0 to address all array slices.
     
    +Uint32 NumDepthSlices
     For a 3D texture, number of depth slices to address in the view Set to 0 to address all depth slices.
     
    - Public Attributes inherited from Diligent::DeviceObjectAttribs
    +const Char * Name
     Object name.
     
    +

    Detailed Description

    +

    Texture view description.

    +

    Constructor & Destructor Documentation

    + +

    ◆ TextureViewDesc()

    + +
    +
    + + + + + +
    + + + + + + + +
    Diligent::TextureViewDesc::TextureViewDesc ()
    +
    +inline
    +
    + +

    Initializes the structure members with default values.

    +

    Default values:

    + + + + + + + + + + + + + + + + + + +
    Member Default value
    ViewType TEXTURE_VIEW_UNDEFINED
    TextureDim RESOURCE_DIM_UNDEFINED
    Format TEX_FORMAT_UNKNOWN
    MostDetailedMip 0
    NumMipLevels 0
    FirstArraySlice 0
    NumArraySlices 0
    AccessFlags 0
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator==()

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool Diligent::TextureViewDesc::operator== (const TextureViewDescRHS) const
    +
    +inline
    +
    + +

    Tests if two structures are equivalent.

    +
    Parameters
    + + +
    [in]RHS- reference to the structure to perform comparison with
    +
    +
    +
    Returns
      +
    • True if all members of the two structures are equal.
    • +
    • False otherwise
    • +
    +
    + +
    +
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_texture_view_desc.png b/doc/html/struct_diligent_1_1_texture_view_desc.png new file mode 100644 index 00000000..7ca4ea82 Binary files /dev/null and b/doc/html/struct_diligent_1_1_texture_view_desc.png differ diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type.html new file mode 100644 index 00000000..3b9d4bc1 --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type.html @@ -0,0 +1,91 @@ + + + + + + + +Diligent Engine API Reference: Diligent::VALUE_TYPE2CType< ValType > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::VALUE_TYPE2CType< ValType > Struct Template Reference
    +
    +
    + +

    Template structure to convert VALUE_TYPE enumeration into C-type. + More...

    +

    Detailed Description

    +

    template<VALUE_TYPE ValType>
    +struct Diligent::VALUE_TYPE2CType< ValType >

    + +

    Template structure to convert VALUE_TYPE enumeration into C-type.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t16_01_4-members.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t16_01_4-members.html new file mode 100644 index 00000000..fd6e5b2e --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t16_01_4-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::VALUE_TYPE2CType< VT_FLOAT16 > Member List
    +
    +
    + +

    This is the complete list of members for Diligent::VALUE_TYPE2CType< VT_FLOAT16 >, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t16_01_4.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t16_01_4.html new file mode 100644 index 00000000..180d33ed --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t16_01_4.html @@ -0,0 +1,96 @@ + + + + + + + +Diligent Engine API Reference: Diligent::VALUE_TYPE2CType< VT_FLOAT16 > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::VALUE_TYPE2CType< VT_FLOAT16 > Struct Template Reference
    +
    +
    + +

    VALUE_TYPE2CType<> template specialization for half-precision 16-bit floating-point value type. + More...

    +

    Detailed Description

    +

    template<>
    +struct Diligent::VALUE_TYPE2CType< VT_FLOAT16 >

    + +

    VALUE_TYPE2CType<> template specialization for half-precision 16-bit floating-point value type.

    +

    Usage example:

    +

    VALUE_TYPE2CType<VT_FLOAT16>::CType MyFloat16Var;

    +
    Note
    16-bit floating-point values have no corresponding C++ type and are translated to Uint16
    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t32_01_4-members.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t32_01_4-members.html new file mode 100644 index 00000000..7a6c5993 --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t32_01_4-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::VALUE_TYPE2CType< VT_FLOAT32 > Member List
    +
    +
    + +

    This is the complete list of members for Diligent::VALUE_TYPE2CType< VT_FLOAT32 >, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t32_01_4.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t32_01_4.html new file mode 100644 index 00000000..5c6aed56 --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___f_l_o_a_t32_01_4.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: Diligent::VALUE_TYPE2CType< VT_FLOAT32 > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::VALUE_TYPE2CType< VT_FLOAT32 > Struct Template Reference
    +
    +
    + +

    VALUE_TYPE2CType<> template specialization for full-precision 32-bit floating-point value type. + More...

    +

    Detailed Description

    +

    template<>
    +struct Diligent::VALUE_TYPE2CType< VT_FLOAT32 >

    + +

    VALUE_TYPE2CType<> template specialization for full-precision 32-bit floating-point value type.

    +

    Usage example:

    +

    VALUE_TYPE2CType<VT_FLOAT32>::CType MyFloat32Var;

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t16_01_4-members.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t16_01_4-members.html new file mode 100644 index 00000000..df40110a --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t16_01_4-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::VALUE_TYPE2CType< VT_INT16 > Member List
    +
    +
    + +

    This is the complete list of members for Diligent::VALUE_TYPE2CType< VT_INT16 >, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t16_01_4.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t16_01_4.html new file mode 100644 index 00000000..0d7e62e5 --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t16_01_4.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: Diligent::VALUE_TYPE2CType< VT_INT16 > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::VALUE_TYPE2CType< VT_INT16 > Struct Template Reference
    +
    +
    + +

    VALUE_TYPE2CType<> template specialization for 16-bit integer value type. + More...

    +

    Detailed Description

    +

    template<>
    +struct Diligent::VALUE_TYPE2CType< VT_INT16 >

    + +

    VALUE_TYPE2CType<> template specialization for 16-bit integer value type.

    +

    Usage example:

    +

    VALUE_TYPE2CType<VT_INT16>::CType MyInt16Var;

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t32_01_4-members.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t32_01_4-members.html new file mode 100644 index 00000000..d059130a --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t32_01_4-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::VALUE_TYPE2CType< VT_INT32 > Member List
    +
    +
    + +

    This is the complete list of members for Diligent::VALUE_TYPE2CType< VT_INT32 >, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t32_01_4.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t32_01_4.html new file mode 100644 index 00000000..1ce4d4f9 --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t32_01_4.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: Diligent::VALUE_TYPE2CType< VT_INT32 > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::VALUE_TYPE2CType< VT_INT32 > Struct Template Reference
    +
    +
    + +

    VALUE_TYPE2CType<> template specialization for 32-bit integer value type. + More...

    +

    Detailed Description

    +

    template<>
    +struct Diligent::VALUE_TYPE2CType< VT_INT32 >

    + +

    VALUE_TYPE2CType<> template specialization for 32-bit integer value type.

    +

    Usage example:

    +

    VALUE_TYPE2CType<VT_INT32>::CType MyInt32Var;

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t8_01_4-members.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t8_01_4-members.html new file mode 100644 index 00000000..ac1bc5ac --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t8_01_4-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::VALUE_TYPE2CType< VT_INT8 > Member List
    +
    +
    + +

    This is the complete list of members for Diligent::VALUE_TYPE2CType< VT_INT8 >, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t8_01_4.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t8_01_4.html new file mode 100644 index 00000000..f8a4ff93 --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___i_n_t8_01_4.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: Diligent::VALUE_TYPE2CType< VT_INT8 > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::VALUE_TYPE2CType< VT_INT8 > Struct Template Reference
    +
    +
    + +

    VALUE_TYPE2CType<> template specialization for 8-bit integer value type. + More...

    +

    Detailed Description

    +

    template<>
    +struct Diligent::VALUE_TYPE2CType< VT_INT8 >

    + +

    VALUE_TYPE2CType<> template specialization for 8-bit integer value type.

    +

    Usage example:

    +

    VALUE_TYPE2CType<VT_INT8>::CType MyInt8Var;

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t16_01_4-members.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t16_01_4-members.html new file mode 100644 index 00000000..4c38f9d4 --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t16_01_4-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::VALUE_TYPE2CType< VT_UINT16 > Member List
    +
    +
    + +

    This is the complete list of members for Diligent::VALUE_TYPE2CType< VT_UINT16 >, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t16_01_4.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t16_01_4.html new file mode 100644 index 00000000..c81c2156 --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t16_01_4.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: Diligent::VALUE_TYPE2CType< VT_UINT16 > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::VALUE_TYPE2CType< VT_UINT16 > Struct Template Reference
    +
    +
    + +

    VALUE_TYPE2CType<> template specialization for 16-bit unsigned-integer value type. + More...

    +

    Detailed Description

    +

    template<>
    +struct Diligent::VALUE_TYPE2CType< VT_UINT16 >

    + +

    VALUE_TYPE2CType<> template specialization for 16-bit unsigned-integer value type.

    +

    Usage example:

    +

    VALUE_TYPE2CType<VT_UINT16>::CType MyUint16Var;

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t32_01_4-members.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t32_01_4-members.html new file mode 100644 index 00000000..94d7b94c --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t32_01_4-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::VALUE_TYPE2CType< VT_UINT32 > Member List
    +
    +
    + +

    This is the complete list of members for Diligent::VALUE_TYPE2CType< VT_UINT32 >, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t32_01_4.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t32_01_4.html new file mode 100644 index 00000000..0fd1dad4 --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t32_01_4.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: Diligent::VALUE_TYPE2CType< VT_UINT32 > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::VALUE_TYPE2CType< VT_UINT32 > Struct Template Reference
    +
    +
    + +

    VALUE_TYPE2CType<> template specialization for 32-bit unsigned-integer value type. + More...

    +

    Detailed Description

    +

    template<>
    +struct Diligent::VALUE_TYPE2CType< VT_UINT32 >

    + +

    VALUE_TYPE2CType<> template specialization for 32-bit unsigned-integer value type.

    +

    Usage example:

    +

    VALUE_TYPE2CType<VT_UINT32>::CType MyUint32Var;

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t8_01_4-members.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t8_01_4-members.html new file mode 100644 index 00000000..0b2e06a0 --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t8_01_4-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::VALUE_TYPE2CType< VT_UINT8 > Member List
    +
    +
    + +

    This is the complete list of members for Diligent::VALUE_TYPE2CType< VT_UINT8 >, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t8_01_4.html b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t8_01_4.html new file mode 100644 index 00000000..b5e8772c --- /dev/null +++ b/doc/html/struct_diligent_1_1_v_a_l_u_e___t_y_p_e2_c_type_3_01_v_t___u_i_n_t8_01_4.html @@ -0,0 +1,95 @@ + + + + + + + +Diligent Engine API Reference: Diligent::VALUE_TYPE2CType< VT_UINT8 > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::VALUE_TYPE2CType< VT_UINT8 > Struct Template Reference
    +
    +
    + +

    VALUE_TYPE2CType<> template specialization for 8-bit unsigned-integer value type. + More...

    +

    Detailed Description

    +

    template<>
    +struct Diligent::VALUE_TYPE2CType< VT_UINT8 >

    + +

    VALUE_TYPE2CType<> template specialization for 8-bit unsigned-integer value type.

    +

    Usage example:

    +

    VALUE_TYPE2CType<VT_UINT8>::CType MyUint8Var;

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_vertex_stream_info-members.html b/doc/html/struct_diligent_1_1_vertex_stream_info-members.html new file mode 100644 index 00000000..83481648 --- /dev/null +++ b/doc/html/struct_diligent_1_1_vertex_stream_info-members.html @@ -0,0 +1,89 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::VertexStreamInfo Member List
    +
    +
    + +

    This is the complete list of members for Diligent::VertexStreamInfo, including all inherited members.

    + + + + +
    OffsetDiligent::VertexStreamInfo
    pBufferDiligent::VertexStreamInfo
    StrideDiligent::VertexStreamInfo
    + + + + + diff --git a/doc/html/struct_diligent_1_1_vertex_stream_info.html b/doc/html/struct_diligent_1_1_vertex_stream_info.html new file mode 100644 index 00000000..b67e38aa --- /dev/null +++ b/doc/html/struct_diligent_1_1_vertex_stream_info.html @@ -0,0 +1,107 @@ + + + + + + + +Diligent Engine API Reference: Diligent::VertexStreamInfo Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::VertexStreamInfo Struct Reference
    +
    +
    + +

    Describes input vertex stream. + More...

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

    +Public Attributes

    +RefCntAutoPtr< IBufferpBuffer
     Strong reference to the buffer object.
     
    +Uint32 Stride
     Stride in bytes.
     
    +Uint32 Offset
     Offset in bytes.
     
    +

    Detailed Description

    +

    Describes input vertex stream.

    +
    + + + + + diff --git a/doc/html/struct_diligent_1_1_viewport-members.html b/doc/html/struct_diligent_1_1_viewport-members.html new file mode 100644 index 00000000..45b30810 --- /dev/null +++ b/doc/html/struct_diligent_1_1_viewport-members.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    Diligent::Viewport Member List
    +
    +
    + +

    This is the complete list of members for Diligent::Viewport, including all inherited members.

    + + + + + + + + +
    HeightDiligent::Viewport
    MaxDepthDiligent::Viewport
    MinDepthDiligent::Viewport
    TopLeftXDiligent::Viewport
    TopLeftYDiligent::Viewport
    Viewport(Float32 _TopLeftX=0, Float32 _TopLeftY=0, Float32 _Width=0, Float32 _Height=0, Float32 _MinDepth=0, Float32 _MaxDepth=1)Diligent::Viewportinline
    WidthDiligent::Viewport
    + + + + + diff --git a/doc/html/struct_diligent_1_1_viewport.html b/doc/html/struct_diligent_1_1_viewport.html new file mode 100644 index 00000000..4521b54a --- /dev/null +++ b/doc/html/struct_diligent_1_1_viewport.html @@ -0,0 +1,128 @@ + + + + + + + +Diligent Engine API Reference: Diligent::Viewport Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    Diligent::Viewport Struct Reference
    +
    +
    + +

    Describes the viewport. + More...

    + + + + + +

    +Public Member Functions

    Viewport (Float32 _TopLeftX=0, Float32 _TopLeftY=0, Float32 _Width=0, Float32 _Height=0, Float32 _MinDepth=0, Float32 _MaxDepth=1)
     Initializes the structure.
     
    + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +Float32 TopLeftX
     X coordinate of the left boundary of the viewport.
     
    +Float32 TopLeftY
     Y coordinate of the top boundary of the viewport. When defining a viewport, DirectX convention is used: window coordinate systems originates in the LEFT TOP corner of the screen with Y axis pointing down.
     
    +Float32 Width
     Viewport width.
     
    +Float32 Height
     Viewport Height.
     
    +Float32 MinDepth
     Minimum depth of the viewport. Ranges between 0 and 1.
     
    +Float32 MaxDepth
     Maximum depth of the viewport. Ranges between 0 and 1.
     
    +

    Detailed Description

    +

    Describes the viewport.

    +

    This structure is used by IDeviceContext::SetViewports().

    +
    + + + + + diff --git a/doc/html/structandroid__app-members.html b/doc/html/structandroid__app-members.html new file mode 100644 index 00000000..d6ca36db --- /dev/null +++ b/doc/html/structandroid__app-members.html @@ -0,0 +1,82 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    android_app Member List
    +
    +
    + +

    This is the complete list of members for android_app, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/structandroid__app.html b/doc/html/structandroid__app.html new file mode 100644 index 00000000..7b5639aa --- /dev/null +++ b/doc/html/structandroid__app.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: android_app Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    android_app Struct Reference
    +
    +
    +

    Detailed Description

    +

    This is the interface for the standard glue code of a threaded application. In this model, the application's code is running in its own thread separate from the main thread of the process. It is not required that this thread be associated with the Java VM, although it will need to be in order to make JNI calls any Java objects.

    +
    + + + + + diff --git a/doc/html/structandroid__poll__source-members.html b/doc/html/structandroid__poll__source-members.html new file mode 100644 index 00000000..6ce7adda --- /dev/null +++ b/doc/html/structandroid__poll__source-members.html @@ -0,0 +1,82 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    android_poll_source Member List
    +
    +
    + +

    This is the complete list of members for android_poll_source, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/structandroid__poll__source.html b/doc/html/structandroid__poll__source.html new file mode 100644 index 00000000..09010555 --- /dev/null +++ b/doc/html/structandroid__poll__source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: android_poll_source Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    android_poll_source Struct Reference
    +
    +
    +

    Detailed Description

    +

    Data associated with an ALooper fd that will be returned as the "outData" when that source has data ready.

    +
    + + + + + diff --git a/doc/html/structstd_1_1hash_3_01_diligent_1_1_blend_state_desc_01_4-members.html b/doc/html/structstd_1_1hash_3_01_diligent_1_1_blend_state_desc_01_4-members.html new file mode 100644 index 00000000..d48bc9de --- /dev/null +++ b/doc/html/structstd_1_1hash_3_01_diligent_1_1_blend_state_desc_01_4-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    std::hash< Diligent::BlendStateDesc > Member List
    +
    +
    + +

    This is the complete list of members for std::hash< Diligent::BlendStateDesc >, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/structstd_1_1hash_3_01_diligent_1_1_blend_state_desc_01_4.html b/doc/html/structstd_1_1hash_3_01_diligent_1_1_blend_state_desc_01_4.html new file mode 100644 index 00000000..f114966d --- /dev/null +++ b/doc/html/structstd_1_1hash_3_01_diligent_1_1_blend_state_desc_01_4.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: std::hash< Diligent::BlendStateDesc > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    std::hash< Diligent::BlendStateDesc > Struct Template Reference
    +
    +
    + +

    Hash function specialization for Diligent::BlendStateDesc structure. + More...

    +

    Detailed Description

    +

    template<>
    +struct std::hash< Diligent::BlendStateDesc >

    + +

    Hash function specialization for Diligent::BlendStateDesc structure.

    +
    + + + + + diff --git a/doc/html/structstd_1_1hash_3_01_diligent_1_1_depth_stencil_state_desc_01_4-members.html b/doc/html/structstd_1_1hash_3_01_diligent_1_1_depth_stencil_state_desc_01_4-members.html new file mode 100644 index 00000000..64b06f1f --- /dev/null +++ b/doc/html/structstd_1_1hash_3_01_diligent_1_1_depth_stencil_state_desc_01_4-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    std::hash< Diligent::DepthStencilStateDesc > Member List
    +
    +
    + +

    This is the complete list of members for std::hash< Diligent::DepthStencilStateDesc >, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/structstd_1_1hash_3_01_diligent_1_1_depth_stencil_state_desc_01_4.html b/doc/html/structstd_1_1hash_3_01_diligent_1_1_depth_stencil_state_desc_01_4.html new file mode 100644 index 00000000..aca628fb --- /dev/null +++ b/doc/html/structstd_1_1hash_3_01_diligent_1_1_depth_stencil_state_desc_01_4.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: std::hash< Diligent::DepthStencilStateDesc > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    std::hash< Diligent::DepthStencilStateDesc > Struct Template Reference
    +
    +
    + +

    Hash function specialization for Diligent::DepthStencilStateDesc structure. + More...

    +

    Detailed Description

    +

    template<>
    +struct std::hash< Diligent::DepthStencilStateDesc >

    + +

    Hash function specialization for Diligent::DepthStencilStateDesc structure.

    +
    + + + + + diff --git a/doc/html/structstd_1_1hash_3_01_diligent_1_1_rasterizer_state_desc_01_4-members.html b/doc/html/structstd_1_1hash_3_01_diligent_1_1_rasterizer_state_desc_01_4-members.html new file mode 100644 index 00000000..6b99d457 --- /dev/null +++ b/doc/html/structstd_1_1hash_3_01_diligent_1_1_rasterizer_state_desc_01_4-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    std::hash< Diligent::RasterizerStateDesc > Member List
    +
    +
    + +

    This is the complete list of members for std::hash< Diligent::RasterizerStateDesc >, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/structstd_1_1hash_3_01_diligent_1_1_rasterizer_state_desc_01_4.html b/doc/html/structstd_1_1hash_3_01_diligent_1_1_rasterizer_state_desc_01_4.html new file mode 100644 index 00000000..c140f975 --- /dev/null +++ b/doc/html/structstd_1_1hash_3_01_diligent_1_1_rasterizer_state_desc_01_4.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: std::hash< Diligent::RasterizerStateDesc > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    std::hash< Diligent::RasterizerStateDesc > Struct Template Reference
    +
    +
    + +

    Hash function specialization for Diligent::RasterizerStateDesc structure. + More...

    +

    Detailed Description

    +

    template<>
    +struct std::hash< Diligent::RasterizerStateDesc >

    + +

    Hash function specialization for Diligent::RasterizerStateDesc structure.

    +
    + + + + + diff --git a/doc/html/structstd_1_1hash_3_01_diligent_1_1_sampler_desc_01_4-members.html b/doc/html/structstd_1_1hash_3_01_diligent_1_1_sampler_desc_01_4-members.html new file mode 100644 index 00000000..fc501a8e --- /dev/null +++ b/doc/html/structstd_1_1hash_3_01_diligent_1_1_sampler_desc_01_4-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    std::hash< Diligent::SamplerDesc > Member List
    +
    +
    + +

    This is the complete list of members for std::hash< Diligent::SamplerDesc >, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/structstd_1_1hash_3_01_diligent_1_1_sampler_desc_01_4.html b/doc/html/structstd_1_1hash_3_01_diligent_1_1_sampler_desc_01_4.html new file mode 100644 index 00000000..95b00146 --- /dev/null +++ b/doc/html/structstd_1_1hash_3_01_diligent_1_1_sampler_desc_01_4.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: std::hash< Diligent::SamplerDesc > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    std::hash< Diligent::SamplerDesc > Struct Template Reference
    +
    +
    + +

    Hash function specialization for Diligent::SamplerDesc structure. + More...

    +

    Detailed Description

    +

    template<>
    +struct std::hash< Diligent::SamplerDesc >

    + +

    Hash function specialization for Diligent::SamplerDesc structure.

    +
    + + + + + diff --git a/doc/html/structstd_1_1hash_3_01_diligent_1_1_stencil_op_desc_01_4-members.html b/doc/html/structstd_1_1hash_3_01_diligent_1_1_stencil_op_desc_01_4-members.html new file mode 100644 index 00000000..90db87d0 --- /dev/null +++ b/doc/html/structstd_1_1hash_3_01_diligent_1_1_stencil_op_desc_01_4-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    std::hash< Diligent::StencilOpDesc > Member List
    +
    +
    + +

    This is the complete list of members for std::hash< Diligent::StencilOpDesc >, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/structstd_1_1hash_3_01_diligent_1_1_stencil_op_desc_01_4.html b/doc/html/structstd_1_1hash_3_01_diligent_1_1_stencil_op_desc_01_4.html new file mode 100644 index 00000000..a0c9ee51 --- /dev/null +++ b/doc/html/structstd_1_1hash_3_01_diligent_1_1_stencil_op_desc_01_4.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: std::hash< Diligent::StencilOpDesc > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    std::hash< Diligent::StencilOpDesc > Struct Template Reference
    +
    +
    + +

    Hash function specialization for Diligent::StencilOpDesc structure. + More...

    +

    Detailed Description

    +

    template<>
    +struct std::hash< Diligent::StencilOpDesc >

    + +

    Hash function specialization for Diligent::StencilOpDesc structure.

    +
    + + + + + diff --git a/doc/html/structstd_1_1hash_3_01_diligent_1_1_texture_view_desc_01_4-members.html b/doc/html/structstd_1_1hash_3_01_diligent_1_1_texture_view_desc_01_4-members.html new file mode 100644 index 00000000..c32ad5c5 --- /dev/null +++ b/doc/html/structstd_1_1hash_3_01_diligent_1_1_texture_view_desc_01_4-members.html @@ -0,0 +1,86 @@ + + + + + + + +Diligent Engine API Reference: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    std::hash< Diligent::TextureViewDesc > Member List
    +
    +
    + +

    This is the complete list of members for std::hash< Diligent::TextureViewDesc >, including all inherited members.

    + +
    + + + + + diff --git a/doc/html/structstd_1_1hash_3_01_diligent_1_1_texture_view_desc_01_4.html b/doc/html/structstd_1_1hash_3_01_diligent_1_1_texture_view_desc_01_4.html new file mode 100644 index 00000000..4fc23456 --- /dev/null +++ b/doc/html/structstd_1_1hash_3_01_diligent_1_1_texture_view_desc_01_4.html @@ -0,0 +1,93 @@ + + + + + + + +Diligent Engine API Reference: std::hash< Diligent::TextureViewDesc > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    std::hash< Diligent::TextureViewDesc > Struct Template Reference
    +
    +
    + +

    Hash function specialization for Diligent::TextureViewDesc structure. + More...

    +

    Detailed Description

    +

    template<>
    +struct std::hash< Diligent::TextureViewDesc >

    + +

    Hash function specialization for Diligent::TextureViewDesc structure.

    +
    + + + + + diff --git a/doc/html/sync_off.png b/doc/html/sync_off.png new file mode 100644 index 00000000..3b443fc6 Binary files /dev/null and b/doc/html/sync_off.png differ diff --git a/doc/html/sync_on.png b/doc/html/sync_on.png new file mode 100644 index 00000000..e08320fb Binary files /dev/null and b/doc/html/sync_on.png differ diff --git a/doc/html/tab_a.png b/doc/html/tab_a.png new file mode 100644 index 00000000..3b725c41 Binary files /dev/null and b/doc/html/tab_a.png differ diff --git a/doc/html/tab_b.png b/doc/html/tab_b.png new file mode 100644 index 00000000..e2b4a863 Binary files /dev/null and b/doc/html/tab_b.png differ diff --git a/doc/html/tab_h.png b/doc/html/tab_h.png new file mode 100644 index 00000000..fd5cb705 Binary files /dev/null and b/doc/html/tab_h.png differ diff --git a/doc/html/tab_s.png b/doc/html/tab_s.png new file mode 100644 index 00000000..ab478c95 Binary files /dev/null and b/doc/html/tab_s.png differ diff --git a/doc/html/tabs.css b/doc/html/tabs.css new file mode 100644 index 00000000..a28614b8 --- /dev/null +++ b/doc/html/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#doc-content{overflow:auto;display:block;padding:0;margin:0;-webkit-overflow-scrolling:touch}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/doc/html/tap_camera_8h_source.html b/doc/html/tap_camera_8h_source.html new file mode 100644 index 00000000..231e3ce7 --- /dev/null +++ b/doc/html/tap_camera_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/ndk_helper/include/tapCamera.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    tapCamera.h
    +
    +
    +
    1 /*
    2  * Copyright 2013 The Android Open Source Project
    3  *
    4  * Licensed under the Apache License, Version 2.0 (the "License");
    5  * you may not use this file except in compliance with the License.
    6  * You may obtain a copy of the License at
    7  *
    8  * http://www.apache.org/licenses/LICENSE-2.0
    9  *
    10  * Unless required by applicable law or agreed to in writing, software
    11  * distributed under the License is distributed on an "AS IS" BASIS,
    12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  * See the License for the specific language governing permissions and
    14  * limitations under the License.
    15  */
    16 
    17 #pragma once
    18 #include <vector>
    19 #include <string>
    20 #include <GLES2/gl2.h>
    21 
    22 #include "JNIHelper.h"
    23 #include "vecmath.h"
    24 #include "interpolator.h"
    25 
    26 namespace ndk_helper {
    27 
    28 /******************************************************************
    29  * Camera control helper class with a tap gesture
    30  * This class is mainly used for 3D space camera control in samples.
    31  *
    32  */
    33 class TapCamera {
    34  private:
    35  // Trackball
    36  Vec2 vec_ball_center_;
    37  float ball_radius_;
    38  Quaternion quat_ball_now_;
    39  Quaternion quat_ball_down_;
    40  Vec2 vec_ball_now_;
    41  Vec2 vec_ball_down_;
    42  Quaternion quat_ball_rot_;
    43 
    44  bool dragging_;
    45  bool pinching_;
    46 
    47  // Pinch related info
    48  Vec2 vec_pinch_start_;
    49  Vec2 vec_pinch_start_center_;
    50  float pinch_start_distance_SQ_;
    51 
    52  // Camera shift
    53  Vec3 vec_offset_;
    54  Vec3 vec_offset_now_;
    55 
    56  // Camera Rotation
    57  float camera_rotation_;
    58  float camera_rotation_start_;
    59  float camera_rotation_now_;
    60 
    61  // Momentum support
    62  bool momentum_;
    63  double time_stamp_;
    64  Vec2 vec_drag_delta_;
    65  Vec2 vec_last_input_;
    66  Vec3 vec_offset_last_;
    67  Vec3 vec_offset_delta_;
    68  float momemtum_steps_;
    69 
    70  Vec2 vec_flip_;
    71  float flip_z_;
    72 
    73  Mat4 mat_rotation_;
    74  Mat4 mat_transform_;
    75 
    76  Vec3 vec_pinch_transform_factor_;
    77 
    78  Vec3 PointOnSphere(Vec2& point);
    79  void BallUpdate();
    80  void InitParameters();
    81 
    82  public:
    83  TapCamera();
    84  virtual ~TapCamera();
    85  void BeginDrag(const Vec2& vec);
    86  void EndDrag();
    87  void Drag(const Vec2& vec);
    88  void Update();
    89  void Update(const double time);
    90 
    91  Mat4& GetRotationMatrix();
    92  Mat4& GetTransformMatrix();
    93 
    94  void BeginPinch(const Vec2& v1, const Vec2& v2);
    95  void EndPinch();
    96  void Pinch(const Vec2& v1, const Vec2& v2);
    97 
    98  void SetFlip(const float x, const float y, const float z) {
    99  vec_flip_ = Vec2(x, y);
    100  flip_z_ = z;
    101  }
    102 
    103  void SetPinchTransformFactor(const float x, const float y, const float z) {
    104  vec_pinch_transform_factor_ = Vec3(x, y, z);
    105  }
    106 
    107  void Reset(const bool bAnimate);
    108 };
    109 
    110 } // namespace ndkHelper
    Definition: gestureDetector.h:32
    +
    + + + + + diff --git a/doc/html/targetver_8h_source.html b/doc/html/targetver_8h_source.html new file mode 100644 index 00000000..eb3e2ecb --- /dev/null +++ b/doc/html/targetver_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/Graphics/GraphicsEngineD3D11/include/targetver.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    targetver.h
    +
    +
    +
    1 /* Copyright 2015-2017 Egor Yusov
    2  *
    3  * Licensed under the Apache License, Version 2.0 (the "License");
    4  * you may not use this file except in compliance with the License.
    5  * You may obtain a copy of the License at
    6  *
    7  * http://www.apache.org/licenses/LICENSE-2.0
    8  *
    9  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    10  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    11  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
    12  *
    13  * In no event and under no legal theory, whether in tort (including negligence),
    14  * contract, or otherwise, unless required by applicable law (such as deliberate
    15  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
    16  * liable for any damages, including any direct, indirect, special, incidental,
    17  * or consequential damages of any character arising as a result of this License or
    18  * out of the use or inability to use the software (including but not limited to damages
    19  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
    20  * all other commercial damages or losses), even if such Contributor has been advised
    21  * of the possibility of such damages.
    22  */
    23 
    24 #pragma once
    25 
    26 // Including SDKDDKVer.h defines the highest available Windows platform.
    27 
    28 // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
    29 // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
    30 
    31 #include <SDKDDKVer.h>
    + + + + + diff --git a/doc/html/vecmath_8h_source.html b/doc/html/vecmath_8h_source.html new file mode 100644 index 00000000..3ae6575c --- /dev/null +++ b/doc/html/vecmath_8h_source.html @@ -0,0 +1,84 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/Android/ndk_helper/include/vecmath.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    vecmath.h
    +
    +
    +
    1 /*
    2  * Copyright 2013 The Android Open Source Project
    3  *
    4  * Licensed under the Apache License, Version 2.0 (the "License");
    5  * you may not use this file except in compliance with the License.
    6  * You may obtain a copy of the License at
    7  *
    8  * http://www.apache.org/licenses/LICENSE-2.0
    9  *
    10  * Unless required by applicable law or agreed to in writing, software
    11  * distributed under the License is distributed on an "AS IS" BASIS,
    12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  * See the License for the specific language governing permissions and
    14  * limitations under the License.
    15  */
    16 
    17 #ifndef VECMATH_H_
    18 #define VECMATH_H_
    19 
    20 #include <cmath>
    21 #include "JNIHelper.h"
    22 
    23 namespace ndk_helper {
    24 
    25 /******************************************************************
    26  * Helper class for vector math operations
    27  * Currently all implementations are in pure C++.
    28  * Each class is an opaque class so caller does not have a direct access
    29  * to each element. This is for an ease of future optimization to use vector
    30  *operations.
    31  *
    32  */
    33 
    34 class Vec2;
    35 class Vec3;
    36 class Vec4;
    37 class Mat4;
    38 
    39 /******************************************************************
    40  * 2 elements vector class
    41  *
    42  */
    43 class Vec2 {
    44  private:
    45  float x_;
    46  float y_;
    47 
    48  public:
    49  friend class Vec3;
    50  friend class Vec4;
    51  friend class Mat4;
    52  friend class Quaternion;
    53 
    54  Vec2() { x_ = y_ = 0.f; }
    55 
    56  Vec2(const float fX, const float fY) {
    57  x_ = fX;
    58  y_ = fY;
    59  }
    60 
    61  Vec2(const Vec2& vec) {
    62  x_ = vec.x_;
    63  y_ = vec.y_;
    64  }
    65 
    66  Vec2(const float* pVec) {
    67  x_ = (*pVec++);
    68  y_ = (*pVec++);
    69  }
    70 
    71  // Operators
    72  Vec2 operator*(const Vec2& rhs) const {
    73  Vec2 ret;
    74  ret.x_ = x_ * rhs.x_;
    75  ret.y_ = y_ * rhs.y_;
    76  return ret;
    77  }
    78 
    79  Vec2 operator/(const Vec2& rhs) const {
    80  Vec2 ret;
    81  ret.x_ = x_ / rhs.x_;
    82  ret.y_ = y_ / rhs.y_;
    83  return ret;
    84  }
    85 
    86  Vec2 operator+(const Vec2& rhs) const {
    87  Vec2 ret;
    88  ret.x_ = x_ + rhs.x_;
    89  ret.y_ = y_ + rhs.y_;
    90  return ret;
    91  }
    92 
    93  Vec2 operator-(const Vec2& rhs) const {
    94  Vec2 ret;
    95  ret.x_ = x_ - rhs.x_;
    96  ret.y_ = y_ - rhs.y_;
    97  return ret;
    98  }
    99 
    100  Vec2& operator+=(const Vec2& rhs) {
    101  x_ += rhs.x_;
    102  y_ += rhs.y_;
    103  return *this;
    104  }
    105 
    106  Vec2& operator-=(const Vec2& rhs) {
    107  x_ -= rhs.x_;
    108  y_ -= rhs.y_;
    109  return *this;
    110  }
    111 
    112  Vec2& operator*=(const Vec2& rhs) {
    113  x_ *= rhs.x_;
    114  y_ *= rhs.y_;
    115  return *this;
    116  }
    117 
    118  Vec2& operator/=(const Vec2& rhs) {
    119  x_ /= rhs.x_;
    120  y_ /= rhs.y_;
    121  return *this;
    122  }
    123 
    124  // External operators
    125  friend Vec2 operator-(const Vec2& rhs) { return Vec2(rhs) *= -1; }
    126 
    127  friend Vec2 operator*(const float lhs, const Vec2& rhs) {
    128  Vec2 ret;
    129  ret.x_ = lhs * rhs.x_;
    130  ret.y_ = lhs * rhs.y_;
    131  return ret;
    132  }
    133 
    134  friend Vec2 operator/(const float lhs, const Vec2& rhs) {
    135  Vec2 ret;
    136  ret.x_ = lhs / rhs.x_;
    137  ret.y_ = lhs / rhs.y_;
    138  return ret;
    139  }
    140 
    141  // Operators with float
    142  Vec2 operator*(const float& rhs) const {
    143  Vec2 ret;
    144  ret.x_ = x_ * rhs;
    145  ret.y_ = y_ * rhs;
    146  return ret;
    147  }
    148 
    149  Vec2& operator*=(const float& rhs) {
    150  x_ = x_ * rhs;
    151  y_ = y_ * rhs;
    152  return *this;
    153  }
    154 
    155  Vec2 operator/(const float& rhs) const {
    156  Vec2 ret;
    157  ret.x_ = x_ / rhs;
    158  ret.y_ = y_ / rhs;
    159  return ret;
    160  }
    161 
    162  Vec2& operator/=(const float& rhs) {
    163  x_ = x_ / rhs;
    164  y_ = y_ / rhs;
    165  return *this;
    166  }
    167 
    168  // Compare
    169  bool operator==(const Vec2& rhs) const {
    170  if (x_ != rhs.x_ || y_ != rhs.y_) return false;
    171  return true;
    172  }
    173 
    174  bool operator!=(const Vec2& rhs) const {
    175  if (x_ == rhs.x_) return false;
    176 
    177  return true;
    178  }
    179 
    180  float Length() const { return sqrtf(x_ * x_ + y_ * y_); }
    181 
    182  Vec2 Normalize() {
    183  float len = Length();
    184  x_ = x_ / len;
    185  y_ = y_ / len;
    186  return *this;
    187  }
    188 
    189  float Dot(const Vec2& rhs) { return x_ * rhs.x_ + y_ * rhs.y_; }
    190 
    191  bool Validate() {
    192  if (std::isnan(x_) || std::isnan(y_)) return false;
    193  return true;
    194  }
    195 
    196  void Value(float& fX, float& fY) {
    197  fX = x_;
    198  fY = y_;
    199  }
    200 
    201  void Dump() { LOGI("Vec2 %f %f", x_, y_); }
    202 };
    203 
    204 /******************************************************************
    205  * 3 elements vector class
    206  *
    207  */
    208 class Vec3 {
    209  private:
    210  float x_, y_, z_;
    211 
    212  public:
    213  friend class Vec4;
    214  friend class Mat4;
    215  friend class Quaternion;
    216 
    217  Vec3() { x_ = y_ = z_ = 0.f; }
    218 
    219  Vec3(const float fX, const float fY, const float fZ) {
    220  x_ = fX;
    221  y_ = fY;
    222  z_ = fZ;
    223  }
    224 
    225  Vec3(const Vec3& vec) {
    226  x_ = vec.x_;
    227  y_ = vec.y_;
    228  z_ = vec.z_;
    229  }
    230 
    231  Vec3(const float* pVec) {
    232  x_ = (*pVec++);
    233  y_ = (*pVec++);
    234  z_ = *pVec;
    235  }
    236 
    237  Vec3(const Vec2& vec, float f) {
    238  x_ = vec.x_;
    239  y_ = vec.y_;
    240  z_ = f;
    241  }
    242 
    243  Vec3(const Vec4& vec);
    244 
    245  // Operators
    246  Vec3 operator*(const Vec3& rhs) const {
    247  Vec3 ret;
    248  ret.x_ = x_ * rhs.x_;
    249  ret.y_ = y_ * rhs.y_;
    250  ret.z_ = z_ * rhs.z_;
    251  return ret;
    252  }
    253 
    254  Vec3 operator/(const Vec3& rhs) const {
    255  Vec3 ret;
    256  ret.x_ = x_ / rhs.x_;
    257  ret.y_ = y_ / rhs.y_;
    258  ret.z_ = z_ / rhs.z_;
    259  return ret;
    260  }
    261 
    262  Vec3 operator+(const Vec3& rhs) const {
    263  Vec3 ret;
    264  ret.x_ = x_ + rhs.x_;
    265  ret.y_ = y_ + rhs.y_;
    266  ret.z_ = z_ + rhs.z_;
    267  return ret;
    268  }
    269 
    270  Vec3 operator-(const Vec3& rhs) const {
    271  Vec3 ret;
    272  ret.x_ = x_ - rhs.x_;
    273  ret.y_ = y_ - rhs.y_;
    274  ret.z_ = z_ - rhs.z_;
    275  return ret;
    276  }
    277 
    278  Vec3& operator+=(const Vec3& rhs) {
    279  x_ += rhs.x_;
    280  y_ += rhs.y_;
    281  z_ += rhs.z_;
    282  return *this;
    283  }
    284 
    285  Vec3& operator-=(const Vec3& rhs) {
    286  x_ -= rhs.x_;
    287  y_ -= rhs.y_;
    288  z_ -= rhs.z_;
    289  return *this;
    290  }
    291 
    292  Vec3& operator*=(const Vec3& rhs) {
    293  x_ *= rhs.x_;
    294  y_ *= rhs.y_;
    295  z_ *= rhs.z_;
    296  return *this;
    297  }
    298 
    299  Vec3& operator/=(const Vec3& rhs) {
    300  x_ /= rhs.x_;
    301  y_ /= rhs.y_;
    302  z_ /= rhs.z_;
    303  return *this;
    304  }
    305 
    306  // External operators
    307  friend Vec3 operator-(const Vec3& rhs) { return Vec3(rhs) *= -1; }
    308 
    309  friend Vec3 operator*(const float lhs, const Vec3& rhs) {
    310  Vec3 ret;
    311  ret.x_ = lhs * rhs.x_;
    312  ret.y_ = lhs * rhs.y_;
    313  ret.z_ = lhs * rhs.z_;
    314  return ret;
    315  }
    316 
    317  friend Vec3 operator/(const float lhs, const Vec3& rhs) {
    318  Vec3 ret;
    319  ret.x_ = lhs / rhs.x_;
    320  ret.y_ = lhs / rhs.y_;
    321  ret.z_ = lhs / rhs.z_;
    322  return ret;
    323  }
    324 
    325  // Operators with float
    326  Vec3 operator*(const float& rhs) const {
    327  Vec3 ret;
    328  ret.x_ = x_ * rhs;
    329  ret.y_ = y_ * rhs;
    330  ret.z_ = z_ * rhs;
    331  return ret;
    332  }
    333 
    334  Vec3& operator*=(const float& rhs) {
    335  x_ = x_ * rhs;
    336  y_ = y_ * rhs;
    337  z_ = z_ * rhs;
    338  return *this;
    339  }
    340 
    341  Vec3 operator/(const float& rhs) const {
    342  Vec3 ret;
    343  ret.x_ = x_ / rhs;
    344  ret.y_ = y_ / rhs;
    345  ret.z_ = z_ / rhs;
    346  return ret;
    347  }
    348 
    349  Vec3& operator/=(const float& rhs) {
    350  x_ = x_ / rhs;
    351  y_ = y_ / rhs;
    352  z_ = z_ / rhs;
    353  return *this;
    354  }
    355 
    356  // Compare
    357  bool operator==(const Vec3& rhs) const {
    358  if (x_ != rhs.x_ || y_ != rhs.y_ || z_ != rhs.z_) return false;
    359  return true;
    360  }
    361 
    362  bool operator!=(const Vec3& rhs) const {
    363  if (x_ == rhs.x_) return false;
    364 
    365  return true;
    366  }
    367 
    368  float Length() const { return sqrtf(x_ * x_ + y_ * y_ + z_ * z_); }
    369 
    370  Vec3 Normalize() {
    371  float len = Length();
    372  x_ = x_ / len;
    373  y_ = y_ / len;
    374  z_ = z_ / len;
    375  return *this;
    376  }
    377 
    378  float Dot(const Vec3& rhs) { return x_ * rhs.x_ + y_ * rhs.y_ + z_ * rhs.z_; }
    379 
    380  Vec3 Cross(const Vec3& rhs) {
    381  Vec3 ret;
    382  ret.x_ = y_ * rhs.z_ - z_ * rhs.y_;
    383  ret.y_ = z_ * rhs.x_ - x_ * rhs.z_;
    384  ret.z_ = x_ * rhs.y_ - y_ * rhs.x_;
    385  return ret;
    386  }
    387 
    388  bool Validate() {
    389  if (std::isnan(x_) || std::isnan(y_) || std::isnan(z_)) return false;
    390  return true;
    391  }
    392 
    393  void Value(float& fX, float& fY, float& fZ) {
    394  fX = x_;
    395  fY = y_;
    396  fZ = z_;
    397  }
    398 
    399  void Dump() { LOGI("Vec3 %f %f %f", x_, y_, z_); }
    400 };
    401 
    402 /******************************************************************
    403  * 4 elements vector class
    404  *
    405  */
    406 class Vec4 {
    407  private:
    408  float x_, y_, z_, w_;
    409 
    410  public:
    411  friend class Vec3;
    412  friend class Mat4;
    413  friend class Quaternion;
    414 
    415  Vec4() { x_ = y_ = z_ = w_ = 0.f; }
    416 
    417  Vec4(const float fX, const float fY, const float fZ, const float fW) {
    418  x_ = fX;
    419  y_ = fY;
    420  z_ = fZ;
    421  w_ = fW;
    422  }
    423 
    424  Vec4(const Vec4& vec) {
    425  x_ = vec.x_;
    426  y_ = vec.y_;
    427  z_ = vec.z_;
    428  w_ = vec.w_;
    429  }
    430 
    431  Vec4(const Vec3& vec, const float fW) {
    432  x_ = vec.x_;
    433  y_ = vec.y_;
    434  z_ = vec.z_;
    435  w_ = fW;
    436  }
    437 
    438  Vec4(const float* pVec) {
    439  x_ = (*pVec++);
    440  y_ = (*pVec++);
    441  z_ = *pVec;
    442  w_ = *pVec;
    443  }
    444 
    445  // Operators
    446  Vec4 operator*(const Vec4& rhs) const {
    447  Vec4 ret;
    448  ret.x_ = x_ * rhs.x_;
    449  ret.y_ = y_ * rhs.y_;
    450  ret.z_ = z_ * rhs.z_;
    451  ret.w_ = z_ * rhs.w_;
    452  return ret;
    453  }
    454 
    455  Vec4 operator/(const Vec4& rhs) const {
    456  Vec4 ret;
    457  ret.x_ = x_ / rhs.x_;
    458  ret.y_ = y_ / rhs.y_;
    459  ret.z_ = z_ / rhs.z_;
    460  ret.w_ = z_ / rhs.w_;
    461  return ret;
    462  }
    463 
    464  Vec4 operator+(const Vec4& rhs) const {
    465  Vec4 ret;
    466  ret.x_ = x_ + rhs.x_;
    467  ret.y_ = y_ + rhs.y_;
    468  ret.z_ = z_ + rhs.z_;
    469  ret.w_ = z_ + rhs.w_;
    470  return ret;
    471  }
    472 
    473  Vec4 operator-(const Vec4& rhs) const {
    474  Vec4 ret;
    475  ret.x_ = x_ - rhs.x_;
    476  ret.y_ = y_ - rhs.y_;
    477  ret.z_ = z_ - rhs.z_;
    478  ret.w_ = z_ - rhs.w_;
    479  return ret;
    480  }
    481 
    482  Vec4& operator+=(const Vec4& rhs) {
    483  x_ += rhs.x_;
    484  y_ += rhs.y_;
    485  z_ += rhs.z_;
    486  w_ += rhs.w_;
    487  return *this;
    488  }
    489 
    490  Vec4& operator-=(const Vec4& rhs) {
    491  x_ -= rhs.x_;
    492  y_ -= rhs.y_;
    493  z_ -= rhs.z_;
    494  w_ -= rhs.w_;
    495  return *this;
    496  }
    497 
    498  Vec4& operator*=(const Vec4& rhs) {
    499  x_ *= rhs.x_;
    500  y_ *= rhs.y_;
    501  z_ *= rhs.z_;
    502  w_ *= rhs.w_;
    503  return *this;
    504  }
    505 
    506  Vec4& operator/=(const Vec4& rhs) {
    507  x_ /= rhs.x_;
    508  y_ /= rhs.y_;
    509  z_ /= rhs.z_;
    510  w_ /= rhs.w_;
    511  return *this;
    512  }
    513 
    514  // External operators
    515  friend Vec4 operator-(const Vec4& rhs) { return Vec4(rhs) *= -1; }
    516 
    517  friend Vec4 operator*(const float lhs, const Vec4& rhs) {
    518  Vec4 ret;
    519  ret.x_ = lhs * rhs.x_;
    520  ret.y_ = lhs * rhs.y_;
    521  ret.z_ = lhs * rhs.z_;
    522  ret.w_ = lhs * rhs.w_;
    523  return ret;
    524  }
    525 
    526  friend Vec4 operator/(const float lhs, const Vec4& rhs) {
    527  Vec4 ret;
    528  ret.x_ = lhs / rhs.x_;
    529  ret.y_ = lhs / rhs.y_;
    530  ret.z_ = lhs / rhs.z_;
    531  ret.w_ = lhs / rhs.w_;
    532  return ret;
    533  }
    534 
    535  // Operators with float
    536  Vec4 operator*(const float& rhs) const {
    537  Vec4 ret;
    538  ret.x_ = x_ * rhs;
    539  ret.y_ = y_ * rhs;
    540  ret.z_ = z_ * rhs;
    541  ret.w_ = w_ * rhs;
    542  return ret;
    543  }
    544 
    545  Vec4& operator*=(const float& rhs) {
    546  x_ = x_ * rhs;
    547  y_ = y_ * rhs;
    548  z_ = z_ * rhs;
    549  w_ = w_ * rhs;
    550  return *this;
    551  }
    552 
    553  Vec4 operator/(const float& rhs) const {
    554  Vec4 ret;
    555  ret.x_ = x_ / rhs;
    556  ret.y_ = y_ / rhs;
    557  ret.z_ = z_ / rhs;
    558  ret.w_ = w_ / rhs;
    559  return ret;
    560  }
    561 
    562  Vec4& operator/=(const float& rhs) {
    563  x_ = x_ / rhs;
    564  y_ = y_ / rhs;
    565  z_ = z_ / rhs;
    566  w_ = w_ / rhs;
    567  return *this;
    568  }
    569 
    570  // Compare
    571  bool operator==(const Vec4& rhs) const {
    572  if (x_ != rhs.x_ || y_ != rhs.y_ || z_ != rhs.z_ || w_ != rhs.w_)
    573  return false;
    574  return true;
    575  }
    576 
    577  bool operator!=(const Vec4& rhs) const {
    578  if (x_ == rhs.x_) return false;
    579 
    580  return true;
    581  }
    582 
    583  Vec4 operator*(const Mat4& rhs) const;
    584 
    585  float Length() const { return sqrtf(x_ * x_ + y_ * y_ + z_ * z_ + w_ * w_); }
    586 
    587  Vec4 Normalize() {
    588  float len = Length();
    589  x_ = x_ / len;
    590  y_ = y_ / len;
    591  z_ = z_ / len;
    592  w_ = w_ / len;
    593  return *this;
    594  }
    595 
    596  float Dot(const Vec3& rhs) { return x_ * rhs.x_ + y_ * rhs.y_ + z_ * rhs.z_; }
    597 
    598  Vec3 Cross(const Vec3& rhs) {
    599  Vec3 ret;
    600  ret.x_ = y_ * rhs.z_ - z_ * rhs.y_;
    601  ret.y_ = z_ * rhs.x_ - x_ * rhs.z_;
    602  ret.z_ = x_ * rhs.y_ - y_ * rhs.x_;
    603  return ret;
    604  }
    605 
    606  bool Validate() {
    607  if (std::isnan(x_) || std::isnan(y_) ||
    608  std::isnan(z_) || std::isnan(w_))
    609  return false;
    610 
    611  return true;
    612  }
    613 
    614  void Value(float& fX, float& fY, float& fZ, float& fW) {
    615  fX = x_;
    616  fY = y_;
    617  fZ = z_;
    618  fW = w_;
    619  }
    620 };
    621 
    622 /******************************************************************
    623  * 4x4 matrix
    624  *
    625  */
    626 class Mat4 {
    627  private:
    628  float f_[16];
    629 
    630  public:
    631  friend class Vec3;
    632  friend class Vec4;
    633  friend class Quaternion;
    634 
    635  Mat4();
    636  Mat4(const float*);
    637 
    638  Mat4 operator*(const Mat4& rhs) const;
    639  Vec4 operator*(const Vec4& rhs) const;
    640 
    641  Mat4 operator+(const Mat4& rhs) const {
    642  Mat4 ret;
    643  for (int32_t i = 0; i < 16; ++i) {
    644  ret.f_[i] = f_[i] + rhs.f_[i];
    645  }
    646  return ret;
    647  }
    648 
    649  Mat4 operator-(const Mat4& rhs) const {
    650  Mat4 ret;
    651  for (int32_t i = 0; i < 16; ++i) {
    652  ret.f_[i] = f_[i] - rhs.f_[i];
    653  }
    654  return ret;
    655  }
    656 
    657  Mat4& operator+=(const Mat4& rhs) {
    658  for (int32_t i = 0; i < 16; ++i) {
    659  f_[i] += rhs.f_[i];
    660  }
    661  return *this;
    662  }
    663 
    664  Mat4& operator-=(const Mat4& rhs) {
    665  for (int32_t i = 0; i < 16; ++i) {
    666  f_[i] -= rhs.f_[i];
    667  }
    668  return *this;
    669  }
    670 
    671  Mat4& operator*=(const Mat4& rhs) {
    672  Mat4 ret;
    673  ret.f_[0] = f_[0] * rhs.f_[0] + f_[4] * rhs.f_[1] + f_[8] * rhs.f_[2] +
    674  f_[12] * rhs.f_[3];
    675  ret.f_[1] = f_[1] * rhs.f_[0] + f_[5] * rhs.f_[1] + f_[9] * rhs.f_[2] +
    676  f_[13] * rhs.f_[3];
    677  ret.f_[2] = f_[2] * rhs.f_[0] + f_[6] * rhs.f_[1] + f_[10] * rhs.f_[2] +
    678  f_[14] * rhs.f_[3];
    679  ret.f_[3] = f_[3] * rhs.f_[0] + f_[7] * rhs.f_[1] + f_[11] * rhs.f_[2] +
    680  f_[15] * rhs.f_[3];
    681 
    682  ret.f_[4] = f_[0] * rhs.f_[4] + f_[4] * rhs.f_[5] + f_[8] * rhs.f_[6] +
    683  f_[12] * rhs.f_[7];
    684  ret.f_[5] = f_[1] * rhs.f_[4] + f_[5] * rhs.f_[5] + f_[9] * rhs.f_[6] +
    685  f_[13] * rhs.f_[7];
    686  ret.f_[6] = f_[2] * rhs.f_[4] + f_[6] * rhs.f_[5] + f_[10] * rhs.f_[6] +
    687  f_[14] * rhs.f_[7];
    688  ret.f_[7] = f_[3] * rhs.f_[4] + f_[7] * rhs.f_[5] + f_[11] * rhs.f_[6] +
    689  f_[15] * rhs.f_[7];
    690 
    691  ret.f_[8] = f_[0] * rhs.f_[8] + f_[4] * rhs.f_[9] + f_[8] * rhs.f_[10] +
    692  f_[12] * rhs.f_[11];
    693  ret.f_[9] = f_[1] * rhs.f_[8] + f_[5] * rhs.f_[9] + f_[9] * rhs.f_[10] +
    694  f_[13] * rhs.f_[11];
    695  ret.f_[10] = f_[2] * rhs.f_[8] + f_[6] * rhs.f_[9] + f_[10] * rhs.f_[10] +
    696  f_[14] * rhs.f_[11];
    697  ret.f_[11] = f_[3] * rhs.f_[8] + f_[7] * rhs.f_[9] + f_[11] * rhs.f_[10] +
    698  f_[15] * rhs.f_[11];
    699 
    700  ret.f_[12] = f_[0] * rhs.f_[12] + f_[4] * rhs.f_[13] + f_[8] * rhs.f_[14] +
    701  f_[12] * rhs.f_[15];
    702  ret.f_[13] = f_[1] * rhs.f_[12] + f_[5] * rhs.f_[13] + f_[9] * rhs.f_[14] +
    703  f_[13] * rhs.f_[15];
    704  ret.f_[14] = f_[2] * rhs.f_[12] + f_[6] * rhs.f_[13] + f_[10] * rhs.f_[14] +
    705  f_[14] * rhs.f_[15];
    706  ret.f_[15] = f_[3] * rhs.f_[12] + f_[7] * rhs.f_[13] + f_[11] * rhs.f_[14] +
    707  f_[15] * rhs.f_[15];
    708 
    709  *this = ret;
    710  return *this;
    711  }
    712 
    713  Mat4 operator*(const float rhs) {
    714  Mat4 ret;
    715  for (int32_t i = 0; i < 16; ++i) {
    716  ret.f_[i] = f_[i] * rhs;
    717  }
    718  return ret;
    719  }
    720 
    721  Mat4& operator*=(const float rhs) {
    722  for (int32_t i = 0; i < 16; ++i) {
    723  f_[i] *= rhs;
    724  }
    725  return *this;
    726  }
    727 
    728  Mat4& operator=(const Mat4& rhs) {
    729  for (int32_t i = 0; i < 16; ++i) {
    730  f_[i] = rhs.f_[i];
    731  }
    732  return *this;
    733  }
    734 
    735  Mat4 Inverse();
    736 
    737  Mat4 Transpose() {
    738  Mat4 ret;
    739  ret.f_[0] = f_[0];
    740  ret.f_[1] = f_[4];
    741  ret.f_[2] = f_[8];
    742  ret.f_[3] = f_[12];
    743  ret.f_[4] = f_[1];
    744  ret.f_[5] = f_[5];
    745  ret.f_[6] = f_[9];
    746  ret.f_[7] = f_[13];
    747  ret.f_[8] = f_[2];
    748  ret.f_[9] = f_[6];
    749  ret.f_[10] = f_[10];
    750  ret.f_[11] = f_[14];
    751  ret.f_[12] = f_[3];
    752  ret.f_[13] = f_[7];
    753  ret.f_[14] = f_[11];
    754  ret.f_[15] = f_[15];
    755  *this = ret;
    756  return *this;
    757  }
    758 
    759  Mat4& PostTranslate(float tx, float ty, float tz) {
    760  f_[12] += (tx * f_[0]) + (ty * f_[4]) + (tz * f_[8]);
    761  f_[13] += (tx * f_[1]) + (ty * f_[5]) + (tz * f_[9]);
    762  f_[14] += (tx * f_[2]) + (ty * f_[6]) + (tz * f_[10]);
    763  f_[15] += (tx * f_[3]) + (ty * f_[7]) + (tz * f_[11]);
    764  return *this;
    765  }
    766 
    767  float* Ptr() { return f_; }
    768 
    769  //--------------------------------------------------------------------------------
    770  // Misc
    771  //--------------------------------------------------------------------------------
    772  static Mat4 Perspective(float width, float height, float nearPlane,
    773  float farPlane);
    774  static Mat4 Ortho2D(float left, float top, float right, float bottom);
    775 
    776  static Mat4 LookAt(const Vec3& vEye, const Vec3& vAt, const Vec3& vUp);
    777 
    778  static Mat4 Translation(const float fX, const float fY, const float fZ);
    779  static Mat4 Translation(const Vec3 vec);
    780 
    781  static Mat4 RotationX(const float angle);
    782 
    783  static Mat4 RotationY(const float angle);
    784 
    785  static Mat4 RotationZ(const float angle);
    786 
    787  static Mat4 Scale(const float scaleX, const float scaleY, const float scaleZ);
    788 
    789  static Mat4 Identity() {
    790  Mat4 ret;
    791  ret.f_[0] = 1.f;
    792  ret.f_[1] = 0;
    793  ret.f_[2] = 0;
    794  ret.f_[3] = 0;
    795  ret.f_[4] = 0;
    796  ret.f_[5] = 1.f;
    797  ret.f_[6] = 0;
    798  ret.f_[7] = 0;
    799  ret.f_[8] = 0;
    800  ret.f_[9] = 0;
    801  ret.f_[10] = 1.f;
    802  ret.f_[11] = 0;
    803  ret.f_[12] = 0;
    804  ret.f_[13] = 0;
    805  ret.f_[14] = 0;
    806  ret.f_[15] = 1.f;
    807  return ret;
    808  }
    809 
    810  void Dump() {
    811  LOGI("%f %f %f %f", f_[0], f_[1], f_[2], f_[3]);
    812  LOGI("%f %f %f %f", f_[4], f_[5], f_[6], f_[7]);
    813  LOGI("%f %f %f %f", f_[8], f_[9], f_[10], f_[11]);
    814  LOGI("%f %f %f %f", f_[12], f_[13], f_[14], f_[15]);
    815  }
    816 };
    817 
    818 /******************************************************************
    819  * Quaternion class
    820  *
    821  */
    822 class Quaternion {
    823  private:
    824  float x_, y_, z_, w_;
    825 
    826  public:
    827  friend class Vec3;
    828  friend class Vec4;
    829  friend class Mat4;
    830 
    831  Quaternion() {
    832  x_ = 0.f;
    833  y_ = 0.f;
    834  z_ = 0.f;
    835  w_ = 1.f;
    836  }
    837 
    838  Quaternion(const float fX, const float fY, const float fZ, const float fW) {
    839  x_ = fX;
    840  y_ = fY;
    841  z_ = fZ;
    842  w_ = fW;
    843  }
    844 
    845  Quaternion(const Vec3 vec, const float fW) {
    846  x_ = vec.x_;
    847  y_ = vec.y_;
    848  z_ = vec.z_;
    849  w_ = fW;
    850  }
    851 
    852  Quaternion(const float* p) {
    853  x_ = *p++;
    854  y_ = *p++;
    855  z_ = *p++;
    856  w_ = *p++;
    857  }
    858 
    859  Quaternion operator*(const Quaternion rhs) {
    860  Quaternion ret;
    861  ret.x_ = x_ * rhs.w_ + y_ * rhs.z_ - z_ * rhs.y_ + w_ * rhs.x_;
    862  ret.y_ = -x_ * rhs.z_ + y_ * rhs.w_ + z_ * rhs.x_ + w_ * rhs.y_;
    863  ret.z_ = x_ * rhs.y_ - y_ * rhs.x_ + z_ * rhs.w_ + w_ * rhs.z_;
    864  ret.w_ = -x_ * rhs.x_ - y_ * rhs.y_ - z_ * rhs.z_ + w_ * rhs.w_;
    865  return ret;
    866  }
    867 
    868  Quaternion& operator*=(const Quaternion rhs) {
    869  Quaternion ret;
    870  ret.x_ = x_ * rhs.w_ + y_ * rhs.z_ - z_ * rhs.y_ + w_ * rhs.x_;
    871  ret.y_ = -x_ * rhs.z_ + y_ * rhs.w_ + z_ * rhs.x_ + w_ * rhs.y_;
    872  ret.z_ = x_ * rhs.y_ - y_ * rhs.x_ + z_ * rhs.w_ + w_ * rhs.z_;
    873  ret.w_ = -x_ * rhs.x_ - y_ * rhs.y_ - z_ * rhs.z_ + w_ * rhs.w_;
    874  *this = ret;
    875  return *this;
    876  }
    877 
    878  Quaternion Conjugate() {
    879  x_ = -x_;
    880  y_ = -y_;
    881  z_ = -z_;
    882  return *this;
    883  }
    884 
    885  // Non destuctive version
    886  Quaternion Conjugated() {
    887  Quaternion ret;
    888  ret.x_ = -x_;
    889  ret.y_ = -y_;
    890  ret.z_ = -z_;
    891  ret.w_ = w_;
    892  return ret;
    893  }
    894 
    895  void ToMatrix(Mat4& mat) {
    896  float x2 = x_ * x_ * 2.0f;
    897  float y2 = y_ * y_ * 2.0f;
    898  float z2 = z_ * z_ * 2.0f;
    899  float xy = x_ * y_ * 2.0f;
    900  float yz = y_ * z_ * 2.0f;
    901  float zx = z_ * x_ * 2.0f;
    902  float xw = x_ * w_ * 2.0f;
    903  float yw = y_ * w_ * 2.0f;
    904  float zw = z_ * w_ * 2.0f;
    905 
    906  mat.f_[0] = 1.0f - y2 - z2;
    907  mat.f_[1] = xy + zw;
    908  mat.f_[2] = zx - yw;
    909  mat.f_[4] = xy - zw;
    910  mat.f_[5] = 1.0f - z2 - x2;
    911  mat.f_[6] = yz + xw;
    912  mat.f_[8] = zx + yw;
    913  mat.f_[9] = yz - xw;
    914  mat.f_[10] = 1.0f - x2 - y2;
    915 
    916  mat.f_[3] = mat.f_[7] = mat.f_[11] = mat.f_[12] = mat.f_[13] = mat.f_[14] =
    917  0.0f;
    918  mat.f_[15] = 1.0f;
    919  }
    920 
    921  void ToMatrixPreserveTranslate(Mat4& mat) {
    922  float x2 = x_ * x_ * 2.0f;
    923  float y2 = y_ * y_ * 2.0f;
    924  float z2 = z_ * z_ * 2.0f;
    925  float xy = x_ * y_ * 2.0f;
    926  float yz = y_ * z_ * 2.0f;
    927  float zx = z_ * x_ * 2.0f;
    928  float xw = x_ * w_ * 2.0f;
    929  float yw = y_ * w_ * 2.0f;
    930  float zw = z_ * w_ * 2.0f;
    931 
    932  mat.f_[0] = 1.0f - y2 - z2;
    933  mat.f_[1] = xy + zw;
    934  mat.f_[2] = zx - yw;
    935  mat.f_[4] = xy - zw;
    936  mat.f_[5] = 1.0f - z2 - x2;
    937  mat.f_[6] = yz + xw;
    938  mat.f_[8] = zx + yw;
    939  mat.f_[9] = yz - xw;
    940  mat.f_[10] = 1.0f - x2 - y2;
    941 
    942  mat.f_[3] = mat.f_[7] = mat.f_[11] = 0.0f;
    943  mat.f_[15] = 1.0f;
    944  }
    945 
    946  static Quaternion RotationAxis(const Vec3 axis, const float angle) {
    947  Quaternion ret;
    948  float s = sinf(angle / 2);
    949  ret.x_ = s * axis.x_;
    950  ret.y_ = s * axis.y_;
    951  ret.z_ = s * axis.z_;
    952  ret.w_ = cosf(angle / 2);
    953  return ret;
    954  }
    955 
    956  void Value(float& fX, float& fY, float& fZ, float& fW) {
    957  fX = x_;
    958  fY = y_;
    959  fZ = z_;
    960  fW = w_;
    961  }
    962 };
    963 
    964 } // namespace ndk_helper
    965 #endif /* VECMATH_H_ */
    Definition: gestureDetector.h:32
    +
    + + + + + diff --git a/doc/html/wglew_8h_source.html b/doc/html/wglew_8h_source.html new file mode 100644 index 00000000..d9df6de7 --- /dev/null +++ b/doc/html/wglew_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/include/GL/wglew.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    wglew.h
    +
    +
    +
    1 /*
    2 ** The OpenGL Extension Wrangler Library
    3 ** Copyright (C) 2008-2017, Nigel Stewart <nigels[]users sourceforge net>
    4 ** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
    5 ** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
    6 ** Copyright (C) 2002, Lev Povalahev
    7 ** All rights reserved.
    8 **
    9 ** Redistribution and use in source and binary forms, with or without
    10 ** modification, are permitted provided that the following conditions are met:
    11 **
    12 ** * Redistributions of source code must retain the above copyright notice,
    13 ** this list of conditions and the following disclaimer.
    14 ** * Redistributions in binary form must reproduce the above copyright notice,
    15 ** this list of conditions and the following disclaimer in the documentation
    16 ** and/or other materials provided with the distribution.
    17 ** * The name of the author may be used to endorse or promote products
    18 ** derived from this software without specific prior written permission.
    19 **
    20 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    21 ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    22 ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    23 ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    24 ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    25 ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    26 ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    27 ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    28 ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    29 ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    30 ** THE POSSIBILITY OF SUCH DAMAGE.
    31 */
    32 
    33 /*
    34 ** Copyright (c) 2007 The Khronos Group Inc.
    35 **
    36 ** Permission is hereby granted, free of charge, to any person obtaining a
    37 ** copy of this software and/or associated documentation files (the
    38 ** "Materials"), to deal in the Materials without restriction, including
    39 ** without limitation the rights to use, copy, modify, merge, publish,
    40 ** distribute, sublicense, and/or sell copies of the Materials, and to
    41 ** permit persons to whom the Materials are furnished to do so, subject to
    42 ** the following conditions:
    43 **
    44 ** The above copyright notice and this permission notice shall be included
    45 ** in all copies or substantial portions of the Materials.
    46 **
    47 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    48 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    49 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    50 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    51 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
    52 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    53 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
    54 */
    55 
    56 #ifndef __wglew_h__
    57 #define __wglew_h__
    58 #define __WGLEW_H__
    59 
    60 #ifdef __wglext_h_
    61 #error wglext.h included before wglew.h
    62 #endif
    63 
    64 #define __wglext_h_
    65 
    66 #if !defined(WINAPI)
    67 # ifndef WIN32_LEAN_AND_MEAN
    68 # define WIN32_LEAN_AND_MEAN 1
    69 # endif
    70 #include <windows.h>
    71 # undef WIN32_LEAN_AND_MEAN
    72 #endif
    73 
    74 /*
    75  * GLEW_STATIC needs to be set when using the static version.
    76  * GLEW_BUILD is set when building the DLL version.
    77  */
    78 #ifdef GLEW_STATIC
    79 # define GLEWAPI extern
    80 #else
    81 # ifdef GLEW_BUILD
    82 # define GLEWAPI extern __declspec(dllexport)
    83 # else
    84 # define GLEWAPI extern __declspec(dllimport)
    85 # endif
    86 #endif
    87 
    88 #ifdef __cplusplus
    89 extern "C" {
    90 #endif
    91 
    92 /* -------------------------- WGL_3DFX_multisample ------------------------- */
    93 
    94 #ifndef WGL_3DFX_multisample
    95 #define WGL_3DFX_multisample 1
    96 
    97 #define WGL_SAMPLE_BUFFERS_3DFX 0x2060
    98 #define WGL_SAMPLES_3DFX 0x2061
    99 
    100 #define WGLEW_3DFX_multisample WGLEW_GET_VAR(__WGLEW_3DFX_multisample)
    101 
    102 #endif /* WGL_3DFX_multisample */
    103 
    104 /* ------------------------- WGL_3DL_stereo_control ------------------------ */
    105 
    106 #ifndef WGL_3DL_stereo_control
    107 #define WGL_3DL_stereo_control 1
    108 
    109 #define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055
    110 #define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056
    111 #define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057
    112 #define WGL_STEREO_POLARITY_INVERT_3DL 0x2058
    113 
    114 typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState);
    115 
    116 #define wglSetStereoEmitterState3DL WGLEW_GET_FUN(__wglewSetStereoEmitterState3DL)
    117 
    118 #define WGLEW_3DL_stereo_control WGLEW_GET_VAR(__WGLEW_3DL_stereo_control)
    119 
    120 #endif /* WGL_3DL_stereo_control */
    121 
    122 /* ------------------------ WGL_AMD_gpu_association ------------------------ */
    123 
    124 #ifndef WGL_AMD_gpu_association
    125 #define WGL_AMD_gpu_association 1
    126 
    127 #define WGL_GPU_VENDOR_AMD 0x1F00
    128 #define WGL_GPU_RENDERER_STRING_AMD 0x1F01
    129 #define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
    130 #define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
    131 #define WGL_GPU_RAM_AMD 0x21A3
    132 #define WGL_GPU_CLOCK_AMD 0x21A4
    133 #define WGL_GPU_NUM_PIPES_AMD 0x21A5
    134 #define WGL_GPU_NUM_SIMD_AMD 0x21A6
    135 #define WGL_GPU_NUM_RB_AMD 0x21A7
    136 #define WGL_GPU_NUM_SPI_AMD 0x21A8
    137 
    138 typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
    139 typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id);
    140 typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int* attribList);
    141 typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc);
    142 typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc);
    143 typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void);
    144 typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT* ids);
    145 typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, INT property, GLenum dataType, UINT size, void* data);
    146 typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc);
    147 
    148 #define wglBlitContextFramebufferAMD WGLEW_GET_FUN(__wglewBlitContextFramebufferAMD)
    149 #define wglCreateAssociatedContextAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAMD)
    150 #define wglCreateAssociatedContextAttribsAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAttribsAMD)
    151 #define wglDeleteAssociatedContextAMD WGLEW_GET_FUN(__wglewDeleteAssociatedContextAMD)
    152 #define wglGetContextGPUIDAMD WGLEW_GET_FUN(__wglewGetContextGPUIDAMD)
    153 #define wglGetCurrentAssociatedContextAMD WGLEW_GET_FUN(__wglewGetCurrentAssociatedContextAMD)
    154 #define wglGetGPUIDsAMD WGLEW_GET_FUN(__wglewGetGPUIDsAMD)
    155 #define wglGetGPUInfoAMD WGLEW_GET_FUN(__wglewGetGPUInfoAMD)
    156 #define wglMakeAssociatedContextCurrentAMD WGLEW_GET_FUN(__wglewMakeAssociatedContextCurrentAMD)
    157 
    158 #define WGLEW_AMD_gpu_association WGLEW_GET_VAR(__WGLEW_AMD_gpu_association)
    159 
    160 #endif /* WGL_AMD_gpu_association */
    161 
    162 /* ------------------------- WGL_ARB_buffer_region ------------------------- */
    163 
    164 #ifndef WGL_ARB_buffer_region
    165 #define WGL_ARB_buffer_region 1
    166 
    167 #define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
    168 #define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002
    169 #define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004
    170 #define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008
    171 
    172 typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType);
    173 typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion);
    174 typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
    175 typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height);
    176 
    177 #define wglCreateBufferRegionARB WGLEW_GET_FUN(__wglewCreateBufferRegionARB)
    178 #define wglDeleteBufferRegionARB WGLEW_GET_FUN(__wglewDeleteBufferRegionARB)
    179 #define wglRestoreBufferRegionARB WGLEW_GET_FUN(__wglewRestoreBufferRegionARB)
    180 #define wglSaveBufferRegionARB WGLEW_GET_FUN(__wglewSaveBufferRegionARB)
    181 
    182 #define WGLEW_ARB_buffer_region WGLEW_GET_VAR(__WGLEW_ARB_buffer_region)
    183 
    184 #endif /* WGL_ARB_buffer_region */
    185 
    186 /* --------------------- WGL_ARB_context_flush_control --------------------- */
    187 
    188 #ifndef WGL_ARB_context_flush_control
    189 #define WGL_ARB_context_flush_control 1
    190 
    191 #define WGLEW_ARB_context_flush_control WGLEW_GET_VAR(__WGLEW_ARB_context_flush_control)
    192 
    193 #endif /* WGL_ARB_context_flush_control */
    194 
    195 /* ------------------------- WGL_ARB_create_context ------------------------ */
    196 
    197 #ifndef WGL_ARB_create_context
    198 #define WGL_ARB_create_context 1
    199 
    200 #define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001
    201 #define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
    202 #define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
    203 #define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
    204 #define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
    205 #define WGL_CONTEXT_FLAGS_ARB 0x2094
    206 #define ERROR_INVALID_VERSION_ARB 0x2095
    207 #define ERROR_INVALID_PROFILE_ARB 0x2096
    208 
    209 typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int* attribList);
    210 
    211 #define wglCreateContextAttribsARB WGLEW_GET_FUN(__wglewCreateContextAttribsARB)
    212 
    213 #define WGLEW_ARB_create_context WGLEW_GET_VAR(__WGLEW_ARB_create_context)
    214 
    215 #endif /* WGL_ARB_create_context */
    216 
    217 /* -------------------- WGL_ARB_create_context_no_error -------------------- */
    218 
    219 #ifndef WGL_ARB_create_context_no_error
    220 #define WGL_ARB_create_context_no_error 1
    221 
    222 #define WGLEW_ARB_create_context_no_error WGLEW_GET_VAR(__WGLEW_ARB_create_context_no_error)
    223 
    224 #endif /* WGL_ARB_create_context_no_error */
    225 
    226 /* --------------------- WGL_ARB_create_context_profile -------------------- */
    227 
    228 #ifndef WGL_ARB_create_context_profile
    229 #define WGL_ARB_create_context_profile 1
    230 
    231 #define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
    232 #define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
    233 #define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
    234 
    235 #define WGLEW_ARB_create_context_profile WGLEW_GET_VAR(__WGLEW_ARB_create_context_profile)
    236 
    237 #endif /* WGL_ARB_create_context_profile */
    238 
    239 /* ------------------- WGL_ARB_create_context_robustness ------------------- */
    240 
    241 #ifndef WGL_ARB_create_context_robustness
    242 #define WGL_ARB_create_context_robustness 1
    243 
    244 #define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
    245 #define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
    246 #define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
    247 #define WGL_NO_RESET_NOTIFICATION_ARB 0x8261
    248 
    249 #define WGLEW_ARB_create_context_robustness WGLEW_GET_VAR(__WGLEW_ARB_create_context_robustness)
    250 
    251 #endif /* WGL_ARB_create_context_robustness */
    252 
    253 /* ----------------------- WGL_ARB_extensions_string ----------------------- */
    254 
    255 #ifndef WGL_ARB_extensions_string
    256 #define WGL_ARB_extensions_string 1
    257 
    258 typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
    259 
    260 #define wglGetExtensionsStringARB WGLEW_GET_FUN(__wglewGetExtensionsStringARB)
    261 
    262 #define WGLEW_ARB_extensions_string WGLEW_GET_VAR(__WGLEW_ARB_extensions_string)
    263 
    264 #endif /* WGL_ARB_extensions_string */
    265 
    266 /* ------------------------ WGL_ARB_framebuffer_sRGB ----------------------- */
    267 
    268 #ifndef WGL_ARB_framebuffer_sRGB
    269 #define WGL_ARB_framebuffer_sRGB 1
    270 
    271 #define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
    272 
    273 #define WGLEW_ARB_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_ARB_framebuffer_sRGB)
    274 
    275 #endif /* WGL_ARB_framebuffer_sRGB */
    276 
    277 /* ----------------------- WGL_ARB_make_current_read ----------------------- */
    278 
    279 #ifndef WGL_ARB_make_current_read
    280 #define WGL_ARB_make_current_read 1
    281 
    282 #define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
    283 #define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
    284 
    285 typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (VOID);
    286 typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
    287 
    288 #define wglGetCurrentReadDCARB WGLEW_GET_FUN(__wglewGetCurrentReadDCARB)
    289 #define wglMakeContextCurrentARB WGLEW_GET_FUN(__wglewMakeContextCurrentARB)
    290 
    291 #define WGLEW_ARB_make_current_read WGLEW_GET_VAR(__WGLEW_ARB_make_current_read)
    292 
    293 #endif /* WGL_ARB_make_current_read */
    294 
    295 /* -------------------------- WGL_ARB_multisample -------------------------- */
    296 
    297 #ifndef WGL_ARB_multisample
    298 #define WGL_ARB_multisample 1
    299 
    300 #define WGL_SAMPLE_BUFFERS_ARB 0x2041
    301 #define WGL_SAMPLES_ARB 0x2042
    302 
    303 #define WGLEW_ARB_multisample WGLEW_GET_VAR(__WGLEW_ARB_multisample)
    304 
    305 #endif /* WGL_ARB_multisample */
    306 
    307 /* ---------------------------- WGL_ARB_pbuffer ---------------------------- */
    308 
    309 #ifndef WGL_ARB_pbuffer
    310 #define WGL_ARB_pbuffer 1
    311 
    312 #define WGL_DRAW_TO_PBUFFER_ARB 0x202D
    313 #define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
    314 #define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
    315 #define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
    316 #define WGL_PBUFFER_LARGEST_ARB 0x2033
    317 #define WGL_PBUFFER_WIDTH_ARB 0x2034
    318 #define WGL_PBUFFER_HEIGHT_ARB 0x2035
    319 #define WGL_PBUFFER_LOST_ARB 0x2036
    320 
    321 DECLARE_HANDLE(HPBUFFERARB);
    322 
    323 typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList);
    324 typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer);
    325 typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer);
    326 typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int* piValue);
    327 typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
    328 
    329 #define wglCreatePbufferARB WGLEW_GET_FUN(__wglewCreatePbufferARB)
    330 #define wglDestroyPbufferARB WGLEW_GET_FUN(__wglewDestroyPbufferARB)
    331 #define wglGetPbufferDCARB WGLEW_GET_FUN(__wglewGetPbufferDCARB)
    332 #define wglQueryPbufferARB WGLEW_GET_FUN(__wglewQueryPbufferARB)
    333 #define wglReleasePbufferDCARB WGLEW_GET_FUN(__wglewReleasePbufferDCARB)
    334 
    335 #define WGLEW_ARB_pbuffer WGLEW_GET_VAR(__WGLEW_ARB_pbuffer)
    336 
    337 #endif /* WGL_ARB_pbuffer */
    338 
    339 /* -------------------------- WGL_ARB_pixel_format ------------------------- */
    340 
    341 #ifndef WGL_ARB_pixel_format
    342 #define WGL_ARB_pixel_format 1
    343 
    344 #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
    345 #define WGL_DRAW_TO_WINDOW_ARB 0x2001
    346 #define WGL_DRAW_TO_BITMAP_ARB 0x2002
    347 #define WGL_ACCELERATION_ARB 0x2003
    348 #define WGL_NEED_PALETTE_ARB 0x2004
    349 #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
    350 #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
    351 #define WGL_SWAP_METHOD_ARB 0x2007
    352 #define WGL_NUMBER_OVERLAYS_ARB 0x2008
    353 #define WGL_NUMBER_UNDERLAYS_ARB 0x2009
    354 #define WGL_TRANSPARENT_ARB 0x200A
    355 #define WGL_SHARE_DEPTH_ARB 0x200C
    356 #define WGL_SHARE_STENCIL_ARB 0x200D
    357 #define WGL_SHARE_ACCUM_ARB 0x200E
    358 #define WGL_SUPPORT_GDI_ARB 0x200F
    359 #define WGL_SUPPORT_OPENGL_ARB 0x2010
    360 #define WGL_DOUBLE_BUFFER_ARB 0x2011
    361 #define WGL_STEREO_ARB 0x2012
    362 #define WGL_PIXEL_TYPE_ARB 0x2013
    363 #define WGL_COLOR_BITS_ARB 0x2014
    364 #define WGL_RED_BITS_ARB 0x2015
    365 #define WGL_RED_SHIFT_ARB 0x2016
    366 #define WGL_GREEN_BITS_ARB 0x2017
    367 #define WGL_GREEN_SHIFT_ARB 0x2018
    368 #define WGL_BLUE_BITS_ARB 0x2019
    369 #define WGL_BLUE_SHIFT_ARB 0x201A
    370 #define WGL_ALPHA_BITS_ARB 0x201B
    371 #define WGL_ALPHA_SHIFT_ARB 0x201C
    372 #define WGL_ACCUM_BITS_ARB 0x201D
    373 #define WGL_ACCUM_RED_BITS_ARB 0x201E
    374 #define WGL_ACCUM_GREEN_BITS_ARB 0x201F
    375 #define WGL_ACCUM_BLUE_BITS_ARB 0x2020
    376 #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
    377 #define WGL_DEPTH_BITS_ARB 0x2022
    378 #define WGL_STENCIL_BITS_ARB 0x2023
    379 #define WGL_AUX_BUFFERS_ARB 0x2024
    380 #define WGL_NO_ACCELERATION_ARB 0x2025
    381 #define WGL_GENERIC_ACCELERATION_ARB 0x2026
    382 #define WGL_FULL_ACCELERATION_ARB 0x2027
    383 #define WGL_SWAP_EXCHANGE_ARB 0x2028
    384 #define WGL_SWAP_COPY_ARB 0x2029
    385 #define WGL_SWAP_UNDEFINED_ARB 0x202A
    386 #define WGL_TYPE_RGBA_ARB 0x202B
    387 #define WGL_TYPE_COLORINDEX_ARB 0x202C
    388 #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
    389 #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
    390 #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
    391 #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
    392 #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
    393 
    394 typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
    395 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT *pfValues);
    396 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int *piValues);
    397 
    398 #define wglChoosePixelFormatARB WGLEW_GET_FUN(__wglewChoosePixelFormatARB)
    399 #define wglGetPixelFormatAttribfvARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvARB)
    400 #define wglGetPixelFormatAttribivARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribivARB)
    401 
    402 #define WGLEW_ARB_pixel_format WGLEW_GET_VAR(__WGLEW_ARB_pixel_format)
    403 
    404 #endif /* WGL_ARB_pixel_format */
    405 
    406 /* ----------------------- WGL_ARB_pixel_format_float ---------------------- */
    407 
    408 #ifndef WGL_ARB_pixel_format_float
    409 #define WGL_ARB_pixel_format_float 1
    410 
    411 #define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
    412 
    413 #define WGLEW_ARB_pixel_format_float WGLEW_GET_VAR(__WGLEW_ARB_pixel_format_float)
    414 
    415 #endif /* WGL_ARB_pixel_format_float */
    416 
    417 /* ------------------------- WGL_ARB_render_texture ------------------------ */
    418 
    419 #ifndef WGL_ARB_render_texture
    420 #define WGL_ARB_render_texture 1
    421 
    422 #define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070
    423 #define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071
    424 #define WGL_TEXTURE_FORMAT_ARB 0x2072
    425 #define WGL_TEXTURE_TARGET_ARB 0x2073
    426 #define WGL_MIPMAP_TEXTURE_ARB 0x2074
    427 #define WGL_TEXTURE_RGB_ARB 0x2075
    428 #define WGL_TEXTURE_RGBA_ARB 0x2076
    429 #define WGL_NO_TEXTURE_ARB 0x2077
    430 #define WGL_TEXTURE_CUBE_MAP_ARB 0x2078
    431 #define WGL_TEXTURE_1D_ARB 0x2079
    432 #define WGL_TEXTURE_2D_ARB 0x207A
    433 #define WGL_MIPMAP_LEVEL_ARB 0x207B
    434 #define WGL_CUBE_MAP_FACE_ARB 0x207C
    435 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
    436 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
    437 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
    438 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
    439 #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
    440 #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
    441 #define WGL_FRONT_LEFT_ARB 0x2083
    442 #define WGL_FRONT_RIGHT_ARB 0x2084
    443 #define WGL_BACK_LEFT_ARB 0x2085
    444 #define WGL_BACK_RIGHT_ARB 0x2086
    445 #define WGL_AUX0_ARB 0x2087
    446 #define WGL_AUX1_ARB 0x2088
    447 #define WGL_AUX2_ARB 0x2089
    448 #define WGL_AUX3_ARB 0x208A
    449 #define WGL_AUX4_ARB 0x208B
    450 #define WGL_AUX5_ARB 0x208C
    451 #define WGL_AUX6_ARB 0x208D
    452 #define WGL_AUX7_ARB 0x208E
    453 #define WGL_AUX8_ARB 0x208F
    454 #define WGL_AUX9_ARB 0x2090
    455 
    456 typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
    457 typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
    458 typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int* piAttribList);
    459 
    460 #define wglBindTexImageARB WGLEW_GET_FUN(__wglewBindTexImageARB)
    461 #define wglReleaseTexImageARB WGLEW_GET_FUN(__wglewReleaseTexImageARB)
    462 #define wglSetPbufferAttribARB WGLEW_GET_FUN(__wglewSetPbufferAttribARB)
    463 
    464 #define WGLEW_ARB_render_texture WGLEW_GET_VAR(__WGLEW_ARB_render_texture)
    465 
    466 #endif /* WGL_ARB_render_texture */
    467 
    468 /* ---------------- WGL_ARB_robustness_application_isolation --------------- */
    469 
    470 #ifndef WGL_ARB_robustness_application_isolation
    471 #define WGL_ARB_robustness_application_isolation 1
    472 
    473 #define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
    474 
    475 #define WGLEW_ARB_robustness_application_isolation WGLEW_GET_VAR(__WGLEW_ARB_robustness_application_isolation)
    476 
    477 #endif /* WGL_ARB_robustness_application_isolation */
    478 
    479 /* ---------------- WGL_ARB_robustness_share_group_isolation --------------- */
    480 
    481 #ifndef WGL_ARB_robustness_share_group_isolation
    482 #define WGL_ARB_robustness_share_group_isolation 1
    483 
    484 #define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
    485 
    486 #define WGLEW_ARB_robustness_share_group_isolation WGLEW_GET_VAR(__WGLEW_ARB_robustness_share_group_isolation)
    487 
    488 #endif /* WGL_ARB_robustness_share_group_isolation */
    489 
    490 /* ----------------------- WGL_ATI_pixel_format_float ---------------------- */
    491 
    492 #ifndef WGL_ATI_pixel_format_float
    493 #define WGL_ATI_pixel_format_float 1
    494 
    495 #define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0
    496 #define GL_RGBA_FLOAT_MODE_ATI 0x8820
    497 #define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
    498 
    499 #define WGLEW_ATI_pixel_format_float WGLEW_GET_VAR(__WGLEW_ATI_pixel_format_float)
    500 
    501 #endif /* WGL_ATI_pixel_format_float */
    502 
    503 /* -------------------- WGL_ATI_render_texture_rectangle ------------------- */
    504 
    505 #ifndef WGL_ATI_render_texture_rectangle
    506 #define WGL_ATI_render_texture_rectangle 1
    507 
    508 #define WGL_TEXTURE_RECTANGLE_ATI 0x21A5
    509 
    510 #define WGLEW_ATI_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_ATI_render_texture_rectangle)
    511 
    512 #endif /* WGL_ATI_render_texture_rectangle */
    513 
    514 /* --------------------------- WGL_EXT_colorspace -------------------------- */
    515 
    516 #ifndef WGL_EXT_colorspace
    517 #define WGL_EXT_colorspace 1
    518 
    519 #define WGL_COLORSPACE_SRGB_EXT 0x3089
    520 #define WGL_COLORSPACE_LINEAR_EXT 0x308A
    521 #define WGL_COLORSPACE_EXT 0x309D
    522 
    523 #define WGLEW_EXT_colorspace WGLEW_GET_VAR(__WGLEW_EXT_colorspace)
    524 
    525 #endif /* WGL_EXT_colorspace */
    526 
    527 /* ------------------- WGL_EXT_create_context_es2_profile ------------------ */
    528 
    529 #ifndef WGL_EXT_create_context_es2_profile
    530 #define WGL_EXT_create_context_es2_profile 1
    531 
    532 #define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
    533 
    534 #define WGLEW_EXT_create_context_es2_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es2_profile)
    535 
    536 #endif /* WGL_EXT_create_context_es2_profile */
    537 
    538 /* ------------------- WGL_EXT_create_context_es_profile ------------------- */
    539 
    540 #ifndef WGL_EXT_create_context_es_profile
    541 #define WGL_EXT_create_context_es_profile 1
    542 
    543 #define WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004
    544 
    545 #define WGLEW_EXT_create_context_es_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es_profile)
    546 
    547 #endif /* WGL_EXT_create_context_es_profile */
    548 
    549 /* -------------------------- WGL_EXT_depth_float -------------------------- */
    550 
    551 #ifndef WGL_EXT_depth_float
    552 #define WGL_EXT_depth_float 1
    553 
    554 #define WGL_DEPTH_FLOAT_EXT 0x2040
    555 
    556 #define WGLEW_EXT_depth_float WGLEW_GET_VAR(__WGLEW_EXT_depth_float)
    557 
    558 #endif /* WGL_EXT_depth_float */
    559 
    560 /* ---------------------- WGL_EXT_display_color_table ---------------------- */
    561 
    562 #ifndef WGL_EXT_display_color_table
    563 #define WGL_EXT_display_color_table 1
    564 
    565 typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id);
    566 typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id);
    567 typedef void (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id);
    568 typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (GLushort* table, GLuint length);
    569 
    570 #define wglBindDisplayColorTableEXT WGLEW_GET_FUN(__wglewBindDisplayColorTableEXT)
    571 #define wglCreateDisplayColorTableEXT WGLEW_GET_FUN(__wglewCreateDisplayColorTableEXT)
    572 #define wglDestroyDisplayColorTableEXT WGLEW_GET_FUN(__wglewDestroyDisplayColorTableEXT)
    573 #define wglLoadDisplayColorTableEXT WGLEW_GET_FUN(__wglewLoadDisplayColorTableEXT)
    574 
    575 #define WGLEW_EXT_display_color_table WGLEW_GET_VAR(__WGLEW_EXT_display_color_table)
    576 
    577 #endif /* WGL_EXT_display_color_table */
    578 
    579 /* ----------------------- WGL_EXT_extensions_string ----------------------- */
    580 
    581 #ifndef WGL_EXT_extensions_string
    582 #define WGL_EXT_extensions_string 1
    583 
    584 typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void);
    585 
    586 #define wglGetExtensionsStringEXT WGLEW_GET_FUN(__wglewGetExtensionsStringEXT)
    587 
    588 #define WGLEW_EXT_extensions_string WGLEW_GET_VAR(__WGLEW_EXT_extensions_string)
    589 
    590 #endif /* WGL_EXT_extensions_string */
    591 
    592 /* ------------------------ WGL_EXT_framebuffer_sRGB ----------------------- */
    593 
    594 #ifndef WGL_EXT_framebuffer_sRGB
    595 #define WGL_EXT_framebuffer_sRGB 1
    596 
    597 #define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9
    598 
    599 #define WGLEW_EXT_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_EXT_framebuffer_sRGB)
    600 
    601 #endif /* WGL_EXT_framebuffer_sRGB */
    602 
    603 /* ----------------------- WGL_EXT_make_current_read ----------------------- */
    604 
    605 #ifndef WGL_EXT_make_current_read
    606 #define WGL_EXT_make_current_read 1
    607 
    608 #define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
    609 
    610 typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (VOID);
    611 typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
    612 
    613 #define wglGetCurrentReadDCEXT WGLEW_GET_FUN(__wglewGetCurrentReadDCEXT)
    614 #define wglMakeContextCurrentEXT WGLEW_GET_FUN(__wglewMakeContextCurrentEXT)
    615 
    616 #define WGLEW_EXT_make_current_read WGLEW_GET_VAR(__WGLEW_EXT_make_current_read)
    617 
    618 #endif /* WGL_EXT_make_current_read */
    619 
    620 /* -------------------------- WGL_EXT_multisample -------------------------- */
    621 
    622 #ifndef WGL_EXT_multisample
    623 #define WGL_EXT_multisample 1
    624 
    625 #define WGL_SAMPLE_BUFFERS_EXT 0x2041
    626 #define WGL_SAMPLES_EXT 0x2042
    627 
    628 #define WGLEW_EXT_multisample WGLEW_GET_VAR(__WGLEW_EXT_multisample)
    629 
    630 #endif /* WGL_EXT_multisample */
    631 
    632 /* ---------------------------- WGL_EXT_pbuffer ---------------------------- */
    633 
    634 #ifndef WGL_EXT_pbuffer
    635 #define WGL_EXT_pbuffer 1
    636 
    637 #define WGL_DRAW_TO_PBUFFER_EXT 0x202D
    638 #define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E
    639 #define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F
    640 #define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030
    641 #define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031
    642 #define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032
    643 #define WGL_PBUFFER_LARGEST_EXT 0x2033
    644 #define WGL_PBUFFER_WIDTH_EXT 0x2034
    645 #define WGL_PBUFFER_HEIGHT_EXT 0x2035
    646 
    647 DECLARE_HANDLE(HPBUFFEREXT);
    648 
    649 typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList);
    650 typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer);
    651 typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer);
    652 typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int* piValue);
    653 typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC);
    654 
    655 #define wglCreatePbufferEXT WGLEW_GET_FUN(__wglewCreatePbufferEXT)
    656 #define wglDestroyPbufferEXT WGLEW_GET_FUN(__wglewDestroyPbufferEXT)
    657 #define wglGetPbufferDCEXT WGLEW_GET_FUN(__wglewGetPbufferDCEXT)
    658 #define wglQueryPbufferEXT WGLEW_GET_FUN(__wglewQueryPbufferEXT)
    659 #define wglReleasePbufferDCEXT WGLEW_GET_FUN(__wglewReleasePbufferDCEXT)
    660 
    661 #define WGLEW_EXT_pbuffer WGLEW_GET_VAR(__WGLEW_EXT_pbuffer)
    662 
    663 #endif /* WGL_EXT_pbuffer */
    664 
    665 /* -------------------------- WGL_EXT_pixel_format ------------------------- */
    666 
    667 #ifndef WGL_EXT_pixel_format
    668 #define WGL_EXT_pixel_format 1
    669 
    670 #define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000
    671 #define WGL_DRAW_TO_WINDOW_EXT 0x2001
    672 #define WGL_DRAW_TO_BITMAP_EXT 0x2002
    673 #define WGL_ACCELERATION_EXT 0x2003
    674 #define WGL_NEED_PALETTE_EXT 0x2004
    675 #define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005
    676 #define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006
    677 #define WGL_SWAP_METHOD_EXT 0x2007
    678 #define WGL_NUMBER_OVERLAYS_EXT 0x2008
    679 #define WGL_NUMBER_UNDERLAYS_EXT 0x2009
    680 #define WGL_TRANSPARENT_EXT 0x200A
    681 #define WGL_TRANSPARENT_VALUE_EXT 0x200B
    682 #define WGL_SHARE_DEPTH_EXT 0x200C
    683 #define WGL_SHARE_STENCIL_EXT 0x200D
    684 #define WGL_SHARE_ACCUM_EXT 0x200E
    685 #define WGL_SUPPORT_GDI_EXT 0x200F
    686 #define WGL_SUPPORT_OPENGL_EXT 0x2010
    687 #define WGL_DOUBLE_BUFFER_EXT 0x2011
    688 #define WGL_STEREO_EXT 0x2012
    689 #define WGL_PIXEL_TYPE_EXT 0x2013
    690 #define WGL_COLOR_BITS_EXT 0x2014
    691 #define WGL_RED_BITS_EXT 0x2015
    692 #define WGL_RED_SHIFT_EXT 0x2016
    693 #define WGL_GREEN_BITS_EXT 0x2017
    694 #define WGL_GREEN_SHIFT_EXT 0x2018
    695 #define WGL_BLUE_BITS_EXT 0x2019
    696 #define WGL_BLUE_SHIFT_EXT 0x201A
    697 #define WGL_ALPHA_BITS_EXT 0x201B
    698 #define WGL_ALPHA_SHIFT_EXT 0x201C
    699 #define WGL_ACCUM_BITS_EXT 0x201D
    700 #define WGL_ACCUM_RED_BITS_EXT 0x201E
    701 #define WGL_ACCUM_GREEN_BITS_EXT 0x201F
    702 #define WGL_ACCUM_BLUE_BITS_EXT 0x2020
    703 #define WGL_ACCUM_ALPHA_BITS_EXT 0x2021
    704 #define WGL_DEPTH_BITS_EXT 0x2022
    705 #define WGL_STENCIL_BITS_EXT 0x2023
    706 #define WGL_AUX_BUFFERS_EXT 0x2024
    707 #define WGL_NO_ACCELERATION_EXT 0x2025
    708 #define WGL_GENERIC_ACCELERATION_EXT 0x2026
    709 #define WGL_FULL_ACCELERATION_EXT 0x2027
    710 #define WGL_SWAP_EXCHANGE_EXT 0x2028
    711 #define WGL_SWAP_COPY_EXT 0x2029
    712 #define WGL_SWAP_UNDEFINED_EXT 0x202A
    713 #define WGL_TYPE_RGBA_EXT 0x202B
    714 #define WGL_TYPE_COLORINDEX_EXT 0x202C
    715 
    716 typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
    717 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT *pfValues);
    718 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int *piValues);
    719 
    720 #define wglChoosePixelFormatEXT WGLEW_GET_FUN(__wglewChoosePixelFormatEXT)
    721 #define wglGetPixelFormatAttribfvEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvEXT)
    722 #define wglGetPixelFormatAttribivEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribivEXT)
    723 
    724 #define WGLEW_EXT_pixel_format WGLEW_GET_VAR(__WGLEW_EXT_pixel_format)
    725 
    726 #endif /* WGL_EXT_pixel_format */
    727 
    728 /* ------------------- WGL_EXT_pixel_format_packed_float ------------------- */
    729 
    730 #ifndef WGL_EXT_pixel_format_packed_float
    731 #define WGL_EXT_pixel_format_packed_float 1
    732 
    733 #define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
    734 
    735 #define WGLEW_EXT_pixel_format_packed_float WGLEW_GET_VAR(__WGLEW_EXT_pixel_format_packed_float)
    736 
    737 #endif /* WGL_EXT_pixel_format_packed_float */
    738 
    739 /* -------------------------- WGL_EXT_swap_control ------------------------- */
    740 
    741 #ifndef WGL_EXT_swap_control
    742 #define WGL_EXT_swap_control 1
    743 
    744 typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void);
    745 typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);
    746 
    747 #define wglGetSwapIntervalEXT WGLEW_GET_FUN(__wglewGetSwapIntervalEXT)
    748 #define wglSwapIntervalEXT WGLEW_GET_FUN(__wglewSwapIntervalEXT)
    749 
    750 #define WGLEW_EXT_swap_control WGLEW_GET_VAR(__WGLEW_EXT_swap_control)
    751 
    752 #endif /* WGL_EXT_swap_control */
    753 
    754 /* ----------------------- WGL_EXT_swap_control_tear ----------------------- */
    755 
    756 #ifndef WGL_EXT_swap_control_tear
    757 #define WGL_EXT_swap_control_tear 1
    758 
    759 #define WGLEW_EXT_swap_control_tear WGLEW_GET_VAR(__WGLEW_EXT_swap_control_tear)
    760 
    761 #endif /* WGL_EXT_swap_control_tear */
    762 
    763 /* --------------------- WGL_I3D_digital_video_control --------------------- */
    764 
    765 #ifndef WGL_I3D_digital_video_control
    766 #define WGL_I3D_digital_video_control 1
    767 
    768 #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
    769 #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
    770 #define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
    771 #define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
    772 
    773 typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue);
    774 typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue);
    775 
    776 #define wglGetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewGetDigitalVideoParametersI3D)
    777 #define wglSetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewSetDigitalVideoParametersI3D)
    778 
    779 #define WGLEW_I3D_digital_video_control WGLEW_GET_VAR(__WGLEW_I3D_digital_video_control)
    780 
    781 #endif /* WGL_I3D_digital_video_control */
    782 
    783 /* ----------------------------- WGL_I3D_gamma ----------------------------- */
    784 
    785 #ifndef WGL_I3D_gamma
    786 #define WGL_I3D_gamma 1
    787 
    788 #define WGL_GAMMA_TABLE_SIZE_I3D 0x204E
    789 #define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F
    790 
    791 typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT* puRed, USHORT *puGreen, USHORT *puBlue);
    792 typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue);
    793 typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT* puRed, const USHORT *puGreen, const USHORT *puBlue);
    794 typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue);
    795 
    796 #define wglGetGammaTableI3D WGLEW_GET_FUN(__wglewGetGammaTableI3D)
    797 #define wglGetGammaTableParametersI3D WGLEW_GET_FUN(__wglewGetGammaTableParametersI3D)
    798 #define wglSetGammaTableI3D WGLEW_GET_FUN(__wglewSetGammaTableI3D)
    799 #define wglSetGammaTableParametersI3D WGLEW_GET_FUN(__wglewSetGammaTableParametersI3D)
    800 
    801 #define WGLEW_I3D_gamma WGLEW_GET_VAR(__WGLEW_I3D_gamma)
    802 
    803 #endif /* WGL_I3D_gamma */
    804 
    805 /* ---------------------------- WGL_I3D_genlock ---------------------------- */
    806 
    807 #ifndef WGL_I3D_genlock
    808 #define WGL_I3D_genlock 1
    809 
    810 #define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
    811 #define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045
    812 #define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046
    813 #define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047
    814 #define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
    815 #define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
    816 #define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
    817 #define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
    818 #define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C
    819 
    820 typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC);
    821 typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC);
    822 typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate);
    823 typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay);
    824 typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge);
    825 typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource);
    826 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT* uRate);
    827 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT* uDelay);
    828 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT* uEdge);
    829 typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT* uSource);
    830 typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL* pFlag);
    831 typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* uMaxLineDelay, UINT *uMaxPixelDelay);
    832 
    833 #define wglDisableGenlockI3D WGLEW_GET_FUN(__wglewDisableGenlockI3D)
    834 #define wglEnableGenlockI3D WGLEW_GET_FUN(__wglewEnableGenlockI3D)
    835 #define wglGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGenlockSampleRateI3D)
    836 #define wglGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGenlockSourceDelayI3D)
    837 #define wglGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGenlockSourceEdgeI3D)
    838 #define wglGenlockSourceI3D WGLEW_GET_FUN(__wglewGenlockSourceI3D)
    839 #define wglGetGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGetGenlockSampleRateI3D)
    840 #define wglGetGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGetGenlockSourceDelayI3D)
    841 #define wglGetGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGetGenlockSourceEdgeI3D)
    842 #define wglGetGenlockSourceI3D WGLEW_GET_FUN(__wglewGetGenlockSourceI3D)
    843 #define wglIsEnabledGenlockI3D WGLEW_GET_FUN(__wglewIsEnabledGenlockI3D)
    844 #define wglQueryGenlockMaxSourceDelayI3D WGLEW_GET_FUN(__wglewQueryGenlockMaxSourceDelayI3D)
    845 
    846 #define WGLEW_I3D_genlock WGLEW_GET_VAR(__WGLEW_I3D_genlock)
    847 
    848 #endif /* WGL_I3D_genlock */
    849 
    850 /* -------------------------- WGL_I3D_image_buffer ------------------------- */
    851 
    852 #ifndef WGL_I3D_image_buffer
    853 #define WGL_I3D_image_buffer 1
    854 
    855 #define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001
    856 #define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002
    857 
    858 typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, HANDLE* pEvent, LPVOID *pAddress, DWORD *pSize, UINT count);
    859 typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags);
    860 typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress);
    861 typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, LPVOID* pAddress, UINT count);
    862 
    863 #define wglAssociateImageBufferEventsI3D WGLEW_GET_FUN(__wglewAssociateImageBufferEventsI3D)
    864 #define wglCreateImageBufferI3D WGLEW_GET_FUN(__wglewCreateImageBufferI3D)
    865 #define wglDestroyImageBufferI3D WGLEW_GET_FUN(__wglewDestroyImageBufferI3D)
    866 #define wglReleaseImageBufferEventsI3D WGLEW_GET_FUN(__wglewReleaseImageBufferEventsI3D)
    867 
    868 #define WGLEW_I3D_image_buffer WGLEW_GET_VAR(__WGLEW_I3D_image_buffer)
    869 
    870 #endif /* WGL_I3D_image_buffer */
    871 
    872 /* ------------------------ WGL_I3D_swap_frame_lock ------------------------ */
    873 
    874 #ifndef WGL_I3D_swap_frame_lock
    875 #define WGL_I3D_swap_frame_lock 1
    876 
    877 typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (VOID);
    878 typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (VOID);
    879 typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL* pFlag);
    880 typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL* pFlag);
    881 
    882 #define wglDisableFrameLockI3D WGLEW_GET_FUN(__wglewDisableFrameLockI3D)
    883 #define wglEnableFrameLockI3D WGLEW_GET_FUN(__wglewEnableFrameLockI3D)
    884 #define wglIsEnabledFrameLockI3D WGLEW_GET_FUN(__wglewIsEnabledFrameLockI3D)
    885 #define wglQueryFrameLockMasterI3D WGLEW_GET_FUN(__wglewQueryFrameLockMasterI3D)
    886 
    887 #define WGLEW_I3D_swap_frame_lock WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_lock)
    888 
    889 #endif /* WGL_I3D_swap_frame_lock */
    890 
    891 /* ------------------------ WGL_I3D_swap_frame_usage ----------------------- */
    892 
    893 #ifndef WGL_I3D_swap_frame_usage
    894 #define WGL_I3D_swap_frame_usage 1
    895 
    896 typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void);
    897 typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void);
    898 typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float* pUsage);
    899 typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
    900 
    901 #define wglBeginFrameTrackingI3D WGLEW_GET_FUN(__wglewBeginFrameTrackingI3D)
    902 #define wglEndFrameTrackingI3D WGLEW_GET_FUN(__wglewEndFrameTrackingI3D)
    903 #define wglGetFrameUsageI3D WGLEW_GET_FUN(__wglewGetFrameUsageI3D)
    904 #define wglQueryFrameTrackingI3D WGLEW_GET_FUN(__wglewQueryFrameTrackingI3D)
    905 
    906 #define WGLEW_I3D_swap_frame_usage WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_usage)
    907 
    908 #endif /* WGL_I3D_swap_frame_usage */
    909 
    910 /* --------------------------- WGL_NV_DX_interop --------------------------- */
    911 
    912 #ifndef WGL_NV_DX_interop
    913 #define WGL_NV_DX_interop 1
    914 
    915 #define WGL_ACCESS_READ_ONLY_NV 0x0000
    916 #define WGL_ACCESS_READ_WRITE_NV 0x0001
    917 #define WGL_ACCESS_WRITE_DISCARD_NV 0x0002
    918 
    919 typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice);
    920 typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects);
    921 typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access);
    922 typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void* dxDevice);
    923 typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void* dxObject, GLuint name, GLenum type, GLenum access);
    924 typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void* dxObject, HANDLE shareHandle);
    925 typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects);
    926 typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject);
    927 
    928 #define wglDXCloseDeviceNV WGLEW_GET_FUN(__wglewDXCloseDeviceNV)
    929 #define wglDXLockObjectsNV WGLEW_GET_FUN(__wglewDXLockObjectsNV)
    930 #define wglDXObjectAccessNV WGLEW_GET_FUN(__wglewDXObjectAccessNV)
    931 #define wglDXOpenDeviceNV WGLEW_GET_FUN(__wglewDXOpenDeviceNV)
    932 #define wglDXRegisterObjectNV WGLEW_GET_FUN(__wglewDXRegisterObjectNV)
    933 #define wglDXSetResourceShareHandleNV WGLEW_GET_FUN(__wglewDXSetResourceShareHandleNV)
    934 #define wglDXUnlockObjectsNV WGLEW_GET_FUN(__wglewDXUnlockObjectsNV)
    935 #define wglDXUnregisterObjectNV WGLEW_GET_FUN(__wglewDXUnregisterObjectNV)
    936 
    937 #define WGLEW_NV_DX_interop WGLEW_GET_VAR(__WGLEW_NV_DX_interop)
    938 
    939 #endif /* WGL_NV_DX_interop */
    940 
    941 /* --------------------------- WGL_NV_DX_interop2 -------------------------- */
    942 
    943 #ifndef WGL_NV_DX_interop2
    944 #define WGL_NV_DX_interop2 1
    945 
    946 #define WGLEW_NV_DX_interop2 WGLEW_GET_VAR(__WGLEW_NV_DX_interop2)
    947 
    948 #endif /* WGL_NV_DX_interop2 */
    949 
    950 /* --------------------------- WGL_NV_copy_image --------------------------- */
    951 
    952 #ifndef WGL_NV_copy_image
    953 #define WGL_NV_copy_image 1
    954 
    955 typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
    956 
    957 #define wglCopyImageSubDataNV WGLEW_GET_FUN(__wglewCopyImageSubDataNV)
    958 
    959 #define WGLEW_NV_copy_image WGLEW_GET_VAR(__WGLEW_NV_copy_image)
    960 
    961 #endif /* WGL_NV_copy_image */
    962 
    963 /* ------------------------ WGL_NV_delay_before_swap ----------------------- */
    964 
    965 #ifndef WGL_NV_delay_before_swap
    966 #define WGL_NV_delay_before_swap 1
    967 
    968 typedef BOOL (WINAPI * PFNWGLDELAYBEFORESWAPNVPROC) (HDC hDC, GLfloat seconds);
    969 
    970 #define wglDelayBeforeSwapNV WGLEW_GET_FUN(__wglewDelayBeforeSwapNV)
    971 
    972 #define WGLEW_NV_delay_before_swap WGLEW_GET_VAR(__WGLEW_NV_delay_before_swap)
    973 
    974 #endif /* WGL_NV_delay_before_swap */
    975 
    976 /* -------------------------- WGL_NV_float_buffer -------------------------- */
    977 
    978 #ifndef WGL_NV_float_buffer
    979 #define WGL_NV_float_buffer 1
    980 
    981 #define WGL_FLOAT_COMPONENTS_NV 0x20B0
    982 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
    983 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
    984 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
    985 #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
    986 #define WGL_TEXTURE_FLOAT_R_NV 0x20B5
    987 #define WGL_TEXTURE_FLOAT_RG_NV 0x20B6
    988 #define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7
    989 #define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
    990 
    991 #define WGLEW_NV_float_buffer WGLEW_GET_VAR(__WGLEW_NV_float_buffer)
    992 
    993 #endif /* WGL_NV_float_buffer */
    994 
    995 /* -------------------------- WGL_NV_gpu_affinity -------------------------- */
    996 
    997 #ifndef WGL_NV_gpu_affinity
    998 #define WGL_NV_gpu_affinity 1
    999 
    1000 #define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
    1001 #define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
    1002 
    1003 DECLARE_HANDLE(HGPUNV);
    1004 typedef struct _GPU_DEVICE {
    1005  DWORD cb;
    1006  CHAR DeviceName[32];
    1007  CHAR DeviceString[128];
    1008  DWORD Flags;
    1009  RECT rcVirtualScreen;
    1010 } GPU_DEVICE, *PGPU_DEVICE;
    1011 
    1012 typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList);
    1013 typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc);
    1014 typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
    1015 typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
    1016 typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu);
    1017 
    1018 #define wglCreateAffinityDCNV WGLEW_GET_FUN(__wglewCreateAffinityDCNV)
    1019 #define wglDeleteDCNV WGLEW_GET_FUN(__wglewDeleteDCNV)
    1020 #define wglEnumGpuDevicesNV WGLEW_GET_FUN(__wglewEnumGpuDevicesNV)
    1021 #define wglEnumGpusFromAffinityDCNV WGLEW_GET_FUN(__wglewEnumGpusFromAffinityDCNV)
    1022 #define wglEnumGpusNV WGLEW_GET_FUN(__wglewEnumGpusNV)
    1023 
    1024 #define WGLEW_NV_gpu_affinity WGLEW_GET_VAR(__WGLEW_NV_gpu_affinity)
    1025 
    1026 #endif /* WGL_NV_gpu_affinity */
    1027 
    1028 /* ---------------------- WGL_NV_multisample_coverage ---------------------- */
    1029 
    1030 #ifndef WGL_NV_multisample_coverage
    1031 #define WGL_NV_multisample_coverage 1
    1032 
    1033 #define WGL_COVERAGE_SAMPLES_NV 0x2042
    1034 #define WGL_COLOR_SAMPLES_NV 0x20B9
    1035 
    1036 #define WGLEW_NV_multisample_coverage WGLEW_GET_VAR(__WGLEW_NV_multisample_coverage)
    1037 
    1038 #endif /* WGL_NV_multisample_coverage */
    1039 
    1040 /* -------------------------- WGL_NV_present_video ------------------------- */
    1041 
    1042 #ifndef WGL_NV_present_video
    1043 #define WGL_NV_present_video 1
    1044 
    1045 #define WGL_NUM_VIDEO_SLOTS_NV 0x20F0
    1046 
    1047 DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
    1048 
    1049 typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int* piAttribList);
    1050 typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDc, HVIDEOOUTPUTDEVICENV* phDeviceList);
    1051 typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int* piValue);
    1052 
    1053 #define wglBindVideoDeviceNV WGLEW_GET_FUN(__wglewBindVideoDeviceNV)
    1054 #define wglEnumerateVideoDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoDevicesNV)
    1055 #define wglQueryCurrentContextNV WGLEW_GET_FUN(__wglewQueryCurrentContextNV)
    1056 
    1057 #define WGLEW_NV_present_video WGLEW_GET_VAR(__WGLEW_NV_present_video)
    1058 
    1059 #endif /* WGL_NV_present_video */
    1060 
    1061 /* ---------------------- WGL_NV_render_depth_texture ---------------------- */
    1062 
    1063 #ifndef WGL_NV_render_depth_texture
    1064 #define WGL_NV_render_depth_texture 1
    1065 
    1066 #define WGL_NO_TEXTURE_ARB 0x2077
    1067 #define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3
    1068 #define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
    1069 #define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5
    1070 #define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
    1071 #define WGL_DEPTH_COMPONENT_NV 0x20A7
    1072 
    1073 #define WGLEW_NV_render_depth_texture WGLEW_GET_VAR(__WGLEW_NV_render_depth_texture)
    1074 
    1075 #endif /* WGL_NV_render_depth_texture */
    1076 
    1077 /* -------------------- WGL_NV_render_texture_rectangle -------------------- */
    1078 
    1079 #ifndef WGL_NV_render_texture_rectangle
    1080 #define WGL_NV_render_texture_rectangle 1
    1081 
    1082 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
    1083 #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
    1084 #define WGL_TEXTURE_RECTANGLE_NV 0x20A2
    1085 
    1086 #define WGLEW_NV_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_NV_render_texture_rectangle)
    1087 
    1088 #endif /* WGL_NV_render_texture_rectangle */
    1089 
    1090 /* --------------------------- WGL_NV_swap_group --------------------------- */
    1091 
    1092 #ifndef WGL_NV_swap_group
    1093 #define WGL_NV_swap_group 1
    1094 
    1095 typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier);
    1096 typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group);
    1097 typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint* count);
    1098 typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint* maxGroups, GLuint *maxBarriers);
    1099 typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint* group, GLuint *barrier);
    1100 typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC);
    1101 
    1102 #define wglBindSwapBarrierNV WGLEW_GET_FUN(__wglewBindSwapBarrierNV)
    1103 #define wglJoinSwapGroupNV WGLEW_GET_FUN(__wglewJoinSwapGroupNV)
    1104 #define wglQueryFrameCountNV WGLEW_GET_FUN(__wglewQueryFrameCountNV)
    1105 #define wglQueryMaxSwapGroupsNV WGLEW_GET_FUN(__wglewQueryMaxSwapGroupsNV)
    1106 #define wglQuerySwapGroupNV WGLEW_GET_FUN(__wglewQuerySwapGroupNV)
    1107 #define wglResetFrameCountNV WGLEW_GET_FUN(__wglewResetFrameCountNV)
    1108 
    1109 #define WGLEW_NV_swap_group WGLEW_GET_VAR(__WGLEW_NV_swap_group)
    1110 
    1111 #endif /* WGL_NV_swap_group */
    1112 
    1113 /* ----------------------- WGL_NV_vertex_array_range ----------------------- */
    1114 
    1115 #ifndef WGL_NV_vertex_array_range
    1116 #define WGL_NV_vertex_array_range 1
    1117 
    1118 typedef void * (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority);
    1119 typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer);
    1120 
    1121 #define wglAllocateMemoryNV WGLEW_GET_FUN(__wglewAllocateMemoryNV)
    1122 #define wglFreeMemoryNV WGLEW_GET_FUN(__wglewFreeMemoryNV)
    1123 
    1124 #define WGLEW_NV_vertex_array_range WGLEW_GET_VAR(__WGLEW_NV_vertex_array_range)
    1125 
    1126 #endif /* WGL_NV_vertex_array_range */
    1127 
    1128 /* -------------------------- WGL_NV_video_capture ------------------------- */
    1129 
    1130 #ifndef WGL_NV_video_capture
    1131 #define WGL_NV_video_capture 1
    1132 
    1133 #define WGL_UNIQUE_ID_NV 0x20CE
    1134 #define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
    1135 
    1136 DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
    1137 
    1138 typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
    1139 typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV* phDeviceList);
    1140 typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
    1141 typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int* piValue);
    1142 typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
    1143 
    1144 #define wglBindVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewBindVideoCaptureDeviceNV)
    1145 #define wglEnumerateVideoCaptureDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoCaptureDevicesNV)
    1146 #define wglLockVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewLockVideoCaptureDeviceNV)
    1147 #define wglQueryVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewQueryVideoCaptureDeviceNV)
    1148 #define wglReleaseVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoCaptureDeviceNV)
    1149 
    1150 #define WGLEW_NV_video_capture WGLEW_GET_VAR(__WGLEW_NV_video_capture)
    1151 
    1152 #endif /* WGL_NV_video_capture */
    1153 
    1154 /* -------------------------- WGL_NV_video_output -------------------------- */
    1155 
    1156 #ifndef WGL_NV_video_output
    1157 #define WGL_NV_video_output 1
    1158 
    1159 #define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0
    1160 #define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1
    1161 #define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2
    1162 #define WGL_VIDEO_OUT_COLOR_NV 0x20C3
    1163 #define WGL_VIDEO_OUT_ALPHA_NV 0x20C4
    1164 #define WGL_VIDEO_OUT_DEPTH_NV 0x20C5
    1165 #define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
    1166 #define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
    1167 #define WGL_VIDEO_OUT_FRAME 0x20C8
    1168 #define WGL_VIDEO_OUT_FIELD_1 0x20C9
    1169 #define WGL_VIDEO_OUT_FIELD_2 0x20CA
    1170 #define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB
    1171 #define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC
    1172 
    1173 DECLARE_HANDLE(HPVIDEODEV);
    1174 
    1175 typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
    1176 typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV* hVideoDevice);
    1177 typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
    1178 typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice);
    1179 typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer);
    1180 typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long* pulCounterPbuffer, BOOL bBlock);
    1181 
    1182 #define wglBindVideoImageNV WGLEW_GET_FUN(__wglewBindVideoImageNV)
    1183 #define wglGetVideoDeviceNV WGLEW_GET_FUN(__wglewGetVideoDeviceNV)
    1184 #define wglGetVideoInfoNV WGLEW_GET_FUN(__wglewGetVideoInfoNV)
    1185 #define wglReleaseVideoDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoDeviceNV)
    1186 #define wglReleaseVideoImageNV WGLEW_GET_FUN(__wglewReleaseVideoImageNV)
    1187 #define wglSendPbufferToVideoNV WGLEW_GET_FUN(__wglewSendPbufferToVideoNV)
    1188 
    1189 #define WGLEW_NV_video_output WGLEW_GET_VAR(__WGLEW_NV_video_output)
    1190 
    1191 #endif /* WGL_NV_video_output */
    1192 
    1193 /* -------------------------- WGL_OML_sync_control ------------------------- */
    1194 
    1195 #ifndef WGL_OML_sync_control
    1196 #define WGL_OML_sync_control 1
    1197 
    1198 typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32* numerator, INT32 *denominator);
    1199 typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64* ust, INT64 *msc, INT64 *sbc);
    1200 typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
    1201 typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
    1202 typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64 *msc, INT64 *sbc);
    1203 typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64* ust, INT64 *msc, INT64 *sbc);
    1204 
    1205 #define wglGetMscRateOML WGLEW_GET_FUN(__wglewGetMscRateOML)
    1206 #define wglGetSyncValuesOML WGLEW_GET_FUN(__wglewGetSyncValuesOML)
    1207 #define wglSwapBuffersMscOML WGLEW_GET_FUN(__wglewSwapBuffersMscOML)
    1208 #define wglSwapLayerBuffersMscOML WGLEW_GET_FUN(__wglewSwapLayerBuffersMscOML)
    1209 #define wglWaitForMscOML WGLEW_GET_FUN(__wglewWaitForMscOML)
    1210 #define wglWaitForSbcOML WGLEW_GET_FUN(__wglewWaitForSbcOML)
    1211 
    1212 #define WGLEW_OML_sync_control WGLEW_GET_VAR(__WGLEW_OML_sync_control)
    1213 
    1214 #endif /* WGL_OML_sync_control */
    1215 
    1216 /* ------------------------------------------------------------------------- */
    1217 
    1218 #define WGLEW_FUN_EXPORT GLEW_FUN_EXPORT
    1219 #define WGLEW_VAR_EXPORT GLEW_VAR_EXPORT
    1220 
    1221 WGLEW_FUN_EXPORT PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL;
    1222 
    1223 WGLEW_FUN_EXPORT PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC __wglewBlitContextFramebufferAMD;
    1224 WGLEW_FUN_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC __wglewCreateAssociatedContextAMD;
    1225 WGLEW_FUN_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __wglewCreateAssociatedContextAttribsAMD;
    1226 WGLEW_FUN_EXPORT PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC __wglewDeleteAssociatedContextAMD;
    1227 WGLEW_FUN_EXPORT PFNWGLGETCONTEXTGPUIDAMDPROC __wglewGetContextGPUIDAMD;
    1228 WGLEW_FUN_EXPORT PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC __wglewGetCurrentAssociatedContextAMD;
    1229 WGLEW_FUN_EXPORT PFNWGLGETGPUIDSAMDPROC __wglewGetGPUIDsAMD;
    1230 WGLEW_FUN_EXPORT PFNWGLGETGPUINFOAMDPROC __wglewGetGPUInfoAMD;
    1231 WGLEW_FUN_EXPORT PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __wglewMakeAssociatedContextCurrentAMD;
    1232 
    1233 WGLEW_FUN_EXPORT PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB;
    1234 WGLEW_FUN_EXPORT PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB;
    1235 WGLEW_FUN_EXPORT PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB;
    1236 WGLEW_FUN_EXPORT PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB;
    1237 
    1238 WGLEW_FUN_EXPORT PFNWGLCREATECONTEXTATTRIBSARBPROC __wglewCreateContextAttribsARB;
    1239 
    1240 WGLEW_FUN_EXPORT PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB;
    1241 
    1242 WGLEW_FUN_EXPORT PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB;
    1243 WGLEW_FUN_EXPORT PFNWGLMAKECONTEXTCURRENTARBPROC __wglewMakeContextCurrentARB;
    1244 
    1245 WGLEW_FUN_EXPORT PFNWGLCREATEPBUFFERARBPROC __wglewCreatePbufferARB;
    1246 WGLEW_FUN_EXPORT PFNWGLDESTROYPBUFFERARBPROC __wglewDestroyPbufferARB;
    1247 WGLEW_FUN_EXPORT PFNWGLGETPBUFFERDCARBPROC __wglewGetPbufferDCARB;
    1248 WGLEW_FUN_EXPORT PFNWGLQUERYPBUFFERARBPROC __wglewQueryPbufferARB;
    1249 WGLEW_FUN_EXPORT PFNWGLRELEASEPBUFFERDCARBPROC __wglewReleasePbufferDCARB;
    1250 
    1251 WGLEW_FUN_EXPORT PFNWGLCHOOSEPIXELFORMATARBPROC __wglewChoosePixelFormatARB;
    1252 WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBFVARBPROC __wglewGetPixelFormatAttribfvARB;
    1253 WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBIVARBPROC __wglewGetPixelFormatAttribivARB;
    1254 
    1255 WGLEW_FUN_EXPORT PFNWGLBINDTEXIMAGEARBPROC __wglewBindTexImageARB;
    1256 WGLEW_FUN_EXPORT PFNWGLRELEASETEXIMAGEARBPROC __wglewReleaseTexImageARB;
    1257 WGLEW_FUN_EXPORT PFNWGLSETPBUFFERATTRIBARBPROC __wglewSetPbufferAttribARB;
    1258 
    1259 WGLEW_FUN_EXPORT PFNWGLBINDDISPLAYCOLORTABLEEXTPROC __wglewBindDisplayColorTableEXT;
    1260 WGLEW_FUN_EXPORT PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC __wglewCreateDisplayColorTableEXT;
    1261 WGLEW_FUN_EXPORT PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC __wglewDestroyDisplayColorTableEXT;
    1262 WGLEW_FUN_EXPORT PFNWGLLOADDISPLAYCOLORTABLEEXTPROC __wglewLoadDisplayColorTableEXT;
    1263 
    1264 WGLEW_FUN_EXPORT PFNWGLGETEXTENSIONSSTRINGEXTPROC __wglewGetExtensionsStringEXT;
    1265 
    1266 WGLEW_FUN_EXPORT PFNWGLGETCURRENTREADDCEXTPROC __wglewGetCurrentReadDCEXT;
    1267 WGLEW_FUN_EXPORT PFNWGLMAKECONTEXTCURRENTEXTPROC __wglewMakeContextCurrentEXT;
    1268 
    1269 WGLEW_FUN_EXPORT PFNWGLCREATEPBUFFEREXTPROC __wglewCreatePbufferEXT;
    1270 WGLEW_FUN_EXPORT PFNWGLDESTROYPBUFFEREXTPROC __wglewDestroyPbufferEXT;
    1271 WGLEW_FUN_EXPORT PFNWGLGETPBUFFERDCEXTPROC __wglewGetPbufferDCEXT;
    1272 WGLEW_FUN_EXPORT PFNWGLQUERYPBUFFEREXTPROC __wglewQueryPbufferEXT;
    1273 WGLEW_FUN_EXPORT PFNWGLRELEASEPBUFFERDCEXTPROC __wglewReleasePbufferDCEXT;
    1274 
    1275 WGLEW_FUN_EXPORT PFNWGLCHOOSEPIXELFORMATEXTPROC __wglewChoosePixelFormatEXT;
    1276 WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBFVEXTPROC __wglewGetPixelFormatAttribfvEXT;
    1277 WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBIVEXTPROC __wglewGetPixelFormatAttribivEXT;
    1278 
    1279 WGLEW_FUN_EXPORT PFNWGLGETSWAPINTERVALEXTPROC __wglewGetSwapIntervalEXT;
    1280 WGLEW_FUN_EXPORT PFNWGLSWAPINTERVALEXTPROC __wglewSwapIntervalEXT;
    1281 
    1282 WGLEW_FUN_EXPORT PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC __wglewGetDigitalVideoParametersI3D;
    1283 WGLEW_FUN_EXPORT PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC __wglewSetDigitalVideoParametersI3D;
    1284 
    1285 WGLEW_FUN_EXPORT PFNWGLGETGAMMATABLEI3DPROC __wglewGetGammaTableI3D;
    1286 WGLEW_FUN_EXPORT PFNWGLGETGAMMATABLEPARAMETERSI3DPROC __wglewGetGammaTableParametersI3D;
    1287 WGLEW_FUN_EXPORT PFNWGLSETGAMMATABLEI3DPROC __wglewSetGammaTableI3D;
    1288 WGLEW_FUN_EXPORT PFNWGLSETGAMMATABLEPARAMETERSI3DPROC __wglewSetGammaTableParametersI3D;
    1289 
    1290 WGLEW_FUN_EXPORT PFNWGLDISABLEGENLOCKI3DPROC __wglewDisableGenlockI3D;
    1291 WGLEW_FUN_EXPORT PFNWGLENABLEGENLOCKI3DPROC __wglewEnableGenlockI3D;
    1292 WGLEW_FUN_EXPORT PFNWGLGENLOCKSAMPLERATEI3DPROC __wglewGenlockSampleRateI3D;
    1293 WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEDELAYI3DPROC __wglewGenlockSourceDelayI3D;
    1294 WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEEDGEI3DPROC __wglewGenlockSourceEdgeI3D;
    1295 WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEI3DPROC __wglewGenlockSourceI3D;
    1296 WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSAMPLERATEI3DPROC __wglewGetGenlockSampleRateI3D;
    1297 WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEDELAYI3DPROC __wglewGetGenlockSourceDelayI3D;
    1298 WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEEDGEI3DPROC __wglewGetGenlockSourceEdgeI3D;
    1299 WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEI3DPROC __wglewGetGenlockSourceI3D;
    1300 WGLEW_FUN_EXPORT PFNWGLISENABLEDGENLOCKI3DPROC __wglewIsEnabledGenlockI3D;
    1301 WGLEW_FUN_EXPORT PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC __wglewQueryGenlockMaxSourceDelayI3D;
    1302 
    1303 WGLEW_FUN_EXPORT PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC __wglewAssociateImageBufferEventsI3D;
    1304 WGLEW_FUN_EXPORT PFNWGLCREATEIMAGEBUFFERI3DPROC __wglewCreateImageBufferI3D;
    1305 WGLEW_FUN_EXPORT PFNWGLDESTROYIMAGEBUFFERI3DPROC __wglewDestroyImageBufferI3D;
    1306 WGLEW_FUN_EXPORT PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC __wglewReleaseImageBufferEventsI3D;
    1307 
    1308 WGLEW_FUN_EXPORT PFNWGLDISABLEFRAMELOCKI3DPROC __wglewDisableFrameLockI3D;
    1309 WGLEW_FUN_EXPORT PFNWGLENABLEFRAMELOCKI3DPROC __wglewEnableFrameLockI3D;
    1310 WGLEW_FUN_EXPORT PFNWGLISENABLEDFRAMELOCKI3DPROC __wglewIsEnabledFrameLockI3D;
    1311 WGLEW_FUN_EXPORT PFNWGLQUERYFRAMELOCKMASTERI3DPROC __wglewQueryFrameLockMasterI3D;
    1312 
    1313 WGLEW_FUN_EXPORT PFNWGLBEGINFRAMETRACKINGI3DPROC __wglewBeginFrameTrackingI3D;
    1314 WGLEW_FUN_EXPORT PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D;
    1315 WGLEW_FUN_EXPORT PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D;
    1316 WGLEW_FUN_EXPORT PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D;
    1317 
    1318 WGLEW_FUN_EXPORT PFNWGLDXCLOSEDEVICENVPROC __wglewDXCloseDeviceNV;
    1319 WGLEW_FUN_EXPORT PFNWGLDXLOCKOBJECTSNVPROC __wglewDXLockObjectsNV;
    1320 WGLEW_FUN_EXPORT PFNWGLDXOBJECTACCESSNVPROC __wglewDXObjectAccessNV;
    1321 WGLEW_FUN_EXPORT PFNWGLDXOPENDEVICENVPROC __wglewDXOpenDeviceNV;
    1322 WGLEW_FUN_EXPORT PFNWGLDXREGISTEROBJECTNVPROC __wglewDXRegisterObjectNV;
    1323 WGLEW_FUN_EXPORT PFNWGLDXSETRESOURCESHAREHANDLENVPROC __wglewDXSetResourceShareHandleNV;
    1324 WGLEW_FUN_EXPORT PFNWGLDXUNLOCKOBJECTSNVPROC __wglewDXUnlockObjectsNV;
    1325 WGLEW_FUN_EXPORT PFNWGLDXUNREGISTEROBJECTNVPROC __wglewDXUnregisterObjectNV;
    1326 
    1327 WGLEW_FUN_EXPORT PFNWGLCOPYIMAGESUBDATANVPROC __wglewCopyImageSubDataNV;
    1328 
    1329 WGLEW_FUN_EXPORT PFNWGLDELAYBEFORESWAPNVPROC __wglewDelayBeforeSwapNV;
    1330 
    1331 WGLEW_FUN_EXPORT PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV;
    1332 WGLEW_FUN_EXPORT PFNWGLDELETEDCNVPROC __wglewDeleteDCNV;
    1333 WGLEW_FUN_EXPORT PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV;
    1334 WGLEW_FUN_EXPORT PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV;
    1335 WGLEW_FUN_EXPORT PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV;
    1336 
    1337 WGLEW_FUN_EXPORT PFNWGLBINDVIDEODEVICENVPROC __wglewBindVideoDeviceNV;
    1338 WGLEW_FUN_EXPORT PFNWGLENUMERATEVIDEODEVICESNVPROC __wglewEnumerateVideoDevicesNV;
    1339 WGLEW_FUN_EXPORT PFNWGLQUERYCURRENTCONTEXTNVPROC __wglewQueryCurrentContextNV;
    1340 
    1341 WGLEW_FUN_EXPORT PFNWGLBINDSWAPBARRIERNVPROC __wglewBindSwapBarrierNV;
    1342 WGLEW_FUN_EXPORT PFNWGLJOINSWAPGROUPNVPROC __wglewJoinSwapGroupNV;
    1343 WGLEW_FUN_EXPORT PFNWGLQUERYFRAMECOUNTNVPROC __wglewQueryFrameCountNV;
    1344 WGLEW_FUN_EXPORT PFNWGLQUERYMAXSWAPGROUPSNVPROC __wglewQueryMaxSwapGroupsNV;
    1345 WGLEW_FUN_EXPORT PFNWGLQUERYSWAPGROUPNVPROC __wglewQuerySwapGroupNV;
    1346 WGLEW_FUN_EXPORT PFNWGLRESETFRAMECOUNTNVPROC __wglewResetFrameCountNV;
    1347 
    1348 WGLEW_FUN_EXPORT PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV;
    1349 WGLEW_FUN_EXPORT PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV;
    1350 
    1351 WGLEW_FUN_EXPORT PFNWGLBINDVIDEOCAPTUREDEVICENVPROC __wglewBindVideoCaptureDeviceNV;
    1352 WGLEW_FUN_EXPORT PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC __wglewEnumerateVideoCaptureDevicesNV;
    1353 WGLEW_FUN_EXPORT PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC __wglewLockVideoCaptureDeviceNV;
    1354 WGLEW_FUN_EXPORT PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC __wglewQueryVideoCaptureDeviceNV;
    1355 WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC __wglewReleaseVideoCaptureDeviceNV;
    1356 
    1357 WGLEW_FUN_EXPORT PFNWGLBINDVIDEOIMAGENVPROC __wglewBindVideoImageNV;
    1358 WGLEW_FUN_EXPORT PFNWGLGETVIDEODEVICENVPROC __wglewGetVideoDeviceNV;
    1359 WGLEW_FUN_EXPORT PFNWGLGETVIDEOINFONVPROC __wglewGetVideoInfoNV;
    1360 WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEODEVICENVPROC __wglewReleaseVideoDeviceNV;
    1361 WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEOIMAGENVPROC __wglewReleaseVideoImageNV;
    1362 WGLEW_FUN_EXPORT PFNWGLSENDPBUFFERTOVIDEONVPROC __wglewSendPbufferToVideoNV;
    1363 
    1364 WGLEW_FUN_EXPORT PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML;
    1365 WGLEW_FUN_EXPORT PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML;
    1366 WGLEW_FUN_EXPORT PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML;
    1367 WGLEW_FUN_EXPORT PFNWGLSWAPLAYERBUFFERSMSCOMLPROC __wglewSwapLayerBuffersMscOML;
    1368 WGLEW_FUN_EXPORT PFNWGLWAITFORMSCOMLPROC __wglewWaitForMscOML;
    1369 WGLEW_FUN_EXPORT PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML;
    1370 WGLEW_VAR_EXPORT GLboolean __WGLEW_3DFX_multisample;
    1371 WGLEW_VAR_EXPORT GLboolean __WGLEW_3DL_stereo_control;
    1372 WGLEW_VAR_EXPORT GLboolean __WGLEW_AMD_gpu_association;
    1373 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_buffer_region;
    1374 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_context_flush_control;
    1375 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context;
    1376 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_no_error;
    1377 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_profile;
    1378 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_robustness;
    1379 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_extensions_string;
    1380 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_framebuffer_sRGB;
    1381 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_make_current_read;
    1382 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_multisample;
    1383 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pbuffer;
    1384 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pixel_format;
    1385 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pixel_format_float;
    1386 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_render_texture;
    1387 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_robustness_application_isolation;
    1388 WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_robustness_share_group_isolation;
    1389 WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_pixel_format_float;
    1390 WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle;
    1391 WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_colorspace;
    1392 WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es2_profile;
    1393 WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es_profile;
    1394 WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_depth_float;
    1395 WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_display_color_table;
    1396 WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_extensions_string;
    1397 WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_framebuffer_sRGB;
    1398 WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_make_current_read;
    1399 WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_multisample;
    1400 WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pbuffer;
    1401 WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pixel_format;
    1402 WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pixel_format_packed_float;
    1403 WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_swap_control;
    1404 WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_swap_control_tear;
    1405 WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_digital_video_control;
    1406 WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_gamma;
    1407 WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_genlock;
    1408 WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_image_buffer;
    1409 WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_swap_frame_lock;
    1410 WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_swap_frame_usage;
    1411 WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_DX_interop;
    1412 WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_DX_interop2;
    1413 WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_copy_image;
    1414 WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_delay_before_swap;
    1415 WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_float_buffer;
    1416 WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_gpu_affinity;
    1417 WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_multisample_coverage;
    1418 WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_present_video;
    1419 WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_depth_texture;
    1420 WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_texture_rectangle;
    1421 WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_swap_group;
    1422 WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_vertex_array_range;
    1423 WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_capture;
    1424 WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_output;
    1425 WGLEW_VAR_EXPORT GLboolean __WGLEW_OML_sync_control;
    1426 /* ------------------------------------------------------------------------- */
    1427 
    1428 GLEWAPI GLenum GLEWAPIENTRY wglewInit ();
    1429 GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name);
    1430 
    1431 #ifndef WGLEW_GET_VAR
    1432 #define WGLEW_GET_VAR(x) (*(const GLboolean*)&x)
    1433 #endif
    1434 
    1435 #ifndef WGLEW_GET_FUN
    1436 #define WGLEW_GET_FUN(x) x
    1437 #endif
    1438 
    1439 GLEWAPI GLboolean GLEWAPIENTRY wglewGetExtension (const char *name);
    1440 
    1441 #ifdef __cplusplus
    1442 }
    1443 #endif
    1444 
    1445 #undef GLEWAPI
    1446 
    1447 #endif /* __wglew_h__ */
    + + + + + diff --git a/doc/html/wglew__head_8h_source.html b/doc/html/wglew__head_8h_source.html new file mode 100644 index 00000000..721861ab --- /dev/null +++ b/doc/html/wglew__head_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/auto/src/wglew_head.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    wglew_head.h
    +
    +
    +
    1 #ifndef __wglew_h__
    2 #define __wglew_h__
    3 #define __WGLEW_H__
    4 
    5 #ifdef __wglext_h_
    6 #error wglext.h included before wglew.h
    7 #endif
    8 
    9 #define __wglext_h_
    10 
    11 #if !defined(WINAPI)
    12 # ifndef WIN32_LEAN_AND_MEAN
    13 # define WIN32_LEAN_AND_MEAN 1
    14 # endif
    15 #include <windows.h>
    16 # undef WIN32_LEAN_AND_MEAN
    17 #endif
    18 
    19 /*
    20  * GLEW_STATIC needs to be set when using the static version.
    21  * GLEW_BUILD is set when building the DLL version.
    22  */
    23 #ifdef GLEW_STATIC
    24 # define GLEWAPI extern
    25 #else
    26 # ifdef GLEW_BUILD
    27 # define GLEWAPI extern __declspec(dllexport)
    28 # else
    29 # define GLEWAPI extern __declspec(dllimport)
    30 # endif
    31 #endif
    32 
    33 #ifdef __cplusplus
    34 extern "C" {
    35 #endif
    36 
    + + + + + diff --git a/doc/html/wglew__mid_8h_source.html b/doc/html/wglew__mid_8h_source.html new file mode 100644 index 00000000..ef5a1692 --- /dev/null +++ b/doc/html/wglew__mid_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/auto/src/wglew_mid.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    wglew_mid.h
    +
    +
    +
    1 /* ------------------------------------------------------------------------- */
    2 
    3 #define WGLEW_FUN_EXPORT GLEW_FUN_EXPORT
    4 #define WGLEW_VAR_EXPORT GLEW_VAR_EXPORT
    + + + + + diff --git a/doc/html/wglew__tail_8h_source.html b/doc/html/wglew__tail_8h_source.html new file mode 100644 index 00000000..7c729247 --- /dev/null +++ b/doc/html/wglew__tail_8h_source.html @@ -0,0 +1,83 @@ + + + + + + + +Diligent Engine API Reference: D:/GitHub/DiligentEngine/DiligentCore/External/glew/auto/src/wglew_tail.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Diligent Engine API Reference +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    wglew_tail.h
    +
    +
    +
    1 /* ------------------------------------------------------------------------- */
    2 
    3 GLEWAPI GLenum GLEWAPIENTRY wglewInit ();
    4 GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name);
    5 
    6 #ifndef WGLEW_GET_VAR
    7 #define WGLEW_GET_VAR(x) (*(const GLboolean*)&x)
    8 #endif
    9 
    10 #ifndef WGLEW_GET_FUN
    11 #define WGLEW_GET_FUN(x) x
    12 #endif
    13 
    14 GLEWAPI GLboolean GLEWAPIENTRY wglewGetExtension (const char *name);
    15 
    16 #ifdef __cplusplus
    17 }
    18 #endif
    19 
    20 #undef GLEWAPI
    21 
    22 #endif /* __wglew_h__ */
    + + + + + -- cgit v1.2.3