summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/android/android.pro
Commit message (Collapse)AuthorAgeFilesLines
* Android: Fix loading of pluginsBogDan Vatra2019-09-221-5/+3
| | | | | | | | | | | | | | In 5bb178c479a247720fbc3fbb7f06a32b725193ac, the Android platform plugin was moved from platforms/android to platforms/. The unforeseen consequence of this was that the plugin loader for plugins/platforms would now find it, whereas before it would be ignored. It would therefore be detected as the appropriate plugin, but since it was intended to be loaded as a static plugin, loading it dynamically would fail. Instead of fixing the static plugin loading, we remove this hack. Fixes: QTBUG-78440 Change-Id: Idcb6c075fdebaf67644f32a59d7aaf0d1c0bbe20 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Android: Fix cmake generatorBogDan Vatra2019-09-071-4/+0
| | | | | | Fixes: QTBUG-29859 Change-Id: Id0b5f9ab8b4866483361ba9f15cf51dc0d2627d0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add file engine for Android content URLsVolker Krause2019-02-131-0/+2
| | | | | | | | | | | The "file dialog" on Android returns such URLs, which so far required special-casing this in application code. With this change QFile can consume those URLs directly. Change-Id: I489c0db112cf1dc7497e7a90f0e9a79ea8fa5237 Reviewed-by: Nicolas Fella <nicolas.fella@kdab.com> Reviewed-by: BogDan Vatra <bogdan@kdab.com> Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
* [platform/android] Add native file dialogNicolas Fella2019-02-121-2/+4
| | | | | | | | | | | Add basic native file open dialog on Android. Not all features of QFileDialog can be mapped to the Android file dialog. Most notably there is no "Save" dialog. The dialog returns a content:// URL. Patch 251038 adds support for those to QFile. Change-Id: I13d02103edcd9a089afcce8193432f24b2e0fe43 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* Basic Vulkan enablersLaszlo Agocs2017-03-171-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | For Android, Windows and xcb. Verified on Win10 with NVIDIA, Win10 with AMD, Android with Tegra K1, Android aarch64 with Tegra X1, and Linux aarch64 with Tegra X1 (Jetson TX1, L4T). Introduce QPA-based Vulkan library loader, core function resolver, and instance creation support. In addition to creating a new VkInstance, adopting an existing one from an external engine is supported as well. The WSI specifics are hidden in the platform plugins. Vulkan-capable windows use the new surface type VulkanSurface and are associated with a QVulkanInstance. On Windows VULKAN_SDK is picked up automatically so finding vulkan.h needs no additional manual steps once the LunarG SDK is installed. [ChangeLog][QtGui] Added support for rendering to QWindow via the Vulkan graphics API. Task-number: QTBUG-55981 Change-Id: I50fa92d313fa440e0cc73939c6d7510ca317fbc9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Android: Enable Adoption of ANativeWindow handle as a QOffscreenSurfaceAndy Nichols2016-12-141-2/+4
| | | | | | | | | | | | | | | | This is done by adding an API to QOffscreenSurface to enable setting a native handle which can represent a native offscreen surface. When using the TexureView it is necessary to render to SurfaceTexture objects which are exposed as offscreen window surfaces. After wraping a SurfaceTexture in a android.view.Surface object and passing it to C++ via the JNI, it is possible to get the needed ANativeWindow* handle required to pass to eglCreateWindowSurface. So by setting this native handle Qt can then render to this "native" offscreen surface. Change-Id: If7fc5ac7ac588fe6c3a6fb883ea7e439d095470f Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: J-P Nurmi <jpnurmi@qt.io> Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* rely on transitive library dependencies for freetype/fontconfigOswald Buddenhagen2016-10-151-2/+0
| | | | | | | | | | | | | | so far, we have been delaying the linking, because we didn't want to make the monolithic platformsupport module pull in spurious dependencies. however, now that the module was split, there is no need to play such games any more. a nice effect of this is that the hideous qpa/*unixfontdatabase.prf files disappear, and finally freetype_dependency.pri also becomes trivial and is thus inlined. Change-Id: I255376d592625542310a31222eb6ac965943df99 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* port to modularized platformsupport librariesOswald Buddenhagen2016-10-151-1/+4
| | | | | Change-Id: I20eb0e33abfd70b6a5240e7b6b0aa0425f2d2ee7 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Android: Re-enable asset extraction for stylingEskil Abrahamsen Blomfeldt2016-10-141-1/+1
| | | | | | | | | | | | | | When the new configure system was introduced, it accidentally disabled automatic extraction of style assets on Android. This patch puts it back in. Note that the style extraction is not specific to Qt Widgets, but rather Qt Gui, like other QPA options. Task-number: QTBUG-56328 Change-Id: Ica33c3562c6dd6483050075f5c8ed5d28cd621a4 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* consistently put {qt,qml}_{module,plugin} at the end of project filesOswald Buddenhagen2016-03-071-4/+3
| | | | | | | | this fixes static builds by ensuring that all dependencies are exported. Task-number: QTBUG-51071 Change-Id: Icbce502dcbcb4d4b4d922c42679f44e2cc930bf3 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Android: Fix name of header in .pro fileEskil Abrahamsen Blomfeldt2015-01-221-1/+1
| | | | | | | | | Gets rid of warning that the file is missing, but probably doesn't have any other effect since the file in question does not require moc-ing. Change-Id: I22085a55c212b6285341d61462dfaf548787e11c Reviewed-by: BogDan Vatra <bogdan@kde.org>
* Android: Don't force-include android-9 headers in qpa pluginEskil Abrahamsen Blomfeldt2015-01-221-6/+1
| | | | | | | | | | | | | When we supported platforms < android-9, we needed to include some headers which were introduced in android-9 to compile the QPA plugin. This is no longer needed, and also creates problems when you pick e.g. android-21 as your platform, since some definitions (specifically fd_set) are different in the two sets of headers, giving us an undefined reference to QEventDispatcherUNIX::select(). Change-Id: Ifd28479b4bf3be0e9e62200a01fc4cf2cc855215 Reviewed-by: BogDan Vatra <bogdan@kde.org>
* Android: deadlock avoidancePaul Olav Tvete2014-10-201-0/+2
| | | | | | | | | | | | | This change adds deadlock protection to all places where we lock one thread while waiting for the other to do something. If we detect that the other thread is going to block, we abort the operation. This could cause unexpected problems, such as painting errors, text input errors, or even crashes, but the alternative is a guaranteed deadlock. Task-number: QTBUG-41369 Change-Id: I2627a955cfafc4bce54eb9d0d38e19b768b06956 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Android: Don't include Apache code under LGPLv2 licenseEskil Abrahamsen Blomfeldt2014-10-021-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | The code which extracts style assets for the Android style is licensed under the Apache license, which is not compatible with LGPLv2.1. It is, however, compatible with LGPLv3. This means that the Android platform plugin cannot be LGPLv2.1 as long as this code is included. To minimize licensing confusion, we default to only providing LGPLv3 for Android. If you want to build a LGPLv2.1-compatible library, you can add -no-android-style-assets to the configuration. This will in turn enable the LGPLv2.1 in the configure output, and it will disable the extraction code in the platform plugin. Running the Android style with an LGPLv2.1-compatible platform plugin will work, but it will look horrible. [ChangeLog][Android] Default open-source license for Qt for Android is now LGPLv3. For compatibility with the LGPLv2.1 license, add "-no-android-style-assets" to your configuration. Change-Id: I6c7b52140f38138520871fa7c69debbb4ee90e6c Task-number: QTBUG-41365 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Support QOpenGLWidget and QQuickWidget on AndroidLaszlo Agocs2014-08-251-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | It gets somewhat complicated due to the fact that a RasterGLSurface window (i.e. any widget window since 5.3) may behave either like an OpenGLSurface or a RasterSurface, and the expected behavior may change on each backingstore sync. This does not fit designs where the platform window implementation is separated and there is different behavior for raster and GL windows. Therefore QAndroidPlatformOpenGLWindow is now made capable of behaving like the raster one, based on a flag communicated from the widget stack via QWindowPrivate (since the plugin knows nothing about widgets). This means that widget windows that do not have renderToTexture children (QOpenGLWidget, QQuickWidget) will go through the raster path, while the ones that have will behave like an OpenGL window with the actual rendering happening in QPlatformBackingStore::composeAndFlush(). The surface type is RasterGLSurface in both cases nonetheless. Task-number: QTBUG-37907 Change-Id: I6f9261fc0fd993afcda7f30d379c5410069033d3 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Android: Really suspend apps that are put in the backgroundBogDan Vatra2014-07-311-2/+4
| | | | | | | | | | | | | | | | | | | The main event loop will be paused when an application is suspended, this is also the normal behavior of any Android application. When an application is suspended on Android all its Gl surfaces are destroyed and can't be used to render anymore. So, we need to pause the main event loop in order to pause all the timers which might trigger drawings. The event loop is resumed immediately after the application is foreground. AndroidManifest.xml contains more info about how to disable this behavior and what might happen if you do it. [ChangeLog][Android][Important Behavior Changes] The main event loop is now stopped when the app is suspended Task-number: QTBUG-36274 Change-Id: I4c0ba5df9d95f348bca67ea5c76865d6d20775e4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Android: Extract data for native style on startupBogDan Vatra2014-05-221-2/+5
| | | | | | | | | | | | | | | | | When Ministro is not in use, we need to extract style information on startup in order for the native Android style to work. The code to extract data from the device is contributed from the Ministro project. [ChangeLog][Android] Enable using native style also when Ministro deployment mechanism is not in use. Task-number: QTBUG-36019 Change-Id: I2afef5219b4e8fbb2f3e387cbc5e570da1f41011 Reviewed-by: BogDan Vatra <bogdan@kde.org> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Android: Add Foreign Window supportChristian Strømme2014-02-141-2/+4
| | | | | Change-Id: Ie41edd3f17214805673311a375191cd93d2378f6 Reviewed-by: BogDan Vatra <bogdan@kde.org>
* Support multiple native surfaces on Android.BogDan Vatra2014-01-171-2/+79
| | | | | | | | | | | | | | | | Support for multiple native surfaces is needed by applications that need to mix raster windows with GL windows. Rework the raster and opengl implementation, get rid of eglfs and fbconvenience dependencies. Create a single android platform plugin. [ChangeLog][Android] Rework the raster and opengl implementation. [ChangeLog][Android] Create a single android platform plugin. Task-number: QTBUG-34650 Change-Id: I9b1ab51554823329dda8cfbf8fef27c38f917c7b Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Introducing the Qt Android portPaul Olav Tvete2013-03-051-0/+3
Based on the Necessitas project by Bogdan Vatra. Contributors to the Qt5 project: BogDan Vatra <bogdan@kde.org> Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> hjk <hjk121@nokiamail.com> Oswald Buddenhagen <oswald.buddenhagen@digia.com> Paul Olav Tvete <paul.tvete@digia.com> Robin Burchell <robin+qt@viroteck.net> Samuel Rødal <samuel.rodal@digia.com> Yoann Lopes <yoann.lopes@digia.com> The full history of the Qt5 port can be found in refs/old-heads/android, SHA-1 249ca9ca2c7d876b91b31df9434dde47f9065d0d Change-Id: Iff1a7b2dbb707c986f2639e65e39ed8f22430120 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>