Tatooine
Public Member Functions | Private Attributes | List of all members
tatooine::gl::linked_list_texture< Node > Class Template Reference

#include <linked_list_texture.h>

Collaboration diagram for tatooine::gl::linked_list_texture< Node >:
[legend]

Public Member Functions

 linked_list_texture (size_t w, size_t h, size_t num_nodes, const Node &initial)
 
 linked_list_texture (const linked_list_texture &other)=default
 
 linked_list_texture (linked_list_texture &&other)=default
 
void resize (size_t w, size_t h, size_t num_nodes)
 
void bind (unsigned int at_slot=0, unsigned int hi_slot=0, unsigned int length_slot=1, unsigned int ll_slot=0) const
 
void clear ()
 
void resize_buffer (size_t size)
 
auto width () const
 
auto height () const
 
auto buffer_size () const
 
const auto & buffer () const
 
auto & counter ()
 
const auto & counter () const
 

Private Attributes

size_t m_w
 
size_t m_h
 
size_t m_num_nodes
 
atomiccounterbuffer m_atomic_counter
 
shaderstoragebuffer< Node > m_linked_list
 
tex2r32ui m_head_index_tex
 
tex2r32ui m_list_length_tex
 
pixelunpackbuffer< unsigned int > m_head_index_clear_buffer
 
pixelunpackbuffer< unsigned int > m_list_length_clear_buffer
 

Constructor & Destructor Documentation

◆ linked_list_texture() [1/3]

template<typename Node >
tatooine::gl::linked_list_texture< Node >::linked_list_texture ( size_t  w,
size_t  h,
size_t  num_nodes,
const Node &  initial 
)
inline

◆ linked_list_texture() [2/3]

template<typename Node >
tatooine::gl::linked_list_texture< Node >::linked_list_texture ( const linked_list_texture< Node > &  other)
default

◆ linked_list_texture() [3/3]

template<typename Node >
tatooine::gl::linked_list_texture< Node >::linked_list_texture ( linked_list_texture< Node > &&  other)
default

Member Function Documentation

◆ bind()

template<typename Node >
void tatooine::gl::linked_list_texture< Node >::bind ( unsigned int  at_slot = 0,
unsigned int  hi_slot = 0,
unsigned int  length_slot = 1,
unsigned int  ll_slot = 0 
) const
inline

◆ buffer()

template<typename Node >
const auto & tatooine::gl::linked_list_texture< Node >::buffer ( ) const
inline

◆ buffer_size()

template<typename Node >
auto tatooine::gl::linked_list_texture< Node >::buffer_size ( ) const
inline

◆ clear()

template<typename Node >
void tatooine::gl::linked_list_texture< Node >::clear ( )
inline

◆ counter() [1/2]

template<typename Node >
auto & tatooine::gl::linked_list_texture< Node >::counter ( )
inline

◆ counter() [2/2]

template<typename Node >
const auto & tatooine::gl::linked_list_texture< Node >::counter ( ) const
inline

◆ height()

template<typename Node >
auto tatooine::gl::linked_list_texture< Node >::height ( ) const
inline

◆ resize()

template<typename Node >
void tatooine::gl::linked_list_texture< Node >::resize ( size_t  w,
size_t  h,
size_t  num_nodes 
)
inline

◆ resize_buffer()

template<typename Node >
void tatooine::gl::linked_list_texture< Node >::resize_buffer ( size_t  size)
inline

◆ width()

template<typename Node >
auto tatooine::gl::linked_list_texture< Node >::width ( ) const
inline

Member Data Documentation

◆ m_atomic_counter

template<typename Node >
atomiccounterbuffer tatooine::gl::linked_list_texture< Node >::m_atomic_counter
private

◆ m_h

template<typename Node >
size_t tatooine::gl::linked_list_texture< Node >::m_h
private

◆ m_head_index_clear_buffer

template<typename Node >
pixelunpackbuffer<unsigned int> tatooine::gl::linked_list_texture< Node >::m_head_index_clear_buffer
private

◆ m_head_index_tex

template<typename Node >
tex2r32ui tatooine::gl::linked_list_texture< Node >::m_head_index_tex
private

◆ m_linked_list

template<typename Node >
shaderstoragebuffer<Node> tatooine::gl::linked_list_texture< Node >::m_linked_list
private

◆ m_list_length_clear_buffer

template<typename Node >
pixelunpackbuffer<unsigned int> tatooine::gl::linked_list_texture< Node >::m_list_length_clear_buffer
private

◆ m_list_length_tex

template<typename Node >
tex2r32ui tatooine::gl::linked_list_texture< Node >::m_list_length_tex
private

◆ m_num_nodes

template<typename Node >
size_t tatooine::gl::linked_list_texture< Node >::m_num_nodes
private

◆ m_w

template<typename Node >
size_t tatooine::gl::linked_list_texture< Node >::m_w
private

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