Commits

Anonymous committed 1c2a050

Apply patch for issue #219

  • Participants
  • Parent commits 0aa2150

Comments (0)

Files changed (4)

File src/modules/graphics/opengl/SpriteBatch.cpp

 		glBindBuffer(GL_ARRAY_BUFFER, 0);
 	}
 
+	void SpriteBatch::setImage(Image * newimage)
+	{
+		image->release();
+		image = newimage;
+		image->retain();
+	}
+
 	void SpriteBatch::draw(float x, float y, float angle, float sx, float sy, float ox, float oy) const
 	{
 		static Matrix t;

File src/modules/graphics/opengl/SpriteBatch.h

 		void * lock();
 		void unlock();
 
+		void setImage(Image * newimage);
+
 		// Implements Drawable.
 		void draw(float x, float y, float angle, float sx, float sy, float ox, float oy) const;
 

File src/modules/graphics/opengl/wrap_SpriteBatch.cpp

 		return 0;
 	}
 
+	int w_SpriteBatch_setImage(lua_State * L)
+	{
+		SpriteBatch * t = luax_checkspritebatch(L, 1);
+		Image * image = luax_checktype<Image>(L, 2, "Image", GRAPHICS_IMAGE_T);
+		t->setImage(image);
+		return 0;
+	}
+
 	static const luaL_Reg functions[] = {
 		{ "add", w_SpriteBatch_add },
 		{ "addq", w_SpriteBatch_addq },
 		{ "clear", w_SpriteBatch_clear },
 		{ "lock", w_SpriteBatch_lock },
 		{ "unlock", w_SpriteBatch_unlock },
+		{ "setImage", w_SpriteBatch_setImage },
 		{ 0, 0 }
 	};
 
 
 } // opengl
 } // graphics
-} // love
+} // love

File src/modules/graphics/opengl/wrap_SpriteBatch.h

 	int w_SpriteBatch_clear(lua_State * L);
 	int w_SpriteBatch_lock(lua_State * L);
 	int w_SpriteBatch_unlock(lua_State * L);
+	int w_SpriteBatch_setImage(lua_State * L);
+
 	int luaopen_spritebatch(lua_State * L);
 
 } // opengl