Browse Source

Fixed love.graphics.draw(particlesystem, …) to actually use the transformation parameters.

--HG--
branch : minor
Alex Szpakowski 8 years ago
parent
commit
955fb9b60c

+ 1 - 3
src/modules/graphics/ParticleSystem.cpp

@@ -1048,7 +1048,7 @@ void ParticleSystem::update(float dt)
 	prevPosition = position;
 }
 
-bool ParticleSystem::prepareDraw(Graphics *gfx, const Matrix4 &m)
+bool ParticleSystem::prepareDraw(Graphics *gfx)
 {
 	uint32 pCount = getCount();
 
@@ -1057,8 +1057,6 @@ bool ParticleSystem::prepareDraw(Graphics *gfx, const Matrix4 &m)
 
 	gfx->flushStreamDraws();
 
-	Graphics::TempTransform transform(gfx, m);
-
 	const vertex::XYf_STf *textureVerts = texture->getQuad()->getVertices();
 	Vertex *pVerts = (Vertex *) buffer->map();
 	Particle *p = pHead;

+ 1 - 1
src/modules/graphics/ParticleSystem.h

@@ -612,7 +612,7 @@ protected:
 		int quadIndex;
 	};
 
-	bool prepareDraw(Graphics *gfx, const Matrix4 &m);
+	bool prepareDraw(Graphics *gfx);
 
 	// Pointer to the beginning of the allocated memory.
 	Particle *pMem;

+ 3 - 1
src/modules/graphics/opengl/ParticleSystem.cpp

@@ -54,9 +54,11 @@ void ParticleSystem::draw(Graphics *gfx, const Matrix4 &m)
 {
 	using namespace vertex;
 
-	if (!prepareDraw(gfx, m))
+	if (!prepareDraw(gfx))
 		return;
 
+	Graphics::TempTransform transform(gfx, m);
+
 	if (Shader::current && texture.get())
 		Shader::current->checkMainTexture(texture);