АЛЬТЕРНАТИВНЫЙ ГРАФИЧЕСКИЙ КОНВЕЙЕР
ALTERNATIVE GRAPHICS PIPELINE

Уровень техники
Вспомогательные технологии представляют собой программные или аппаратные продукты, которые обеспечивают возможность доступа к программным приложениям или операционным системам для лиц с ограниченными физическими возможностями, такими как ограниченная подвижность, зрение, слух и т.д. Примеры вспомогательных технологий включают в себя экранные лупы, экранные дикторы и дисплеи Брайля. Эти продукты используют ряд способов перехвата данных для работы в операционной системе. Обычно вспомогательные технологии перехватывают вызовы элементарной графической функции на уровне интерфейса драйвера дисплея (Display Driver Interface, DDI), и используют состояние ядра операционной системы для построения внеэкранных моделей. Такие способы часто приводят к нестабильности и отказам системы.
Сущность изобретения
Раскрыты различные технологии и способы, которые улучшают работу приложений обеспечения доступности. Предоставлен графический конвейер, который одновременно и/или по отдельности может быть вызван в пользовательском режиме из множества программ обеспечения доступности. От приложения обеспечения доступности принимается запрос на доступ к графическому конвейеру, и устанавливается соединение. Приложение обеспечения доступности выполняет мониторинг графического конвейера на предмет наличия интересующего содержимого, и строит модель на основании этого содержимого. Данная модель используется, чтобы должным образом доставить содержимое конечному пользователю в приложении обеспечения доступности. На, по меньшей мере, части содержимого могут быть выполнены захваты экрана, которые, впоследствии, визуализируются на другой поверхности.
Раздел "Сущность изобретения" приведен для того, чтобы представить в упрощенной форме выборку концепций, которые подробно описываются ниже, в разделе "Подробное описание". Раздел "Сущность изобретения" не предназначен ни для определения ключевых или существенных отличительных признаков сущности формулы изобретения, ни для использования в качестве вспомогательного средства при определении объема сущности формулы изобретения.
Краткое описание чертежей
Фиг.1 - схематический вид частей системы графического конвейера;
Фиг.2 - схематический вид компьютерной системы одного варианта осуществления системы с Фиг.1;
Фиг.3 - схематический вид приложения графического конвейера обеспечения доступности, действующего в компьютерной системе с Фиг.2;
Фиг.4 - схема последовательности операций процесса высшего уровня для одного варианта осуществления системы с Фиг.1 и 2;
Фиг.5 - схема последовательности операций для одного варианта осуществления системы с Фиг.1 и 2, иллюстрирующая этапы, выполняемые при осуществлении захватов экрана на графическом конвейере и прорисовке захватов экрана на другой поверхности;
Фиг.6 - схема последовательности операций процесса для одного варианта осуществления системы с Фиг.1 и 2, иллюстрирующая этапы, выполняемые при осуществлении доступа экранными дикторами или дисплеями Брайля к графическому конвейеру и построении модели содержимого;
Фиг.7 - схема последовательности операций процесса для одного варианта осуществления системы с Фиг.1 и 2, иллюстрирующая этапы, выполняемые при осуществлении доступа экранными лупами к графическому конвейеру и при построении модели содержимого.
Подробное описание
Для целей разъяснения принципов настоящего изобретения ниже, со ссылкой на прилагаемые чертежи, приведено описание вариантов осуществления настоящего изобретения. Тем не менее следует понимать, что здесь не налагается какого-либо ограничения на объем изобретения. Специалистам в данной области техники будут очевидны возможные изменения и дополнительные модификации в описанных вариантах осуществления, и также предполагается возможность дополнительных применений описанных здесь принципов.
Система может быть описана в общем контексте как приложение, которое усовершенствует работу приложений обеспечения доступности и относящихся к ним вспомогательных технологий, таких как экранные дикторы, экранные лупы и дисплеи Брайля. Один или более из описанных здесь способов может быть реализован как функция в приложении графического конвейера или как любой другой тип программы или службы, которая облегчает сценарии обеспечения доступности. Как описано ниже, в одном варианте осуществления системы предоставлен графический конвейер, который может быть вызван в пользовательском режиме одновременно из множества программ обеспечения доступности. В еще одном варианте осуществления приложение обеспечения доступности выполняет мониторинг графического конвейера на предмет наличия представляющего интерес содержимого, и строит модель на основании этого содержимого. Эта модель используется, чтобы должным образом доставить содержимое конечному пользователю в приложении обеспечения доступности.
Как показано на Фиг.1, система 20 графического конвейера включает в себя графический конвейер 21 и приложения обеспечения доступности (22, 24 и 26, соответственно). Графический конвейер 21 предоставляет возможность приложениям обеспечения доступности 22, 24 и/или 26 перехватывать графические примитивы (например, геометрические вызовы, текстовые вызовы) 18, и/или информацию, относящуюся к построечным пользовательским элементам управления 19 прорисовкой. Графический конвейер 21 служит как центральное место для приложений обеспечения доступности, чтобы получать графическую информацию дисплея, которая может быть моделирована и использована при визуализации содержимого (или модификации содержимого, где это уместно) в сценариях обеспечения доступности. В одном варианте осуществления соединения через графический конвейер 21 имеют место в пользовательском режиме, а не в режиме ядра, что предоставляет более надежное рабочее окружение.
В одном варианте осуществления приложение обеспечения доступности 22 соединено с графическим конвейером 21 через канал 28 связи в пользовательском режиме "только чтение", и оно служит как экранный диктор 34. Приложение обеспечения доступности 24 соединено с графическим конвейером 21 через канал 30 связи в пользовательском режиме "чтение и/или обновление", и оно служит как экранная лупа 36. Кроме того, приложение обеспечения доступности 26 соединено с графическим конвейером 21 через канал 32 связи в пользовательском режиме "только чтение", и оно служит как дисплей 34 Брайля. В одном варианте осуществления экранным дикторам и дисплеям Брайля не требуется изменять содержимое графического конвейера 21, так что их соответствующие соединения с графическим конвейером 21 предоставляют возможность только чтения. Вместо или в дополнение к показанным на Фиг.1 приложениям обеспечения доступности и вспомогательным технологиям может использоваться множество других приложений обеспечения доступности и вспомогательных технологий.
Как показано на Фиг.2, пример компьютерной системы, используемой для реализации одной или более частей системы 20, включает в себя вычислительное устройство, такое как вычислительное устройство 100. В обычной базовой конфигурации вычислительное устройство 100, как правило, включает в себя, по меньшей мере, один процессорный блок 102 и память 104. В зависимости от точной конфигурации и типа вычислительного устройства память 104 может быть энергозависимой (такой как ОЗУ), энергонезависимой (такой как ПЗУ, флэш-память и т.п.) или представлять собой сочетание этих двух типов памяти. Эта базовая конфигурация выделена на Фиг.2 пунктирной линией 106.
В добавление, устройство 100 также может иметь дополнительные функции/функциональные возможности. Например, устройство 100 может также включать в себя дополнительное устройство хранения (съемное и/или несъемное), которое включает в себя, но не ограничено этим, магнитные или оптические диски или ленту. Такие дополнительные устройства хранения проиллюстрированы на Фиг.2 как съемное устройство 108 хранения и несъемное устройство 110 хранения. Компьютерное средство хранения включает в себя энергозависимую, энергонезависимую, съемное и несъемное средство, реализованное посредством какого-либо способа или технологии для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Память 104, съемное устройство 108 хранения и несъемное устройство 110 хранения представляют собой примеры компьютерного средства хранения. Компьютерное средство хранения включает в себя, но не ограничивается перечисленным, ОЗУ, ПЗУ, ЭСППЗУ, флэш-память или другой тип памяти, диски CD-ROM, цифровые универсальные диски (DVD) или иные оптические дисковые носители, магнитные кассеты, магнитные ленты, магнитные дисковые носители или другие магнитные устройства хранения, или любое другое средство, которое может быть использовано для хранения желаемой информации, и к которому может быть выполнен доступ вычислительным устройством 100. Любое такое компьютерное средство хранения может быть частью устройства 100.
Вычислительное устройство 100 содержит один или более интерфейсов 114 связи, которые предоставляют возможность устройству осуществлять связь с другими устройствами. Например, интерфейс(ы) 114 связи предоставляет(ют) возможность вычислительному устройству 100 осуществлять связь с одним или более компьютерами и/или приложениями 115 в соответствующих случаях. Примерами интерфейсов связи являются последовательные порты, порты Универсальной Последовательной Шины (Universal Serial Bus, USB), параллельные порты, адаптеры беспроводной связи, сетевые адаптеры и т.п. Интерфейс(ы) 114 связи используется(ются) компьютером 100, чтобы обмениваться информацией с внешними устройствами посредством средств связи. Некоторыми примерами средств связи являются машиночитаемые команды, структуры данных, программные модули и другие данные в модулированном сигнале данных, таком как несущая волна или другой транспортный механизм, и они включают в себя любое средство доставки информации. Термин "модулированный сигнал данных" обозначает сигнал, у которого одна или более характеристик установлены или изменены таким образом, чтобы кодировать в сигнал информацию. В качестве примера, но не ограничиваясь перечисленным, средство связи включает в себя проводное средство, такое как проводная сеть или прямое проводное соединение, и беспроводное средство, такое как акустическое, радиочастотное, инфракрасное и другие беспроводные средства. Термин "машиночитаемый носитель" включает в себя как средство хранения, так и средство связи.
Устройство 100 может также содержать устройство(а) 112 ввода, такое как клавиатура, мышь, ручка, устройство голосового ввода, устройство сенсорного ввода и т.п. Вычислительное устройство 100 также может включать в себя устройство(а) 111 вывода, такое как дисплей, экранный диктор, дисплей Брайля, экранная лупа, громкоговорители, принтер и т.п. Эти устройства хорошо известны и подробно здесь не описаны.
На Фиг.3 проиллюстрировано приложение 200 обеспечения доступности графического конвейера, работающее на вычислительном устройстве 100. В одном варианте осуществления приложение 200 обеспечения доступности графического конвейера включено в состав резидентской операционной системы, такой как MICROSOFT WINDOWS или Linux, в системной памяти 104. В еще одном варианте осуществления приложение 200 обеспечения доступности графического конвейера 200 является одной из прикладных программ, которая хранится в вычислительном устройстве 100. Альтернативно или дополнительно, одна или более частей приложения обеспечения доступности графического конвейера может представлять собой часть компьютеров и/или приложений 115. Специалистам в области компьютерного программного обеспечения будут очевидны другие такие вариации.
Приложение 200 обеспечения доступности графического конвейера включает в себя бизнес-логику 204, которая несет ответственность за выполнение части или всех описанных здесь способов. Бизнес-логика может включать в себя логику 206 для предоставления возможности чтения и/или обновления графического конвейера приложениями обеспечения доступности, логику 208 для обеспечения поддержки унаследованных примитивов содержимого, логику 210 для тегирования содержимого в конвейере посредством метки окна управления, логику 212 для обеспечения возможности построения внеэкранного содержимого как битовой карты, логику 214 для предоставления индикации о том, что одна или более вспомогательных технологий соединены с графическим конвейером, логику 216 для предоставления возможности одновременного и/или асинхронного доступа с конвейеру множеством клиентов, логику 218 для обеспечения возможности доступа к пользовательским элементам управления прорисовкой через графический конвейер, логику 220 для выполнения приложениями принудительной перерисовки при соединении нового клиента к графическому конвейеру, а также другую логику 222 для приведения в действие приложения 200 обеспечения доступности графического конвейера.
В одном варианте осуществления приложение 200 обеспечения доступности графического конвейера хранится на вычислительном устройстве 100. Очевидно, что бизнес-логика 204 приложения 200 графического конвейера может быть альтернативно или дополнительно реализована как выполняемые компьютером инструкции на одном или более компьютерах, и/или в других вариациях, которые показаны на Фиг.2 и 3. В качестве одного неограничивающего примера одна или более частей бизнес-логики 204 могут быть альтернативно или дополнительно реализованы как служба, которая хранится на внешнем компьютере и вызывается по необходимости.
На Фиг.4-7 со ссылкой на Фиг.1-3 более подробно описаны этапы для реализации одного или более вариантов осуществления приложения 200 обеспечения доступности графического конвейера. Следует понимать, что могут быть выполнены некоторые или все эти этапы, и они могут быть выполнены в порядке, отличном от порядка, который описан на Фиг.4-7. Фиг.4 представляет собой схему последовательности операций процесса высшего уровня одного варианта осуществления графического конвейера 200 обеспечения доступности. В одной форме процесс с Фиг.4, по меньшей мере, частично реализован в операционной логике вычислительного устройства 100, и он выполняется как часть бизнес-логики 204.
Процесс начинается на этапе 240, и приложение обеспечения доступности открывает соединение с графическим конвейером в пользовательском режиме (этап 242). В одном варианте осуществления, когда приложение обеспечения доступности соединяется, графический конвейер подает всем приложениям команду перерисовки (этап 244), чтобы они содержали в себе текущее содержимое. Графический конвейер предоставляет содержимое (этап 246), и приложение обеспечения доступности выполняет мониторинг конвейера на предмет наличия упомянутого содержимого (этап 248). Содержимое может включать в себя флаг статуса клиента, который указывает, соединена ли вспомогательная технология (этап 246), и/или содержимое может включать в себя внеэкранное содержимое, визуализированное в битовых картах (этап 246). Приложение обеспечения доступности строит модель, чтобы использовать, по меньшей мере, часть конвейера (этап 250). После завершения приложение обеспечения доступности закрывает соединение с графическим конвейером (этап 252). Этапы повторяются для каждого приложения обеспечения доступности (одного или более из приложений (22, 24 и/или 26)), которое выполняет доступ к графическому конвейеру, что может происходить одновременно и/или по отдельности (этап 254). Процесс завершается на этапе 256.
На Фиг.5 схема последовательности операций для одного варианта осуществления системы с Фиг.1 иллюстрирует этапы, выполняемые при осуществлении захватов экрана на графическом конвейере и при прорисовке захватов экрана на другой поверхности. В одной форме процесс с Фиг.5, по меньшей мере, частично реализован в операционной логике вычислительного устройства 100. Процесс начинается на этапе 260, и приложение обеспечения доступности открывает соединение с графическим конвейером в пользовательском режиме (этап 262). Приложение обеспечения доступности выполняет мониторинг графического конвейера, и выполняет захваты экрана на, по меньшей мере, части содержимого (этап 246). Тогда приложение обеспечения доступности прорисовывает, по меньшей мере, некоторые захваты экрана на другой поверхности, например, в файл или видеоизображение для визуальной помощи и/или тренинга (этап 266). После завершения приложение обеспечения доступности закрывает соединение с графическим конвейером (этап 268). Процесс завершается на этапе 269.
На Фиг.6 схема последовательности операций процесса для одного варианта осуществления системы с Фиг.1 иллюстрирует этапы, выполняемые при осуществлении доступа экранными дикторами или дисплеями Брайля к графическому конвейеру и при построении модели содержимого. В одной форме процесс с Фиг.6, по меньшей мере, частично реализован в операционной логике вычислительного устройства 100. Процесс начинается на этапе 270, и клиентское приложение экранного диктора или дисплея Брайля открывает соединение с графическим конвейером, например, в режиме "только чтение" (этап 272). Клиентское приложение экранного диктора или дисплея Брайля выполняет мониторинг графического конвейера на предмет наличия соответствующей информации (этап 274). Экранный диктор или дисплей Брайля строит внеэкранные модели, и использует эти модели, чтобы вывести речевой голос или тактильную обратную связь (этап 276). Клиентское приложение экранного диктора или дисплея Брайля закрывает соединение с графическим конвейером (этап 278). Процесс завершается на этапе 280.
На Фиг.7 схема последовательности операций процесса для одного варианта осуществления системы с Фиг.1 иллюстрирует этапы, выполняемые при доступе экранных луп к графическому конвейеру и при построении модели содержимого. В одной форме процесс с Фиг.7, по меньшей мере, частично реализован в операционной логике вычислительного устройства 100. Процесс начинается на этапе 300, и приложение увеличения открывает соединение с графическим конвейером, например, в режиме "только чтение и/или обновление" (этап 302). Приложение увеличения выполняет мониторинг графического конвейера на предмет наличия соответствующей информации (этап 304). При необходимости приложение увеличения удаляет клиентское окно с увеличенного содержимого (этап 306).
Альтернативно или дополнительно, приложение увеличения изменяет масштаб содержимого, которое приложение получает из графического конвейера, например масштаб примитивов и/или поверхностей (этап 308). При необходимости также выполняется фильтрация до формирования (этап 310). Приложение увеличения формирует визуальные элементы и визуализирует данные, масштаб которых был увеличен (этап 312). При необходимости приложение увеличения выполняет фильтрацию после формирования (этап 314). После завершения приложение увеличения закрывает соединение с графическим конвейером (этап 316). Процесс завершается на этапе 318.
Несмотря на то что сущность настоящего изобретения была описана в привязке к структурным особенностям и/или методологическим действиям, следует понимать, что сущность, определенная в прилагаемой формуле изобретения, не ограничена конкретными особенностями или действиями, описанными выше. Скорее описанные выше конкретные структурные особенности и действия раскрыты как примеры форм осуществления пунктов формулы изобретения. Желательно, чтобы были защищены все эквиваленты, изменения и модификации, которые входят в сущность вариантов осуществления, описанных здесь и/или определенных следующей формулой изобретения.
Например, специалистам в области компьютерного программного обеспечения будет очевидно, что описанные в вышеизложенных примерах структуры клиента и/или сервера, содержимое экрана интерфейса пользователя или форматы данных могут быть организованы на одном или более компьютерах иным образом, соответственно, включая в себя меньшее или большее количество опций или функций, чем было показано в упомянутых примерах.