vulkan-3.3: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Core10.Event

Synopsis

Documentation

createEvent :: forall io. MonadIO io => Device -> EventCreateInfo -> ("allocator" ::: Maybe AllocationCallbacks) -> io Event Source #

vkCreateEvent - Create a new event object

Parameters

  • device is the logical device that creates the event.
  • pCreateInfo is a pointer to a EventCreateInfo structure containing information about how the event is to be created.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.
  • pEvent is a pointer to a handle in which the resulting event object is returned.

Description

When created, the event object is in the unsignaled state.

Valid Usage (Implicit)

  • device must be a valid Device handle
  • pCreateInfo must be a valid pointer to a valid EventCreateInfo structure
  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure
  • pEvent must be a valid pointer to a Event handle

Return Codes

Success
Failure

See Also

AllocationCallbacks, Device, Event, EventCreateInfo

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 first argument. To just extract the pair pass (,) as the first argument.

destroyEvent :: forall io. MonadIO io => Device -> Event -> ("allocator" ::: Maybe AllocationCallbacks) -> io () Source #

vkDestroyEvent - Destroy an event object

Parameters

  • device is the logical device that destroys the event.
  • event is the handle of the event to destroy.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.

Valid Usage

  • All submitted commands that refer to event must have completed execution
  • If AllocationCallbacks were provided when event was created, a compatible set of callbacks must be provided here
  • If no AllocationCallbacks were provided when event was created, pAllocator must be NULL

Valid Usage (Implicit)

  • device must be a valid Device handle
  • If event is not NULL_HANDLE, event must be a valid Event handle
  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure
  • If event is a valid handle, it must have been created, allocated, or retrieved from device

Host Synchronization

  • Host access to event must be externally synchronized

See Also

AllocationCallbacks, Device, Event

getEventStatus :: forall io. MonadIO io => Device -> Event -> io Result Source #

vkGetEventStatus - Retrieve the status of an event object

Parameters

  • device is the logical device that owns the event.
  • event is the handle of the event to query.

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

Success
Failure

See Also

Device, Event

setEvent :: forall io. MonadIO io => Device -> Event -> io () Source #

vkSetEvent - Set an event to signaled state

Parameters

  • device is the logical device that owns the event.
  • event is the event to set.

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 valid Device handle
  • event must be a valid Event handle
  • event must have been created, allocated, or retrieved from device

Host Synchronization

  • Host access to event must be externally synchronized

Return Codes

Success
Failure

See Also

Device, Event

resetEvent :: forall io. MonadIO io => Device -> Event -> io () Source #

vkResetEvent - Reset an event to non-signaled state

Parameters

  • device is the logical device that owns the event.
  • event is the event to reset.

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 a cmdWaitEvents command that is currently executing

Valid Usage (Implicit)

  • device must be a valid Device handle
  • event must be a valid Event handle
  • event must have been created, allocated, or retrieved from device

Host Synchronization

  • Host access to event must be externally synchronized

Return Codes

Success
Failure

See Also

Device, Event

data EventCreateInfo Source #

VkEventCreateInfo - Structure specifying parameters of a newly created event

Valid Usage (Implicit)

See Also

EventCreateFlags, StructureType, createEvent

Constructors

EventCreateInfo 

Fields