From e3b80a96f871ba124b0aeb2ad2985b0f00eb88d1 Mon Sep 17 00:00:00 2001 From: Jeff Gilbert Date: Tue, 19 Dec 2017 00:07:50 -0800 Subject: [PATCH 1/3] Propose WEBGL_present, allowing for early Present. --- .../proposals/WEBGL_present/extension.xml | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 extensions/proposals/WEBGL_present/extension.xml diff --git a/extensions/proposals/WEBGL_present/extension.xml b/extensions/proposals/WEBGL_present/extension.xml new file mode 100644 index 0000000000..0b3d8352b0 --- /dev/null +++ b/extensions/proposals/WEBGL_present/extension.xml @@ -0,0 +1,53 @@ + + + WEBGL_present + + WebGL + working group (public_webgl 'at' khronos.org) + + + Jeff Gilbert, Mozilla + + + NN + + + + + + +

+ This extension allows content to initiate a Present action early, instead of waiting for the + standard end-of-frame auto-Present mechanism. +

+ + + + present() triggers canvas-related Present early. After calling present, the + context respects preserveDrawingBuffer like usual. + + + autoPresent disables (or re-enables) the default dirty canvas 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, present() is the only way to Present the backbuffer to the + compositor. + + +
+ + + [NoInterfaceObject] + interface WEBGL_present { + attribute boolean autoPresent = true; + + void present(); + }; + + + + + Initial revision. + + +
From 43e5748b46ab4a3013c5de79abd8021ce783becf Mon Sep 17 00:00:00 2001 From: Jeff Gilbert Date: Tue, 19 Dec 2017 12:27:55 -0800 Subject: [PATCH 2/3] Clarify behavior. --- extensions/proposals/WEBGL_present/extension.xml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/extensions/proposals/WEBGL_present/extension.xml b/extensions/proposals/WEBGL_present/extension.xml index 0b3d8352b0..a94eb72c21 100644 --- a/extensions/proposals/WEBGL_present/extension.xml +++ b/extensions/proposals/WEBGL_present/extension.xml @@ -23,15 +23,19 @@ - present() triggers canvas-related Present early. After calling present, the - context respects preserveDrawingBuffer like usual. + present() 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. - autoPresent disables (or re-enables) the default dirty canvas auto-Present. + autoPresent 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, present() is the only way to Present the backbuffer to the - compositor. + In this case, present() is the only way trigger Presentation of the backbuffer + to the compositor. From c0d94052c8dde39fdb5757515a6b735166bc98ad Mon Sep 17 00:00:00 2001 From: Jeff Gilbert Date: Wed, 20 Dec 2017 18:45:34 -0800 Subject: [PATCH 3/3] typo --- extensions/proposals/WEBGL_present/extension.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/proposals/WEBGL_present/extension.xml b/extensions/proposals/WEBGL_present/extension.xml index a94eb72c21..26a127b944 100644 --- a/extensions/proposals/WEBGL_present/extension.xml +++ b/extensions/proposals/WEBGL_present/extension.xml @@ -34,7 +34,7 @@ autoPresent 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, present() is the only way trigger Presentation of the backbuffer + In this case, present() is the only way to trigger Presentation of the backbuffer to the compositor.