RU2360284C2 - Компонующий администратор окон рабочего стола - Google Patents

Компонующий администратор окон рабочего стола Download PDF

Info

Publication number
RU2360284C2
RU2360284C2 RU2005120233/09A RU2005120233A RU2360284C2 RU 2360284 C2 RU2360284 C2 RU 2360284C2 RU 2005120233/09 A RU2005120233/09 A RU 2005120233/09A RU 2005120233 A RU2005120233 A RU 2005120233A RU 2360284 C2 RU2360284 C2 RU 2360284C2
Authority
RU
Russia
Prior art keywords
window
content
computer
desktop
application
Prior art date
Application number
RU2005120233/09A
Other languages
English (en)
Other versions
RU2005120233A (ru
Inventor
Скотт ХЭНГГИ (US)
Скотт ХЭНГГИ
Виктор ТЭН (US)
Виктор ТЭН
Джерардо БЕРМУДЕЗ (US)
Джерардо БЕРМУДЕЗ
Грегори Д. СВЕДБЕРГ (US)
Грегори Д. СВЕДБЕРГ
Марк Р. ЛИГАМЕРИ (US)
Марк Р. ЛИГАМЕРИ
Грег С. МЕЛАНДЕР (US)
Грег С. МЕЛАНДЕР
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2005120233A publication Critical patent/RU2005120233A/ru
Application granted granted Critical
Publication of RU2360284C2 publication Critical patent/RU2360284C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04804Transparency, e.g. transparent or translucent windows

Abstract

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

Description

Область техники, к которой относится изобретение
Изобретение относится в общем к компьютерной графике и компьютерным операционным системам. Более конкретно, изобретение предоставляет 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 нормальной информации (нормальное/рельефное отображение), световых масок (обтекающие, диффузные и отражающие световые фильтры), источников отражения (например, отражение курсора, когда он зависает над окном), отображения статической среды, и подобного.
Вершинный формат базовой геометрии может факультативно включать в себя 32-битный диффузный цветовой компонент в ARGB формате и текстурные координатные пары {tun, tvn} для отображения до n текстур в сеточную геометрию, как описано выше. Как хорошо установлено в данной области, каждое целочисленное увеличение для tu и tv может определять повторение текстуры в соответствующем измерении. Например, ряд значений от {0,0, 0,0} (лево, верх текстуры) до {1,0, 1,0} (право, низ текстуры) представляют единичное повторение через всю сетку, тогда как {0.0, 0.0} до {6.0, 4.0} определяют шесть повторений в x-измерении и четыре повторения в y-измерении.
Контентный экстент может определяться как пара трехмерных точек, определяющих ограничивающий экстент {xleft, ytop, zfront, xright, ybottom, zback}, или координаты наименьшего бокса, который содержит базовую геометрию. Это аналогично 2D ограничивающему оконному прямоугольнику {xleft, ytop, xright, ybottom}. Триплет {xleft-xright, ytop-ybottom, zback-zback} определяет ширину, высоту и глубину экстента контента. Экстент вычисляется и управляется системой и представляет размер и локальную позицию контента.
Если оконный объект может изменять размеры, манипулирование экстентом базового контента является средством, посредством которого CDWM может изменять размеры окна. Чтобы сохранять контуры краев и углов, позиция каждой вершины в сетке с изменяемыми размерами не может просто быть масштабирована до нового экстента. Чтобы сделать возможным точный контроль над изменением размеров сетки, предопределенная фильтр-функция позиции вершин вместе с применимыми параметрами может быть определена приложением во время создания окна или выбрана администратором CDWM как установка по умолчанию. Роль фильтр-функции изменения размера вершин состоит в том, чтобы определять, как ведет себя каждая вершина в целевой сетке, когда ее ограничивающий экстент изменяется. Каждая фильтр-функция должна определять для каждого члена-вершины направление и величину смещения в каждом измерении (x, y, z).
Наиболее простая фильтр-функция определяет направление (положительное или отрицательное) и величину (масштабированную по отношению к новому экстенту или смещению на величину, равную величине одной из шести лицевых сторон ограничивающего бокса сетки в 3D пространстве). То как каждая вершина ведет себя в операции изменения размера может быть описано на по-вершинной, по-размерной основе как свойство, ассоциированное с самой вершиной, или может быть определено для сетки как целого в геометрических терминах. Пример последнего способа это пара векторов {mxleft, mytop, mzfront, mxright, mybottom, mzback}, определяющая шесть плоскостей краев для установки размеров, каждая ассоциирована с лицевой стороной ограничивающего бокса сетки, эффективно разделяющая объем ограничивающего бокса в 27 кубических подобластей. Значения края для установки размеров могут оставаться постоянными независимо от размера сетки или могут вычисляться, базируясь на начальном размере ограничивающего бокса. В произвольной операции, изменяющей размеры сетки, вершины, находящиеся в верхней, левой, фронтальной кубической подобласти (ограниченной посредством {xleft, ytop, zfront, mxleft, mytop, mzfront}) смещены на ту же величину и направление, что и верхний левый фронтальный угол ограничивающего экстента. Вершины, находящиеся в наиболее центральной кубической подобласти (ограниченной посредством {mxleft, mytop, mzfront, mxright, mybottom, mzback}), масштабируются по отношению к новому экстенту этой подобласти. Вершины, находящиеся во фронтальной, центральной кубической подобласти, масштабируются по отношению к новому экстенту этой подобласти в измерении 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),
Figure 00000001
, где
Figure 00000002
и
Figure 00000003
являются индексами рефракции сред 1 и 2, и
Figure 00000004
и
Figure 00000005
это углы падения и передачи, соответственно, света по отношению к нормали поверхности. Поэтому, если среда 1 представляет среду рабочего стола с приписанным индексом рефракции, равным 1,0 (нет рефракции), и среда 2 - это среда оконного базового объекта, угол рефракции определяется как
Figure 00000006
. Известные индексы рефракции для различных сред, которые могут моделироваться, показаны ниже в Таблице 1.
Таблица 1
Среда Индекс рефракции
Вакуум 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, например, делая для пользователя более легким захват оконной границы с помощью мыши для перемещения или изменения размеров окна, не закрывая при этом контент, находящийся под окном (так как стекло является прозрачным или полупрозрачным). Могут использоваться различные эффекты матированного стекла, чтобы сделать для пользователя более легким определение различий между активными в сравнении с неактивными оконными состояниями. В дополнение матированное стекло делает для пользователя более легким чтение и/или просмотр контента на экране, так как пользователь может видеть большую экранную область в любое заданное время (так как матированное стекло является полупрозрачным или прозрачным), и рабочий стол выглядит менее загроможденным, так как стекло является невыступающим элементом на экране дисплея.
Специалистами в данной области будет принято во внимание, что хотя проиллюстрированные фигуры описывают конкретный пример матированного стекла, изобретение этим не ограничено. Внешний вид матированного стекла может быть легко изменен посредством применения к воспроизведению внешнего вида другой битовой карты и/или другого пиксельного формирователя. В дополнение применение различных переменных сред (например, изменение светового источника (источников), который затрагивает отражение и зеркальные подсветки) или изменение виртуальных физических свойств стекла (например, индекса рефракции, отражения и т.д.), будут влиять также на внешний вид матированного стекла. Будет принято во внимание, что настоящее изобретение может также использоваться для моделирования других текстур и структур, например, металлов, пластика, бумаги, хлопка и других натуральных и синтетических материалов.
Хотя изобретение описывалось по отношению к конкретным примерам, включающим в себя ныне предпочтительные режимы выполнения изобретения, специалисты в данной области примут во внимание, что имеется множество вариаций и перестановок вышеописанных систем и технологий. Таким образом, сущность и объем изобретения должны толковаться широко, как излагается в прилагаемой формуле изобретения.

Claims (36)

1. Компьютерно-осуществимый способ воспроизведения окна рабочего стола в графическом пользовательском интерфейсе оболочки операционной системы, содержащий:
прием в компонующем администраторе окон рабочего стола (CDWM) контента приложения от расширенных приложений в порядке снизу вверх для отображения контента приложения, принятого в порядке снизу вверх в окнах, соответствующих расширенным приложениям в графическом пользовательском интерфейсе;
прием в администраторе окон рабочего стола (DWM) контента приложения от унаследованных приложений в порядке сверху вниз, для отображения контента приложения, принятого в порядке сверху вниз в окнах, соответствующих унаследованным приложениям в графическом пользовательском интерфейсе;
снятие контента приложения, принятого от унаследованных приложений;
конвертирование снятого контента приложения в графическое представление;
переключение между CDWM и DWM для воспроизведения изображения
контента расширенного приложения и контента унаследованного
приложения; и
отображение по меньшей мере части контента приложения в непрозрачной
контентной части окон, причем окна имеют полупрозрачные фреймовые части.
2. Компьютерно-осуществимый способ по п.1, в котором этап отображения содержит контент пиксельного ретушера, на верху которого воспроизводится фреймовая часть.
3. Компьютерно-осуществимый способ по п.1, в котором битовая карта содержит подобие стекла.
4. Компьютерно-осуществимый способ по п.1, в котором битовая карта содержит подобие матированного стекла.
5. Компьютерно-осуществимый способ по п.1, в котором отображение содержит:
администратор CDWM, моделирующий окно посредством применения текстуры к сетке.
6. Компьютерно-осуществимый способ по п.5, в котором сетка определяется текущим визуальным стилем.
7. Компьютерно-осуществимый способ по п.5, в котором сетка предоставляется в контентной информации приложения.
8. Компьютерно-осуществимый способ по п.5, в котором текстура определяется текущим визуальным стилем.
9. Компьютерно-осуществимый способ по п.5, в котором текстура предоставляется в контентной информации приложения.
10. Компьютерно-осуществимый способ по п.1, в котором этап переключения базируется на текущем визуальном стиле.
11. Компьютерно-осуществимый способ по п.1, в котором этап переключения базируется на текущей конфигурации источника энергии компьютера, в которой выполняется способ.
12. Компьютерно-осуществимый способ по п.1, в котором фрейм содержит спектральные подсветки, основанные на виртуальном световом источнике.
13. Компьютерно-осуществимый способ по п.1, в котором фрейм содержит контент отражения, основанный на другом контенте в графическом пользовательском интерфейсе, отдельном от окна.
14. Компьютерно-осуществимый способ по п.1, в котором фреймовая часть является полупрозрачной, когда окно имеет фокус ввода.
15. Компьютерно-осуществимый способ по п.5, который также содержит этапы:
приема пользовательского ввода для изменения размеров окна;
разделения сетки в три области на сеточное измерение;
для каждой области поддержку смещений сеточных вершин в любом измерении, посредством чего область ограничивается ограничивающим боксом окна, и масштабирование сеточных вершин в любом измерении, посредством чего область не ограничивается ограничивающим боксом окна.
16. Компьютерно-читаемый носитель, хранящий команды для исполнения компьютером, которые побуждают компьютер выполнять способ воспроизведения окна рабочего стола в графическом пользовательском интерфейсе оболочки операционной системы, содержащий:
прием в компонующем администраторе окон рабочего стола (CDWM) контента приложения от расширенных приложений в порядке снизу вверх для отображения контента приложения, принятого в порядке снизу вверх в окнах, соответствующих расширенным приложениям в графическом пользовательском интерфейсе;
прием в администраторе окон рабочего стола (DWM) контента приложения от унаследованных приложений в порядке сверху вниз для отображения контента приложения, принятого в порядке сверху вниз в окнах, соответствующих унаследованным приложениям в графическом пользовательском интерфейсе, при этом DWM переадресовывает контент приложения, принятый от CDWM;
снятие контента приложения, принятого от унаследованных приложений;
конвертирование снятого контента приложения в графическое представление;
переключение между CDWM и DWM для воспроизведения изображения контента расширенного приложения и контента унаследованного приложения; и
отображение по меньшей мере части контента приложения в непрозрачной контентной части окон, причем окна имеют полупрозрачные фреймовые части.
17. Компьютерно-читаемый носитель по п.16, в котором этап отображения содержит пиксельный ретушер, применяющий битовую карту к фреймовой части, чтобы искажать контент, на верху которого воспроизводится фреймовая часть.
18. Компьютерно-читаемый носитель по п.16, в котором битовая карта содержит подобие стекла.
19. Компьютерно-читаемый носитель по п.16, в котором битовая карта содержит подобие матированного стекла.
20. Компьютерно-читаемый носитель по п.16, в котором этап отображения содержит:
моделирование администратором CDWM окна посредством применения текстуры к сетке.
21. Компьютерно-читаемый носитель по п.20, в котором сетка определяется текущим визуальным стилем.
22. Компьютерно-читаемый носитель по п.20, в котором сетка предоставляется в контентной информации приложения.
23. Компьютерно-читаемый носитель по п.20, в котором текстура определяется текущим визуальным стилем.
24. Компьютерно-читаемый носитель по п.20, в котором текстура предоставляется в контентной информации приложения.
25. Компьютерно-читаемый носитель по п.16, в котором фрейм содержит спектральные подсветки, основанные на виртуальном световом источнике.
26. Компьютерно-читаемый носитель по п.16, в котором фрейм содержит контент отражения, основанный на другом контенте в графическом пользовательском интерфейсе, отдельном от окна.
27. Компьютерно-читаемый носитель по п.16, в котором фреймовая часть является полупрозрачной, когда окно имеет фокус ввода.
28. Компьютерно-читаемый носитель по п.20, который также содержит этапы:
принятия пользовательского ввода для изменения размеров окна;
разделения сетки в три области на сеточное измерение;
для каждой области поддержку смещений сеточных вершин в любом измерении, посредством чего область ограничивается ограничивающим боксом окна, и масштабирование сеточных вершин в любом измерении, посредством чего область не ограничивается ограничивающим боксом окна.
29. Компьютерно-осуществимый способ воспроизведения окна рабочего стола в графическом пользовательском интерфейсе оболочки операционной системы, содержащий этапы:
приема контента приложения для отображения в окне; и
отображения по меньшей мере части контента приложения в контентной части окна, имеющего фреймовую часть, причем этап отображения также содержит воспроизведение спектральных подсветок на фреймовой части, основываясь на виртуальном световом источнике, компонующим администратором окон рабочего стола, сконфигурированным для обеспечения прозрачности, затенений, световых эффектов, рельефных преобразований и преобразований, относящихся к окружению.
30. Компьютерно-осуществимый способ воспроизведения окна рабочего стола в графическом пользовательском интерфейсе оболочки операционной системы, содержащий этапы:
приема в компонующем администраторе окон рабочего стола контента приложения в обратном z-образном порядке для отображения в окне; и
отображения по меньшей мере части контента приложения в контентной части окна, имеющего фреймовую часть, причем этап отображения также содержит воспроизведение контента отражения на фреймовой части, базируясь на другом обособленном контенте, отдельном от окна в графическом пользовательском интерфейсе компонующим администратором окон рабочего стола, при этом компонующий администратор окон рабочего стола сконфигурирован для обеспечения прозрачности, затенений, световых эффектов, рельефных преобразований и преобразований, относящихся к окружению.
31. Компьютерно-осуществимый способ воспроизведения окна рабочего стола в графическом пользовательском интерфейсе оболочки операционной системы, содержащий этапы:
прием в компонующем администраторе окон рабочего стола контента приложения в обратном z-образном порядке для отображения в окне; и
отображения по меньшей мере части контента приложения в контентной части окна, имеющего фреймовую часть, причем этап отображения также содержит воспроизведение контента преломления на фреймовой части, основываясь на другом обособленном контенте за окном в графическом пользовательском интерфейсе компонующим администратором окон рабочего стола, при этом компонующий администратор окон рабочего стола сконфигурирован для обеспечения прозрачности, затенений, световых эффектов, рельефных преобразований и преобразований, относящихся к окружению.
32. Способ предоставления поддержки наследия для приложений, совместимых только с моделью воспроизведения рабочего стола с признанием недействительности, в компьютерной операционной системе, которая использует модель воспроизведения компонованного рабочего стола, содержащий:
экземпляр программы унаследованного приложения, предоставляющий оконную информацию наследия администратору окон рабочего стола наследия (DWM);
снятие клиентского контента из оконной информации наследия;
конвертирование клиентского контента в растровое изображение клиентского контента;
компонующий администратор окон рабочего стола (CDWM), рисующий окно в буферную память, причем CDWM воспроизводит окно посредством применения текстуры к сетке, и причем текстура содержит растровое изображение клиентского контента и устанавливаемую по умолчанию неклиентскую информацию.
33. Способ изменения размеров окна, определяемый частично сеткой, содержащий этапы:
разделения сетки в три области на сеточное измерение;
поддержки для каждой области смещений сеточных вершин в любом измерении, посредством чего область ограничивается ограничивающим боксом окна, и масштабирование сеточных вершин в любом измерении, посредством чего область не ограничивается ограничивающим боксом окна.
34. Способ по п.33, в котором области имеют одинаковые размеры.
35. Способ по п.33, в котором области имеют неодинаковые размеры.
36. Способ по п.33, в котором области, ограниченные ограничивающим боксом, настолько малы, насколько необходимо, чтобы заключать материал, который не должен масштабироваться.
RU2005120233/09A 2003-10-23 2004-07-21 Компонующий администратор окон рабочего стола RU2360284C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/691,450 2003-10-23
US10/691,450 US7839419B2 (en) 2003-10-23 2003-10-23 Compositing desktop window manager

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2009109090/08A Division RU2009109090A (ru) 2003-10-23 2009-03-12 Компонующий администратор окон рабочего стола

Publications (2)

Publication Number Publication Date
RU2005120233A RU2005120233A (ru) 2006-01-20
RU2360284C2 true RU2360284C2 (ru) 2009-06-27

Family

ID=34521880

Family Applications (2)

Application Number Title Priority Date Filing Date
RU2005120233/09A RU2360284C2 (ru) 2003-10-23 2004-07-21 Компонующий администратор окон рабочего стола
RU2009109090/08A RU2009109090A (ru) 2003-10-23 2009-03-12 Компонующий администратор окон рабочего стола

Family Applications After (1)

Application Number Title Priority Date Filing Date
RU2009109090/08A RU2009109090A (ru) 2003-10-23 2009-03-12 Компонующий администратор окон рабочего стола

Country Status (13)

Country Link
US (2) US7839419B2 (ru)
EP (2) EP2112592A3 (ru)
JP (1) JP2007510202A (ru)
KR (1) KR20060105422A (ru)
CN (1) CN101002252B (ru)
AU (1) AU2004279190A1 (ru)
BR (1) BRPI0406379A (ru)
CA (1) CA2501600A1 (ru)
MX (2) MXPA05007172A (ru)
RU (2) RU2360284C2 (ru)
TW (1) TW200515226A (ru)
WO (1) WO2005045736A2 (ru)
ZA (1) ZA200503158B (ru)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2458396C1 (ru) * 2011-07-19 2012-08-10 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ редактирования статических цифровых комбинированных изображений, включающих в себя изображения нескольких объектов
RU2504822C2 (ru) * 2010-04-09 2014-01-20 Сони Компьютер Энтертэйнмент Инк. Устройство обработки информации
WO2018080542A1 (en) * 2016-10-31 2018-05-03 Hewlett-Packard Development Company, L.P. Developing a non-rectangular user interface
RU2656993C2 (ru) * 2013-04-15 2018-06-07 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Элемент управления разделителем окон приложения для управления структурой окон
RU2698421C2 (ru) * 2014-06-30 2019-08-26 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Киноэкранизация вывода в окружении составных устройств

Families Citing this family (152)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120081317A1 (en) 2010-10-01 2012-04-05 Imerj LLC Method and system for performing copy-paste operations on a device via user gestures
US9213365B2 (en) 2010-10-01 2015-12-15 Z124 Method and system for viewing stacked screen displays using gestures
US7681112B1 (en) 2003-05-30 2010-03-16 Adobe Systems Incorporated Embedded reuse meta information
US7817163B2 (en) 2003-10-23 2010-10-19 Microsoft Corporation Dynamic window anatomy
US7839419B2 (en) 2003-10-23 2010-11-23 Microsoft Corporation Compositing desktop window manager
US7847800B2 (en) * 2004-04-16 2010-12-07 Apple Inc. System for emulating graphics operations
US8134561B2 (en) 2004-04-16 2012-03-13 Apple Inc. System for optimizing graphics operations
US8704837B2 (en) * 2004-04-16 2014-04-22 Apple Inc. High-level program interface for graphics operations
US7231632B2 (en) * 2004-04-16 2007-06-12 Apple Computer, Inc. System for reducing the number of programs necessary to render an image
US7248265B2 (en) * 2004-04-16 2007-07-24 Apple Inc. System and method for processing graphics operations with graphics processing unit
US8068103B2 (en) 2004-06-24 2011-11-29 Apple Inc. User-interface design
US8130237B2 (en) * 2004-06-24 2012-03-06 Apple Inc. Resolution independent user interface design
US20050285866A1 (en) * 2004-06-25 2005-12-29 Apple Computer, Inc. Display-wide visual effects for a windowing system using a programmable graphics processing unit
US8566732B2 (en) 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
US8453065B2 (en) 2004-06-25 2013-05-28 Apple Inc. Preview and installation of user interface elements in a display environment
US7490295B2 (en) 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US8302020B2 (en) * 2004-06-25 2012-10-30 Apple Inc. Widget authoring and editing environment
US8239749B2 (en) 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
US7652678B2 (en) * 2004-06-25 2010-01-26 Apple Inc. Partial display updates in a windowing system using a programmable graphics processing unit
US7761800B2 (en) * 2004-06-25 2010-07-20 Apple Inc. Unified interest layer for user interface
US20060059432A1 (en) * 2004-09-15 2006-03-16 Matthew Bells User interface having viewing area with non-transparent and semi-transparent regions
US20060168537A1 (en) * 2004-12-22 2006-07-27 Hochmuth Roland M Computer display control system and method
US8140975B2 (en) * 2005-01-07 2012-03-20 Apple Inc. Slide show navigation
US20060230105A1 (en) * 2005-04-06 2006-10-12 Ericom Software B 2001 Ltd Method of providing a remote desktop session with the same look and feel as a local desktop
US7847755B1 (en) * 2005-05-23 2010-12-07 Glance Networks Method and apparatus for the identification and selective encoding of changed host display information
US8543931B2 (en) 2005-06-07 2013-09-24 Apple Inc. Preview including theme based installation of user interface elements in a display environment
US7681200B2 (en) * 2005-07-22 2010-03-16 Microsoft Corporation Secure hardware desktop buffer composition
US7954064B2 (en) 2005-10-27 2011-05-31 Apple Inc. Multiple dashboards
US7743336B2 (en) * 2005-10-27 2010-06-22 Apple Inc. Widget security
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US8543824B2 (en) 2005-10-27 2013-09-24 Apple Inc. Safe distribution and use of content
US9104294B2 (en) 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US7418668B2 (en) * 2005-11-30 2008-08-26 Microsoft Corporation Glass appearance window frame colorization
US20070162850A1 (en) * 2006-01-06 2007-07-12 Darin Adler Sports-related widgets
US8155682B2 (en) * 2006-05-05 2012-04-10 Research In Motion Limited Handheld electronic device including automatic mobile phone number management, and associated method
TW200806030A (en) * 2006-07-06 2008-01-16 Sin Etke Technology Co Ltd Mobile video system for vehicle
US8869027B2 (en) 2006-08-04 2014-10-21 Apple Inc. Management and generation of dashboards
CN100583022C (zh) * 2006-09-27 2010-01-20 联想(北京)有限公司 获取计算机屏幕图像的方法
US8893038B2 (en) * 2006-10-03 2014-11-18 International Business Machines Corporation Graphical association of task bar entries with corresponding desktop locations
US7739613B2 (en) * 2006-11-10 2010-06-15 Microsoft Corporation Graphics tiering strategy incorporating bitmaps and window geometries
EP1939714A1 (en) * 2006-12-27 2008-07-02 Research In Motion Limited Method for presenting data on a small screen
US20080168367A1 (en) * 2007-01-07 2008-07-10 Chaudhri Imran A Dashboards, Widgets and Devices
US7996787B2 (en) * 2007-02-06 2011-08-09 Cptn Holdings Llc Plug-in architecture for window management and desktop compositing effects
JP4858313B2 (ja) * 2007-06-01 2012-01-18 富士ゼロックス株式会社 ワークスペース管理方式
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US20090021486A1 (en) * 2007-07-19 2009-01-22 Apple Inc. Dashboard Surfaces
US8667415B2 (en) 2007-08-06 2014-03-04 Apple Inc. Web widgets
US8156467B2 (en) * 2007-08-27 2012-04-10 Adobe Systems Incorporated Reusing components in a running application
US8201102B2 (en) * 2007-09-04 2012-06-12 Apple Inc. Opaque views for graphical user interfaces
US8176466B2 (en) 2007-10-01 2012-05-08 Adobe Systems Incorporated System and method for generating an application fragment
US8890874B2 (en) 2007-12-14 2014-11-18 Microsoft Corporation Changing visual content communication
US8433747B2 (en) * 2008-02-01 2013-04-30 Microsoft Corporation Graphics remoting architecture
US9619304B2 (en) 2008-02-05 2017-04-11 Adobe Systems Incorporated Automatic connections between application components
US20090210817A1 (en) * 2008-02-15 2009-08-20 Microsoft Corporation Mechanism for increasing remote desktop responsiveness
US7937452B2 (en) 2008-02-19 2011-05-03 Microsoft Corporation Framework for rendering plug-ins in remote access services
US9471996B2 (en) * 2008-02-29 2016-10-18 Autodesk, Inc. Method for creating graphical materials for universal rendering framework
US8134551B2 (en) * 2008-02-29 2012-03-13 Autodesk, Inc. Frontend for universal rendering framework
CN101539856B (zh) * 2008-03-17 2013-01-16 国际商业机器公司 在应用共享软件中恢复被遮挡窗口的方法和装置
US8521478B2 (en) * 2008-04-01 2013-08-27 Autodesk, Inc. Automatic coloring of rigid groups of parts
US8212806B2 (en) * 2008-04-08 2012-07-03 Autodesk, Inc. File format extensibility for universal rendering framework
US8200896B2 (en) * 2008-06-06 2012-06-12 Microsoft Corporation Increasing remote desktop performance with video caching
US8379058B2 (en) * 2008-06-06 2013-02-19 Apple Inc. Methods and apparatuses to arbitrarily transform windows
US20090315900A1 (en) * 2008-06-23 2009-12-24 Microsoft Corporation Generic surface manager
US20090328080A1 (en) * 2008-06-25 2009-12-31 Microsoft Corporation Window Redirection Using Interception of Drawing APIS
US8656293B1 (en) 2008-07-29 2014-02-18 Adobe Systems Incorporated Configuring mobile devices
US7577913B1 (en) * 2008-07-30 2009-08-18 International Business Machines Corporation Method of using a fovea type pointer in a video conferencing system including at least two 2-dimensional display screens forming a common virtual surface
US8667404B2 (en) * 2008-08-06 2014-03-04 Autodesk, Inc. Predictive material editor
KR101512010B1 (ko) * 2008-08-29 2015-04-15 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 셸 애플리케이션들 및 서브애플리케이션들의 인터페이스들의 조합
US8762879B1 (en) * 2008-09-01 2014-06-24 Google Inc. Tab management in a browser
US8300056B2 (en) 2008-10-13 2012-10-30 Apple Inc. Seamless display migration
US9342901B2 (en) * 2008-10-27 2016-05-17 Autodesk, Inc. Material data processing pipeline
US8584084B2 (en) * 2008-11-12 2013-11-12 Autodesk, Inc. System for library content creation
US20100141658A1 (en) * 2008-12-09 2010-06-10 Microsoft Corporation Two-dimensional shadows showing three-dimensional depth
US8363067B1 (en) * 2009-02-05 2013-01-29 Matrox Graphics, Inc. Processing multiple regions of an image in a graphics display system
US20110043535A1 (en) * 2009-08-18 2011-02-24 Microsoft Corporation Colorization of bitmaps
CN101655804B (zh) * 2009-09-02 2012-07-11 国际伸得纬科技有限公司 虚拟操作系统构建方法及装置
US20110060993A1 (en) * 2009-09-08 2011-03-10 Classified Ventures, Llc Interactive Detailed Video Navigation System
WO2011060442A2 (en) * 2009-11-16 2011-05-19 Citrix Systems, Inc. Methods and systems for selective implementation of progressive display techniques
WO2011072497A1 (zh) * 2009-12-18 2011-06-23 联想(北京)有限公司 窗口管理方法、装置及计算设备
US8368702B2 (en) 2010-01-06 2013-02-05 Apple Inc. Policy-based switching between graphics-processing units
US8648868B2 (en) * 2010-01-06 2014-02-11 Apple Inc. Color correction to facilitate switching between graphics-processing units
US8797334B2 (en) * 2010-01-06 2014-08-05 Apple Inc. Facilitating efficient switching between graphics-processing units
US10397639B1 (en) 2010-01-29 2019-08-27 Sitting Man, Llc Hot key systems and methods
US20130033521A1 (en) * 2010-04-19 2013-02-07 Tactile World Ltd. Intelligent display system and method
US20120218202A1 (en) 2010-10-01 2012-08-30 Sanjiv Sirpal Windows position control for phone applications
US9046992B2 (en) 2010-10-01 2015-06-02 Z124 Gesture controls for multi-screen user interface
US20120092351A1 (en) * 2010-10-19 2012-04-19 Apple Inc. Facilitating atomic switching of graphics-processing units
US9396001B2 (en) * 2010-11-08 2016-07-19 Sony Corporation Window management for an embedded system
CN102609167A (zh) * 2011-01-25 2012-07-25 联想(北京)有限公司 电子设备及其显示方法
US20120274639A1 (en) * 2011-04-29 2012-11-01 Simon Boy Method for Generating images of three-dimensional data
CN102724574B (zh) * 2011-05-11 2015-02-18 新奥特(北京)视频技术有限公司 一种多路视频开窗的实现方法
US9843665B2 (en) 2011-05-27 2017-12-12 Microsoft Technology Licensing, Llc Display of immersive and desktop shells
US10417018B2 (en) * 2011-05-27 2019-09-17 Microsoft Technology Licensing, Llc Navigation of immersive and desktop shells
US8640047B2 (en) * 2011-06-01 2014-01-28 Micorsoft Corporation Asynchronous handling of a user interface manipulation
US9361715B2 (en) * 2011-06-02 2016-06-07 Microsoft Technology Licensing, Llc Global composition system
US9563971B2 (en) 2011-09-09 2017-02-07 Microsoft Technology Licensing, Llc Composition system thread
US9495012B2 (en) 2011-09-27 2016-11-15 Z124 Secondary single screen mode activation through user interface activation
CN102591656B (zh) * 2011-12-28 2015-02-18 深圳万兴信息科技股份有限公司 一种窗口动画实现方法和装置
US9052414B2 (en) 2012-02-07 2015-06-09 Microsoft Technology Licensing, Llc Virtual image device
US9354748B2 (en) 2012-02-13 2016-05-31 Microsoft Technology Licensing, Llc Optical stylus interaction
US9384711B2 (en) * 2012-02-15 2016-07-05 Microsoft Technology Licensing, Llc Speculative render ahead and caching in multiple passes
US8749529B2 (en) 2012-03-01 2014-06-10 Microsoft Corporation Sensor-in-pixel display system with near infrared filter
US9158383B2 (en) 2012-03-02 2015-10-13 Microsoft Technology Licensing, Llc Force concentrator
US8873227B2 (en) 2012-03-02 2014-10-28 Microsoft Corporation Flexible hinge support layer
US9075566B2 (en) 2012-03-02 2015-07-07 Microsoft Technoogy Licensing, LLC Flexible hinge spine
US9870066B2 (en) 2012-03-02 2018-01-16 Microsoft Technology Licensing, Llc Method of manufacturing an input device
US8935774B2 (en) 2012-03-02 2015-01-13 Microsoft Corporation Accessory device authentication
US20130300590A1 (en) 2012-05-14 2013-11-14 Paul Henry Dietz Audio Feedback
US9286122B2 (en) * 2012-05-31 2016-03-15 Microsoft Technology Licensing, Llc Display techniques using virtual surface allocation
US9230517B2 (en) 2012-05-31 2016-01-05 Microsoft Technology Licensing, Llc Virtual surface gutters
US9235925B2 (en) * 2012-05-31 2016-01-12 Microsoft Technology Licensing, Llc Virtual surface rendering
US9177533B2 (en) 2012-05-31 2015-11-03 Microsoft Technology Licensing, Llc Virtual surface compaction
US10031556B2 (en) 2012-06-08 2018-07-24 Microsoft Technology Licensing, Llc User experience adaptation
US9019615B2 (en) 2012-06-12 2015-04-28 Microsoft Technology Licensing, Llc Wide field-of-view virtual image projector
US9069905B2 (en) 2012-07-16 2015-06-30 Microsoft Technology Licensing, Llc Tool-based testing for composited systems
CN102799385B (zh) * 2012-07-19 2016-12-21 腾讯科技(深圳)有限公司 桌面控制方法和装置
US9355345B2 (en) 2012-07-23 2016-05-31 Microsoft Technology Licensing, Llc Transparent tags with encoded data
US8964379B2 (en) 2012-08-20 2015-02-24 Microsoft Corporation Switchable magnetic lock
US9152173B2 (en) 2012-10-09 2015-10-06 Microsoft Technology Licensing, Llc Transparent display device
TWI493501B (zh) * 2012-10-26 2015-07-21 Mstar Semiconductor Inc 圖像檔處理方法以及圖像檔處理裝置
US9513748B2 (en) 2012-12-13 2016-12-06 Microsoft Technology Licensing, Llc Combined display panel circuit
KR20140100316A (ko) * 2013-02-06 2014-08-14 엘지전자 주식회사 이동 단말기 및 이의 제어 방법
US9638835B2 (en) 2013-03-05 2017-05-02 Microsoft Technology Licensing, Llc Asymmetric aberration correcting lens
US9594603B2 (en) 2013-04-15 2017-03-14 Microsoft Technology Licensing, Llc Application-to-application launch windowing
US10754536B2 (en) 2013-04-29 2020-08-25 Microsoft Technology Licensing, Llc Content-based directional placement application launch
US9542906B2 (en) 2013-05-10 2017-01-10 Microsoft Technology Licensing, Llc Shared compositional resources
US9443331B2 (en) 2013-06-06 2016-09-13 Microsoft Technology Licensing, Llc Input object for routing input for visual elements
US9870115B2 (en) * 2013-06-07 2018-01-16 Apple Inc. User interfaces for multiple displays
US9317891B2 (en) * 2013-06-07 2016-04-19 Ncomputing, Inc. Systems and methods for hardware-accelerated key color extraction
US9307007B2 (en) 2013-06-14 2016-04-05 Microsoft Technology Licensing, Llc Content pre-render and pre-fetch techniques
CN104750440B (zh) * 2013-12-30 2017-09-29 纬创资通股份有限公司 多屏幕的窗口管理方法、电子装置与计算机程序产品
US10120420B2 (en) 2014-03-21 2018-11-06 Microsoft Technology Licensing, Llc Lockable display and techniques enabling use of lockable displays
US10222953B2 (en) * 2014-04-30 2019-03-05 Disney Enterprises, Inc. Systems and methods for editing virtual content of a virtual space
US10324733B2 (en) 2014-07-30 2019-06-18 Microsoft Technology Licensing, Llc Shutdown notifications
US10146409B2 (en) 2014-08-29 2018-12-04 Microsoft Technology Licensing, Llc Computerized dynamic splitting of interaction across multiple content
US9733823B2 (en) * 2015-04-01 2017-08-15 Microsoft Technology Licensing, Llc View activation via hit testing in an asynchronous windowing system
CN105068714B (zh) * 2015-08-10 2019-02-05 联想(北京)有限公司 一种显示控制方法及电子设备
CN105549880A (zh) * 2015-12-08 2016-05-04 联想(北京)有限公司 一种窗口控制方法及电子设备
CN107292807B (zh) * 2016-03-31 2020-12-04 阿里巴巴集团控股有限公司 一种图形合成方法、窗口设置方法及系统
US11042955B2 (en) * 2016-06-02 2021-06-22 Nextlabs, Inc. Manipulating display content of a graphical user interface
US10223135B2 (en) 2016-12-30 2019-03-05 Dropbox, Inc. User interface extender
CN110476146B (zh) * 2017-04-05 2023-03-28 惠普发展公司,有限责任合伙企业 外壳应用
CN109240677B (zh) 2017-07-07 2020-10-16 阿里巴巴集团控股有限公司 一种图层处理方法及装置
US11294530B2 (en) * 2017-08-07 2022-04-05 Microsoft Technology Licensing, Llc Displaying a translucent version of a user interface element
TWI726252B (zh) * 2018-10-31 2021-05-01 宏碁股份有限公司 多螢幕操作方法與使用此方法的電子系統
CN111611031A (zh) * 2019-02-26 2020-09-01 华为技术有限公司 一种图形绘制方法和电子设备
US11175423B2 (en) * 2019-08-22 2021-11-16 Schlumberger Technology Corporation Real time deformation of seismic slices using programmable shaders
CN112000417B (zh) * 2020-10-27 2021-05-28 统信软件技术有限公司 一种窗口展示效果的控制方法及计算设备
CN113835600A (zh) * 2021-09-24 2021-12-24 统信软件技术有限公司 一种应用窗口旋转方法、计算设备及可读存储介质
CN114546204B (zh) * 2022-04-21 2022-08-12 广东统信软件有限公司 一种窗口管理方法、计算设备及可读存储介质
US11886685B1 (en) 2022-10-20 2024-01-30 Stardock Corporation Desktop container peek interface

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694404A (en) * 1984-01-12 1987-09-15 Key Bank N.A. High-speed image generation of complex solid objects using octree encoding
JPS63174478A (ja) 1987-01-14 1988-07-18 Nec Corp デイジタル式テレビジヨン特殊効果発生装置
US5113213A (en) 1989-01-13 1992-05-12 Sandor Ellen R Computer-generated autostereography method and apparatus
US5396559A (en) 1990-08-24 1995-03-07 Mcgrew; Stephen P. Anticounterfeiting method and device utilizing holograms and pseudorandom dot patterns
JPH0546568A (ja) * 1991-08-08 1993-02-26 Internatl Business Mach Corp <Ibm> 分散アプリケーシヨン実行装置および方法
US5311329A (en) 1991-08-28 1994-05-10 Silicon Graphics, Inc. Digital filtering for lenticular printing
US5307449A (en) * 1991-12-20 1994-04-26 Apple Computer, Inc. Method and apparatus for simultaneously rendering multiple scanlines
US5303370A (en) 1992-11-13 1994-04-12 Score Group, Inc. Anti-counterfeiting process using lenticular optics and color masking
US5487145A (en) * 1993-07-09 1996-01-23 Taligent, Inc. Method and apparatus for compositing display items which minimizes locked drawing areas
US5708717A (en) 1995-11-29 1998-01-13 Alasia; Alfred Digital anti-counterfeiting software method and apparatus
IL116804A (en) 1996-01-17 1998-12-06 R N S Remote Networking Soluti Application user interface redirector
US5862325A (en) 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
GB2312119B (en) 1996-04-12 2000-04-05 Lightworks Editing Systems Ltd Digital video effects apparatus and method therefor
US5805163A (en) * 1996-04-22 1998-09-08 Ncr Corporation Darkened transparent window overlapping an opaque window
US5870088A (en) * 1996-05-09 1999-02-09 National Instruments Corporation System and method for editing a control via direct graphical user interaction
US5819271A (en) 1996-06-04 1998-10-06 Multex Systems, Inc. Corporate information communication and delivery system and method including entitlable hypertext links
US6061695A (en) * 1996-12-06 2000-05-09 Microsoft Corporation Operating system shell having a windowing graphical user interface with a desktop displayed as a hypertext multimedia document
US6466239B2 (en) * 1997-01-24 2002-10-15 Sony Corporation Method and apparatus for editing data used in creating a three-dimensional virtual reality environment
JP3361951B2 (ja) * 1997-02-25 2003-01-07 大日本スクリーン製造株式会社 印刷データ処理装置および方法
US6026433A (en) 1997-03-17 2000-02-15 Silicon Graphics, Inc. Method of creating and editing a web site in a client-server environment using customizable web site templates
US5896131A (en) * 1997-04-30 1999-04-20 Hewlett-Packard Company Video raster display with foreground windows that are partially transparent or translucent
US6208347B1 (en) * 1997-06-23 2001-03-27 Real-Time Geometry Corporation System and method for computer modeling of 3D objects and 2D images by mesh constructions that incorporate non-spatial data such as color or texture
US6486886B1 (en) * 1997-07-15 2002-11-26 Silverbrook Research Pty Ltd Bump map compositing for simulated digital painting effects
US6023724A (en) 1997-09-26 2000-02-08 3Com Corporation Apparatus and methods for use therein for an ISDN LAN modem that displays fault information to local hosts through interception of host DNS request messages
US5940843A (en) 1997-10-08 1999-08-17 Multex Systems, Inc. Information delivery system and method including restriction processing
US5986652A (en) 1997-10-21 1999-11-16 International Business Machines Corporation Method for editing an object wherein steps for creating the object are preserved
US5933141A (en) * 1998-01-05 1999-08-03 Gateway 2000, Inc. Mutatably transparent displays
JP3350923B2 (ja) 1998-01-06 2002-11-25 横河電機株式会社 計器図表示装置及び計器図表示プログラムを記録した記録媒体
US6870546B1 (en) * 1998-06-01 2005-03-22 Autodesk, Inc. Protectable expressions in objects having authorable behaviors and appearances
US7523415B1 (en) * 1999-06-24 2009-04-21 Porter Swain W Exclusive use display surface areas and persistently visible display of contents including advertisements
AU2001238321A1 (en) 2000-02-16 2001-08-27 Goamerica, Inc. Document creation and scheduling of applications' jobs
IL153939A0 (en) * 2000-07-18 2003-07-31 Incredimail Ltd System and method for visual feedback of command execution in electronic mail systems
WO2002010898A2 (en) 2000-07-31 2002-02-07 Hypnotizer Method and system for receiving interactive dynamic overlays through a data stream and displaying them over a video content
US7427995B2 (en) * 2000-08-18 2008-09-23 Amcor Limited System for creating an artwork
US7051288B2 (en) * 2001-02-15 2006-05-23 International Business Machines Corporation Method, system, and product for a java-based desktop to provide window manager services on UNIX
US6700583B2 (en) * 2001-05-14 2004-03-02 Ati Technologies, Inc. Configurable buffer for multipass applications
JP3790126B2 (ja) * 2001-05-30 2006-06-28 株式会社東芝 時空間領域情報処理方法及び時空間領域情報処理システム
US7181699B2 (en) * 2001-06-13 2007-02-20 Microsoft Corporation Dynamic resizing of dialogs
US7047500B2 (en) 2001-11-16 2006-05-16 Koninklijke Philips Electronics N.V. Dynamically configurable virtual window manager
US6816159B2 (en) * 2001-12-10 2004-11-09 Christine M. Solazzi Incorporating a personalized wireframe image in a computer software application
US7028266B2 (en) * 2002-04-05 2006-04-11 Microsoft Corporation Processing occluded windows during application sharing
US6980209B1 (en) * 2002-06-14 2005-12-27 Nvidia Corporation Method and system for scalable, dataflow-based, programmable processing of graphics data
US7342589B2 (en) * 2003-09-25 2008-03-11 Rockwell Automation Technologies, Inc. System and method for managing graphical data
US7839419B2 (en) 2003-10-23 2010-11-23 Microsoft Corporation Compositing desktop window manager
US20050275661A1 (en) * 2004-06-10 2005-12-15 Cihula Joseph F Displaying a trusted user interface using background images

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2504822C2 (ru) * 2010-04-09 2014-01-20 Сони Компьютер Энтертэйнмент Инк. Устройство обработки информации
RU2504822C9 (ru) * 2010-04-09 2014-09-27 Сони Компьютер Энтертэйнмент Инк. Устройство обработки информации
RU2458396C1 (ru) * 2011-07-19 2012-08-10 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ редактирования статических цифровых комбинированных изображений, включающих в себя изображения нескольких объектов
RU2656993C2 (ru) * 2013-04-15 2018-06-07 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Элемент управления разделителем окон приложения для управления структурой окон
US11294529B2 (en) 2013-04-15 2022-04-05 Microsoft Technology Licensing, Llc Application window divider control for window layout management
RU2698421C2 (ru) * 2014-06-30 2019-08-26 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Киноэкранизация вывода в окружении составных устройств
WO2018080542A1 (en) * 2016-10-31 2018-05-03 Hewlett-Packard Development Company, L.P. Developing a non-rectangular user interface

Also Published As

Publication number Publication date
WO2005045736A2 (en) 2005-05-19
CN101002252A (zh) 2007-07-18
TW200515226A (en) 2005-05-01
EP1702289A2 (en) 2006-09-20
ZA200503158B (en) 2006-10-25
US20050088447A1 (en) 2005-04-28
RU2009109090A (ru) 2010-09-20
US20110072391A1 (en) 2011-03-24
WO2005045736A3 (en) 2006-07-20
CN101002252B (zh) 2011-09-07
EP2112592A2 (en) 2009-10-28
KR20060105422A (ko) 2006-10-11
EP1702289A4 (en) 2008-02-27
RU2005120233A (ru) 2006-01-20
US8059137B2 (en) 2011-11-15
MXPA05007172A (es) 2005-08-29
AU2004279190A1 (en) 2005-06-23
CA2501600A1 (en) 2005-04-23
EP2112592A3 (en) 2010-01-20
BRPI0406379A (pt) 2005-08-09
MXPA05007140A (es) 2005-08-26
US7839419B2 (en) 2010-11-23
JP2007510202A (ja) 2007-04-19
AU2004279190A8 (en) 2008-10-02

Similar Documents

Publication Publication Date Title
RU2360284C2 (ru) Компонующий администратор окон рабочего стола
US7817163B2 (en) Dynamic window anatomy
US7245310B2 (en) Method and apparatus for displaying related two-dimensional windows in a three-dimensional display model
US7439975B2 (en) Method and system for producing dynamically determined drop shadows in a three-dimensional graphical user interface
EP0636971B1 (en) Method and apparatus for producing a composite second image in the spatial context of a first image
US20060107229A1 (en) Work area transform in a graphical user interface
KR20160120343A (ko) 크로스 플랫폼 렌더링 엔진
US8471873B2 (en) Enhanced UI operations leveraging derivative visual representation
US20040001111A1 (en) Widgets displayed and operable on a surface of a volumetric display enclosure
GB2406770A (en) Displaying related two-dimensional windows in a three-dimensional display model
JPH0778243A (ja) 機械操作方法

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20130722