Difference between revisions of "GLAPI/glWaitSync"

From OpenGL.org
Jump to: navigation, search
(4.0 API.)
 
m (Bot: Adding better formatting.)
(4 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
== Function Definition ==
 
== Function Definition ==
  
   void '''glWaitSync'''(GLsync ''sync'', GLbitfield ''flags'', GLuint64 ''timeout'');
+
   void '''glWaitSync'''(GLsync {{param|sync}}, GLbitfield {{param|flags}}, GLuint64 {{param|timeout}});
  
 
; sync
 
; sync
 
: Specifies the sync object whose status to wait on.
 
: Specifies the sync object whose status to wait on.
 
; flags
 
; flags
: A bitfield controlling the command flushing behavior. ''flags'' may be zero.
+
: A bitfield controlling the command flushing behavior. {{param|flags}} may be zero.
 
; timeout
 
; timeout
: Specifies the timeout that the server should wait before continuing. ''timeout'' must be {{code|GL_TIMEOUT_IGNORED}}.
+
: Specifies the timeout that the server should wait before continuing. {{param|timeout}} must be {{enum|GL_TIMEOUT_IGNORED}}.
  
 
== Description ==
 
== Description ==
  
'''glWaitSync''' causes the GL server to block and wait until ''sync'' becomes signaled. ''sync'' is the name of an existing sync object upon which to wait. ''flags'' and ''timeout'' are currently not used and must be set to zero and the special value {{code|GL_TIMEOUT_IGNORED}}, respectively('''Note:''' ''flags'' and ''timeout'' are placeholders for anticipated future extensions of sync object capabilities. They must have these reserved values in order that existing code calling '''glWaitSync''' operate properly in the presence of such extensions.). '''glWaitSync''' will always wait no longer than an implementation-dependent timeout. The duration of this timeout in nanoseconds may be queried by calling [[GLAPI/glGet|glGet]] with the parameter {{code|GL_MAX_SERVER_WAIT_TIMEOUT}}. There is currently no way to determine whether '''glWaitSync''' unblocked because the timeout expired or because the sync object being waited on was signaled.
+
'''glWaitSync''' causes the GL server to block and wait until {{param|sync}} becomes signaled. {{param|sync}} is the name of an existing sync object upon which to wait. {{param|flags}} and {{param|timeout}} are currently not used and must be set to zero and the special value {{enum|GL_TIMEOUT_IGNORED}}, respectively('''Note:''' {{param|flags}} and {{param|timeout}} are placeholders for anticipated future extensions of sync object capabilities. They must have these reserved values in order that existing code calling '''glWaitSync''' operate properly in the presence of such extensions.). '''glWaitSync''' will always wait no longer than an implementation-dependent timeout. The duration of this timeout in nanoseconds may be queried by calling {{apifunc|glGet}} with the parameter {{enum|GL_MAX_SERVER_WAIT_TIMEOUT}}. There is currently no way to determine whether '''glWaitSync''' unblocked because the timeout expired or because the sync object being waited on was signaled.
  
 
If an error occurs, '''glWaitSync''' does not cause the GL server to block.
 
If an error occurs, '''glWaitSync''' does not cause the GL server to block.
Line 30: Line 30:
 
== Errors ==
 
== Errors ==
  
{{code|GL_INVALID_OPERATION}} is generated if ''sync'' is not the name of a sync object.
+
{{enum|GL_INVALID_OPERATION}} is generated if {{param|sync}} is not the name of a sync object.
  
{{code|GL_INVALID_VALUE}} is generated if ''flags'' is not zero.
+
{{enum|GL_INVALID_VALUE}} is generated if {{param|flags}} is not zero.
  
{{code|GL_INVALID_VALUE}} is generated if ''timeout'' is not {{code|GL_TIMEOUT_IGNORED}}.
+
{{enum|GL_INVALID_VALUE}} is generated if {{param|timeout}} is not {{enum|GL_TIMEOUT_IGNORED}}.
  
 
== See Also ==
 
== See Also ==
  
[[GLAPI/glFenceSync|glFenceSync]], [[GLAPI/glClientWaitSync|glClientWaitSync]]
+
{{apifunc|glFenceSync}}, {{apifunc|glClientWaitSync}}
  
 
== Copyright ==
 
== Copyright ==
Line 44: Line 44:
 
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/ http://opencontent.org/openpub/].
 
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/ http://opencontent.org/openpub/].
  
[[Category:API Reference 4|WaitSync]]
+
[[Category:Core API Reference|WaitSync]]
 +
[[Category:Core API Ref Synchronization|WaitSync]]

Revision as of 13:30, 29 April 2012

glWaitSync
Core in version 4.5
Core since version 3.2
Core ARB extension ARB_sync

glWaitSync: instruct the GL server to block until the specified sync object becomes signaled

Function Definition

 void glWaitSync(GLsync sync​, GLbitfield flags​, GLuint64 timeout​);
sync
Specifies the sync object whose status to wait on.
flags
A bitfield controlling the command flushing behavior. flags​ may be zero.
timeout
Specifies the timeout that the server should wait before continuing. timeout​ must be GL_TIMEOUT_IGNORED.

Description

glWaitSync causes the GL server to block and wait until sync​ becomes signaled. sync​ is the name of an existing sync object upon which to wait. flags​ and timeout​ are currently not used and must be set to zero and the special value GL_TIMEOUT_IGNORED, respectively(Note: flags​ and timeout​ are placeholders for anticipated future extensions of sync object capabilities. They must have these reserved values in order that existing code calling glWaitSync operate properly in the presence of such extensions.). glWaitSync will always wait no longer than an implementation-dependent timeout. The duration of this timeout in nanoseconds may be queried by calling glGet with the parameter GL_MAX_SERVER_WAIT_TIMEOUT. There is currently no way to determine whether glWaitSync unblocked because the timeout expired or because the sync object being waited on was signaled.

If an error occurs, glWaitSync does not cause the GL server to block.

Notes

glWaitSync is available only if the GL version is 3.2 or higher.

Errors

GL_INVALID_OPERATION is generated if sync​ is not the name of a sync object.

GL_INVALID_VALUE is generated if flags​ is not zero.

GL_INVALID_VALUE is generated if timeout​ is not GL_TIMEOUT_IGNORED.

See Also

glFenceSync, glClientWaitSync

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/.