Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет dibr ([info]dibr)
@ 2011-01-16 16:54:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Внезапные простые решения
     Когда-то давно, когда по поверхности планеты бегали велосирапторы, а на компьютерах "Ай-Би-эМ Пи-Си" стоял MS-DOS, программисты уже писали программы "с окошками" (и, подозреваю, у каждого компьютерщика тех времён найдётся самописная "оконная библиотечка"). Окошки создавались тривиально - сохранением и последующим восстановлением области экрана под окном, благо в текстовом режиме места она занимает мало.
     Потом появился графический интерфейс (например в виде Windows), и выяснилось что "картинку под окном" сохранять нельзя, ибо некуда (обычной памяти мало, видеопамяти - очень мало, помню все эти расчёты при покупке видюхи "если поставить 1024х768 то получится всего 256 цветов, а в 800х600 уже можно позволить себе 64k цветов"), и для окошек надо что-то придумать. И придумали, гениально простую вещь - содержимое окна не сохранять вообще, для восстановления - попросить приложение, которому принадлежит окно, "перерисоваться". Кстати, до меня только сейчас дошло, почему в win1.0 были запрещены перекрывающиеся окна: они просто ещё не умели их перерисовывать!

     Быстро шли годы, медленнее проходили десятилетия. Типичный объем компьютерной памяти вырос до нескольких гигабайт, видеопамять тоже росла как на дрожжах: меньше полугига сейчас уже наверное и не найти (а в полгига, если что, можно примерно 60 раз целиком уложить экран 1920х1200). Я когда-то удивлялся, зачем видеокарте памяти в разы больше, чем может понадобиться для вывода картинки, потом привык. Параллельно, на деньги любителей 3D игр, производители видюх развивали вроде-бы-больше-никуда-не-нужное 3D (я про него вспоминал разве что глядя очередную киношку "через оверлей", причём вспоминал только когда "оверлей" глючил). Сама операционная система 3D особо не пользовала, а окошки при показе так и перерисовывались приложениями: в XP все признаки перерисовки при переключении (вроде "белых окон", подтормаживания и перерисовки "не всего и не того") были в полный рост.

     А потом как-то внезапно до софтописателей дошло. Что сейчас уже можно каждому окну выделить собственную область видеопамяти - пусть себе там рисует по потребности, а когда нужно его показать - достаточно просто сделать эту область видимой средствами видеокарты!
     И получился интерфейс Windows Aero (впервые появившийся в Vista, если я не путаю - лично с вистой не работал, сразу перешёл на 7). И внезапно оказалось, что если все окошки в готовом виде хранятся в видеопамяти, а видеокарта позволяет с ними произвольно оперировать, многие вещи становятся легче, проще и удобнее. Показ окна становится настолько дешевым действием, что его можно делать по событию вида "навелись мышом куда надо" (убрали мышь - убрали окно), можно дёшево показать "превью" окна (при этом оно будет "живым и шевелящимся", поскольку это и есть настоящее окно, только уменьшенное средствами видеокарты), можно так же дёшево делать всякую мелкую анимацию при исчезновении/появлении, фишки вроде полупрозрачности - и всё это без нагрузки на процессор, ибо всё делается видеокартой в реальном времени. Даже в превьюшках, показываемых в переключалке alt/tab, окна "шевелятся" - и оно и понятно, это ж теперь очень дешевое (по расходу процессора) действие!

     А я-то до недавнего времени считал что 3D в видеокартах - "неизбежное зло, и для UI от него пользы никакой". А в win1.0 негров линчевали окна перекрываться не могли. А оно вон какой внезапно прогресс. :-)
     Кстати, любопытно - как оно сейчас во всяких юниксах типа линукса. С одной стороны - памяти раньше всем не хватало, а значит "во времена оные" как-то извращаться приходилось всем. С другой стороны - если я правильно понимаю идеологию xserver/xclient, просить приложение перерисовываться по каждому чиху может оказаться накладным, перерисовываться желательно xserver'у (но "окно" хранить не в виде дампа, конечно, а более компактно), что резко упрощает идеологически переход к "все окна лежат в реальной видеопамяти".
     Я лично с линуксом давно дел не имел, поэтому не в курсе. Кто скажет - там уже так же как в Aero? А они это первыми придумали, или микрософт?


(Читать комментарии) - (Добавить комментарий)


[info]ilya_314@lj
2011-01-18 18:42 (ссылка)
Думаю не загорами то время, когда вообще без 3D ничего не будет. Вот теперь уже и к ARM-ам приклеивают GPU и к x86 процессорам.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dibr@lj
2011-01-18 18:50 (ссылка)
Как всё-таки хорошо, что эту часть прогресса большей частью оплачивают "любители поиграть". Не было бы платежеспособных и массовых игрунов, было бы вместо "3Д" - именно что "GPU с функцией StretchBlt", медленное и недешёвое. А так - и недорого, и польза даже неигрунам есть...

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ilya_314@lj
2011-01-18 19:03 (ссылка)
Индустрия игр никогда особо не бедствовала и кстати оплачивают удовольствие теперь не только игроки на консолях и pc, теперь еще и на мобильниках и планшетах 3д попрет.

Ходят упорные слухи, что 3д в windows 8 будет как-то мощно задействовано в огранизации десктопа, что это будет новый шелл, возможно опциональный, как и aero. Поэтому не удивляйся, что в будущем придется network connections искать где-нибудь в 3д пространстве внутри какой-нибудь коробочки.

Как-то бродила в голове такая идея - а почему-бы не озаботится нормальной визуализацией железа в компьютере. Ну чтобы ты видел свой системный блок наполненный всеми компонентами, мог посмотреть куда и что воткнуто. Для этого нужно кроме самих моделей железок еще и некое описание связывания компонент. Надо будет производителям создавать модели своего оборудование с описанием расположения интерфейсов и индикаторов.

Кстати в Win7 появился сетевой протокол который позволяет опросить устройства и нарисовать граф топологии сети, вот только не знаю многими ли он поддерживается, думаю нет.

(Ответить) (Уровень выше)


(Читать комментарии) -