Можно ли в приложении под iOS установить два слоя одновременно? Нижний слой — это стандартный рендер 3D под OpenGL ES, наверху HTML страница WebKit, у которой BODY прозрачный, виден рендер, а, например, кнопки, надписи выводить в HTML в верхнем слое.
Если возможно, то есть ли проблемы с производительностью?
Возможно ссылка будет полезной http://www.slideshare.net/llopis/the-best-of-both-worlds-mixing-u… t-with-opengl
NightBlaze
Не совсем, это немного не то, что мне нужно. Но всё равно спасибо.
>> Правка: не актуально
Проверил на 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.
alcoSHoLiK
> Если же просто использовать UIKit элементы, то с этим проблем нет. На WWDC еще года 3 назад рекомендовали именно так и делать интерфейсы для OpenGL игр. А еще
> год или два назад на WWDC рассказывали, как использовать стандартный UIScrollView для реализации нативного скроллинга в OpenGL.
Действительно, зачем использовать более подходящие средства, когда можно воткнуть совершенно костыльное узкопрофильное решение и радоваться? Если исключить мазохистов, то огромное число нормальных людей будет использовать какой-либо движок, который РАЗУМЕЕТСЯ имеет свой тач-листенер, ориентированный на EAGLView приложения. Что мы имеем в таком случае?
Во-первых отлетает тач-приоритет, притом наглухо. То есть если в зависимости от нажатия на кнопку должен меняться z-order скролбара, решение уже не подходит.
Во-вторых поимеем совершенно ненужный геморрой с числом тачей более одного. Да-да, обработка двух тачей одновременно в openGL приложении встречается реже говна мамонта, я в курсе.
В-третьих просто порадуемся за таких ребят. Я подозреваю, что разрешение для iPhone5 рекомендовал подобного же уровня консультант.
// ЗЫ. Сорри за оффтоп, не удержался )))
Я когда-то, еще на 3 IOS-е через веб вьюшку выводил текст поверх GLView, работало нормально:
http://itunes.apple.com/us/app/im-good-in-sports/id329160686?mt=8
Т.к. игрушка была простенькая, то проблем не было, а так лучше конечно постараться обойтись средствами OpenGL )
CasDev
Извини, я не понял критики. Безусловно, если используется некий кросс-платформенный движок, он будет предоставлять свою систему ввода. Но распознавание жестов тебе придется написать самому, скорей всего.
В любом случае, у кросс-платформенной обработки инпутов есть несколько минусов. Самый главный -- скроллинг в твоей игре не будет нативным. Следовательно, рефлексы игрока, которые выработались у него при использовании сотен других приложений, реализованных с нативным скролом, уже не будут применимы к твоей игре и игрок будет чувствовать дискомфорт.
Перечисленных тобой проблем с z-order и приоритетом я не понял. Не сталкивался.
alcoSHoLiK
nes
Спасибо, интересно, похоже работает хоть как-то, надо пробовать.
alcoSHoLiK
Пардон, никого не хотел обидеть. Сарказм был в отношении WWDC.
В качестве примера можно привести ряд кнопок на скроллбаре, при этом кнопка при наведении подсвечивается и слегка увеличивается в размерах. При захвате кнопочка может в виде объекта лечь на основной слой - встречается такое почти в любой детской аппликации.
alcoSHoLiK
> На WWDC еще года 3 назад рекомендовали именно так и делать интерфейсы для
> OpenGL игр
не рекомендовали, а хвастались своим интерфейсом, что он мол даже на производительность OpenGL практически не влияет.
wat
недавно реализовывал такую схему на мак-приложении, не думаю, что на ios возникнут какие-либо проблемы.
правда без яваскрипта и прочих client-side динамических штучек, проблем с производительностью замечено не было.
Тема в архиве.