fence.py :  » Game-2D-3D » PyOpenGL » PyOpenGL-3.0.1 » OpenGL » GL » APPLE » Python Open Source

Home
Python Open Source
1.3.1.2 Python
2.Ajax
3.Aspect Oriented
4.Blog
5.Build
6.Business Application
7.Chart Report
8.Content Management Systems
9.Cryptographic
10.Database
11.Development
12.Editor
13.Email
14.ERP
15.Game 2D 3D
16.GIS
17.GUI
18.IDE
19.Installer
20.IRC
21.Issue Tracker
22.Language Interface
23.Log
24.Math
25.Media Sound Audio
26.Mobile
27.Network
28.Parser
29.PDF
30.Project Management
31.RSS
32.Search
33.Security
34.Template Engines
35.Test
36.UML
37.USB Serial
38.Web Frameworks
39.Web Server
40.Web Services
41.Web Unit
42.Wiki
43.Windows
44.XML
Python Open Source » Game 2D 3D » PyOpenGL 
PyOpenGL » PyOpenGL 3.0.1 » OpenGL » GL » APPLE » fence.py
'''OpenGL extension APPLE.fence

This module customises the behaviour of the 
OpenGL.raw.GL.APPLE.fence to provide a more 
Python-friendly API

Overview (from thespec import 
  
  This extension is provided a finer granularity of synchronizing GL command
  completion than offered by standard OpenGL, which currently offers only two
  mechanisms for synchronization: Flush and Finish. Since Flush merely assures
  the user that the commands complete in a finite (though undetermined) amount
  of time, it is, thus, of only modest utility.  Finish, on the other hand,
  stalls CPU execution until all pending GL commands have completed forcing
  completely synchronous operation, which most often not the desired result.
  This extension offers a middle ground - the ability to "finish" a subset of
  the command stream, and the ability to determine whether a given command has
  completed or not.
  
  This extension introduces the concept of a "fence" to the OpenGL command
  stream with SetFenceAPPLE.  Once the fence is inserted into the command
  stream, it can be tested for its completion with TestFenceAPPLE. Moreover,
  the application may also request a partial Finish up to a particular "fence"
  using the FinishFenceAPPLE command -- that is, all commands prior to the
  fence will be forced to complete until control is returned to the calling
  process.  These new mechanisms allow for synchronization between the host
  CPU and the GPU, which may be accessing the same resources (typically
  memory).
  
  Fences are created and deleted, as are other objects in OpenGL, specifically
  with GenFencesAPPLE and DeleteFencesAPPLE.  The former returns a list of
  unused fence names and the later deletes the provided list of fence names.
  
  In addition to being able to test or finish a fence this extension allows
  testing for other types of completion, including texture objects, vertex
  array objects, and draw pixels. This allows the client to use
  TestObjectAPPLE or FinishObjectAPPLE with FENCE_APPLE, TEXTURE,
  VERTEX_ARRAY, or DRAW_PIXELS_APPLE with the same type of results as
  TestFenceAPPLE and FinishFenceAPPLE.  Specifically, using the FENCE_APPLE
  type is equivalent to calling TestFenceAPPLE or FinishFenceAPPLE with the
  particular fence name.  Using TEXTURE as the object type tests or waits for
  completion of a specific texture, meaning when there are no pending
  rendering commands which use that texture object. Using the VERTEX_ARRAY
  type will test or wait for drawing commands using that particular vertex
  array object name.  Finally, DRAW_PIXELS_APPLE will wait or test for
  completion of all pending DrawPixels commands.  These tests and finishes
  operate with the same limitations and results as test and finish fence.
  
  One use of this extension is in conjunction with APPLE_vertex_array_range to
  determine when graphics hardware has completed accessing vertex data from a import 
  vertex array range.  Once a fence has been tested TRUE or finished, all
  vertex indices issued before the fence must have completed being accessed.
  This ensures that the vertex data memory corresponding to the issued vertex
  indices can be safely modified (assuming no other outstanding vertex indices
  are issued subsequent to the fence).

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/APPLE/fence.txt
'''
from OpenGL import platform,constants,constant,arrays
from OpenGL import extensions,wrapper
from OpenGL.GL import glget
import ctypes
from OpenGL.raw.GL.APPLE.fence import *
### END AUTOGENERATED SECTION
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.