| Trees | Indices | Help |
|---|
|
|
1 """Sampler class.
2
3 @todo: Implement getters and setters for C{Sampler.unit}, but take care not to
4 confuse any existing bindings on the stack. This problem is very similar to
5 rebinding L{buffers<BaseBuffer>} to different targets and should probably be
6 handled in a similar way.
7
8 @author: Stephan Wenger
9 @date: 2012-02-29
10 """
11
12 import glitter.raw as _gl
13 from glitter.utils import texture_compare_funcs, texture_compare_modes, texture_min_filters, texture_mag_filters, texture_wrapmodes, ManagedObject, BindableObject
16 _generate_id = _gl.glGenSamplers
17 _delete_id = _gl.glDeleteSamplers
18 _db = "samplers"
19 _binding = "sampler_binding"
20
21 compare_funcs = texture_compare_funcs
22 compare_modes = texture_compare_modes
23 min_filters = texture_min_filters
24 mag_filters = texture_mag_filters
25 wrapmodes = texture_wrapmodes
26
28 super(Sampler, self).__init__(context=context)
29 if not 0 <= unit < self._context.max_combined_texture_image_units:
30 raise ValueError("invalid unit: %s" % unit)
31 self._target = unit
32
33 @property
35 _compare_func = _gl.GLint()
36 _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_COMPARE_FUNC, _gl.pointer(_compare_func))
37 return self.compare_funcs[_compare_func.value]
38
39 @compare_func.setter
41 _compare_func = _gl.GLint(self.compare_funcs(compare_func)._value)
42 _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_COMPARE_FUNC, _gl.pointer(_compare_func))
43
44 @property
46 _compare_mode = _gl.GLint()
47 _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_COMPARE_MODE, _gl.pointer(_compare_mode))
48 return self.compare_modes[_compare_mode.value]
49
50 @compare_mode.setter
52 _compare_mode = _gl.GLint(self.compare_modes(compare_mode)._value)
53 _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_COMPARE_MODE, _gl.pointer(_compare_mode))
54
55 @property
57 _lod_bias = _gl.GLfloat()
58 _gl.glGetSamplerParameterfv(self._id, _gl.GL_TEXTURE_LOD_BIAS, _gl.pointer(_lod_bias))
59 return _lod_bias.value
60
61 @lod_bias.setter
64
65 @property
67 _min_filter = _gl.GLint()
68 _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_MIN_FILTER, _gl.pointer(_min_filter))
69 return self.min_filters[_min_filter.value]
70
71 @min_filter.setter
73 _min_filter = _gl.GLint(self.min_filters(min_filter)._value)
74 _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_MIN_FILTER, _gl.pointer(_min_filter))
75
76 @property
78 _mag_filter = _gl.GLint()
79 _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_MAG_FILTER, _gl.pointer(_mag_filter))
80 return self.mag_filters[_mag_filter.value]
81
82 @mag_filter.setter
84 _mag_filter = _gl.GLint(self.mag_filters(mag_filter)._value)
85 _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_MAG_FILTER, _gl.pointer(_mag_filter))
86
87 @property
89 _min_lod = _gl.GLint()
90 _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_MIN_LOD, _gl.pointer(_min_lod))
91 return _min_lod.value
92
93 @min_lod.setter
96
97 @property
99 _max_lod = _gl.GLint()
100 _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_MAX_LOD, _gl.pointer(_max_lod))
101 return _max_lod.value
102
103 @max_lod.setter
106
107 @property
109 _wrap_s = _gl.GLint()
110 _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_WRAP_S, _gl.pointer(_wrap_s))
111 return self.wrapmodes[_wrap_s.value]
112
113 @wrap_s.setter
115 _wrap_s = _gl.GLint(self.wrapmodes(wrap_s)._value)
116 _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_WRAP_S, _gl.pointer(_wrap_s))
117
118 @property
120 _wrap_t = _gl.GLint()
121 _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_WRAP_T, _gl.pointer(_wrap_t))
122 return self.wrapmodes[_wrap_t.value]
123
124 @wrap_t.setter
126 _wrap_t = _gl.GLint(self.wrapmodes(wrap_t)._value)
127 _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_WRAP_T, _gl.pointer(_wrap_t))
128
129 @property
131 _wrap_r = _gl.GLint()
132 _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_WRAP_R, _gl.pointer(_wrap_r))
133 return self.wrapmodes[_wrap_r.value]
134
135 @wrap_r.setter
137 _wrap_r = _gl.GLint(self.wrapmodes(wrap_r)._value)
138 _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_WRAP_R, _gl.pointer(_wrap_r))
139
140 __all__ = ["Sampler"]
141
| Trees | Indices | Help |
|---|
| Generated by Epydoc 3.0.1 on Fri Mar 16 17:56:07 2012 | http://epydoc.sourceforge.net |