[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Public WebGL] How to set a canvas backing store to display units?
On Tue, Jun 12, 2012 at 7:34 PM, Glenn Maynard <email@example.com>
On Tue, Jun 12, 2012 at 8:52 PM, Gregg Tavares (社用) <firstname.lastname@example.org>
that won't work. Like I said, drawingBufferWidth and drawingBufferHeight are for the actual size. If you ask for canvas.width = 9000 and your GL can only handle 2048 you'll get 2048. At that point
canvas.width = 9000
canvas.drawingBufferWidth = 2048
If you still set gl.viewport to canvas.width you'll get the wrong results when you render.
I don't follow. You're *supposed* to call gl.viewport(0, 0, canvas.width, canvas.height); it shows that in an example right in the spec (2.3) and it's what everyone's doing.
The spec is wrong
If the drawing buffer is larger (high-res displays) or smaller (limited texture sizes) than the canvas, that should only affect the backing store (drawingBufferWidth), not what you pass to gl.viewport (the size of the canvas in CSS pixels).
Actually, using a larger backing store than the canvas size doesn't even seem like new behavior. It should have the same effects as using a smaller one.
Remember, gl.viewport is not relative to the backing store. It's relevant to the size of the currently bound framebuffer OR the backing store if one is not bound.