Sciter.Lite для Android, iOS и IoT
От: c-smile Канада http://terrainformatica.com
Дата: 12.11.19 01:30
Оценка: 31 (4)
Sciter.Lite это т.н. windowless версия — не используется HWND — весь Sciter работает внутри [full screen] surface предоcтавляемым девайсом / платформой.

Используется либо OpenGL/ES если он есть на девайсе или прямой доступ в video память / битмап.

API прост как двери — практически олна функция

SciterProcX( void* id, struct MSG* msg)


  Пример кода
bool engine_init(struct engine *engine) {
  // enable features to be used from script
  BOOL r = SciterSetOption(NULL, SCITER_SET_SCRIPT_RUNTIME_FEATURES, ALLOW_FILE_IO | ALLOW_SOCKET_IO | ALLOW_EVAL | ALLOW_SYSINFO);
  if (!r) return false;

  r = SciterProcX(engine, SCITER_X_MSG_CREATE());
  if (!r) return false;

  engine_report_environment(engine);

  SciterSetCallback(engine, engine_handle_sciter_notification, NULL);

  unsigned int dpi = (unsigned)AConfiguration_getDensity(engine->app->config);
  if (dpi < 96) dpi = 96; else if (dpi > ACONFIGURATION_DENSITY_XXXHIGH) dpi = ACONFIGURATION_DENSITY_XXXHIGH;

  SciterProcX(engine, SCITER_X_MSG_RESOLUTION(dpi));

  r = SciterLoadFile(engine, WSTR("asset:main.htm"));
  
  return bool(r);
}


void engine_handle_cmd(struct android_app *app, int32_t cmd) {
  struct engine *engine = (struct engine *)app->userData;
  switch (cmd) {

    case APP_CMD_INIT_WINDOW:
      // The window is being shown, get it ready.
      if (engine->app->window != NULL) {
        engine_init(engine);
        engine_init_display(engine);
        engine_draw_frame(engine);
      }
      break;

    case APP_CMD_CONTENT_RECT_CHANGED:
      {
        unsigned w = ANativeWindow_getWidth(app->window);
        unsigned h = ANativeWindow_getHeight(app->window);
        sciter::value vars;
        vars.set_item("window-content-top",sciter::value(app->contentRect.top));
        vars.set_item("window-content-left",sciter::value(app->contentRect.left));
        vars.set_item("window-content-bottom",sciter::value(app->contentRect.bottom));
        vars.set_item("window-content-right",sciter::value(app->contentRect.right));
        SciterSetMediaVars(engine, &vars);
        SciterProcX(engine, SCITER_X_MSG_SIZE(w,h));
      } break;

  }
}


Это вот как оно выглядит вживую (видно что тот экран отрисовывается с 60 FPS) :


Это вот анимация как выглядит:
https://youtu.be/OJ7mQth2WjM
Отредактировано 12.11.2019 1:31 c-smile . Предыдущая версия .
Re: Sciter.Lite для Android, iOS и IoT
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 06.01.20 17:09
Оценка:
Здравствуйте, c-smile, Вы писали:


CS>Sciter.Lite это т.н. windowless версия — не используется HWND — весь Sciter работает внутри [full screen] surface предоcтавляемым девайсом / платформой.


CS>Используется либо OpenGL/ES если он есть на девайсе или прямой доступ в video память / битмап.


CS>API прост как двери — практически олна функция


А сколько сборка весит в байтах?
Маньяк Робокряк колесит по городу
Re: Sciter.Lite для Android, iOS и IoT
От: Homunculus Россия  
Дата: 06.01.20 17:12
Оценка:
Здравствуйте, c-smile, Вы писали:


Со Свифтом интеграция, надо так понимать, никакая?
Re[2]: Sciter.Lite для Android, iOS и IoT
От: c-smile Канада http://terrainformatica.com
Дата: 06.01.20 17:21
Оценка:
Здравствуйте, Marty, Вы писали:

M>Здравствуйте, c-smile, Вы писали:


CS>>Sciter.Lite это т.н. windowless версия — не используется HWND — весь Sciter работает внутри [full screen] surface предоcтавляемым девайсом / платформой.


CS>>Используется либо OpenGL/ES если он есть на девайсе или прямой доступ в video память / битмап.


CS>>API прост как двери — практически олна функция


M>А сколько сборка весит в байтах?


https://github.com/c-smile/sciter-sdk/blob/master/bin.android/ARM64/libsciter.so

К сожалению Android не предоставляет native graphics примитивы — только OpenGL. Поэтому приходится линковать Skia и FontConfig статически.
Re[3]: Sciter.Lite для Android, iOS и IoT
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 06.01.20 17:22
Оценка:
Здравствуйте, c-smile, Вы писали:


M>>А сколько сборка весит в байтах?


CS>https://github.com/c-smile/sciter-sdk/blob/master/bin.android/ARM64/libsciter.so


CS>К сожалению Android не предоставляет native graphics примитивы — только OpenGL. Поэтому приходится линковать Skia и FontConfig статически.


Хм. Я просто подумал, что раз IoT — то появилась версия для bare metal
Маньяк Робокряк колесит по городу
Re[2]: Sciter.Lite для Android, iOS и IoT
От: c-smile Канада http://terrainformatica.com
Дата: 06.01.20 17:22
Оценка:
Здравствуйте, Homunculus, Вы писали:

H>Здравствуйте, c-smile, Вы писали:



H>Со Свифтом интеграция, надо так понимать, никакая?


А что там нужно интегрировать со Swift?
Re[4]: Sciter.Lite для Android, iOS и IoT
От: c-smile Канада http://terrainformatica.com
Дата: 06.01.20 17:29
Оценка:
Здравствуйте, Marty, Вы писали:

CS>>К сожалению Android не предоставляет native graphics примитивы — только OpenGL. Поэтому приходится линковать Skia и FontConfig статически.


M>Хм. Я просто подумал, что раз IoT — то появилась версия для bare metal


bare metal он разный бывает.

Skia backend используется как для рендеринга в bitmap или video/frame buffer так и для OpenGL (если девайс поддерживает это дело).
Re[5]: Sciter.Lite для Android, iOS и IoT
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 06.01.20 17:39
Оценка:
Здравствуйте, c-smile, Вы писали:


CS>bare metal он разный бывает.


CS>Skia backend используется как для рендеринга в bitmap или video/frame buffer так и для OpenGL (если девайс поддерживает это дело).


На STMках взлетит?
Маньяк Робокряк колесит по городу
Re: Sciter.Lite для Android, iOS и IoT
От: techgl  
Дата: 19.12.20 08:58
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Sciter.Lite это т.н. windowless версия — не используется HWND — весь Sciter работает внутри [full screen] surface предоcтавляемым девайсом / платформой.

CS>Используется либо OpenGL/ES если он есть на девайсе или прямой доступ в video память / битмап.

А как-то можно получить доступ к iOS/Android версиям SDK? В Pricing не нашел упоминания этих платформ. Хочется посмотреть, на сколько реально делать UI для UE4 с помощью Sciter. Видел у тебя на сайте демо ролик, но там Desktop.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.