Skip to content

Commit

Permalink
Merge branch '8.3.0-Dev' into 9.0.0-dev
Browse files Browse the repository at this point in the history
  • Loading branch information
joshtynjala committed Mar 3, 2025
2 parents e3dcc36 + 9f9a5b9 commit 31c2f7c
Show file tree
Hide file tree
Showing 117 changed files with 3,381 additions and 2,364 deletions.
170 changes: 93 additions & 77 deletions .github/workflows/main.yml

Large diffs are not rendered by default.

91 changes: 91 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,97 @@
Changelog
=========

8.2.2 (12/19/2024)
------------------

* Fixed broken breakpoints in HTML5 debug builds.
* Fixed unecessary operations in `Promise` by inlining some getter functions.
* Fixed failure to read `gradle-plugin` attribute in `<config:android>` tag.
* Fixed failed installation of app on iOS Simulator by choosing only simulators that are considered available.
* Fixed `lime test ios` to install and launch on a device when using Xcode 16 or newer.
* Fixed reported version of OpenAL library.
* Fixed memory cleanup when encoding PNG and JPEG images.
* Fixed error reporting `@rpath/libhl.dylib` not found on macOS when using HashLink nightly build.
* Fixed building HashLink on macOS that required cleaning between compiles.
* Fixed `embedBytes()` macro incorrectly running when `embedByteArray()` macro was also running.
* Fixed `ImageDataUtil.copyPixels()` causing crash on HashLink.
* Fixed missing `neko` target flag when cross-compiling to Windows without `-mingw` or `-cpp` flags.
* Fixed occasional failure running Lime tools by switching certain paths from relative to absolute.
* Fixed missing warning when `lime rebuild` commands fail because C++ source is not available from Haxelib.
* Fixed command instructions to specify requirement for absolute paths when setting up a platform.
* Added detection of `-cpp` flag when cross-compiling to Windows, which works like `-mingw`.
* Updated FreeType submodule to version 2.12.1 again. Resolved issues encountered when using this version in Lime 8.2.0.

8.2.1 (11/01/2024)
------------------

* Fixed `Sys.exit()` causing hang instead of exiting application.
* Fixed paths for _.ndll_ files when targeting Raspberry Pi.
* Fixed compiling `BackgroundWorker` when targeting HashLink before Haxe 4.
* Fixed errors compiling `ThreadPool` for HashLink with Haxe 4.0 and 4.1.
* Fixed `Font.renderGlyph` to support 32-bit colors, including alpha.
* Fixed OpenFL line height issues by rolling back FreeType submodule to version 2.9.1.

8.2.0 (10/21/2024)
------------------

* Added Apple Silicon (ARM64) support for macOS target.
* Added new `hlc` target to support compiling for HashLink/C. Both generates C code and compiles to an executable (requires Haxe 4.3.4 or newer).
* Added support for inserting attributes into the `<application/>` or `<activity/>` elements of _AndroidManifest.xml_
* Added `createPerspective()` to `Matrix4`.
* Added `removeLibrary()` to `lime.utils.Assets`, which removes a library, but makes unloading optional.
* Added `SINGLE_THREADED` mode to `ThreadPool`, which is used by default when threading is not available.
* Added `workLoad` property to `ThreadPool` to limit total time spent per frame on green threads.
* Added optional `-noalias` flag to `lime setup` to skip creating the **lime** executable alias.
* Added optional `-nosign` flag to `lime build ios` to skip code signing when targeting iOS.
* Added support for `-64` flag to force compiling for 64-bit Raspberry Pi.without requiring a custom template.
* Added option to configure `preserveDrawingBuffer` on HTML5 target.
* Added LZMA compression to HTML5 target.
* Added automatic deletion of "stale" assets and dependency files.
* Added `VIEW` intents on Android target.
* Added support for `-mingw` flag when cross-compiling to Windows from another operating system.
* Added support for `-cpp` flag when cross-compiling to Linux from another operating system (requires homebrew-macos-cross-toolchains on macOS).
* Added support for `tsa` option in `<config:air>` to pass timestamp URL to Adobe AIR's adt tool.
* Fixed `lime display` command incorrectly printing old _.hxml_ content after _project.xml_ file has been modified, skipping requirement to build project or restart editor to get valid code intelligence.
* Fixed HashLink _.app_ bundles on macOS to include all Homebrew library dependencies, so that they run on computers without Homebrew.
* Fixed `@android:style/Theme.NoTitleBarnull` in generated _AndroidManifest.xml_.
* Fixed `Image` in a web worker by storing it as `DATA` type.
* Fixed cURL C++ to Haxe callbacks when targeting HashLink.
* Fixed icon generation for Android target with `accept-file-intent` config.
* Fixed exception in Lime tools when resolving full path of Neko _.n_ file.
* Fixed keyboard input incorrectly getting enabled by default when creating a new window, which could show an IME when unexpected.
* Fixed `ALC.getContextsDevice()` when targeting HashLink.
* Fixed potentially uninitialized values in `Matrix3`.
* Fixed wrong type for `Socket.objectEncoding` in Flash/AIR externs.
* Fixed `BackgroundWorker` not using threads on HashLink.
* Improved support for Raspberry Pi 64-bit builds.
* Changed custom `haxe.Timer` to fall back to the original in a macro context.
* Changed `Promise` to remove `@:generic` when in a macro context.
* Changed `Matrix3` to be an abstract over `Float32Array`, similar to `Matrix4`.
* Changed Raspberry Pi keyboard shortcut to exit to Ctrl + Esc.
* Changed `-64` and `-32` flags for Intel architectures to `-x86_64` and `-x86_32` to make their purpose more clear (the old flags still work, for now).
* Removed Joystick trackball APIs because they is supported only on Linux, with a single piece of hardware, and will be removed from SDL 3.
* Removed ARMV5 architecture from Android rebuilds by default because hxcpp doesn't support it with NDK versions >= 20.
* Removed 32-bit _liblime.iphonesim.a_ as a default binary because 32-bit iOS is no longer supported by Apple.
* Updated Cairo submodule to version 1.17.6 and point to upstream repository instead of fork.
* Updated cURL submodule to version 7.83.1 and point to upstream repository instead of fork.
* Updated efsw submodule to version 1.2.0 and point to upstream repository instead of fork.
* Updated FreeType submodule to version 2.12.1 and point to upstream repository instead of fork.
* Updated HarfBuzz submodule to version 6.0.0 and point to upstream repository instead of fork.
* Updated libpng submodule to version 1.6.37 and point to upstream repository instead of fork.
* Updated libjpg-turbo submodule to version 2.1.3 and point to upstream repository instead of fork.
* Updated libvpx submodule to version 1.11.0 and point to upstream repository instead of fork.
* Updated libwebm submodule to version 1.0.0.28 and point to upstream repository instead of fork.
* Updated Mbed TLS submodule to version 2.28.7 and point to upstream repository instead of fork.
* Updated MojoAL submodule to commit e08dbf3 and point to upstream repository instead of fork.
* Updated Ogg submodule to version 1.3.5 and point to upstream repository instead of fork.
* Updated OpenAL-Soft submodule to version 1.20.1 and point to upstream repository instead of fork.
* Updated Pixman submodule to version 0.42.2 and point to upstream repository instead of fork.
* Updated SDL submodule to version 2.24.0 and point to upstream repository instead of fork.
* Updated Tinyfiledialogs submodule to version 3.8.8 (still uses fork due to SourceForge limitationss).
* Updated Vorbis submodule to version 1.3.7 and point to upstream repository instead of fork.
* Updated zlib submodule to version 1.2.12 and point to upstream repository instead of fork.

8.1.3 (07/22/2024)
------------------

Expand Down
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
MIT License
===========

Copyright (c) 2013-2024 Joshua Granick and other Lime contributors
Copyright (c) 2013-2025 Joshua Granick and other Lime contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
2 changes: 1 addition & 1 deletion NOTICE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Notices
=======

### Lime
Copyright (c) 2013-2024 Joshua Granick and other Lime contributors
Copyright (c) 2013-2025 Joshua Granick and other Lime contributors

This product bundles cairo 1.15.2, which is available under an
"MPL 1.1" license. For details, see [project/lib/cairo/](project/lib).
Expand Down
16 changes: 15 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,12 @@ Lime is free, open-source software under the [MIT license](LICENSE.md).
Installation
============

First install the latest version of [Haxe](http://www.haxe.org/download).
First, install the latest version of [Haxe](http://www.haxe.org/download).

Then, install Lime from Haxelib and run Lime's setup command.

haxelib install lime
haxelib run lime setup


Development Builds
Expand Down Expand Up @@ -102,3 +107,12 @@ Lime currently supports the following targets:
lime test hl

Desktop builds are currently designed to be built on the same host OS


Join the Community
==================

Have a question? Want a new place to hang out?

* [Forums](https://community.openfl.org/c/lime/19)
* [Discord](https://discordapp.com/invite/tDgq8EE)
3 changes: 3 additions & 0 deletions docs/ImportAll.hx
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ import lime.net.HTTPRequest;
import lime.net.HTTPRequestHeader;
import lime.net.HTTPRequestMethod;
import lime.net.URIParser;
import lime.system.BackgroundWorker;
import lime.system.CFFI;
import lime.system.CFFIPointer;
import lime.system.Clipboard;
Expand All @@ -125,6 +126,7 @@ import lime.system.Sensor;
import lime.system.SensorType;
import lime.system.System;
import lime.system.ThreadPool;
import lime.system.WorkOutput;
import lime.text.harfbuzz.HB;
import lime.text.harfbuzz.HBBlob;
import lime.text.harfbuzz.HBBuffer;
Expand Down Expand Up @@ -169,6 +171,7 @@ import lime.ui.Window;
import lime.ui.WindowAttributes;
import lime.utils.ArrayBuffer;
import lime.utils.ArrayBufferView;
import lime.utils.AssetBundle;
import lime.utils.AssetCache;
import lime.utils.AssetLibrary;
import lime.utils.AssetManifest;
Expand Down
8 changes: 4 additions & 4 deletions externs/air/flash/net/Socket.hx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ extern class Socket extends flash.events.EventDispatcher implements flash.utils.
@:require(flash11) var bytesPending(default, never):UInt;
var connected(default, never):Bool;
var endian:flash.utils.Endian;
var objectEncoding:UInt;
var objectEncoding:#if openfl openfl.net.ObjectEncoding #else UInt #end;
@:require(flash10) var timeout:UInt;
#if air
var localAddress(default, never):String;
Expand All @@ -20,7 +20,7 @@ extern class Socket extends flash.events.EventDispatcher implements flash.utils.
@:flash.property @:require(flash11) var bytesPending(get, never):UInt;
@:flash.property var connected(get, never):Bool;
@:flash.property var endian(get, set):flash.utils.Endian;
@:flash.property var objectEncoding(get, set):UInt;
@:flash.property var objectEncoding(get, set):#if openfl openfl.net.ObjectEncoding #else UInt #end;
@:flash.property @:require(flash10) var timeout(get, set):UInt;
#if air
@:flash.property var localAddress(get, never):String;
Expand Down Expand Up @@ -65,7 +65,7 @@ extern class Socket extends flash.events.EventDispatcher implements flash.utils.
private function get_bytesPending():UInt;
private function get_connected():Bool;
private function get_endian():flash.utils.Endian;
private function get_objectEncoding():UInt;
private function get_objectEncoding():#if openfl openfl.net.ObjectEncoding #else UInt #end;
private function get_timeout():UInt;
#if air
private function get_localAddress():String;
Expand All @@ -74,7 +74,7 @@ extern class Socket extends flash.events.EventDispatcher implements flash.utils.
private function get_remotePort():Int;
#end
private function set_endian(value:flash.utils.Endian):flash.utils.Endian;
private function set_objectEncoding(value:UInt):UInt;
private function set_objectEncoding(value:#if openfl openfl.net.ObjectEncoding #else UInt #end):#if openfl openfl.net.ObjectEncoding #else UInt #end;
private function set_timeout(value:UInt):UInt;
#end
}
3 changes: 2 additions & 1 deletion extraParams.hxml
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
--macro lime._internal.macros.DefineMacro.run()
--macro lime._internal.macros.DefineMacro.run()
--macro haxe.macro.Compiler.addMetadata("@:autoBuild(lime._internal.macros.AssetsMacro.embedBytes())", "haxe.io.Bytes")
2 changes: 1 addition & 1 deletion haxelib.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@
"Dimensionscape"
],
"classPath": "src"
}
}
17 changes: 10 additions & 7 deletions project/Build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,12 @@
<compilerflag value="-I${NATIVE_TOOLKIT_PATH}/freetype/include" />
<compilerflag value="-DLIME_FREETYPE" />

<!--
prefer FreeType's font metrics algorithm from 2.9.1
it behaves more like SWF than the new algorithm
-->
<compilerflag value="-DLIME_FREETYPE_LEGACY_METRICS" />

<file name="src/text/Font.cpp" />

<section if="LIME_HARFBUZZ">
Expand Down Expand Up @@ -235,9 +241,6 @@

<section if="rpi">

<compilerflag value="-I/opt/vc/include" />
<compilerflag value="-I/opt/vc/include/interface/vcos/pthreads" />
<compilerflag value="-I/opt/vc/include/interface/vmcs_host/linux" />
<compilerflag value="-I/usr/include/libdrm" />
<compilerflag value="-I/usr/include/dbus-1.0" />
<compilerflag value="-I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include" unless="HXCPP_ARM64" />
Expand Down Expand Up @@ -312,10 +315,13 @@
<file name="src/system/CFFI.cpp" />
<file name="src/system/CFFIPointer.cpp" />
<file name="src/system/ClipboardEvent.cpp" />
<file name="src/system/Display.mm" if="mac || ios" />
<file name="src/system/Display.cpp" unless="mac || ios" />
<file name="src/system/DisplayMode.cpp" />
<file name="src/system/JNI.cpp" if="android" />
<file name="src/system/Locale.cpp" unless="mac || ios" />
<file name="src/system/Locale.mm" if="mac || ios" />
<file name="src/system/OrientationEvent.cpp" />
<file name="src/system/SensorEvent.cpp" />
<file name="src/system/System.cpp" unless="ios" />
<file name="src/system/System.mm" if="ios" />
Expand Down Expand Up @@ -386,7 +392,7 @@
<files id="native-toolkit-harfbuzz" if="LIME_HARFBUZZ" />
<files id="native-toolkit-jpeg" if="LIME_JPEG" />
<files id="native-toolkit-lzma" if="LIME_LZMA" />
<files id="native-toolkit-mbedtls" if="LIME_MBEDTLS" />
<files id="native-toolkit-mbedtls" if="LIME_MBEDTLS" unless="static_link" />
<files id="native-toolkit-mojoal" if="LIME_MOJOAL" />
<files id="native-toolkit-neko" if="LIME_NEKO" />
<files id="native-toolkit-ogg" if="LIME_OGG" />
Expand Down Expand Up @@ -510,9 +516,6 @@
<lib name="-lm" />
<lib name="-lEGL" />
<lib name="-lGLESv2" />
<!-- For legacy Pi driver support -->
<lib name="-lbcm_host" />
<lib name="-L/opt/vc/lib" />

</section>

Expand Down
21 changes: 21 additions & 0 deletions project/include/system/Display.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#ifndef LIME_SYSTEM_DISPLAY_H
#define LIME_SYSTEM_DISPLAY_H

#include <math/Rectangle.h>

namespace lime {


class Display {


public:

static void GetSafeAreaInsets (int displayIndex, Rectangle * rect);


};

}

#endif
40 changes: 40 additions & 0 deletions project/include/system/OrientationEvent.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#ifndef LIME_SYSTEM_ORIENTATION_EVENT_H
#define LIME_SYSTEM_ORIENTATION_EVENT_H


#include <system/CFFI.h>
#include <system/ValuePointer.h>


namespace lime {


enum OrientationEventType {

DISPLAY_ORIENTATION_CHANGE,
DEVICE_ORIENTATION_CHANGE

};


struct OrientationEvent {

hl_type* t;
int orientation;
int display;
OrientationEventType type;

static ValuePointer* callback;
static ValuePointer* eventObject;

OrientationEvent ();

static void Dispatch (OrientationEvent* event);

};


}


#endif
2 changes: 2 additions & 0 deletions project/include/system/System.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ namespace lime {
static bool GetIOSTablet ();
#endif
static int GetNumDisplays ();
static int GetDeviceOrientation ();
static std::wstring* GetPlatformLabel ();
static std::wstring* GetPlatformName ();
static std::wstring* GetPlatformVersion ();
Expand All @@ -53,6 +54,7 @@ namespace lime {
#if defined(HX_WINDOWS) && !defined (HX_WINRT)
static bool SetWindowsConsoleMode (int handleType, int mode);
#endif
static void EnableDeviceOrientationChange(bool enable);

private:

Expand Down
2 changes: 1 addition & 1 deletion project/include/text/Font.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ namespace lime {
int GetUnitsPerEM ();
int RenderGlyph (int index, Bytes *bytes, int offset = 0);
int RenderGlyphs (value indices, Bytes *bytes);
void SetSize (size_t size);
void SetSize (size_t size, size_t dpi);

void* library;
void* face;
Expand Down
2 changes: 1 addition & 1 deletion project/lib/cairo
Submodule cairo updated from b43e7c to 200441
2 changes: 1 addition & 1 deletion project/lib/curl
Submodule curl updated 2226 files
Loading

0 comments on commit 31c2f7c

Please sign in to comment.