Cross-Platform Rendering Engine Thread Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software developers face challenges in providing a consistent user experience across multiple platforms due to significant differences in how operating systems handle graphics and user interface rendering, leading to inefficiencies and potential unresponsiveness of applications.

Innovation Solution

A cross-platform rendering engine acts as an intermediary between applications and the compositor, using content descriptions instead of rasterized images to manage rendering, allowing for platform-agnostic code and improved responsiveness by utilizing multiple processing threads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If the application thread handles all rendering tasks, then the application logic remains simple and centralized, but the application becomes unresponsive when rendering is delayed

Engineering Contradiction:
Improveapplication responsivenessVSAvoidthread management complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The rendering system is segmented into two independent threads: the application thread that generates content descriptions and the user interface thread that performs rasterization. This segmentation allows rendering tasks to be distributed across threads, preventing the application thread from being blocked by rendering delays and maintaining application responsiveness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Content descriptions serve as an intermediary data structure between the application thread and user interface thread. The application thread produces content descriptions that describe application content without requiring the application thread to be active during rendering, enabling asynchronous rendering operations that maintain responsiveness.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If rasterization is handled by the user interface thread, then application responsiveness improves, but rendering may be delayed if the user interface thread is busy

Engineering Contradiction:
Improveapplication responsivenessVSAvoidrendering delay
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The application thread performs preliminary actions by generating content descriptions in advance that fully describe the application content. These pre-prepared content descriptions can be immediately processed by the user interface thread for rasterization without requiring the application thread to remain active, reducing rendering delays while maintaining responsiveness.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If platform-specific graphics functions are implemented directly, then the application can utilize native functionality, but the code requires substantial rewriting for each platform

Engineering Contradiction:
Improvecross-platform compatibilityVSAvoidcode maintenance complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system uses a universal content description format that can represent application content in a platform-agnostic manner. This universal representation allows the same content descriptions to be processed on different platforms without requiring platform-specific code in the application, achieving cross-platform compatibility while reducing code maintenance complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

Content descriptions act as an intermediary layer between the application and platform-specific rendering systems. The application interacts with the universal content description interface, while the user interface thread handles platform-specific rasterization details, isolating platform dependencies from the application code and simplifying cross-platform deployment.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10157593B2Cross-platform rendering engine
Publication Date: 2018.12.18 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10157593B2 patent drawing
  • US10157593B2 patent drawing
  • US10157593B2 patent drawing

AI summary

A cross-platform rendering engine. The cross-platform rendering engine serves as an intermediary between the application and the operating system for displaying application content on the screen allowing software developers to write platform-agnostic application code. The application sends content to the cross-platform rendering engine in the form of resource-efficient content descriptions describing the content to be displayed. In turn, cross-platform rendering engine stores the content descriptions and provides rasterized images generated from the content descriptions to the compositor as needed. In the event that a content description corresponding to the texture needed by the compositor is not available, the cross-platform rendering engine pulls the content description from the application. By producing rasterized images from a user interface thread on behalf of the application rather than waiting for the application thread, the cross-platform rendering engine improves the overall responsiveness of the application and contributes to a better user experience.