A method for caching diverse applications and presenting their interactive menus.

By introducing interactive menus and data template caching technology into the graphical user interface, and dynamically adjusting the window state, the problem of seamless application switching in existing GUIs is solved, information sharing and control switching efficiency is improved, and a smoother user experience is provided.

CN115735189BActive Publication Date: 2026-05-26SONY INTERACTIVE ENTERTAINMENT LLC

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SONY INTERACTIVE ENTERTAINMENT LLC
Filing Date
2021-02-24
Publication Date
2026-05-26

AI Technical Summary

Technical Problem

Existing graphical user interfaces (GUIs) are not seamless enough when switching applications, and information sharing and control switching are inefficient, especially when multitasking, requiring users to input additional information to switch back to the original application.

Method used

By introducing interactive menus into the graphical user interface, utilizing data templates and caching technology, application data is prefetched and cached, and the window presentation state is dynamically adjusted to achieve seamless switching.

Benefits of technology

It improves the efficiency of information sharing and control switching, reduces user input, achieves continuity in application execution and content presentation, and provides a smoother user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115735189B_ABST
    Figure CN115735189B_ABST
Patent Text Reader

Abstract

A computer system is provided, comprising: a content monitoring service for a menu application. The content monitoring service prefetches data for a target application based on a data template defined for that target application, and stores the prefetched data in a cache of the menu application. The menu application presents a window in a first presentation state, wherein the window corresponds to the target application and includes content based on the prefetched data in the cache. The computer system also includes a window application that receives a copy of the prefetched data from the cache after a user selects the window and presents the window in a second state based on the data template.
Need to check novelty before this filing date? Find Prior Art

Description

Background of the Invention

[0002] A graphical user interface (GUI) is the primary type of interface that users can use to interact with a computer system. A GUI includes selectable icons for launching applications. Typically, after launching a first application, the first application is presented in a first window. After launching a second application, a second window is used, and user control switches from the first window to the second window. Furthermore, dynamic content (e.g., interactive media content) presented in the first window can be paused. If the user wishes to interact with the first application, additional user input is required to switch control back from the second window to the first window.

[0003] To illustrate, consider an example of a video game system's GUI, which hosts a video game application and a music streaming application. The GUI presents a homepage including a video game icon and a music streaming icon. The video game player selects the video game icon from this homepage to launch the video game application. The video game content is then presented in the GUI. To stream music, the video game player might need to pause the video game application, switch back to the homepage, and select the music streaming icon. After this selection, the music streaming application is launched, and the music can be played through the video game system's speakers. To resume the video game, the video game player might need to minimize the music streaming application window, switch back to the homepage, enlarge the video game application window, and unpause the video game content.

[0004] Therefore, while a GUI can be an effective user interface, switching between applications may not be seamless, and information presentation may be limited to the active window. An improved GUI is needed that allows for better information sharing and control over switching. Summary of the Invention

[0005] Implementations of this disclosure relate to techniques for better information sharing and control switching in a graphical user interface (GUI). In one example, a computer system for caching and presenting interactive menus of different applications, a method implemented by the computer system, and one or more non-transitory computer-readable media storing computer-readable instructions executable on the computer system are described. Specifically, the menu application of the computer system determines a data template that (i) defines a first target application of the computer system, (ii) determines the content type of the first target application to be cached, and (iii) associates each type with one or more presentation states. The first target application is a system application or a user application and is different from the menu application. The menu application stores data of the first target application in the cache of the menu application based on the data template. This data includes first content or a first Uniform Resource Identifier (URI) of the first content. The data also includes second content or a second URI of the second content. The first content belongs to a first type determined in the data template and is associated with a first presentation state and a second presentation state in the data template. The second content belongs to a second type determined in the data template and is associated with a second presentation state in the data template. The cache stores different data for different target applications of the computer system based on different templates defined for different target applications. A computer system receives user input requesting an interactive menu from an input device. A menu application displays the interactive menu on the monitor. The interactive menu includes windows presented in a first presentation state, each corresponding to a different target application. These windows include a first window corresponding to a first target application, populated with first content based on cached data and a data template from the menu application. The computer system receives user interaction with the first window from the input device, requesting a second presentation state. Based on the user interaction with the first window, the menu application generates a copy of the first target application's data from the cache. The menu application sends the copy of the first target application's data to the computer system's window application. The window application differs from both the menu application and the first target application. The window application displays a second window on the monitor corresponding to the first target application. The second window is presented in a second presentation state and populated by the window application with first and second content based on the data copy and a data template. Attached Figure Description

[0006] Figure 1 An example of a menu with selectable actions according to one embodiment of this disclosure is shown.

[0007] Figure 2 A computer system presenting a menu according to one embodiment of the present disclosure is shown.

[0008] Figure 3 An example of a window in different states according to an embodiment of this disclosure is shown.

[0009] Figure 4 An example of a computer system for presenting content in a menu according to one embodiment of the present disclosure is shown.

[0010] Figure 5 Another example of a computer system for presenting content in a menu, according to one embodiment of the present disclosure, is shown.

[0011] Figure 6 Another exemplary example of a computer system for presenting content in a menu, according to one embodiment of the present disclosure, is shown.

[0012] Figure 7 An example of a computer system with foreground and background processes according to one embodiment of the present disclosure is shown.

[0013] Figure 8 Another example of a computer system having a foreground process and a background process and displaying a window on a monitor, according to one embodiment of the present disclosure, is shown.

[0014] Figure 9 Another example of a computer system for presenting content in an update window on a display, according to one embodiment of the present disclosure, is shown.

[0015] Figure 10 An exemplary process for presenting content in an interactive menu according to an embodiment of this disclosure is shown.

[0016] Figure 11 An example of a startup application module and a termination menu application according to an embodiment of this disclosure is shown.

[0017] Figure 12 An exemplary process for launching an application module and terminating a menu application according to an embodiment of this disclosure is shown.

[0018] Figure 13 An example of a hardware system suitable for implementing a computer system according to an embodiment of the present disclosure is shown. Detailed Implementation

[0019] Typically, systems and methods for better information sharing and control switching in a graphical user interface (GUI) are described. In one example, a computer system presents the GUI on a display. After executing a first application, first content of the first application is presented in the GUI. After user input requesting a menu, a menu is presented in a layer above at least a portion of the first content based on the execution of the menu application. The menu includes a dynamic area (also called an interactive menu) presenting multiple windows and a static area presenting icons. Each window in the window corresponds to a different application. Each icon in the icons may be preset and may correspond to a system function of the computer system or a window of an application. The dynamic menu area shows windows in a first presentation state (e.g., a browsing state), where each window presents content in this presentation state. After user interaction with the dynamic menu area, the presentation of the window may change to a second presentation state (e.g., a focused state), where the window in the second state and its content are resized and actions that can be performed on the content are selectable. After the user selects a window in the second state, the presentation of the window changes to a third presentation state (e.g., an expanded state), where the window and its content are resized again and actions that can be performed on the window are further selectable. After the user selects a window action or a content action, the selected action is executed and user control is automatically switched back to the first application.

[0020] In another example, implementing the aforementioned UI functionality via a GUI involves a computer system executing one or more applications to generate and / or present windows in one of the presented states within an interactive menu (dynamic menu area). For instance, the computer system executes a menu application including a content monitoring service that prefetches and / or receives data comprising content to be presented in multiple windows. The menu application uses data templates associated with multiple applications running on the computer system to determine the content of each window. Furthermore, the menu application provides UI data to generate multiple windows, each corresponding to a different application. Each window in the interactive menu is updated by the menu application as new data becomes available. The menu application also sends a copy of the data to the window applications to provide UI data to generate windows in a third presented state, which are also updated with new data as it becomes available. The content monitoring service uses templates to prefetch data and stores the data in a cache of the menu application. After a user requests a menu, the menu application presents a menu comprising windows in either a first or second state and populates the windows in the menu with data from the cache. After a user selects a specific window, the menu application provides a copy of the data to the window applications. Based on the data, the window application presents a window in a third state.

[0021] For illustration, consider an example of a video game system. The video game system may host a menu application, a video game application, a music streaming application, a video streaming application, a social media application, a chat application (e.g., a "party chat" application), and several other applications. A video game player can log into the video game system, and a main user interface is presented to the player on a display. From this interface, the player can launch the video game application, and video game content can be displayed on the display. While the video game application is active and video game content occupies the display, a content monitoring service can prefetch and cache application data associated with the application including the video game application. After a user presses a button on the video game controller, a menu can be presented in a layer located at the bottom of the display based on the execution of the menu application. The menu is populated using application data stored in the cache, using a data template for each application, which defines the data and layout of UI elements for the window associated with each application in the menu. The menu includes a game window corresponding to the video game application and presenting content based on the context of gameplay (e.g., an invitation to a racing league is presented when the video game player is playing a racing game and is about to finish the current race). The menu also includes a music window corresponding to a music streaming application and displaying music albums from the video game player's music library. The layer can display the menu in the foreground while the video game application continues to run and video game content is presented (e.g., video game content can be continuously updated in the background, displaying the current racing progress). Windows within the menu's dynamic area are displayed in a browse state, providing the video game player with sufficient information about the application (e.g., sensing racing invitations and viewing music album covers). After the user presses a button on the video game controller, scrolling through the presented windows is executed, where only one window is shown in a focused state at a time, and the remaining windows are shown in a browse state. For example, after the user's focus (e.g., the user scrolls) is on the music window, the window expands to show a partial list of music files and presents a play button. If the play button is selected, music streaming begins, playing music in the background, and user controls automatically switch back to the video game content, allowing the user to continue their gameplay (e.g., steering the car in the current race). If the user selects the music window instead of the play button, the music window expands further to show the full list of music files. In this way, a copy of the relevant data from the cache is used to populate the music window in a third presentation state (e.g., an extended state). Typically, such techniques improve the responsiveness of the GUI by prefetching and caching application data, with updated menu data becoming available immediately after a menu request.Furthermore, perceptible latency in menu presentation, particularly between presentation states, is reduced by providing a second presentation state between a first presentation state that presents limited data and a third presentation state that presents detailed data. The second presentation state (e.g., a focused state) enables a more seamless and fluid interaction with the menu by focusing system resources on only one application menu and preventing rapid scrolling through a window in the third presentation state.

[0022] The embodiments disclosed herein offer several advantages over existing GUIs and their underlying computer systems. For example, relevant application information can be displayed to the user by selecting a window to be presented in a dynamic menu area. The interactivity of these windows can be correlated with the user's focus (e.g., browsing, focusing, and expanded states) by presenting them in different states based on the user's focus. Furthermore, the execution of any underlying application and the presentation of its content are unlikely to be interrupted, and user control can automatically switch back to the application. Therefore, the entire GUI allows for seamless switching while improving information sharing.

[0023] For clarity, the implementation scheme can be described in conjunction with a video game system. However, the implementation scheme is not limited to this and is similarly applicable to any other type of computer system. Typically, a computer system presents a GUI on a monitor. The GUI may include a main user interface from which different applications of the computer system can be launched. After an application is launched, a window corresponding to that application can be presented in the GUI. After the user requests a menu, a menu including dynamic and static areas can be displayed above the application's window. In addition to selecting system controls, users can browse, focus on, and / or select applications of interest from the menu. The menu can be closed, and user controls can automatically switch back to the application.

[0024] Figure 1 An example of a menu with selectable actions according to one embodiment of the present disclosure is shown. As shown, a graphical user interface 100 of a computer system (e.g., a video game system) is presented on a display. The GUI 100 presents video game content 110 of a video game application of the computer system (e.g., an application executed by the video game system) and a menu 120 of a menu application of the computer system (e.g., a menu application executed by the video game system). The menu 120 may be presented on top of at least a portion of the video game content 110, such that it appears in the foreground of the GUI 100, while the video game content 110 appears in the background of the GUI 100. For example, the menu 120 and the video game content 110 are displayed within a menu window and a content window, respectively, wherein the menu window is displayed in a layer that is located above the content window and overlaps only a portion of the content window.

[0025] In one example, menu 120 may partially obscure the video content 110 behind it or may have some degree of transparency. Alternatively, the texture and / or brightness of menu 120 and video game content 110 may be set such that menu 120 appears in the foreground and video game content 110 appears in the background.

[0026] As shown in the figure, menu 120 includes a dynamic menu area 130 and a static menu area 140. The dynamic menu area 130 presents multiple windows 132A, 132B, ..., 132K, each window corresponding to an application of the computer system. The static menu area 140 presents icons 142A, 142B, ..., 142L, each icon corresponding to a system function of the computer system (e.g., power on, volume control, mute and unmute, etc.) or an application. For simplicity, each window in windows 132A, 132B, ..., 132K is referred to herein as window 132, and each icon in icons 142A, 142B, ..., 142L is referred to herein as icon 142. By including two areas 130 and 140, menu 120 represents a control panel displaying context-sensitive features and relevant system functions without requiring the user to exit their gameplay.

[0027] Typically, window 132 can be added to dynamic menu area 130 based on the context of the user of the computer system (e.g., a video game player) and / or the context of the application running on the computer system. The user's context (user context) typically includes any of the following: information about the user, the user's account, active background applications and / or services, and / or applications and / or services available to the user from the computer system or other network environments (e.g., social media platforms). The application's context (application context) typically includes any of the following: information about the application, the application's state (active or inactive), specific content displayed by the application, and / or the application's specific state (active in the background, resumed by the system, etc.). For example, the context of a video game player may include: a video game application, a music streaming application, a video streaming application, social media feeds the video game player has subscribed to, and similar contexts of the video game player's friends. The context of a video game application includes: the game title, game level, current game frame, available levels, available game leagues, available new versions of the video game application, and / or sequels to the video game application.

[0028] In contrast, a static menu area 140 may not offer the dynamism of a dynamic menu area 130. Instead, an icon 142 can be pre-set in the static menu area 140 based on system settings and / or user settings. After selecting icon 142, a corresponding window can be presented (e.g., for system control or for a specific background application). Menu 120 can be closed when the window is presented, or alternatively, the presentation of menu 120 can continue.

[0029] The content, interactivity, and state of window 132 are further described in conjunction with the following figures. Typically, after menu 120 is presented, the execution of the video game application and the presentation of video game content 110 continue. Simultaneously, user input from an input device (e.g., from a video game controller) can be received and used to interact with menu 120 in dynamic area 130 and / or static area 140. Dynamic area interaction allows the user to view window 132 in different states and select the content of window 132 or window 132 itself and perform actions on it. Static area interaction allows the user to select any icon in icon 142 to update system functions (e.g., change the volume) or launch a pre-set window for a specific application (e.g., launch a window for a music streaming application). Once the interaction ends, menu 120 is closed and user control is automatically switched back to the video game application (e.g., without explicit user input and / or a separate request for switching). Alternatively, the switching may not be automatic and may require relevant user input to change user control back to the video game application. In both cases, user input received from the input device can be used to interact with video game content 110 and / or the video game application.

[0030] In one example, a user request to present menu 120 is received, and menu 120 is presented accordingly over video game content 110. Therefore, dynamic area 130 includes a music window (e.g., first window 132A) corresponding to a music streaming application and a game window (e.g., second window 132B) corresponding to a video game application. The music window can be in browse state, displaying the album art of music owned by the user. The game window can be in browse state, displaying invitations to game leagues. After the user scrolls, the user focus on window 132 is updated. Specifically, when the user scrolls over the music window, the window is presented in a focused state, while the other windows are presented in browse state. In the focused state, the size of the music window and album art is enlarged, and the option to play the music album is presented. If a user selection to play the music album is received, music streaming begins, menu 120 is closed, and user control is switched back to the video game application. If, alternatively, a user selection for the music window is received, an option to pin the music window to the display is presented. After pinning, the music window is presented on the display, menu 120 is closed, and user control is switched back to the video game application. If the user continues scrolling, the music window reappears in browse mode. Similar interactions can occur with video game applications. Here, if the user accepts an invitation to a game league, the video game application updates to change the gameplay to a video game league, and video game content 110 displays that the video game player is joining the league.

[0031] Although Figure 1 The window can be described as appearing in a dynamic menu area or being launched from an icon in a static menu area, but other ways of presenting the window are also possible. For example, user input from an input device (e.g., a specific key) can be associated with the window. After receiving user input, the window can be presented in a layer above the video game content 110 without needing to present menu 120.

[0032] Figure 2A computer system presenting a menu according to one embodiment of the present disclosure is illustrated. As shown, the computer system includes a video game console 210, a video game controller 220, and a display 230. Although not shown, the computer system may also include a back-end system, such as a set of cloud servers, which is communicatively coupled to the video game console 210. The video game console 210 is communicatively coupled to the video game controller 220 (e.g., via a wireless network) and the display 230 (e.g., via a communication bus). A video game player 222 operates the video game controller 220 to interact with the video game console 210. These interactions may include playing a video game presented on the display 230, interacting with a menu 212 presented on the display 230, and interacting with other applications on the video game console 210.

[0033] The video game console 210 includes a processor and a memory (e.g., a non-transitory computer-readable storage medium) storing computer-readable instructions that can be executed by the processor and, when executed by the processor, cause the video game console 210 to perform operations involving various applications. Specifically, the computer-readable instructions may correspond to various applications of the video game console 210, including video game application 240, music application 242, video application 244, social media application 246, chat application 248, menu application 250, and other applications of the video game console 210 (e.g., a main user interface (UI) application that presents a homepage on display 230), and so on.

[0034] The video game controller 220 is an example of an input device. Other types of input devices are possible, including keyboards, touchscreens, touchpads, mice, optical systems, or other user devices suitable for receiving user input.

[0035] In one example, menu 212 is similar to Figure 1 Menu 130. After the video game application 240 is executed, the rendering process of the video game console 210 renders the video game content (e.g., shown as racing video game content) on the display 230. After user input is received from the video game controller 220 (e.g., the user presses a specific key or button), the rendering process also renders menu 212 based on the execution of the menu application 250. Menu 212 is rendered in a layer above the video game content and includes dynamic and static areas. The windows in the dynamic area correspond to a subset of the video game console's application.

[0036] After menu 212 is presented, user control changes from video game application 240 to menu application 250. Upon receiving user input requesting interaction with menu 212 from video game controller 220, menu application 250 supports such interaction by updating menu 212 and launching any relevant application in the background or foreground. Video game player 222 may exit menu 212 or automatically close menu 212 after launching the application in the background or foreground. After exiting or closing menu 212 based on the launch of a background application, user control changes from menu application 250 to video game application 240. If a foreground application is launched, user control alternatively changes from menu application 250 to that application. In both cases, another user input received from video game controller 220 is used to control the relevant application and / or to request menu 212 again.

[0037] Menu application 250 includes content monitoring services, as shown in the following reference. Figure 5 In more detail, the content monitoring service prefetches data in response to new application content becoming available through a content network or other sources. The prefetched data is then cached by the menu application 250 and used to populate windows in a first or second presentation state. For windows in a third presentation state, the prefetched data is copied from the cache and sent to the window application 252 for generating and / or presenting the window, as described in the reference. Figure 4 More detailed description.

[0038] Although Figure 2 Different applications are shown executing on the video game console 210, but embodiments of this disclosure are not limited thereto. Alternatively, applications may execute on a backend system (e.g., a cloud server) and / or their execution may be distributed between the video game console 210 and the backend system.

[0039] Figure 3 An example of a window in different states according to an embodiment of this disclosure is shown. Here and in the following figures, action cards are described as examples of windows and correspond to applications. Generally, a window represents a GUI object that can display content and support actions that can be performed on the content and / or the window. In one example, an action card is a specific type of window where the action card includes a container object of a MicroUX service, and where the action card contains content and actions of a single concept. Action cards included in the menu facilitate immediate and relevant actions based on the content of user engagement and the context of the relationship between people, content, and services within the computing environment.

[0040] like Figure 3As shown, the action card can be presented in one of several states. Which state is presented depends on user input, as further described in the following figures. One state could be a browsing state 310, where the action card provides the user with a preview of the application. The preview includes relevant information about the action card, which should help the user decide whether to take an action. For example, in browsing state 310, the action card has a first size, and content 312 and the title 314 of content 312 or the action card are presented based on this first size. For illustration, an action card for a music application could be presented in a first state as a rectangle of a specific size, showing the album art and title.

[0041] Another state can be focus state 320, where the action provides the user with relevant information and offers one or more options for performing one or more actions (e.g., an action on the application's content or the action card itself, or an optional action). In other words, the action card can reveal quick actions for the user to select in response to the user's focus on the action card. For example, in focus state 320, the action card has a second size (which may be larger than the first size), and the presentation of content 312 and title 314 is resized based on the second size, and one or more selectable content actions 322 (e.g., play content, skip content, etc.) and one or more selectable card actions (e.g., move the action card to a position on the display, resize the action card, fix the action card, present the action card as picture-in-picture, etc.) are presented. Returning to the reference music action card example, in focus state 320, the music cover and album title are enlarged and a play button for playing the music file of the music album is further presented.

[0042] Another state could be extended state 330, where the action continues to provide relevant information to the user in a further enlarged presentation format, and provides one or more options for one or more actions to be performed on the content and / or the action card itself (e.g., one or more actions for the application's content or the action card itself, or an optional action). In other words, the action card becomes the primary modality for interacting with MicroUX and displaying the relevant visual interface. For example, in extended state 330, the action card has a third size (which may be larger than the second size), and based on this third size, the presentation of content 312 and title 314 is resized, the presentation of content action 322 continues, additional content 332 of the application is presented, and one or more options 334 are presented for one or more content actions and one or more card actions that can be performed on the action card. Returning to the reference music action card example, in extended state 330, the music cover and album title are further enlarged and the presentation of the play button continues. Additional music files for the music album are also identified. Option 334 provides the option to pin the action card to the side of other content being displayed on the screen (e.g., video game content), to render the action card as a picture-in-picture within other content, or to run a music application in the background (e.g., playing a music album). In the above states, content 312, title 314, content action 322, and additional content 332 can be identified from metadata received from the application.

[0043] like Figure 3 As shown, an action card may include a static presentation area and a dynamic presentation area, each of which can be resized according to a state. For example, a title 314 is presented in the static area, identifying the underlying application associated with the action card and remaining unchanged with the state. In contrast, content 312 may be presented in the dynamic area and can change within and between each state. In particular, the content itself may be interactive (e.g., video), and its presentation may change over time due to its interactive nature. Alternatively, content 312 may also change over time based on the user context and / or application context.

[0044] like Figure 3 As shown, the first window 310, the first window 320, and the second window 330 each include an icon 316. The icon may be an image representing one or more things, including but not limited to the user (e.g., a profile picture), the computer system (e.g., a system logo or image), the target application (e.g., a tag or icon from the application), and a system icon representing the type of the target application (e.g., a generic symbol for the type of content being presented, such as a musical note for an audio player, a camera for an image gallery, a microphone for a chat application, etc.).

[0045] like Figure 3 As shown, the action card in browsing state 310, the action card in focusing state 320, and the action card in selection state 330 each include an icon 316. The icon 316 may be an image representing one or more things, including but not limited to the user (e.g., a profile picture), the computer system (e.g., a system logo or image), the target application corresponding to the action card (e.g., a mark or icon from the application), and a system icon representing the type of the target application (e.g., a general symbol for the type of content being presented, such as a musical note for an audio player, a camera for an image gallery, a microphone for a chat application, etc.).

[0046] like Figure 3 As shown, the action card in a focused state (e.g., focused state 320) includes one or more command options 340. Although Figure 3 Command option 340 is shown positioned below the content in a panel, but it may also be positioned as an overlay in front of the content, in a side panel, and / or above the content near title 314. Command option 340 may include text-based or image-based instructions, or may include one or more interactive elements 342, such as buttons or other virtual interactive elements. For example, interactive element 342 may include a button configured to receive a user click. In some embodiments, command option 340 and interactive element 342 facilitate interaction with content 312 and / or additional content 332. For example, in addition to the content provided by content actions 322, command options may provide additional and / or alternative functionality controls for the content. For illustration, content actions 322 may provide play / pause functionality for an audio or video player, while one command option in command option 340 may include mute / unmute functionality for a party chat application. Command option 340 may be context-specific, for example, based on the current state of the content in an action card. For example, when the action card is playing audiovisual content, command option 340 may include only a mute button instead of a mute / unmute button, and a stop button instead of a play button.

[0047] like Figure 3 As shown, different presentation states of an action card include varying numbers of elements (e.g., content types, command options, child windows, etc.). Elements can be arranged according to one or more modes, each mode defining the display arrangement of elements within the action card. In some implementations, a mode is a portion of the content defined by a data template, as shown in the reference. Figure 4 More detailed description.

[0048] It should be understood that any suitable type of element, arrangement, and / or rhythm used to display elements within an action card can be defined by a data template. A data template may be specific to a single presentation state or applicable to multiple presentation states. Furthermore, any suitable number of data templates may exist. For example, the data template for the first action card may differ from the data template used to present different action cards in the same presentation state as the first action card.

[0049] It should also be understood that while different action cards may use the same data template, the underlying source of the content rendered based on the data template may differ for each action card. The source of the data content for each action card (e.g., in local storage on a computer system and / or in a Uniform Resource Identifier (URI)) can be specified in any suitable manner. For example, in addition to the data template, the content monitoring service may also receive a list of sources (or scripts, code, etc.) as input. The source list may indicate the specific location from which data content should be retrieved, and the data template may indicate how the content (e.g., size, color, contrast, etc.) should be arranged within the action card for rendering.

[0050] In some implementations, a data template can be prequalified to limit the number and / or type of elements that can be rendered within an action card for one or more presentation states. For example, the data template could disable autoplay of video links in a browsing state (e.g., within a tile), which typically takes a longer amount of time to load and render than other elements (e.g., text). In another example, the data template could assign a cost to each element. The number of elements allowed to load and render could be limited to a total allowed cost. In this way, and as further described herein, the system can improve the performance of rendering action cards for a specific presentation state. For example, when an action card is initially rendered in a browsing state, the system may initially only load and render content corresponding to this presentation state, rather than additional content that might be rendered in a focused or selected state. In some implementations, by utilizing a prequalified data template for the presentation state, the action card can be rendered in a time less than or equal to a prequalified amount of time corresponding to a performance target (e.g., 200 milliseconds, 500 ms, etc.).

[0051] like Figure 3As shown, the first presentation state is filled with the fewest elements, and the second presentation state is filled with fewer elements than the third presentation state, which is filled with the most elements. Providing multiple modes for limiting action cards in multiple presentation states improves user experience and system performance. For example, limiting the number of action cards in focus state 320 prevents user fatigue and ensures that extended state 330 is generated and / or presented only for a single action card. As described in more detail with reference to the accompanying drawings, in the following text, presenting extended state 330 includes processes that require system resources and additional window applications. To this end, preventing direct looping between action cards in extended state 330 improves system efficiency.

[0052] Referring to the accompanying drawings, in the following text, the term "action card" is used to describe a window that is in one or more presentation states. For example, a window that presents content associated with a target application on a computer system that is different from the menu application in a dynamic menu is called an "action card".

[0053] Figure 4 An example of a computer system 400 for presenting content in interactive menus and action cards according to one embodiment of the present disclosure is shown. See reference... Figures 1 to 2 In more detail, computer system 400 may be a video game system, a backend system, or any other system configured to store and render content on a display. As shown, computer system 400 includes multiple target applications 402a to 402n (for simplicity, hereinafter also referred to as target application 402, target applications 402, target app 402, or target applications 402), where “a,” “b,” and “n” are positive integers, and “n” refers to the total number of target applications. As shown, computer system 400 also includes a menu application 410, a cache 418, and a window application 460. Each target application in the target applications 402 may correspond to a different application running on the computer system or backend system, as referenced in [reference missing]. Figures 1 to 2 More detailed description. Target application 402 can be a system application or a user application, and is different from menu application 410. Typically, the distinction between system applications and user applications depends on how the provider of computer system 400 describes the system application layer and user application layer of computer system 400. System applications are applications at the system application layer, such as applications native to the operating system of computer system 400. In contrast, user applications are applications at the user application layer, such as applications downloadable from an application store, which may or may not be managed by the provider of computer system 400.

[0054] Cache 418 may include local memory on the computer system (e.g., hard disk, flash drive, RAM, etc.), which is configured for fast storage and retrieval of data to minimize latency. As shown, menu application 410 includes a determination unit 412, one or more data templates 414, and a content monitoring service 416. The determination unit 412 may be implemented as software and / or hardware such that menu application 410 can determine data templates 414 defined for a specific target application 402. Data templates 414 identify the type of content that computer system 400 stores in cache 418 for the target application 402 based on the association between data template 414 and target application 402. In some cases, each data template 414 further associates a type of content (e.g., audio, video, video game content, etc.) with one or more presentation states.

[0055] The menu application can store data 420 in cache 418, where data 420 may include various types of content, including but not limited to first content 422 and second content 424. For example, as referenced... Figures 1 to 2 More specifically, the content may include video content, audio content, video game content, party chat messages, etc. Data 420 may also include a first Uniform Resource Identifier (URI) for the first content 422, where a URI is typically characterized by a string of characters that identifies a resource following a predefined set of syntax rules. For example, a URI can identify a resource to facilitate interaction between networked systems involving said resource. Similarly, data 420 may include URI information for each type of content, such as a second URI for the second content 424. The first content 422 and the second content 424 may be identified in one or more data templates 414 and associated with a first presentation state, a second presentation state, and / or a third presentation state in the data templates 414, as referenced. Figures 1 to 2 More specifically, for example, first content 422 may be associated with a first presentation state and a second presentation state, and second content 424 may be associated only with the second presentation state, as defined in a given data template 414. In this way, cache 418 may store multiple types of content associated with multiple data templates 414, constituting data for different target applications 402.

[0056] As shown in the figure, computer system 400 is communicatively coupled to one or more content sources 430, from which the computer system can prefetch and / or receive data 420. For example, content source 430 may include content network 432, including but not limited to cloud-based content storage devices and / or distributed systems. Content source 430 may also include system content 434 provided by a data store communicatively coupled to computer system (e.g., hard disk drive, flash drive, local storage, external drive, optical drive, etc.).

[0057] As shown in the figure, computer system 400 is communicatively coupled to input device 440, which may include, but is not limited to, a reference device. Figure 2 A more detailed description of the user input device (e.g., Figure 2 The video game controller 220. Input device 440 can provide user input to computer system 400 to facilitate user interaction with data 420 stored in cache 418. As described in more detail below, interaction can occur through one or more menus and / or action cards in the UI. For example, computer system 400 can generate user interface data to configure a user interface including static and dynamic menus, as referenced. Figure 1 More detailed description (e.g., Figure 1 Menu 120 includes the static menu area 140 and the dynamic menu area 130.

[0058] As shown in the figure, computer system 400 is communicatively coupled to display 450. Display 450 may include any general form of display compatible with an interactive user interface (e.g., ...). Figure 2 Display 230). Display 450 may include an augmented reality and / or virtual reality interface generated by wearable and / or portable display systems (including but not limited to headphones, mobile devices, smartphones, etc.). In response to input provided by input device 440 being received by computer system 400 as user input, computer system 400 may present an interactive menu 452 (e.g., ...) on display 450. Figure 1 (Dynamic menu area 130). See reference. Figures 1 to 2In more detail, the interactive menu 452 may include static and dynamic menus, wherein the dynamic menu includes one or more action cards 456-a to 456-n, where “a” and “n” are positive integers, and “n” refers to the total number of action cards (hereinafter referred to as action cards 456 for simplicity). As shown, action cards 456 may be presented in a first presentation state (e.g., browsing state), and each action card may correspond to a different target application 402, and each action card is populated with different data 420 according to a different data template 414 associated with the different target application 402. For example, action cards 456 may include a first action card 454 corresponding to the first target application 402, such that the first action card 454 presents first content 422 based on data from cache 418 and according to the data template 414 defined for the first target application 402. For example, the data template 414 for a video game application defines that the action card for the video game application in the browsing state is populated with content presenting the title of the video game application and the most recently played level by the user of the computer system 400. Furthermore, the action card in the browsing state indicates that additional options for downloading new levels are available. In contrast, in the focused state, the data template for the video game application provides additional content in the form of trophies, as well as command options for starting new levels or interacting with the video game application in additional ways (e.g., watching replays, chatting with other players, etc.). To reduce latency during menu loading, the content monitoring service 416 prefetches content to be used for the three presentation states (e.g., title, level gameplay information, trophy information, available level information, and downloadable content) and stores the prefetched data in cache 418.

[0059] For reference Figures 1 to 2 In more detail, the computer system 400 may receive one or more types of user interaction via the input device 440, in the form of a request for a second presentation state (e.g., focus state) associated with a target application of the first action card 454, as described in reference [reference needed]. Figure 3 A more detailed description. This may include the user pressing a button to perform the first action card 454 and / or through constructing command options (e.g., Figure 3This is another form of user interaction via the input device 440 (command option 340). The computer system 400 can respond to user input by generating a copy of the data associated with the first target application 402 from a cache and sending the copy of the data associated with the first target application 402 to the window application 460. As shown, the window application 460 is distinct from both the menu application and the first target application 402. The window application 460 can be configured to generate user interface data such that a user interface generated using the user interface data can be presented via the display 450 as a second action card 470 corresponding to the first target application 402 presented in a second presentation state. The second action card 470 in the second presentation state may include both first content 472 and second content 474 presented based on a data template 414 associated with the target application 402. In response to user input received by the computer system 400 via the input device 440, the first content 472 and second content 474 may be populated in the second action card 470 by the window application 460 using copied data sent to the window application 460 from the menu application 410.

[0060] Figure 5 Another example of a computer system 500 for presenting content in interactive menus and action cards, according to one embodiment of this disclosure, is shown. Figure 5 As shown, computer system 500 can operate without receiving (e.g., via...) Figure 4 The input device 440 actively prefetches data 520 from one or more content sources 530 during user interaction. The computer system 500 may include a menu application 510, a cache 518, and data associated with one or more events 540. As shown, the computing system 500 is communicatively coupled to the content source 530, whereby the content monitoring service 516 of the menu application 510 extracts data 520 including first content 522 and second content 524. (See reference...) Figure 4 For a more detailed description of the content network 432 and system content 434, the content source 530 may include the content network 532 and / or system content 534.

[0061] Content monitoring service 516 can proactively monitor the active processes of computer system 500 to enable computer system 500 or one or more target applications (e.g., Figure 4The operational state 542 of the target application (402) changes. For example, the operational state of a party chat application may be associated with a dynamic list of participants in a specific chat group, such that a change in participants can trigger a corresponding change in the operational state. In another example, a music player application may include a playlist feature that uses a recommendation engine to populate a queue, such that the queue is dynamically populated based on user interaction or past user selections. The system may receive user interactions that request the music player application to jump forward to the next file in the queue, or that files should be arranged in a similar archiving manner based on one or more characteristics of the files (e.g., a "favorites" command). Such interactions may be associated with a corresponding change in the operational state 542 of the target application, thereby triggering the computing service 516 to prefetch the corresponding data 520 from the content source 530.

[0062] As shown in the figure, event 540 also includes received new data 544 and generated new data 546. Received new data 544 may include data provided to computer system 500 by a process created by a system application (e.g., a background game network platform) or user application (e.g., a video game) operating on computer system 500, causing computer system 500 to prefetch data 520 from content source 530 via content monitoring service 516 of menu application 510. For example, the system application may send new data corresponding to new content available through content source 530 to one or more target applications on computer system 500. As an illustrative example, this may include first content 522, for which content monitoring service 516 is configured to automatically prefetch and store any new downloadable content. As another illustrative example, received new data 544 may include a URI of second content 524 in content source 530, based on which content monitoring service 516 prefetches second content 524 from content source 530 and stores second content 524 in cache 518. Similarly, the newly generated data 546 can trigger a prefetching process via content monitoring service 516 to provide additional content to the target application, as referenced. Figure 4 More detailed description. For example, via an input device (e.g., Figure 4 The input device 440) presents the first action card in the second presentation state (e.g., Figure 4 The first action card 454) (for example, in a focused state) Figure 4 A user input request (action card 454) can trigger a computing service 516 to prefetch second content 524 and store the second content in a cache 518 for use by window applications (e.g., Figure 4 The window application 460) generates and / or renders a second action card (e.g., Figure 4The second action card 470 is used. Similar examples of new data 546 generated by the computer system 500 constitute an event 540 that triggers a prefetching by the content monitoring service 516, including but not limited to target application data (e.g., in game events, in game achievements, user requests for user content through online directory applications, etc.), data generated by system applications during the operation of the computer system 500 (e.g., the expiration of a target application's license, system-level information configured to be presented through one or more action cards in a menu, etc.), and user data (e.g., user interaction through the menus or UI of the computer system 500, for example, by adding a new target application to the computer system 500).

[0063] Figure 6 Another exemplary example of a computer system 600 for presenting content in interactive menus and action cards, according to one embodiment of this disclosure, is shown. Figure 6 As shown, and as referenced Figure 4 In more detail, in response to user interaction via input device 640, a first action card 654 can be presented in an interactive menu 652 via display 650. The first action card 654 can be populated with first content 672 according to a data template 614 associated with a target application 602, wherein the first content is received and / or retrieved by computing service 616 of computer system 600 from data 620 of content source 630. (See reference...) Figure 4 In a more detailed description, the content source may include: a content network 632, whereby the third content 626 is remotely stored; and system content 634, whereby the third content 626 is locally stored in computer system 600.

[0064] In some implementations, along with the presentation of the first action card 654, the computer system 600 may determine additional content, for example, based on a third URI of third content 626 included in the data 620 from content source 630. The additional content may be associated with a target application 602 that is different from the target application of the first content 622 in the data 620 from content source 630. See reference... Figure 5In more detail, based on a data template 614 associated with a different target application 602, the computer system can retrieve additional content and store it in a cache 618 for presentation in an action card 658 of an interactive menu 652 in a first presentation state. For example, a menu application 610 of the computer system 600 can retrieve third content 626 from a content source 630 and store it in the cache 618. In response to user interaction via an input device 640, the menu application can populate a third action card 658 with the third content 676 based on the data template 614 in the first presentation state. Similarly, additional content can be retrieved, received, and / or extracted by the computer system 600 from a content source 630 to populate additional action cards 656.

[0065] Figure 7 An example of a computer system 700 having foreground and background processes according to one embodiment of the present disclosure is shown. See reference... Figures 1 to 3 In more detail, a computer system 700 (e.g., a console, game system, user device) may operate multiple processes as background processes 710 or foreground processes 720. The terms "background" and "foreground" can refer to whether a particular process controls the computer system 700's operations regarding peripheral devices, displays, etc., including whether the process is actively sending and / or receiving data while using system resources (e.g., CPU or GPU resources). For example, a background process 710 may include system applications or user applications whose processing order is uncertain within the computer system 700. For example, a foreground process 720 may be designated to receive user input, regardless of whether a GUI is presented for the process.

[0066] like Figure 7 As shown, computer system 700 launches menu application 730 and window application 740 as background processes 710 before receiving user input such as first user input 750. Examples of first user input 750 may include a user request to generate and / or present an interactive menu via a display, as shown in reference [reference missing]. Figures 1 to 2 (For example, Figure 1 The dynamic menu area 130 is described in more detail. After receiving the first user input 570, the computer system 700 runs the menu application 730 in the corresponding foreground process, actively generating data for displaying the action card in browsing or focused state on the monitor, as shown in the reference. Figures 4 to 6 A more detailed description. Similarly, see references... Figure 4 In more detail, the second user interaction may include an interactive menu (e.g., Figure 4 Action cards in the interactive menu 452 (e.g., Figure 4The first action card 454) requests to expand from the focused state to the expanded state, the request being facilitated by a window application 740 that is different from the menu application 730. For example... Figure 7 As shown, in response to receiving a prompt from window application 740 that generates and / or presents an action card in an extended state, computer system 700 may run window application 740 in the corresponding foreground process. In each of the browsing, focused, and extended states, the presented content and actions, and their arrangement, depend on a data template defined for the target application corresponding to the action card (e.g., ...). Figure 4 Data template 414). Additionally, see reference [link to relevant documentation]. Figure 5 In more detail, the content and actions are previously cached by the menu application's content monitoring service.

[0067] Figure 8 Another example of a computer system 800 having foreground and background processes and presenting action cards on a display according to one embodiment of the present disclosure is shown. As shown, the computer system 800 can perform an operation as a foreground process 820 based on a menu application 830 to present a first action card 882 on a display 880. The first action card 882 is a two-dimensional multi-layered window in the xy-axis direction, positioned in an ordered layer representation according to the layer position indicated by the indicator “z”. In response to a second user input 860 (e.g., a user request to present the first action card 882 in an extended state), the computer system 800 can run a window application 840 as the foreground process 820, through which the computer system 800 can present a second action card 884 on the display 880. As shown, the second action card 884 is presented as an overlay layer on the first action card 882 (e.g., at layer position z indicating a higher presentation order than the first action card 882), after which the first action card 882 is terminated by the menu application 830, which is still a foreground process of the foreground process 820. The purpose of overlaying the second action card 884 on the first action card 882 before terminating the first action card 882 is to reduce perceived latency in computer system processes (e.g., retrieving data from the cache or generating and / or rendering the second action card 884).

[0068] Figure 9Another example of a computer system 900 for presenting content in an updated action card on a display, according to one embodiment of the present disclosure, is shown. The computer system 900 can dynamically update the second action card 982 when new data 920 is stored in cache 910 via menu application 930 (e.g., via a content monitoring service) and a second action card 982 is presented. To achieve this, when new data 920 is associated with a target application via the second action card 982 for a data template presented on the display 980, menu application 930 sends a copy of the new data 920 from cache 910 to window application 940 running as foreground process 920. The computer system 900 can then determine the action card based on a specific unit (e.g., ...). Figure 4 The determining unit 412) determines that new data is available to update the second action card 982. The window application 940 updates the second action card 982 to render the new data 920 as the updated second action card 982. For example, the new data may include any changes made to the data in the cache 910, including but not limited to those from the data source (e.g., Figure 4 New content from data source 430.

[0069] Figure 10 An exemplary flow for presenting content in an interactive menu according to an embodiment of this disclosure is illustrated. The operation of the flow may be implemented as hardware circuitry and / or stored as computer-readable instructions on a non-transitory computer-readable medium of a computer system (such as a video game system). If implemented, the instructions represent modules comprising circuitry or code executable by one or more processors of the computer system. Execution of such instructions configures the computer system to perform the specific operations described herein. Each circuitry or code combined with a processor represents means for performing one or more corresponding operations. Although the operations are shown in a specific order, it should be understood that a specific order is not required and one or more operations may be omitted, skipped, and / or reordered.

[0070] In one example, the process includes operation 1002, in which a computer system determines a data template that (i) defines a first target application for the computer system, (ii) identifies the type of content of the first target application to be cached, and (iii) associates each type with one or more presentation states. (See reference...) Figures 3 to 9 In more detail, the computer system may be based on a menu-driven application (e.g., Figure 4 The process of menu application 410 and determination unit 412 determines the data template based on one or more target applications (e.g., target application 402) running on the computer system.

[0071] In one example, the process includes operation 1004, where the computer system stores data from the first target application in a cache of the menu application. This could, for example, include responses to event data (e.g., Figure 5 Event 540) to use the menu application's computing services (e.g., Figure 4 Content monitoring service 416) receives and / or extracts data.

[0072] In one example, the process includes operation 1006, where the computer system receives user input requesting an interactive menu. For example, the user input is received from an input device (e.g., a video game controller) and corresponds to the user pressing a key or button on the input device (e.g., a specific video game controller button) or any other type of input (e.g., a mouse click). Events may be generated based on the user input indicating a command. The command may be used to present the menu. Otherwise, depending on the type of user input, the command may be used for other controls (e.g., displaying the main user interface, exiting the video game application, etc.).

[0073] In one example, the process includes operation 1008, where the computer system presents an interactive menu, which includes action cards corresponding to different target applications in a first presentation state. (See reference...) Figure 4 In more detail, the menu application uses a data template based on data from the content source to display (e.g., Figure 4 The display 450) generates and / or renders one or more action cards (e.g., Figure 4 The interactive menu of Action Card 456 (e.g., Figure 4 The interactive menu 452), wherein each action card in one or more action cards corresponds to a different target application and is presented in a first presentation state.

[0074] In one example, the process includes operation 1010, where the computer system receives user input requesting a second presentation state. (See reference...) Figure 4 In more detail, and as stated above, user input may include input from an input device (e.g., Figure 4 The input device 440) is accessed via an interactive menu, for example, via an action card (e.g., Figure 4 The interaction between the user and the computer system (Action Card 456, First Action Card 454).

[0075] In one example, the process includes operation 1012, where the computer system generates a copy of the data for the first target application from the cache. (See reference...) Figure 4 In more detail, the second action card (e.g., Figure 4 The second action card 470) is based on the cache (e.g., Figure 4 The cache 418) is copied and populated in the second action card using various content types (e.g., based on the data template associated with the target application) and populated. Figure 4 Fill in the first content 472 and the second content 474.

[0076] In one example, the process includes operation 1014, in which the computer system sends a copy of the data from the first target application to the window application. (See reference...) Figure 4 In more detail, the second action card is generated and / or rendered by the window application using a copy of data from the cache.

[0077] In one example, the process includes operation 1016, where the computer system presents a second action card corresponding to a first target application in a second presentation state and populates it with first and second content. See reference... Figure 3 In more detail, the second action card is presented in a second presentation state (e.g., Figure 3 The focus state 320 is presented, including various content types and command options. Figure 3 Command options 340 and buttons 342). The content presented in the second action card may also include controls (e.g., play / pause button, mute / unmute control, start chat, etc.).

[0078] Figure 11 An example of a startup application module and a termination menu application according to an embodiment of this disclosure is shown. (As in conjunction with...) Figures 7 to 9 As described, menu applications present windows in browse and focus states (e.g., action cards), while window applications present windows in selection state. Here, Figure 11 It further describes how the menu application instantiates the window application so that the presentation of the window can switch between the two applications when the presentation state changes from focused to selected.

[0079] Specifically, the menu application is used to present a menu comprising multiple windows. As shown, the menu application 1110 supports the presentation of window 1120 in browsing state 1122, focused state 1124, and expanded state 1126, depending on user input from the input device described herein as above. Window 1120 corresponds to an application (referred to herein as the "target application" for clarity). Data about the target application (including content and / or URIs) may be prefetched and cached based on data templates defined for the target application as described herein as above.

[0080] In one example, when window 1120 (along with other windows corresponding to different underlying applications) is added to the menu, menu application 1110 also instantiates application module 1130. Application module 1130 may be a logical container for coordinating objects related to tasks with optional programming windows (e.g., presenting a handover window). Application module 1130 may have parameters (e.g., common objects) common to different underlying applications, thereby representing a shell from which any of these applications can be quickly launched. When window 1110 is in browse state 1122 or focus state 1124, menu application 1110 does not pass content or application-related information to application module 1130 (this is in...). Figure 11 (The blank area of ​​application module 1130 is shown in the middle).

[0081] When window 1120 transitions from a focused state 1124 to an expanded state 1126 in response to a user selection of window 1120, the size, content, and selectable actions of window 1120 begin to change. The menu application passes information about this change, along with underlying application-specific parameters (e.g., state information, programming logic, etc.) corresponding to window 1120, to application module 1130. Therefore, application module 1130 will have the same action card component 1132 as the action card component 1112 presented in window 1120 during the transition to and being in the expanded state. Furthermore, application module 1130 corresponds to an instantiation of the underlying application given specific parameters of this application.

[0082] During the transition to and presence of the extended state 1126, application module 1130 supports an overlay window that has the same size as window 1120 and includes the same content and actions. The rendering process renders the overlay window on top of window 1120 such that the two windows completely overlap during the transition to and presence of the extended state 1126. Therefore, from the user's perspective, the user will perceive only one window (e.g., the overlay window), while in reality, two windows are presented on top of each other.

[0083] After the transition is complete or after a user input request action, window 1120 can be dismissed (e.g., closed) and an overlay window can be used instead. From then on, the overlay window becomes the interface to the underlying application, and the menu application 1110 can be terminated (or run in the background).

[0084] Figure 12An exemplary flow for launching an application module and terminating a menu application according to an embodiment of this disclosure is illustrated. The operation of the flow may be implemented as hardware circuitry and / or stored as computer-readable instructions on a non-transitory computer-readable medium of a computer system (such as a video game system). If implemented, the instructions represent a module comprising circuitry or code executable by one or more processors of the computer system. Execution of such instructions configures the computer system to perform the specific operations described herein. Each circuitry or code combined with a processor represents means for performing one or more corresponding operations. Although the operations are shown in a specific order, it should be understood that a specific order is not required and one or more operations may be omitted, skipped, and / or reordered.

[0085] In one example, the process includes operation 1202, in which the computer system displays video content (e.g., first content of a first application) of a video game application on a display. The video game application can be executed on the computer system, and the video game content can be displayed based on gameplay by users of the computer system (e.g., video game players).

[0086] In one example, the process includes operation 1204, where the computer system receives user input requesting a menu. For example, the user input is received from an input device (e.g., a video game controller) and corresponds to the user pressing a key or button on the input device (e.g., a specific video game controller button) or any other type of input (e.g., a mouse click). An event may be generated based on the user input indicating a command. The command may be used to present the menu. Otherwise, depending on the type of user input, the command may be used for other controls (e.g., displaying the main user interface, exiting the video game application, etc.).

[0087] In one example, the process includes operation 1206, where the computer system presents a menu, which includes multiple windows (e.g., action cards) displayed in a dynamic area of ​​the menu and multiple icons displayed in a static area of ​​the menu. For example, the menu is presented in response to a command to present the menu. Furthermore, user context and application context can be determined and used to select a specific application or remote computing service that the user is likely to be interested in. Each window within the dynamic menu area corresponds to one of these applications. Windows can also be presented in a browsing state. In one example, given the user context and application context, the window that the user is most likely to be interested in can be shown in another state (e.g., a focused state). In another example, a window can be presented in a focused state if it has been selected or is in a focused state since the menu was last closed.

[0088] In one example, the process includes operation 1208, in which the computer system instantiates an application module. The application module may have parameters common to different applications corresponding to menu windows.

[0089] In one example, the process includes operation 1210, where the computer system receives a user scrolling through a window within a dynamic menu area (or any other type of interaction within the dynamic menu area that indicates the user's focus). The user scrolling may be received based on user input from an input device, and related events may be generated based on this input.

[0090] In one example, the process includes operation 1212, in which the computer system presents a window in another state (e.g., a focused state) (e.g., an application window corresponding to an application in which the user's focus is currently located). For example, if the user scrolls over the window, the window is presented in a focused state, while the other windows are presented in a browsing state.

[0091] In one example, the process includes operation 1214, where the computer system receives a user selection on a window. This user selection can be based on user input from an input device and while the window is in a focused state. Related events can be generated based on this input.

[0092] In one example, the process includes operation 1216, in which the computer system presents a window in a different state (e.g., an expanded state). For example, the size of a window changes from a focused state to an expanded state, while the presentation of the remaining windows remains in a browsing state.

[0093] In one example, the process includes operation 1218, in which the computer system updates the application module to include parameters of the corresponding application specific to the selected window and renders the overlay window. For example, the window size, content, and actions, as well as application state information and programming logic, are passed to the application window, thereby launching an instance of the application from the application module, where this instance can use information about the size, content, and actions of the window used to render the overlay window.

[0094] In one example, the process includes operation 1220, in which the computer system renders an overlay window. For example, the rendering process also renders an overlay window on top of the window when the window changes from a focused state to an expanded state, or once it is in an expanded state.

[0095] In one example, the process includes operation 1222, in which the computer system closes the rendering of the window. For example, the window is closed after rendering an overlay window or after transitioning to an extended state. Furthermore, the menu application may be terminated or moved to the background.

[0096] Figure 13 An example of a hardware system suitable for implementing a computer system according to embodiments of the present disclosure is shown. Computer system 1300 represents, for example, a video game system, a set of back-end servers, or other types of computer systems. Computer system 1300 includes a central processing unit (CPU) 1305 for running software applications and optionally an operating system. CPU 1305 may consist of one or more homogeneous or heterogeneous processing cores. Memory 1310 stores applications and data used by CPU 1305. Storage device 1315 provides non-volatile storage and other computer-readable media for applications and data and may include fixed disk drives, removable disk drives, flash memory devices, and CD-ROMs, DVD-ROMs, Blu-ray discs, HD-DVDs, or other optical storage devices, as well as signal transmission and storage media. User input transpose 1320 transmits user input from one or more users to computer system 1300. Examples of user input devices may include a keyboard, mouse, joystick, touchpad, touchscreen, still or video camera, and / or microphone. Network interface 1325 allows computer system 1300 to communicate with other computer systems via electronic communication networks, and may include wired or wireless communication over local area networks and wide area networks such as the Internet. Audio processor 1355 is adapted to generate analog or digital audio output according to instructions and / or data provided by CPU 1305, memory 1310, and / or storage device 1315. Components of computer system 1300 (including CPU 1305, memory 1310, data storage device 1315, user input device 1320, network interface 1325, and audio processor 1355) are connected via one or more data buses 1360.

[0097] The graphics subsystem 1330 is further connected to the data bus 1360 and components of the computer system 1300. The graphics subsystem 1330 includes a graphics processing unit (GPU) 1335 and a graphics memory 1340. The graphics memory 1340 includes display memory (e.g., a frame buffer) for storing pixel data for each pixel of an output image. The graphics memory 1340 may be integrated into the same device as the GPU 1335, connected to the GPU 1335 as a separate device, and / or implemented within memory 1310. Pixel data may be provided directly from the CPU 1305 to the graphics memory 1340. Alternatively, the CPU 1305 provides the GPU 1335 with data and / or instructions defining the desired output image, and the GPU 1335 generates pixel data for one or more output images based on the data and / or instructions. The data and / or instructions defining the desired output image may be stored in memory 1310 and / or graphics memory 1340. In one implementation, the GPU 1335 includes 3D rendering capabilities for generating pixel data for an output image based on instructions and data defining the geometry, lighting, shading, texturing, motion, and / or camera parameters of a scene. The GPU 1335 may also include one or more programmable execution units capable of executing shader programs.

[0098] The graphics subsystem 1330 periodically outputs pixel data of an image from the graphics memory 1340 for display on the display device 1350. The display device 1350 can be any device capable of displaying visual information in response to signals from the computer system 1300, including CRT, LCD, plasma, and OLED displays. The computer system 1300 can provide analog or digital signals to the display device 1350.

[0099] According to various implementations, the CPU 1305 is one or more general-purpose microprocessors having one or more processing cores. Other implementations may use one or more CPU 1305s with a microprocessor architecture particularly suited for highly parallel and computationally intensive applications such as media and interactive entertainment applications.

[0100] The components of the system may be connected via a network, which, in various embodiments, can be any combination of the following: the Internet, an IP network, an intranet, a wide area network (“WAN”), a local area network (“LAN”), a virtual private network (“VPN”), a public switched telephone network (“PSTN”), or any other type of network that enables data communication between the devices described herein. The network may include both wired and wireless connections, including optical links. Many other examples are possible and obvious to those skilled in the art based on this disclosure. In the discussion herein, the network may or may not be specifically indicated.

[0101] In the foregoing description, the invention has been described with reference to specific embodiments thereof, but those skilled in the art will recognize that the invention is not limited thereto. Various features and aspects of the invention described above may be used alone or in combination. Furthermore, the invention can be utilized in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of this specification. Therefore, the specification and drawings are to be considered illustrative rather than restrictive.

[0102] It should be noted that the methods, systems, and apparatus discussed above are intended only as examples. It must be emphasized that various processes or components may be appropriately omitted, substituted, or added in various embodiments. For example, it should be understood that in alternative embodiments, the methods may be performed in a different order than described, and various steps may be added, omitted, or combined. Moreover, features described with respect to certain embodiments may be combined in various other embodiments. Different aspects and elements of embodiments may be combined in a similar manner. Furthermore, it should be emphasized that technology is constantly evolving, and therefore many elements are illustrative and should not be construed as limiting the scope of the invention.

[0103] Specific details are given in the description to provide a thorough understanding of the implementation schemes. However, those skilled in the art will understand that these implementation schemes can be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail to avoid obscuring the described implementation schemes.

[0104] Furthermore, it should be noted that the implementation scheme can be described as a process depicted in a flowchart or block diagram. Although the operations can each be described as a sequential process, many operations can be performed in parallel or simultaneously. Additionally, the order of operations can be rearranged. The process may have additional steps not included in the diagram.

[0105] Furthermore, as disclosed herein, the term "memory" or "memory cell" can refer to one or more means for storing data, including read-only memory (ROM), random access memory (RAM), magnetic RAM, core memory, disk storage media, optical storage media, flash memory devices, or other computer-readable media for storing information. The term "computer-readable media" includes, but is not limited to, portable or fixed storage devices, optical storage devices, wireless channels, SIM cards, other smart cards, and various other media capable of storing, containing, or carrying instructions or data.

[0106] Furthermore, the implementation can be carried out through hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments used to perform the necessary tasks can be stored in a computer-readable medium such as a storage medium. The processor can then perform the necessary tasks.

[0107] Unless otherwise stated, all measurements, values, ratings, locations, amplitudes, sizes, and other specifications set forth in this specification (including in the appended claims) are approximate, not precise. They are intended to have a reasonable range consistent with the functions they relate to and the conventions in the field to which they belong. “Approximately” includes tolerances of ±0.01%, ±0.1%, ±1%, ±2%, ±3%, ±4%, ±5%, ±8%, ±10%, ±15%, ±20%, ±25%, or as otherwise known in the art. “Substantially” means more than 76%, 135%, 90%, 100%, 105%, 109%, 109.9%, or, depending on the context in which the term substantially appears, values ​​otherwise known in the art.

[0108] Several embodiments have been described, and those skilled in the art will recognize that various modifications, alternative constructions, and equivalents can be used without departing from the spirit of the invention. For example, the foregoing elements may simply be components of a larger system, where other rules may take precedence over or otherwise modify the application of the invention. Furthermore, multiple steps may be performed before, during, or after considering the foregoing elements. Therefore, the above description should not be considered as limiting the scope of the invention.

Claims

1. A method for caching dissimilar applications and presenting their interactive menus, the method being implemented by a computer system, the method comprising: The data template is determined by the menu application of the computer system, wherein the cache of the menu application stores different data for different target applications based on different data templates defined for different target applications of the computer system. The data template, defined for the first target application in the different target applications, identifies the type of content of the first target application to be cached, and associates each type with one or more presentation states. The first target application is a system application or a user application and is different from the menu application. The menu application stores the data of the first target application in the cache of the menu application based on the data template. The data includes first content or a first Uniform Resource Identifier (URI) of the first content. The data also includes second content or a second URI of the second content. The first content is a first type identified in the data template and associated with a first presentation state and a second presentation state in the data template. The second content is a second type identified in the data template and associated with the second presentation state in the data template. Receive user input requesting the interactive menu from the input device; The interactive menu is presented on the display by the menu application, the interactive menu including a window presented in the first presentation state and corresponding to the different target applications, the window including a first window corresponding to the first target application, and populated with the first content based on the data cached from the menu application and based on the data template; Receive from the input device a request for user interaction with the first window in the second presentation state; The menu application generates a copy of the data of the first target application from the cache based on the user interaction with the first window; The menu application sends a copy of the data of the first target application to a window application of the computer system, the window application being different from both the menu application and the first target application; and The window application presents a second window corresponding to the first target application on the display. The second window is presented in the second presentation state and is filled by the window application using the first content and the second content based on the copy of the data and based on the data template.

2. The method of claim 1, further comprising: The calculation service of the menu application extracts the data of the first target application and additional data of other target applications of the computer system based on the different data templates before receiving the first user input; the other target applications correspond to the remaining windows in the window. as well as The computing service stores the data and the additional data in the cache of the menu application.

3. The method of claim 2, wherein presenting the interactive menu comprises: The first window is populated with the first content based on the data template defined for the first target application; Based on the additional data, a third content for a third window in the window is determined, the third window corresponding to a second target application that is different from the first target application; as well as The third window is populated with the third content based on the second data template defined for the second target application.

4. The method of claim 2, wherein the data of the first target application is extracted based on events, wherein the events include at least one of the following: the operating state of the first target application changes, new data is generated by the first target application, or new data is being sent to the first target application.

5. The method of claim 1, further comprising: After the user logs into the computer system and before the first user input is received, the menu application and the window application are launched in the corresponding background processes of the computer system, respectively. as well as After receiving the first user input, the menu application runs in the corresponding foreground process while the window application continues to run in the corresponding background process.

6. The method of claim 5, further comprising: After receiving input from the second user, the window application is run in the corresponding foreground process.

7. The method of claim 6, wherein launching the window application includes instantiating a logical container for the window application, the logical container having parameters common to the different target applications, and wherein running the window application includes sending parameters for the first target application to the window application from the menu application.

8. The method of claim 6, further comprising: The first window, which is in the second presentation state, is presented by the menu application after receiving the second user input and before running the window application in the corresponding foreground process; The second window is rendered in an overlay on top of the first window after the window application runs in the corresponding foreground process; as well as The presentation of the first window is terminated by the menu application.

9. The method of claim 1, wherein only the copy of the data is sent to the window application, and no additional copy of data from another target application in the cache is sent to the window application.

10. The method of claim 1, further comprising: The changes to the data from the cache are determined by the menu application and while the window application is rendering the second window; The menu application sends a copy of the changes from the cache to the window application; as well as The window application updates the first content in the second window based on the copy of the changes.

11. The method of claim 1, further comprising: The menu application presents command options adjacent to the first window and can be selected to generate commands that control the presentation of media content in the first target application.

12. The method of claim 11, further comprising: The menu application receives the user's selection of the command options; The menu application sends parameters for the first target application to the window application based on the user's selection; as well as After the window application runs based on the parameters, the menu application sends the command to the window application.

13. The method of claim 1, further comprising: The window application presents command options, which are displayed immediately adjacent to the second window, and can be selected to generate commands that control the presentation of media content of the first target application.

14. The method of claim 13, further comprising: The window application receives the user's selection of the command options; as well as The presentation of the media content of the first target application is controlled by the window application.

15. A computer system comprising: One or more processors; as well as One or more memories, the one or more memories storing computer-readable instructions that, when executed by the one or more processors, configure the computer system to: The menu application of the computer system determines the data template, wherein the cache of the menu application stores different data for different target applications based on different templates defined for different target applications of the computer system. The data template, defined for the first target application in the different target applications, identifies the type of content of the first target application to be cached, and associates each type with one or more presentation states. The first target application is a system application or a user application and is different from the menu application. The menu application stores the data of the first target application in the cache of the menu application based on the data template. The data includes first content or a first Uniform Resource Identifier (URI) of the first content. The data also includes second content or a second URI of the second content. The first content is a first type identified in the data template and associated with a first presentation state and a second presentation state in the data template. The second content is a second type identified in the data template and associated with the second presentation state in the data template. Receive user input requesting an interactive menu from the input device; The interactive menu is presented on the display by the menu application, the interactive menu including a window presented in the first presentation state and corresponding to the different target applications, the window including a first window corresponding to the first target application, and populated with the first content based on the data cached from the menu application and based on the data template; Receive from the input device a request for user interaction with the first window in the second presentation state; The menu application generates a copy of the data of the first target application from the cache based on the user interaction with the first window; The menu application sends a copy of the data from the first target application to a window application of the computer system, the window application being different from both the menu application and the first target application; and The window application presents a second window corresponding to the first target application on the display. The second window is presented in the second presentation state and is filled by the window application using the first content and the second content based on the copy of the data and based on the data template.

16. One or more non-transitory computer-readable media storing computer-readable instructions that, when executed on a computer system, cause the computer system to perform operations including: The data template is determined by the menu application of the computer system, wherein, The menu application's cache stores different data for different target applications based on different templates defined for different target applications of the computer system. The data template, defined for the first target application in the different target applications, identifies the type of content of the first target application to be cached, and associates each type with one or more presentation states. The first target application is a system application or a user application and is different from the menu application. The menu application stores the data of the first target application in the cache of the menu application based on the data template. The data includes first content or a first Uniform Resource Identifier (URI) of the first content. The data also includes second content or a second URI of the second content. The first content is a first type identified in the data template and associated with a first presentation state and a second presentation state in the data template. The second content is a second type identified in the data template and associated with the second presentation state in the data template. Receive user input requesting an interactive menu from the input device; The interactive menu is presented on the display by the menu application, the interactive menu including a window presented in the first presentation state and corresponding to the different target applications, the window including a first window corresponding to the first target application, and populated with the first content based on the data cached from the menu application and based on the data template; Receive from the input device a request for user interaction with the first window in the second presentation state; The menu application generates a copy of the data of the first target application from the cache based on the user interaction with the first window; The menu application sends a copy of the data of the first target application to a window application of the computer system, the window application being different from both the menu application and the first target application; and The window application presents a second window corresponding to the first target application on the display. The second window is presented in the second presentation state and is filled by the window application using the first content and the second content based on the copy of the data and based on the data template.

17. One or more non-transitory computer-readable media as claimed in claim 16, wherein the operation further comprises: The user interaction with the interactive menu is received by the menu application before the user interaction with the first window is received; as well as The menu application presents the first window in a third presentation state based on the user interaction with the interactive menu.

18. The one or more non-transitory computer-readable media of claim 17, wherein the first presentation state is a non-focus browsing presentation state, and wherein the first content includes at least one of the following: the title of the first target application, the icon of the first target application, or the media content of the first target application.

19. One or more non-transitory computer-readable media as claimed in claim 18, wherein the second presentation state is a focused presentation state, wherein the size of the first window is increased relative to the first presentation state in the second presentation state, and wherein the first window is filled in the second presentation state using at least one of the title, the icon, or the media content, and an optional action on the media content or the first window.

20. One or more non-transitory computer-readable media as claimed in claim 19, wherein the third presentation state is an extended presentation state, wherein the size of the second window in the extended presentation state is greater than the size of the first window, and wherein the second window is filled with the title, the icon, or the media content, the selectable action, and a description of the first target application or the selectable action.

21. One or more non-transitory computer-readable media as claimed in claim 20, wherein: Each of the first, second, and third presentation states is configured to present different elements according to different modes; and The data template defines the different modes of the first presentation state, the second presentation state, and the third presentation state.

22. One or more non-transitory computer-readable media as claimed in claim 21, wherein: The first rendering state is filled with fewer elements than the second rendering state; and The second presentation state is filled with fewer elements than the third presentation state.