Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- createEvent :: forall io. MonadIO io => Device -> EventCreateInfo -> ("allocator" ::: Maybe AllocationCallbacks) -> io Event
- withEvent :: forall io r. MonadIO io => Device -> EventCreateInfo -> Maybe AllocationCallbacks -> (io Event -> (Event -> io ()) -> r) -> r
- destroyEvent :: forall io. MonadIO io => Device -> Event -> ("allocator" ::: Maybe AllocationCallbacks) -> io ()
- getEventStatus :: forall io. MonadIO io => Device -> Event -> io Result
- setEvent :: forall io. MonadIO io => Device -> Event -> io ()
- resetEvent :: forall io. MonadIO io => Device -> Event -> io ()
- data EventCreateInfo = EventCreateInfo {}
- newtype Event = Event Word64
- newtype EventCreateFlagBits where
- type EventCreateFlags = EventCreateFlagBits
Documentation
:: forall io. MonadIO io | |
=> Device |
|
-> EventCreateInfo |
|
-> ("allocator" ::: Maybe AllocationCallbacks) |
|
-> io Event |
vkCreateEvent - Create a new event object
Description
When created, the event object is in the unsignaled state.
Valid Usage
- If the
VK_KHR_portability_subset
extension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR
::events
isFALSE
, then the implementation does not support events, andcreateEvent
must not be used.
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
pCreateInfo
must be a valid pointer to a validEventCreateInfo
structure - If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure -
pEvent
must be a valid pointer to aEvent
handle
Return Codes
See Also
withEvent :: forall io r. MonadIO io => Device -> EventCreateInfo -> Maybe AllocationCallbacks -> (io Event -> (Event -> io ()) -> r) -> r Source #
A convenience wrapper to make a compatible pair of calls to
createEvent
and destroyEvent
To ensure that destroyEvent
is always called: pass
bracket
(or the allocate function from your
favourite resource management library) as the last argument.
To just extract the pair pass (,)
as the last argument.
:: forall io. MonadIO io | |
=> Device |
|
-> Event |
|
-> ("allocator" ::: Maybe AllocationCallbacks) |
|
-> io () |
vkDestroyEvent - Destroy an event object
Valid Usage
- If
AllocationCallbacks
were provided whenevent
was created, a compatible set of callbacks must be provided here - If no
AllocationCallbacks
were provided whenevent
was created,pAllocator
must beNULL
Valid Usage (Implicit)
-
device
must be a validDevice
handle
- If
event
is notNULL_HANDLE
,event
must be a validEvent
handle - If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure - If
event
is a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
event
must be externally synchronized
See Also
:: forall io. MonadIO io | |
=> Device |
|
-> Event |
|
-> io Result |
vkGetEventStatus - Retrieve the status of an event object
Description
Upon success, getEventStatus
returns the state of the event object
with the following return codes:
Status | Meaning |
---|---|
EVENT_SET
| The event specified by
event is signaled. |
EVENT_RESET
| The event specified by
event is unsignaled. |
Event Object Status Codes
If a cmdSetEvent
or
cmdResetEvent
command is in a
command buffer that is in the
pending state,
then the value returned by this command may immediately be out of
date.
The state of an event can be updated by the host. The state of the
event is immediately changed, and subsequent calls to getEventStatus
will return the new state. If an event is already in the requested
state, then updating it to the same state has no effect.
Return Codes
See Also
:: forall io. MonadIO io | |
=> Device |
|
-> Event |
|
-> io () |
vkSetEvent - Set an event to signaled state
Description
When setEvent
is executed on the host, it defines an /event signal
operation/ which sets the event to the signaled state.
If event
is already in the signaled state when setEvent
is executed,
then setEvent
has no effect, and no event signal operation occurs.
Valid Usage
-
event
must not have been created withEVENT_CREATE_DEVICE_ONLY_BIT_KHR
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
event
must be a validEvent
handle -
event
must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
event
must be externally synchronized
Return Codes
See Also
:: forall io. MonadIO io | |
=> Device |
|
-> Event |
|
-> io () |
vkResetEvent - Reset an event to non-signaled state
Description
When resetEvent
is executed on the host, it defines an /event unsignal
operation/ which resets the event to the unsignaled state.
If event
is already in the unsignaled state when resetEvent
is
executed, then resetEvent
has no effect, and no event unsignal
operation occurs.
Valid Usage
- There must be an execution
dependency between
resetEvent
and the execution of anycmdWaitEvents
that includesevent
in itspEvents
parameter
- There must be an execution
dependency between
resetEvent
and the execution of anycmdWaitEvents2KHR
that includesevent
in itspEvents
parameter -
event
must not have been created withEVENT_CREATE_DEVICE_ONLY_BIT_KHR
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
event
must be a validEvent
handle -
event
must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
event
must be externally synchronized
Return Codes
See Also
data EventCreateInfo Source #
VkEventCreateInfo - Structure specifying parameters of a newly created event
Valid Usage (Implicit)
See Also
EventCreateInfo | |
|
Instances
VkEvent - Opaque handle to an event object
See Also
cmdResetEvent
,
cmdResetEvent2KHR
,
cmdSetEvent
,
cmdSetEvent2KHR
,
cmdWaitEvents
,
cmdWaitEvents2KHR
,
createEvent
, destroyEvent
,
getEventStatus
, resetEvent
,
setEvent
Instances
Eq Event Source # | |
Ord Event Source # | |
Show Event Source # | |
Storable Event Source # | |
Zero Event Source # | |
Defined in Vulkan.Core10.Handles | |
HasObjectType Event Source # | |
Defined in Vulkan.Core10.Handles objectTypeAndHandle :: Event -> (ObjectType, Word64) Source # | |
IsHandle Event Source # | |
Defined in Vulkan.Core10.Handles |
newtype EventCreateFlagBits Source #
VkEventCreateFlagBits - Event creation flag bits
Description
- VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR specifies that host event commands will not be used with this event.