20void QSSGParticleBuffer::resize(
int particleCount,
int particleSize)
22 if (particleCount == 0) {
23 m_particlesPerSlice = 0;
27 m_particleBuffer.resize(0);
30 int vec4PerParticle = ceilDivide(particleSize, 16);
31 int vec4s = particleCount * vec4PerParticle;
32 int width = divisibleBy(std::sqrt(vec4s), vec4PerParticle);
33 int height = ceilDivide(vec4s, width);
34 m_particlesPerSlice = width / vec4PerParticle;
35 m_particleCount = particleCount;
36 width = divisibleBy(width, 4);
37 height = divisibleBy(height, 4);
38 m_sliceStride = width * 16;
39 m_size = QSize(width, height);
40 m_particleBuffer.resize(m_sliceStride * height);
static int ceilDivide(int a, int b)
static QT_BEGIN_NAMESPACE int divisibleBy(int a, int b)