| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
This avoids problems like:
https://github.com/servo/servo/issues/9006#issuecomment-170007845
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
webgl: Fix texturing
These two tiny changes were making WebGL textures not work.
It was not seen in our texturing test since it only used one texture,
we render to a texture by default, and that texture was bound to
`gl::TEXTURE_2D`.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8788)
<!-- Reviewable:end -->
|
| |
| |
| |
| |
| |
| | |
The validations performed in the script side of this should always
prevent this from happening, and this will allow us to catch bugs like
the previous one.
|
| |
| |
| |
| |
| |
| |
| | |
These two tiny changes were making WebGL textures not work.
It was not seen in our texturing test since we render to a texture by
default, and that texture was bound to `gl::TEXTURE_2D`.
|
|/
|
|
| |
CompressedSubTexImage2D and re-enable individual webgl WPT tests.
|
| |
|
|
|
|
| |
This merges import blocks that were reported by tidy as unmerged.
|
| |
|
|
|
|
|
|
|
|
| |
This commit adds angle-based validation and translation to WebGL
shaders.
The changes to the tex_image_2d test is neccessary (it was not valid
GLES 2.0 shader language).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit implements WebGL's:
* cullFace
* frontFace
* enable
* disable
* depthMask
* colorMask
* clearDepth
* clearStencil
* depthFunc
* depthRange
* hint
* lineWidth
* pixelStorei
* polygonOffset
* texParameteri
* texParameterf
* texImage2D (partially)
It inlines a lot of OpenGL calls to keep the file
`components/canvas/webgl_paint_task.rs` as small as possible while
keeping readability.
It also improves error detection on previous calls, and sets node damage
on the canvas in the drawing calls.
It adds a `TexImage2D` reftest, even though it's not enabled because:
* WebGL paints the image when it loads (asynchronously), so the reftest doesn't wait for it and it finishes early
* If we change the source for the base64 src of the image it works as expected in non-headless mode, but the test harness locks
|
| |
|
|
|
|
|
|
| |
To actually make the multiprocess communication work, we'll need to
reroute the task creation to the pipeline or the compositor. But this
works as a first step.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The idea here is to land this before making images and canvas IPC-safe,
because this will shake out bugs relating to the shared memory. There
are currently test timeouts that are preventing multiprocess images and
canvas from landing, and I believe those are due to the inefficiency of
sending large amounts of data in the unoptimized builds we test with. By
moving to shared memory, this should drastically reduce the number of
copies and `serde` serialization.
Under the hood, this uses Mach OOL messages on Mac and temporary
memory-mapped files on Linux.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This improves the encapsulation and consistency in our WebGL
implementation.
Also allows to implement new methods such as `getShaderSource()`.
It will also allow us to use `delete()` in the destructors of them (note
that we will want to keep track of them from the context).
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* activeTexture
* blendColor
* blendFunc
* blendFuncSeparate
* blendEquation
* blendEquationSeparate
Blocked on gleam.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
This implements the `canvas`, `drawingBufferHeight` and
`drawingBufferWidth` getters to `WebGLRenderingContext`, and an initial
version of `getParameter`.
|
|
|
|
|
|
|
| |
This commit also:
* Allows to return non-rootable dictionaries from
Codegen.
* Merges the two context types in an enum type.
|
|
|
|
| |
Part of https://github.com/servo/servo/issues/6041
|
|
|
|
|
|
|
| |
Note that this keeps using readback right now, `NativeSurface` painting
will be implemented soon.
Also see https://github.com/servo/servo/issues/6142
|
|
|
|
|
| |
This clarifies the code flow in WebGLPaintTask::start a bit, and as a bonus,
reduces the line lengths.
|
|
|
|
|
|
|
|
|
|
| |
Now we have mac support, and since android build is broken, we can
drop glutin from WebGL code.
Went back to upstream
(see: https://github.com/servo/rust-offscreen-rendering-context/pull/1#issuecomment-99234534)
Rebased
|
| |
|
| |
|
| |
|
| |
|
|
|