File: fence.i

package info (click to toggle)
pyopengl 2.0.1.08-5.1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 19,484 kB
  • ctags: 9,036
  • sloc: pascal: 64,950; xml: 28,088; ansic: 20,696; python: 19,761; tcl: 668; makefile: 240; sh: 25
file content (118 lines) | stat: -rw-r--r-- 2,976 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/*
# BUILD api_versions [0x100]
*/

%module fence

#define __version__ "$Revision: 1.21 $"
#define __date__ "$Date: 2001/10/05 17:39:12 $"
#define __api_version__ API_VERSION
#define __author__ "Tarn Weisner Burton <twburton@users.sourceforge.net>"
#define __doc__ "http:\057\057oss.sgi.com\057projects\057ogl-sample\057registry\057NV\057fence.txt"

%{
/**
 *
 * GL.NV.fence Module for PyOpenGL
 * 
 * Date: May 2001
 *
 * Authors: Tarn Weisner Burton <twburton@users.sourceforge.net>
 * 
***/
%}

%include util.inc

/* turn the exception handler on */
GL_EXCEPTION_HANDLER()


%{
#if !EXT_DEFINES_PROTO || !defined(GL_NV_fence)
DECLARE_VOID_EXT(glGenFencesNV, (GLsizei n, GLuint *fences), (n, fences))
DECLARE_VOID_EXT(glDeleteFencesNV, (GLsizei n, const GLuint *fences), (n, fences))
DECLARE_VOID_EXT(glSetFenceNV, (GLuint fence, GLenum condition), (fence, condition))
DECLARE_VOID_EXT(glFinishFenceNV, (GLuint fence), (fence))
DECLARE_VOID_EXT(glGetFenceivNV, (GLuint fence, GLenum pname, GLint* params), (fence, pname, params))
DECLARE_EXT(glTestFenceNV, GLboolean, -1, (GLuint fence), (fence))
DECLARE_EXT(glIsFenceNV, GLboolean, -1, (GLuint fence), (fence))
#endif

PyObject* _glGenFencesNV (GLsizei n)
{
	GLuint* fences;
	PyObject* result = NULL;
	
	fences = PyMem_New(GLuint, n);
	glGenFencesNV(n, fences);
	if (!PyErr_Occurred()) result = _PyTuple_FromUnsignedIntArray(n, fences);

	PyMem_Del(fences);
	return result;
}
%}

%name(glGenFencesNV) PyObject* _glGenFencesNV(GLsizei n);
DOC(glGenFencesNV, "glGenFencesNV(n) -> None")

void glDeleteFencesNV(GLsizei n_1, const GLuint *fences);
DOC(glDeleteFencesNV, "glDeleteFencesNV(fences) -> None")

void glSetFenceNV(GLuint fence, GLenum condition);
DOC(glSetFenceNV, "glSetFenceNV(fence, condition) -> None")

void glFinishFenceNV(GLuint fence);
DOC(glFinishFenceNV, "glFinishFenceNV(fence) -> None")

void glGetFenceivNV(GLuint fence, GLenum pname, GLint params[4]);
DOC(glGetFenceivNV, "glGetFenceivNV(fence, pname) -> params")

GLboolean glTestFenceNV(GLuint fence);
DOC(glTestFenceNV, "glTestFenceNV(fence) -> bool")

GLboolean glIsFenceNV(GLuint fence);
DOC(glIsFenceNV, "glIsFenceNV(fence) -> bool")

%{
static char *proc_names[] =
{
#if !EXT_DEFINES_PROTO || !defined(GL_NV_fence)
	"glGenFencesNV",
	"glDeleteFencesNV",
	"glSetFenceNV",
	"glFinishFenceNV",
	"glGetFenceivNV",
	"glTestFenceNV",
	"glIsFenceNV",
#endif
	NULL
};

#define glInitFenceNV() InitExtension("GL_NV_fence", proc_names)
%}

int glInitFenceNV();
DOC(glInitFenceNV, "glInitFenceNV() -> bool")


%{
PyObject *__info()
{
	if (glInitFenceNV())
	{
		PyObject *info = PyList_New(0);
		return info;
	}
	
	Py_INCREF(Py_None);
	return Py_None;
}
%}

PyObject *__info();

#define GL_ALL_COMPLETED_NV                   0x84F2

#define GL_FENCE_STATUS_NV                    0x84F3
#define GL_FENCE_CONDITION_NV                 0x84F4