Class: Vulkan::Mock::SwapchainSurfaceInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/vulkan/mock/swapchain_surface_info.rb

Overview

A mock object that you can use in your unit testing. This way you can construct Vulkan-ish data for testing against that doesn’t depend on any underlying hardware. All of the properties of this object are optional, and sane (but arbitary) defaults will be provided for anything omitted.

Constant Summary collapse

DEFAULT_CAPABILITIES =

These values were chosen arbitrarily.

{
  min_image_count: 0,
  max_image_count: 10,
  current_extent: { width: 800, height: 600 },
  min_image_extent: { width: 1, height: 1 },
  max_image_extent: { width: 8192, height: 8192 },
  max_image_array_layers: 128,
  supported_transforms: [ :identity, :rotate_90, :rotate_180,
                          :rotate_270, :horizontal_mirror,
                          :horizontal_mirror_rotate_90,
                          :horizontal_mirror_rotate_180,
                          :horizontal_mirror_rotate_270,
                          :inherit ],
  current_transform: [ :identity ],
  supported_composite_alpha: [ :opaque, :pre_multiplied, :post_multiplied, :inherit ],
  supported_usage: [ :transfer_src, :transfer_dst, :sampled, :storage,
                     :color_attachment, :depth_stencil_attachment,
                     :transient_attachment, :input_attachment ]
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(presentation_modes: [:fifo, :mailbox, :immediate], formats: [{ format: :r8g8b8a8_snorm, color_space: :srgb_nonlinear }], **capabilities) ⇒ SwapchainSurfaceInfo

Returns a new instance of SwapchainSurfaceInfo.



33
34
35
36
37
38
39
# File 'lib/vulkan/mock/swapchain_surface_info.rb', line 33

def initialize(presentation_modes: [:fifo, :mailbox, :immediate],
               formats: [{ format: :r8g8b8a8_snorm, color_space: :srgb_nonlinear }],
               **capabilities)
  @presentation_modes = presentation_modes
  @formats = formats
  @capabilities = DEFAULT_CAPABILITIES.merge(capabilities)
end

Instance Attribute Details

#capabilitiesObject (readonly)

Returns the value of attribute capabilities.



31
32
33
# File 'lib/vulkan/mock/swapchain_surface_info.rb', line 31

def capabilities
  @capabilities
end

#formatsObject (readonly)

Returns the value of attribute formats.



30
31
32
# File 'lib/vulkan/mock/swapchain_surface_info.rb', line 30

def formats
  @formats
end

#presentation_modesObject (readonly)

Returns the value of attribute presentation_modes.



29
30
31
# File 'lib/vulkan/mock/swapchain_surface_info.rb', line 29

def presentation_modes
  @presentation_modes
end