فهرست منبع

Fixed love.graphics.reset reverting the current font to nil and breaking love.graphics.print.

Alex Szpakowski 11 سال پیش
والد
کامیت
f972c9923f
1فایلهای تغییر یافته به همراه6 افزوده شده و 5 حذف شده
  1. 6 5
      src/modules/graphics/opengl/Graphics.cpp

+ 6 - 5
src/modules/graphics/opengl/Graphics.cpp

@@ -615,6 +615,12 @@ Color Graphics::getBackgroundColor() const
 
 void Graphics::setFont(Font *font)
 {
+	// Hack: the Lua-facing love.graphics.print function will set the current
+	// font if needed, but only on its first call... we want to make sure a nil
+	// font is never accidentally set (e.g. via love.graphics.reset.)
+	if (font == nullptr)
+		return;
+
 	DisplayState &state = states.back();
 	state.font.set(font);
 }
@@ -1289,11 +1295,6 @@ void Graphics::pop()
 	{
 		DisplayState &newstate = states[states.size() - 2];
 
-		// Hack: the Lua-facing love.graphics.print function will set the current
-		// font if needed, but only on its first call... we always want a font.
-		if (newstate.font.get() == nullptr)
-			newstate.font.set(states.back().font.get());
-
 		restoreStateChecked(newstate);
 
 		// The last two states in the stack should be equal now.