анимированный рабочий стол
Классы МПК: | G06T1/00 Обработка данных изображения общего применения G09G5/377 для совмещения или наложения двух или нескольких графических изображений |
Автор(ы): | ШЕПАРД Джон (US), ЧЕУНГ Феликс (US), КИПМАН Алекс Абен-Атхар (US) |
Патентообладатель(и): | МАЙКРОСОФТ КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2007-12-26 публикация патента:
10.10.2012 |
Изобретение относится к компьютерной технике и, в частности, к представлению анимированного рабочего стола на экране дисплея устройства обработки данных. Техническим результатом является повышение интерактивности и визуального качества при снижении сложности обработки анимированного рабочего стола. Анимированный рабочий стол, включающий в себя движущееся изображение, может быть представлен на экране дисплея обрабатывающего устройства. Элементы переднего плана могут появляться на поверхности анимированного рабочего стола. Содержимое переднего плана может быть сформировано на поверхности компоновки, которая может быть поверхностью с поддержкой альфа-канала, способной к представлению прозрачных элементов. Модуль анимированного рабочего стола может формировать содержимое для части фона анимированного рабочего стола в соответствующей совместно используемой памяти, которая совместно используется с компоновщиком. Компоновщик может периодически копировать сформированное содержимое из совместно используемой памяти на поверхность компоновки, причем компоновщик может компоновать и смешивать сцену из содержимого фона и переднего плана. Скомпонованная сцена может затем быть представлена как анимированный рабочий стол. 3 н. и 12 з.п. ф-лы, 9 ил.
Формула изобретения
1. Способ формирования анимированного рабочего стола для устройства обработки данных, причем анимированный рабочий стол имеет фон и передний план, при этом способ содержит этапы, на которых: определяют, скрыт ли анимированный рабочий стол;
формируют содержимое на основе движущегося изображения в совместно используемой памяти, только когда определено, что анимированный рабочий стол не скрыт;
формируют содержимое переднего плана из информации переднего плана; компонуют сцену, включающую в себя сформированное содержимое из совместно используемой памяти в качестве по меньшей мере части фона и сформированное содержимое переднего плана, причем передний план помещается поверх фона;
представляют сцену в качестве анимированного рабочего стола;
определяют состояние устройства обработки данных;
регулируют частоту, с которой содержимое формируется на основе движущегося изображения, на основе по меньшей мере частично упомянутого определенного состояния устройства обработки данных.
2. Способ по п.1, в котором этап формирования содержимого на основе движущегося изображения в совместно используемой памяти и этап создания сцены выполняются в отдельных процессах.
3. Способ по п.1, дополнительно содержащий этап, на котором формируют содержимое на основе второго движущегося изображения во второй совместно используемой памяти, при этом при компоновании сцены дополнительно компонуют сцену, включающую в себя сформированное содержимое из второй совместно используемой памяти в качестве, по меньшей мере, другой части фона.
4. Способ по п.1, дополнительно содержащий этап, на котором ухудшают качество представления фона анимированного рабочего стола на основе, по меньшей мере частично упомянутого определенного состояния устройства обработки данных.
5. Способ по п.1, в котором при регулировании частоты, с которой содержимое формируется на основе движущегося изображения, формирование содержимого на основе движущегося изображения выполняют в управляемом режиме.
6. Материальный машиночитаемый носитель, на котором записаны команды для исполнения по меньшей мере одним процессором устройства обработки данных, чтобы тем самым предписать этому по меньшей мере одному процессору выполнять способ, содержащий этапы, на которых: формируют содержимое по меньшей мере части фона анимированного рабочего стола в совместно используемой памяти;
формируют содержимое переднего плана анимированного рабочего стола на основе информации переднего плана, причем формирование содержимого по меньшей мере части фона выполняется упомянутым по меньшей мере одним процессором в процессе, отдельном от формирования содержимого переднего плана;
компонуют сцену на основе сформированного содержимого переднего плана и сформированного содержимого по меньшей мере части фона из совместно используемой памяти;
представляют сцену на дисплее в качестве анимированного рабочего стола;
определяют состояние устройства обработки данных;
регулируют частоту, с которой формируется содержимое по меньшей мере части фона, на основе по меньшей мере частично упомянутого определенного состояния устройства обработки данных;
определяют, скрыт ли анимированный рабочий стол; и
останавливают формирование содержимого по меньшей мере части фона анимированного рабочего стола, когда определено, что анимированный рабочий стол скрыт.
7. Материальный машиночитаемый носитель по п.6, в котором: формирование содержимого переднего плана анимированного рабочего стола включает в себя формирование содержимого переднего плана на основе требования, и
формирование содержимого по меньшей мере части фона анимированного рабочего стола включает в себя формирование содержимого по меньшей мере части фона на основе опроса.
8. Материальный машиночитаемый носитель по п.6, в котором упомянутое регулирование частоты дополнительно выполняется, когда устройство обработки данных, включая упомянутый по меньшей мере один процессор, находится в состоянии, включающем в себя состояние удаленного рабочего стола, состояние питания от батарей или состояние низкого энергопотребления.
9. Материальный машиночитаемый носитель по п.6, в котором способ дополнительно содержит этап, на котором формируют содержимое по меньшей мере второй части фона анимированного рабочего стола во второй совместно используемой памяти на основе второго движущегося изображения, при этом при компоновании сцены дополнительно компонуют сцену на основе сформированного содержимого по меньшей мере второй части фона анимированного рабочего стола из второй совместно используемой памяти.
10. Материальный машиночитаемый носитель по п.6, в котором регулирование частоты, с которой формируется содержимое по меньшей мере части фона, выполняется в управляемом режиме.
11. Устройство обработки данных, содержащее:
по меньшей мере один процессор;
шину; и
память, причем шина соединяет память с этим по меньшей мере одним процессором для обеспечения связи между ними, при этом память содержит команды, которые при их исполнении упомянутым по меньшей мере одним процессором конфигурируют устройство обработки данных выполнять операции, чтобы:
формировать содержимое по меньшей мере части движущегося фона анимированного рабочего стола в совместно используемой памяти,
формировать содержимое переднего плана анимированного рабочего стола на основе информации переднего плана, причем формирование содержимого по меньшей мере части движущегося фона выполняется в процессе, отдельном от формирования содержимого переднего плана,
компоновать сцену на основе сформированного содержимого переднего плана и сформированного содержимого по меньшей мере части движущегося фона из совместно используемой памяти,
представлять сцену в качестве анимированного рабочего стола,
определять состояние устройства обработки данных,
регулировать частоту, с которой формируется содержимое по меньшей мере части движущегося фона, на основе по меньшей мере частично упомянутого определенного состояния устройства обработки данных, определять, скрыт ли анимированный рабочий стол, и
останавливать формирование содержимого по меньшей мере части движущегося фона анимированного рабочего стола, когда определено, что анимированный рабочий стол скрыт.
12. Устройство обработки данных по п.11, в котором регулирование частоты, с которой формируется содержимое по меньшей мере части движущегося фона, дополнительно содержит уменьшение частоты, с которой формируется содержимое по меньшей мере части движущегося фона, когда устройство обработки данных функционирует в состоянии питания от батарей, состоянии низкого энергопотребления или состоянии удаленного рабочего стола.
13. Устройство обработки данных по п.11, в котором память дополнительно содержит команды, которые при их исполнении упомянутым по меньшей мере одним процессором конфигурируют устройство обработки данных формировать содержимое по меньшей мере второй части движущегося фона анимированного рабочего стола во второй совместно используемой памяти, причем компонование сцены на основе сформированного содержимого переднего плана и сформированного содержимого по меньшей мере части движущегося фона дополнительно содержит компонование сцены на основе сформированного содержимого по меньшей мере второй части движущегося фона из второй совместно используемой памяти.
14. Устройство обработки данных по п.11, в котором память дополнительно содержит команды, которые при их исполнении упомянутым по меньшей мере одним процессором конфигурируют устройство обработки данных включать в состав звук при представлении сцены в качестве анимированного рабочего стола.
15. Устройство обработки данных по п.11, в котором регулирование частоты, с которой формируется содержимое по меньшей мере части движущегося фона, дополнительно содержит регулирование упомянутой частоты в управляемом режиме.
Описание изобретения к патенту
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится, в общем, к компьютерной технике и, в частности, к представлению анимированного рабочего стола на экране дисплея устройства обработки данных.
УРОВЕНЬ ТЕХНИКИ
Сегодня пользователи могут выбирать собственные статические изображения для использования в качестве обоев для рабочего стола на своих обрабатывающих устройствах. Мощность обработки графики современных обрабатывающих устройств позволяет предложить существенно более богатое содержимое в качестве фона рабочего стола. Например, движущееся изображение может быть предоставлено в качестве фона рабочего стола для обрабатывающего устройства.
Ранее различные приложения пытались создать приемлемые анимированные рабочие столы, используя особенность наложения видеоизображений. Используя особенность наложения видеоизображений, фоновой области рабочего стола можно назначить конкретное значение цветового ключа. Видео может быть сгенерировано в области кадрирования, определенной областью, имеющей конкретное значение цветового ключа. Область кадрирования - область, в которой могут быть представлены графика или видео. Однако подход, использующий особенность наложения видеоизображений, имеет две проблемы. Во-первых, особенности, такие как теневой текст и частично прозрачные элементы, принципиально несовместимы с фоном, сгенерированным при использовании особенности наложения видеоизображений. Например, у теневой части теневого текста и областей позади прозрачных элементов может быть цвет, связанный с аппроксимацией конкретного значения цветового ключа. Области, имеющие аппроксимацию конкретного ключа значения цветового ключа, могут оказаться несовместимы с любым видео, которое может наложить области, имеющие конкретное значение цветового ключа. Во-вторых, из-за того, что у систем обычно есть только один ресурс наложения видеоизображений, фиксируя этот ресурс и используя его на рабочем столе, другие приложения, такие как, например, универсальные проигрыватели или приложения редактирования видео, могут быть неспособны запросить и использовать ресурс наложения видеоизображений.
В другом подходе к созданию приемлемых анимированных рабочих столов произвольное содержимое на рабочем столе может быть нарисовано, создавая сложные области кадрирования, которые исключают элементы рабочего стола, такие как значки и связанный текст, так же, как другие элементы. Анимированные рабочие столы, использующие этот подход, показали себя плохо. Элементы рабочего стола не были скомпонованы с фоном и каждый раз, когда фон обновлялся, обновленный фон должен был быть "вырезан", используя область кадрирования. Это привело к плохим пользовательским впечатлениям. Далее, этот подход сложен для требования того, чтобы область кадрирования поддерживалась по мере того как рабочий стол обновляется, и этот подход не учитывает, как обрабатывать прозрачные элементы.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Эта Сущность предоставлена, чтобы ввести набор понятий в упрощенной форме, которая далее описана ниже в подробном описании. Эта Сущность не предназначена, чтобы идентифицировать главные особенности или основные особенности требуемого предмета, и при этом не предназначена, чтобы использоваться, чтобы ограничить область видимости требуемого предмета.
В воплощениях, совместимых с предметом этого раскрытия, анимированный рабочий стол может быть представлен на экране дисплея обрабатывающего устройства. Анимированный рабочий стол может включать в себя движущееся изображение в качестве фона и элементы переднего плана, такие как, например, значки и связанный текст, или другую информацию, в качестве переднего плана. Содержимое переднего плана может быть отображено на поверхность компоновки, которая в некоторых воплощениях может быть поверхностью с поддержкой альфа-канала, способной к представлению прозрачных элементов. Один или более модулей анимированного рабочего стола могут формировать содержимое в соответствующих совместно используемых областях памяти для соответствующих частей фона движущегося изображения анимированного рабочего стола. Компоновщик может использовать сформированное содержимое из соответствующих совместно используемых областей памяти, чтобы скомпоновать сцену на поверхности компоновки от содержимого переднего плана и сформированного содержимого относительно движущегося изображения, и может смешивать части скомпонованной сцены. Скомпонованная сцена может затем быть представлена на экране дисплея обрабатывающего устройства как анимированный рабочий стол.
В воплощениях, совместимых с предметом этого раскрытия, движущееся изображение фона анимированного рабочего стола может быть сформировано и скомпоновано на поверхности компоновки для представления после приема уведомления от модуля анимированного рабочего стола, указывающего, что сформированное содержимое фона доступно для компоновки анимированного рабочего стола. В некоторых воплощениях движущееся изображение фона анимированного рабочего стола может формироваться и компоноваться на поверхности компоновки периодически таким образом, что движущееся изображение фона представленного анимированного рабочего стола может быть ухудшено, чтобы обеспечить высокое качество обслуживания для представления элементов переднего плана анимированного рабочего стола и других приложений.
ЧЕРТЕЖИ
Чтобы описать способ, которым вышеупомянутые и прочие преимущества и особенности могут быть получены, более конкретное описание описано ниже и будет отображено в отношении определенных воплощений, которые проиллюстрированы в приложенных чертежах. Понимание того, что эти чертежи изображают только типичные воплощения и, как следует поэтому полагать, не ограничивают их рамки, реализации будут описаны и объяснены с дополнительной спецификой и подробностями с помощью сопроводительных чертежей.
Фиг.1 - функциональная блок-схема обрабатывающего устройства, которое может осуществить воплощения, совместимые с предметом этого раскрытия.
Фиг.2 - функциональная блок-схема, иллюстрирующая примерные компоненты воплощения, совместимого с предметом это раскрытия.
Фиг.3 - функциональная блок-схема, иллюстрирующая примерные компоненты и осуществление связи между примерными компонентами через соответствующие совместно используемые области памяти в воплощении, совместимом с предметом этого раскрытия.
Фиг.4 - блок-схема, иллюстрирующая примерный процесс формирования содержимого переднего плана анимированного рабочего стола.
Фиг.5 - блок-схема, иллюстрирующая примерный процесс для формирования содержимого фона, компоновки сцены из сформированного содержимого фона и сформированного содержимого переднего плана, и представления сцены как анимированного рабочего стола.
Фиг.6 - блок-схема, иллюстрирующая примерный процесс приема уведомления и перекрашивания части переднего плана или части фона анимированного рабочего стола.
Фиг.7A-7C являются блок-схемами, иллюстрирующими примерный процесс формирования, компоновки и представления анимированного рабочего стола, и изменения способа обновления для обновления анимированного рабочего стола.
ПОДРОБНОЕ ОПИСАНИЕ
Воплощения подробно обсуждаются ниже. В то время как обсуждаются определенные реализации, нужно подразумевать, что это сделано только в целях иллюстрации. Специалист в соответствующей области техники признает, что другие компоненты и конфигурации могут использоваться, не отклоняясь от сущности и объема предмета этого раскрытия.
КРАТКИЙ ОБЗОР
Обрабатывающее устройство может представлять анимированный рабочий стол, который может включать в себя движущееся изображение на экране дисплея обрабатывающего устройства с элементами переднего плана, такими как, например, пиктограммы и связанный текст, или другой информации, появляющейся на поверхности движущегося изображения. Один способ концептуализировать опыт анимированного рабочего стола состоит в том, чтобы думать о поверхности анимированного рабочего стола, с которым может взаимодействовать пользователь, как о куске стекла, подвешенного перед трехмерной сценой, в которой могут быть рассмотрены многие интересные вещи. Сцена может быть столь же простой, как видео, спроектированное на ортогональный прямоугольник, масштабированный, чтобы заполнить весь экран дисплея (видеообои), или может быть столь же богатой, как формирование вида камеры постоянного трехмерного многопользовательского игрового мира.
В воплощениях, совместимых с предметом этого раскрытия, содержимое переднего плана может быть способной к взаимодействию частью рабочего стола, которая может управляться пользовательскими данными. Содержимое переднего плана может перенаправляться таким образом, чтобы формироваться на поверхности компоновки, такой как, например, поверхность с поддержкой альфа-канала, способная к представлению прозрачных элементов. Один или более модулей анимированного рабочего стола могут формировать содержимое для, по меньшей мере, части фона анимированного рабочего стола в соответствующей области совместно используемой памяти, совместно используемой с компоновщиком. Периодически компоновщик может использовать сформированное содержимое от каждой соответствующей области совместно используемой памяти, чтобы скомпоновать сцену, и может смешивать фоновые части сцены и части сцены переднего плана. В результате высококачественные визуальные эффекты могут быть достигнуты и представлены. В некоторых воплощениях операция альфа-смешения может быть выгружена в блок обработки графики (GPU), используемый в современных видеокартах, таким образом обеспечивая высокую точность визуальных впечатлений, не воздействуя значительно на доступную способность обработки для других приложений и служб.
Примерное обрабатывающее устройство
Фиг.1 - функциональная блок-схема обрабатывающего устройства 100, которое может использоваться, чтобы осуществить воплощения, совместимые с предметом этого раскрытия. Обрабатывающее устройство 100 может включать в себя шину 110, процессор 120, память 130, постоянное запоминающее устройство (ROM) 140, устройство 150 хранения, устройство 160 ввода, устройство 170 отображения и графический процессор 180.
Шина 110 может быть интерфейсом связи, который разрешает связь среди компонентов обрабатывающего устройства 100. Процессор 120 может включать в себя, по меньшей мере, один традиционный процессор или микропроцессор, который интерпретирует и выполняет команды. Память 130 может быть оперативной памятью (RAM) или другим типом устройства динамической памяти, которое хранит информацию и команды для выполнения процессором 120. Память 130 может также хранить временные переменные или другую промежуточную информацию, используемую во время выполнения команд процессором 120. ROM 140 может включать в себя обычное устройство ROM или другой тип устройства постоянного хранения, которое хранит постоянную информацию и команды для процессора 120. Устройство 150 хранения может включать в себя любой тип материальных носителей для того, чтобы хранить данные и/или команды. Графический процессор 180 может включать в себя, по меньшей мере, один графический процессор для того, чтобы обработать данные и представить графическое изображение.
Обрабатывающее устройство 100 может выполнить такие функции в ответ на выполнение процессором 120 последовательностей команд, содержащихся в машиночитаемом носителе, таком как, например, память 130, или других материальных носителях. Такие команды могут считываться в память 130 с другого материального машиночитаемого носителя, такого как устройство 150 хранения, или с отдельного устройства через интерфейс 180 связи.
Пример функционирования
Фиг.2 - типовая функциональная блок-схема, иллюстрирующая компоненты и интерфейсы в воплощении, совместимом с предметом этого раскрытия. Воплощение Фиг.2 может включать в себя компоновщик 202 и модули 204, 206 и 208 анимированного рабочего стола. Компоновщик 202 может взаимодействовать с модулями 204, 206 и 208 анимированного рабочего стола через прикладные программные интерфейсы (API) 210, 212 и 214 соответственно. Каждый из модулей 204, 206 и 208 анимированного рабочего стола может взаимодействовать с компоновщиком 202 через API 216.
Каждый из модулей 204, 206 и 208 анимированного рабочего стола может формировать содержимое, по меньшей мере, части фона для анимированного рабочего стола в соответствующей области совместно используемой памяти, которая может совместно использоваться с компоновщиком 202. Сформированное содержимое может быть движущимся изображением. Компоновщик 202 может быть ответственным за использование сформированного содержимого из соответствующих областей совместно используемой памяти, чтобы компоновать сцену на поверхности компоновки, которая может быть поверхностью с поддержкой альфа-канала. Далее, содержимое переднего плана, такое как, например, пиктограммы и связанный текст, так же, как другие элементы, может быть перенаправлено на поверхность компоновки. Компоновщик 202 может смешивать содержимое переднего плана со сформированным содержимым из соответствующих областей совместно используемой памяти, чтобы скомпоновать сцену, которая может быть представлена на экране дисплея обрабатывающего устройства, такого как, например, устройство 170 отображения. В некоторых воплощениях поверхность компоновки может быть обработана и смешана с использованием альфа-канала графическим процессором или блоком обработки графики (GPU).
В воплощении, которое показано на Фиг.2, компоновщик 202 и модуль 204 анимированного рабочего стола могут выполняться в единственном процессе, в то время как модули 206, 208 анимированного рабочего стола могут выполняться в процессе, отдельном от процесса, в котором могут выполняться компоновщик 202 и модуль 204 анимированного рабочего стола. В некоторых воплощениях компоновщик и модули анимированного рабочего стола могут выполняться в одном процессе. В других воплощениях компоновщик и модули анимированного рабочего стола могут каждый выполняться в отдельных процессах. В некоторых из воплощений компоновщик может быть изолирован от одного или более модулей анимированного рабочего стола.
Фиг.3 - функциональная блок-схема, далее иллюстрирующая аспекты воплощения, совместимого с предметом этого раскрытия. В этом воплощении модуль анимированного рабочего стола 204 может формировать содержимое для, по меньшей мере, части фона анимированного рабочего стола в совместно используемой памяти 306, модуль 206 анимированного рабочего стола может формировать содержимое для, по меньшей мере, второй части фона анимированного рабочего стола в совместно используемой памяти 302, и модуль 208 анимированного рабочего стола может формировать содержимое для, по меньшей мере, третьей части фона анимированного рабочего стола в совместно используемой памяти 304. Каждый из модулей 204, 206, 208 анимированного рабочего стола может сообщать компоновщику 202, где и как содержимое от каждого соответствующего модуля анимированного рабочего стола должно быть позиционировано в пределах фонового экрана. Например, центрированное содержимое от модуля анимированного рабочего стола может занимать часть экрана размером с почтовую марку, или центрированное содержимое может быть растянуто, чтобы полностью покрыть видимую область экрана или даже большую. Компоновщик 202 может предположить, что модули 204, 206, 208 анимированного рабочего стола знают лучший способ представить их соответствующее содержимое, и компоновщик 202 может принимать на обработку каждый соответствующий запрос положения модулей анимированного рабочего стола, если возможно. В ситуации, в которой есть запросы модуля анимированного рабочего стола на то, чтобы его соответствующее содержимое было позиционировано таким образом, чтобы содержимое перекрывалось с содержимым от другого модуля анимированного рабочего стола, компоновщик 202 может просто принимать на обработку новый запрос модуля анимированного рабочего стола (то есть последний запрос побеждает).
В этом воплощении каждую из совместно используемых областей 302, 304 и 306 памяти можно совместно использовать с компоновщиком 202. В одном воплощении каждый из модулей 204-206 анимированного рабочего стола может уведомить компоновщик 202, когда соответствующее сформированное содержимое доступно для компоновщика 202. После получения уведомления от соответствующего модуля анимированного рабочего стола компоновщик 202 может использовать содержимое в пределах совместно используемых областей 302, 304 или 306 памяти, чтобы скомпоновать фоновую поверхность. Фоновое содержимое и содержимое переднего плана от поверхности 301 переднего плана может затем быть скомпоновано как сцена на поверхности 308 компоновки, которая может быть поверхностью с поддержкой альфа-канала, и смешана для представления в качестве вновь обновленного анимированного рабочего стола.
Воплощение, иллюстрированное на Фиг.3, является примерным воплощением. В других воплощениях могут быть включены меньше или больше модулей анимированного рабочего стола. Например, одно воплощение может включать в себя только один модуль анимированного рабочего стола и одну совместно используемую память.
Примерная обработка
Фиг.4 иллюстрирует типовой процесс, который может быть выполнен в воплощениях, совместимых с предметом этого раскрытия. Типовой процесс Фиг.4 иллюстрирует обработку, которая может произойти, когда компоновщик, такой как, например, компоновщик 202, получает уведомление, чтобы перекрасить содержимое переднего плана анимированного рабочего стола.
Процесс может начаться с получения компоновщиком 202 уведомления, чтобы перекрасить содержимое переднего плана анимированного рабочего стола (этап 402). Содержимое переднего плана может быть сформировано на поверхности 301 переднего плана из информации переднего плана, которая описывает такие вещи, как пиктограммы, связанный текст или другие элементы (этап 404). В некоторых воплощениях компоновщик 202 может осуществить связь с компонентом операционной системы или другим системным компонентом, запросив, чтобы содержимое переднего плана было сформировано на поверхности 308 переднего плана.
Затем, чтобы предотвратить другие потоки компоновщика 202 от записи в поверхность 308 компоновки, компоновщик 202 может блокировать создание поверхности 308 (этап 406). Блокировка может выполняться через аппаратный или программный механизм. Компоновщик 202 может затем скомпоновать и смешать сцену из сформированного содержимого переднего плана поверхности 301 переднего плана и сформированного содержимого фона, которое, возможно, было ранее скопировано в область компоновки (как будет объяснено ниже), или из сформированного содержимого фона, включенного в одну или более совместно используемых областей памяти (этап 408). В некоторых воплощениях компоновщик 202 может выгрузить смешение сцены в GPU. Компоновщик 202 может затем представить сцену на дисплее обрабатывающего устройства как анимированный рабочий стол (этап 410). Компоновщик 202 может затем разблокировать поверхность 308 компоновки, чтобы разрешить другому потоку компоновщика 202 записывать в поверхность 308 компоновки (этап 412).
Фиг.5 - блок-схема примерного процесса, который может быть осуществлен в воплощениях, совместимых с предметом этого раскрытия, чтобы обновить содержимое фона анимированного рабочего стола. Типовой процесс может быть выполнен компоновщиком, таким как компоновщик 202, и модулем анимированного рабочего стола, выполняемым в том же самом процессе или отдельных процессах.
Процесс может начаться с модуля анимированного рабочего стола, определяющего, скрыт ли анимированный рабочий стол (этап 502). Анимированный рабочий стол может быть скрыт окном или другим отображаемым элементом, который блокирует отображение анимированного рабочего стола. Анимированный рабочий стол также может быть скрыт по другим условиям, которые могут включать в себя, но не быть ограниченными тем, когда рабочий стол находится в состоянии ожидания, когда сеанс блокирован или когда выполняется хранитель экрана. Если модуль анимированного рабочего стола определяет, что анимированный рабочий стол скрыт, то процесс может вернуться в исходное состояние. Таким образом, формирование содержимого движущегося изображения на поверхности 308 компоновки, которая может быть поверхностью с поддержкой альфа-канала, может быть остановлено или приостановлено, когда модуль анимированного рабочего стола определяет, что анимированный рабочий стол скрыт. Другими словами, отображение содержимого движущегося изображения на формируемую поверхность 308 может быть выполнено только, когда анимированный рабочий стол не скрыт.
Если модуль анимированного рабочего стола определяет, что анимированный рабочий стол не скрыт, то модуль анимированного рабочего стола может сформировать содержимое, такое как, например, содержимое движущегося изображения для фона анимированного рабочего стола, в совместно используемой памяти (этап 504). Модуль анимированного рабочего стола может тогда уведомить компоновщик, такой как, например, компоновщик 202, о пригодности сформированного содержимого модуля анимированного рабочего стола для фона (этап 506). Компоновщик 202 может затем блокировать совместно используемую память, чтобы препятствовать тому, чтобы модуль анимированного рабочего стола записывал в совместно используемую память, и может блокировать поверхности 308 компоновки, чтобы препятствовать тому, чтобы содержимое переднего плана было записано в поверхность 308 компоновки (этап 508).
Компоновщик 202 может затем использовать содержимое совместно используемой памяти, чтобы сформировать содержимое фона на поверхности 308 компоновки (этап 510) и может скомпоновать и смешать сцену, основанную на сформированном содержимом переднего плана, ранее сформированном на поверхности 308 компоновки, и сформированном содержимом для фона, снова сформированного на поверхности 308 компоновки (этап 512). Скомпонованная сцена может затем быть представлена на дисплее обрабатывающего устройства как анимированный рабочий стол (этап 514). В некоторых воплощениях смешение сцены может быть выгружено в GPU. Компоновщик 202 может затем разблокировать поверхность 308 компоновки и совместно используемую память, чтобы снова позволить содержимому переднего плана быть представленным на поверхности 308 компоновки с поверхности 301 переднего плана и позволить анимированному рабочему столу записывать в совместно используемую память (этап 516). Процесс может снова быть выполнен в более позднее время, когда модуль анимированного рабочего стола может снова представить содержимое фона, чтобы обновить фон анимированного рабочего стола.
В некоторых воплощениях модуль анимированного рабочего стола может совместно использовать несколько блоков памяти с компоновщиком 202. В таком воплощении, когда модуль анимированного рабочего стола уведомляет компоновщик, что содержимое фона доступно в одной из совместно используемых памятей, модуль анимированного рабочего стола может затем использовать другие из совместно используемых памятей. Компоновщик 202 может тогда использовать одну из совместно используемых памятей, чтобы сформировать содержимое фона на поверхности 308 компоновки, в то время как модуль анимированного рабочего стола может сформировать обновленное содержимое фона в другой из совместно используемых памятей. В таких воплощениях модуль анимированного рабочего стола может продолжить формировать содержимое фона, в то время как любая из совместно используемых памятей может быть блокирована.
В некоторых воплощениях компоновщик, такой как, например, компоновщик 202, может принимать, из тех же самых или различных источников, как уведомление обновления переднего плана или уведомление обновления фона, которое может предписывать переднему плану или фону, соответственно, анимированного рабочего стола быть обновленным и представленными. Фиг.6 - блок-схема примерного процесса, который может быть осуществлен в таких воплощениях.
Процесс может начаться с приема уведомления компоновщиком 202 (этап 602). Компоновщик 202 может определить, является ли уведомление уведомлением фона, указывая, что модуль анимированного рабочего стола сформировал содержимое фона в совместно используемой памяти (см. этап 504; Фиг.5), или является ли уведомление уведомлением переднего плана, указывая, что передний план анимированного рабочего стола может быть обновлен (этап 604). Если компоновщик 202 определяет, что принятое уведомление - уведомление фона от модуля анимированного рабочего стола, то компоновщик 202 может перекрасить фон анимированного рабочего стола (этап 606) при использовании содержимого соответствующей совместно используемой памяти, чтобы сформировать содержимое на поверхности 308 компоновки, как ранее описано относительно этапов 506-516 с Фиг.5. В некоторых воплощениях поверхность 308 компоновки может быть поверхностью с поддержкой альфа-канала. Компоновщик 202 может затем скомпоновать и смешать сцену из недавно сформированного содержимого поверхности 308 компоновки и содержимого переднего плана, которое, возможно, было ранее сформировано на поверхности 308 компоновки с поверхности 301 переднего плана (этап 610). Этапы 602-610 могут затем быть повторены.
Если на этапе 604 компоновщик 202 определяет, что уведомление является уведомлением переднего плана, то компоновщик 202 может перекрасить передний план анимированного рабочего стола (этап 608), компонуя сцену, основанную на содержимом переднего плана, сформированного на поверхности 308 компоновки с поверхности 301 переднего плана, и содержимом фона анимированного рабочего стола, сформированного на поверхности 308 компоновки, как ранее описано относительно событий 404-412.
В других воплощениях, совместимых с предметом этого раскрытия, качество представления фона анимированного рабочего стола может быть масштабировано или ухудшено, основываясь, по меньшей мере частично, на состоянии обрабатывающего устройства, представляющего анимированный рабочий стол. Таким образом, частота для формирования содержимого фона, основанного на движущемся изображении, может быть настроена, основываясь, по меньшей мере, частично на состоянии обрабатывающего устройства, представляющего анимированный рабочий стол. Например, если определено, что анимированный рабочий стол находится в состоянии питания от батареи, состоянии низкого энергопотребления или в состоянии удаленного рабочего стола (указывая, что анимированный рабочий стол обрабатывающего устройства отображается на удаленном обрабатывающем устройстве), тогда фон анимированного рабочего стола может обновляться менее часто. Если состояние обрабатывающего устройства изменяется, например, от состояния питания от батарей, или состояния низкого энергопотребления к состоянию подключения, то качество представления фона анимированного рабочего стола может снова быть представлено в более высоком качестве. Фиг.7A-7C - блок-схемы, иллюстрирующие примерный процесс, который может быть осуществлен в таких воплощениях.
Процесс может начаться с приема компоновщиком 202 уведомления, чтобы обновить фон анимированного рабочего стола (этап 702). Компоновщик 202 может проверить рабочее состояние обрабатывающего устройства, на котором компоновщик 202 выполняется (этап 704). Например, компоновщик 202 может определить, находится ли обрабатывающее устройство в состоянии питания от батарей, состоянии низкого энергопотребления, состоянии удаленного рабочего стола или другом состоянии. В этом воплощении качество представления фона анимированного рабочего стола может быть масштабировано или ухудшено, когда рабочим состоянием обрабатывающего устройства является состояние низкого энергопотребления или состояние удаленного рабочего стола. В других воплощениях качество представления фона анимированного рабочего стола может быть масштабировано или ухудшено, когда рабочим состоянием обрабатывающего устройства является состояние низкого энергопотребления, состояние питания от батарей или состояние удаленного рабочего стола. Во еще других воплощениях качество представления фона анимированного рабочего стола может быть масштабировано или ухудшено, когда рабочим состоянием обрабатывающего устройства являются другие состояния. Качество представления фона анимированного рабочего стола может быть ухудшено изменением операции обновления фона анимированного рабочего стола таким образом, что один или более модулей анимированного рабочего стола могут периодически опрашиваться для обновлений (в дальнейшем названо обновления «опроса») вместо обновления фона анимированного рабочего стола после приема уведомления от соответствующего модуля анимированного рабочего стола (в дальнейшем названо обновлением «по требованию»).
После проверки рабочего состояния компоновщик 202 может определить, основываясь на рабочем состоянии, должно ли произойти изменение в обновлении от "опроса" до "по требованию" или от "по требованию" до "опроса" (этап 706). Если компоновщик 202 определяет, что никакое изменение в операции обновления не должно произойти, то компоновщик 202 может определить, скрыт ли анимированный рабочий стол (этап 712; Фиг.7B). Если компоновщик 202 определяет, что анимированный рабочий стол скрыт, то никакая дальнейшая обработка не может произойти, пока не получено следующее уведомление фона. Таким образом, если анимированный рабочий стол скрыт, то фон анимированного рабочего стола не может быть обновлен.
Если компоновщик 202 решает, что анимированный рабочий стол не скрыт, то компоновщик 202 может блокировать совместно используемую память, совместно используемую с модулем анимированного рабочего стола, препятствуя тому, чтобы модуль анимированного рабочего стола записывал в совместно используемую память, и компоновщик 202 может блокировать поверхность 308 компоновки, чтобы предотвратить другие потоки компоновщика 202 от записи в поверхность 308 компоновки (этап 714). Компоновщик 202 может затем использовать совместно используемую память, чтобы сформировать содержимое совместно используемой памяти на поверхности 308 компоновки (этап 716). Компоновщик 202 может затем скомпоновать сцену из сформированного содержимого фона и переднего плана на поверхности 308 компоновки и может смешать содержимое фона и содержимое переднего плана. В некоторых воплощениях смешение может быть выполнено GPU. Скомпонованная сцена может затем быть представлена компоновщиком 202 на дисплее обрабатывающего устройства как анимированный рабочий стол (этап 720). Компоновщик 202 может затем разблокировать поверхность 308 компоновки, чтобы разрешить другим потокам компоновщика 202 записывать в поверхность 308 компоновки, и компоновщик 202 может разблокировать совместно используемую память, чтобы позволить модулю анимированного рабочего стола записывать в совместно используемую память (этап 722). После получения другого уведомления может снова быть повторен этап 702.
Если, на этапе 706 (Фиг.7A), компоновщик 202 определяет, что изменение в обновлении анимированного рабочего стола должно произойти, то компоновщик 202 может определить, является ли изменение в обновлении изменением к обновлению «опроса» (этап 730). Если компоновщик 202 определяет, что изменение должно быть обновлением «опроса», то компоновщик 202 может затем отключить или проигнорировать уведомления от модуля анимированного рабочего стола, указывающего доступность обновленного сформированного содержимого фона в совместно используемой памяти (этап 732). Компоновщик 202 может затем разрешить уведомления опроса (этап 734). Таким образом, уведомления, полученные, чтобы указать, что должно произойти обновление фона анимированного рабочего стола, могут периодически генерироваться, на основе предопределенного периода времени, такого как 10 раз в секунду, или другого периода времени. Такие уведомления могут быть сгенерированы после истечения времени таймера, который может быть перезапущен после истечения, выполняясь во время операции обновления «опроса». Этапы 712-722 (Фиг.7B) могут затем быть выполнены компоновщиком 202, чтобы скомпоновать, сформировать и представить анимированный рабочий стол.
Если, на этапе 730, компоновщик 202 определяет, что обновление не должно быть изменено на обновление «опроса», то компоновщик 202 может предположить, что обновление должно быть изменено на обновление «по требованию». Компоновщик 202 может затем отключить уведомления «опроса», например, остановкой таймера или выполнением другого события (этап 740; Фиг.7C), и может допустить уведомления «по требованию» (этап 742) таким образом, что, например, уведомления от модуля анимированного рабочего стола, указывающие, что обновленное содержимое фона доступно в совместно используемой памяти, могут снова предписать фону анимированного рабочего стола обновиться. Компоновщик 202 может затем выполнить этапы 712-722 (Фиг.7B), чтобы обновить фон анимированного рабочего стола. Когда получено другое уведомление, такое как, например, уведомление от анимированного рабочего стола, показывающее доступность обновленного сформированного содержимого в совместно используемой памяти, компоновщик 202 может снова выполнить этап 702 (Фиг.7A).
Процесс, иллюстрированный блок-схемами Фиг.7A-7C, является примерным. В других воплощениях этапы могут быть выполнены в другом порядке, или могут быть выполнены различные или другие этапы. В варианте воплощения, иллюстрированном Фиг.7A-7C, вместо того, чтобы проверить рабочее состояние обрабатывающего устройства (этап 704), компоновщик 202 может определить, есть ли у переднего плана анимированного рабочего стола конкретное качество обслуживания. Таким образом, компоновщик 202 может определить, обновляется ли фон слишком часто, таким образом, вызывая ухудшение в качестве в представленном переднем плане анимированного рабочего стола. Например, в одном воплощении, компоновщик 202 может определить, были ли получены множественные уведомления, указывающие, что передний план анимированного рабочего стола может быть обновлен, в то время, когда компоновщик 202 был неспособен обновить передний план представленного анимированного рабочего стола. В такой ситуации компоновщик 202 может вызвать изменение от обновления «по требованию» до обновления «опроса», чтобы гарантировать, что у переднего плана анимированного рабочего стола есть конкретное качество обслуживания. Компоновщик 202 может позже вызвать изменение обновления «опроса» обратно к обновлению «по требованию», если прошел предопределенный период времени, такой как, например, 15 минут или другой предопределенный период времени. В некоторых воплощениях, если, после переключения обратно к обновлению «по требованию», были приняты множественные уведомления относительно обновления переднего плана анимированного рабочего стола, в течение второго предопределенного периода времени, и компоновщик 202 снова был неспособен обновить передний план анимированного рабочего стола, то компоновщик 202 снова может вызвать изменение от обновления «по требованию» до обновления «опроса» для более длинного периода времени, чем предопределенный период времени.
В варианте примерного способа, описанного в отношении Фиг.7A-7C, вместо того, чтобы измениться на обновление «опроса», компоновщик 202 может сообщить модулю анимированного рабочего стола, чтобы ввести «управляемый» режим, в котором компоновщик 202 может скомандовать модулю анимированного рабочего стола, чтобы сделать паузу, остановиться или продолжать дальше. В таком воплощении модуль анимированного рабочего стола может высвободить ресурсы, когда находится в «приостановленном» или «остановленном» состоянии. Например, этапы 732-734 могут быть изменены таким образом, что контроллер может зарегистрировать модуль анимированного рабочего стола, чтобы ввести «управляемый» режим, и может скомандовать модулю анимированного рабочего стола, чтобы ввести "состояние паузы". Этапы 740-742 могут быть изменены таким образом, что контроллер может зарегистрировать модуль анимированного рабочего стола, чтобы выйти из «управляемого» режима и ввести режим обновления «по требованию».
Хотя вышеупомянутые блок-схемы иллюстрируют только единственный модуль анимированного рабочего стола, выполняющийся на обрабатывающем устройстве, в других воплощениях множественные модули анимированного рабочего стола могут выполняться на обрабатывающем устройстве. В таких воплощениях каждый из модулей анимированного рабочего стола может формировать содержимое в соответствующей совместно используемой памяти, которая совместно используется с компоновщиком 202, в котором может быть сформирована часть содержимого фона анимированного рабочего стола.
Далее, в некоторых воплощениях, совместимых с предметом этого раскрытия, может быть включен звук во время представления анимированного рабочего стола. В таком воплощении компоновщик 202 может предоставлять управление общей громкостью звука для звуковых сеансов, которые могут быть начаты модулем анимированного рабочего стола.
ЗАКЛЮЧЕНИЕ
Хотя существо изобретения было описано на языке, определенном для структурных особенностей и/или методологических действий, нужно подразумевать, что существо изобретения в приложенной формуле изобретения не обязательно ограничено определенными особенностями или действиями, описанными выше. Скорее определенные особенности и события, описанные выше, раскрыты как примерные формы для того, чтобы осуществить формулу изобретения.
Хотя вышеупомянутые описания могут содержать конкретные детали, они в любом случае не должны быть рассмотрены как ограничивающие формулу изобретения. Другие конфигурации описанных воплощений являются частью объема этого раскрытия. Далее, реализации, совместимые с предметом этого раскрытия, могут иметь больше или меньше этапов, нежели описано, или могут осуществлять этапы в другом порядке, нежели показано. Соответственно, приложенная формула изобретения и ее юридические эквиваленты должны только определять изобретение, а не любые определенные данные примеры.
Класс G06T1/00 Обработка данных изображения общего применения
Класс G09G5/377 для совмещения или наложения двух или нескольких графических изображений