Поддържам собствена персонализирана 2D библиотека - написана на Objective-C / OpenGL ES 2.0 - от известно време, за да я използвам в личните си проекти (не работа). Също така пробвах cocos2d и SpriteKit от време на време, но в крайна сметка се примирих с „преоткриване на колелото“, т.к.
- Забавно е,
- От гледна точка на знания, предпочитам да бъда човекът, който може да кодира графична библиотека, отколкото просто човек, който може да използва такава,
- Неограничени възможности за персонализиране.
Сега прехвърлям кодовата си база към Swift и (освен всички разлики в дизайна, които възникват при преминаване към език, където наследяването на класове е на заден план пред протоколите и т.н.) си мислех, че докато го правя, Трябва да обмисля и преминаването към Metalа. Ако не друго, в името на надеждността за бъдещето (също така, аз съм за изучаването на нови технологии и честно казано, OpenGL/OpenGL ES са ужасно претрупана торба с „наследство“ и обратна съвместимост).
Моята библиотека е проектирана около всички видове специфични за OpenGL (ES) затруднения в производителността: Използване на атласи на текстури и консолидация на мрежи за намаляване на повикванията за изтегляне, рендиране на непрозрачни спрайтове първо и полупрозрачни накрая (подредени отзад напред) и т.н.
Въпросът ми е: Кои от тези съображения все още се отнасят за Metal и кои дори не трябва да си правя труда да прилагам (защото вече не са проблем с производителността)?