Tatooine
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Attributes | Private Member Functions | List of all members
tatooine::gl::texture< NumDimensions, ValueType, Components > Class Template Reference

#include <texture.h>

Inheritance diagram for tatooine::gl::texture< NumDimensions, ValueType, Components >:
[legend]
Collaboration diagram for tatooine::gl::texture< NumDimensions, ValueType, Components >:
[legend]

Public Types

using value_type = ValueType
 
using components_type = Components
 

Public Member Functions

 texture ()
 
template<std::size_t... Is>
 texture (std::index_sequence< Is... >)
 
 texture (texture const &other)
 TODO: copy wrap and interpolation modes. More...
 
 texture (texture &&other)
 
auto & operator= (texture const &other)
 
auto & operator= (texture &&other)
 
 ~texture ()
 
 texture (integral auto const ... sizes)
 
template<convertible_to< value_type > OtherType>
requires (sizeof...(sizes) == NumDimensions)
 texture (OtherType const *const data, integral auto const ... sizes)
 
 texture (ValueType const *const data, integral auto const ... sizes)
 
template<convertible_to< value_type > OtherType>
requires (sizeof...(sizes) == NumDimensions) && (num_components() == 1)
 texture (std::vector< OtherType > const &data, integral auto const ... sizes)
 
template<convertible_to< value_type > OtherType>
requires (sizeof...(sizes) == NumDimensions) && (num_components() > 1)
 texture (std::vector< vec< OtherType, num_components()> > const &data, integral auto const ... sizes)
 
template<convertible_to< value_type > OtherType>
requires (num_components() == 1)
 texture (dynamic_multidim_array< OtherType > const &data)
 
template<convertible_to< value_type > OtherType>
requires (num_components() > 1)
 texture (dynamic_multidim_array< vec< OtherType, num_components()> > const &data)
 
template<std::size_t... Is>
 texture (interpolation_mode interp_mode, wrap_mode wrap_mode, std::index_sequence< Is... >)
 
 texture (interpolation_mode interp_mode, wrap_mode wrap_mode)
 
template<integral... Sizes>
requires (sizeof...(Sizes) == NumDimensions)
 texture (interpolation_mode interp_mode, wrap_mode wrap_mode, Sizes const ... sizes)
 
template<convertible_to< value_type > OtherType, integral... Sizes>
requires (sizeof...(Sizes) == NumDimensions)
 texture (interpolation_mode interp_mode, wrap_mode wrap_mode, std::vector< OtherType > const &data, Sizes const ... sizes)
 
auto bind (GLuint unit=0) const
 
void bind_image_texture (GLuint unit) const
 
void bind_image_texture (GLuint unit)
 
void bind_image_texture_read_write (GLuint unit)
 
void bind_image_texture_write (GLuint unit)
 
void unbind_image_texture (GLuint unit)
 
void bind_image_texture_layer (GLuint unit, GLint layer) const
 
void bind_image_texture_layer (GLuint unit, GLint layer)
 
template<std::size_t... Is>
auto num_texels (std::index_sequence< Is... >) const -> GLsizei
 
auto num_texels () const -> GLsizei
 
auto copy_data (texture const &other) -> void
 
template<integral Size>
auto resize (std::array< Size, NumDimensions > const &size) -> void
 
template<integral... Sizes>
requires (sizeof...(Sizes) == NumDimensions)
auto resize (Sizes const ... sizes) -> void
 
template<integral... Indices>
requires (sizeof...(Indices) == NumDimensions)
auto operator() (Indices const ... indices) const
 
auto width () const
 
auto height () const
 
auto depth () const
 
auto set_wrap_mode (wrap_mode mode) -> void
 setting all wrapmodes to same mode More...
 
template<std::size_t... Is>
auto set_wrap_mode (std::index_sequence< Is... >, same_as< wrap_mode > auto const ... modes) -> void requires(sizeof...(modes)==NumDimensions)
 setting all wrapmodes individual modes More...
 
auto set_wrap_mode (same_as< wrap_mode > auto const ... modes) -> void
 setting all wrapmodes individual modes More...
 
auto set_wrap_mode (std::size_t const i, wrap_mode const mode) -> void
 setting wrapmode with index i to modes More...
 
auto set_repeat () -> void
 setting all wrapmodes to repeat More...
 
auto set_wrap_mode_s (wrap_mode const mode) -> void
 
auto set_wrap_mode_t (wrap_mode const mode) -> void requires(NumDimensions > 1)
 
auto set_wrap_mode_r (wrap_mode const mode) -> void requires(NumDimensions > 2)
 
auto set_interpolation_mode (interpolation_mode const mode) -> void
 
auto set_interpolation_mode_min (interpolation_mode const mode) -> void
 
auto set_interpolation_mode_mag (interpolation_mode const mode) -> void
 
auto set_compare_func (compare_func const f) -> void
 
auto set_compare_mode (compare_mode const m) -> void
 
auto clear (arithmetic auto const ... comps)
 
auto clear (std::array< value_type, num_components()> const &col)
 
auto set_data (pixelunpackbuffer< value_type > const &pbo)
 
auto download_data () const
 
auto download_data (std::vector< value_type > &data) const -> void
 
auto download_data (std::vector< vec< value_type, num_components()> > &data) const -> void requires(num_components() > 1)
 
auto download_data (value_type *data) const -> void
 
auto & download_sub_data (GLint xoffset, GLsizei width, std::vector< ValueType > &data, GLint level=0) const
 
auto & download_sub_data (GLint xoffset, GLsizei width, std::vector< vec< ValueType, num_components()> > &data, GLint level=0) const
 
auto download_sub_data (GLint xoffset, GLsizei width, GLint level=0) const
 
auto & download_sub_data (GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, std::vector< ValueType > &data, GLint level=0) const
 
auto & download_sub_data (GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, std::vector< vec< ValueType, num_components()> > &data, GLint level=0) const
 
auto download_sub_data (GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLint level=0) const
 
auto & download_sub_data (GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, std::vector< ValueType > &data, GLint level=0) const
 
auto & download_sub_data (GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, std::vector< vec< ValueType, num_components()> > &data, GLint level=0) const
 
auto download_sub_data (GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLint level=0) const
 
- Public Member Functions inherited from tatooine::gl::id_holder< GLuint >
 id_holder ()
 
 id_holder (GLuint _id)
 
 id_holder (id_holder const &other)=delete
 
 id_holder (id_holder &&other) noexcept
 
auto operator= (id_holder const &other) -> id_holder &=delete
 
auto operator= (id_holder &&other) noexcept -> id_holder &
 
 ~id_holder ()=default
 
auto id () const
 
void swap (id_holder &other)
 

Static Public Member Functions

static constexpr auto num_components () -> GLsizei
 
static constexpr std::size_t num_dimensions ()
 
static void unbind (GLuint unit=0)
 
static void unbind_image_texture_layer (GLuint unit, GLint layer)
 

Static Public Attributes

static constexpr auto target = tex::target<NumDimensions>
 
static constexpr auto binding = tex::binding<NumDimensions>
 
static constexpr auto default_interpolation = interpolation_mode::linear
 
static constexpr auto default_wrap_mode = wrap_mode::repeat
 
static constexpr auto gl_internal_format
 
static constexpr auto gl_format
 
static constexpr auto gl_type = tex::settings<ValueType, Components>::type
 
static constexpr std::array< GLenum, 3 > wrapmode_indices
 
- Static Public Attributes inherited from tatooine::gl::id_holder< GLuint >
static constexpr auto default_val
 

Protected Attributes

std::array< GLsizei, NumDimensions > m_size
 

Private Member Functions

auto create_id ()
 
template<integral... Sizes>
requires (sizeof...(Sizes) == NumDimensions)
auto upload_data (value_type const *const data, Sizes const ... sizes)
 
template<integral... Sizes>
requires (sizeof...(Sizes) == NumDimensions) && (num_components() > 1)
auto upload_data (vec< value_type, num_components()> const *const data, Sizes const ... sizes)
 
auto upload_data (dynamic_multidim_array< value_type > const &data)
 
auto upload_data (dynamic_multidim_array< vec< value_type, num_components()> > const &data)
 
template<convertible_to< value_type > OtherType>
requires (num_components() == GLsizei(1))
auto upload_data (dynamic_multidim_array< OtherType > const &data)
 
template<convertible_to< value_type > OtherType>
requires (num_components() > 1)
auto upload_data (dynamic_multidim_array< vec< OtherType, num_components()> > const &data)
 
template<integral... Sizes>
requires (num_components() == 1) && (sizeof...(Sizes) == NumDimensions)
auto upload_data (std::vector< value_type > const &data, Sizes const ... sizes)
 
template<integral... Sizes>
requires (num_components() > 1) && (sizeof...(Sizes) == NumDimensions)
auto upload_data (std::vector< vec< value_type, num_components()> > const &data, Sizes const ... sizes)
 
template<convertible_to< value_type > OtherType, integral... Sizes>
requires (num_components() == 1) && (sizeof...(Sizes) == NumDimensions)
auto upload_data (std::vector< OtherType > const &data, Sizes const ... sizes)
 
template<convertible_to< value_type > OtherType, integral... Sizes>
requires (num_components() > 1) && (sizeof...(Sizes) == NumDimensions)
auto upload_data (std::vector< vec< OtherType, num_components()> > const &data, Sizes const ... sizes)
 
auto upload_data (value_type const *const data) -> void
 
auto upload_data (vec< value_type, num_components()> const *data) -> void
 

Additional Inherited Members

- Protected Member Functions inherited from tatooine::gl::id_holder< GLuint >
void set_id (GLuint id)
 
auto id_ptr ()
 
auto id_ref () -> auto &
 

Member Typedef Documentation

◆ components_type

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
using tatooine::gl::texture< NumDimensions, ValueType, Components >::components_type = Components

◆ value_type

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
using tatooine::gl::texture< NumDimensions, ValueType, Components >::value_type = ValueType

Constructor & Destructor Documentation

◆ texture() [1/15]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
tatooine::gl::texture< NumDimensions, ValueType, Components >::texture ( )
inline

◆ texture() [2/15]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<std::size_t... Is>
tatooine::gl::texture< NumDimensions, ValueType, Components >::texture ( std::index_sequence< Is... >  )
inline

◆ texture() [3/15]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
tatooine::gl::texture< NumDimensions, ValueType, Components >::texture ( texture< NumDimensions, ValueType, Components > const &  other)
inline

TODO: copy wrap and interpolation modes.

◆ texture() [4/15]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
tatooine::gl::texture< NumDimensions, ValueType, Components >::texture ( texture< NumDimensions, ValueType, Components > &&  other)
inline

◆ ~texture()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
tatooine::gl::texture< NumDimensions, ValueType, Components >::~texture ( )
inline

◆ texture() [5/15]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
tatooine::gl::texture< NumDimensions, ValueType, Components >::texture ( integral auto const ...  sizes)
inline

◆ texture() [6/15]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<convertible_to< value_type > OtherType>
requires (sizeof...(sizes) == NumDimensions)
tatooine::gl::texture< NumDimensions, ValueType, Components >::texture ( OtherType const *const  data,
integral auto const ...  sizes 
)
inline

◆ texture() [7/15]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
tatooine::gl::texture< NumDimensions, ValueType, Components >::texture ( ValueType const *const  data,
integral auto const ...  sizes 
)
inline

◆ texture() [8/15]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<convertible_to< value_type > OtherType>
requires (sizeof...(sizes) == NumDimensions) && (num_components() == 1)
tatooine::gl::texture< NumDimensions, ValueType, Components >::texture ( std::vector< OtherType > const &  data,
integral auto const ...  sizes 
)
inline

◆ texture() [9/15]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<convertible_to< value_type > OtherType>
requires (sizeof...(sizes) == NumDimensions) && (num_components() > 1)
tatooine::gl::texture< NumDimensions, ValueType, Components >::texture ( std::vector< vec< OtherType, num_components()> > const &  data,
integral auto const ...  sizes 
)
inline

◆ texture() [10/15]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<convertible_to< value_type > OtherType>
requires (num_components() == 1)
tatooine::gl::texture< NumDimensions, ValueType, Components >::texture ( dynamic_multidim_array< OtherType > const &  data)
inline

◆ texture() [11/15]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<convertible_to< value_type > OtherType>
requires (num_components() > 1)
tatooine::gl::texture< NumDimensions, ValueType, Components >::texture ( dynamic_multidim_array< vec< OtherType, num_components()> > const &  data)
inline

◆ texture() [12/15]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<std::size_t... Is>
tatooine::gl::texture< NumDimensions, ValueType, Components >::texture ( interpolation_mode  interp_mode,
wrap_mode  wrap_mode,
std::index_sequence< Is... >   
)
inline

◆ texture() [13/15]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
tatooine::gl::texture< NumDimensions, ValueType, Components >::texture ( interpolation_mode  interp_mode,
wrap_mode  wrap_mode 
)
inline

◆ texture() [14/15]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<integral... Sizes>
requires (sizeof...(Sizes) == NumDimensions)
tatooine::gl::texture< NumDimensions, ValueType, Components >::texture ( interpolation_mode  interp_mode,
wrap_mode  wrap_mode,
Sizes const ...  sizes 
)
inline

◆ texture() [15/15]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<convertible_to< value_type > OtherType, integral... Sizes>
requires (sizeof...(Sizes) == NumDimensions)
tatooine::gl::texture< NumDimensions, ValueType, Components >::texture ( interpolation_mode  interp_mode,
wrap_mode  wrap_mode,
std::vector< OtherType > const &  data,
Sizes const ...  sizes 
)
inline

Member Function Documentation

◆ bind()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::bind ( GLuint  unit = 0) const
inline

◆ bind_image_texture() [1/2]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
void tatooine::gl::texture< NumDimensions, ValueType, Components >::bind_image_texture ( GLuint  unit)
inline

◆ bind_image_texture() [2/2]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
void tatooine::gl::texture< NumDimensions, ValueType, Components >::bind_image_texture ( GLuint  unit) const
inline

◆ bind_image_texture_layer() [1/2]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
void tatooine::gl::texture< NumDimensions, ValueType, Components >::bind_image_texture_layer ( GLuint  unit,
GLint  layer 
)
inline

◆ bind_image_texture_layer() [2/2]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
void tatooine::gl::texture< NumDimensions, ValueType, Components >::bind_image_texture_layer ( GLuint  unit,
GLint  layer 
) const
inline

◆ bind_image_texture_read_write()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
void tatooine::gl::texture< NumDimensions, ValueType, Components >::bind_image_texture_read_write ( GLuint  unit)
inline

◆ bind_image_texture_write()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
void tatooine::gl::texture< NumDimensions, ValueType, Components >::bind_image_texture_write ( GLuint  unit)
inline

◆ clear() [1/2]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::clear ( arithmetic auto const ...  comps)
inline

◆ clear() [2/2]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::clear ( std::array< value_type, num_components()> const &  col)
inline

◆ copy_data()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::copy_data ( texture< NumDimensions, ValueType, Components > const &  other) -> void
inline

◆ create_id()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::create_id ( )
inlineprivate

◆ depth()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::depth ( ) const
inline

◆ download_data() [1/4]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::download_data ( ) const
inline

◆ download_data() [2/4]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::download_data ( std::vector< value_type > &  data) const -> void
inline

◆ download_data() [3/4]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::download_data ( std::vector< vec< value_type, num_components()> > &  data) const -> void requires(num_components() > 1)
inline

◆ download_data() [4/4]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::download_data ( value_type data) const -> void
inline

◆ download_sub_data() [1/9]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::download_sub_data ( GLint  xoffset,
GLint  yoffset,
GLint  zoffset,
GLsizei  width,
GLsizei  height,
GLsizei  depth,
GLint  level = 0 
) const
inline

◆ download_sub_data() [2/9]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto & tatooine::gl::texture< NumDimensions, ValueType, Components >::download_sub_data ( GLint  xoffset,
GLint  yoffset,
GLint  zoffset,
GLsizei  width,
GLsizei  height,
GLsizei  depth,
std::vector< ValueType > &  data,
GLint  level = 0 
) const
inline

◆ download_sub_data() [3/9]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto & tatooine::gl::texture< NumDimensions, ValueType, Components >::download_sub_data ( GLint  xoffset,
GLint  yoffset,
GLint  zoffset,
GLsizei  width,
GLsizei  height,
GLsizei  depth,
std::vector< vec< ValueType, num_components()> > &  data,
GLint  level = 0 
) const
inline

◆ download_sub_data() [4/9]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::download_sub_data ( GLint  xoffset,
GLint  yoffset,
GLsizei  width,
GLsizei  height,
GLint  level = 0 
) const
inline

◆ download_sub_data() [5/9]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto & tatooine::gl::texture< NumDimensions, ValueType, Components >::download_sub_data ( GLint  xoffset,
GLint  yoffset,
GLsizei  width,
GLsizei  height,
std::vector< ValueType > &  data,
GLint  level = 0 
) const
inline

◆ download_sub_data() [6/9]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto & tatooine::gl::texture< NumDimensions, ValueType, Components >::download_sub_data ( GLint  xoffset,
GLint  yoffset,
GLsizei  width,
GLsizei  height,
std::vector< vec< ValueType, num_components()> > &  data,
GLint  level = 0 
) const
inline

◆ download_sub_data() [7/9]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::download_sub_data ( GLint  xoffset,
GLsizei  width,
GLint  level = 0 
) const
inline

◆ download_sub_data() [8/9]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto & tatooine::gl::texture< NumDimensions, ValueType, Components >::download_sub_data ( GLint  xoffset,
GLsizei  width,
std::vector< ValueType > &  data,
GLint  level = 0 
) const
inline

◆ download_sub_data() [9/9]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto & tatooine::gl::texture< NumDimensions, ValueType, Components >::download_sub_data ( GLint  xoffset,
GLsizei  width,
std::vector< vec< ValueType, num_components()> > &  data,
GLint  level = 0 
) const
inline

◆ height()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::height ( ) const
inline

◆ num_components()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
static constexpr auto tatooine::gl::texture< NumDimensions, ValueType, Components >::num_components ( ) -> GLsizei
inlinestaticconstexpr

◆ num_dimensions()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
static constexpr std::size_t tatooine::gl::texture< NumDimensions, ValueType, Components >::num_dimensions ( )
inlinestaticconstexpr

◆ num_texels() [1/2]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::num_texels ( ) const -> GLsizei
inline

◆ num_texels() [2/2]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<std::size_t... Is>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::num_texels ( std::index_sequence< Is... >  ) const -> GLsizei
inline

◆ operator()()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<integral... Indices>
requires (sizeof...(Indices) == NumDimensions)
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::operator() ( Indices const ...  indices) const
inline

◆ operator=() [1/2]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto & tatooine::gl::texture< NumDimensions, ValueType, Components >::operator= ( texture< NumDimensions, ValueType, Components > &&  other)
inline

◆ operator=() [2/2]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto & tatooine::gl::texture< NumDimensions, ValueType, Components >::operator= ( texture< NumDimensions, ValueType, Components > const &  other)
inline

◆ resize() [1/2]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<integral... Sizes>
requires (sizeof...(Sizes) == NumDimensions)
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::resize ( Sizes const ...  sizes) -> void
inline

◆ resize() [2/2]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<integral Size>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::resize ( std::array< Size, NumDimensions > const &  size) -> void
inline

◆ set_compare_func()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::set_compare_func ( compare_func const  f) -> void
inline

◆ set_compare_mode()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::set_compare_mode ( compare_mode const  m) -> void
inline

◆ set_data()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::set_data ( pixelunpackbuffer< value_type > const &  pbo)
inline

◆ set_interpolation_mode()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::set_interpolation_mode ( interpolation_mode const  mode) -> void
inline

◆ set_interpolation_mode_mag()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::set_interpolation_mode_mag ( interpolation_mode const  mode) -> void
inline

◆ set_interpolation_mode_min()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::set_interpolation_mode_min ( interpolation_mode const  mode) -> void
inline

◆ set_repeat()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::set_repeat ( ) -> void
inline

setting all wrapmodes to repeat

◆ set_wrap_mode() [1/4]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::set_wrap_mode ( same_as< wrap_mode > auto const ...  modes) -> void
inline

setting all wrapmodes individual modes

◆ set_wrap_mode() [2/4]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<std::size_t... Is>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::set_wrap_mode ( std::index_sequence< Is... >  ,
same_as< wrap_mode > auto const ...  modes 
) -> void requires(sizeof...(modes) == NumDimensions)
inline

setting all wrapmodes individual modes

◆ set_wrap_mode() [3/4]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::set_wrap_mode ( std::size_t const  i,
wrap_mode const  mode 
) -> void
inline

setting wrapmode with index i to modes

◆ set_wrap_mode() [4/4]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::set_wrap_mode ( wrap_mode  mode) -> void
inline

setting all wrapmodes to same mode

◆ set_wrap_mode_r()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::set_wrap_mode_r ( wrap_mode const  mode) -> void requires(NumDimensions > 2)
inline

◆ set_wrap_mode_s()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::set_wrap_mode_s ( wrap_mode const  mode) -> void
inline

◆ set_wrap_mode_t()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::set_wrap_mode_t ( wrap_mode const  mode) -> void requires(NumDimensions > 1)
inline

◆ unbind()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
static void tatooine::gl::texture< NumDimensions, ValueType, Components >::unbind ( GLuint  unit = 0)
inlinestatic

◆ unbind_image_texture()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
void tatooine::gl::texture< NumDimensions, ValueType, Components >::unbind_image_texture ( GLuint  unit)
inline

◆ unbind_image_texture_layer()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
static void tatooine::gl::texture< NumDimensions, ValueType, Components >::unbind_image_texture_layer ( GLuint  unit,
GLint  layer 
)
inlinestatic

◆ upload_data() [1/12]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<convertible_to< value_type > OtherType>
requires (num_components() == GLsizei(1))
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::upload_data ( dynamic_multidim_array< OtherType > const &  data)
inline

◆ upload_data() [2/12]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::upload_data ( dynamic_multidim_array< value_type > const &  data)
inline

◆ upload_data() [3/12]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<convertible_to< value_type > OtherType>
requires (num_components() > 1)
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::upload_data ( dynamic_multidim_array< vec< OtherType, num_components()> > const &  data)
inline

◆ upload_data() [4/12]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::upload_data ( dynamic_multidim_array< vec< value_type, num_components()> > const &  data)
inline

◆ upload_data() [5/12]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<convertible_to< value_type > OtherType, integral... Sizes>
requires (num_components() == 1) && (sizeof...(Sizes) == NumDimensions)
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::upload_data ( std::vector< OtherType > const &  data,
Sizes const ...  sizes 
)
inline

◆ upload_data() [6/12]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<integral... Sizes>
requires (num_components() == 1) && (sizeof...(Sizes) == NumDimensions)
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::upload_data ( std::vector< value_type > const &  data,
Sizes const ...  sizes 
)
inline

◆ upload_data() [7/12]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<convertible_to< value_type > OtherType, integral... Sizes>
requires (num_components() > 1) && (sizeof...(Sizes) == NumDimensions)
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::upload_data ( std::vector< vec< OtherType, num_components()> > const &  data,
Sizes const ...  sizes 
)
inline

◆ upload_data() [8/12]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<integral... Sizes>
requires (num_components() > 1) && (sizeof...(Sizes) == NumDimensions)
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::upload_data ( std::vector< vec< value_type, num_components()> > const &  data,
Sizes const ...  sizes 
)
inline

◆ upload_data() [9/12]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::upload_data ( value_type const *const  data) -> void
inlineprivate

◆ upload_data() [10/12]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<integral... Sizes>
requires (sizeof...(Sizes) == NumDimensions)
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::upload_data ( value_type const *const  data,
Sizes const ...  sizes 
)
inline

◆ upload_data() [11/12]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
template<integral... Sizes>
requires (sizeof...(Sizes) == NumDimensions) && (num_components() > 1)
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::upload_data ( vec< value_type, num_components()> const *const  data,
Sizes const ...  sizes 
)
inline

◆ upload_data() [12/12]

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::upload_data ( vec< value_type, num_components()> const *  data) -> void
inlineprivate

◆ width()

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
auto tatooine::gl::texture< NumDimensions, ValueType, Components >::width ( ) const
inline

Member Data Documentation

◆ binding

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
constexpr auto tatooine::gl::texture< NumDimensions, ValueType, Components >::binding = tex::binding<NumDimensions>
staticconstexpr

◆ default_interpolation

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
constexpr auto tatooine::gl::texture< NumDimensions, ValueType, Components >::default_interpolation = interpolation_mode::linear
staticconstexpr

◆ default_wrap_mode

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
constexpr auto tatooine::gl::texture< NumDimensions, ValueType, Components >::default_wrap_mode = wrap_mode::repeat
staticconstexpr

◆ gl_format

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
constexpr auto tatooine::gl::texture< NumDimensions, ValueType, Components >::gl_format
staticconstexpr
Initial value:

◆ gl_internal_format

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
constexpr auto tatooine::gl::texture< NumDimensions, ValueType, Components >::gl_internal_format
staticconstexpr
Initial value:

◆ gl_type

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
constexpr auto tatooine::gl::texture< NumDimensions, ValueType, Components >::gl_type = tex::settings<ValueType, Components>::type
staticconstexpr

◆ m_size

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
std::array<GLsizei, NumDimensions> tatooine::gl::texture< NumDimensions, ValueType, Components >::m_size
protected

◆ target

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
constexpr auto tatooine::gl::texture< NumDimensions, ValueType, Components >::target = tex::target<NumDimensions>
staticconstexpr

◆ wrapmode_indices

template<std::size_t NumDimensions, texture_value ValueType, texture_component Components>
constexpr std::array<GLenum, 3> tatooine::gl::texture< NumDimensions, ValueType, Components >::wrapmode_indices
staticconstexpr
Initial value:
{
GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R}

The documentation for this class was generated from the following file: