Class: Vulkan::Fence
Instance Method Summary
collapse
Methods included from Finalizer
#finalize_with, #hexaddr, included, #to_ptr
Methods included from Checks
#check_result
Constructor Details
#initialize(vk, signaled: false) ⇒ Fence
Returns a new instance of Fence.
6
7
8
9
10
11
12
13
14
15
16
17
|
# File 'lib/vulkan/fence.rb', line 6
def initialize(vk, signaled: false)
@vk = vk
fence_info = VkFenceCreateInfo.malloc
fence_info.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
fence_info.flags = (signaled ? VK_FENCE_CREATE_SIGNALED_BIT : 0)
fence_p = Vulkan.create_value('void *', nil)
check_result @vk.vkCreateFence(@vk.device, fence_info, nil, fence_p)
@handle = fence_p.value
finalize_with @vk, :vkDestroyFence, @vk.device, @handle, nil
@self_p = Vulkan.create_value('void *', nil)
@self_p.value = @handle
end
|
Instance Method Details
#reset ⇒ Object
23
24
25
|
# File 'lib/vulkan/fence.rb', line 23
def reset
@vk.vkResetFences(@vk.device, 1, @self_p)
end
|
#wait ⇒ Object
19
20
21
|
# File 'lib/vulkan/fence.rb', line 19
def wait
@vk.vkWaitForFences(@vk.device, 1, @self_p, VK_TRUE, 0xffffffffffffffff)
end
|
#wait_and_reset ⇒ Object
27
28
29
30
|
# File 'lib/vulkan/fence.rb', line 27
def wait_and_reset
wait
reset
end
|