<div class="gmail_quote">On Wed, Apr 4, 2012 at 4:20 PM, Boris Zbarsky <span dir="ltr"><<a href="mailto:bzbarsky@mit.edu" target="_blank">bzbarsky@mit.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
The IDL says:<br>
<br>
  WebGLContextAttributes getContextAttributes();<br>
<br>
This is not a method that has explicit context lost handling, so we end up in the 6-step algorithm in <a href="https://www.khronos.org/registry/webgl/specs/latest/#5.14" target="_blank">https://www.khronos.org/<u></u>registry/webgl/specs/latest/#<u></u>5.14</a><br>


<br>
We reach step 5 with "use default value" set to true.<br>
<br>
We return nothing in step 5.1, since the return value is not a nullable type or 'any'.<br>
<br>
Step 5.2 says "Terminate this algorithm without calling the method implementation".  What does that mean?  What's the actual return value?  Is a JS exception thrown?  If so, which one?<br>
<br>
I'm guessing the return type in this case should just be "WebGLContextAttributes?"...<br>
</blockquote><div> <br>Since it's easy to keep this information around after a context loss, I think it'd be better for this function to have explicit context lost handling, and always return the context attributes.  Not returning null when we don't have to eliminates the user bugs that will be caused by rarely returning null.  People don't write:<br>

<br>var attr = ctx.getContextAttributes()<br>
if(attr != null && attr.alpha) <br>
    // ...<br>
<br>
they simply say "if(ctx.getContextAttributes().alpha)".  Never returning null eliminates an entire small category of bugs.<br><br>There may be other uses of being able to grab the context attributes after a context loss, too, eg. someCanvas.getContext("webgl", otherCtx.getContextAttributes()).<br>

</div></div><br><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">There are similar issues with various creation functions and whatnot.<br></blockquote>

<br>For functions like createTexture, I think they should behave as described in <a href="https://www.khronos.org/webgl/public-mailing-list/archives/1203/msg00086.html">https://www.khronos.org/webgl/public-mailing-list/archives/1203/msg00086.html</a>.  If that's done, those functions would have explicit context loss handling, and wouldn't have nullable return values.<br>
<br>-- <br>Glenn Maynard<br><br>