This commit implements:
* WebGLFramebuffer
* WebGLRenderbuffer
* WebGLTexture
And adds the following methods to `WebGLRenderingContext`:
* create{Texture,Framebuffer,Renderbuffer}
* bind{Texture,Framebuffer,Renderbuffer}
* destroy{Buffer,Texture,Framebuffer,Renderbuffer}
Fixes:
* WebGLUniform location shouldn't inherit from WebGLObject.
Known Issues:
* WebGL objects have to be destroyed on drop, we may want to keep a reference to the context, or maybe a clone of the renderer to achieve this
Also refactors a huge part of the current implementation, to allow
failing on creation of different WebGL objects.
Blocked on https://github.com/servo/gleam/pull/22
A reftest for most of the added functionality is not doable right now,
we need a few more functions in order to upload a texture, for example.
Source-Repo: https://github.com/servo/servo
Source-Revision: e09c555a41b0803388e54013ac8885fb789a0fa6
@jdm @ecoal95 I'm working on making VR happen in the Browser and I want to bring to Servo the [webVR APIs](https://github.com/MozVR/webvr-spec/blob/master/webvr.idl) we already have in Gecko. Before anything happens we need a working implementation of WebGL (and also the [fullscreen API](https://fullscreen.spec.whatwg.org/)). My implementation is very basic and probably naive (I just recently started to contribute to Servo). My patch is just a starting point:
- It only implements ```clearColor``` and ```clear``` methods of the [WebGL spec](https://www.khronos.org/registry/webgl/specs/latest/).
- It uses the readback strategy that ```canvasRenderingContext2D``` is using (The webgl task paints stuff independently on it's own buffer and the compositor task request the pixels back to the webgl task when it needs them) I'm sure there are much better ways to handle this. Latency and FPS are critical in VR so we have to figure out the fastest way to push pixels to the screen. I've read something about layerizing the canvas but I'm still not sure what that even means :)
- There's an included test you can try ```./mach run tests/ref/webgl-context/clearcolor.html```
@ecoal95 I know you'll be working on this for the next three months. With a foundation in place we will be able to make quick progress in parallel. This is exciting!
Source-Repo: https://github.com/servo/servo
Source-Revision: e4b620ea54c94e03095e4108bce94ec750416bba
This is a series of already-reviewed changes by @yodalee from #5025, rebased onto current servo master, with some fixups applied:
* Fixed build errors/warnings from the latest rust upgrade.
* Marked `tests/wpt/web-platform-tests/encoding/single-byte-decoder.html` as expecting CRASH.
I could not verify locally that the new test annotation is correct, since the test appears to hang rather than crash on my Linux box. (Or maybe I just didn't wait long enough.) If this crash isn't consistent, or if it takes a long time, maybe we should skip this test instead?
r? @jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 4846607e189a65baf8d9ac6566594b7893d07f12
Now, we have many documents about dom bindings as inline comments. It's better to fuse a standalone markdown document to them.
Source-Repo: https://github.com/servo/servo
Source-Revision: 2c5155a119872ccdfb614c4cd5b1379de20ab595
This gives us a better place to put DOM documentation, which I'd like to start
adding.
Source-Repo: https://github.com/servo/servo
Source-Revision: ccdf0bd65e415eff024e034519f733eeded32812