push = function( layer )
love.graphics.push( 'transform' ) -- Shouldn't interfere
love.graphics.origin() -- Prevent scaling and zooming and etc multiple times
love.graphics.translate( self.offsetX + self.screenX, self.offsetY + self.screenY ) -- Allow for rotation and zooming to occur from center of screen
love.graphics.rotate( self.rotation )
love.graphics.scale( self.scaleX * layer.relativeScale, self.scaleY * layer.relativeScale )
love.graphics.translate( -self.offsetX - self.screenX, -self.offsetY - self.screenY ) -- Move zoom and rotation back to normal for drawing.
love.graphics.translate( self.offsetX + self.screenX, self.offsetY + self.screenY )
love.graphics.translate( -self.x, -self.y )
end
pop = function( layer )
love.graphics.pop()
end
Some of the code could be condensed, I just made them separate in order to be easier to follow.
GitHub | MLib - Math and shape intersections library | Walt - Animation library | Brady - Camera library with parallax scrolling | Vim-love-docs - Help files and syntax coloring for Vim