Nugget
Bare-metal libraries and examples for the original PlayStation
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Friends | List of all members
psyqo::DynamicOrderingTable< safety > Class Template Reference

An ordering table whose bucket count is chosen at runtime. More...

#include <psyqo/ordering-table.hh>

Inheritance diagram for psyqo::DynamicOrderingTable< safety >:
Inheritance graph
[legend]
Collaboration diagram for psyqo::DynamicOrderingTable< safety >:
Collaboration graph
[legend]

Public Member Functions

 DynamicOrderingTable (psyqo::Fragments::ChainEntry *storage, size_t buckets)
 
void clear ()
 
template<Fragment Frag>
void insert (Frag &frag, int32_t z)
 Inserts a fragment into the ordering table, as OrderingTable::insert.
 
size_t size () const
 

Public Attributes

psyqo::Fragments::ChainEntry * m_table
 

Friends

class GPU
 

Additional Inherited Members

- Static Public Member Functions inherited from psyqo::OrderingTableBase
static void clear (psyqo::Fragments::ChainEntry *table, size_t size)
 

Detailed Description

template<Safe safety = Safe::Yes>
class psyqo::DynamicOrderingTable< safety >

An ordering table whose bucket count is chosen at runtime.

Behaves like OrderingTable, for when the number of buckets is only known at runtime, for example when it comes from loaded data. It does not own its storage: the caller provides buckets + 1 entries, which must outlive the table and every frame the GPU reads it in. Schedule it with GPU::chain.

Constructor & Destructor Documentation

◆ DynamicOrderingTable()

template<Safe safety = Safe::Yes>
psyqo::DynamicOrderingTable< safety >::DynamicOrderingTable ( psyqo::Fragments::ChainEntry *  storage,
size_t  buckets 
)
inline

Member Function Documentation

◆ clear()

template<Safe safety = Safe::Yes>
void psyqo::DynamicOrderingTable< safety >::clear ( )
inline

◆ insert()

template<Safe safety = Safe::Yes>
template<Fragment Frag>
void psyqo::DynamicOrderingTable< safety >::insert ( Frag &  frag,
int32_t  z 
)
inline

Inserts a fragment into the ordering table, as OrderingTable::insert.

◆ size()

template<Safe safety = Safe::Yes>
size_t psyqo::DynamicOrderingTable< safety >::size ( ) const
inline

Friends And Related Symbol Documentation

◆ GPU

template<Safe safety = Safe::Yes>
friend class GPU
friend

Member Data Documentation

◆ m_table

template<Safe safety = Safe::Yes>
psyqo::Fragments::ChainEntry* psyqo::DynamicOrderingTable< safety >::m_table

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