This class specifies OS wrappers for dealing with the framebuffer semaphore and the VSYNC signal.
|Release the framebuffer semaphore.|
|Release the framebuffer semaphore in a way that is safe in interrupt context.|
|Initialize framebuffer semaphore and queue/mutex for VSYNC signal.|
|This function checks if a VSync occurred after last rendering.|
|Signal that the rendering of the frame has completed.|
|Signal that a VSYNC has occurred.|
|Take the framebuffer semaphore.|
|A function that causes executing task to sleep for a number of milliseconds.|
|Attempt to obtain the framebuffer semaphore.|
|This function blocks until a VSYNC occurs.|
|static void giveFrameBufferSemaphore||(||)|
Release the framebuffer semaphore.
|static void giveFrameBufferSemaphoreFromISR||(||)|
Release the framebuffer semaphore in a way that is safe in interrupt context.
Called from ISR.
|static void initialize||(||)|
Initialize framebuffer semaphore and queue/mutex for VSYNC signal.
|static bool isVSyncAvailable||(||)|
This function checks if a VSync occurred after last rendering.
The function is used in systems that cannot wait in waitForVSync (because they are also checking other event sources.
True if VSync occurred.
signalRenderingDone is typically used together with this function.
|static void signalRenderingDone||(||)|
Signal that the rendering of the frame has completed.
Used by some systems to avoid using any previous vsync.
|static void signalVSync||(||)|
Signal that a VSYNC has occurred.
Should make the vsync queue/mutex available.
This function is called from an ISR, and should (depending on OS) trigger a scheduling.
|static void takeFrameBufferSemaphore||(||)|
Take the framebuffer semaphore.
Blocks until semaphore is available.
|static void taskDelay||(||uint16_t||ms||)|
A function that causes executing task to sleep for a number of milliseconds.
This function is OPTIONAL. It is only used by the TouchGFX in the case of a specific frame refresh strategy (REFRESH_STRATEGY_OPTIM_SINGLE_BUFFER_TFT_CTRL). Due to backwards compatibility, in order for this function to be usable by the HAL the function must be explicitly registered: hal.registerTaskDelayFunction(&OSWrappers::taskDelay)
|ms||The number of milliseconds to sleep.|
|static void tryTakeFrameBufferSemaphore||(||)|
Attempt to obtain the framebuffer semaphore.
If semaphore is not available, do nothing.
must return immediately! This function does not care who has the taken the semaphore, it only serves to make sure that the semaphore is taken by someone.
|static void waitForVSync||(||)|
This function blocks until a VSYNC occurs.
This function must first clear the mutex/queue and then wait for the next one to occur.