[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Public WebGL] using the same context with multiple canvases




On 12/11/2012 11:35 PM, Gregg Tavares (社用) wrote:
    canvas1 = document.createElement("canvas");
    canvas2 = document.createElement("canvas");
    canvas3 = document.createElement("canvas");

    gl = WebGLRenderingContext();

    db1 = new Drawingbuffer({ alpha: false });
    db2 = new Drawingbuffer({ antialias: false });
    db3 = new Drawingbuffer({ preserveDrawingBuffer: true });

    gl.bindDrawingbuffer(db1);
    gl.drawXXX();
    gl.bindDrawingbuffer(db2);
    gl.drawXXX();
    gl.bindDrawingbuffer(db3);
    gl.drawXXX();


Mmm. What does this look like conceptually for the current usage? That is:

var canvas = document.createElement("canvas");
var gl = canvas.getContext("webgl", {...});

does that getContext conceptually create a Drawingbuffer and call setDrawingbuffer on the canvas, as well as call bindDrawingbuffer on the gl context?

Is Drawingbuffer webgl-specific, or a general abstraction? (Bikeshed note: we need a better name than "Drawingbuffer" IMO...). However, we'd still need to determine the types of contexts that it can be used with if it's general. Maybe something like:

gl = new WebGLRenderingContext();
db1 = gl.createDrawingBuffer({ depth: false });
canvas.displayDrawingBuffer(db1); // setDrawingBuffer on the canvas seems like a weird API name, as we're really choosing what buffer to display; what buffer is drawn to is selected by the context


twodee = Canvas2DRenderingContext();
db2 = twodee.createDrawingBuffer({ doubleBuffer: true });
canvas.displayDrawingBuffer(db2); // is this legal; canvas originally displayed a webgl buffer?


or

db1 = new Drawingbuffer("webgl", { depth: false });
db2 = new Drawingbuffer("2d", { doubleBuffer: true });

    - Vlad



-----------------------------------------------------------
You are currently subscribed to public_webgl@khronos.org.
To unsubscribe, send an email to majordomo@khronos.org with
the following command in the body of your email:
unsubscribe public_webgl
-----------------------------------------------------------