RU2519034C2 - Двойная буферизация в режиме транзакции для визуализации графического интерфейса пользователя - Google Patents

Двойная буферизация в режиме транзакции для визуализации графического интерфейса пользователя Download PDF

Info

Publication number
RU2519034C2
RU2519034C2 RU2010152243/08A RU2010152243A RU2519034C2 RU 2519034 C2 RU2519034 C2 RU 2519034C2 RU 2010152243/08 A RU2010152243/08 A RU 2010152243/08A RU 2010152243 A RU2010152243 A RU 2010152243A RU 2519034 C2 RU2519034 C2 RU 2519034C2
Authority
RU
Russia
Prior art keywords
gui
computer
updates
requested action
transaction
Prior art date
Application number
RU2010152243/08A
Other languages
English (en)
Other versions
RU2010152243A (ru
Inventor
Игорь ЗАИКА
Эндрю ФОМИЧЕВ
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2010152243A publication Critical patent/RU2010152243A/ru
Application granted granted Critical
Publication of RU2519034C2 publication Critical patent/RU2519034C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/14Solving problems related to the presentation of information to be displayed
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/399Control of the bit-mapped memory using two or more bit-mapped memories, the operations of which are switched in time, e.g. ping-pong buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

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

Description

УРОВЕНЬ ТЕХНИКИ
Типичные графические программные приложения включают в себя пользовательский интерфейс (ПИ, UI) или графический интерфейс пользователя (ГИП, GUI). Примерами таких приложений являются те, которые исполняются внутри или вместе с операционной системой MICROSOFT WINDOWS® корпорации MICROSOFT CORPORATION. Более конкретно, примеры могут включать в себя программное обеспечение для автоматизации учрежденческой деятельности MICROSOFT OFFICE® от корпорации MICROSOFT CORPORATION, программное обеспечение для управления персональной информацией OUTLOOK® от корпорации MICROSOFT CORPORATION и программное обеспечение обработки текста MICROSOFT WORD® от корпорации MICROSOFT CORPORATION.
GUI графического программного приложения обычно составлен из многих элементов. Эти элементы могут включать в себя различные управляющие элементы, представления (виды), меню, панели инструментов, индикаторы или любое число других UI элементов. Тогда как полное пространство отображения данного приложения зачастую именуется "окно" приложения, различные элементы UI сами могут считаться "окнами" в рамках визуального отображения приложения. На уровне программной реализации эти различные UI элемент или "окна" могут именоваться указателями на окна или описатели (дескрипторы) окон. Чтобы отобразить все UI элементы приложения, все связанные окна в рамках отображения приложения индивидуально вычерчивают, визуализируют, или рисуют (выводят на экран). Обычно это делается согласно посылке сообщения "paint" (рисовать) или сигнала на каждое из окон или равным образом согласно вызову метода paint "оконного" объекта, связанного с каждым окном в пространстве отображения приложения.
Когда приложение запускается или выполняется операция, которая включает в себя перерисовку компонентных окон, пользователь может воспринимать частичную или неполную визуализацию приложения, поскольку каждое компонентное окно осуществляет перерисовку по внешнему виду в случайном порядке с различными задержками. Примером того, когда это может иметь место, является загрузка файла или ресурса по сети, занимающая неопределенное количество времени. Другие примеры относятся к начальному запуску приложения или к переключению представлений приложения в случае, когда предпринимается большое число повторных вычислений компонентов отображения.
По внешнему виду случайные задержки и упорядочение обновлений UI компонентов могут отвлекать или запутывать пользователя. Если встречается длительная задержка, например некоторая, связанная с загрузкой по сети, пользователь может оказаться перед частично вычерченным окном в течение длительного периода. Это может обусловить беспокойство пользователя, что произошел сбой. Такое беспокойство может быть образовано отсутствием наглядного, безопасного механизма для пользователя для преждевременного прекращения операции.
В отношении этих и других соображений представлено выполненное при этом раскрытие.
СУЩНОСТИ ИЗОБРЕТЕНИЯ
В документе описываются технологии для улучшения пользовательского восприятия во время визуализации (рендеринга), или перерисовки, графического интерфейса. В частности, описываются способы для установления связанных с пользовательским интерфейсом транзакций, во время которых визуализация графического интерфейса пользователя может осуществляться с двойной буферизацией. Длительные или задержанные обновления экрана могут выполняться вне экрана или на уровне временно невидимого экрана, пока не будут завершены. После завершения обновления могут сразу извлекаться на экран. Это может иметь результатом для пользовательского восприятия (интерфейса) улучшенную плавность и реактивность. Обновления графического экрана могут по-разному именоваться визуализацией, рисованием, перерисовкой, вычерчиванием или так дальше.
Согласно одному аспекту, представленному в документе, осуществляемые в режиме транзакции рисование, или перерисовка графического интерфейса пользователя может инициироваться в ответ на действие пользователя. Транзакция может устанавливаться, если конкретное действие пользователя может потребовать длительное или неопределенное количество времени. В течение транзакции визуализация пользовательского интерфейса может осуществляться с двойной буферизацией, пока требуемое действие не завершится. Завершение действия может быть привязано к обновлению состояния UI внутри приложения, подтверждающего, что завершились различные необходимые операции рисования экрана. После завершения запрошенного действия буферизованные двойным образом обновления экрана могут подаваться на экран дисплея синхронно ("в унисон"), чтобы показываться почти мгновенными пользователю. Такое завершение буферизации в режиме транзакции может происходить автоматически в ответ на завершение запрошенного действия.
Согласно другому аспекту, представленному в документе, двойная буферизация обновлений экрана может выполняться по многим GUI элементам, или окнам, связанным с приложением. Однокомпонентное окно, или UI элемент, может быть двойным образом буферизован в простой (один) буфер. Кроме того, множественные UI элементы могут быть буферизованы отдельно. Однако дополнительная эффективность и рабочая характеристика могут обеспечиваться двойной буферизацией множественных UI элементов, связанных с приложением, в общий двойной буфер для визуализации.
Согласно еще одному аспекту, представленному в документе, двойная буферизация может также поддерживаться путем рисования по отношению к установленному в полную прозрачность экранному слою. Либо одна единица, либо комбинация из внеэкранного буфера и прозрачного слоя могут использоваться, чтобы обеспечить двойную буферизацию отображения GUI.
Согласно еще одному аспекту, представленному в документе, может обеспечиваться обратная связь пользователю относительно хода выполнения или состояния запрошенного действия, которое начало транзакцию. Например, открытие документа по сети может потребовать длительного времени. В течение этого времени пользователю может обеспечиваться информация о ходе выполнения, пока визуализацию его открытого файла задерживает сетевая операция. Ход выполнения может быть отображен на экране-заставке, который может быть представлен, даже если фактическое отображение приложения в текущий момент двойным образом буферизуется вне экрана или на прозрачном слое. Экран-заставка может также включать в себя UI отмены, чтобы предоставить пользователю безопасный способ прервать операцию. Например, если пользователь не желает продолжать ожидать завершения или если пользователь понимает, что он сделал ошибку в инициировании транзакции. Экран-заставка, индикатор хода процесса, UI отмены, и связанные операции могут исполняться в отдельном потоке или другой параллельной операции, отдельной от осуществляемого в режиме транзакции самого действия. Такая потоковая обработка может поддерживать весьма быстрореагирующий экран-заставку, даже если режим транзакций действие остается в ходе выполнения.
Следует оценить, что вышеописанный объект изобретения также может быть реализован в виде управляемого компьютером устройства, вычислительного процесса, вычислительной системы или в виде изделия, такого как читаемый компьютером носитель. Эти и различные другие признаки будут очевидны из прочтения нижеследующего подробного описания и анализа связанных с ним чертежей.
Данное краткое описание приведено, чтобы в упрощенной форме представить подборку понятий, которые дополнительно описываются ниже в подробном описании. Это краткое описание не предназначается для идентификации основных признаков или существенных признаков заявленного объекта изобретения, и не подразумевается, что это краткое описание используется, чтобы ограничить объем заявленного объекта изобретения. Кроме того, заявленный объект изобретения не ограничивается реализациями, которые решают проблемы какого-либо или всех недостатков, отмеченных в любой части этого раскрытия.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 - функциональная блок-схема, иллюстрирующая механизмы для двойной буферизации графического интерфейса пользователя наряду с отображением экрана-заставки согласно аспектам варианта осуществления, представленного в документе;
Фиг.2 - логическая блок-схема, иллюстрирующая аспекты процессов для совершенствования визуализации графического интерфейса пользователя согласно аспектам варианта осуществления, представленного в документе;
Фиг.3 - логическая блок-схема, иллюстрирующая аспекты процессов для осуществляемой в режиме транзакции двойной буферизации в течение визуализации графического интерфейса пользователя согласно аспектам варианта осуществления, представленного в документе;
Фиг.4 - логическая блок-схема, иллюстрирующая аспекты процессов для поддержания экрана-заставки в графическом интерфейсе пользователя согласно аспектам варианта осуществления, представленного в документе; и
Фиг.5 - схема архитектуры вычислительной системы, показывающая иллюстративную архитектуру аппаратных средств и программного обеспечения компьютера для вычислительной системы, способной реализовать аспекты варианта осуществления, представленного в документе.
ПОДРОБНОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Нижеследующее подробное описание касается технологий, предназначенных для установления связанных с пользовательским интерфейсом транзакций, в течение которых визуализация графического интерфейса пользователя может осуществляться с двойной буферизацией. С помощью технологий и понятий, представленных в документе, длительные или задержанные обновления экрана могут выполняться вне экрана или на временно невидимом слое экрана, пока не будут завершены. После завершения обновления могут отображаться на видимом экране как одна операция. Это может давать в результате практику работы пользователя с улучшенной реактивностью и плавной согласованностью.
Хотя объект изобретения, описанный в документе, представлен в общем контексте программных модулей, которые исполняются вместе с исполнением операционной системы и прикладных программ на компьютерной системе, специалисты в данной области техники признают, что могут выполняться другие реализации в комбинации с другими типами программных модулей. Обычно, программные модули включают в себя процедуры, программы, компоненты, структуры данных и другие типы структур, которые выполняют конкретные задачи или реализуют особые абстрактные типы данных. Кроме того, специалисты в данной области техники оценят, что объект изобретения, описанный в документе, может быть осуществлен на практике с другими конфигурациями вычислительной системы, включая переносные устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронику, мини-компьютеры, большие ЭВМ и подобное.
В нижеследующем подробном описании делаются ссылки на сопроводительные чертежи, которые составляют его часть и показывают в качестве иллюстрации конкретные варианты осуществления или примеры. Теперь с обращением на чертежи, на которых одинаковые числовые ссылочные позиции представляют одинаковые элементы по нескольким чертежам, будут описаны аспекты вычислительной системы и методики для установления связанных с пользовательским интерфейсом транзакций, в течение которых визуализация графического интерфейса пользователя может осуществляться с двойной буферизацией.
Обращаясь теперь к Фиг.1, на функциональной блок-схеме иллюстрируется система 100 для двойной буферизации графического интерфейса пользователя наряду с отображением экрана-заставки 160 согласно аспектам варианта осуществления, представленного в документе. В частности, графический интерфейс пользователя, связанный с приложением 110, может быть представлен на дисплее 190 компьютера. Когда инициированное пользователем действие может содержать длительную задержку или неопределенное количество времени, то могут вноситься задержки между перерисовкой частей пользовательского интерфейса. Это может предоставлять пользовательскому восприятию затянувшиеся частичные отображения, скачкообразную визуализацию или несогласованные отображения. Длительные задержки могут вноситься при загрузке приложения, при загрузке ресурса по сети, когда изменение представления требует повторного вычисления элементов отображения, или при нескольких других таких условиях.
Двойная буферизация в режиме транзакции может поддерживать более сглаженный графический интерфейс пользователя. Внеэкранный буфер 130 визуализации может быть снабжен менеджером (управляющей программой) 120 двойной буферизации. Различные компонентные окна, представляющие управляющие элементы, меню, панели инструментов, окна и другие пользовательские компоненты интерфейса, связанные с приложением 110, могут быть рисованы, или обновлены, в буфере 130 визуализации с тем, чтобы потенциально ступенчатые, неполные или скачкообразные обновления отображения не были видимы пользователю. Как только обновления UI завершены, буфер 130 визуализации можно "проталкивать" в дисплей 190 компьютера в виде одной операции. Такое выполнение может позволять, чтобы обновления экрана имели вид почти мгновенных. Обновление может обрабатываться менеджером 120 двойного буфера. Менеджер 120 двойного буфера может подавать обновления в буфере 130 визуализации на дисплей 190 по запросу. Менеджер 130 двойной буферизации может быть частью прикладного программного обеспечения 110 или может поддерживаться операционной системой, графической подсистемой, или менеджером экрана.
Другой механизм для двойной буферизации может использовать прозрачное многослойное окно 140. Когда компонент приложения не может быть модифицирован, чтобы визуализировать обновления по отношению к внеэкранному буферу 130 визуализации, может использоваться подход с прозрачным многослойным окном 140. Компонент приложения может предотвращать модификацию, если не имеется в наличии исходного кода, когда он является внешне поставленной библиотекой или компонентом, таким как управляющий элемент ACTIVEX©, или когда интересы времени, бюджета или передачи права препятствуют модификации кода.
Компонент GUI может быть снабжен прозрачным многослойным окном 140, на котором он может "рисовать" свои графические обновления. Многослойное окно может использовать графический слой, настроенный в полную прозрачность так, что потенциально ступенчатые, скачкообразные или задержанные обновления экрана невидимы пользователю. Когда обновления экрана завершены и было обновлено состояние UI, прозрачность может быть изменена в полную непрозрачность. Многослойное окно 140 таким образом можно сделать видимым пользователю в одной операции с тем, чтобы сделать появление обновлений почти мгновенным.
Могут использоваться либо внеэкранный буфер 130 визуализации, прозрачное многослойное окно 140, либо вместе, чтобы обеспечить двойную буферизацию GUI, связанного с прикладным программным обеспечением 110. Как только обновления завершены, биты отображения, хранимые менеджером 120 двойной буферизации, или связанные с буфером 130 визуализации, можно поместить в многослойное окно 140. Затем прозрачность может быть установлена в полностью непрозрачную, и различные обновления UI могут стать видимыми пользователю синхронно, в виде одной операции.
Связанные с пользовательским интерфейсом транзакции могут использоваться, чтобы управлять множеством обновлений UI, которые могут быть собраны вместе для двойной буферизации. Множество обновлений UI в рамках данной транзакции обычно связано с конкретным действием пользователя, которое может вносить задержки, таким как начальное открытие приложения, загрузка файла по сети, изменение представлений UI в рамках приложения, или другие такие операции. В течение транзакции визуализация пользовательского интерфейса может осуществляться с двойной буферизацией, пока не будет завершено запрошенное действие.
Если может последовать длительное или неизвестное время транзакции, пользователю может быть представлен экран-заставка 160. Поскольку GUI может быть обновляющимся по отношению к механизму двойной буферизации, такому как внеэкранный буфер 130 визуализации или прозрачное многослойное окно 140, пользователь может остаться без обновлений экрана, если это не предназначено для представления экрана-заставки 160. Экран-заставка 160 может поддерживаться посредством потока 150 экрана-заставки. Поток 150 экрана-заставки может быть частью прикладного программного обеспечения 110. Поток 150 экрана-заставки может выполниться как отдельный поток, процесс, или другой параллелизованный механизм, отдельный от компонентов прикладного программного обеспечения 110, относящихся к осуществляемому в режиме транзакции действию пользователя. Выделение операций, относящихся к экрану-заставке 160, в поток 150 экрана-заставки может давать возможность, что экран-заставка 160 обновляется и обрабатывается быстрореагирующим и интерактивным образом, даже если осуществляемая в режиме транзакции операция находится в процессе выполнения, и потенциально задерживается.
Экран-заставка 160, как поддерживается потоком 150 экрана-заставки, может обеспечивать пользователю один или несколько индикаторов хода процесса. Индикаторы хода процесса могут предоставлять пользователю информацию о выполняемых действиях и примерно насколько длительными могут быть связанные с ними задержки. Примером индикатора хода процесса является индикатор 170 выполнения, который может показывать процентное соотношение хода выполнения для выполняемого действия.
Экран-заставка 160, как поддерживается потоком 150 экрана-заставки, может обеспечивать пользователю UI отмены. Например, кнопка 180 отмены может быть расположена на экране-заставке 160. Такой механизм отмены может предоставить пользователю безопасный способ прервать осуществляемую в режиме транзакции операцию. Например, пользователь может не желать продолжать ожидание завершения запрошенного действия. Подобным образом пользователь может понять, что инициирование транзакции было сделано с ошибкой. В ситуациях, таких как эти, пользователь может оперировать UI отмены, обеспеченным на экране-заставке 160.
Теперь с обращением на Фиг.2 будут представлены дополнительные подробности относительно представленных в документе вариантов осуществления для двойной буферизации графического интерфейса пользователя при обеспечении при этом отображения экрана-заставки согласно аспектам варианта осуществления, представленного в документе. В частности, на Фиг.2 показана блок-схема, иллюстрирующая аспекты процедуры 200 для улучшения визуализации графического интерфейса пользователя.
Следует оценить, что логические операции, описанные в документе могут быть реализованы (1), в виде последовательности реализуемых компьютером действий или программных модулей, исполняющихся в вычислительной системе, и/или (2) в виде взаимосвязанных схем машинной логики или схемных модулей в рамках вычислительной системы. Реализация является вопросом выбора, зависящим от рабочей характеристики и других требований к вычислительной системе. Соответственно, логические операции, описанные в документе, именуются различно операциями над состояниями, структурными устройствами, действиями или модулями. Эти операции, структурные устройства, действия и модули могут быть реализованы в виде программного обеспечения, микропрограммного обеспечения, в виде специализированной цифровой логики и любой комбинации таковых. Также следует оценить, что может выполняться больше или меньше операций, чем показано на чертежах и описано в документе. Эти операции также могут выполняться последовательно, параллельно или в очередности, отличной от описанной в документе.
Процедура 200 начинается в операции 210, где может быть выявлено запрошенное пользователем действие. Операция 220 принятия решения может определять для осуществления транзакции запрошенное действие. Обычно, действие может осуществляться в режиме транзакции, если оно может внести длительную задержку или неизвестную задержку. Например, запуск приложения может осуществляться в режиме транзакции, особенно когда документ открывается в течение запуска приложения. Действия, которые загружают по сети файлы или ресурсы доступа, а также действия, касающиеся изменения представления приложения, являются дополнительными примерами действий, которые могут осуществляться в режиме транзакции. Хотя действие, которое может быть завершено очень быстро, не должно обязательно осуществляться в режиме транзакции, такое действие может быть осуществлено в режиме транзакции без существенного влияния.
Если в операции 220 определяется, что действие не должно осуществляться в режиме транзакции, процедура 200 может продолжаться на операции 230, где запрошенное действие может быть выполнено без двойным образом буферизованного GUI в режиме транзакции. Однако если в операции 220 определяется, что действие должно осуществляться в режиме транзакции, то процедура 200 может продолжаться, чтобы начать две операции параллельно. Эти две операции могут быть представлены как процедура 300 для выполнения запрошенного действия с поддерживаемым транзакцией, двойным образом буферизованным GUI, а также процедура 400, где может быть запущен поток экрана-заставки. Дополнительные подробности, относящиеся к процедуре 300 и процедуре 400, представлены ниже по отношению к Фиг.3 и Фиг.4.
Процедура 300 может поставлять сигнал хода выполнения на процедуру 400 для обновления индикаторов состояния, связанных с экраном-заставкой 160, таких как индикатор 170 выполнения. Кроме того, процедура 300 может поставлять сигнал завершения на процедуру 400 для уведомления о завершении транзакции, связанной с запрошенным действием. Процедура 200 может завершиться после возврата из процедуры 300 или после операции 230 в зависимости от ветви, выбранной процедурой 200.
Теперь с обращением на Фиг.3 будут приведены дополнительные подробности относительно представленных в документе вариантов осуществления для двойной буферизации графического интерфейса пользователя, обеспечивающего при этом отображение экрана-заставки согласно аспектам варианта осуществления, представленного в документе. В частности, на Фиг.3 показана блок-схема, иллюстрирующая аспекты процесса 300 для двойной буферизации в режиме транзакции в течение визуализации графического интерфейса пользователя.
Процедура 300 начинается в операции 310, где может инициироваться транзакция. Относящиеся к пользовательскому интерфейсу транзакции могут использоваться, чтобы управлять множеством обновлений UI, которые могут быть собраны вместе в ходе двойной буферизации. Инициация транзакции может отметить начало множества обновлений UI, подлежащих двойной буферизации.
В операции 315 может обеспечиваться буфер 130 визуализации. Обычно, буфер 130 визуализации обеспечивается в виде внеэкранного буфера для вычерчивания обновлений UI в нем, не делая их видимыми. Буфер 130 визуализации может обеспечиваться менеджером 120 двойной буферизации. В операции 320 может обеспечиваться прозрачное многослойное окно 140. Прозрачное многослойное окно 140 также может обеспечиваться менеджером 120 двойной буферизации. Прозрачное многослойное окно 140 подобно внеэкранному буферу 130 визуализации, поскольку в нем можно вычерчивать невидимо для пользователя. Однако прозрачное многослойное окно 140 может фактически находиться в пространстве отображения его прозрачности, установленной в значение "полная", чтобы быть невидимым.
В операции 322 могут идентифицироваться окна в качестве связанных с запрошенным действием. Различные окна могут соответствовать компонентам GUI, используемого прикладным программным обеспечением 110, в то время как выполняется запрошенное действие. Эти окна компонентов GUI могут включать в себя управляющие элементы, меню, представления, панели инструментов или любые другие окна, составляющие GUI.
В операции 325 может поддерживаться рисование в буфер 130 визуализации, пока выполняется запрошенное действие. В частности, рисование согласно окнам, идентифицированным в операции 322, может использовать буфер 130 визуализации. В течение транзакции с двойной буферизацией, обновления UI, относящиеся к выполняемой операции (например, начальная загрузка приложения, изменение представлений, доступ к файлу, доступ к сетевому ресурсу и так далее), могут рисоваться в буфер 130 визуализации вне экрана с тем, чтобы они не были видимыми пользователю. Множественные компоненты UI, или окна, могут быть двойным образом буферизованными посредством общего буфера 130 визуализации.
В операции 330, рисование в прозрачное многослойное окно 140 может поддерживаться, как надлежит. Обновления UI двойного буфера по отношению к прозрачному многослойному окну 140 могут быть надлежащими, когда код UI не может быть модифицирован для визуализации обновлений для внеэкранного буфера 130 визуализации. Компонент приложения, или окно, как идентифицировано в операции 322, может предотвращать модификацию, если не имеется в наличии исходного кода, когда он является внешне поставляемой библиотекой или компонентом, таким как управляющий элемент ACTIVEX®, или когда возможно интересы времени, бюджета или передачи права препятствуют модификации кода. Вместо использования внеэкранного буфера 130 визуализации, UI может выполнять свои обновления для прозрачного многослойного окна 140, которое сконфигурировано, чтобы было полностью прозрачным.
В операции 335 информация о ходе выполнения может поставляться на поток 400 экрана-заставки. Такая информация о ходе выполнения может поддерживать на экране-заставке 160 отображение индикаторов хода процесса, таких как индикатор 170 выполнения. Эти индикаторы состояния могут предоставлять пользователю информацию относительно состояния транзакции, пока она находится в процессе выполнения.
В операции 340, может быть выявлено завершение запрошенного действия. Например, если файл открывается, может быть выявлено завершение открытия файла. Такое выявление может, отчасти, обеспечить поддержку автоматически завершаемой транзакции. В операции 345, может быть выявлен покой (отсутствие входных сигналов) для состояния пользовательского интерфейса. Выявление, что обновления UI были завершены, может обеспечить поддержку привязки завершения поддерживаемого транзакцией действия к обновлению состояния UI в рамках приложения 110. Автоматическое прекращение транзакции может поддерживаться, отчасти, путем определения завершения различных необходимых событий перерисовки, таких как визуализируемого текста, включаемых кнопок, отключаемых кнопок и т.д.
В операции 350, окончание транзакции может сигнализироваться на поток 400 экрана-заставки. Уведомление потока 400 экрана-заставки, что транзакция была выполнена и теперь завершается, может обеспечить поддержку автоматического завершения потока 400 экрана-заставки и может прекратить отображение экрана-заставки 160.
В операции 355, обновления, которые были выполнены в буфере визуализации 130 в течение транзакции, могут быть поданы на дисплей 190 компьютера. Это может поддерживать менеджер 120 двойной буферизации. В случаях, когда прозрачное многослойное окно 140 также было использовано, подача битов буфера 130 визуализации может включать в себя извлечение обновлений из буфера 130 визуализированного в прозрачное многослойное окно 140.
В операции 360, прозрачное многослойное окно 140 может быть переведено в являющееся полностью непрозрачным. Таким образом, прозрачность многослойного окна может быть выключена. В этой одной операции накопленные обновления UI, связанные с транзакцией, могут делаться видимыми пользователю почти мгновенно. Таким образом, может поддерживаться сглаживающее, менее запутывающее представление пользовательского интерфейса. Процедура 300 может возвратиться на процедуру 200 после операции 360.
Теперь с обращением на Фиг. 4, будут приведены дополнительные подробности относительно вариантов осуществления, представленных в документе для двойной буферизации графического интерфейса пользователя, обеспечивающего при этом отображение экрана-заставки согласно аспектам варианта осуществления, представленного в документе. В частности, на Фиг.4 показана блок-схема, иллюстрирующая аспекты процесса 400 для поддержки экрана-заставки в графическом интерфейсе пользователя.
Процедура 400 начинается в операции 410, где можно создать экземпляр потока 150 экрана-заставки. В операции 420, поток 150 экрана-заставки может поддерживать отображение экрана-заставки 160, пока происходит осуществляемое в режиме транзакции действие пользователя. Поток 150 экрана-заставки может быть частью прикладного программного обеспечения 110, но исполняться в виде отдельного потока, процесса или другого параллелизованного механизма из модулей прикладного программного обеспечения 110, связанных с осуществляемым в режиме транзакции действием пользователя. Такое выделение в поток 150 экрана-заставки операций, относящихся к экрану-заставке 160, может давать возможность, чтобы экран-заставка 160 обновлялся и обрабатывался реагирующим и интерактивным образом, даже если осуществляемая в режиме транзакции операция находится в процессе выполнения и потенциально задержана.
В операции 430, экран-заставка 160, как поддерживается потоком 150 экрана-заставки, может предоставлять пользователю один или несколько индикаторов хода процесса. Индикаторы хода процесса могут предоставить пользователю информацию о выполняемых действиях и примерной продолжительности, какие могут иметь связанные задержки. Примером индикатора хода процесса является индикатор 170 выполнения, который может показать процентное отношение хода выполнения, связанного с выполняемым действием.
В операции 440 экран-заставка 160, как поддерживается потоком 150 экрана-заставки, может предоставить пользователю UI отмены. Например, на экране-заставке 160 может быть расположена кнопка 180 отмены. Такой механизм отмены может предоставить пользователю безопасный способ прервать осуществляемую в режиме транзакции операцию. Например, пользователь может не желать продолжать ожидание завершения запрошенного действия. Подобным образом пользователь может понять, что инициация транзакции была выполнена с ошибкой. В ситуациях, таких как эти, пользователь может оперировать UI отмены, обеспеченным на экране-заставке 160. Пользовательское действие (интерфейсом) UI отмены может быть выявлено согласно операции 450. Если отмена выявлена, ее можно сигнализировать на приложение согласно операции 460. Сигнализация пользовательского запроса отмены на приложение может обеспечить поддержку корректного прекращения приложением запрошенного действия. После операции 460 может быть завершен поток 150 экрана-заставки и может быть прекращено отображение экрана-заставки 160.
Пока нет запрошенной отмены, операция 470 может принять сигнал завершения от процедуры 300. Если действие в режиме транзакции, поддерживаемое процедурой 300, было завершено, процедура 400 может быть уведомлена, как обсуждено относительно операции 350, как проиллюстрировано на Фиг.3. Выявление этого уведомления в операции 470 может обеспечить поддержку завершения потока 150 экрана-заставки и связанного закрытия экрана-заставки 160.
Хотя нет сигнала завершения, выявленного в операции 470, операция 480 может принять от процедуры 300 сигнал хода выполнения, как обсуждено относительно операции 335, проиллюстрированной на Фиг.3. В операции 490, информация о ходе выполнения, сигнализированная на процедуру 400 в операции 480, может использоваться для обновления индикаторов хода процесса на экране-заставке 160, как предусмотрено в операции 430. После операции 490, процедура 400 может осуществить возврат на операцию 450 и продолжаться, как обсуждено выше, пока транзакция не будет отменена или завершена.
Обращаясь теперь на Фиг.5, иллюстративная архитектура вычислительной системы может исполнять описанные в документе программные компоненты для двойной буферизации графического интерфейса пользователя, обеспечивающего при этом отображение экрана-заставки. Архитектура вычислительной системы, показанная на Фиг.5, иллюстрирует традиционный настольный компьютер, переносной компьютер или компьютер сервера и может использоваться для исполнения любых аспектов для программных компонентов, представленных в документе. Однако следует оценить, что описанные программные компоненты могут также выполняться в других примерных вычислительных средах, таких как мобильные устройства, телевизионные приемники, телевизионные абонентские приставки, киоски, мобильные информационные системы, мобильные телефоны, встроенные системы, или иных.
Архитектура вычислительной системы, проиллюстрированная на Фиг.5, может включать в себя центральный процессор 10 (ЦП, CPU), системную память 13, включающую в себя оперативное запоминающее устройство 14 (ОЗУ, RAM) и постоянное запоминающее устройство 16 (ПЗУ, ROM), и системную шину 11, которая может связывать системную память 13 с ЦП 10. Базовая система ввода-вывода, содержащая основные программы, которые помогают передавать информацию между компонентами внутри компьютера 5, например, в течение запуска, может храниться в ПЗУ 16. Компьютер 5 может дополнительно включать в себя запоминающее устройство 15 большой емкости для хранения операционной системы 18, программного обеспечения, данных и различных программных модулей, например, связанных с прикладным программным обеспечением 110. Прикладное программное обеспечение 110 может исполнять программные компоненты, описанные в документе.
Запоминающее устройство 15 большой емкости может быть соединено с ЦП 10 через контроллер запоминающего устройства большой емкости (не иллюстрируется), соединенный с шиной 11. Запоминающее устройство большой емкости и связанные с ним читаемые компьютером носители могут обеспечивать для компьютера 5 энергонезависимое ЗУ. Хотя описание читаемых компьютером носителей, содержащееся в документе, относится к ЗУ большой емкости, такому как накопитель на жестком диске или на компакт-дисках, специалисты в данной области техники должно оценить, что читаемые компьютером носители могут быть любыми имеющимися носителями компьютера, к которым может осуществлять доступ компьютер 5.
В качестве примера, а не ограничения, читаемые компьютером носители могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как читаемые компьютером инструкции, структуры данных, программные модули или другие данные. Например, читаемые компьютером носители включают, но не ограничиваются указанным, ОЗУ, ПЗУ, стираемое программируемое ПЗУ (СППЗУ, EPROM), электрически стираемое программируемое ПЗУ (ЭСППЗУ, EEPROM), флэш-память или другую технологию твердотельной памяти, ПЗУ на компакт-диске (CD-ROM), цифровые многофункциональные диски (DVD), диски HD DVD (высокой плотности), диски технологии BLU-RAY, или другое оптическое ЗУ, ЗУ на магнитных кассетах, магнитной ленте, магнитном диске или другие магнитные ЗУ, или любой другой носитель, который может использоваться, чтобы хранить требуемую информацию и к которому может осуществляться доступ посредством компьютера 5.
Согласно различным вариантам осуществления компьютер 5 может работать в сетевой среде, используя логические соединения с удаленным компьютером через сеть, такую как сеть 17. Компьютер 5 может соединяться с сетью 17 через блок 19 сетевого интерфейса, соединенный с шиной 11. Следует оценить, что блок 19 сетевого интерфейса также может использоваться, чтобы соединять с другими типами сетей и удаленными вычислительными системами. Компьютер 5 может также включать в себя контроллер 12 ввода/вывода для приема и обработки вводимых данных от многих других устройств, включая клавиатуру, мышь или электронное перо (не иллюстрируется). Подобным образом контроллер 12 ввода/вывода может обеспечивать вывод на дисплей 190 компьютера, принтер или другой тип устройства вывода (также не иллюстрируется). Дисплей 190 компьютера альтернативно может быть соединен с шиной 11 посредством графического адаптера или графического процессора (также не иллюстрируется).
Как кратко упомянуто выше, ряд программных модулей и файлов данных могут храниться в ЗУ 15 большой емкости и ОЗУ 14 компьютера 5, включая операционную систему 18, подходящую для управления работой сетевого настольного компьютера, переносного компьютера, компьютера сервера, или другой вычислительной среды. Запоминающее устройство 15 большой емкости, ПЗУ 16 и ОЗУ 14 также могут хранить один или несколько программных модулей. В частности, запоминающее устройство 15 большой емкости, ПЗУ 16 и ОЗУ 14 могут хранить прикладное программное обеспечение 110 для исполнения посредством ЦП 10. Прикладное программное обеспечение 110 может включать в себя программные компоненты для реализации процессов, обсужденных подробно относительно Фиг. 1-4. Запоминающее устройство 15 большой емкости, ПЗУ 16 и ОЗУ 14 также могут хранить другие типы программных модулей.
На основании вышеизложенного следует оценить, что в документе представлены технологии для двойной буферизации в режиме транзакции графического интерфейса пользователя, обеспечивающего при этом отображение экрана-заставки. Хотя представленный в документе объект изобретения был описан на языке, специфическом для структурных признаков, методических действий и читаемых компьютером носителей компьютера, следует понимать, что изобретение, определенное в прилагаемой формуле изобретения, не является обязательно ограниченным конкретными признаками, действиями или носителями, описанными в документе. Предпочтительнее конкретные признаки, действия и носители раскрыты в виде примерных форм для реализации пунктов формулы изобретения.
Описанный выше объект изобретения представлен только в качестве иллюстрации и не должен рассматриваться ограничительным. Могут выполняться различные модификации и изменения по отношению к объекту изобретения, описанному в документе, не следуя проиллюстрированным и описанным примерным вариантам осуществления и приложениям, и без выхода за рамки истинного существа и объема настоящего изобретения, которое изложено в нижеследующей формуле изобретения.

Claims (14)

1. Реализуемый компьютером способ обновления графического интерфейса пользователя (GUI), содержащий этапы, на которых:
посредством процессора компьютера обнаруживают запрошенное действие, которое приведет в результате к перерисовке по меньшей мере одной части GUI;
посредством процессора компьютера определяют, что запрошенным действием вносится задержка в перерисовку этой по меньшей мере одной части GUI;
посредством процессора компьютера выполняют транзакцию запрошенного действия в ответ на определение того, что запрошенное действие может вносить задержку, посредством инициирования, параллельным образом, средства управления двойной буферизацией, которое визуализирует обновления GUI, связанные с транзакцией, и делает визуализируемые обновления GUI невидимыми, и потока экрана-заставки, которым отображается экран-заставка, включающий в себя индикатор состояния, связанный с запрошенным действием, на дисплее компьютера; и
посредством процессора компьютера подают визуализируемые обновления GUI на дисплей компьютера по завершении транзакции запрошенного действия.
2. Способ по п.1, в котором при визуализации обновлений GUI и делании визуализируемых обновлений GUI невидимыми отрисовывают визуализируемые обновления GUI во внеэкранный буфер визуализации.
3. Способ по п.1, в котором при визуализации обновлений GUI и делании визуализируемых обновлений GUI невидимыми отрисовывают визуализируемые обновления GUI в прозрачное многослойное окно, которое является невидимым.
4. Способ по п.3, в котором при подаче посредством процессора компьютера визуализируемых обновлений GUI на дисплей компьютера делают прозрачное многослойное окно видимым.
5. Способ по п.1, дополнительно содержащий этап, на котором посредством процессора компьютера отображают опцию отмены на экране-заставке во время транзакции запрошенного действия, причем выбор опции отмены предписывает процессору компьютера завершить транзакцию запрошенного действия.
6. Способ по п.1, дополнительно содержащий этап, на котором посредством процессора компьютера выдают сигнал хода выполнения в поток экрана-заставки, который обновляет индикатор состояния на основе хода процесса визуализации обновлений GUI средством управления двойной буферизацией.
7. Компьютерный носитель данных, на котором сохранены машиноисполняемые команды, которые при их исполнении компьютером предписывают компьютеру:
обнаруживать запрошенное действие, которое приведет в результате к перерисовке по меньшей мере одной части графического интерфейса пользователя (GUI);
определять, что запрошенным действием вносится задержка в перерисовку этой по меньшей мере одной части GUI;
выполнять транзакцию запрошенного действия в ответ на определение того, что запрошенное действие может вносить задержку, посредством инициирования, параллельным образом, средства управления двойной буферизацией, которое визуализирует обновления GUI, связанные с транзакцией, и делает визуализируемые обновления GUI невидимыми, и потока экрана-заставки, которым отображается экран-заставка, включающий в себя индикатор состояния, связанный с запрошенным действием, на дисплее компьютера; и
подавать визуализируемые обновления GUI на дисплей компьютера по завершении транзакции запрошенного действия.
8. Компьютерный носитель данных по п.7, в котором при визуализации обновлений GUI и делании визуализируемых обновлений GUI невидимыми визуализируемые обновления GUI отрисовываются во внеэкранный буфер визуализации.
9. Компьютерный носитель данных по п.7, в котором при визуализации обновлений GUI и делании визуализируемых обновлений GUI невидимыми визуализируемые обновления GUI отрисовываются в прозрачное многослойное окно, которое является невидимым.
10. Компьютерный носитель данных по п.9, в котором при подаче посредством процессора компьютера визуализируемых обновлений GUI на дисплей компьютера прозрачное многослойное окно делается видимым.
11. Компьютерный носитель данных по п.7, дополнительно содержащий машиноисполняемые команды, которые при их исполнении компьютером предписывают компьютеру отображать опцию отмены во время транзакции запрошенного действия.
12. Компьютерный носитель данных по п.11, в котором при отображении опции отмены опция отмены отображается на экране-заставке, причем выбор опции отмены предписывает компьютеру завершить транзакцию запрошенного действия.
13. Компьютерный носитель данных по п.7, дополнительно содержащий машиноисполняемые команды, которые при их исполнении компьютером предписывают компьютеру выдавать сигнал хода выполнения в поток экрана-заставки, который обновляет индикатор состояния на основе хода процесса визуализации обновлений GUI средством управления двойной буферизацией.
14. Устройство для обновления графического интерфейса пользователя (GUI), содержащее процессор и компьютерный машиночитаемый носитель, на котором сохранены машиноисполняемые команды, которые при их исполнении процессором предписывают устройству:
обнаруживать запрошенное действие, которое приведет в результате к перерисовке по меньшей мере одной части GUI;
определять, что запрошенным действием вносится одно из продолжительной задержки и неизвестной задержки в перерисовку этой по меньшей мере одной части GUI;
выполнять транзакцию запрошенного действия на основе определения того, что это действие может вносить одно из продолжительной задержки и неизвестной задержки, при этом выполнение транзакции содержит параллельную работу средства управления двойной буферизацией, которое визуализирует обновления GUI, связанные с транзакцией, и делает визуализируемые обновления GUI невидимыми путем отрисовки обновлений GUI в одно или оба из внеэкранного буфера визуализации и прозрачного многослойного окна, которое невидимо, и потока экрана-заставки, которым отображается экран-заставка, включающий в себя индикатор состояния, связанный с запрошенным действием, на дисплее компьютера;
отображать опцию отмены на экране-заставке во время транзакции запрошенного действия, причем выбор опции отмены предписывает устройству завершить транзакцию запрошенного действия;
выдавать сигнал хода выполнения в поток экрана-заставки, который обновляет индикатор состояния на основе хода процесса визуализации обновлений GUI средством управления двойной буферизацией;
выдавать сигнал завершения в поток экрана-заставки, который обеспечивает уведомление о завершении транзакции запрошенного действия;
завершать транзакцию запрошенного действия в ответ на выдачу сигнала завершения в поток экрана-заставки; и
подавать визуализируемые обновления GUI на компьютерный дисплей в ответ на выдачу сигнала завершения в поток экрана-заставки.
RU2010152243/08A 2008-06-21 2009-05-15 Двойная буферизация в режиме транзакции для визуализации графического интерфейса пользователя RU2519034C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/143,760 US20090319933A1 (en) 2008-06-21 2008-06-21 Transacted double buffering for graphical user interface rendering
US12/143,760 2008-06-21
PCT/US2009/044064 WO2009154910A2 (en) 2008-06-21 2009-05-15 Transacted double buffering for graphical user interface rendering

Publications (2)

Publication Number Publication Date
RU2010152243A RU2010152243A (ru) 2012-06-27
RU2519034C2 true RU2519034C2 (ru) 2014-06-10

Family

ID=41432571

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010152243/08A RU2519034C2 (ru) 2008-06-21 2009-05-15 Двойная буферизация в режиме транзакции для визуализации графического интерфейса пользователя

Country Status (10)

Country Link
US (1) US20090319933A1 (ru)
EP (1) EP2304539A4 (ru)
JP (1) JP5384626B2 (ru)
KR (1) KR20110028284A (ru)
CN (1) CN102084329B (ru)
AU (1) AU2009260598B2 (ru)
BR (1) BRPI0913208A2 (ru)
CA (1) CA2724202A1 (ru)
RU (1) RU2519034C2 (ru)
WO (1) WO2009154910A2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2746584C2 (ru) * 2018-12-29 2021-04-16 Эдванст Нью Текнолоджиз Ко., Лтд. Модуль визуального просмотра цепочки блоков

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7606819B2 (en) 2001-10-15 2009-10-20 Maya-Systems Inc. Multi-dimensional locating system and method
US20080058106A1 (en) 2002-10-07 2008-03-06 Maya-Systems Inc. Multi-dimensional locating game system and method
CA2601154C (en) 2007-07-07 2016-09-13 Mathieu Audet Method and system for distinguising elements of information along a plurality of axes on a basis of a commonality
US8601392B2 (en) 2007-08-22 2013-12-03 9224-5489 Quebec Inc. Timeline for presenting information
CA2657835C (en) 2008-03-07 2017-09-19 Mathieu Audet Documents discrimination system and method thereof
US8607155B2 (en) 2008-09-12 2013-12-10 9224-5489 Quebec Inc. Method of managing groups of arrays of documents
JP5523752B2 (ja) * 2009-07-08 2014-06-18 京セラ株式会社 表示制御装置
US20110167364A1 (en) * 2010-01-05 2011-07-07 Nokia Corporation Methods and apparatuses for improving application startup
US9058093B2 (en) 2011-02-01 2015-06-16 9224-5489 Quebec Inc. Active element
US8902248B1 (en) 2011-07-14 2014-12-02 Vmware, Inc. Method and system for measuring display performance of a remote application
US10289657B2 (en) 2011-09-25 2019-05-14 9224-5489 Quebec Inc. Method of retrieving information elements on an undisplayed portion of an axis of information elements
US9823917B2 (en) * 2011-10-20 2017-11-21 Facebook, Inc. Update application user interfaces on client devices
US9606813B2 (en) * 2012-03-30 2017-03-28 Canon Kabushiki Kaisha Information processing apparatus, application activation method, and program
US20130321467A1 (en) * 2012-06-01 2013-12-05 Microsoft Corporation Using snapshots to represent slow applications
US8990818B2 (en) 2012-06-01 2015-03-24 Microsoft Technology Licensing, Llc Multiple top level user interface displays
US9519693B2 (en) 2012-06-11 2016-12-13 9224-5489 Quebec Inc. Method and apparatus for displaying data element axes
US9646080B2 (en) 2012-06-12 2017-05-09 9224-5489 Quebec Inc. Multi-functions axis-based interface
KR101990037B1 (ko) * 2012-11-13 2019-06-18 엘지전자 주식회사 이동 단말기 및 그것의 제어 방법
CN103914189B (zh) * 2012-12-30 2017-03-15 比亚迪股份有限公司 一种互电容检测电路
CN103544059B (zh) * 2013-07-16 2017-08-08 Tcl集团股份有限公司 一种应用切换时等待缓冲效果的实现方法及系统
US9674265B2 (en) * 2013-11-04 2017-06-06 Vmware, Inc. Filtering unnecessary display updates for a networked client
US9674518B2 (en) 2013-12-20 2017-06-06 Vmware, Inc. Measuring remote video display with embedded pixels
US9699247B2 (en) 2014-06-17 2017-07-04 Vmware, Inc. User experience monitoring for application remoting
US10867584B2 (en) * 2014-06-27 2020-12-15 Microsoft Technology Licensing, Llc Smart and scalable touch user interface display
US11481225B2 (en) 2015-09-10 2022-10-25 Motorola Solutions, Inc. Apparatus and methods to display the status of an ancillary embedded system
CN105159690B (zh) * 2015-10-26 2019-06-28 深圳云之家网络有限公司 一种自动同步用户界面ui线程的方法及装置
US10802838B2 (en) * 2016-01-07 2020-10-13 Apple Inc. Dynamic graphical user interface previews
CN105930037B (zh) * 2016-06-12 2018-12-28 广州视睿电子科技有限公司 窗口边框阴影显示方法及装置
US10671266B2 (en) 2017-06-05 2020-06-02 9224-5489 Quebec Inc. Method and apparatus of aligning information element axes
CN108337363A (zh) * 2017-12-26 2018-07-27 努比亚技术有限公司 一种终端熄屏显示控制方法、终端
CN108549534B (zh) 2018-03-02 2020-04-10 惠州Tcl移动通信有限公司 图形用户界面重绘方法、终端设备及计算机可读存储介质
CN109992348A (zh) * 2019-04-10 2019-07-09 Oppo广东移动通信有限公司 界面显示方法、装置、终端及存储介质
CN112906087A (zh) * 2021-02-03 2021-06-04 深圳市显控科技股份有限公司 基于双缓冲的cad异步渲染方法及系统
CN112947969B (zh) * 2021-03-10 2022-12-16 支付宝(杭州)信息技术有限公司 一种页面离屏渲染方法、装置、设备和可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966139A (en) * 1995-10-31 1999-10-12 Lucent Technologies Inc. Scalable data segmentation and visualization system
US6353450B1 (en) * 1999-02-16 2002-03-05 Intel Corporation Placing and monitoring transparent user interface elements in a live video stream as a method for user input
RU2001133097A (ru) * 1999-06-16 2007-01-27 Сони Компьютер Энтертэйнмент Инк. (Jp) Устройство для передачи данных, система передачи данных и способ передачи данных с двойной буферизацией
RU2310227C2 (ru) * 2002-04-18 2007-11-10 Майкрософт Корпорейшн Способы и системы для аутентификации компонентов в графической системе

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4928247A (en) * 1987-08-13 1990-05-22 Digital Equipment Corporation Method and apparatus for the continuous and asynchronous traversal and processing of graphics data structures
JP3316592B2 (ja) * 1991-06-17 2002-08-19 サン・マイクロシステムズ・インコーポレーテッド 二重バッファ・出力ディスプレー・システム、および、第1のフレーム・バッファおよび第2のフレーム・バッファ相互間の切り換えを行う方法
US5245702A (en) * 1991-07-05 1993-09-14 Sun Microsystems, Inc. Method and apparatus for providing shared off-screen memory
US5500933A (en) * 1993-04-28 1996-03-19 Canon Information Systems, Inc. Display system which displays motion video objects combined with other visual objects
US5542088A (en) * 1994-04-29 1996-07-30 Intergraph Corporation Method and apparatus for enabling control of task execution
US5937415A (en) * 1995-12-13 1999-08-10 Sybase, Inc. Data base development system with methods facilitating copying of data from one data source to another
US5914711A (en) * 1996-04-29 1999-06-22 Gateway 2000, Inc. Method and apparatus for buffering full-motion video for display on a video monitor
JPH1063458A (ja) * 1996-08-22 1998-03-06 Hitachi Ltd 通信ネットワークの表示方法とその操作方法ならびにそのための装置
US5909559A (en) * 1997-04-04 1999-06-01 Texas Instruments Incorporated Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width
US5861893A (en) * 1997-05-27 1999-01-19 Intel Corporation System and method for graphics data concurrency and coherency
NZ330703A (en) * 1997-06-17 2000-03-27 Telecom Wireless Solutions Inc Electronic mail system for interconnecting computer networks with digital mobile phone network
US5995121A (en) * 1997-10-16 1999-11-30 Hewlett-Packard Company Multiple graphics pipeline integration with a windowing system through the use of a high speed interconnect to the frame buffer
US7168048B1 (en) * 1999-03-24 2007-01-23 Microsoft Corporation Method and structure for implementing a layered object windows
US6522335B2 (en) * 1999-05-10 2003-02-18 Autodesk Canada Inc. Supplying data to a double buffering process
JP2000330676A (ja) * 1999-05-19 2000-11-30 Nec Corp 適応ユーザインタフェース生成装置および生成方法
US6286104B1 (en) * 1999-08-04 2001-09-04 Oracle Corporation Authentication and authorization in a multi-tier relational database management system
US7020845B1 (en) * 1999-11-15 2006-03-28 Gottfurcht Elliot A Navigating internet content on a television using a simplified interface and a remote control
US6850257B1 (en) * 2000-04-06 2005-02-01 Microsoft Corporation Responsive user interface to manage a non-responsive application
US6954218B2 (en) * 2000-10-30 2005-10-11 Microsoft Corporation Method and apparatus for high-performance rendering and hit-testing of a window tree
US7038690B2 (en) * 2001-03-23 2006-05-02 Microsoft Corporation Methods and systems for displaying animated graphics on a computing device
US6904597B2 (en) * 2001-03-30 2005-06-07 Intel Corporation Inter-thread communications between different components using double buffer
EP1309153A1 (en) * 2001-11-02 2003-05-07 BRITISH TELECOMMUNICATIONS public limited company File download operation
US7299304B2 (en) * 2001-11-20 2007-11-20 Intel Corporation Method and architecture to support interaction between a host computer and remote devices
US20040217956A1 (en) * 2002-02-28 2004-11-04 Paul Besl Method and system for processing, compressing, streaming, and interactive rendering of 3D color image data
US6915401B2 (en) * 2002-03-21 2005-07-05 International Business Machines Corporation System and method for managing off-screen buffers for electronic images
JP3761165B2 (ja) * 2002-05-13 2006-03-29 株式会社モバイルコンピューティングテクノロジーズ 表示制御装置、携帯型情報端末装置、プログラム、及び表示制御方法
US7096432B2 (en) * 2002-05-14 2006-08-22 Microsoft Corporation Write anywhere tool
US20040015610A1 (en) * 2002-07-18 2004-01-22 Sytex, Inc. Methodology and components for client/server messaging system
US6911983B2 (en) * 2003-03-12 2005-06-28 Nvidia Corporation Double-buffering of pixel data using copy-on-write semantics
US7408442B2 (en) * 2003-09-22 2008-08-05 Ge Security Inc Programmable event driver/interface apparatus and method
KR100535664B1 (ko) * 2003-10-13 2005-12-09 엘지전자 주식회사 무선 네트워크망을 통해 통신하는 서버 시스템
US7274370B2 (en) * 2003-12-18 2007-09-25 Apple Inc. Composite graphics rendered using multiple frame buffers
GB2415877A (en) * 2004-07-02 2006-01-04 Symbian Software Ltd Controlling splash screen display
JP4751647B2 (ja) * 2005-06-03 2011-08-17 株式会社リコー 画面共有装置、画面共有方法、画面共有プログラム及び記録媒体
US20070040787A1 (en) * 2005-08-17 2007-02-22 Texas Instruments, Inc. A Modular Graphics Stack
US20070229520A1 (en) * 2006-03-31 2007-10-04 Microsoft Corporation Buffered Paint Systems
US7689926B2 (en) * 2006-03-31 2010-03-30 Microsoft Corporation Selective window exclusion for captured content
US20070297433A1 (en) * 2006-06-26 2007-12-27 Mediatek Inc. Method and apparatus for double buffering
KR20080031595A (ko) * 2006-10-04 2008-04-10 삼성전자주식회사 오프스크린 버퍼링 관리 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966139A (en) * 1995-10-31 1999-10-12 Lucent Technologies Inc. Scalable data segmentation and visualization system
US6353450B1 (en) * 1999-02-16 2002-03-05 Intel Corporation Placing and monitoring transparent user interface elements in a live video stream as a method for user input
RU2001133097A (ru) * 1999-06-16 2007-01-27 Сони Компьютер Энтертэйнмент Инк. (Jp) Устройство для передачи данных, система передачи данных и способ передачи данных с двойной буферизацией
RU2310227C2 (ru) * 2002-04-18 2007-11-10 Майкрософт Корпорейшн Способы и системы для аутентификации компонентов в графической системе

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2746584C2 (ru) * 2018-12-29 2021-04-16 Эдванст Нью Текнолоджиз Ко., Лтд. Модуль визуального просмотра цепочки блоков

Also Published As

Publication number Publication date
CA2724202A1 (en) 2009-12-23
JP5384626B2 (ja) 2014-01-08
CN102084329A (zh) 2011-06-01
EP2304539A2 (en) 2011-04-06
JP2011525279A (ja) 2011-09-15
CN102084329B (zh) 2014-06-04
US20090319933A1 (en) 2009-12-24
EP2304539A4 (en) 2011-07-06
KR20110028284A (ko) 2011-03-17
RU2010152243A (ru) 2012-06-27
BRPI0913208A2 (pt) 2016-01-12
AU2009260598B2 (en) 2014-06-19
WO2009154910A3 (en) 2010-04-01
AU2009260598A1 (en) 2009-12-23
WO2009154910A2 (en) 2009-12-23

Similar Documents

Publication Publication Date Title
RU2519034C2 (ru) Двойная буферизация в режиме транзакции для визуализации графического интерфейса пользователя
US10133587B2 (en) Generating component pages to render in a configuration page in a graphical user interface to configure a computing resource
US20100017740A1 (en) Pan and zoom control
US10712910B2 (en) Electronics apparatus, method for executing application, and computer-readable recording medium
JP2012507089A (ja) ウィンドウ固有の制御の表面化および管理
US20130226991A1 (en) Ensuring availability and parameter format of url scheme commands
US9367223B2 (en) Using a scroll bar in a multiple panel user interface
US9910679B2 (en) Selective loading of components within a node to speed up maintenance actions
US9965134B2 (en) Method and apparatus for providing a user interface for a file system
US8448092B2 (en) Positional effects in a three-dimensional desktop environment
US8904373B2 (en) Method for persisting specific variables of a software application
US9588661B1 (en) Graphical user interface widget to select multiple items from a fixed domain
US10168884B2 (en) Generating user interface configuration pages to configure a computing resource comprised of component computing resources
US10248534B2 (en) Template-based methodology for validating hardware features
US20150058809A1 (en) Multi-touch gesture processing
EP2759928B1 (en) Modal progress dialog
US9164778B2 (en) Modal progress dialog

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150306

MM4A The patent is invalid due to non-payment of fees

Effective date: 20150516