-
-
Notifications
You must be signed in to change notification settings - Fork 21k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Add support for Sailfish OS #9435
Conversation
} | ||
|
||
Point2 OS_Sailfish::get_mouse_position() const { | ||
// DODO: implement |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Didn't those went extinct a while ago?
os.run(); // it is actually the OS that decides how to run | ||
} | ||
|
||
delete os.window; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't this be memdelete()
and memnew()
a few lines above? 😛
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no this is fine, memnew doesn't exist before OS is initialized, so those things have to be allocated the old fashion way
Is the export process portable? can it run on a windows/osx pc? What phones
run this? is the "QOpenGlWindow" a Sailfish specific thing, or a Wayland
specific thing?
…On 28 June 2017 at 16:31, Thomas Herzog ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In platform/sailfish/os_sailfish.cpp
<#9435 (comment)>:
> +
+ default:
+ break;
+ }
+
+ qDebug("event %d", event->type());
+
+ return false;
+}
+
+void OS_Sailfish::set_cursor_shape(CursorShape p_shape) {
+ // TODO: implement
+}
+
+Point2 OS_Sailfish::get_mouse_position() const {
+ // DODO: implement
Didn't those went extinct a while ago?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#9435 (review)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AGVmPR582yDCRAC23H88FL-LqC2dSFcIks5sIqoRgaJpZM4OIYf7>
.
|
This looks really awesome!! Too bad I can't test, but I'd love if Godot would support sailfish! Also, you said that it's using Wayland, couldn't some part of this be split into a OS_Wayland or something so it could be used for "regular" Linux systems too? |
@punto- Sailfish seems to use Qt, so this |
yeah.. the "Q" was suspicious.. (I was also thinking this could be reused for Wayland). I wonder if it's possible to avoid Qt altogether, since you only need it for the window and gl context management, how much smaller would the binary be? |
Looks like Sailfish apps need to be in Qt, that's why there are qml files and all |
they don't need to be in Qt, just like Android doesn't need to be in java, the question is, do they force you to be in Qt? There's a window server and a kernel underneath Qt, can't we just access that directly? |
The Qt framework is the official API for developing Sailfish apps. AFAIK the SDL2 port for Sailfish uses the Wayland API instead of Qt but I do not know much about it. As for the exporter, basically the Sailfish SDK is a Virtualbox VM with cross-compilers for all supported platforms (arm and i486 at the moment, aarch64 in progress). Edit: the QML files are a remnant of failed experiments, they will be removed. Only the cover QML file is needed. |
Ah that makes sense, at first I was thinking "awesome, Wayland support for Linux", but I now understand that you did not have to implement direct Wayland support but get it directly from Qt 5. I don't think the dependency on Qt is too big a problem if it's only for SailfishOS, where it will indeed be dynamically linked. |
Maybe Wayland support here could be used for desktop Wayland support? I'm particularly interested in desktop multitouch support. |
Read my comment right above yours. |
Oh, I see. But this still could potentially be used on desktop platforms, right? EDIT: Maybe as a "Qt backend" export or something |
No, because we don't want to depend on huge Qt on desktop just for the sake of having Wayland support. On SailfishOS it makes sense as it's a core component of the ecosystem, but not on general Linux desktop. |
For compiling they have a cross platform SDK, but I meant exporting the
game, and deploying to a phone during development, does the SDK have tools
to create the RPMs on windows and osx? Can people get this tool separately?
(so they don't need the entire sdk if they're not compiling the engine,
only using it with the export templates)
Yeah I was thinking of reusing Wayland code but I guess Qt is not that
bad.. I assume SDL has peripheral support so it's possible to use them with
Wayland
…On 28 June 2017 at 18:41, Rémi Verschelde ***@***.***> wrote:
Oh, I see. But this still could potentially be used on desktop platforms,
right?
No, because we don't want to depend on huge Qt on desktop just for the
sake of having Wayland support. On SailfishOS it makes sense as it's a core
component of the ecosystem, but not on general Linux desktop.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#9435 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AGVmPZx7_JJNpGMV6A5EKqiz_FfeKRpsks5sIsiRgaJpZM4OIYf7>
.
|
@punto- The SDK consists of two VMs - one for development and one for the emulator. Even when you are building a normal Sailfish application you do not need to run anything on your host besides the IDE and the VMs. When you hit 'Run' the IDE transfers your project files to the dev VM, compiles them, creates a package and deploys it to the emulator VM or real device. I think the same workflow would be possible with the exporter. The other option is just to export the files somewhere on the host and them manually SSH to the dev vm and run the packaging commands. The SailfishOS SDK is available for Linux 32/64, OS X and Windows. |
Right, so what I'm saying is, can we avoid the dev VM for someone who is
only exporting a game from the editor? create the RMP and deploy it to the
device or emulator? a VM sounds like a huge requirement
…On 29 June 2017 at 04:33, Костадин Дамянов ***@***.***> wrote:
@punto- <https://github.com/punto-> The SDK consists of two VMs - one for
development and one for the emulator.
All the tools needed for build a package are in the development VM. The
SDK also contains a package validator so you can check if your RPMs are
compatible with Harbour (the application store).
Even when you are building a normal Sailfish application you do not need
to run anything on your host besides the IDE and the VMs. When you hit
'Run' the IDE transfers your project files to the dev VM, compiles them,
creates a package and deploys it to the emulator VM or real device. I think
the same workflow would be possible with the exporter. The other option is
just to export the files somewhere on the host and them manually SSH to the
dev vm and run the packaging commands.
The SailfishOS SDK <https://sailfishos.org/wiki/Application_SDK> is
available for Linux 32/64, OS X and Windows.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#9435 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AGVmPZW9UPERLQJ0Q17sewj4NN7gJd6hks5sI1M3gaJpZM4OIYf7>
.
|
To create an RPM package we have a few options:
Building the package 'manually' (without the tools that are intended to do just that) is not a good idea in my opinion since this is error-prone and not future-proof. If anyone has any other ideas about this please feel free to join the discussion. |
The 4th option is to implement the RPM file format specification to be able to write it, but that's basically rewriting part of librpm: http://ftp.rpm.org/max-rpm/s1-rpm-file-format-rpm-file-format.html Since Sailfish OS is a relatively "exotic" platform, I think it's not too much to ask of developers who want to develop to this platform to get the upstream SDK. |
Sure, I'm not saying these are requirements to add the platform (the ios
export is not exactly ideal and it's a pretty popular platform :p ), only
that it'll make it more likely that people will export to it
…On 29 June 2017 at 11:45, Rémi Verschelde ***@***.***> wrote:
The 4th option is to implement the RPM file format specification to be
able to write it, but that's basically rewriting part of librpm:
http://ftp.rpm.org/max-rpm/s1-rpm-file-format-rpm-file-format.html
Since Sailfish OS is a relatively "exotic" platform, I think it's not too
much to ask of developers who want to develop to this platform to get the
upstream SDK.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#9435 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AGVmPeOsIjNYMvz1rYKlCbSfKhgRsNq0ks5sI7iUgaJpZM4OIYf7>
.
|
In fact I bet we could ship a skeleton rpm as the export template, during export add the game data and update the manifest, etc, and re-zip, like we do with apks, no need to require the whole dev vm..
|
I am looking for a way to add landscape support but it looks like Qt does not have any APIs for this. @reduz Do you know if it is possible to use GLES on the OS class level to rotate the screen? I guess it would be possible with GLES? I have absolutely no experience with low level graphics :( I know about glRotate() but it is not available in GLES 3? |
i build that )) its godots editor in sailfish )) fun and nice ) but cant create or launch any project ... |
Ok, 2D project ( simple test with 3 animated sprites ) is run fine! ) , but running 3D is segfault ( gles3 shaders cant compile ) |
Hi there, what's the current status on this PR? |
@akien-mga , i think need just make that issue #576, and godot automaticly willwork on sailfish =) |
@akien-mga My question still stands. That is why I asked if it is possible/suitable to do it from the OS class and if yes then how can it be done. @savegame This is nice but a generic Wayland port will not be enough here. |
@Max-Might, in wayland no problem to get keyboard, mouse and touchscreen. But i don't now about sound, i am not test it yet. |
@Max-Might Are you still working on this? I noticed that you mentioned GLES. How does Godot's decision to add Vulkan support affect this PR? |
Closing as it stalled. Support for SailfishOS would still be interesting to have, and any interested contributor could start from the work in this branch. As it's a relatively niche platform we'll need at least two things for it to be viable:
|
@Max-Might, if you still interesting with Sailfish platform, i am allready build both Godot 2 and 3 for sailfish OS (i am get sample of use audioresource from your code, thanks), and in Godot 3 i found a way to rotate render for Sailfish landscape orientation (just fix canvas shader in drivers gles2 ). |
Hello.
I have been working on porting the engine to the Sailfish operating system.
I decided to open this PR to track progress and invite other interested parties to join the effort.
Sailfish is a Linux-based operating system for mobile devices.
It uses a lot of the common platform software stack like D-Bus, systemd, PulseAudio, Qt and others.
It also uses Wayland instead of x server.
This is a work in progress. Here is what works at the moment.
libaudioresource
to manage permissions..spec
file and callspectacle
to generate the RPM. This way we will not introduce any additional dependencies likelibrpm
nor resort to manually generating the RPM.