Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Propose WEBGL_present, allowing for early Present. #2564

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions extensions/proposals/WEBGL_present/extension.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<proposal href="proposals/WEBGL_present/">
<name>WEBGL_present</name>

<contact> <a href="https://www.khronos.org/webgl/public-mailing-list/">WebGL
working group</a> (public_webgl 'at' khronos.org) </contact>

<contributors>
<contributor>Jeff Gilbert, Mozilla</contributor>
</contributors>

<number>NN</number>

<depends>
<api version="1.0"/>
</depends>

<overview>
<p>
This extension allows content to initiate a Present action early, instead of waiting for the
standard end-of-frame auto-Present mechanism.
</p>

<features>
<feature>
<code>present()</code> triggers canvas-related Present early, but does not immediately
trigger page composition.
After calling present, the context respects preserveDrawingBuffer like usual, and clears
the backbuffer-dirty bit, but does not clear the canvas-dirty bit.
The canvas-dirty bit means the now-frontbuffer (previously-backbuffer) will be composited
like normal at the end of the frame.
</feature>
<feature>
<code>autoPresent</code> disables (or re-enables) the default backbuffer-dirty auto-Present.
When disabled, the context will not automatically Present its backbuffer to the compositor
even if the backbuffer has been drawn into.
In this case, <code>present()</code> is the only way to trigger Presentation of the backbuffer
to the compositor.
</feature>
</features>
</overview>

<idl xml:space="preserve">
[NoInterfaceObject]
interface WEBGL_present {
attribute boolean autoPresent = true;

void present();
};
</idl>

<history>
<revision date="2017/12/19">
<change>Initial revision.</change>
</revision>
</history>
</proposal>