Esempio n. 1
0
 def get_shape(self, level=0):
     """Returns the current texture data size at given mipmap level."""
     with self:
         colors = gl_iformat_to_dtype[self._iformat][1]
         _width = _gl.GLint()
         _gl.glGetTexLevelParameteriv(self._target, level, _gl.GL_TEXTURE_WIDTH, _gl.pointer(_width))
         if self._ndim == 2:
             return (_width.value, colors)
         _height = _gl.GLint()
         _gl.glGetTexLevelParameteriv(self._target, level, _gl.GL_TEXTURE_HEIGHT, _gl.pointer(_height))
         if self._ndim == 3:
             return (_height.value, _width.value, colors)
         _depth = _gl.GLint()
         _gl.glGetTexLevelParameteriv(self._target, level, _gl.GL_TEXTURE_DEPTH, _gl.pointer(_depth))
         if self._ndim == 4:
             return (_depth.value, _height.value, _width.value, colors)
Esempio n. 2
0
 def _log(self):
     with self._context:
         _info_log_length = _gl.GLint()
         _gl.glGetShaderiv(self._id, _gl.GL_INFO_LOG_LENGTH,
                           _gl.pointer(_info_log_length))
         _info_log = _gl.create_string_buffer(_info_log_length.value)
         _gl.glGetShaderInfoLog(self._id, _info_log_length,
                                _gl.POINTER(_gl.GLint)(), _info_log)
         return _info_log.value
Esempio n. 3
0
 def source(self):
     with self._context:
         _shader_source_length = _gl.GLint()
         _gl.glGetShaderiv(self._id, _gl.GL_SHADER_SOURCE_LENGTH,
                           _gl.pointer(_shader_source_length))
         _source = _gl.create_string_buffer(_shader_source_length.value)
         _gl.glGetShaderSource(self._id, _shader_source_length,
                               _gl.POINTER(_gl.GLint)(), _source)
         return _source.value
Esempio n. 4
0
 def _get_active_X(self, getter, location_getter, max_length, index):
     _size = _gl.GLint()
     _type = _gl.GLenum()
     _name = _gl.create_string_buffer(max_length)
     with self._context:
         getter(self._id, index, max_length, None, _gl.pointer(_size),
                _gl.pointer(_type), _name)
         location = location_getter(self._id, _name)
     return location, _size.value, ShaderDatatype._from_gl(
         _type.value), _name.value.decode("ascii")
Esempio n. 5
0
    def compile(self):
        with self._context:
            _gl.glCompileShader(self._id)

            _compile_status = _gl.GLint()
            _gl.glGetShaderiv(self._id, _gl.GL_COMPILE_STATUS,
                              _gl.pointer(_compile_status))
            if _compile_status.value != _gl.GL_TRUE:
                raise ShaderCompileError(self._log)

            return self._log or None
Esempio n. 6
0
    def __getitem__(self, index):
        """Get the draw buffer attached to this target.
        
        @param index: Index of the draw buffer to query.
        @type index: C{int}
        @return: The enum of the currently bound draw buffer enum, a number if it is a color attachment.
        @rtype: L{draw_buffers} or C{int}
        """

        if not 0 <= index < self._num_buffers:
            raise IndexError
        _buffer = _gl.GLint()
        with self._context:
            _gl.glGetIntegerv(_gl.GL_DRAW_BUFFER0 + index, _buffer)
        attachment = draw_buffers[_buffer.value]
        if attachment.name.startswith("COLOR_ATTACHMENT"):
            return attachment._value - _gl.GL_COLOR_ATTACHMENT0
        else:
            return attachment
Esempio n. 7
0
 def min_lod(self):
     _min_lod = _gl.GLint()
     _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_MIN_LOD,
                                 _gl.pointer(_min_lod))
     return _min_lod.value
Esempio n. 8
0
 def mag_filter(self, mag_filter):
     _mag_filter = _gl.GLint(self.mag_filters(mag_filter)._value)
     _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_MAG_FILTER,
                              _gl.pointer(_mag_filter))
Esempio n. 9
0
 def _size(self):
     _size = _gl.GLint()
     with self:
         _gl.glGetBufferParameteriv(self._target, _gl.GL_BUFFER_SIZE, _gl.pointer(_size))
     return _size.value
Esempio n. 10
0
 def max_level(self, max_level):
     with self:
         _gl.glTexParameterIiv(self._target, _gl.GL_TEXTURE_MAX_LEVEL, _gl.pointer(_gl.GLint(max_level)))
Esempio n. 11
0
 def max_lod(self, max_lod):
     with self:
         _gl.glTexParameterIiv(self._target, _gl.GL_TEXTURE_MAX_LOD, _gl.pointer(_gl.GLint(max_lod)))
Esempio n. 12
0
 def base_level(self, base_level):
     with self:
         _gl.glTexParameterIiv(self._target, _gl.GL_TEXTURE_BASE_LEVEL, _gl.pointer(_gl.GLint(base_level)))
Esempio n. 13
0
 def _iformat(self):
     _iformat = _gl.GLint()
     with self:
         _gl.glGetTexLevelParameteriv(self._target, 0, _gl.GL_TEXTURE_INTERNAL_FORMAT, _gl.pointer(_iformat))
     return _iformat.value
Esempio n. 14
0
 def wrap_r(self, wrap_r):
     _wrap_r = _gl.GLint(self.wrapmodes(wrap_r)._value)
     _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_WRAP_R,
                              _gl.pointer(_wrap_r))
Esempio n. 15
0
 def wrap_r(self):
     _wrap_r = _gl.GLint()
     _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_WRAP_R,
                                 _gl.pointer(_wrap_r))
     return self.wrapmodes[_wrap_r.value]
Esempio n. 16
0
 def wrap_s(self, wrap_s):
     _wrap_s = _gl.GLint(self.wrapmodes(wrap_s)._value)
     _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_WRAP_S,
                              _gl.pointer(_wrap_s))
Esempio n. 17
0
 def max_lod(self, max_lod):
     _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_MAX_LOD,
                              _gl.pointer(_gl.GLint(max_lod)))
Esempio n. 18
0
 def min_lod(self, min_lod):
     _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_MIN_LOD,
                              _gl.pointer(_gl.GLint(min_lod)))
Esempio n. 19
0
 def usage(self):
     _usage = _gl.GLint()
     with self:
         _gl.glGetBufferParameteriv(self._target, _gl.GL_BUFFER_USAGE, _gl.pointer(_usage))
     return BaseBuffer.usages[_usage.value]
Esempio n. 20
0
 def compare_func(self):
     _compare_func = _gl.GLint()
     _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_COMPARE_FUNC,
                                 _gl.pointer(_compare_func))
     return self.compare_funcs[_compare_func.value]
Esempio n. 21
0
 def _current_query(self):
     _current_query = _gl.GLint()
     _gl.glGetQueryiv(self._target, _gl.GL_CURRENT_QUERY,
                      _gl.pointer(_current_query))
     return _current_query.value
Esempio n. 22
0
 def compare_func(self, compare_func):
     _compare_func = _gl.GLint(self.compare_funcs(compare_func)._value)
     _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_COMPARE_FUNC,
                              _gl.pointer(_compare_func))
Esempio n. 23
0
 def base_level(self):
     _base_level = _gl.GLint()
     with self:
         _gl.glGetTexParameterIiv(self._target, _gl.GL_TEXTURE_BASE_LEVEL, _gl.pointer(_base_level))
     return _base_level.value
Esempio n. 24
0
 def _counter_bits(self):
     _counter_bits = _gl.GLint()
     _gl.glGetQueryiv(self._target, _gl.GL_QUERY_COUNTER_BITS,
                      _gl.pointer(_counter_bits))
     return _counter_bits.value
Esempio n. 25
0
 def max_lod(self):
     _max_lod = _gl.GLint()
     with self:
         _gl.glGetTexParameterIiv(self._target, _gl.GL_TEXTURE_MAX_LOD, _gl.pointer(_max_lod))
     return _max_lod.value
Esempio n. 26
0
 def compare_mode(self, compare_mode):
     _compare_mode = _gl.GLint(self.compare_modes(compare_mode)._value)
     _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_COMPARE_MODE,
                              _gl.pointer(_compare_mode))
Esempio n. 27
0
 def max_level(self):
     _max_level = _gl.GLint()
     with self:
         _gl.glGetTexParameterIiv(self._target, _gl.GL_TEXTURE_MAX_LEVEL, _gl.pointer(_max_level))
     return _max_level.value
Esempio n. 28
0
 def mag_filter(self):
     _mag_filter = _gl.GLint()
     _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_MAG_FILTER,
                                 _gl.pointer(_mag_filter))
     return self.mag_filters[_mag_filter.value]
Esempio n. 29
0
 def compare_mode(self):
     _compare_mode = _gl.GLint()
     _gl.glGetSamplerParameteriv(self._id, _gl.GL_TEXTURE_COMPARE_MODE,
                                 _gl.pointer(_compare_mode))
     return self.compare_modes[_compare_mode.value]
Esempio n. 30
0
 def result_available(self):
     _result_available = _gl.GLint()
     _gl.glGetQueryObjectiv(self._id, _gl.GL_QUERY_RESULT_AVAILABLE,
                            _gl.pointer(_result_available))
     return bool(_result_available.value)