Fixes#388. The lack of support for transforms has been a longstanding
limitation of the compositor and code for co-ordinate space conversion
and hit testing. This will fix many games that need these for rotating
individual UI elements, or the entire game screen, and will enable
eventually supporting iOS's support for automatic rotation of UI.
This commit also improves bounds.origin support, and adds support for
-[CALayer convertPoint:toLayer:] and -[CALayer convertPoint:fromLayer:].
Change-Id: I6b421e2f853d50c4742f851f61117c2b6545a3ba
This fixes the incorrect offset applied to touch input handling for
windows that aren't positioned at (0,0), and adds support for:
- CALayer convertPoint:fromLayer: with nil layer parameter
- CALayer convertPoint:toLayer: with nil layer parameter
- UIWindow convertPoint:fromWindow:
- UIWindow convertPoint:toWindow:
The CALayer visual tests were modified to enable partial testing of
this. This was also tested by the fact the GUI tests part of TestApp
happened to be affected by the incorrect offset in touch handling.
Change-Id: I00aab7f0b63bc87c8b630e433fd87b06a8925c3f
setlocale only has access to C and POSIX locales.
CFUrlFromBytes returns null when it cant build a valid url. An empty str
is invalid and returns null.
Change-Id: Ied6b2d29798660740bd8b4f96baff9e71c1b8078
This makes TestApp into a foundation can be used for testing UIKit and
other graphical things (Core Animation, OpenGL ES, etc). For the
moment, it's just a very simple hello-world.
Change-Id: Ib1ac99d14f243ba190380b21fa044e6a41ed85fb
With the refactoring from bb48020caf, we
now know which library each host class/constant/function belongs to,
so we can now generate a full set of stub libraries which, when linked
against, will result in a TestApp binary that references all the right
libSystem, libobjc, Foundation, UIKit etc paths.
touchHLE doesn't currently care much about the referenced dylib paths
(likely to change in future), but real iOS does. This commit makes
TestApp partially work on at least some versions of iOS (see the remarks
in tests/README.md).
This commit also makes __objc_empty_cache and __objc_empty_vtable exist
in libobjc's exported constants, rather than having them special-cased
in both the linker and the stub generation, just to make things cleaner.
Change-Id: I85897fc8adc1cf75fdc35775b0a16054d62fbeb4
Allows NSAutoreleasePool to deallocate even if it is not the topmost
autoreleasepool for the current thread by deallocating all pools above
it. This matches iOS Simulator behaviour.
Change-Id: If62dec7f2160bf919cce8c094e2be879b3e4b477
Apparently, it produces `Undefined symbols for architecture arm64` if
main.c of the test app is build for macOS.
Change-Id: I74b53a72680bbda0abebd678ad4e4a6ee8295d44
Before this commit, pthread_cond_signal signalled all threads and
remained signalled after it was signaled for the first time. This commit
fixes this behaviour to only wake up waiting threads, and adds
pthread_cond_broadcast based on the new implementation.
Change-Id: I16ee75a09d2e064d258fcc1c981c8987805343e5