iPhoneФорумПрограммирование

WebKit + OpenGL ES в программе на iOS.

#0
20:31, 23 апр 2013

Можно ли в приложении под iOS установить два слоя одновременно? Нижний слой — это стандартный рендер 3D под OpenGL ES, наверху HTML страница WebKit, у которой BODY прозрачный, виден рендер, а, например, кнопки, надписи выводить в HTML в верхнем слое.

WebKit_OpenGL_ES | WebKit + OpenGL ES в программе на iOS.

Если возможно, то есть ли проблемы с производительностью?

#1
20:37, 23 апр 2013

Возможно ссылка будет полезной http://www.slideshare.net/llopis/the-best-of-both-worlds-mixing-u… t-with-opengl

#2
20:49, 23 апр 2013

NightBlaze
Не совсем, это немного не то, что мне нужно. Но всё равно спасибо.

#3
20:54, 23 апр 2013

>> Правка: не актуально

#4
21:03, 23 апр 2013

Проверил на iOS 6 -- работает.

    UIWebView *wv = [[UIWebView alloc] initWithFrame:window.bounds];
    wv.backgroundColor = [UIColor clearColor];
    wv.opaque = NO;
   [window addSubview:wv];

В коде не показано, но я действительно загрузил сайт в этот веб вью. Возможно надо будет поставить для body стиль background-color: transparent, но только если это значение явно переопределяется сайтом, т.к. transparent стоит по умолчанию.

Производительность надо смотреть для конкретного случая. Если надо рендерить навороченную 3Д-графику при 60 ФПС, то отображение вебвью поверх скажется на производительности. Может немного, может и заметно.

Если же просто использовать UIKit элементы, то с этим проблем нет. На WWDC еще года 3 назад рекомендовали именно так и делать интерфейсы для OpenGL игр. А еще год или два назад на WWDC рассказывали, как использовать стандартный UIScrollView для реализации нативного скроллинга в OpenGL.

#5
1:36, 24 апр 2013

alcoSHoLiK
> Если же просто использовать UIKit элементы, то с этим проблем нет. На WWDC еще года 3 назад рекомендовали именно так и делать интерфейсы для OpenGL игр. А еще
> год или два назад на WWDC рассказывали, как использовать стандартный UIScrollView для реализации нативного скроллинга в OpenGL.
Действительно, зачем использовать более подходящие средства, когда можно воткнуть совершенно костыльное узкопрофильное решение и радоваться? Если исключить мазохистов, то огромное число нормальных людей будет использовать какой-либо движок, который РАЗУМЕЕТСЯ имеет свой тач-листенер, ориентированный на EAGLView приложения. Что мы имеем в таком случае?

Во-первых отлетает тач-приоритет, притом наглухо. То есть если в зависимости от нажатия на кнопку должен меняться z-order скролбара, решение уже не подходит.
Во-вторых поимеем совершенно ненужный геморрой с числом тачей более одного. Да-да, обработка двух тачей одновременно в openGL приложении встречается реже говна мамонта, я в курсе.
В-третьих просто порадуемся за таких ребят. Я подозреваю, что разрешение для iPhone5 рекомендовал подобного же уровня консультант.

// ЗЫ. Сорри за оффтоп, не удержался )))

#6
2:06, 24 апр 2013

Я когда-то, еще на 3 IOS-е через веб вьюшку выводил текст поверх GLView, работало нормально:
http://itunes.apple.com/us/app/im-good-in-sports/id329160686?mt=8
Т.к. игрушка была простенькая, то проблем не было, а так лучше конечно постараться обойтись средствами OpenGL )

#7
2:57, 24 апр 2013

CasDev
Извини, я не понял критики. Безусловно, если используется некий кросс-платформенный движок, он будет предоставлять свою систему ввода. Но распознавание жестов тебе придется написать самому, скорей всего.

В любом случае, у кросс-платформенной обработки инпутов есть несколько минусов. Самый главный -- скроллинг в твоей игре не будет нативным. Следовательно, рефлексы игрока, которые выработались у него при использовании сотен других приложений, реализованных с нативным скролом, уже не будут применимы к твоей игре и игрок будет чувствовать дискомфорт.

Перечисленных тобой проблем с z-order и приоритетом я не понял. Не сталкивался.

#8
5:09, 24 апр 2013

alcoSHoLiK
nes
Спасибо, интересно, похоже работает хоть как-то, надо пробовать.

#9
7:40, 24 апр 2013

alcoSHoLiK
Пардон, никого не хотел обидеть. Сарказм был в отношении WWDC.
В качестве примера можно привести ряд кнопок на скроллбаре, при этом кнопка при наведении подсвечивается и слегка увеличивается в размерах. При захвате кнопочка может в виде объекта лечь на основной слой - встречается такое почти в любой детской аппликации.

#10
13:17, 24 апр 2013

alcoSHoLiK
> На WWDC еще года 3 назад рекомендовали именно так и делать интерфейсы для
> OpenGL игр
не рекомендовали, а хвастались своим интерфейсом, что он мол даже на производительность OpenGL практически не влияет.

wat
недавно реализовывал такую схему на мак-приложении, не думаю, что на ios возникнут какие-либо проблемы.
правда без яваскрипта и прочих client-side динамических штучек, проблем с производительностью замечено не было.

iPhoneФорумПрограммирование

Тема в архиве.