Commit Graph

13 Commits

Author SHA1 Message Date
Elias Naur c080a54038 ui/app: call main from Android and iOS
Android can only run c-shared libraries which means that every
Gio program must create its window and event loop from an init
function.

The same applies to iOS but for a more benign reason: the gio tool
builds programs in c-archive mode for iOS and links the binary with
a Objective-C driver.

Allow Gio programs to run off its main function by linking to and
invoking main even from Android libraries and iOS ditto.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-07-22 11:33:09 +02:00
Elias Naur 2f9e29d878 ui/app: (macOS) avoid double-drawing in NSOpenGLView update
Instead of drwaing twice when updated, schedule a redraw.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-07-21 19:19:34 +02:00
Elias Naur 21ad48b7de ui/app: (macOS) use consistent scale for pointer events
Instead of querying the backing store scale for every pointer event,
use the scale from the last window draw. It might not make any visible
difference because we redraw on scale changes, but it is more correct.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-07-21 17:34:12 +02:00
Elias Naur 71f6df9352 ui/app: (macOS) redraw when NSOpenGLView update is called
When moving a window to another monitor, update is called when the
opengl backing store updates its internal size.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-07-21 17:20:44 +02:00
Elias Naur 8eea6b80f3 ui/app: (macOS) use a consistent and constant backing store constant
Compute and keep constant the pixel density, to avoid window content
changes when moving to another monitor with a different density.

Use backing store scale, not content scale for input events.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-07-21 16:59:29 +02:00
Elias Naur cd244f21ab ui/app: (macOS) don't release opengl context
I haven't found a reliable way to re-create the context and redraw
after deminiaturization or app unhide.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-07-20 16:22:41 +02:00
Elias Naur 05f0c3e22a ui/app: (macOS) destroy the GL context correctly
The NSOpenGLView owns the NSOpenGLContext so we can't just CFRelease
the context. Use [NSOpenGLView releaseGLContext] instead.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-07-20 16:11:27 +02:00
Elias Naur 1a417d353c ui/app: fix a few C signatures and a comment typo
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-07-07 16:33:11 +02:00
Elias Naur a1c0693eeb ui/app: add Lock/Unlock to Context for macOS
Without locking, asynchronous OpenGL rendering crashes on macOS.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-05-24 14:01:26 +02:00
Elias Naur 25ba53ea51 ui/app: (macOS) suppress key shortcuts beeps
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-05-16 09:59:20 +02:00
Egon Elbre f863260514 app: replace COREVIDEO_TRUE with kCVReturnSuccess
Signed-off-by: Egon Elbre <egonelbre@gmail.com>
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-04-01 12:03:32 +02:00
Elias Naur ca5204fcb8 ui: fix macOS build
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-03-31 11:00:26 +02:00
Elias Naur 0f05231c35 all: initial import
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-03-31 10:47:22 +02:00