КОМПОНУЮЩИЙ АДМИНИСТРАТОР ОКОН РАБОЧЕГО СТОЛА
LINKING DESKTOP WINDOW MANAGER

Область техники, к которой относится изобретение
Изобретение относится в общем к компьютерной графике и компьютерным операционным системам. Более конкретно, изобретение предоставляет 3D компонующий администратор окон рабочего стола, со встроенной поддержкой для не поддерживающих компоновку унаследованных приложений, для управления и воспроизведения рабочего стола на единичном или множестве компьютерных дисплеев для операционной системы.
Уровень техники
Компьютерные операционные системы обычно имеют оболочку, которая предоставляет графический пользовательский интерфейс (GUI) для конечного пользователя. Оболочка состоит из одного или комбинации компонентов программного обеспечения, которые предоставляют прямое взаимодействие между пользователем и операционной системой. Графический пользовательский интерфейс обычно предоставляет графическую ориентированную на пиктограммы и/или управляемую посредством меню среду для пользователя для взаимодействия с операционной системой, и часто базируется на метафоре рабочего стола. Более конкретно, графический пользовательский интерфейс проектируется, чтобы моделировать действия работы на рабочем столе, как в реальном мире. Среда рабочего стола обычно занимает всю поверхность единичного отображающего устройства или может охватывать множество отображающих устройств, и хосты подчиняют объекты пользовательского интерфейса, такие как пиктограммы, меню, курсоры и окна.
Среди типов воспроизводимых объектов, для которых среда рабочего стола является хостом, визуально очерчиваются области экрана, известные как окна. Окно обычно посвящается единственной пользовательской деятельности, и создается и управляется либо программным приложением третьей стороны или системным приложением. Каждое окно ведет себя и отображает свой контент независимо, как если бы оно было действительным отображающим устройством под контролем своей конкретной прикладной программы. Окна могут обычно интерактивно изменять размеры, передвигаться по дисплею и размещаться в стековом порядке таким образом, чтобы полностью или частично перекрывать одно другое. В некоторых оконных средах окно может допускать сдержанные визуальные или поведенческие состояния, такие как минимизация в размере до пиктограммы или максимизация в размере, чтобы занимать всю поверхность дисплея. Коллекции окон рабочего стола обычно присваивается порядок "сверху-вниз", в котором они отображаются, известный в данной области как Z-порядок, в силу чего любое окно перекрывает все другие окна ниже, чем оно само по отношению к Z-порядку, занимающие ту же проектируемую позицию на экране. В любое заданное время единичное, выбранное окно имеет "фокус" и восприимчиво к вводу пользователя. Пользователь может направить фокус ввода другому окну посредством щелканья окна мышью или другим указательным устройством, или посредством применения определяемого системой сокращенного клавишного набора или комбинации ключей. Это позволяет пользователю эффективно работать с множеством прикладных программ, файлов и документов в манере, аналогичной сценарию реального мира управления бумажными документами и другими элементами, которые могут быть произвольно уложены или расположены на физическом рабочем столе.
Недостаток для многих предыдущих осуществлений графического пользовательского интерфейса рабочего стола состоит в их ограниченной возможности представлять визуально богатый контент или использовать улучшения в технологии графического воспроизведения. Такие улучшения включают в себя воспроизведение в реальном времени физически смоделированного (освещенного, затененного, текстурированного, прозрачного, отражающего и преломляющего) двух и трехмерного контента и гладких, высокопроизводительных анимаций. В отличие от ограниченных сервисов, доступных для использования улучшений графического воспроизведения на рабочем столе, визуально богатый контент возможен в определенных прикладных программах, выполняющихся в окне или в полном экране, в графических пользовательских интерфейсах операционных систем марки Windows(R) и подобных оболочек операционных систем. Типами прикладных программ, которые представляют такой контент, являются видео игры с 3D анимацией реального времени и эффектами, улучшенные графические инструменты для авторской работы, такие как трассировщики луча (ray tracers) и улучшенные 2D и 3D издательские приложения. Так как визуальный вывод этих программ либо ограничен контентной областью его окна/окон приложения или воспроизводится в полном экране, исключая другие окна и сам рабочий стол, богатый графический вывод прикладной программы никаким способом не содействует представлению среды рабочего стола.
Компьютерные операционные системы применяют уровень программного обеспечения, ответственный за управление объектами пользовательского интерфейса, такими как пиктограммы, меню, курсоры, окна и рабочие столы; арбитрирование событий из устройств ввода, таких как мышь и клавиатура; и предоставление сервисов пользовательского интерфейса программным приложениям. Этот уровень программного обеспечения может назваться как администратор окон рабочего стола (DWM, Desktop Window Manager). Воспроизводящая логика, маршрутизация событий ввода и интерфейсы прикладного программирования (API) администратора окон рабочего стола (DWM) коллективно осуществляют политику пользовательского интерфейса, которая, в свою очередь, определяет всеобъемлющий пользовательский опыт операционной системы. Первичной причиной отсутствия богатых, визуальных рабочих столов до настоящего времени были способы, посредством которых администраторы DWM управляли и воспроизводили рабочий стол. Предыдущие осуществления DWM применяют модель "признания недействительности" для воспроизведения рабочего стола, которая развилась первоначально из необходимости сохранять ресурсы видео и системной памяти, также как пропускной способности CPU и GPU.
В модели признания недействительности, когда окно изменяют в размерах или передвигают, или, когда приложение желает перерисовать все или часть окна, затронутая часть дисплея "признается недействительной". DWM внутренне признает недействительными области, затронутые изменением размера или перемещением окна, тогда как приложение, пытающееся перерисовать все или часть своего собственного окна, инструктирует операционную систему, через API, признать недействительной заданную область своего окна. В любом случае, DWM обрабатывает запрос признания недействительности посредством определения подобласти запрошенной области, которая действительно нуждается в обновлении на экране. DWM обычно выполняет это посредством обращения к поддерживаемому списку пересекающихся областей, ассоциированных с целевым окном, других окон, перекрывающих целевое окно, областей вырезания, ассоциированных с затрагиваемыми окнами, и видимых границ дисплея. DWM последовательно отправляет каждому затронутому приложению сообщение рисования, определяющее область, нуждающуюся в обновлении, в приписанном порядке сверху-вниз. Приложения могут выбирать либо принимать на обработку, либо игнорировать заданную область. Любое рисование, выполняемое приложением вне локальной обновляемой области, DWM автоматически вырезает, используя сервисы, предоставляемые графической воспроизводящей машиной более нижнего уровня, такой как интерфейс графических устройств (GDI).
Преимущество модели сообщений признания недействительности состоит в сохранении памяти дисплея. То есть DWM, основанный на признании недействительности, только должен поддерживать достаточную буферную память, чтобы вычерчивать единичный рабочий стол, без "запоминания" того, что могло быть под ныне отображаемым контентом. Однако так как окна на рабочем столе воспроизводятся в порядке сверху-вниз, признаки, такие как непрямоугольные окна и богатые 2D анимации через GDI, требуют CPU интенсивных вычислений со сложными областями и/или обширным обследованием поверхности дисплея (таким образом ограничивая потенциал для графического ускорения, основанного на аппаратном обеспечении), тогда как другие признаки, такие как прозрачность, затенения, 3D графика и улучшенные световые эффекты экстремально трудны и очень ресурсоемки.
В качестве примера администратор окон из Microsoft Windows(R) XP, исторически известный как USER, служил в качестве господствующего компонента подсистемы графического пользовательского интерфейса (теперь известной как Win32) с появления операционной системы марки Windows(R). USER применяет 2-мерную графическую воспроизводящую машину с интерфейсом графических устройств (GDI), чтобы воспроизводить дисплей. GDI является другим главным подкомпонентом из Win32 и базируется на технологии воспроизведения, присутствующей в исходной операционной системе марки Windows(R). USER воспроизводит каждое окно на дисплей, используя модель сообщений признания недействительности, во взаимодействии с GDI, вырезающим области, и 2D рисующими примитивами. Первичная деятельность USER в воспроизведении рабочего стола включает в себя идентификацию областей дисплея, нуждающихся в визуальном обновлении, и информирование приложений о необходимости и месте рисования, согласно модели воспроизведения рабочего стола с признанием недействительности.
Следующим развитием в воспроизведении рабочего стола является подход воспроизведения снизу-вверх, называемый как компоновка рабочего стола. В компонующем DWM, или CDWM, рабочий стол вычерчивается от нижнего слоя до верхнего слоя. То есть задний план рабочего стола вычерчивается первым, затем следуют пиктограммы, папки и контент, сидящий непосредственно на рабочем столе, затем следует папка/папки один уровень вверх, и так далее. С помощью воспроизведения рабочего стола снизу вверх каждый итеративный слой может основывать свой контент на слое под ним. Однако компоновка рабочего стола - это напряженный для памяти процесс, так как CDWM поддерживает в памяти копию каждого элемента, вычерчиваемого на рабочем столе. До недавних изменений рынка и технологий производства, которые улучшили видеоаппаратное обеспечение и компьютерную память гораздо больше возможного, только коммерческие, дорогие, высокого класса компьютерные системы были способны реализовывать компонующие машины, такие как для подготовки специальных эффектов для фильмов.
Эволюция среднего и нижнего класса компьютерного аппаратного видеообеспечения была приведена в движение в большей части графическими сервисами, имеющимися в популярных операционных системах. Однако эти графические сервисы, имеющиеся в популярных операционных системах, значимо не улучшились по ряду причин, включающих в себя необходимость поддерживать совместимость с более старым прикладным программным обеспечением и ограниченные возможности доступного ряда видеоаппаратного обеспечения. Более недавно, однако, 3D компьютерные игры реального времени обогнали операционные системы, так как основной рынок побуждает развитие розничного видеоаппаратного обеспечения, которое в короткое время достигло исключительного уровня совершенствования. 3D акселерация реального времени, основанная на аппаратном обеспечении, теперь доступна потребителям по разумной стоимости. Таким образом, непосредственно доступны, когда-то рассматриваемые как высоко передовые, признаки графического аппаратного обеспечения, такие как алгоритмы ускоренной текстуры и освещения, 3D преобразования и возможность напрямую программировать GPU. В настоящее время, в общем только игровое программное обеспечение и высоко специализированные графические приложения активно используют такие признаки, и чтобы делать это, они должны обходить унаследованный администратор окон из Win32 (USER) и GDI.
Другое препятствие в реализации модели компоновки рабочего стола это то, что унаследованные приложения, написанные для использования с DWM с моделью признания недействительности, не будут корректно функционировать в среде компоновки. Это потому, что базовая воспроизводящая логика унаследованного приложения базируется на интерфейсах API администратора DWM с моделью признания недействительности в операционной системе. То есть чем воспроизводить оконный контент в прямой отклик на пользовательское взаимодействие или изменения во внутреннем состоянии, унаследованное приложение будет рисовать только по принятии сообщения рисования, сгенерированного либо операционной системой, либо своим собственным запросом признания недействительности. Наиболее трудное изобретение состоит в разработке средства, посредством которого компонующий DWM заместит унаследованную GUI платформу в интересах приложения. Более простые альтернативы состоят в исключении приложения из среды компонуемого рабочего стола (подход, известный в данной области как "отлов песка (sand boxing)"), или просто всецелого отказа от совместимости унаследованных приложений.
Таким образом, было бы продвижением в данной области обеспечить богатую, полно функциональную операционную систему, которая воспроизводит рабочий стол, используя модель компоновки, и предоставить администратор окон рабочего стола, который может воспользоваться преимуществом передового графического аппаратного обеспечения. Было бы дополнительным продвижением в данной области предоставить рабочий стол, который использует улучшенные текстуры, освещение и 3D преобразования, а также поддерживает унаследованные приложения, исходно написанные для использования в администраторе рабочего стола с моделью признания недействительности.
Раскрытие изобретения
Последующее представляет упрощенное изложение изобретения для того, чтобы обеспечить базовое понимание некоторых аспектов изобретения. Это изложение не является обширным обзором изобретения. Не предполагается идентифицировать ключевые или критические элементы изобретения или очертить объем изобретения. Последующее изложение всего лишь представляет некоторые понятия изобретения в упрощенной форме, как вступление к более детальному описанию, предоставляемому ниже.
Чтобы преодолеть ограничения в предыдущей технологии, описанной выше, и чтобы преодолеть другие ограничения, которые будут видны при чтении и понимании настоящего описания, настоящее изобретение ориентировано на компонуемый рабочий стол, предоставляющий передовые возможности графики и воспроизведения.
Первый иллюстративный аспект изобретения предоставляет программное обеспечение и компьютерно-осуществимый способ для воспроизведения окна рабочего стола в операционной системе, где, когда компонующий администратор окон рабочего стола (CDWM) управляет воспроизводимой приложением запоминающей поверхностью, содержащей оконный контент, CDWM использует эту воспроизведенную поверхность, чтобы отображать контент вместе с контентом других окон на скомпонованном дисплее. Конкретно, CDWM использует поверхность переадресованного отображения для окна, или части его, как текстуру, применяемую к 2D или 3D сеточному примитиву, который, в свою очередь, передается низкоуровневой графической машине для воспроизведения. Эта иллюстрация включает в себя воспроизведение 3D оконного фрейма, содержащего сгенерированную приложением контентную часть окна. Компонованный оконный фрейм состоит из отдельной текстуры/текстур, отображаемых в отдельный, с изменяемыми размерами 3D сеточный примитив, который передается машине воспроизведения графики вместе с факультативными параметрами для процедуры пиксельного ретушера, которую CDWM может предварительно загружать в устройство графического отображения, чтобы производить внешний вид пластины матированного стекла с подложенной падающей тенью. Дополнительные иллюстративные аспекты изобретения предусматривают поддержку наследия для приложений, спроектированных для использования с администраторами окон рабочего стола с моделью признания недействительности.
Краткое описание чертежей
Более полное понимание настоящего изобретения и его преимуществ может быть получено, обращаясь к следующему описанию при рассмотрении прилагаемых чертежей, в которых одинаковые ссылочные позиции показывают одинаковые элементы, и причем:
Фиг.1A иллюстрирует операционную среду, которая может использоваться для одного или более аспектов иллюстративного осуществления изобретения;
Фиг.1B иллюстрирует распределение функции и сервисов между компонентами в иллюстративном осуществлении платформы компонуемого рабочего стола;
Фиг.2 иллюстрирует компонующий способ согласно иллюстративному аспекту изобретения;
Фиг.3 иллюстрирует окно согласно иллюстративному аспекту изобретения;
Фиг.4 иллюстрирует часть способа оконной компоновки согласно иллюстративному аспекту изобретения;
Фиг.5 иллюстрирует окно, обрамленное матированным стеклом, воспроизводимое согласно иллюстративному аспекту изобретения;
Фиг.6 иллюстрирует окно с динамической оконной анатомией;
Фиг.7 иллюстрирует области, используемые в течение изменения размера сетки.
Осуществление изобретения
В следующем описании различных осуществлений делается ссылка на прилагаемые чертежи, которые формируют его часть и в которых показаны в качестве иллюстрации различные осуществления, в которых изобретение может использоваться на практике.
Необходимо понимать, что другие варианты осуществления могут использовать и структурные и функциональные модификации, которые могут быть сделаны без отхода от объема и сущности настоящего изобретения.
Настоящее изобретение раскрывает администратор окон рабочего стола (DWM), который использует компоновку рабочего стола как свою предпочтительную модель воспроизведения. Администратор окон рабочего стола из этого изобретения называется здесь как компонующий администратор окон рабочего стола (CDWM). CDWM, вместе с подсистемой компоновки, называемой как унифицированная компонующая машина (UCE, Unified Compositing Engine), предоставляет 3D графику и анимацию, затенения, прозрачность, улучшенные осветительные технологии и другие богатые визуальные признаки на рабочем столе. Модель компонованного воспроизведения, используемая здесь, внутренне устраняет этап признания недействительности в воспроизведении и минимизирует или устраняет необходимость передавать сообщение рисования и другие уведомляющие сообщения, так как система сохраняет достаточную информацию о состоянии, чтобы воспроизводить каждое окно как требуется.
Иллюстративная операционная среда
Фиг.1 иллюстрирует пример подходящей среды 100 компьютерной системы, в которой изобретение может осуществляться. Среда 100 компьютерной системы является только одним примером подходящей компьютерной среды и не предполагает предложение какого-либо ограничения как на объем использования или функциональность изобретения. Не должна вычислительная среда 100 интерпретироваться как имеющая какую-либо зависимость или требование, относящиеся к какому-либо или комбинации компонентов, показанных в иллюстративной операционной среде 100.
Изобретение является действенным с множеством других общего назначения или специального назначения сред компьютерных систем или конфигураций. Примеры хорошо известных компьютерных систем, сред и/или конфигураций, которые могут подходить для использования с изобретением, включают в себя, но не ограничены этим, персональные компьютеры; серверные компьютеры; переносные и ручные устройства, такие как персональные цифровые ассистенты (PDA, personal digital assistants), планшетные PC (tablet PCs) или портативные PC (laptop PCs); мультипроцессорные системы; микропроцессорные системы; телевизионные приставки (set top boxes); программируемая бытовая электроника; сетевые PC; миникомпьютеры; мэйнфреймовые компьютеры; распределенные вычислительные среды, которые включают в себя любые из вышеописанных систем или устройств; и подобное.
Изобретение может быть описано в общем контексте компьютерно-выполнимых инструкций, таких как программные модули, выполняемые компьютером. В общем, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Изобретение может также использоваться на практике в распределенных вычислительных средах, где задачи выполняются удаленными обрабатывающими устройствами, которые соединены через коммуникационную сеть. В распределенной вычислительной среде программные модули могут располагаться в запоминающих носителях как локальных, так и удаленных компьютеров, включающих в себя запоминающие хранящие устройства.
Со ссылкой на фиг.1 иллюстративная система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но не ограничены этим, обрабатывающее устройство 120, системную память 130 и системную шину 121, которая соединяет различные системные компоненты, включающие в себя системную память, к обрабатывающему устройству 120. Системная шина 121 может быть любым из нескольких типов структур шин, включающих в себя шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую любую из разнообразия шинных архитектур. В качестве примера, а не ограничения, такие архитектуры включают в себя шину промышленной стандартной архитектуры (ISA), шину микроканальной архитектуры (MCA), шину расширенной ISA (EISA), локальную шину Ассоциации по стандартам в области видеоэлектроники (VESA), шину улучшенного графического порта (AGP, Advanced Graphics Port) и шину соединения периферийных компонент (PCI), также известную как шина расширения (mezzanine bus).
Компьютер 110 обычно включает в себя многообразие компьютерно-читаемых носителей. Компьютерно-читаемые носители могут быть любыми имеющимися носителями, к которым компьютер 110 может иметь доступ, и включают в себя как энергозависимые, так и энергонезависимые носители, съемные и несъемные носители. В качестве примера, а не ограничения, компьютерно-читаемые носители могут содержать компьютерные запоминающие носители и коммуникационные носители. Компьютерные запоминающие носители включают в себя как энергозависимые, так и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как компьютерно-читаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные запоминающие носители включают в себя, но не ограничены этим, RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, универсальные цифровые диски (DVD) или другое оптическое дисковое хранилище, магнитные кассеты, магнитную ленту, магнитное дисковое хранилище или другие магнитные хранящие устройства, или любой другой носитель, который может использоваться для хранения желаемой информации и к которому компьютер 110 может иметь доступ. Коммуникационные носители обычно реализуют компьютерно-читаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущее колебание, или другом транспортном механизме, и включают в себя любые носители доставки информации. Термин "модулированный сигнал данных" означает сигнал, который имеет одну или более своих характеристик, установленную или измененную таким образом, чтобы закодировать информацию в этом сигнале. В качестве примера, а не ограничения, коммуникационные носители включают в себя проводные носители, такие как проводная сеть или прямое проводное соединение, и беспроводные носители, такие как акустические, RF, инфракрасные и другие беспроводные носители. Комбинации любых из вышеописанных носителей также должны быть включены в область компьютерно-читаемых носителей.
Системная память 130 включает в себя компьютерные запоминающие носители в форме энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ROM) 131 и оперативное запоминающее устройство (RAM) 132. Базовая система 133 ввода/вывода (BIOS), содержащая базовые процедуры, которые помогают переносить информацию между элементами внутри компьютера 110, такую как в течение запуска, обычно хранится в ROM 131. RAM 132 обычно содержит данные и/или программные модули, которые непосредственно доступны и/или в настоящем обрабатываются обрабатывающим устройством 120. В качестве примера, а не ограничения, фиг.1 иллюстрирует операционную систему 134, прикладные программы 135, другие программные модули 136 и программные данные 137.
Компьютер 110 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители. Только в качестве примера, фиг.1 иллюстрирует привод 141 жесткого диска, который читает из или записывает на несъемные, энергонезависимые магнитные носители, привод 151 магнитного диска, который читает из или записывает на съемный, энергонезависимый магнитный диск 152, и привод 155 оптических дисков, который читает из или записывает на съемный, энергонезависимый оптический диск 156, такой как CD ROM или другие оптические носители. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители, которые могут использоваться в иллюстративной операционной среде, включают в себя, но не ограничены этим, кассеты магнитной ленты, платы флэш-памяти, универсальные цифровые диски, цифровую видеоленту, твердотельное RAM, твердотельное ROM и подобное. Привод 141 жесткого диска обычно подсоединяется к системной шине 121 через интерфейс несъемной памяти, такой как интерфейс 140, и привод 151 магнитного диска и привод 155 оптических дисков обычно подсоединяются к системной шине 121 посредством интерфейса съемной памяти, такого как интерфейс 150.
Приводы и их ассоциированные компьютерные запоминающие носители, обсужденные выше и проиллюстрированные на фиг.1, обеспечивают хранение компьютерно-читаемых инструкций, структур данных, программных модулей и других данных для компьютера 110. На фиг.1, например, привод 141 жесткого диска показан как хранящий операционную систему 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Заметим, что эти компоненты могут либо быть такими же, либо другими, нежели операционная система 134, прикладные программы 135, другие программные модули 136 и программные данные 137. Операционной системе 144, прикладным программам 145, другим программным модулям 146 и программным данным 147 здесь даны различные ссылочные позиции, чтобы показать, что, по меньшей мере, они являются различными копиями. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода, такие как клавиатура 162 и указывающее устройство 161, обычно указываемое как мышь, шаровой указатель (trackball) или сенсорная панель. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровая приставка (game pad), спутниковая антенна, сканер или подобное. Эти и другие устройства ввода часто подсоединяются к обрабатывающему устройству 120 через интерфейс 160 пользовательского ввода, который подсоединяется к системной шине, но может подсоединяться посредством других интерфейсных и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 184 или другой тип отображающего устройства также подсоединяется к системной шине 121 через интерфейс, такой как видео интерфейс 183. Компьютер 110 может также включать в себя цифровой преобразователь 185 для использования в соединении с монитором 184, чтобы позволять пользователю обеспечивать ввод, используя перьевое устройство 186 ввода. В дополнение к монитору, компьютеры могут также включать в себя другие периферийные устройства вывода, такие как громкоговорители 189 и принтер 188, которые могут подсоединяться через периферийный интерфейс 187 вывода.
Компьютер 110 может работать в сетевой среде, использующей логические связи с одним или более удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым PC, одноранговым устройством или другим обычным сетевым узлом, и обычно включает в себя много или все из элементов, описанных выше в отношении к компьютеру 110, хотя только запоминающее хранящее устройство 181 было показано на фиг.1. Логические связи, изображенные на фиг.1, включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но могут также включать в себя другие сети. Такие сетевые среды являются обычным явлением в офисах, компьютерных сетях масштаба предприятия, внутренних сетях (intranets) и Интернете.
При использовании в LAN сетевой среде, компьютер 110 подсоединяется к LAN 171 через сетевой интерфейс или адаптер 170. При использовании в WAN сетевой среде компьютер 110 обычно включает в себя модем 172 или другие средства для установки коммуникаций через WAN 173, такую как Интернет. Модем 172, который может быть внутренним или внешним, может подсоединяться к системной шине 121 через интерфейс 160 пользовательского ввода или другой подходящий механизм. В сетевой среде программные модули, описанные в отношении компьютера 110 или его частей, могут храниться в удаленном запоминающем хранящем устройстве. В качестве примера, а не ограничения, фиг.1 иллюстрирует удаленные прикладные программы 182, как постоянно находящиеся на запоминающем устройстве 181. Следует принять во внимание, что показанные сетевые соединения являются иллюстративными и могут использоваться другие средства установки коммуникационного соединения между компьютерами.
Иллюстративные осуществления
Изобретение может использовать компонующий администратор окон рабочего стола (CDWM), чтобы рисовать и поддерживать отображение рабочего стола, используя модель компонуемого рабочего стола, т.е., методологию воспроизведения снизу-вверх. CDWM может содержать контент в буферной запоминающей области для будущего использования. CDWM компонует рабочий стол посредством рисования рабочего стола снизу вверх, начиная с заднего плана рабочего стола и продолжая через перекрывающие окна в обратном Z-порядке. При компоновке рабочего стола CDWM может вычерчивать каждое окно, базируясь частично на контенте, на вершине которого это окно вычерчивается, и базируясь частично на других факторах среды (например, световом источнике, отражающих свойствах и т.д.). Например, CDWM может использовать альфа-канал текстуры формата ARGB для обеспечения прозрачности для окна и может избирательно акцентировать части оконного контента (например, фрейма), базируясь на виртуальном световом источнике.
CDWM может являться частью операционной системы 134, 144 или может находиться независимо от операционной системы, например, в других программных модулях 136, 146. В дополнение CDWM может полагаться на подсистему графической компоновки нижнего уровня, называемую здесь как унифицированная компонующая машина (UCE), дополнительно описываемая ниже и в серийном номере совместно находящейся на рассмотрении заявки (номер дела у поверенного 50037. 201US01), зарегистрированной 23 октября, 2003, озаглавленной "System and Method for a Unified Composition Engine in a Graphics Processing System", здесь включенной по ссылке в своей целостности для всех целей. В одном иллюстративном осуществлении UCE базируется на или использует Direct3D(R) и DirectX(R) технологию от Microsoft Corporation из Redmond, Washington. В альтернативных вариантах осуществления могут использоваться другие подсистемы графической компоновки, такие как вариации платформы X Window, базирующейся на графической машине OpenGL(R) от Silicon Graphics, Inc. из Mountain View, California, и подобное. UCE делает возможными 3D графику и анимацию, прозрачность, затенения, световые эффекты, рельефное отображение, отображение окружающей среды и другие богатые визуальные признаки на рабочем столе.
Фиг.1B иллюстрирует компонентную архитектуру согласно иллюстративному осуществлению компоновочной платформы рабочего стола. Компонующий администратор 190 окон рабочего стола (CDWM) может включать в себя интерфейс 190a прикладного программирования, через который несущее компоновку прикладное программное обеспечение 191 получает сервисы из CDWM для создания и управления окнами и контентом; Интерфейс 190b программирования подсистемы, через который оконная графическая подсистема 192 наследия посылает уведомления обновления для изменений, затрагивающих переадресованный графический вывод индивидуальных окон (переадресация оконного графического вывода описывается более детально ниже); и UI объектный администратор 190c, который поддерживает Z-упорядоченный репозиторий для UI объектов рабочего стола, таких как окна и их ассоциированный контент. UI объектный администратор может взаимодействовать с администратором 193 тем, чтобы извлекать ресурсы, атрибуты поведения объектов и метрику воспроизведения, ассоциированную с активной темой рабочего стола.
Подсистема графического пользовательского интерфейса 192 наследия может включать в себя администратора 192а окна наследия и интерфейс 192b графических устройств наследия. Администратор 192a окон наследия обеспечивает сервисы организации окон с моделью признания недействительности и рабочего стола для программных приложений, разработанных до появления CDWM. Интерфейс 192b графических устройств наследия предоставляет 2D графические сервисы как унаследованным приложениям, так и администратору окон наследия. Интерфейс графических устройств наследия, базирующийся на модели признания недействительности для воспроизведения рабочего стола, может не иметь поддержки для 3D, ускоренных аппаратным обеспечением воспроизводящих примитивов и преобразований, и может исконно не поддерживать попиксельную альфа-канальную прозрачность в операциях копирования и передачи битовой карты. Вместе администратор 192a окон наследия и интерфейс 192b графических устройств наследия продолжают служить для уменьшения стоимости владения для пользователей, которые желают обновить их операционную систему без принесения в жертву возможности запускать их излюбленные или критические программные приложения, которые используют модель признания недействительности. Чтобы достичь бесшовной, бок о бок стыковки окон унаследованных приложений с окнами поддерживающих компоновку приложений способом, который накладывает малые или никаких ощутимых для конечного пользователя штрафов, подсистема графического пользовательского интерфейса 192 наследия может активно участвовать в компонующем процессе. Действительно, принятая платформенная среда для унаследованных приложений предпочтительно не изменяется, чтобы избежать компрометации их надежности на компонуемом рабочем столе, хотя фундаментальный способ, посредством которого окна наследия воспроизводятся на рабочем столе, будет фундаментально изменен. Изобретение описывает, как это достигается через добавление признака, описываемого здесь как переадресация оконного графического вывода.
Унифицированная компонующая машина (UCE) 194 может обслуживать инструкции воспроизведения и объединять ресурсы, выдаваемые из CDWM через программный интерфейс 194a. В широком смысле роль UCE в отношении к CDWM аналогична роли интерфейса 192b графических устройств наследия в отношении к администратору 192a окон наследия. UCE программный интерфейс 194a предоставляет CDWM, и в конечном счете, приложения, абстрактный интерфейс к широкому ряду графических сервисов. Среди этих UCE сервисов находятся управление ресурсами, инкапсуляция из многодисплейных сценариев и поддержка удаленного рабочего стола.
Конфликты графических ресурсов между CDWM операциями записи и операциями воспроизведения могут арбитрироваться внутренним администратором 194b ресурсов. Запросы на обновление ресурсов и сервисы воспроизведения помещаются в очередь 194c запросов из UCE посредством подкомпонента 194a программного интерфейса. Эти запросы могут обрабатываться асинхронно воспроизводящим модулем 194d в интервалы, совпадающие со скоростью обновления отображающих устройств, установленных в системе. Таким образом, воспроизводящий модуль 194d из UCE 194 может выводить из очереди CDWM запросы, получать доступ и манипулировать ресурсами, сохраняемыми в администраторе 194b ресурсов, когда необходимо, и собирать и доставлять специфичные для дисплея инструкции воспроизведения 3D графическому интерфейсу 195.
Воспроизведение рабочего стола на множество дисплеев требует абстракции различий в скорости обновления, поддержки пиксельного формата и координатных отображений устройств среди разнородных отображающих устройств. UCE может предоставлять эту абстракцию.
UCE может также отвечать за доставку графических данных через сетевое соединение в удаленных конфигурациях рабочего стола. Чтобы рабочий стол одной конкретной системы для другой был эффективно удаленным, необходимо избежать ресурсных конфликтов, должны быть приведены в действие оптимизации выполнения и должна быть надежной безопасность. Эти обязанности могут также возлагаться на UCE.
3D графический интерфейс 195 может включать в себя низкоуровневый, с непосредственным режимом (не учитывающим состояние (stateless)) графический сервис, такой как DirectSD(R), OpenGL(R), или подобное. Цель 3D графического интерфейса может состоять в том, чтобы предоставить абстрактный интерфейс над признаками конкретной конфигурации графического аппаратного обеспечения. 3D графический интерфейс может обслуживать единичное отображающее устройство; UCE может анализировать и распределять инструкции администратора CDWM воспроизведения среди множества устройств 197 графического вывода в многодисплейной системе через множество драйверов 196 устройств.
Следует заметить, что компонентная архитектура, описанная на фиг.1B, является иллюстративным осуществлением. Эта фигура предназначена для иллюстрации функций, которые это изобретение может в себя включать. Эти функции могут быть распределены среди меньшего или большего числа программных компонентов, чем те, которые представлены на фигуре, в соответствии с возможностями платформы и желаемым набором признаков. Например, система, которая не имеет управления темами, может извлекать все фондовые ресурсы из системы, равно как статические ресурсы, управляемые самим CDWM, а не из отдельного администратора тем. Платформа, которая допускает съемные администраторы окон, может заменить интерфейс 190a прикладного программирования в CDWM на интерфейс съемного администратора окон, чтобы абстрагировать детали скомпонованного UI объекта и управления ресурсами. Другое возможное изменение может устранять интерфейс 190b программирования подсистемы, если не требуется совместимость унаследованного приложения. Подкомпоненты из UCE 194, изображенные на фиг.1B, могут быть разбиты в отдельные процессы, свернутые в сам CDWM или интегрированные в 3D графический интерфейс. Таким образом возможен широкий ряд конкретных дизайнов компонентов, каждый из которых допускает выполнение или целого ряда, или подмножества функций, содержащих изобретение.
Фиг.2 иллюстрирует общий способ для выполнения компоновки рабочего стола согласно иллюстративному аспекту изобретения. Этапы 201-205 описывают взаимодействие поддерживающего компоновку приложения, использующего интерфейсы API компонующего администратора окон рабочего стола (CDWM), для создания и управления окном и оконным контентом. Этапы 207 и 209 описывают взаимодействие между унаследованными приложениями администратора окон с моделью признания недействительности и CDWM для компоновки оконного контента наследия.
На этапе 201 компонующий администратор окон рабочего стола (CDWM) принимает запросы от поддерживающего компоновку приложения, чтобы (1) создать компонованное окно и (2) присоединить контентный объект. Изобретение не ограничено единичным контентным объектом на окно; приложение может динамически создавать и присоединять к окну (также как отделять и уничтожать) любое число контентных объектов через CDWM API, дополнительно описываемые ниже. Контентный объект состоит из растровой поверхности определенного размера и пиксельного формата для использования в качестве диффузной текстуры, отображаемой на сетку, определяемую приложением или системой, вместе с необязательными дополнительными ресурсами, такими как дополнительные текстуры (световое отображение, зеркальное отображение, рельефное/нормальное отображение и т.д.), источники света и пиксельный ретушер. Пиксельный формат диффузной контентной текстуры может быть любым из имеющихся форматов, поддерживаемых видеоаппаратным обеспечением, инсталлированным в системе, но для целей настоящей иллюстрации, может быть 32-битным ARGB. Запрашивая этот формат, приложение может неявно знать, что может использоваться альфа-канал (A), чтобы менять уровень прозрачности контентного пикселя, таким образом предоставляя точный контроль над количеством информации заднего плана рабочего стола, модулируемой с исходным пикселем при конечном воспроизведении. На этапе 203 CDWM выделяет блок состояния для окна, к которому он присоединяет контентный объект, реализованный администратором CDWM. Этот контентный объект выделяет запрошенные ресурсы или присоединяет ресурсы, переданные приложением, и затем направляет эти ресурсы к UCE, чтобы позволить непосредственный доступ по запросам обновления из UCE. На этапе 205 приложение уведомляет CDWM о незатребованном изменении с окном или оконным контентом. Эти изменения могут затрагивать любое окно или контентное состояние, но в целях простоты, эта иллюстрация описывает три обычных запроса обновления: контентного размера, позиции или масштаба окна, или изменения пикселей диффузной текстуры контента.
Процесс компоновки окна наследия начинается на инициализации компоновки рабочего стола, когда CDWM 190 доставляет запрос к подсистеме 192 организации окон и графики наследия для переадресации графического вывода каждого окна наследия во временное расположение памяти (этап 207). Этап 207 может быть более общо описан как помещение подсистемы окон и графики наследия в "компоновочный режим", в котором воспроизведение каждого индивидуального окна переадресовывается отдельному буферу памяти. В иллюстративном осуществлении подсистема 192 графического пользовательского интерфейса наследия переадресовывает вывод графических инструкций, вовлеченных в воспроизведение окна на запоминающую поверхность типа битовой карты, ассоциированную с окном. Однако изобретение включает в себя возможность сохранять исконные рисующие инструкции и ассоциированные параметры, и выполнение этих инструкций в UCE в течение процесса компоновки следующего видеофрейма для целевого отображающего устройства. Эти буферы переадресации (поверхности или блоки инструкций вычерчивания) могут управляться либо администратором CDWM, либо администратором 192a окон наследия, но для цели этой иллюстрации, управление ресурсами поверхности централизовано в CDWM. Каждый буфер переадресации либо образовывает, либо используется для генерирования ресурса диффузной контентной текстуры для окна. Администратор 192а окон наследия не обязан активизировать интерфейсы API из CDWM создания окон и контента; коммуникационный канал подсистема наследия - администратор CDWM для уведомлений отличается от канала интерфейса приложения, и CDWM извлекает атрибуты скомпонованного окна (стиль фрейма и границы, заголовок и т.д.) и состояния (скрытое/показанное, минимизированное/максимизированное и т.д.) из свойств существующего окна наследия. На этапе 209 администратор 192а окон наследия информирует CDWM 190 о любом изменении, затрагивающем переадресованную текстуру оконного контента, которое может сделать необходимым визуальное обновление.
На этапах 211, 219 и 223 CDWM 190 выбирает среди запросов обновления размера, позиции/масштаба и текстуры пиксельного уровня и действует соответственно. При обновлении размера (этап 211), CDWM сначала определяет, ассоциирован ли фрейм с целевым окном (этап 213). Если фрейм ассоциирован с этим окном (этап 215), CDWM определяет подходящий размер и ориентацию фреймового примитива, основанного на двух или трехмерном экстенте, явно предоставляемом поддерживающим компоновку приложением, или на комбинации унаследованной оконной метрики и оконной метрики администратора CDWM и обновленных измерениях переадресованной поверхности наследия. Когда размер фрейма определен, CDWM делает подходящие изменения с позиционной информацией в вершинах в сетке фрейма и передает буфер вершинных данных на UCE. UCE помещает директиву обновления сетки и новую информацию о вершинах в очередь для асинхронной обработки. Если окно не имеет фрейма, этап 215 может быть пропущен. В случае окон либо с фреймом, либо без фрейма, изменения размера, затрагивающие контентную область могут побудить CDWM изменить размеры контентной сетки и поставить в очередь подходящий запрос обновления сетки и данных к UCE (этап 217).
При обновлении позиции (включая сюда вращение) или масштаба (этап 219), CDWM определяет новые параметры преобразования и ставит в очередь на UCE запрос обновления ресурсов преобразования вместе с данными для асинхронной обработки (этап 221). Ресурс минимально состоит из четыре на четыре матрицы преобразования, но может содержать дополнительные данные, чтобы поддерживать фильтрованные преобразования.
На этапе 223 CDWM принимает запрос обновления, включающий в себя изменение в пиксельных данных диффузной контентной текстуры, т.е. приложение обновило свой контент внутри своего окна. На этапе 225 CDWM обслуживает запрос, ставя в очередь к UCE новую пиксельную информацию для асинхронной обработки.
Специалистами в данной области будет принято во внимание, что могут поддерживаться дополнительные запросы обновления в дополнение к описанным на фиг.2. Например, изменение в пиктограмме окна или тексте заголовка может также сделать необходимым перерисовать CDWM-управляемую пиктограмму или объект контента заголовка, соответственно, ассоциированные с окном. Оконный фокус ввода может отражаться во внешнем виде фрейма, и таким образом в случае окна наследия, администратор окон наследия может доставлять обновление изменения фокуса ввода к администратору CDWM, который заново воспроизводит фрейм и возможно другой контент соответственно.
На этапе 227 UCE обрабатывает входящие обновления компоновки и ресурса из CDWM, и в интервалы, синхронизированные со скоростями видеообновления каждого активного видеографического адаптера, участвующего в компоновке рабочего стола, заново воспроизводит рабочий стол (или подходящую его часть в многодисплейной конфигурации) в соразмерный с дисплеем поддерживающий буфер. Это достигается при использовании воспроизводящих сервисов с непосредственным режимом, предоставляемых 3D графической машиной (такой как Microsoft DirectSD(R)), которая, в свою очередь, передает рабочий стол на первичную поверхность дисплея.
Чтобы нарисовать окно в 3D, CDWM может определить анатомию окна, использующую различные компоненты, включить в себя базовый контентный объект и один или более дочерних контентных объектов. Базовый контентный объект определяет оконный фрейм или границу, и состоит из базовой геометрии, базового экстента, базовых материальных свойств и базовых контентных полей. Базовый и дочерний контентные объекты, каждый может быть полностью определен и управляться системой, или, в случае пользовательских контентных элементов, может управляться приложением. Контентные объекты обсуждаются более детально ниже.
Фиг.3 иллюстрирует окно приложения согласно иллюстративному аспекту изобретения. Окно 301 приложения может включать в себя различные области и компоненты. Фрейм или базовый контент 303 окна 301 может быть хостом для дочернего контента, включающего в себя кнопки 305 (например, используемые, чтобы восстанавливать, максимизировать, минимизировать, закрывать окно и т.д.), индикативную пиктограмму 307, полосы 309 прокрутки, строку 311 меню и текст 313 заголовка окна. Область 315 первичного контентного объекта может выводиться из буфера переадресации, полученного из подсистемы оконного и графического пользовательского интерфейса наследия, или создаваться и присоединяться к стандартному базовому контенту и воспроизводиться поддерживающим компоновку приложением владельцем. Специалисты в данной области примут во внимание, что фиг.3 только иллюстрирует базовые оконные элементы, и что могут дополнительно или альтернативно использоваться дополнительные или другие оконные элементы. В дополнение могут альтернативно предоставляться приложением оконные фреймовые элементы, например, чтобы предоставить отличающиеся вид и ощущение для прикладной программы. Пример можно найти там, где прикладная программа предоставляет элементы полосы прокрутки как пользовательские дочерние контентные объекты так, что они проявляют специфические для прикладной программы внешний вид и поведение. Более того, приложение может выбирать удалить или переставить один или более фондовых фреймовых элементов, используя CDWM API. Приложение не должно ограничиваться единичной первичной контентной областью, ограничение преобладающее в предыдущей технологии.
CDWM может поддерживать множество создаваемых приложением и воспроизводимых контентных областей, ассоциированных с единичным окном. Чтобы предоставить приложению возможность предоставлять более уникальный пользовательский опыт, в одном или более вариантах осуществления изобретения CDWM предоставляет гибкость в способе, посредством которого окно может вычерчиваться. То есть CDWM может позволить приложению изменять устанавливаемую по умолчанию анатомию окна, позволяя приложениям определять множество пользовательских контентных объектов, каждый имеющий произвольную форму, вместо ограничения каждого приложения единственной, прямоугольной клиентской контентной областью.
Таким образом, каждое CDWM окно может быть составлено из базового контентного объекта (т.е. фрейма) и коллекции одного или более дочерних контентных объектов. Каждый контентный объект может быть определен уникальным набором контентных атрибутов и может быть сконфигурирован, чтобы факультативно принимать события клавиатуры и мыши. CDWM отображает точки замеров нажатия мыши по отношению к определенным приложением, контентно-локальным, 3D координатам, и доставляет уведомления событий для мыши приложению. Контентные объекты могут управляться всецело системой, или в случае пользовательских контентных элементов, могут управляться приложением. Примеры управляемых системой контентных объектов включают в себя индикативную пиктограмму приложения, кнопки фрейма (например, минимизировать, восстановить, закрыть), текст заголовка, и определенные полосы меню и полосы прокрутки. Управляемые приложением контентные объекты включают в себя те контентные объекты, в которые приложение выводит свой первичный визуальный вывод, например, текст, выводимый процессором слов, числовая решетка, выводимая приложением табличных вычислений, или изображения, выводимые приложением редактирования фотографий.
Контентная текстура может быть битовой картой, управляемой системой, или, в случае пользовательского контента, приложением. Контентная текстура может отображаться линейно в контентную геометрию за единичную итерацию. Соотношение геометрических размеров может определяться контентной геометрией, и текстурные координаты могут показываться в контентной геометрии. Увеличение контента может контролироваться с помощью масштабирующего преобразования, которое влияет на отображение контентной текстуры в его геометрию. CDWM может предоставлять устанавливаемый по умолчанию интерактивный механизм, посредством которого пользователь может регулировать коэффициент масштабирования, такой как предоставляемая системой опция меню, управляющий элемент-движок, и/или комбинации мыши и клавиатуры.
До каждого воспроизведения заново контентная поверхность, чья диффузная текстура находится в формате, поддерживающем попиксельное альфа, может инициализироваться системой на нулевое альфа на усмотрение приложения (или системы в случае фондового контентного объекта). Поэтому подлежащий базовый контентный объект может отображаться в ненарисованных областях контентной поверхности. Это усиливает как программную модель, так и пользовательский опыт, так как приложения не требуют стирать контентную поверхность перед воспроизведением, и пользователь избавлен от мелькающих и устаревших или ненарисованных областей в окне.
В некоторых вариантах осуществления определенные контентные объекты, особенно те, в которые приложение выдает свой первичный графический вывод, могут не иметь ассоциированных с ними материальных свойств, так как было бы нежелательно заставлять контент взаимодействовать со светом или средой способом, отвлекающим пользователя или иначе вмешивающимся в пользовательскую деятельность. Визуальный внешний вид контентного объекта может определяться единственно по его текстуре, геометрии и возможно по по-вершинному или попиксельному альфа-значению в таких вариантах осуществления.
Фиг.6 иллюстрирует пример окна 601 с динамической нестандартной анатомией как здесь описано. Окно 601 имеет базовый фреймовый объект 603 нестандартной формы (т.е. непрямоугольной), фреймовые кнопочные объекты 605 нестандартной формы (непрямоугольной), расположенные в нестандартном расположении (ином, нежели верхний правый угол окна), предоставляемый системой индикативный фреймовый пиктограммный объект 607 в нестандартном положении (ином, нежели верхний левый угол окна), и фреймовый оконный заголовочный объект 613 также в нестандартном положении (не выровненный влево вверху фрейма). На фиг.6, приложение, ассоциированное с окном, определило две области 615a и 615b первичного контентного объекта. Область 615a первичного контентного объекта является регулярной (т.е. прямоугольной) формы, тогда как область 615b первичного контентного объекта является нерегулярной, непрямоугольной формы. Окно 601 может также включать в себя определенные приложением фреймовые кнопочные объекты 617 и 619, предоставляющие навигационный контроль назад и вперед, соответственно, например, в контексте просмотра.
CDWM может воспроизводить базовую часть окна 301 приложения как трехмерный (3D) объект. 3D сеточный примитив может использоваться, чтобы определять форму объекта окна (базовую геометрию), первичная диффузная текстура может отображаться в 3D геометрию сетки и необязательные материальные свойства, которые могут включать в себя освещение, затенение, рефракцию, размытость, и другие параметры и ресурсы специальных эффектов, включающие в себя вспомогательные текстуры, применяемые в течение процесса воспроизведения. Вспомогательные текстуры могут использоваться как ресурсы для графических эффектов хорошо известных в данной области, чтобы обеспечить "живое", физически смоделированное взаимодействие со световыми источниками, курсорами и другими UI объектами в среде рабочего стола. Таким образом, текстуры могут служить как источник попиксельной 3D нормальной информации (нормальное/рельефное отображение), световых масок (обтекающие, диффузные и отражающие световые фильтры), источников отражения (например, отражение курсора, когда он зависает над окном), отображения статической среды, и подобного.
n
n
Вершинный формат базовой геометрии может факультативно включать в себя 32-битный диффузный цветовой компонент в ARGB формате и текстурные координатные пары {tu, tv} для отображения до n текстур в сеточную геометрию, как описано выше. Как хорошо установлено в данной области, каждое целочисленное увеличение для tu и tv может определять повторение текстуры в соответствующем измерении. Например, ряд значений от {0,0, 0,0} (лево, верх текстуры) до {1,0, 1,0} (право, низ текстуры) представляют единичное повторение через всю сетку, тогда как {0.0, 0.0} до {6.0, 4.0} определяют шесть повторений в x-измерении и четыре повторения в y-измерении.
left
top
front
right
bottom
back
left
top
right
bottom
left
right
top-
bottom
back
back
Контентный экстент может определяться как пара трехмерных точек, определяющих ограничивающий экстент {x, y, z, x, y, z}, или координаты наименьшего бокса, который содержит базовую геометрию. Это аналогично 2D ограничивающему оконному прямоугольнику {x, y, x, y}. Триплет {x-x, yy, z-z} определяет ширину, высоту и глубину экстента контента. Экстент вычисляется и управляется системой и представляет размер и локальную позицию контента.
Если оконный объект может изменять размеры, манипулирование экстентом базового контента является средством, посредством которого CDWM может изменять размеры окна. Чтобы сохранять контуры краев и углов, позиция каждой вершины в сетке с изменяемыми размерами не может просто быть масштабирована до нового экстента. Чтобы сделать возможным точный контроль над изменением размеров сетки, предопределенная фильтр-функция позиции вершин вместе с применимыми параметрами может быть определена приложением во время создания окна или выбрана администратором CDWM как установка по умолчанию. Роль фильтр-функции изменения размера вершин состоит в том, чтобы определять, как ведет себя каждая вершина в целевой сетке, когда ее ограничивающий экстент изменяется. Каждая фильтр-функция должна определять для каждого члена-вершины направление и величину смещения в каждом измерении (x, y, z).
left
top
front
right
bottom
back
left
top
front
left
top
front
left
top
front
right
bottom
back
Наиболее простая фильтр-функция определяет направление (положительное или отрицательное) и величину (масштабированную по отношению к новому экстенту или смещению на величину, равную величине одной из шести лицевых сторон ограничивающего бокса сетки в 3D пространстве). То как каждая вершина ведет себя в операции изменения размера может быть описано на по-вершинной, по-размерной основе как свойство, ассоциированное с самой вершиной, или может быть определено для сетки как целого в геометрических терминах. Пример последнего способа это пара векторов {mx, my, mz, mx, my, mz}, определяющая шесть плоскостей краев для установки размеров, каждая ассоциирована с лицевой стороной ограничивающего бокса сетки, эффективно разделяющая объем ограничивающего бокса в 27 кубических подобластей. Значения края для установки размеров могут оставаться постоянными независимо от размера сетки или могут вычисляться, базируясь на начальном размере ограничивающего бокса. В произвольной операции, изменяющей размеры сетки, вершины, находящиеся в верхней, левой, фронтальной кубической подобласти (ограниченной посредством {x, y, z, mx, my, mz}) смещены на ту же величину и направление, что и верхний левый фронтальный угол ограничивающего экстента. Вершины, находящиеся в наиболее центральной кубической подобласти (ограниченной посредством {mx, my, mz, mx, my, mz}), масштабируются по отношению к новому экстенту этой подобласти. Вершины, находящиеся во фронтальной, центральной кубической подобласти, масштабируются по отношению к новому экстенту этой подобласти в измерении x и y, но смещены на ту же величину и в том же направлении, что и фронтальная Z, ограничивающая плоскость сетки.
Чтобы помочь в понимании вышеописанного принципа, фиг.7 иллюстрирует пример операции изменения размера сетки в 2-мерном пространстве. Окно 701 имеет округленные углы с радиусом 707 угла. Если операция изменения размера окна попросту масштабировала бы сетку, на которой окно базируется, угловой радиус масштабировался бы с сеткой. Однако, если угловой радиус масштабируется, радиус округленных углов может стать слишком большим или маленьким и отвлекать от пользовательского опыта, и отвлекать от удобства в использовании пользовательского интерфейса. Таким образом, когда окно 701 изменяется в размерах, угловой радиус предпочтительно не изменяется. Чтобы предотвратить масштабирование углового радиуса, сетка может быть разделена на три сегмента на измерение (x, y, z по применимости). Таким образом, в настоящем примере окно разделяется на 9 квадрантов 703a-i. В 3D пространстве окно может быть разделено в 27 областей. Каждое измерение может быть разделено поровну или разделено не поровну, таким образом, делая возможными равные по размеру области или не равные по размеру области. Когда области не равны по размеру, области, ограниченные посредством ограничивающего бокса, могут быть сделаны настолько маленькими, насколько необходимо, чтобы заключить материал, который не должен масштабироваться.
В течение операции изменения размера окна квадранты смещаются в каждом измерении, в котором квадрант ограничен ограничивающим боксом, и масштабируется в каждом измерении, в котором этот квадрант ограничен разделителем 705a-d области. Например, области 703a, 703c, 703g и 703i ограничиваются ограничивающим боксом на по меньшей мере одной стороне в обоих X и Y-измерениях, таким образом, сеточные вершины в областях 703a, 703c, 703g и 703i при изменении окна в размерах сохраняют то же смещение от ограничивающего бокса. Области 703b и 703h ограничиваются ограничивающим боксом на по меньшей мере одной стороне в Y (вертикальном) измерении, но ограничены только разделителями 705 областей в X (горизонтальном) измерении. Таким образом, сеточные вершины в областях 703b и 703h будут сохранять их смещения в Y-измерениях, но будут масштабированы в X-измерении. Области 703d и 703f ограничиваются ограничивающим боксом на по меньшей мере одной стороне в X (горизонтальном) измерении, но ограничены только разделителями 705 областей в Y (вертикальном) измерении. Таким образом, сеточные вершины в областях 703d и 703f будут сохранять их смещения в X-измерении, но будут масштабироваться в Y-измерении. Область 703e ограничивается разделяющими линиями 705 в обоих X и Y-доминионах, таким образом, сеточные вершины, попадающие внутрь области 703e, будут масштабироваться в обоих X и Y-измерениях. Специалисты в данной области поймут, как расширить этот алгоритм на 3 измерения, посредством включения сюда Z-измерения, как описано в предшествующих абзацах.
Другая вариация фильтр-функции изменения размеров сетки может интерпретировать вручную составленные вершинные метаданные, нежели полагаться на глобальную геометрическую конструкцию, такую как края для изменения размеров для определения, масштабируется ли или смещается вершинная позиция в каком-либо направлении. Такая функция могла бы использоваться, чтобы сохранять сложную топологию поверхности, такую как выступы и впадины, в течение изменения размеров сетки. Другая вариация фильтр-функции изменения размеров сетки может позволять вершинам смещаться в каждом измерении линейным или нелинейным способом, с помощью различительных битов и функциональных коэффициентов, хранящихся как по-вершинные метаданные. Такая функция делает возможными эффекты, такие как линейные или нелинейные, локализованные или глобальные выпучивание или свертывание, сопутствующие изменениям размера сетки.
Края базового контента определяют границы, в которые заключен дочерний контент. Контентные края могут быть трехмерными границами, определяемыми таким же образом, что и края для изменения размеров. Однако в отличие от краев для изменения размеров контентные края могут масштабироваться линейно с масштабированием окна и могут не влиять на изменение размера сетки.
Локальные и глобальные по отношению к рабочему столу ресурсы и параметры, как определено согласно значениям абстрактных материальных свойств, в комбинации с пиксельными ретушерами, содержат данные и механизм, посредством которого CDWM может реализовывать воспроизведение физически смоделированного контента рабочего стола.
Материальные свойства высокоуровневого контента определяют способ, посредством которого контент взаимодействует со светом и окружающей средой. Воспроизведение сложных материалов, таких как матированное стекло, может использовать технологии, не поддерживаемые исконно в аппаратном видеообеспечении. Как результат, CDWM реализует материальные свойства, используя один из малого числа предопределенных пиксельных ретушеров. Пиксельный ретушер является маленькой процедурой, загруженной в отображающее аппаратное средство, которое манипулирует со значениями пикселей до отображения, основываясь на предопределенном наборе ресурсов, включающем в себя, но не ограниченного этим, световые источники, текстуры и вершины в сеточном примитиве, также как и параметры, такие как преобразования и метрики. CDWM может выбрать среди своей коллекции предопределенных пиксельных ретушеров подходящий ретушер для воспроизведения конкретного набора материальных свойств объекта, которые включают в себя обтекающий цвет (интенсивность и прозрачность), диффузный цвет (интенсивность и прозрачность), зеркальный цвет (интенсивность и прозрачность), скаляр отражения, индекс рефракции, диффузную текстуру и текстуру рельефа, каждое из которых дополнительно описывается ниже. Глобальные по отношению к рабочему столу свойства могут использоваться для определения глобальных свойств среды, таких как положение глаз, глобальный световой источник/источники, отображения среды и подобное. Ресурсы и параметры, которые определяют эти глобальные по отношению к рабочему столу свойства, могут передаваться вместе с материальными свойствами базового окна 3D графическому интерфейсу как параметры для активного пиксельного ретушера непосредственно перед воспроизведением окна.
Обтекающий цвет имитирует попадание света на поверхность объекта со всех направлений. Как материальное свойство, применимое к любому CDWM-управляемому UI контентному объекту, обтекающая интенсивность определяет соответствующее количество обтекающего света, контактирующего с поверхностью объекта, и 32-битное ARGB значение может использоваться, чтобы определять обтекающий цвет и прозрачность. В одном иллюстративном осуществлении обтекающая интенсивность может простираться от 0,0 (нулевой обтекающий свет, дающий равномерно черный внешний вид) до 1,0 (максимальная интенсивность определенного цвета, распределенная равномерно по объекту). Эффект обтекающей интенсивности с белым обтекающим цветом позволяет контролировать общую яркость объекта.
Диффузионная интенсивность определяет количество направленного света, разбросанного во всех направлениях после контакта с поверхностью объекта. Сам свет предоставляется либо посредством одного или более направленных источников света, либо кубическим световым отображением. Как материальное свойство, применимое к любому CDWM-управляемому UI контентному объекту, диффузный цвет может определяться 32-битным ARGB значением, которое диктует цвет, где альфа-компонент диктует прозрачность диффузно отраженного света. Значение диффузионной интенсивности простирается от 0,0 (никакой свет не отражается диффузно, давая объекту равномерно черный внешний вид) до 1,0 (весь свет отражается диффузно, давая объекту затененный внешний вид согласно значению диффузионного цвета). Освещенные поверхности будут иметь более реалистично смоделированный внешний вид, так как сумма значений обтекающей и диффузионной интенсивности приближается к 1,0.
Зеркальная интенсивность контролирует сколько света отражается с поверхности объекта непосредственно назад на наблюдателя, и зеркальный цвет может определяться как ARGB цвет объекта. Сам световой источник может быть в форме либо одного или более направленных источников света, либо кубического светового отображения. Как материальное свойство, применимое к любому CDWM-управляемому UI контентному объекту, высокие значения зеркальной интенсивности могут использоваться, чтобы моделировать сияющую поверхность с отчетливыми подсветками, тогда как низкие значения могут использоваться, чтобы моделировать матовую поверхность с тусклыми или отсутствующими подсветками. Альфа-компонент цвета определяет прозрачность зеркальных подсветок.
Отражательная способность, как зеркальность, определяет количество света, которое отражается непосредственно назад в наблюдателя от поверхности объекта. Отражение отличается от зеркальности, в том, что отражение прилагается ко всей среде, не только к световому источнику. Как материальное свойство, применимое к любому CDWM-управляемому UI контентному объекту, значение отражательной способности, равное 0,0, не производит никакого отражения среды в поверхности, и значение, равное 1,0, производит зеркало - подобное отражение среды в поверхности. Среда может моделироваться, используя комбинацию кубического отображения среды и курсора мыши. Таким образом, курсор мыши, также как и статические признаки среды, может отражаться от оконной поверхности в степени, контролируемой скаляром интенсивности отражения.
Индекс рефракции каждого объекта определяет угол передачи света, проходящего через него. Может использоваться закон Снеллиуса (Snell's law), , где  и  являются индексами рефракции сред 1 и 2, и  и  это углы падения и передачи, соответственно, света по отношению к нормали поверхности. Поэтому, если среда 1 представляет среду рабочего стола с приписанным индексом рефракции, равным 1,0 (нет рефракции), и среда 2 - это среда оконного базового объекта, угол рефракции определяется как . Известные индексы рефракции для различных сред, которые могут моделироваться, показаны ниже в Таблице 1.
<b>Таблица 1</b>
<u>Среда</u>
<u>Индекс рефракции</u>
Вакуум
1,00
Лед
1,31
Вода
1,33
Стекло
в общем 1,50-1,75
Алмаз
2,42
Когда угол рефракции определен/вычислен, он может затем использоваться, чтобы выбирать подходящий пиксель из заднего плана, чтобы воспроизводить на видимой поверхности объекта последующую дополнительную обработку, ассоциированную с другими материальными свойствами. Оптимизации в целях воспроизведения рефракции в реальном времени могут включать в себя технологию Френеля, способ, оцененный специалистами в данной области.
Могут использоваться визуальные стили (темы), чтобы определять CDWM визуальную и поведенческую политику. Визуальные стили в общем указывают на выбираемые пользователем темы, которые определяют конкретизированную, спроектированную вручную графику и поведенческие атрибуты, применяемые к обычным элементам пользовательского интерфейса. Приложения могут факультативно изменять некоторые из этих атрибутов, тогда как другие выборочно навязываются системой в интересах согласованности в пользовательском интерфейсе. Визуальные атрибуты включают в себя внешний вид обычного оконного контента, такого как фреймовая область (базовый контент), неклиентские кнопки и другие, независимые от приложения элементы. Поведенческие атрибуты включают в себя переходные анимации окон и рабочего стола, манера, в которой окно интерактивно двигается или изменяется в размерах посредством мыши (например, щелканье, прилипание и растяжение и сужение), и другие поведения, независимые от приложения. Визуальная и поведенческая политика может быть централизована в CDWM, нежели быть распределенной по программному воспроизводящему конвейеру, таким образом, предоставляя более совместимую работу конечного пользователя и более простую среду разработки.
Согласно иллюстративному осуществлению изобретения устанавливаемая по умолчанию (или пользовательская) текстура визуального стиля может содержать альфа-уровень и/или битовую карту, базируясь на которой, модифицируется каждый пиксель. Например, альфа-уровень может использоваться, чтобы модифицировать уровень прозрачности, как известно в данной области. В дополнение текстура может содержать битовую карту, с помощью которой клиентская и/или неклиентская область, или часть клиентской и/или неклиентской области, может быть пиксельно затенена. Например, в одном иллюстративном осуществлении, битовая карта может давать внешний вид матированного стекла. Фиг.5 иллюстрирует окно 501, воспроизводимое с фреймом 503 матированного стекла, где может устанавливаться индекс рефракции, чтобы смоделировать стекло, во время, когда определяется какой должен показываться пиксель из контента за оконным фреймом 503. Пользуясь преимуществом улучшенных текстурирования, освещения и 3D возможностей машины воспроизведения графики, и используя подходящую битовую карту, CDWM может скомпоновать окно 501 с фреймом 503, имеющем внешний вид матированного стекла, который отражает свет из факультативно устанавливаемого виртуального светового источника внутри среды 3D рабочего стола, кроме того, имеет непрозрачную клиентскую контентную область так, что визуальная резкость клиентского контента не уменьшается.
Модели воспроизведения рабочего стола (признание недействительности в сравнении с компоновкой), каждая имеет уникальную схему для взаимодействия с прикладными программами так, чтобы окно/окна прикладной программы корректно поддерживались на рабочем столе. Например, в модели признания недействительности, воспроизведение рабочего стола зависит от управления и непрерывного обновления оконных "вырезанных областей". Вырезание - это процесс, посредством которого воспроизведение ограничивается до подходящей области окна. Когда одно окно частично закрыто другим, его вырезанная область соответствует дополнению к закрытой области. Если подлежащее окно рисует свой контент, то или в ответ на сообщение рисования или в незатребованной манере, DWM с моделью признания недействительности обеспечивает, что выводу подвергается его вырезанная область, таким образом обеспечивая, что в перекрывающем окне/окнах никакого рисования происходить не будет. Если перекрывающее окно передвигается, или подлежащее окно переносится на вершину Z-порядка, вырезанная область подлежащего окна корректируется администратором DWM соответственно перед тем, как он отправляет сообщение рисования окна, чтобы обновить любой заново выставляемый контент.
DWM с моделью признания недействительности и DWM с моделью компоновки, таким образом, полагаются на разную информацию, чтобы вычерчивать рабочий стол. Например, в DWM с моделью признания недействительности, так как DWM не хранит копию всей поверхности каждого окна на рабочем столе, DWM должен взаимодействовать с приложением, чтобы обновлять контент при изменении размеров и перерисовывании. Подобным образом приложение ожидает, что нет необходимости обновлять свой контент, пока DWM не просит его так сделать (если, конечно, контент не будет обновлен как результат пользовательского ввода). Если приложение действительно нуждается в независимом обновлении своего собственного контента, оно просит DWM признать недействительной часть своего собственного окна, ожидая принять от DWM запрос рисования соответствующей области, признанной недействительной. Так как в случае компонованного рабочего стола достаточная информация, чтобы вычертить каждое окно в его полноте, сохраняется администратором CDWM, CDWM не нуждается в отправке сообщений рисования окна при событиях, таких как те, что описаны выше. Это, в свою очередь, устраняет этап признания недействительности; приложение должно просто перерисовать все или часть себя, как диктуют внутренние события.
Вследствие этих фундаментальных различий каждый администратор DWM и/или CDWM имеет единственный набор интерфейсов API, через который прикладные программы предполагают взаимодействовать с DWM, чтобы обеспечивать содержание текущего состояния оконного контента. Как результат, приложение, исходно запрограммированное для использования с администратором DWM с моделью признания недействительности, т.е. то, которое полагается на сообщения рисования, чтобы воспроизвести свой контент, не обязательно будет работать с администратором CDWM с моделью компоновки. Таким образом, со ссылкой на фиг.4, CDWM может предоставлять поддержку для приложений, исходно разработанных для использования с администратором DWM с моделью признания недействительности. Эти приложения могут назваться здесь как унаследованные приложения, и поддержка совместимости с наследием может назваться здесь как поддержка наследия. Интерфейсы API наследия указывают на интерфейсы API для использования с предыдущей версией операционной системы, которая использовала DWM с моделью признания недействительности, с которой унаследованное приложение совместимо. Интерфейсы API 192b наследия (фиг.1B) позволяют приложению взаимодействовать с DWM с моделью признания недействительности (DWM наследия) 192a. DWM наследия может использовать отдельный элемент API наследия, чтобы обрабатывать различные уведомления наследия в интересах приложения для CDWM, чтобы переносить подходящую информацию о состоянии администратору CDWM, и переводить между координатными пространствами наследия и администратора CDWM для определения ввода и фокуса. DWM наследия может быть модифицирован, чтобы переадресовывать данные администратору CDWM, как описано ниже.
Фиг.4 иллюстрирует часть способа оконной компоновки согласно иллюстративному аспекту изобретения. Этапы 401-409 представляют начальное воспроизведение контента, ассоциированного с окном унаследованного приложения, чья исходная воспроизводящая поверхность (или множество, если инструкции затребовали сгенерировать поверхность) получается из администратора 192a окон наследия (фиг.1B). Этапы 411-419 иллюстрируют воспроизведение оконного контента, созданного программой поддерживающего компоновку приложения.
На этапе 401 CDWM принимает начальное уведомление обновления для первичного оконного контента от администратора окон наследия. Как результат унаследованное приложение вызывает интерфейсы API 192b наследия, чтобы рисовать окно на рабочем столе согласно модели признания недействительности, для которой приложение было разработано. Например, Microsoft(R) Word(R) XP может вызывать интерфейсы API наследия, чтобы администратор DWM 192a наследия рисовал текстовый ввод пользователя. На этапе 403 администратор CDWM извлекает устанавливаемую по умолчанию сетку контента из администратора тем. На этапе 405 администратор CDWM извлекает (или генерирует) поверхность переадресации из администратора окон наследия. Эта поверхность может использоваться как диффузная текстура контента. На этапе 407 CDWM обеспечивает сохранение только желаемых областей текстуры наследия таким образом, чтобы области, содержащие оконный фрейм наследия, границу и/или заголовок не воспроизводились. Один способ, посредством которого это может быть целесообразно выполнено, - это преобразование отображающих текстуру координат сетки так, что только желаемая область отображается в x и y, ограничивающие экстенты сетки. На этапе 409 CDWM извлекает устанавливаемые по умолчанию материальные свойства для контента. Ресурсы и параметры, требуемые для воспроизведения контента наследия, теперь собраны.
На этапе 411 CDWM принимает информацию от прикладной программы, требующей воспроизведения контентного объекта, ассоциированного с окном. Контент может факультативно сопровождаться пользовательской сеткой, пользовательской текстурой и/или пользовательскими материальными свойствами. Пользовательская сетка может предоставляться одиночно, когда прикладная программа желает иметь нестандартную форму для существующего контентного объекта. Если рассматриваемый контентный объект является оконным базовым контентом, пользовательская сетка переопределит форму окна. Пользовательская текстура и/или пользовательские материальные свойства могут предоставляться одиночно, когда прикладная программа желает придать нестандартный внешний вид (т.е. иной, нежели определенный активной темой) определяемому системой контентному объекту. Если рассматриваемый контентный объект является оконным базовым контентом, пользовательская текстура и/или материальные свойства переопределят внешний вид окна без модификации его формы. Более обычно, приложение создает контентный объект с нуля и определяет его сетку (которая может быть выбрана из набора предопределенных системных сеток), текстуру и материальные свойства (которые могут быть выбраны из набора предопределенных системных материальных свойств) во время создания.
На этапе 413 CDWM определяет, была ли сетка пользовательского контента определена и, если нет, извлекает устанавливаемую по умолчанию сетку из администратора тем (этап 403). На этапе 415 CDWM определяет, была ли определена пользовательская текстура и, если нет, извлекает устанавливаемую по умолчанию текстуру из администратора тем. На этапе 417 CDWM определяет, были ли определены пользовательские материальные свойства приложением и, если нет, извлекает устанавливаемый по умолчанию набор материальных свойств из администратора тем. Теперь собраны ресурсы и параметры, требуемые для воспроизведения пользовательского контента.
На этапе 419 CDWM собирает блок инструкций воспроизведения через UCE программный интерфейс для воспроизведения контента, используя подходящую сетку, текстуру и материальные свойства. Блок инструкций воспроизведения ставится в очередь для исполнения машиной UCE. Блок инструкций выполняется UCE воспроизводящей моделью по истечении ожидания интервала обновления для целевого устройства (устройств).
Предоставляя поддержку наследия, операционная система, в которой внутренне интегрированы CDWM и DWM наследия, имеет возможность воспроизводить рабочий стол, используя администратор DWM признания недействительности (администратор DWM 192a наследия) или компонующий DWM (CDWM 190). То есть DWM с моделью признания недействительности поддерживается операционной системой в дополнение к модели компоновки для предоставления поддержки наследия. Таким образом, в системах, которые не имеют аппаратного видеообеспечения, необходимого, чтобы эффективно выполнять процессорные интенсивные вычисления, требуемые для компоновки рабочего стола (например, в системах с низкой видеопамятью, или с отсутствием аппаратного обеспечения 3D акселерации), CDWM и/или операционная система может позволить пользователю выбирать, следует ли использовать компонующий или унаследованный режим рисования. Выбор может быть сделан автоматически или вручную. Например, выбор может быть сделан через ручной пользовательский контроль в соответствии с режимом рисования, определенным активированным визуальным стилем (темой), выбранным пользователем. Выбор может альтернативно или также базироваться на условиях экономии энергопотребления. Например, когда портативное устройство отключается от AC источника энергии и переключается на аккумуляторную энергию, операционная система может навязывать унаследованный режим рисования потому, что обрабатывающее устройство (GPU) видеографики является менее активным и таким образом потребляет меньше энергии.
Используя способы и системы, описанные выше, операционная система может предоставлять физически смоделированный графический пользовательский интерфейс, который использует передовые 3D графические возможности. Оконные фреймы могут принимать не только внешний вид, но также и характеристики, матированного стекла или какого-либо другого сложного материала, который предоставляет внешний вид имитированной поверхности, имеющий по меньшей мере некоторую прозрачность, комбинированную с по меньшей мере некоторым искажением контента, видимого как результат прозрачности, что результирует в просвечивающий эффект. То есть настоящее изобретение не только действительно имеет возможность сделать оконный фрейм или границу, выглядящими как матированное стекло, но оконный фрейм также ведет себя как матированное стекло в том, что оно отражает контент в GUI среде, включает в себя спектральные подсветки, указывающие на виртуальные световые источники, имитирует индекс рефракции, аналогичный стеклу так, что контент за границей "матированного стекла" соответственно слегка смещен, и может применяться битовая карта посредством одного или более пиксельных ретушеров, чтобы обеспечить искажение подлежащего контента.
Матированное стекло или другие подобные стеклу физически смоделированные объекты предоставляют многие преимущества пользователю графического пользовательского интерфейса. Например, эстетический внешний вид стекла усиливает GUI и предоставляет богатый пользовательский опыт, который делают интерфейс GUI настоящего изобретения более желаемым для конечных пользователей, чем интерфейсы GUI других операционных систем, посредством предоставления пользователю светлого, открытого ощущения. В то же время, физически смоделированное матированное стекло, имеющее достоверные или почти достоверные характеристики стекла, также предоставляет функциональные преимущества.
Внешний вид матированного стекла помогает пользователю понимать порядок оконных слоев в многооконной среде. Затенение, отражение и зеркальные подсветки создают более сильное понимание глубины и слоев на рабочем столе, и помогают пользователю определять Z-порядок различных окон на рабочем столе. В то время как некоторые известные системы применяют равномерную прозрачность ко всему окну, пользователь не может непосредственно воспринимать, какой контент находится внутри интересующего окна, и какой контент находится за окном. Изменяя эту равномерную, попиксельную прозрачность как функцию Z-порядка, возможно улучшить проблему, но в ненатуральной, неинтуитивной манере. Скорее, включая в пиксельный ретушер регулируемый алгоритм размывания изображения, который отбирает много окружающих пикселей источников в ходе генерирования каждого пикселя назначения, и, исполняя этот ретушер в процессе воспроизведения оконного фрейма, настоящее изобретение моделирует светорассеивающее поведение, возникающее из несовершенств материала в матированном стекле реального мира. Это то физически моделируемое искажение заднего плана, которое позволяет пользователю немедленно видеть различия между контентом заднего плана и контентом переднего плана. И так как этот эффект является накапливающимся, перекрывающие оконные фреймы матированного стекла становятся последовательно более искаженными от переднего плана к заднему плану. Таким образом, пользователь может интуитивно различать контент заднего плана, лежащий под многими слоями оконных фреймов матированного стекла.
Матированное стекло также допускает использование более толстых границ, чтобы облегчить пользовательское взаимодействие с GUI, например, делая для пользователя более легким захват оконной границы с помощью мыши для перемещения или изменения размеров окна, не закрывая при этом контент, находящийся под окном (так как стекло является прозрачным или полупрозрачным). Могут использоваться различные эффекты матированного стекла, чтобы сделать для пользователя более легким определение различий между активными в сравнении с неактивными оконными состояниями. В дополнение матированное стекло делает для пользователя более легким чтение и/или просмотр контента на экране, так как пользователь может видеть большую экранную область в любое заданное время (так как матированное стекло является полупрозрачным или прозрачным), и рабочий стол выглядит менее загроможденным, так как стекло является невыступающим элементом на экране дисплея.
Специалистами в данной области будет принято во внимание, что хотя проиллюстрированные фигуры описывают конкретный пример матированного стекла, изобретение этим не ограничено. Внешний вид матированного стекла может быть легко изменен посредством применения к воспроизведению внешнего вида другой битовой карты и/или другого пиксельного формирователя. В дополнение применение различных переменных сред (например, изменение светового источника (источников), который затрагивает отражение и зеркальные подсветки) или изменение виртуальных физических свойств стекла (например, индекса рефракции, отражения и т.д.), будут влиять также на внешний вид матированного стекла. Будет принято во внимание, что настоящее изобретение может также использоваться для моделирования других текстур и структур, например, металлов, пластика, бумаги, хлопка и других натуральных и синтетических материалов.
Хотя изобретение описывалось по отношению к конкретным примерам, включающим в себя ныне предпочтительные режимы выполнения изобретения, специалисты в данной области примут во внимание, что имеется множество вариаций и перестановок вышеописанных систем и технологий. Таким образом, сущность и объем изобретения должны толковаться широко, как излагается в прилагаемой формуле изобретения.