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 EventCreateFlags = EventCreateFlags Flags
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 (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
-
event
must not be waited on by acmdWaitEvents
command that is currently executing
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
Instances
VkEvent - Opaque handle to an event object
See Also
cmdResetEvent
,
cmdSetEvent
,
cmdWaitEvents
,
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 EventCreateFlags Source #
VkEventCreateFlags - Reserved for future use
Description
EventCreateFlags
is a bitmask type for setting a mask, but is
currently reserved for future use.