-------------------------------------------------------------------------------------- Description: Adds quad instances for rendering. This function may be called from TBB threads. Arguments: effectKey - a unique key for a previously registered effect sprites - quad instance data count - number of instances to add ------------------------------------------------------------------------------------
| 103 | // count - number of instances to add |
| 104 | // -------------------------------------------------------------------------------------- |
| 105 | void Tr2QuadRenderer::AddQuads( EffectKey effectKey, const void* sprites, size_t count ) |
| 106 | { |
| 107 | auto found = m_effects.find( effectKey ); |
| 108 | if( found == m_effects.end() ) |
| 109 | { |
| 110 | return; |
| 111 | } |
| 112 | auto record = found->second; |
| 113 | auto& tls = record->combinable.local(); |
| 114 | auto size = count * record->instanceSize; |
| 115 | if( tls.buffer.size() < tls.addedSize + size ) |
| 116 | { |
| 117 | tls.buffer.resize( |
| 118 | "Tr2InstancePool::buffer", |
| 119 | std::max( tls.buffer.size() * 2, tls.buffer.size() + std::max( count, size_t( 512 ) ) * record->instanceSize ) ); |
| 120 | } |
| 121 | memcpy( tls.buffer.get() + tls.addedSize, sprites, size ); |
| 122 | tls.addedSize += uint32_t( size ); |
| 123 | m_bufferSize += uint32_t( size ); |
| 124 | } |
| 125 | |
| 126 | // -------------------------------------------------------------------------------------- |
| 127 | // Description: |
no test coverage detected