напишу свои плюсы и минусы каждого метода:
1. плюсы:
* мне ничего писать не надо
* абсолютная гибкость
минусы:
* пользователю писать много. то не один десяток строчек кода скорее всего.
2. плюсы:
* все понятно. нет никаких "тонкостей"
минусы:
* нужно внимательн смотреть при создании screenspace текстур,незабыть добавить ее в етот список (это скорее всего будет просто tex->ScreenSpace(true);, ну или что то в этом роде
3. плюсы:
* все работает автомаически
минусы:
* все работает автомаически
т.е. если нам нужна именно текстура 1024 на 768, и она случайно совпадет с размероим экрана - то она запишется как screenspace, и никак от етого не уйти.
4. сочетает плюсы 2 и 3-его метода. если ето просто текстура то и выкидываем ее из списка. если не просто - то все работает на автомате.
Это ведь в разы лучше, чем полностью перегружать ВСЮ медию и всё пересоздовать (ведь при потери графикс девайса, вся медия теряется и вся видео память от этого приложения отчищается, так ведь).
|
дык я о чем. вся фишка етого ChangeResolution в том, что не нужно перезагружать медиа, шейдеры и прочее. само изменение работает за 1-2 секунды. единственное что нужно будет пересоздавать - ето renderable текстуры. все остальное не теряется, даже при переходах fullscreen \ windowed.
Вот ещё моммент: 2D, как с ним будет дело обстоять при смене разрешения?
|
тут есть тонкость...
по умолчанию 2д будет рисоваться тупо, т.е. если мы сделали, меню например, для 1024 на 768, то в разрешении 1600 на 1200 ето меню будет в левом верхнем углу. НО! если до вывода писать Start2D(1024 на 768 ) то ето меню растянется на весь екран. Причем коррекция происходит на уровне обработки вершин, т.е. качество будет не сильно теряться, как, например при рендере в текстуру и растягивание на весь кран. + граница картинка будет четкой, и даже сглаженной при включеном антиалиасинге.
кстати,добавил Destroy.
DeInit теперь считается deprecated.