diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 000000000..def5f8d4b
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,295 @@
+2.0.2
+=====
+
+* Added ARMV7S, ARM64 and X86_64 support for iOS
+* Added unofficial Java support
+* Added xxhdpi and xxxhdpi icons for Android
+* Added initial support for Android (without legacy)
+* Upgraded to a newer SDL2 release for desktop
+* Improved the behavior of Image.setPixels
+* Improved Image.fromBytes for HTML5
+* Improved Image.fillRect for HTML5
+* Fixed issue causing "bin" directories to appear on rebuild
+* Fixed issues with Android ADB
+* Fixed an issue with HTML5 copyPixels
+* Fixed an infinite loop when loading WAV audio
+* Fixed an infinite loop when loading WAV audio (legacy)
+* Fixed GL.getShaderPrecisionFormat (legacy)
+* Removed unnecessary iOS libraries (legacy)
+* Fixed Android x86 builds (legacy)
+* Fixed TextField leading (legacy)
+
+
+2.0.1
+=====
+
+* Added GL.isContextLost
+* Added Renderer onRenderContextLost/onRenderContextRestored
+* Improved Android device version check
+* Changed Firefox to type WEB instead of MOBILE
+* Fixed HTML5 touch event coordinates
+
+
+2.0.0
+=====
+
+* Improved the "lime rebuild" command
+* Added a "-dryrun" flag to help test the tools
+* Fixed zero width/height in lime.graphics.Image
+* Populate environment with HXCPP config defines
+* Fixed double dispatch of HTML5 mouse events
+* Improved the "lime.embed" JS command
+* Fixed "lime create openfl"
+* Made fixes to support the newer Blackberry SDK
+* Fixed GraphicsPath on Neko (legacy)
+
+
+2.0.0-beta
+==========
+
+* Merged the Lime "legacy" codebase
+* Initial steps towards Lime node.js support
+* Sped up rasterization of SVG icon images
+* Sped up splash image generation
+* Improved lime.graphics.Image for some browsers
+* Added native PNG/JPG encoding
+* Improved $variable handling in project parsing
+* Other minor fixes
+
+
+2.0.0-alpha.8
+=============
+
+* Guarded certain CFFI calls
+* Fixed discovery of Java install on OS X
+* Omitting Android force downgrade on old devices
+
+
+2.0.0-alpha.7
+=============
+
+* Improved handling of haxelib library versions
+* Add patched haxe.CallStack to fix C++ stack order
+* Fix fonts to use the true font name
+* Automatically register fonts embedded in the project
+* Fixed and documented the "-args" tool flag
+* Added the force downgrade argument when installing on Android
+
+
+2.0.0-alpha.6
+=============
+
+* Added initial support for cubic bezier font outlines
+* Added better OpenFL ASCII color on Mac
+* Maybe Java optional during build process for SVG rasterizer
+* Improved "isText" file detection
+* Fixed loading of type BINARY files as TEXT
+
+
+2.0.0-alpha.5
+=============
+
+* Added patched Haxe Boot class, to fix Std.is on Safari
+* Added support for the "openfl" command
+* Using the proper font name when embedding in Flash
+* Improved the handling of font family name detection
+* Minor fixes
+
+
+2.0.0-alpha.4
+=============
+
+* Improved parsing of HXML when compiling for the Flash target
+* Improved the `` data system
+* Enabled splash screen generation for iOS again
+
+
+2.0.0-alpha.3
+=============
+
+* Fixed handling of HXML with comments when targeting Flash
+* Added initial support for ".bundle" asset folders
+* Added initial support for ``
+* Passing "-verbose" when appropriate to library handlers
+* Improved code completion for FlashDevelop
+* Improved population of defines in project file handling
+* Fixed "lime create extension"
+* Improvements to `` tag merging
+* Added Tilesheet TILE_RECT support (legacy)
+
+
+2.0.0-alpha.2
+=============
+
+* Added Lime "legacy" binaries for OpenFL v2 native support
+* Merged the Aether tools into Lime
+* Improved the "lime rebuild" command
+* Added onSaveInstanceState/onRestoreInstanceState on Android
+* Added TouchEvent handling on HTML5
+* Fixed handling of GL depth and stencil buffers
+* Fixed ImageDataUtil fillRect, copyPixels, colorTransform
+* Fixed iOS framework paths which include spaces
+* Fixed ByteArray.writeBytes when the length is zero
+* Fixed the iOS linker flags project option
+* Moved to JSON asset libraries instead of serialized ones
+* Improved handling of SWF asset embedding
+* Improved handling of HTML5 key events
+* Disabled HTML5 page scrolling using the arrow keys
+* Improved ByteArray support on HTML5
+* Fixed HTML5 mouse coordinates when letterboxing
+* Fixed "bin" tool paths when Lime is not included in the project
+* Many other small fixes
+* Fixed sound.length when using streaming OGG audio (legacy)
+* Added a proper shutdown for OpenAL audio (legacy)
+* Fixed null data in URLLoader on Neko (legacy)
+* Added a dead zone filter for joystick events (legacy)
+
+2.0.0-alpha
+===========
+
+* Created an all-new Lime API
+* The core architecture is built around Application, Window and Renderer
+* Events are similar to C# or signals/slots, and strongly-typed
+* Add support for Flash, DOM, Canvas or GL render contexts
+* Added bindings to OpenAL, as well a simple unified audio API
+* Added networking support, with bindings to cURL on native platforms
+* Added cross-target pixel image manipulation features
+* Fixed support for Xcode 6 publishing for iOS 8
+* Fixed support for BlackBerry 10.3
+* Restored support for old Android devices
+* Added support for static linking on Windows, Mac and Linux
+* Added support for externally defined platform targets
+* Improved Flash asset embedding, to handle larger projects
+* Added Firefox OS publishing using "lime publish firefox"
+* Made the asset library system more flexible
+* Many other tool improvements
+
+
+1.0.1
+=====
+
+* Fixed BlackBerry support
+* Fixed a memory leak when using LZMA decoding
+
+
+1.0.0
+=====
+
+
+0.9.9
+=====
+
+* Fixed ACTIVATE/DEACTIVATE for Windows on minimize/restore
+* Fixed Mac fullscreen handling
+* Silenced "missing NDLL" warning when not in -verbose mode
+* Added "-nocolor" option
+
+
+0.9.8
+=====
+
+* Fixed issues with Android JNI
+* Fixed a GPU texture issue on iOS
+* Fixed keyboard to only show if a TextField is type INPUT
+* Fixed support for OpenGL on Nvidia drivers for Linux
+* Fixed a bug where OpenGL textures were freed improperly
+* Improved support for reading audio file length
+* Added support for custom user agents in URL requests
+* Other minor fixes
+
+
+0.9.7
+=====
+
+* Merged Lime with NME for code collaboration
+* Fixed software rendering path
+* Fixed compile for older Android devices
+* Added OpenAL support for BlackBerry
+* Moved to C++11 by default for iOS builds
+* Added additional Android extension callbacks
+* Improved handling of Android keyboard/gamepad input
+* Confirmed support for the Amazon FireTV
+* Improved cursor visibility when switching to/from fullscreen
+* Improved support for iOS virtual text input
+* Fixed support for BWF wave files
+* Fixed color order for PNG encoding
+
+
+0.9.6
+=====
+
+* Fixed Android library instantiation order
+* Fixed Android onKeyUp event
+* Fixed volume and back keys on Android
+* Added stereoscopic 3D support on Android
+* Fixed TextField.textColor rendering
+* Improved support for key codes
+* Improved support for looping audio
+* Minor fixes
+
+0.9.5
+=====
+
+* Improvements to Lime wrapper
+* Fixed cURL to support larger header sizes
+* Updated the SDL2 backend to support initialization without AA if not supported
+* Added support for Android "immersive mode"
+* Improved default _sans, _serif and _typewriter font matching for Mac and iOS
+* Multiple improvements to Android JNI support
+* Added "count" support for drawTiles rendering
+* Optimized renderer to perform more with a single draw array
+* Improvements for anti-aliased hardware lines
+* Optimizations to tessellation algorithm
+* Added better support for pre-multiplied alpha, currently per surface
+* Memory fixes for Freetype fonts
+* Fix listing of Lime samples when running "lime create openfl"
+* Added proper charCode and keyCode support for Android keyboard input
+* Minor improvement to OpenAL sound
+* Multi-threading fix for Android
+* Fixed OpenGL ES 2 context support for Tizen
+* Keyboard event support on Tizen
+* Resolved rare issue when loading BitmapData from bytes
+* Minor fixes for Emscripten
+* Updated for automated builds: http://openfl.org/builds/lime
+
+
+0.9.4
+=====
+
+* Fixed support for 8-bit PNG images with alpha
+* Fixed software fallback for certain older cards
+
+
+0.9.3
+=====
+
+* Improved the Android extension API
+* Improved OpenAL audio panning behavior
+* Fixed crash in ColorMatrixFilter
+* Fixed GL drawArrays issue on desktop
+
+
+0.9.2
+=====
+
+* Fixed Tizen storage directory
+* Fixed support for Emscripten
+
+
+0.9.1
+=====
+
+* Lime wrapper improvements
+* Improved performance when loading OGG samples in memory
+* Added support for the Tizen emulator
+
+
+0.9.0
+=====
+
+* Added Tizen support
+* Initial wrapper implementation
+* Android JNI improvements
+* Add OpenGL context lost/restored events
+* Fixed support for Android OpenAL audio
+
diff --git a/haxelib.json b/haxelib.json
index ef170b019..cb79a3e79 100644
--- a/haxelib.json
+++ b/haxelib.json
@@ -4,8 +4,8 @@
"license": "MIT",
"tags": [],
"description": "A flexible lightweight layer for Haxe cross-platform developers",
- "version": "2.0.1",
- "releasenote": "Minor fixes to touch events and Android handling",
+ "version": "2.0.2",
+ "releasenote": "iOS and Android build improvements, beta Java support",
"contributors": [ "singmajesty" ],
"dependencies": {}
}
diff --git a/lime/graphics/utils/ImageDataUtil.hx b/lime/graphics/utils/ImageDataUtil.hx
index 928e46509..5f0c407b5 100644
--- a/lime/graphics/utils/ImageDataUtil.hx
+++ b/lime/graphics/utils/ImageDataUtil.hx
@@ -599,26 +599,31 @@ class ImageDataUtil {
public static function setPixels (image:Image, rect:Rectangle, byteArray:ByteArray):Void {
- var len = Math.round (4 * rect.width * rect.height);
+ var len = Math.round (rect.width * rect.height);
// TODO: optimize when rect is the same as the buffer size
var data = image.buffer.data;
- var offset = Math.round (4 * image.buffer.width * (rect.y + image.offsetX) + (rect.x + image.offsetY) * 4);
- var pos = offset;
- var boundR = Math.round (4 * (rect.x + rect.width + image.offsetX));
+ var offset = Math.round (image.buffer.width * (rect.y + image.offsetX) + (rect.x + image.offsetY));
+ var pos = offset * 4;
+ var boundR = Math.round ((rect.x + rect.width + image.offsetX));
var width = image.buffer.width;
+ var color;
for (i in 0...len) {
- if (((pos) % (width * 4)) > boundR - 1) {
+ if (((pos) % (width * 4)) >= boundR * 4) {
- pos += width * 4 - boundR;
+ pos += (width - boundR) * 4;
}
- data[pos] = byteArray.readByte ();
- pos++;
+ color = byteArray.readUnsignedInt ();
+
+ data[pos++] = (color & 0xFF0000) >>> 16;
+ data[pos++] = (color & 0x0000FF00) >>> 8;
+ data[pos++] = (color & 0x000000FF);
+ data[pos++] = (color & 0xFF000000) >>> 24;
}