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