Top Description Constructors Methods
org.lwjgl.opengl

public Class WGLNVDelayBeforeSwap

extends Object
Class Inheritance
Imports
org.lwjgl.system.*, org.lwjgl.system.windows.WinBase

Native bindings to the WGL_NV_delay_before_swap extension.

For most interactive applications, the standard rendering loop responding to input events on a frame granularity is sufficient. Some more demanding applications may want to exchange performance for the ability to sample input closer to the final frame swap and adjust rendering accordingly. This extension adds functionality to allow the application to wait until a specified time before a swapbuffers command would be able to execute.

Requires OpenGL 2.1.

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static boolean
wglDelayBeforeSwapNV(long
a handle to the DC
hDC
,
float
the delay, in seconds
seconds
)

Blocks the CPU until seconds seconds before a synchronized swap would occur on the window associated with hDC.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

WGLNVDelayBeforeSwapback to summary
protected WGLNVDelayBeforeSwap()

Method Detail

wglDelayBeforeSwapNVback to summary
public static boolean wglDelayBeforeSwapNV(long hDC, float seconds)

Blocks the CPU until seconds seconds before a synchronized swap would occur on the window associated with hDC. It also returns a boolean value equal to WinBase#TRUE when the implementation had to wait for the synchronized swap and WinBase#FALSE otherwise.

The parameter hDC must be a valid device context associated with a graphic adapter. If hDC is not valid, WinBase#GetLastError will return WGL_INVALID_HDC, DelayBeforeSwapNV will return FALSE and will not wait for the swap. If hDC is not associated with a graphic adapter, GetLastError will return ERROR_DC_NOT_FOUND, DelayBeforeSwapNV will return FALSE and will not wait for the swap.

The parameter seconds accepts positive floating point values not larger than the length in seconds of the swap period on the associated window. When buffer swaps are synchronized, the swap period is composed of one or multiple video frame periods. A video frame period is the time required by the monitor to display a full frame of video data. A swap interval set to a value of 2 means that the color buffers will be swapped at most every other video frame. If seconds is smaller than 0, GetLastError will return ERROR_INVALID_DATA, DelayBeforeSwapNV will return FALSE and will not wait for the end of the swap period. If seconds is greater than a swap period, DelayBeforeSwapNV will return immediately without generating any error and the return value will be FALSE.

The application should use a seconds delay large enough to have time to complete its work before the end of the swap period. If seconds is close to 0.0, the application may miss the end of the swap period and it will have to wait an additional swap period before it can swap.

If DelayBeforeSwapNV detects that there is less than seconds seconds before the end of the swap period, it will return immediately and the return value will be FALSE. The implementation will not wait an additional video frame period to have an exact delay of seconds seconds.

If buffer swaps are unsynchronized, DelayBeforeSwapNV will return immediately and the return value will be FALSE. It could happen for multiple reasons, for example if the swap interval is equal to 0, if the window is in a mode switch or if no monitors are active.

Parameters
hDC:long

a handle to the DC

seconds:float

the delay, in seconds

Annotations
@NativeType:BOOL