Alex Szpakowski d26002f5cc Revamped and streamlined retina / high-DPI support (resolves issue #1122).
With the highdpi window flag enabled on a retina-capable display and OS, content should now appear to the user at the same size and in the same positions as with the flag disabled.

As a result, mouse and touch coordinates, Texture and graphics dimensions, and the graphics coordinate system now use pixel density-scaled units instead of pixels. Raw pixel units should generally only be used for things such as shader algorithms which execute per-pixel and rely on accurate pixel dimensions. love.window.fromPixels and friends typically don’t need to be used anymore.

Images, Canvases, and Fonts can have an optional explicit ‘pixel density’ set when creating them. This allows for easily loading high pixel density content which displays at the same size as regular or low pixel density content.

API changes:

- Added Texture:getPixelWidth/getPixelHeight/getPixelDimensions and Texture:getPixelDensity. Texture:getWidth/getHeight return the pixel density-scaled width and height (as it will appear on the screen when drawn) rather than the number of pixels on each texture dimension.

- Added love.graphics.getPixelWidth/getPixelHeight/getPixelDimensions.

- Added optional ‘pixeldensity’ field to the settings table parameter of love.graphics.newImage. It defaults to 1, or if the file the Image was loaded from has “@2x”, “@3x”, etc. at the end of its name, it uses that number as the pixel density scale by default.

- love.graphics.newCanvas now takes a table as its third parameter, with fields “format”, “msaa”, and “pixeldensity”. pixeldensity defaults to the main screen’s pixel density. The width and height parameters specify the visual size that the Canvas will be drawn at / can be drawn to (pixel density-scaled units).

- love.graphics.newVideo accepts a table as its second parameter, with optional fields “audio” and “pixeldensity”. pixeldensity defaults to 1.

- love.graphics.newFont variants have an optional pixeldensity parameter at the end of the argument list. For TrueType fonts this defaults to the current pixel density scale of the screen, and for BMFonts and ImageFonts this defaults to 1.

- Added Font:getPixelDensity.

- Renamed love.window.getPixelScale to love.window.getPixelDensity.

--HG--
branch : minor
2016-12-29 23:55:51 -04:00
2016-08-29 23:15:00 -03:00
2015-07-05 17:32:45 +02:00
2016-01-01 00:05:06 -04:00
2015-12-22 00:07:24 -05:00
2015-12-22 00:07:24 -05:00

LÖVE is an awesome framework you can use to make 2D games in Lua. It's free, open-source, and works on Windows, Mac OS X, Linux, Android, and iOS.

Build Status: Windows

Documentation

We use our wiki for documentation. If you need further help, feel free to ask on our forums, and last but not least there's the irc channel #love on OFTC.

Compilation

###Windows Follow the instructions at the megasource repository page.

###*nix Run platform/unix/automagic from the repository root, then run ./configure and make.

$ platform/unix/automagic
$ ./configure
$ make

###Mac OS X Download the required frameworks from here and place them in /Library/Frameworks/.

Then use the Xcode project found at platform/xcode/love.xcodeproj to build the love-macosx target.

###iOS Download the required libraries from here and place the include and libraries folders into the platform/xcode/ios folder.

Then use the Xcode project found at platform/xcode/love.xcodeproj to build the love-ios target.

See readme-iOS.rtf for more information.

###Android Visit the Android build repository for build instructions.

Repository information

We use the 'default' branch for development, and therefore it should not be considered stable. Also used is the 'minor' branch, which is used for features in the next minor version and it is not our development target (which would be the next revision - version numbers are formatted major.minor.revision.)

We tag all our releases (since we started using mercurial), and have binary downloads available for them.

Experimental changes are developed in the separate love-experiments repository.

Contributing

The best places to contribute are through the Bitbucket issue tracker and the official IRC channel. For code contributions, pull requests and patches are welcome. Be sure to read the source code style guide.

Builds

Releases are found in the 'downloads' section on bitbucket, are linked on the site, and there's a ppa for ubuntu, ppa:bartbes/love-stable.

There are also unstable/nightly builds:

Dependencies

  • SDL2
  • OpenGL 2.1+ / OpenGL ES 2+
  • OpenAL
  • Lua / LuaJIT / LLVM-lua
  • FreeType
  • PhysicsFS
  • ModPlug
  • mpg123
  • Vorbisfile
  • Theora
S
Description
No description provided
Readme 100 MiB
Languages
C++ 83.6%
C 13.4%
Lua 2%
Objective-C++ 0.5%
CMake 0.2%
Other 0.1%