Commit Graph

175 Commits

Author SHA1 Message Date
Boris Zbarsky
cc67ef4fb6 Bug 749485. Switch new DOM bindings to using a struct for keeping track of failures for fallible methods. r=peterv,bent
ErrorResult is in a separate header file so it can be included from all over the
place without having to pull in mozilla/dom/Utils.h and all the xpconnect gunk
that needs.
2012-05-05 21:15:11 -04:00
Boris Zbarsky
edbe43b288 Bug 749539. Make IsContextStable an inline function. r=bjacob 2012-05-05 09:28:25 -04:00
Boris Zbarsky
ab17ec6502 Bug 745897. Add the new DOM bindings APIs to WebGLContext. r=bjacob
This adds APIs suitable for calling from the new DOM bindings to WebGLContext and makes the XPCOM
versions of the WebGL context API call through to the new-binding versions.
2012-05-04 12:38:44 -04:00
Boris Zbarsky
dc79d60c42 Bug 747825. Make the WebGLContext a wrapper cache. r=peterv 2012-05-04 12:36:40 -04:00
Benoit Jacob
86217acddb Bug 736481 - 7/7 - ForceLoseContext should not do anything on already lost context awaiting event - no review, a=blocking-fennec
Sorry for this little no-review patch. I meant to roll this into another of the patches for review and apparently forgot. It's 3 lines and quite trivial.
2012-04-21 16:48:22 -04:00
Benoit Jacob
1b53206894 Bug 736481 - 6/7 - WebGL lost context handling: check if we still have a canvas - r=jgilbert, a=blocking-fennec 2012-04-21 16:48:22 -04:00
Benoit Jacob
674aed832a Bug 736481 - 5/7 - make memory-pressure observer lifetime match WebGL context lifetime - r=jgilbert, a=blocking-fennec 2012-04-21 16:48:22 -04:00
Benoit Jacob
b5fa6b73b1 Bug 736481 - 4/7 - WebGL lost contexts: remove ShouldEnableRobustnessTimer, rename Robustness to ContextLoss - r=jgilbert, a=blocking-fennec 2012-04-21 16:48:22 -04:00
Benoit Jacob
3c1e40fdd9 Bug 736481 - 2/7 - lose WebGL context on memory-pressure events - r=jgilbert, a=blocking-fennec 2012-04-21 16:48:22 -04:00
Benoit Jacob
7e0123bd58 Bug 736481 - 1/7 - simplification in WebGL lost context handling - r=jgilbert, a=blocking-fennec 2012-04-21 16:48:22 -04:00
Benoit Jacob
f47413694c Bug 746296 - Check for antialiasing should be samples>1 not samples>0 - r=jgilbert, a=akeybl 2012-04-19 23:28:01 -04:00
Benoit Jacob
343931424b Bug 713369 - don't try to fall back to another GL provider, *at all* - r=jgilbert 2012-03-26 15:20:35 -04:00
Benoit Jacob
27f43955f9 Bug 728029 - Preserve added JS properties on the JS object returned by webgl.getExtension - r=peterv 2012-03-26 14:59:04 -04:00
Jeff Gilbert
5c20276bf3 Bug 696569 - Allow for non-premultiplied data for canvases - r=bjacob,joedrew 2012-03-23 15:10:50 -07:00
Benoit Jacob
f49757071d Bug 711656 - report force-enabled features in crash reports - r=jrmuizel
Force-enabled features will be reported with a '!' instead of the usual '?' in AppNotes in crash reports.
2012-02-27 16:33:19 -05:00
Jeff Gilbert
3aa8b20cdf Bug 727178 - Revert ANGLE path to using glFinish to resolve - r=bjacob 2012-02-24 15:10:18 -08:00
Florian Boesch
ada0d9ea9e Bug 728354 - Implement WebGL EXT_texture_filter_anisotropic extension *proposal* - r=bjacob
The spec proposal for this extension is at
  https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/extensions/proposals/EXT_texture_filter_anisotropic/index.html

This adds a conformance test as well, that will have to be merged upstream.
2012-02-23 08:43:57 -05:00
Daniel Holbert
2d7133b94c Backout 5311f051974e (Bug 729272) due to webgl test failures 2012-02-22 16:36:43 -08:00
Jeff Gilbert
d4b5a3895f Bug 729272 - Abandon ANGLE during WebGL init if can't provide d3d share handles - r=bjacob 2012-02-22 14:08:24 -08:00
Andrew Quartey
6ba173652f Bug 710594 - Adapt WebGL about:memory reporters to the new memory reporting API. r=njn,bjacob.
--HG--
extra : rebase_source : 49a48f5237e3fb8fe17ceb30e469de253e985028
2012-02-19 19:58:08 -08:00
Jonathan Kew
36e957aa2c bug 726988 - remove stray instances of PR_TRUE in WebGL. r=bjacob 2012-02-14 16:17:19 +00:00
Benoit Jacob
069451351b Bug 707460 - Fix WebGL framebuffer statuses and errors - r=jgilbert 2012-01-24 16:12:31 -05:00
Benoit Jacob
b248d21643 Bug 706674 - WebGLFramebufferAttachment's are not WebGLRectangleObject's - r=jgilbert
The main change is: remove the WebGLRectangleObject inheritance from
WebGLFramebufferAttachment, and instead have WebGLFramebufferAttachment
query its texture or renderbuffer for their dimensions, when needed.

In the course of doing this, a couple other needed changes appeared:
 - let WebGLTexture::ImageInfo inherit WebGLRectangleObject, so that WebGLFramebufferAttachment can return a pointer to it right away in the texture case
 - add a FramebufferRectangleObject() method to WebGLContext, that will return the dimensions of the bound FBO if there is one, otherwise will just return the contexts' own dimensions.
 - in order to do that, it was very convenient to let WebGLContext inherit WebGLRectangleObject so that FramebufferRectangleObject() could just return a pointer to that in the no-bound-FBO case.
 - move WebGLRectangleObject up in the file, above WebGLContext
 - there was a plain bug in WebGLFramebufferAttachment::HasAlpha(), we were not using the right image info within the texture.
2012-01-24 16:12:31 -05:00
Benoit Jacob
4504ca0fe3 Bug 612320 - remove useless viewport changes - r=vlad 2012-01-16 17:07:18 -05:00
Benoit Jacob
aa0124a55d Bug 717584 - FAIL_ON_WARNINGS in content/canvas/src - r=Ms2ger 2012-01-16 17:07:18 -05:00
Benoit Jacob
f1b1eafb82 Bug 713369 - don't try to fall back to another GL provider, if one GL provider gives a WebGL initialization error - r=jgilbert 2012-01-16 17:07:18 -05:00
Doug Sherk
83bf338262 Bug 710163: (part 2) fix EXT_context_loss semantics r=bjacob
Housekeeping stuff; update all WebGL API functions to use !IsContextStable()
instead of mContextLost.
2012-01-04 16:12:05 -05:00
Doug Sherk
f0ca08618c Bug 710163: fix EXT_lose_context semantics r=bjacob
The EXT_lose_context extension spec has had updates from Khronos which break our
current implementation. Primarily, it is mostly asynchronous now with more
heavily defined behavior.

NOTE: This patch will not pass on our current copy of context-lost.html and
context-lost-restored.html see bug for more info.
2012-01-04 16:12:03 -05:00
Jeff Gilbert
572d367333 Bug 701269 - Deguarantee that ResizeOffscreenFBO clears its buffers - r=bjacob 2011-12-19 15:47:54 -08:00
Jeff Walden
279c3635c0 Bug 711799 - Fix a bunch of unused-variable warnings. r=dholbert
--HG--
extra : rebase_source : 91fc77dca316018652d4d99f6d4cc8d0f7195e6e
2011-12-18 01:00:42 -05:00
Jeff Gilbert
57ad493b06 Bug 705024 - Guarantee GLContexts are resolved properly - r=bjacob 2011-12-16 14:24:46 -08:00
Doug Sherk
797ba840ff Bug 708207: implement WebGL's getShaderPrecisionFormat r=bjacob 2011-12-16 13:11:59 -08:00
Doug Sherk
f65dc6e8d7 Bug 707861: implement EXT_robustness for ANGLE r=bjacob a=mbrubeck
Similar to ARB_robustness, uses our current robustness framework. There are some
problems preventing this from being completely usable, but we can't do anything
about them yet. See the bug for more info.
2011-12-14 16:57:09 -08:00
Benoit Jacob
a959069916 Bug 707033 - Kill the hashtables of WebGLUniformLocation's held by WebGLProgram's - r=jgilbert
Currently, WebGLProgram holds a hashtable of refptrs to all WebGLUniformLocation's created from it.

It's used for one thing: to ensure that multiple getUniformLocation() calls on same uniform return the same WebGLUniformLocation object.

However, in a discussion on the public_webgl mailing list this week, we agreed that this was not mandated by the spec and that on the contrary, to ensure consistent behavior across browsers, we're going to require that NOT to happen. So this becomes a conformance issue.

Removing this hashtable also simplifies code and ownership patterns.
2011-12-04 14:15:43 -05:00
Benoit Jacob
dc5723fe15 Bug 705904 - [6/6] - Kill nsRefPtrHashtables of WebGL objects, allow unreferenced objects to be freed, fix about:memory reporting of deleted objects - r=jgilbert
This patch takes care of WebGLFramebuffer.
2011-12-04 14:15:43 -05:00
Benoit Jacob
f99eb362c0 Bug 705904 - [5/6] - Kill nsRefPtrHashtables of WebGL objects, allow unreferenced objects to be freed, fix about:memory reporting of deleted objects - r=jgilbert
This patch takes care of WebGLRenderbuffer.
2011-12-04 14:15:43 -05:00
Benoit Jacob
cc4ac52540 Bug 705904 - [4/6] - Kill nsRefPtrHashtables of WebGL objects, allow unreferenced objects to be freed, fix about:memory reporting of deleted objects - r=jgilbert
This patch takes care of WebGLShader.
2011-12-04 14:15:43 -05:00
Benoit Jacob
60f1ae571c Bug 705904 - [3/6] - Kill nsRefPtrHashtables of WebGL objects, allow unreferenced objects to be freed, fix about:memory reporting of deleted objects - r=jgilbert
This patch takes care of WebGLProgram.
2011-12-04 14:15:43 -05:00
Benoit Jacob
f86dc75f37 Bug 705904 - [2/6] - Kill nsRefPtrHashtables of WebGL objects, allow unreferenced objects to be freed, fix about:memory reporting of deleted objects - r=jgilbert
This patch takes care of WebGLBuffer.
2011-12-04 14:15:43 -05:00
Benoit Jacob
d295edc325 Bug 705904 - [1/6] - Kill nsRefPtrHashtables of WebGL objects, allow unreferenced objects to be freed, fix about:memory reporting of deleted objects - r=jgilbert
This patch takes care of WebGLTexture, and introduces the WebGLFastArray helper (see comment).
2011-12-04 14:15:43 -05:00
Benoit Jacob
cbefb6a7a2 Bug 704839 - [4/9] - Refactor mutual ownership of WebGL objects - r=jgilbert
This patch switches to the new mutual ownership pattern for WebGL objects, based on maintaining a second WebGL-specific refcount mirroring the OpenGL refcount which we can't access, using the helper classes that were introduced in patches 1 and 2.
2011-12-04 14:15:42 -05:00
Benoit Jacob
b39d1c2e9f Bug 705668 - Remove IIDs on WebGL implementation classes - r=ehsan
These IIDs were used in the past to check, using do_QueryInterface, that the objects passed to WebGL functions were really of the expected type. Now that WebGL classes are marked 'builtinclass' in the IDL and that check has been removed (see bug 638328), none of that is needed anymore.
2011-12-04 14:15:42 -05:00
Doug Sherk
6b8258d114 Bug 660070: catch EGL_CONTEXT_LOST and send WebGL an event for it r=bjacob
Catches the EGL_CONTEXT_LOST error which occurs after driver resets, and sends a
WebGL context the canvas event webglcontextlost when this occurs.
2011-12-02 23:52:35 -08:00
Michael Wu
8ded2a05cd Bug 703307 - Fix build/crash in gonk, r=cjones 2011-11-22 11:51:51 -08:00
Doug Sherk
e6a246b74c Bug 656824: changed WebGL robustness timer to not get reset after each draw operation r=bjacob
This patch should improve performance of the robustness timer by not resetting
it each time a draw operation happens. It still checks if there's any activity
and, if not, it will stop firing it. It includes a single extra timer firing
after activity dies to make sure we don't miss anything. Also includes a fix for
robustness being marked as existing when it really isn't.
2011-11-18 22:57:29 -05:00
Benoit Jacob
2e4e1bd781 Bug 699516 - Rename WEBKIT_lose_context to WEBGL_EXT_lose_context - r=dsherk
See today's discussion on public_webgl list. WEBGL_EXT_lose_context will be officially created in a few days.
2011-11-03 20:29:57 -04:00
Benoit Jacob
1ac69bdbd8 Bug 699522 - WebGL lose_context extension was not listed by webgl.getSupportedExtensions() - r=dsherk 2011-11-03 15:52:52 -04:00
Doug Sherk
b0cc51bfe5 Bug 695912: allow forcing MSAA on r=jgilbert
Allows forcing MSAA on even if we determine through the blocklist that the user
probably shouldn't be running it.
2011-11-03 10:50:40 -04:00
Doug Sherk
332f23c4b9 Bug 695912: implemented antialiasing blocklisting r=jgilbert
Antialiasing can be blocked through the downloaded blocklist now, as well as
static analysis compiled into the OS-specific handlers for graphics features.
2011-11-03 10:50:40 -04:00
Benoit Jacob
688f2ae9c1 Bug 677543 - Not clearing WebGL framebuffer in teapot demo - r=jgilbert
We are supposed to clear the WebGL framebuffer after it's been presented to the compositor and before the next draw operation, and were using the wrong way to know when we got composited. The right way is DidTransactionCallback.
2011-10-31 17:14:12 -04:00