Пример #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)
Пример #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
Пример #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
Пример #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")
Пример #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
Пример #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
Пример #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
Пример #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))
Пример #9
0
 def _size(self):
     _size = _gl.GLint()
     with self:
         _gl.glGetBufferParameteriv(self._target, _gl.GL_BUFFER_SIZE, _gl.pointer(_size))
     return _size.value
Пример #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)))
Пример #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)))
Пример #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)))
Пример #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
Пример #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))
Пример #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]
Пример #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))
Пример #17
0
 def max_lod(self, max_lod):
     _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_MAX_LOD,
                              _gl.pointer(_gl.GLint(max_lod)))
Пример #18
0
 def min_lod(self, min_lod):
     _gl.glSamplerParameteriv(self._id, _gl.GL_TEXTURE_MIN_LOD,
                              _gl.pointer(_gl.GLint(min_lod)))
Пример #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]
Пример #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]
Пример #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
Пример #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))
Пример #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
Пример #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
Пример #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
Пример #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))
Пример #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
Пример #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]
Пример #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]
Пример #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)