GLAPI/glClientWaitSync: Difference between revisions
m Renaming category: 'GL 4 API Synchronization' to 'Core API Ref Synchronization'. |
m Bot: Adding better formatting. |
||
Line 9: | Line 9: | ||
== Function Definition == | == Function Definition == | ||
GLenum '''glClientWaitSync'''(GLsync | GLenum '''glClientWaitSync'''(GLsync {{param|sync}}, GLbitfield {{param|flags}}, GLuint64 {{param|timeout}}); | ||
; sync | ; sync | ||
: The sync object whose status to wait on. | : The sync object whose status to wait on. | ||
; flags | ; flags | ||
: A bitfield controlling the command flushing behavior. | : A bitfield controlling the command flushing behavior. {{param|flags}} may be {{code|GL_SYNC_FLUSH_COMMANDS_BIT}}. | ||
== Description == | == Description == | ||
'''glClientWaitSync''' causes the client to block and wait for the sync object specified by | '''glClientWaitSync''' causes the client to block and wait for the sync object specified by {{param|sync}} to become signaled. If {{param|sync}} is signaled when '''glClientWaitSync''' is called, '''glClientWaitSync''' returns immediately, otherwise it will block and wait for up to {{param|timeout}} nanoseconds for {{param|sync}} to become signaled. | ||
The return value is one of four status values: * {{code|GL_ALREADY_SIGNALED}} indicates that | The return value is one of four status values: * {{code|GL_ALREADY_SIGNALED}} indicates that {{param|sync}} was signaled at the time that '''glClientWaitSync''' was called. | ||
* {{code|GL_TIMEOUT_EXPIRED}} indicates that at least | * {{code|GL_TIMEOUT_EXPIRED}} indicates that at least {{param|timeout}} nanoseconds passed and {{param|sync}} did not become signaled. | ||
* {{code|GL_CONDITION_SATISFIED}} indicates that | * {{code|GL_CONDITION_SATISFIED}} indicates that {{param|sync}} was signaled before the timeout expired. | ||
* {{code|GL_WAIT_FAILED}} indicates that an error occurred. Additionally, an OpenGL error will be generated. | * {{code|GL_WAIT_FAILED}} indicates that an error occurred. Additionally, an OpenGL error will be generated. | ||
Line 36: | Line 36: | ||
== Errors == | == Errors == | ||
{{code|GL_INVALID_VALUE}} is generated if | {{code|GL_INVALID_VALUE}} is generated if {{param|sync}} is not the name of an existing sync object. | ||
{{code|GL_INVALID_VALUE}} is generated if | {{code|GL_INVALID_VALUE}} is generated if {{param|flags}} contains any unsupported flag. | ||
== See Also == | == See Also == | ||
{{apifunc|glFenceSync}}, {{apifunc|glIsSync}}{{apifunc|glWaitSync}} | |||
== Copyright == | == Copyright == |
Revision as of 01:14, 29 April 2012
Core in version | 4.6 | |
---|---|---|
Core since version | 3.2 | |
Core ARB extension | ARB_sync |
glClientWaitSync: block and wait for a sync object to become signaled
Function Definition
GLenum glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
- sync
- The sync object whose status to wait on.
- flags
- A bitfield controlling the command flushing behavior. flags may be GL_SYNC_FLUSH_COMMANDS_BIT.
Description
glClientWaitSync causes the client to block and wait for the sync object specified by sync to become signaled. If sync is signaled when glClientWaitSync is called, glClientWaitSync returns immediately, otherwise it will block and wait for up to timeout nanoseconds for sync to become signaled.
The return value is one of four status values: * GL_ALREADY_SIGNALED indicates that sync was signaled at the time that glClientWaitSync was called.
- GL_TIMEOUT_EXPIRED indicates that at least timeout nanoseconds passed and sync did not become signaled.
- GL_CONDITION_SATISFIED indicates that sync was signaled before the timeout expired.
- GL_WAIT_FAILED indicates that an error occurred. Additionally, an OpenGL error will be generated.
Notes
glClientWaitSync is available only if the GL version is 3.2 or greater.
Errors
GL_INVALID_VALUE is generated if sync is not the name of an existing sync object.
GL_INVALID_VALUE is generated if flags contains any unsupported flag.
See Also
glFenceSync, glIsSyncglWaitSync
Copyright
Copyright © 2010 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.