Reentrant Window Manager for Visual Effects via Buffer Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Prior art compositing window managers restrict applications from generating visual effects based on prior composited window memory due to centralized management and distinct memory spaces, preventing applications from accounting for occlusion and transparency effects.
Innovation Solution
A reentrant window manager approach that allows applications to composite bitmap objects into an assembly buffer and pass control to a second application for processing hierarchically structured objects, enabling the generation of unique visual effects by referencing the window manager's memory buffer state.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a centralized compositing window manager is used to manage all window memory, then memory management is simplified and security is improved, but applications cannot generate visual effects based on prior composited window memory
Solution Approach 1:
The patent introduces an intermediary mechanism where the window server captures prior composited window memory into a buffer, and applications can reference this buffer to generate visual effects. This intermediary buffer allows applications to access composited memory without violating the centralized memory management model, thus maintaining security while enabling visual effects.
Solution Approach 2:
The patent segments the memory access rights by separating the composited window memory into a distinct buffer that can be referenced by applications. This segmentation allows the window server to maintain centralized control over memory management while applications can access specific portions of composited memory for generating visual effects like reflections and occlusions.
2Reliability
If each application is allocated its own distinct memory space, then memory isolation and security are improved, but applications cannot access prior composited window memory to generate visual effects
Solution Approach 1:
The window server acts as an intermediary that bridges the memory isolation barrier. It captures prior composited window memory into a buffer that applications can reference across memory boundaries. This allows applications to access composited memory for visual effects while maintaining strict memory isolation through the window server's controlled buffer access mechanism.
Solution Approach 2:
The patent makes the composited window buffer a universal reference point that any application can access. This universal buffer serves multiple functions: it maintains memory isolation for security while simultaneously enabling applications to generate various visual effects such as reflections, occlusions, and other composited effects based on prior window states.
3Productivity
If the window server composites all windows in a fixed back-to-front order, then compositing performance is improved, but applications lose flexibility in controlling the compositing sequence for visual effects
Solution Approach 1:
The window server performs preliminary compositing of windows in a fixed back-to-front order to generate the composited buffer. This preliminary action maintains high compositing performance. Then, applications can reference this pre-composited buffer to generate additional visual effects, allowing flexibility without compromising the performance of the base compositing operation.
Solution Approach 2:
The patent segments the compositing process into two distinct phases: the window server's fixed-order compositing for performance, and application-level compositing using the captured buffer for flexibility. This segmentation allows each phase to optimize independently, with the window server maintaining productivity while applications gain control for visual effects.
Data Source
AI summary
Systems, methods, and computer readable media for implementing reentrant compositing window manager applications are described. In general, techniques are disclosed for using a second application to composite portions of hierarchically structured objects and the window manager to composite certain other portions of the same object. More particularly, a window manager application may be used to composite objects of a first type (e.g., application backing store bitmaps) and then call or invoke a second application to composite objects of a second type (e.g., hierarchically structured objects). The second type of object includes information (e.g., a reference) of the composite window manager's output buffer at the time the second application was invoked. This knowledge may be used by the second application to call back into the window manager in a manner that permits the generation of unique visual effects without violating modern memory management scriptures regarding the separation of application memory spaces.


