Уровень интеграции сред

Иллюстрации

Показать все

Изобретение относится к способам обработки графической и иной видеоинформации для отображения в компьютерных системах. Техническим результатом изобретения является усовершенствование графической модели, которая позволяет пользоваться многочисленными особенностями и возможностями обработки графики и эффективно выводить сложные графические и аудиовизуальные данные. Технический результат достигается благодаря тому, что уровень интеграции сред, включающий в себя интерфейс прикладного программирования (API) и объектную модель, позволяет разработчикам программного кода согласованно взаимодействовать со структурой данных графа сцены для вывода графики. Посредством интерфейсов программный код добавляет дочерние визуальные объекты к другим визуальным объектам для построения иерархического графа сцены, записывает списки команд, например данные геометрии, данные изображения, данные анимации и другие данные для вывода, и может задавать на визуальных объектах свойства преобразования, усечения и непрозрачности. Уровень интеграции сред и API позволяют программистам выполнять композиционные эффекты в своих приложениях напрямую, в то же время усиливая блок обработки графики таким образом, чтобы не оказывать неблагоприятное воздействие на нормальную производительность приложений. Многоуровневая система включает в себя возможность объединения различных типов сред (например, двумерной графики, трехмерной графики, видео, аудио, текста и построения изображения) и их гладкой и бесстыковой анимации. 3 н. и 63 з.п. ф-лы, 42 ил.

Реферат

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

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

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

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

Новая модель для управления выводом графики описана в патентных заявках США №№ 10/184,795, 10/184,796, 10/185,775, 10/401,717, 10/402,322 и 10/402,268, права на которые принадлежат правообладателю настоящего изобретения и включенных в данное описание посредством ссылки. Эта новая модель обеспечивает ряд существенных усовершенствований технологии обработки графики. Например, патентная заявка США № 10/184,795, в целом, посвящена многоуровневой системе обработки графики и соответствующему способу, где компонент высокого уровня (например, операционная система) осуществляет аспекты, требующие большого объема вычислений, построения графа сцены, обновления параметров анимации и обхода структур данных графа сцены со сравнительно низкой рабочей скоростью, чтобы передавать упрощенные структуры данных и/или команды графики компоненту низкого уровня. Поскольку обработка высокого уровня значительно упрощает данные, компонент низкого уровня может работать на более высокой скорости (относительно компонента высокого уровня), например на скорости, которая соответствует частоте обновления кадра графической подсистемы, чтобы обрабатывать данные в постоянные выходные данные для графической подсистемы. При использовании анимации, вместо того, чтобы перерисовывать всю сцену с изменениями, обработка низкого уровня может интерполировать интервалы параметров по мере необходимости для получения мгновенных значений, которые при визуализации обеспечивают слегка измененную сцену для каждого кадра, обеспечивая гладкую анимацию.

В патентной заявке США № 10/184,796 описан параметризованный граф сцены, который обеспечивает изменяющиеся (анимированные) значения, и контейнеры параметризованного графа, так что программный код, который хочет рисовать графику (например, прикладная программа или компонент операционной системы), может избирательно изменять определенные аспекты описания графа сцены, оставляя другие аспекты без изменений. Программный код может также повторно использовать ранее построенные фрагменты графа сцены, возможно, с другими параметрами. Можно предполагать, что возможность легко изменять внешний вид отображаемых предметов посредством параметризации и/или повторного использования существующих частей графа сцены обеспечивает существенное повышение общей эффективности обработки графики.

В патентной заявке США № 10/185,775, в целом, описана структура данных кэширования и соответствующие механизмы хранения визуальной информации посредством объектов и данных в графе сцены. Структура данных, в общем случае, связана с механизмами, которые интеллектуально управляют размещением и использованием визуальной информации в ней. Например, в отсутствие особого запроса со стороны прикладной программы наибольшая часть информации, хранящейся в структуре данных, не имеет внешней ссылки на себя, что позволяет оптимизировать или иначе обрабатывать эту информацию. Следует ожидать, что это обеспечивает эффективное использование и экономию ресурсов например, данные в структуре данных кэширования можно преобразовывать в другой формат, который является более компактным и/или уменьшает необходимость в последующей, повторной обработке, например битовый образ или другой результат последующей обработки.

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

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

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

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

Объекты MIL верхнего уровня включают в себя дерево визуальных объектов (визуалов), являющееся объектом, который содержит главное содержимое, подлежащее рисованию. Средства управления извлекают визуалы из дерева напрямую. Визуалы не зависят от устройства и родительского контекста. Пункт назначения визуализации - это устройство, в которое рисуется визуал. Этот объект (например, экран) может иметь свой собственный механизм отбраковки или аннулирования. Различные пункты назначения визуализации включают в себя экран в окне, "принтер" (Printer), "метафайл" (Metafile), "поверхность" (Surface), файл потоковых сред (например, DVD) и "подокно", которое является частью сцены, которая рисуется отдельно от остальной сцены. Другие объекты, относящиеся к рисованию, включают в себя "визуализатор визуала" (Visual Renderer), содержащий объект, сконфигурированный на рисование дерева визуалов в пункт назначения визуализации, и объект "планировщик отображения" (Display Scheduler), который знает, когда рисовать дерево визуалов в пункт назначения визуализации. Менеджер (средство управления) времени (Time Manager) - это контекстный объект для набора узлов хронирования, и это объект, на котором тактируются вызовы планировщика.

Предусмотрен API визуала, который, по существу, является начальной точкой для рисования через уровень интеграции сред и содержит множественные типы объектов, в том числе объект "менеджер (средство управления) визуалов" (VisualManager), который связывает "дерево визуалов" (VisualTree) со средой. Различные типы "менеджеров визуалов" (VisualManager) (например, "экран" (Screen), "принтер" (Printer) и "поверхность" (Surface)) отвечают за визуализацию дерева визуалов в свою конкретную среду. Визуал - это то, где программист рисует; это вершина в "дереве визуалов", которая обеспечивает программе место для рисования.

API контекста рисования (DrawingContext) представляет модель программирования на основе контекста относительно того, как строить содержимое визуала, которое заполняет визуал (Visual), или осуществляется визуализация в данные изображения (ImageData). Предусмотрены классы "контекст рисования" (DrawingContext), а также классы и точки ввода, необходимые для получения "контекста рисования" и перечисления содержимого визуала в удержанном визуале/визуале рисования (RetainedVisual/DrawingVisual).

Для обеспечения изменчивости предусмотрен единый набор типов, которые являются производными от общего базового класса "изменяемый объект" (Changeable). Любой тип, для которого изменчивость является желаемым изменением, может быть производным от класса "Changeable". Например, в программировании графики объектная модель включает в себя "кисти" (Brush), "перья" (Pen), "геометрии" (Geometry), "анимации на основе чисел с плавающей точкой" (FloatAnimation), "ограничители градиента" (GradientStop), "отрезки" (Segment) и т.д. Свойство "изменяемо" (IsChangeable) указывает, можно ли изменить изменяемый объект в зависимости от его текущего значения, которое задает состояние.

Кисть - это объект, который представляет метод для заливки плоскости. Помимо возможности заливать плоскость абсолютным способом, кисти уровня интеграции сред также способны приспосабливаться к заливке плоскости относительно размера объекта, который они заливают. Примеры типов кисти включают в себя "кисть чистого цвета" (SolidColorBrush), "кисть визуала" (VisualBrush) (которая может ссылаться на ресурс векторной графики/визуал), "кисть рисования" (DrawingBrush), "линейный градиент" (LinearGradient), "радиальный градиент" (RadialGradient), "кисть изображения" (ImageBrush) и "кисть девятиячеечной сетки" (NineGridBrush). Некоторые объекты кисти располагают информацией о том, как они связаны с системой координат, когда они используются, и информацией о том, как они связаны с ограничивающим прямоугольником геометрии, с которой они используются. Этот размер зависит от объекта, который заливает кисть. Некоторые типы кисти (например, "кисть визуала") также могут быть мозаичными для создания шаблонов, заданных программистом. Базовый класс "Brush" имеет "преобразование" (Transform), общую непрозрачность и режим смешивания. Объекты "Brush" (и другие объектные ресурсы в векторной графике и API MIL) являются Changeable и записываемыми после их создания и отвечают общей схеме Changeable в отношении их поведения после их использования в квалифицированном использовании.

Класс "геометрия" (Geometry) объектов можно использовать для усечения, тестирования на попадание и визуализации данных на основе 2-мерных векторов с помощью "пера" (Pen) и "кисти" (Brush). Производные от Geometry классы обеспечивают более конкретные построение и семантику перечисления. Предусмотрены несколько типов "геометрии", зависящих от формы, а также обобщенная "геометрия пути" (PathGeometry), которая допускает явное определение "геометрии" более сложной формы. Geometry - это абстрактный базовый класс. "Коллекция геометрий" (GeometryCollection) - это коллекция множества объектов Geometry, скомбинированных с использованием конкретных операций "режима комбинирования" (CombineMode) в заданной для них области. Этот объект обеспечивает построение визуальных комбинаций объектов "геометрия" по сравнению с использованием исключительно объектов "фигура пути" (PathFigure) в "геометрии пути".

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

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

Эффекты (Effects) обеспечивают средства изменения визуального содержимого сцены способом, ориентированном на визуализацию. Например, "эффекты изображения" (ImageEffects) (эффекты битового образа на растровой основе) действуют на основанном на изображении, полностью составленном представлении участка сцены. Эффекты подразделяются на различные типы, в том числе "эффекты изображения" (ImageEffects), "режимы смешивания" (BlendModes) и "векторные эффекты" (VectorEffects). "Эффекты изображения" можно использовать в сцене удержанного режима, применяя их к подграфу или "элементу" (Element), или можно использовать в автономном конвейере изображений. "Режимы смешивания" являются особым случаем эффектов на основе изображения, которые можно применять к сцене удержанного режима, в общем случае, таким же образом, как "эффекты изображения". Режимы смешивания осуществляют объединение начального и конечного цветов при композиции источника, например умножение или сложение.

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

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

Различные типы примитивов, цветовые особенности и поддержка сред также обеспечиваются посредством MIL. Для воспроизведения любого аудио/видеосодержимого можно использовать "данные сред" (MediaData).

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

ПЕРЕЧЕНЬ ФИГУР ЧЕРТЕЖЕЙ

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

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

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

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

Фиг.5 - представление класса визуалов объектной модели в соответствии с аспектом настоящего изобретения.

Фиг.6 - представление различных других объектов объектной модели в соответствии с аспектом настоящего изобретения.

Фиг.7 - представление иерархии классов преобразования в соответствии с аспектом настоящего изобретения.

Фиг.8 и 9 - представления преобразований данных визуала в геометрическом масштабе и неоднородном масштабе соответственно в соответствии с аспектом настоящего изобретения.

Фиг.10 - представление классов геометрии объектной модели в соответствии с аспектом настоящего изобретения.

Фиг.11 - представление структуры "геометрии пути" в соответствии с аспектом настоящего изобретения.

Фиг.12 - представление графа сцены, состоящего из визуалов и "списков команд", показывающее иллюстративную графику, создаваемую примитивами, в соответствии с аспектом настоящего изобретения.

Фиг.13 - представление классов кисти объектной модели в соответствии с аспектом настоящего изобретения.

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

Фиг.15-17 - диаграммы состояний, представляющие, как состояния свойств управляют поведением изменяемых типов, в соответствии с аспектом настоящего изобретения.

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

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

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

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

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

Фиг.28 - представление визуализированного объекта кисти девятиячеечной сетки в соответствии с аспектом настоящего изобретения.

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

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

Фиг.42 - представление трехмерных концепций для обеспечения трехмерной поддержки в соответствии с аспектом настоящего изобретения.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

ИЛЛЮСТРАТИВНАЯ ОПЕРАЦИОННАЯ СРЕДА

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

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

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

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

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

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

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

Компьютер 110 может также включать в себя другой сменный/стационарный, энергозависимый/энергонезависимый компьютерный носитель информации. Исключительно в порядке примера на фиг.1 показаны накопитель 141 на жестких дисках, который считывает со стационарного энергонезависимого магнитного носителя или записывает на него, магнитный дисковод 151, который считывает со сменного энергонезависимого магнитного диска 152 или записывает на него, и оптический дисковод 155, который считывает со сменного энергонезависимого оптического диска 156, например CD-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 через устройства ввода, например планшет (электронный цифровой преобразователь) 164, микрофон 163, клавиатуру 162 и указательное устройство 161, под которым обычно подразумевают мышь, шаровой манипулятор или сенсорную панель. Другие устройства ввода (не показаны) могут включать в себя джойстик, игровой пульт, спутниковую антенну, сканер и т.п. Эти и другие устройства ввода часто бывают подключены к процессору 120 через интерфейс 160 пользовательского ввода, который подключен к системной шине, но могут быть подключены посредством других интерфейсов и шинных структур, например параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 191 или устройство отображения другого типа также подключено к системной шине 121 через интерфейс, например, видеоинтерфейс 190. Монитор 191 может также быть объединен с панелью 193 сенсорного экрана и т.п., которая может вводить оцифрованный ввод, например рукописный ввод в компьютерную систему 110 через интерфейс 192 сенсорного экрана. Заметим, что монитор и/или панель сенсорного экрана может быть физически подключен к корпусу, в который заключено вычислительное устройство 110, например, как в персональном компьютере планшетного типа, в котором экранная панель 193, по существу, служит планшетом 164. Кроме того, компьютеры, например вычислительное устройство 110, также может включать в себя другие периферийные устройства вывода, например громкоговорители 195 и принтер 196, которые могут быть подключены через выходной периферийный интерфейс 194 и т.п.

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

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

УРОВЕНЬ ИНТЕГРАЦИИ СРЕД (MIL)

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

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

На фиг.2 представлена в общем виде многоуровневая архитектура (MIL) 200, в которой может быть реализовано настоящее изобретение. Согласно фиг.2 может быть разработан программный код 202 (например, прикладная программа или компонент операционной системы и т.п.) для вывода графических данных одним или несколькими различными способами, в том числе посредством построения 204 изображения, посредством элементов 206 векторной графики и/или посредством вызовов функции/метода, обращенных непосредственно к уровню 212 программного интерфейса приложения (API) визуала (Visual). В общем случае, построение 204 изображения обеспечивает программный код 202 механизмом загрузки, редактирования и сохранения изображений, например битовых об