Fixed smooth lines with love.graphics.origin() after love.graphics.scale

This commit is contained in:
Alex Szpakowski
2013-05-12 16:13:32 -03:00
parent e9d0204cdc
commit aa59761177
4 changed files with 37 additions and 34 deletions
+7 -7
View File
@@ -199,12 +199,12 @@ bool Graphics::setMode(int width, int height)
void Graphics::unSetMode()
{
// Window creation may destroy the OpenGL context, so we must save the state.
// Window re-creation may destroy the GL context, so we must save the state.
if (isCreated())
savedState = saveState();
// Unload all volatile objects. These must be reloaded after
// the display mode change.
// Unload all volatile objects. These must be reloaded after the display
// mode change.
Volatile::unloadAll();
gl.deInitContext();
@@ -266,7 +266,8 @@ bool Graphics::isCreated() const
void Graphics::setScissor(int x, int y, int width, int height)
{
glEnable(GL_SCISSOR_TEST);
glScissor(x, getRenderHeight() - (y + height), width, height); // Compensates for the fact that our y-coordinate is reverse of OpenGLs.
// Compensates for the fact that our y-coordinate is reverse of OpenGL's.
glScissor(x, getRenderHeight() - (y + height), width, height);
}
void Graphics::setScissor()
@@ -1005,7 +1006,7 @@ static void draw_overdraw(Vector *overdraw, size_t count, float pixel_size, bool
glDisableClientState(GL_COLOR_ARRAY);
// "if GL_COLOR_ARRAY is enabled, the value of the current color is
// undefined after glDrawArrays executes"
gl.setColor(c);
delete[] colors;
@@ -1299,8 +1300,7 @@ void Graphics::shear(float kx, float ky)
void Graphics::origin()
{
glLoadIdentity();
pixel_size_stack.clear();
pixel_size_stack.push_back(1);
pixel_size_stack.back() = 1;
}
} // opengl
+2 -2
View File
@@ -124,7 +124,7 @@ int SpriteBatch::addg(Geometry *geom, float x, float y, float a, float sx, float
return -1;
if (geom->getVertexCount() != 4)
throw love::Exception("Can only add quadliteral geometries to SpriteBatch");
throw love::Exception("Can only add quadrilateral geometries to SpriteBatch");
for (size_t i = 0; i < 4; i++)
sprite[i] = geom->getVertex(i);
@@ -169,9 +169,9 @@ void SpriteBatch::unlock()
void SpriteBatch::setImage(Image *newimage)
{
newimage->retain();
image->release();
image = newimage;
image->retain();
}
Image *SpriteBatch::getImage()