Поток графики высокого уровня

Иллюстрации

Показать все

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

Реферат

Данная заявка заявляет приоритет по 35 U.S.C. параграфу 119 (е) предварительной заявки на патент США № 60/714880, зарегистрированной 7 сентября 2005 г., описание которой включено здесь.

Уровень техники

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

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

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

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

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

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

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

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

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

Краткое описание чертежей

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

Фиг.1 является блок-схемой системы, которая реализует канал для обеспечения графики в форме визуального дерева.

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

Фиг.3 является блок-схемой вычислительного устройства, которое реализует визуальное дерево и деревья сборки для обеспечения графики или изображений.

Фиг.4 является блок-схемой системы, которая реализует интерфейсы приложения и прикладной программы, которые модифицируют дерево сборки графики или изображения.

Фиг.5 является схемой исправленного дерева сборки.

Фиг.6 является блок-схемой, иллюстрирующей некоторый процесс.

Фиг.7 является блок-схемой, иллюстрирующей некоторый процесс.

Подробное описание

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

Для простоты, система 100 показывает единственную прикладную программу 102; однако система 100 может включать в себя множество прикладных программ. Система 100 дополнительно включает в себя оболочку 104. Пример оболочки 104 включает в себя Основание Представления Windows®, обеспеченное корпорацией Microsoft. Оболочка 104 осуществляет доступ к одной или нескольким прикладным программам, таким как прикладная программа 102. В частности, команды графики обеспечиваются прикладной программой 102 для оболочки 104. Оболочка 104 может реализовывать или включать в себя конкретный интерфейс прикладных программ (API), находящийся в связи с прикладной программой 102.

Система 100 включает в себя ядро 106, которое принимает команды графики от оболочки 104 и создает визуальное дерево 108. Визуальное дерево 108 является представлением графики или изображения, обеспеченного оболочкой 104, где графика или изображение соответствует командам графики от прикладной программы 102.

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

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

Может быть обеспечен обратный канал 114, который позволяет подсистеме 112 сборки посылать обратные сообщения к ядру 106, оболочке 104 и прикладной программе 102. Обратные каналы, такие как обратный канал 114, могут быть обеспечены с каждым выделенным каналом (например, каналом 110). Сообщения, которые посылаются обратно через обратный канал 114, могут включать в себя состояние аппаратного обеспечения и/или изменения аппаратного обеспечения или конфигурации аппаратного обеспечения, которые поддерживаются посредством подсистемы 112 сборки. Другие примеры сообщений, возвращаемых посредством подсистемы 112 сборки, включают в себя информацию, находящуюся вне памяти, информацию потребления частоты смены кадров, изменения аппаратного обеспечения и т.д.

Пакеты данных могут быть организованы в группы, где группы пакетов данных посылаются по каналу 108 в подсистему 112 сборки. Например, визуальные объекты и ресурсы визуального дерева 108 посылаются как группа в подсистему 112 сборки. Подсистема 112 сборки ожидает принятия всей группы визуальных объектов и ресурсов перед созданием аналогичного дерева 116 сборки. В дополнение к объектам и ресурсам, которые посылаются в потоке графики, в поток графики включаются команды или инструкции. Команды или инструкции, в частности, используются для создания дерева 116 сборки. Когда система 100 включает в себя множественные прикладные программы, так как каждая прикладная программа имеет свой собственный выделенный канал, в котором передаются потоки графики и, в частности, группы пакетов данных, подсистема 112 сборки не должна ожидать, чтобы другие группы или потоки графики были переданы по каналу. Другими словами, выделенные каналы препятствуют помехам передачи потоков графики (групп пакетов данных) от различных прикладных программ. Кроме того, выделенные каналы дают возможность собственной синхронизации потоков графики таким образом, что пакеты данных принимаются в их относительном хронологическом порядке.

Дерево 116 сборки включает в себя ту же самую информацию (т.е. аналогичные объекты и ресурсы), что и визуальное дерево 108; однако дерево 116 сборки отформатировано для его использования процессом/функцией 118. Процессом/функцией 118 может быть компонент операционной системы или компонент прикладной программы, который визуализирует графику или изображения с использованием дерева 116 сборки. Процесс/функция 118 может интерпретировать или преобразовывать дерево 116 сборки в информацию графики более низкого уровня, такую как значения индивидуальных пикселов или растровые отображения графических объектов, которые используются для визуализации графики на устройстве отображения (не показано). Как дополнительно обсуждается ниже, объекты и ресурсы дерева 116 сборки, вместе с другими командами или инструкциями для реконструкции дерева 116 сборки, могут храниться в виде файла в локальной памяти для будущего использования или использования в случаях необходимости «обновления», когда графика или изображение, представленное посредством сборки, потеряно.

Оптимизация и сжатие могут быть выполнены на потоках графики, когда они посылаются по каналу 110 или другим каналам. Оптимизация или сжатие может реализовывать один из различных способов оптимизации и/или сжатия. Кроме того, сообщения потока графики или поток графики может быть транспортирован с использованием одного из различных транспортных протоколов (например, RPC, RDP, TCP/IP и т.д.) и/или способов.

Фиг.2 показывает примерное визуальное дерево 108 и примерное дерево 116 сборки. Визуальное дерево 108 образовано из иерархических графических или визуальных объектов от V1 200(1) до VN 200(N). Визуальное дерево 108 представляет графику или изображение. Каждый из визуальных объектов 200 дополнительно описывается посредством команд, инструкций или ресурсов (коллективно называемых «ресурсами»). В частности, ресурсы используются для описания того, как рисовать визуальные объекты. Ресурсы могут иметь ресурсы более высокого или более низкого порядка. Например, объект графики V3 200(3) определен посредством ресурса 202 «чертежная линия». Ресурс 202 «чертежная линия» дополнительно описан посредством ресурса 204 «перо». Ресурс 204 «перо» дополнительно описан посредством ресурса 206 «кисть».

Как описано выше, визуальные объекты V 200 вместе с ресурсами (например, ресурсами 202, 204, 206) преобразуются в пакеты данных и посылаются в потоке графики, вместе с командами или инструкциями. Команды или инструкции используются для построения дерева 116 сборки с использованием аналогичных объектов сборки от С1 208(1) до CN 208(N) и ресурсов, определяющих каждый из объектов сборки С 208 (например, ресурс 210 «чертежная линия», ресурс 212 «перо» и ресурс 214 «кисть»). Как обсуждалось выше, подсистема сборки, которая принимает поток графики визуальных объектов, ресурсов, команд и инструкций, может ожидать принятия всех пакетов данных перед построением сборки. Следовательно, визуальные объекты, ресурсы, команды и инструкции могут быть посланы как группа.

Фиг.3 показывает примерное вычислительное устройство 300, которое реализует визуальные деревья и деревья сборки для обеспечения и визуализации графики или изображений. Вычислительное устройство 300 является реализацией транспроцессной системы; однако станет очевидно, что элементы в вычислительном устройстве 300 могут также быть реализованы как часть, или иметь аналогичные элементы, в трансмашинной и трансподпроцессной системах. Вычислительным устройством 300 может быть стандартный настольный персональный компьютер (PC), который включает в себя локальную операционную систему, устройство обработки (данных) или процессор (процессоры) 302 и запоминающую систему или память 304. Как один пример, вычислительным устройством 300 является PC общего назначения, реализованный с операционной системой брэнда Windows® от корпорации Microsoft.

В этом примере прикладная программа 306 и стандартная прикладная программа 308 могут быть частью множества прикладных программ, находящихся в памяти 304 или находящихся отдельно от памяти 304. Программы 306 и 308, в частности, доступны и управляются процессором (процессорами) 302. Стандартная прикладная программа 308 может включать в себя прикладные программы, которые реализуют форматы команд графики, такие как GDI.

Вычислительное устройство 300 включает в себя оболочку и ядро 310, которое поддерживает прикладную программу 306. Оболочка и ядро 310 включают в себя оболочку 104 и ядро 106, описанные выше. В этом примере стандартная прикладная программа 308 поддерживается посредством стандартной оболочки и ядра 312. В других реализациях единственная оболочка и ядро может использоваться для поддержки множества прикладных программ. Оболочка и ядро 310 и стандартная оболочка и ядро 312, в частности, выполнены с возможностью создания и обеспечения визуальных деревьев, таких как визуальное дерево 108, на основе команд, принимаемых от соответствующей прикладной программы 306 и стандартной прикладной программы 308.

Оболочка и ядро 310 соединены с редиректором 314, который может быть интерфейсом к выделенному каналу «А», который поддерживает прикладную программу 306. Редиректор 314 может рассматриваться как «верхняя половина» канала «А». Стандартная оболочка и ядро 312 подобным же образом соединены со стандартным редиректором 316, который является интерфейсом к отдельному каналу «В», который поддерживает стандартную прикладную программу 308. Подобным же образом редиректор 316 может рассматриваться как «верхняя половина» канала «В». Редиректоры 314 и 316 могут быть соединены с или использовать транспортный уровень или транспорт 318. Уровень 320 редирекции (переадресации) является нижней половиной канала «А», а уровень 322 переадресации является нижней половиной канала «В».

Подсистема «А» 324 сборки принимает поток графики через канал «А» и создает дерево сборки для использования процессом/функцией «А» 326. Подобным же образом машина «В» 328 сборки принимает поток графики через канал «В» и создает дерево сборки для использования процессом/функцией «В» 330. Каждый из процесса/функции «А» 326 и процесса/функции «В» 330 использует созданные деревья сборки для визуализации и генерирования графики или изображений для локального дисплея или выходного устройства.

Фиг.4 показывает систему 400, которая реализует приложение и интерфейсы прикладных программ, используемые для модификации дерева сборки графики или изображения. В этом примере система 400 является модификацией системы 100, описанной выше. В некоторых случаях желательно модифицировать графику или изображения, которые обеспечены посредством прикладных программ, таких как прикладная программа 306 и стандартная прикладная программа 308. В предположении, что оптимизация или сжатие может иметь место, когда сообщения потоков графики или потоки графики посланы, и, в частности, в трансмашинных системах желательно минимизировать ухудшение графики или изображения, когда модификация имеет место.

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

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

Интерфейс 410 прикладных программ (API) потоков графики и API 412 воспроизведения может быть также обеспечен и подвергает приложение 402 воздействию ядра 104 и подсистемы 110 сборки. В частности, API 410 потока графики используется для доступа к потоку графики от ядра 104, и API 412 воспроизведения используется подсистемой 110 сборки для открытия потока графики из приложения 402.

API 410 потока графики может включать в себя API «открытия потока графики», который открывает поток графики для считывания. Кроме того, указатель может быть реализован и обеспечен для приложения 402 посредством API «открытия потока графики» для конкретной функции или процесса, который поддерживает подсистема 110 сборки. API 410 потока графики может дополнительно включать в себя API «закрытия потока графики», который закрывает поток графики для считывания. API «закрытия потока графики» вызывает посылку сообщения закрытия к подсистеме 110 сборки или к конкретной функции или процессу, который поддерживает подсистема 110 сборки.

API 410 потока графики может также включать в себя API «указания преобразования потока графики», который обеспечивает указание или сообщение ядру 104, или в случае трансмашинной системы (например, системы обслуживания терминалов) серверу графики (т.е. ядру 104, находящемуся в сервере графики), что приложение 402 намеревается выполнить действие или модификацию (например, увеличение) потока графики. Например, в случае увеличения API «указания преобразования потока графики» обеспечивает сообщение обратно к прикладной программе 102 для вычисления расширения или увеличения. Кроме того, указатель может быть обеспечен для конкретного исправленного дерева 404 сборки. Это сообщение может быть послано через обратный канал, такой как канал 114.

API 412 воспроизведения обеспечивает способность для подсистемы 112 сборки нарисовать или создать исправленное дерево 408 сборки. В общем, API 412 воспроизведения подвергает нижнюю половину канала 406 и подсистему 112 сборки действию приложения 402.

Фиг.5 является схемой модифицированного или исправленного дерева сборки. В частности, показано исправленное дерево 408 сборки, модифицированное приложением 402. В этом примере модификация должна расширять или увеличивать прежнее дерево сборки (например, дерево 116 сборки).

Когда имеет место модификация графики или изображений, модификация осуществляется на дереве сборки и, в частности, на вершине или вершинах дерева сборки. В зависимости от того, какие вершины модифицируются, могут быть затронуты другие вершины. Другими словами, если модифицируется конкретная вершина, то все вершины ветвей более низкого уровня затрагиваются или модифицируются. В этом примере вершина С1 208(1) модифицируется посредством вершины 500 «увеличения». Следовательно, прежнее дерево 116 сборки модифицируется (т.е. увеличивается) и обеспечивается как исправленное дерево 408 сборки.

Фиг.6 показывает процесс 600, который обеспечивает потоки графики, соответствующие визуальным деревьям, для процесса или функции. Процесс 600 может быть дополнительно реализован как API, который поддерживает модификацию потока графики. Процесс 600 показан как коллекция блоков в логической блок-схеме, которая представляет последовательность операций, которая может быть реализована в аппаратном обеспечении, программном обеспечении, программно-аппаратных средствах или их комбинации. В контексте программного обеспечения эти блоки представляют компьютерные команды, которые, при выполнении одним или несколькими процессорами, выполняют описанные операции. Хотя это описано как блок-схема, предполагается, что некоторые блоки могут быть расположены параллельно или в другом порядке. Процесс 600 может быть реализован, например, системой 100 с фиг.1 и/или вычислительным устройством 300, как обсуждалось на фиг.3, хотя процесс 600 может быть реализован посредством других архитектур.

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

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

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

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

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

Фиг.7 показывает процесс 700, который дает возможность связи между оболочкой и подсистемой сборки. Процесс 700 может быть дополнительно реализован как протокол для обеспечения такой связи. Процесс 700 показан как коллекция блоков в логической блок-схеме, которая представляет собой последовательность операций, которые могут быть реализованы в аппаратном обеспечении, программном обеспечении, программно-аппаратных средствах или их комбинации. В контексте программного обеспечения блоки представляют собой компьютерные команды, которые, при выполнении одним или несколькими процессорами, выполняют описанные операции. Хотя это описано как блок-схема, предполагается, что некоторые блоки могут быть расположены параллельно или в другом порядке. Процесс 700 может быть реализован, например, посредством системы 100 с фиг.1 и/или вычислительным устройством 300, как обсуждалось на фиг.3, хотя процесс 700 может быть реализован посредством других архитектур.

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

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

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

В блоке 708 строится редактируемая модель с использованием немодифицированных или модифицированных пакетов данных. Как обсуждалось, редактируемая модель может быть иерархическим деревом, аналогичным визуальному дереву, созданному в ядре. В частности, редактируемая модель считается или называется деревом сборки, таким как деревья 116 и 408 сборки.

Заключение

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

1. Способ модификации команд графики, представляющих визуальное дерево, предусматривающий:прием сообщения, задающего соединение выделенного канала для приема графического потока, при этом упомянутое сообщение указывает идентифицирующие поля выделенного канала в формате, включающем в себя идентификатор (ID) соединения, со следующим за ним ID канала, со следующим за ним ID команды, со следующими за ним данными команды,прием потока графики от первой прикладной программы, причем поток графики включает в себя пакеты данных, команды и инструкции, при этом пакеты данных содержат визуальные объекты и ресурсы, которые образуют визуальное дерево, причем ресурсы описывают как рисовать визуальные объекты;открытие упомянутого потока графики второй прикладной программой, причем поток графики, принятый от первой прикладной программы, находится в выделенном канале;модификацию команд и инструкций упомянутого потока графики, проходящего через выделенный канал, второй прикладной программой для создания модифицированного потока графики; ипропускание модифицированного потока графики к подсистеме сборки, реализованной процессором вычислительного устройства, причем подсистема сборки создает модифицированное дерево сборки на основании визуального дерева и команд и инструкций модифицированного потока графики, причем модифицированные команды и инструкции потока графики, когда реализованы подсистемой сборки, модифицируют по меньшей мере один узел модифицированного дерева сборки, причем узел более нижнего уровня иерархии автоматически модифицируется, если модифицируется узел более высокого уровня иерархии, при этом команды и инструкции описывают, как рисовать модифицированное дерево сборки на основании объектов и ресурсов сборки, причем объекты сборки аналогичны визуальным объектам, модифицированное дерево сборки включает в себя информацию графики более высокого уровня, аналогичную упомянутому визуальному дереву.

2. Способ по п.1, в котором открытие включает в себя реализацию и выдачу указателя для приложения, поддерживаемого подсистемой сборки.

3. Способ по п.1, в котором модификация предусматривает операцию увеличения в отношении потока графики.

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

5. Способ по п.4, в котором закрытие дополнительно предусматривает посылку к подсистеме сборки сообщения о том, что происходит закрытие.

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

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

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

9. Система по п.7, в которой канал состоит из верхней половины и нижней половины, причем приложение может быть реализовано между верхней половиной и нижней половиной.

10. Система по п.7, причем система является одной из следующего: трансмашинной системы, транспроцессной системы или траснподпроцессной системы.