Class: Vulkan::SwapchainSurfaceInfo
- Inherits:
-
Hash
- Object
- Hash
- Vulkan::SwapchainSurfaceInfo
- Includes:
- Checks, Conversions
- Defined in:
- lib/vulkan/swapchain_surface_info.rb
Constant Summary
Constants included from Conversions
Conversions::ACCESS_MASK_BITS, Conversions::BORDER_COLORS, Conversions::BUFFER_USAGE_BITS, Conversions::COMPARE_OPS, Conversions::DEPENDENCY_FLAG_BITS, Conversions::DESCRIPTOR_TYPES, Conversions::DYNAMIC_STATES, Conversions::FILTERS, Conversions::FORMAT_FEATURE_BITS, Conversions::IMAGE_ASPECT_BITS, Conversions::IMAGE_CREATE_BITS, Conversions::IMAGE_FORMATS, Conversions::IMAGE_TILING, Conversions::IMAGE_TYPES, Conversions::IMAGE_USAGE_BITS, Conversions::MEMORY_PROPERTIES, Conversions::PIPELINE_STAGE_BITS, Conversions::PRESENT_MODES, Conversions::SAMPLER_ADDRESS_MODES, Conversions::SAMPLER_MIPMAP_MODES, Conversions::SHADER_STAGE_BITS, Conversions::SHARING_MODES, Conversions::SURFACE_TRANSFORMS, Conversions::VERTEX_INPUT_RATES
Instance Attribute Summary collapse
-
#builder ⇒ Object
Returns the value of attribute builder.
Instance Method Summary collapse
- #capabilities ⇒ Object
- #formats ⇒ Object
-
#initialize(instance, physical_device, surface) ⇒ SwapchainSurfaceInfo
constructor
A new instance of SwapchainSurfaceInfo.
- #presentation_modes ⇒ Object
Methods included from Conversions
#array_of_pointers, #array_of_structures, #array_of_uint32s, #bool_to_vk, #buffer_usage_flags_to_syms, #const_to_symbol, #cstr_to_rbstr, #flags_to_symbols, #flags_to_syms, #num_to_samples, #present_mode_to_sym, #queue_family_to_index, #struct_to_hash, #sym_to_blend_factor, #sym_to_blend_op, #sym_to_border_color, #sym_to_color_component_bit, #sym_to_command_buffer_level, #sym_to_command_buffer_usage, #sym_to_compare_op, #sym_to_cull_mode, #sym_to_descriptor_type, #sym_to_dynamic_state, #sym_to_filter, #sym_to_front_face, #sym_to_image_format, #sym_to_image_layout, #sym_to_image_tiling, #sym_to_image_type, #sym_to_index_type, #sym_to_load_op, #sym_to_pipeline_bind_point, #sym_to_polygon_mode, #sym_to_present_mode, #sym_to_sampler_address_mode, #sym_to_sampler_mipmap_mode, #sym_to_samples, #sym_to_sharing_mode, #sym_to_store_op, #sym_to_subpass_contents, #sym_to_topology, #sym_to_val, #sym_to_vertex_input_rate, #syms_to_access_mask, #syms_to_buffer_usage_flags, #syms_to_dependency_flags, #syms_to_descriptor_set_layout_type_flags, #syms_to_flags, #syms_to_format_feature_flags, #syms_to_image_aspect_flags, #syms_to_image_create_flags, #syms_to_image_usage_flags, #syms_to_memory_properties, #syms_to_pipeline_stage_flags, #syms_to_shader_stage_flags, #syms_to_surface_transforms, #vk_make_version, #vk_parse_version
Methods included from Checks
Constructor Details
#initialize(instance, physical_device, surface) ⇒ SwapchainSurfaceInfo
Returns a new instance of SwapchainSurfaceInfo.
8 9 10 11 12 13 14 15 16 |
# File 'lib/vulkan/swapchain_surface_info.rb', line 8 def initialize(instance, physical_device, surface) super() @vk = Vulkan[instance, nil] @physical_device = physical_device @surface = surface merge! capabilities: capabilities, formats: formats, presentation_modes: presentation_modes end |
Instance Attribute Details
#builder ⇒ Object
Returns the value of attribute builder.
6 7 8 |
# File 'lib/vulkan/swapchain_surface_info.rb', line 6 def builder @builder end |
Instance Method Details
#capabilities ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/vulkan/swapchain_surface_info.rb', line 38 def capabilities @capabilities ||= begin capabilities = VkSurfaceCapabilitiesKHR.malloc check_result @vk.vkGetPhysicalDeviceSurfaceCapabilitiesKHR(@physical_device.to_ptr, @surface.to_ptr, capabilities) capabilities = struct_to_hash(capabilities) capabilities[:supported_transforms_flags] = capabilities[:supported_transforms] capabilities[:supported_transforms] = flags_to_symbols(capabilities[:supported_transforms_flags], /^VK_SURFACE_TRANSFORM_(.*?)_BIT/) capabilities[:current_transform_flags] = capabilities[:current_transform] capabilities[:current_transform] = flags_to_symbols(capabilities[:current_transform_flags], /^VK_SURFACE_TRANSFORM_(.*?)_BIT/) capabilities[:supported_composite_alpha_flags] = capabilities[:supported_composite_alpha] capabilities[:supported_composite_alpha] = flags_to_symbols(capabilities[:supported_composite_alpha_flags], /^VK_COMPOSITE_ALPHA_(.*?)_BIT/) capabilities[:supported_usage] = flags_to_symbols(capabilities[:supported_usage_flags], /^VK_IMAGE_USAGE_(.*?)_BIT/) capabilities end end |
#formats ⇒ Object
28 29 30 31 32 33 34 35 36 |
# File 'lib/vulkan/swapchain_surface_info.rb', line 28 def formats @formats ||= begin format_count_p = Vulkan.create_value('uint32_t', 0) check_result @vk.vkGetPhysicalDeviceSurfaceFormatsKHR(@physical_device.to_ptr, @surface.to_ptr, format_count_p, nil) formats_p = Vulkan.struct("formats[#{format_count_p.value}]" => VkSurfaceFormatKHR).malloc check_result @vk.vkGetPhysicalDeviceSurfaceFormatsKHR(@physical_device.to_ptr, @surface.to_ptr, format_count_p, formats_p) formats_p.formats.map { |fmt| struct_to_hash(fmt) } end end |
#presentation_modes ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'lib/vulkan/swapchain_surface_info.rb', line 18 def presentation_modes @presentation_modes ||= begin modes_count_p = Vulkan.create_value('uint32_t', 0) check_result @vk.vkGetPhysicalDeviceSurfacePresentModesKHR(@physical_device.to_ptr, @surface.to_ptr, modes_count_p, nil) modes_p = Vulkan.struct(["VkPresentModeKHR modes[#{modes_count_p.value}]"]).malloc check_result @vk.vkGetPhysicalDeviceSurfacePresentModesKHR(@physical_device.to_ptr, @surface.to_ptr, modes_count_p, modes_p) modes_p.modes.map { |mode| present_mode_to_sym(mode) } end end |