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, BindableObject16 _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 26139 140 __all__ = ["Sampler"] 14128 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 = unit32 33 @property35 _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.setter41 _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 @property46 _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.setter52 _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 @property57 _lod_bias = _gl.GLfloat() 58 _gl.glGetSamplerParameterfv(self._id, _gl.GL_TEXTURE_LOD_BIAS, _gl.pointer(_lod_bias)) 59 return _lod_bias.value60 61 @lod_bias.setter 64 65 @property67 _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.setter73 _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 @property78 _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.setter84 _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 @property89 _min_lod = _gl.GLint() 90 _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_MIN_LOD, _gl.pointer(_min_lod)) 91 return _min_lod.value92 93 @min_lod.setter 96 97 @property99 _max_lod = _gl.GLint() 100 _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_MAX_LOD, _gl.pointer(_max_lod)) 101 return _max_lod.value102 103 @max_lod.setter 106 107 @property109 _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.setter115 _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 @property120 _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.setter126 _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 @property131 _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.setter137 _wrap_r = _gl.GLint(self.wrapmodes(wrap_r)._value) 138 _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_WRAP_R, _gl.pointer(_wrap_r))
Trees | Indices | Help |
---|
Generated by Epydoc 3.0.1 on Fri Mar 16 17:56:07 2012 | http://epydoc.sourceforge.net |