std.tech: INSTEAD технологии


1 2 3
Reply to: 8zSeM2kjRZJOcODLyVt1
From: Antokolos (syscall,12) 05.10.17 06:16 UTC
To: Peter
Subject: Re: Сборка INSTEAD для WinRT
Да, конечно, попробую.
Ещё вчера допилил немного, чтобы архивы поддерживались и на Windows Phone 8.1 (который у меня в виде физ. устройства)
Благодаря поддержке архивов, появилась возможность потестировать не только на туториале. Есть как радости, так и печали.
Карантин работает
Miner Bold работает, мультитач в наличии
Поддержка jpg отвалилась
Поддержка mp3 отвалилась
Поддержка трекерной музыки отвалилась
В штурмане какая-то ошибка со спрайтами
В Варваре ошибка при использовании io.open в lua
В общем, надо смотреть и тестировать...

Reply to: 8zSeM2kjRZJOcODLyVt1
From: Antokolos (syscall,12) 05.10.17 06:46 UTC
To: Peter
Subject: Re: Сборка INSTEAD для WinRT
Текущую ветку winrt переименовал у себя на github в winrt-initial
Когда у нас устаканится полностью с патчем, видимо, придётся создать новую ветку winrt, основанную уже на патче, но с моими доп. изменениями, которые в патч не вошли.

Reply to: 8zSeM2kjRZJOcODLyVt1
From: Antokolos (syscall,12) 05.10.17 15:08 UTC
To: Peter
Subject: Re: Сборка INSTEAD для WinRT
В целом, оно собралось и заработало
только вот в winrt.h пришлось поправить
====
#ifdef __cplusplus_winrt
extern "C"
{
#else
extern
#endif
	void getAppTempDir(char *lpPathBuffer);
#ifdef __cplusplus_winrt
}
#endif
====
вместо просто extern void

Reply to: f6Ir9acmZuyMN7Ko9VMg
From: Peter (syscall,1) 05.10.17 18:37 UTC
To: Antokolos
Subject: Re: Сборка INSTEAD для WinRT
Я предполагал что winrt.h используется только в winrt.c просто.

Есть смысл хотя бы такой патч мержить?

Reply to: KimxNb5Go7gFmjR42V7Z
From: Antokolos (syscall,12) 06.10.17 16:53 UTC
To: Peter
Subject: Re: Сборка INSTEAD для WinRT
Да, конечно.
Я на его базе ещё дополню немного, может, будет проще и в этих изменениях разобраться. Ну или в отдельной ветке пустим, посмотрим, как пойдёт.

Reply to: mNw6mil0dpMkDpArk48F
From: Peter (syscall,1) 07.10.17 08:05 UTC
To: Antokolos
Subject: Re: Сборка INSTEAD для WinRT
> Да, конечно.
Пушнул патч.

Reply to: 6DagEPY4HqUPzl2COEBn
From: Antokolos (syscall,12) 12.10.17 07:32 UTC
To: Peter
Subject: Re: Сборка INSTEAD для WinRT
Вот тут вот новая ветка winrt, основанная на этом патче
https://github.com/Antokolos/instead/tree/winrt
Самый последний коммит там (_USE_UNPACK support) посвящён дополнениям для того, чтобы можно было собрать с флагом _USE_UNPACK

Reply to: yG1yaqin6AcMM71znEkf
From: Peter (syscall,1) 12.10.17 07:56 UTC
To: Antokolos
Subject: Re: Сборка INSTEAD для WinRT
> Самый последний коммит там (_USE_UNPACK support) посвящён дополнениям для того, чтобы можно было собрать с флагом _USE_UNPACK

Понял, буду смотреть.

From: Peter (syscall,1) 21.10.17 09:40 UTC
To: All
Subject: INSTEAD на Sailfish OS
Дали поиграться с телефоном на Sailfish OS (Jolla C).
Конечно же, первым делом попробовал собрать INSTEAD.
Две новости: хорошая и плохая. :)

Хорошая новость -- собрать инстед легко. И я даже смог поиграть в minerbold.

Плохая новость: SDL2 на сейлфише недопилен.

- Координаты точскрина приходят в ненормализованной форме. (Пиксели а не float).
- События точа не эмулируют клики мыши (как это сделано во всех других мобильных платформах).
- Совсем нет звуков
- Ну и разбираться с поворотом экрана

Я понял, что порт возможен и если им заняться, то его можно получить. Но для этого нужны определенные усилия. Телефоны jolla у нас редкость, так что статус порта пока -- "заморожен".

P.S.

https://together.jolla.com/question/109036/bug1192 8-sdl2-is-still-broken/

Не похоже, что проблемы будут исправлены. :(

Reply to: yG1yaqin6AcMM71znEkf
From: Peter (syscall,1) 22.10.17 07:54 UTC
To: Antokolos
Subject: Re: Сборка INSTEAD для WinRT
Ты тут?

Я тут все таки пытаюсь разгрести сборку INSTEAD. Нужно, чтоб ты проверил следующую версию в git.

Описываю суть изменений.

1) системные include находятся ТОЛЬКО в src/instead/system.h ВСЕ условные СИСТЕМНЫЕ включения должны быть ТАМ, кроме специфичных инклюдов в архитектурных файлах (windows.c и так далее)
2) В файлах ios.h, s60.h и так далее (если они нужны!) описываются только НЕ СИСТЕМНЫЕ отличия. Для примера смотри ios.h. winrt.h и wince.h удалены
3) Я не понимаю такую конструкцию:

====
#ifdef _MSC_VER
#include "unistd.h"
#define PATH_MAX MAX_PATH
#else
====

Дело в том, что инклюды с "" (в отличие от <>) это инклюды НЕ СИСТЕМНЫХ файлов. Я не понимаю, как ты собрал src/instead/* если в system.h есть инклюде <dirent.h> безусловный, а в windows.c он под ifdef да еще и в "". Так что чтоб не путаться я это удалил и пробуем еще раз, если можно.

4) никаких больше PATH_MAX, единственное место где он есть это system.h который включается через externals.h


Что нужно? Внести изменения ТОЛЬКО в system.h для того, чтобы сборка прошла успешно для всех наших целей.

Поможешь?

P.S. я проверил сборки: windows, s60, wince и unix/linux -- они работают

После того как мы наведем порядок на этом уровне, можно будет снова пытаться как то сливать изменения

Reply to: 3hB9i7uWYhUBNfH5BprK
From: Antokolos (syscall,12) 22.10.17 10:27 UTC
To: Peter
Subject: Re: Сборка INSTEAD для WinRT
Да, конечно, тут. Буду пробовать, спасибо!

Reply to: 3hB9i7uWYhUBNfH5BprK
From: Antokolos (syscall,12) 22.10.17 13:41 UTC
To: Peter
Subject: Re: Сборка INSTEAD для WinRT
Итак:
1) Сделал git clone https://github.com/instead-hub/instead в пустую папку
2) Скопировал туда папки VisualC и VisualC-WinRT из https://github.com/Antokolos/instead/tree/winrt
3) Открыл свой проект
4) В файле windows.c пришлось сделать изменение
#ifndef _MSC_VER
#include <dir.h>
#endif
ибо файл dir.h он не находит
5) В файле https://github.com/Antokolos/instead/blob/winrt /VisualC-WinRT/src/uwp.h пришлось сделать изменение -- убрал #ifdef _UWP в третьей строчке, т.к. теперь я использую его вместо удалённого winrt.h.
6) Соответственно, в файле https://github.com/Antokolos/instead/blob/winrt /VisualC-WinRT/src/SDL2_winrt.cpp убрал использование winrt.h и всегда использую winrt.h
7) Убрал использование _USE_UNPACK у себя в проекте, т.к. этот код ещё не смёржен.
8) Приложение как для WinRT, так и для UWP собралось, туториал запустился.

Reply to: v2zBYAkZRBRls0h7KRW9
From: Antokolos (syscall,12) 22.10.17 13:43 UTC
To: Antokolos
Subject: Re: Сборка INSTEAD для WinRT
P.S. извиняюсь, не перечитал то, что написал :(
6) Соответственно, в файле https://github.com/Antokolos/instead/blob/winrt /VisualC-WinRT/src/SDL2_winrt.cpp убрал использование winrt.h и всегда использую uwp.h

Reply to: I38TGOnuD5dsF6z1Vstn
From: Peter (syscall,1) 22.10.17 14:30 UTC
To: Antokolos
Subject: Re: Сборка INSTEAD для WinRT
Отлично. Вечером пофикшу мелочи и снова буду думать про дальнейшие мержи.
Идет процесс не быстро так как много навалилось работы. :(

Reply to: 7uOxAFAgCSDVuCC71veO
From: Antokolos (syscall,12) 22.10.17 15:40 UTC
To: Peter
Subject: Re: Сборка INSTEAD для WinRT
Здорово, да можно сильно не торопиться :)
Больше всего меня тревожит, что не все игры работают.
Скорее всего, дело в относительных путях, ибо мне даже при распаковке пришлось в одном месте хачить, чтобы всегда абсолютные пути передавались.
Это т.к. https://docs.microsoft.com/en-us/cpp/cppcx/crt- functions-not-supported-in-universal-windows- platform-apps
_chdir _wchdir _getcwd _getdcwd _wgetcwd _wgetdcwd The concept of a working directory doesn't apply to Windows 8.x Store apps. Use full paths instead.

Reply to: HLYLHjCLUKSzN1hpBSYk
From: Peter (syscall,1) 22.10.17 15:52 UTC
To: Antokolos
Subject: Re: Сборка INSTEAD для WinRT
> Скорее всего, дело в относительных путях,
wince версия полностью избавлена от относительных путей.
Собственно инстед от них избавлен начиная с wince версии.
Все chdir/getdir - реализованы внутри и всегда работают с абсолютными путями (по кр мере в wince)
Именно поэтому берется argv[0] в начале, чтоб найти абсолютный путь.
Ты можешь даже в UNIX версии заменить в src/util.c реализацию setdir и прочих - и будет все на абсолютных путях.

Так что я считаю надо доотладить.

Все api по работе с дирами находится в src/util.c

Reply to: HLYLHjCLUKSzN1hpBSYk
From: Peter (syscall,1) 22.10.17 16:01 UTC
To: Antokolos
Subject: Re: Сборка INSTEAD для WinRT
Да и Android с абсолютными путями работает.
Можешь глянуть ветку #ifndef ANDROID в util.c
Только для UNIX сборки используются chdir, getcwd а в остальных - формируются полные пути и просто идет работа по ним.

Reply to: tG6wu3Gkm5BamWuLbzAq
From: Peter (syscall,1) 27.10.17 09:53 UTC
To: Peter
Subject: Re: INSTEAD на Sailfish OS
Я погорячился. На данный момент порт на SailfishOS полностью работоспособен. Пришлось сделать воркэраунды для всех проблем, но иснтедом теперь можно пользоваться.
Правда, пока это никуда не закоммичено....

Reply to: cM9CmPMTQmPxyCGEl7mr
From: Peter (syscall,1) 31.10.17 10:57 UTC
To: Peter
Subject: Re: INSTEAD на Sailfish OS
Порт instead в warehouse.

From: Peter (syscall,1) 17.12.17 08:57 UTC
To: All
Subject: Бета версия INSTEAD 3.2
В общем я решил поступить так.
Бинарные сборки бета версии будут появляться здесь: http://instead.syscall.ru/instead/3.2-beta/

После НГ если новых багов не будет выявлено, то это и станет релизом 3.2.
Если нет - новый заход.

Прошу всех кто собирает бинарные сборки - начать их собирать и пробовать. Спасибо!

1 2 3