Динамическая архитектура окон

Иллюстрации

Показать все

Изобретение относится к графическому интерфейсу пользователя компьютерной операционной системой. Техническим результатом является обеспечение создания администратора рабочего стола, поддерживающего динамическую архитектуру окон с унаследованными приложениями. В способе и системе для визуализации модели комбинированного рабочего стола используют средство управления окнами комбинированного рабочего стола после приема от прикладной программы информации о базовом объекте и объекте контента для одного или нескольких объектов контента, вычерчивают окно в буферной памяти и используют преимущества усовершенствованных графических аппаратных средств и визуальных эффектов для визуализации окон на основе контента, по которому они вычерчены. Рамочная часть каждого окна может быть создана путем затенения пикселей битовой карты в виде матированного стекла на основе контента рабочего стола, поверх которого отображается указанная рамка. Поддержка унаследованных приложений обеспечивается таким образом, что операционная система может вычерчивать и визуализировать окна, созданные унаследованными приложениями, чтобы они смотрелись согласовано с окнами неунаследованных приложений. 3 н. и 18 з.п. ф-лы, 7 ил., 1 табл.

Реферат

Область техники, к которой относится изобретение

Изобретение относится в целом к графическому интерфейсу пользователя компьютерной операционной системы. В частности, изобретение обеспечивает механизм, позволяющий иметь от окна к окну множество клиентских и неклиентских областей контента и/или клиентские и неклиентские области контента неправильной формы в каждом окне.

Предшествующий уровень техники

Компьютерные операционные системы обычно имеют оболочку, которая предоставляет конечному пользователю графический пользовательский интерфейс (GUI). Эта оболочка состоит из одной программной компоненты или их комбинации, которая обеспечивает непосредственную связь между пользователем и операционной системой. Графический пользовательский интерфейс обычно предоставляет пользователю графические средства, ориентированные на пиктограммы (иконки), и/или управляемые через меню, для взаимодействия с операционной системой, причем этот интерфейс часто основан на модельном представлении рабочего стола. В частности, графический пользовательский интерфейс создается для моделирования действий реального окружения при работе на столе. Средства рабочего стола обычно занимают всю поверхность одного устройства отображения либо могут распространяться на множество устройств отображения и управлять подчиненными объектами пользовательского интерфейса, такими как пиктограммы, меню, курсоры и окна.

В число типов визуализируемых объектов, управляемых средствами рабочего стола, входят визуально очерченные области экрана, известные как окна. Окно обычно выделяется для уникального действия пользователя, причем оно создается и управляется либо программным приложением третьей стороны, либо системным приложением. Каждое окно действует и отображает свой контент (информационно значимое содержимое) независимо, как если бы оно было виртуальным устройством отображения, управляемым его специальной прикладной программой. Обычно можно согласованно изменять размеры окон, перемещать их по экрану дисплея и располагать в наложенном друг на друга виде, так чтобы они полностью или частично перекрывали друг друга. В некоторых оконных конфигурациях предусматривается возможность нахождения окон в таких визуальных или поведенческих состояниях, как состояние с минимальным размером, сведенное к пиктограмме, или состояние с максимальным размером, занимающее всю поверхность дисплея. Набор окон рабочего стола обычно задается в порядке сверху вниз, в котором они отображаются и который известен в данной области техники как «упорядоченность по Z-координате», в результате чего любое окно оказывается над всеми другими окнами, находящимися ниже его согласно упорядоченности по Z-координате, занимая одно и то же проецируемое положение на экране. В любой данный момент времени единственное выбранное окно имеет «фокус», при этом оно готово воспринимать пользовательский ввод. Пользователь может напрямую ввести фокус в другое окно, щелкнув по этому окну мышью или другим указательным устройством, либо использовать клавишную комбинацию быстрого вызова, определенную системой. Это позволяет пользователю эффективно работать с множеством прикладных программ, файлов и документов таким же образом, как при реальном обращении с бумажными документами или другими объектами, которые могут быть произвольным образом разложены друг на друге или размещены на физическом рабочем столе.

Недостатком многих известных вариантов реализации рабочего стола графического пользовательского интерфейса является их ограниченная способность визуально представлять разнообразный контент или использовать расширенные возможности технологии графической визуализации. Указанные расширенные возможности включают в себя визуализацию в реальном времени физически смоделированного (с литерами, затенением, текстурой, прозрачностью, отражением и преломлением) двух- и трехмерного контента и плавных высококачественных анимационных объектов. В отличие от ограниченных услуг, имеющихся в наличии для использования расширенных возможностей графической визуализации на рабочем столе, в некоторых прикладных программах, реализующих полный экран или экран с окнами, в графических пользовательских интерфейсах операционных систем марки Windows® и аналогичных операционных системных оболочках можно реализовать контент с богатыми визуальными возможностями. К подобного рода прикладным программам, представляющим указанный контент, относятся видеоигры с трехмерной анимацией и эффектами в реальном времени, современные графические инструментальные средства авторской разработки, такие как трассировщики луча и современные двухмерные и трехмерные издательские приложения. Поскольку визуальные выходные данные этих программ либо ограничены областью контента окна (окон) данного приложения, либо воспроизводятся на всем экране, что исключает возможность использования других окон и самого рабочего стола, богатые графические выходные данные прикладной программы никак не способствуют представлению среды рабочего стола.

Компьютерные операционные системы используют программный уровень, отвечающий за управление объектами пользовательского интерфейса, такими как пиктограммы, меню, курсоры, окна и рабочие столы; за арбитраж событий, поступающих от устройств ввода, таких как мышь и клавиатура; и за предоставление услуг пользовательского интерфейса программным приложениям. Этот программный уровень можно назвать средством управления (администратором) окнами рабочего стола (DWM). Логические средства визуализации, маршрутизация введенных событий и интерфейсы прикладного программирования (API) администратора окон рабочего стола (DWM) в совокупности воплощают политику пользовательского интерфейса, которая, в свою очередь, определяет все возможности пользователя, предоставляемые операционной системой. К настоящему времени основной причиной отсутствия рабочих столов с богатыми визуальными возможностями являются недостатки способов, с помощью которых администраторы DWM управляют работой рабочего стола и визуализируют рабочий стол. В известных вариантах реализации DWM для визуализации рабочего стола используется модель «недействительности», которая развивалась в основном исходя из потребности экономии ресурсов памяти для видео ресурсов и системных ресурсов, а также пропускной способности центрального процессорного устройства (CPU) и блока обработки видеографики (GPU).

В модели недействительности при изменении размеров или перемещении окна, либо когда приложение хочет вновь вычертить все окно или его часть, затронутая изменениями часть отображения на экране дисплея «признается недействительной». DWM признает недействительными области, подвергнутые изменению размеров окна или его перемещению, тогда как приложение, пытающееся вновь отобразить все свое окно в целом или частично, через интерфейс API дает команду операционной системе признать недействительной определенную область своего окна. В любом случае DWM обрабатывает запрос на признание недействительности путем определения поднабора запрошенной зоны, которая действительно нуждается в экранном обновлении. DWM обычно выполняет это, обращаясь к поддерживаемому списку пересекающихся зон, связанных с намеченным окном, другими окнами, лежащими над намеченными, отсекая зоны, связанные с затронутыми окнами, и видимые границы отображения. DWM последовательно посылает каждому затронутому приложению сообщение о раскраске, задающее зону, нуждающуюся в обновлении, в установленном порядке сверху вниз. Приложения могут взять на обработку или проигнорировать заданную зону. Любая раскраска, выполненная приложением вне локальной зоны обновления, автоматически отсекается DWM с использованием услуг, обеспечиваемых механизмом графической визуализации более низкого уровня, таким как интерфейс графических устройств (GDI).

Преимуществом модели с передачей сообщений о недействительности является экономия памяти, необходимой для отображения на экране дисплея. То есть, для основывающегося на признании недействительности DWM требуется только поддерживать достаточный объем буферной памяти для вычерчивания одного рабочего стола без «запоминания» того, что возможно находится под отображаемым в данный момент контентом. Однако поскольку окна на рабочем столе визуализируются в порядке сверху вниз, такие признаки, как непрямоугольные окна и двухмерная анимация через интерфейс GDI с расширенными возможностями, требуют интенсивных вычислений CPU, включая комплексные зоны, и/или экстенсивной дискретизации поверхности отображения на экране дисплея (из-за чего ограничивается возможность ускорения на основе графических аппаратных средств), тогда как другие признаки, такие как прозрачность, тени, трехмерная графика и усовершенствованные эффекты подсветки, достигаются с очень большим трудом и требуют сверхинтенсивного расхода ресурсов.

Например, администратор окон Microsoft Windows®XP, известный как USER, служит в качестве основной компоненты подсистемы графического пользовательского интерфейса (известной на сегодня как Win32) с момента появления операционной системы марки Windows®. USER использует средство двухмерного графического воспроизведения интерфейса графических устройств (GDI) для визуализации отображения. Интерфейс GDI является другой главной субкомпонентой Win32, причем он базируется на технологии визуализации, имеющейся в оригинальной операционной системе марки Windows®. USER визуализирует каждое окно на дисплее, используя модель с передачей сообщения о недействительности во взаимодействии с зонами отсечения GDI и примитивами двухмерного вычерчивания. Основные действия USER при визуализации рабочего стола включают в себя идентификацию зон дисплея, нуждающихся в визуальном обновлении, и информирование приложений об этой потребности и о местоположении для вычерчивания в соответствии с моделью недействительности для визуализации рабочего стола.

Следующим усовершенствованием при визуализации рабочего стола является подход, представляющий визуализацию снизу вверх, называемый компоновкой рабочего стола. В DWM компоновки, или CDWM, рабочий стол вычерчивается от нижнего уровня к верхнему уровню. То есть, сначала изображается фон рабочего стола, за ним пиктограммы, папки и контент, непосредственно находящийся на рабочем столе, после чего идет папка (папки) на первом уровне и так далее. В результате визуализации снизу вверх каждый промежуточный уровень может поместить свой контент на уровень под ним. Однако компоновка рабочего стола представляет собой процесс с интенсивным расходом памяти, поскольку CDWM поддерживает в памяти копию каждого объекта, выведенного на рабочий стол. До недавних изменений на рынке и разработки технологий, которые предоставляют гораздо более приемлемые по цене современные аппаратные средства для видео и компьютерную память, только дорогие коммерческие компьютерные системы высокопроизводительных старших моделей были способны реализовать механизмы компоновки, такие как механизмы для подготовки специальных эффектов для кинофильмов.

Эволюция компьютерных аппаратных средств для видео для средних и младших моделей по большей части стимулировалась графическими услугами, имеющимися в популярных операционных системах. Однако графические услуги, имеющиеся в популярных операционных системах, не претерпели значительных усовершенствований по различным причинам, в том числе из-за необходимости поддерживать совместимость с более старыми прикладными программными средствами и ограниченных возможностей приемлемого по стоимости диапазона аппаратных средств для видео. Однако не так давно трехмерные компьютерные игры реального масштаба времени обогнали операционные системы в качестве основного рыночного стимула для развития розничных аппаратных средств для видео, которые за короткое время достигли исключительного уровня сложности. Теперь пользователям по приемлемой цене доступны возможности трехмерного ускорения на основе аппаратных средств реального масштаба времени. Таким образом, стали легко доступными некогда считавшиеся весьма прогрессивными такие графические аппаратные функции, как ускоренные алгоритмы наложения текстур и подсветки, трехмерные преобразования и возможность непосредственного программирования GPU. В настоящее время обычно только игровые программы и узко специализированные графические приложения активно используют указанные признаки, и для их реализации они должны обходить унаследованный администратор окон Win32 (USER) и GDI.

Другим препятствием при реализации модели компоновки рабочего стола является то, что унаследованные приложения, написанные для использования с DWM на основе модели недействительности, не будут правильно функционировать в среде для компоновки. Это происходит потому, что базовые логические средства визуализации у унаследованного приложения основаны на API DWM модели недействительности из состава операционной системы. То есть, вместо визуализации контента окна в качестве непосредственной реакции на взаимодействие с пользователем или на изменения внутреннего состояния, унаследованное приложение будет выдавать изображение только после приема сообщения о раскраске, созданного либо операционной системой, либо по собственному запросу о недействительности. Самым трудным является разработка средства, с помощью которого DWM компоновки заменит собой унаследованную платформу GUI от имени приложения. Более простые альтернативные варианты состоят в исключении приложения из скомпонованной конфигурации рабочего стола (такой подход известен в данной области техники как «помещение в песочницу») или просто полного отказа от совместимости унаследованного приложения.

В настоящее время элементы пользовательского интерфейса (UI), находящиеся в неклиентской области, не могут быть модифицированы приложением. Кроме того, отсутствуют прямые и надежные средства для выполнения запроса, модификации или избирательной подмены стандартной компоновки рамки или индивидуальной визуализации неклиентских элементов. Например, отсутствует практический способ, позволяющий приложению перемещать системную пиктограмму или неклиентские кнопки (например, восстановить, максимизировать, минимизировать, закрыть) и добавлять или отслеживать заказные неклиентские кнопки. Помимо этого, приложения имеют ограничения по размещению контента приложения в одной прямоугольной зоне (клиентская область), если это приложение не хочет брать на себя визуализацию и проверку попаданий для всей неклиентской области (а также клиентской области) окна. Ослабление любого из этих ограничений в существующей структуре USER сделало бы бесполезными многие популярные унаследованные приложения, которые допускают и зависят от них.

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

Сущность изобретения

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

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

Первый иллюстративный аспект изобретения обеспечивает систему обработки данных, которая вычерчивает окна с динамическими архитектурами. Система обработки данных имеет память, где хранятся свойства окон, содержащие (для каждого окна, для которого хранятся свойства) свойства для базового объекта и свойства по меньшей мере для одного объекта контента. В системе обработки данных также имеется программный модуль администратора для компоновки окон рабочего стола, который компонует рабочий стол на основе свойств каждого окна, для которого хранятся свойства.

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

Перечень фигур чертежей

Более полное понимание настоящего изобретения и его преимуществ можно получить, обратившись к нижеследующему описанию с учетом сопроводительных чертежей, где одинаковые ссылочные позиции указывают на одинаковые признаки и где:

фиг.1А - операционная среда, которая может быть использована для одного или нескольких аспектов иллюстративного варианта изобретения;

фиг.1В - распределение функций и услуг между компонентами в иллюстративном варианте осуществления платформы комбинированного рабочего стола;

фиг.2 - способ компоновки согласно иллюстративному аспекту изобретения;

фиг.3 - окно согласно иллюстративному аспекту изобретения;

фиг.4 - часть способа компоновки окон согласно иллюстративному аспекту изобретения;

фиг.5 - окно в рамке из матированного стекла, визуализированное согласно иллюстративному аспекту изобретения;

фиг.6 - окно с динамической архитектурой окна;

фиг.7 - зоны, используемые во время изменения размеров сетки.

Подробное описание изобретения

В последующем описании различных вариантов осуществления сделаны ссылки на сопроводительные чертежи, которые образуют часть изобретения и на которых в качестве иллюстрации показаны различные варианты возможной практической реализации изобретения. Следует понимать, что могут быть использованы другие варианты осуществления, а также выполнены структурные и функциональные модификации, не выходящие за рамки объема и сущности настоящего изобретения.

Настоящее изобретение обеспечивает администратор окон рабочего стола (DWM), который в качестве предпочтительной модели визуализации использует компоновку рабочего стола. Предложенный в изобретении администратор окон рабочего стола называется здесь администратором компоновки окон рабочего стола (СDWM). Администратор СDWM вместе с подсистемой компоновки, называемые унифицированным средством компоновки (UCE), предоставляет средства трехмерной графики и технологии анимации, затенения, прозрачности, усовершенствованной подсветки и другие разнообразные визуальные признаки на рабочем столе. Используемая здесь модель компонуемого воспроизведения по сути исключает шаг признания недействительности при визуализации и минимизирует или исключает необходимость передачи сообщений о раскраске и других уведомлений, поскольку система поддерживает достаточный объем информации о состоянии для визуализации каждого требуемого окна.

Иллюстративная операционная среда

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

Изобретение может работать с множеством других вычислительных сред или конфигураций общего или специального назначения. Примеры известных вычислительных систем, сред и/или конфигураций, которые могут подойти для использования с данным изобретением, включают в себя, но не в ограничительном смысле, персональные компьютеры, компьютеры-серверы, портативные и карманные устройства, такие как персональные цифровые информационные устройства (PDA), карманные персональные компьютеры или лэптопы, мультипроцессорные системы, системы на базе микропроцессоров, компьютерные приставки, программируемую бытовую электронную аппаратуру, сетевые персональные компьютеры (ПК, PC), мини-компьютеры, универсальные компьютеры (мейнфреймы), распределенные вычислительные среды, которые включают в себя любые из вышеперечисленных систем или устройств, и т.п.

Изобретение может быть описано в общем контексте машиноисполняемых команд, таких как программные модули, выполняемые компьютером. Программные модули обычно включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют определенные абстрактные типы данных. Изобретение на практике также можно реализовать в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки данных, которые связаны через сеть связи. В распределенной вычислительной среде программные модули могут находиться как на локальных, так и на удаленных компьютерных носителях информации, включая запоминающие устройства.

Обратимся к фиг.1, где примерная система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но не в ограничительном смысле, блок 120 обработки данных (процессор), системную память 130 и системную шину 121, которая соединяет различные системные компоненты, включая системную память, с блоком 120 обработки данных. Системная шина 121 может быть реализована в виде шинной структуры любого из нескольких типов, в том числе в виде шины памяти или контроллера памяти, периферийной шины и локальной шины с любой из множества различных шинных архитектур. Такие архитектуры могут, например, включать в себя, но не в ограничительном смысле, шину с архитектурой промышленного стандарта (ISA), шину с микроканальной архитектурой (MCA), шину с расширенной архитектурой ISA (EISA), локальную шину Ассоциации по стандартам видеооборудования (VESA), шину усовершенствованного графического порта (AGP) и шину межсоединений периферийных компонентов (PCI) (известную также как мезонинная шина).

Компьютер 110 обычно включает в себя множество различных машиночитаемых носителей. Машиночитаемые носители могут представлять собой любые имеющиеся носители, к которым компьютер 110 может осуществить доступ, и могут включать в себя как энергозависимые, так и энергонезависимые носители, как съемные, так и несъемные носители. В качестве примера, но не как ограничение, машиночитаемые носители могут включать в себя компьютерные носители информации и среды связи. Компьютерные носители информации включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или по любой технологии для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерные носители информации включают в себя, но не в ограничительном уровне ОЗУ (RAM), ПЗУ (ROM), электрически стираемое программируемое ПЗУ (EEPROM), флэш-память, либо память, выполненную по другой технологии, ПЗУ на компакт-диске (CD ROM), цифровые универсальные диски (DVD), либо другое запоминающее устройство на оптическом диске, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитном диске или другие магнитные запоминающие устройства, либо любой другой носитель, который можно использовать для хранения требуемой информации и к которому компьютер 110 может осуществить доступ. Среды связи обычно воплощают машиночитаемые команды, структуры данных, программные модули либо другие данные в модулированном информационном сигнале, таком как сигнал несущей или другой механизм транспортировки, и включают в себя любые среды для доставки информации. Термин «модулированный информационный сигнал» означает сигнал, имеющий одну или несколько характеристик, установленных или измененных таким образом, чтобы закодировать информацию в этом сигнале. В качестве примера, но не ограничения, среды связи включают в себя проводные среды, такие как проводная сеть или непосредственное проводное соединение, и беспроводные среды, такие как акустическая, радиочастотная (RF), инфракрасная и другие беспроводные среды. Понятием «машиночитаемый носитель» также охватываются комбинации из любых вышеперечисленных сред и носителей.

Системная память 130 включает в себя компьютерные носители информации в виде энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство 131 (только для считывания) (ROM) и оперативное запоминающее устройство 132 (с произвольной выборкой) (RAM). В ROM 131 обычно хранится базовая система 133 ввода/вывода (BIOS), содержащая базовые процедуры, которые помогают пересылать информацию между элементами в компьютере 110, к примеру, во время запуска. RAM 132 обычно содержит данные и/или программные модули, которые непосредственно доступны блоку 120 обработки данных и/или обрабатываются в текущий момент в блоке 120 обработки данных. На фиг.1 в качестве примера, но не ограничения, показаны операционная система 134, прикладные программы 135, другие программные модули 136 и данные 137 программ.

Компьютер 110 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители информации. Только в качестве примера, на фиг.1 показан накопитель 140 на жестких магнитных дисках, который осуществляет считывание или запись на несъемный, энергонезависимый магнитный носитель; магнитный дисковод 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, известное как «мышь», шаровой манипулятор или сенсорный планшет. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую приставку, спутниковую антенну, сканер или т.п. Эти и другие устройства ввода часто подсоединены к блоку 120 обработки данных через интерфейс 160 пользовательского ввода, который соединен с системной шиной, но могут быть подсоединены с помощью других интерфейсных и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). К системной шине 121 через интерфейс, такой как видеоинтерфейс 183, также подсоединен монитор 184 либо устройство отображения другого типа. Компьютер 110 может также включать в себя цифровой преобразователь 185 для использования вместе с монитором 184, чтобы дать возможность пользователю обеспечить ввод с использованием перьевого устройства 186 ввода. Вдобавок к монитору компьютеры могут также включать в себя другие периферийные устройства вывода, такие как громкоговорители 189 и принтер 188, которые могут быть подсоединены через выходной периферийный интерфейс 187.

Компьютер 110 может работать в сетевой среде, используя логические соединения с одним или несколькими удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер, одноранговое устройство либо другой известный сетевой узел, причем такой компьютер обычно включает в себя многие или все элементы, описанные выше в связи с компьютером 110, хотя на фиг.1 показано только запоминающее устройство 181. Логические соединения, изображенные на фиг.1, включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но также могут включать другие сети. Такие сетевые среды типичны для офисов, компьютерных сетей масштаба предприятия, интрасетей и Интернет.

При использовании в сетевой среде LAN компьютер 110 подсоединен к LAN 171 через сетевой интерфейс или адаптер 170. При использовании в сетевой среде WAN компьютер 110 обычно включает в себя модем 172 либо другое средство для установления связи через сеть WAN 173, такую как Интернет. Модем 172, который может быть встроенным или внешним, может быть подсоединен к системной шине 121 через интерфейс 160 пользовательского ввода либо другой подходящий механизм. В сетевой среде программные модули, показанные применительно к компьютеру 110, или их части, могут храниться в удаленном запоминающем устройстве. На фиг.1 в качестве примера, но не ограничения, показано, что удаленные прикладные программы 185 находятся в запоминающем устройстве 181. Очевидно, что показанные сетевые соединения являются лишь примерами и что можно использовать другие средства для установления линии связи между компьютерами.

Иллюстративные варианты осуществления

Изобретение может использовать администратор компоновки окон рабочего стола (СDWM) для вычерчивания и поддержки отображения рабочего стола с использованием модели комбинированного рабочего стола, то есть методологии визуализации снизу вверх. СDWM может поддерживать контент в области буферной памяти для обращения в будущем. СDWM компонует рабочий стол, изображая его снизу вверх, начиная с фона рабочего стола и продолжая через перекрывающиеся окна в обратном порядке по Z-координате. При компоновке рабочего стола СDWM может вычерчивать каждое окно, частично на основе контента, в верхней части которого изображается окно, а частично на основе других внешних факторов (например, источника света, отражательных свойств и т.д.). Например, СDWM может использовать альфа-канал текстуры формата AGRB (формат RGB с добавлением информации о прозрачности) для обеспечения прозрачности окна и может избирательно выделять участки контента окна (например, рамку) на основе виртуального источника света.

СDWM может храниться как часть операционной системы 134, 144 либо может храниться независимо от операционной системы, например, в других программных модулях 136, 146. Помимо этого, СDWM может основываться на подсистеме графической компоновки более низкого уровня, называемой здесь унифицированным средством компоновки (UCE), который дополнительно описывается ниже, а также в одновременно рассматриваемой заявке с серийным номером (индекс патентного поверенного 50037.201US01), поданной 23 октября 2003 года, под заголовком «System and Method for a United Composition Engine in a Graphics Processing System», содержание которой целиком включено сюда посредством ссылки. В одном иллюстративном варианте осуществления UCE базируется на технологии Direct3D® или DirectX® от Microsoft Corporation of Redmond, Washington, либо использует эту технологию. В альтернативных вариантах осуществления могут быть использованы другие подсистемы графической компоновки, такие как вариации платформы X Window на основе графических средств OpenGL® от компании Silicon Graphics, Inc. Of Mountain View, California и т.п. UCE позволяет реализовать трехмерную графику и анимацию, прозрачность, тени, эффекты подсветки, отображение рельефа, отображение окружения и другие разнообразные визуальные признаки на рабочем столе.

На фиг.1В показана многокомпонентная архитектура согласно иллюстративному варианту осуществления платформы для компоновки рабочего стола. Администратор 190 компоновки окон рабочего стола (СDWM) может включать в себя интерфейс 190а прикладного программирования, через который прикладные программные средства 191 для компоновки получают услуги СDWM по созданию и управлению окнами и контентом; интерфейс 190b подсистемного программирования, через который унаследованная графическая подсистема 192, организующая окна, посылает уведомления об обновлениях для изменений, воздействующих на переадресованный графический вывод отдельных окон (переадресация графического вывода подробно описана ниже); и администратор 190c объектов UI, который поддерживает упорядоченное по Z-координате хранилище (репозиторий) для объектов UI рабочего стола, таких как окна и связанный с ними контент. Администратор объектов UI может осуществлять связь с администратором 193 тем для поиска ресурсов, атрибутов поведения объекта и параметров визуализации, связанных с темой активного рабочего стола.

Подсистема 192 унаследованного графического пользовательского интерфейса может включать в себя унаследованный администратор 192а окон и унаследованный интерфейс 192b графических устройств. Унаследованный администратор 192а окон обеспечивает управление окнами на основе модели недействительности и предоставляет услуги рабочего стола для программных приложений, разработанных до появления СDWM. Унаследованный интерфейс 192b графических устройств предоставляет услуги двухмерной графики как унаследованным приложениям, так и унаследованному администратору окон. Унаследованный интерфейс графических устройств, основывающийся на модели недействительности для визуализации рабочего стола, может нуждаться в поддержке трехмерных примитивов и преобразований для визуализации на основе аппаратных средств ускорения и возможно сам по себе не может поддерживать прозрачность альфа-канала по пикселям во время операций копирования и пересылки битовой карты. Унаследованный администратор 192а окон вместе с интерфейсом 192b графических устройств продолжает обслуживание для уменьшения расходов на владение для пользователей, которые хотят обновить свою операционную систему без потери способности выполнения своих любимых или важных программных приложений, которые используют модель недействительности. Чтобы обеспечить прозрачную стыковку унаследованных прикладных окон с окнами приложений, осведомленных о компоновке, таким образом, чтобы потери для конечного пользователя оказались небольшими или неощутимыми, может быть предусмотрено активное участие унаследованной подсистемы 192 графического пользователь