mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
canvas: Add HTMLVideoElement to CanvasImageSource union type (#37135)
Follow to the specification and add HTMLVideoElement to CanvasImageSource union type to allow use it as image source for createPattern/drawImage operations. https://html.spec.whatwg.org/multipage/#canvasimagesource https://html.spec.whatwg.org/multipage/#dom-context-2d-createpattern https://html.spec.whatwg.org/multipage/#dom-context-2d-drawimage The HTMLVideoElement media resource has an associated origin: - media provider object (MediaStream/MediaSource/Blob): CORS-same-origin - URL record: CORS-cross-origin/CORS-same-origin https://html.spec.whatwg.org/multipage/media.html#media-resource Testing: - html/canvas/element/* - html/semantics/embedded-content/the-canvas-element/* Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
This commit is contained in:
parent
4f4c99a39e
commit
644138c1da
9 changed files with 184 additions and 88 deletions
|
@ -32,12 +32,11 @@ use crate::dom::bindings::codegen::Bindings::WebGL2RenderingContextBinding::{
|
|||
WebGL2RenderingContextConstants as constants, WebGL2RenderingContextMethods,
|
||||
};
|
||||
use crate::dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::{
|
||||
WebGLContextAttributes, WebGLRenderingContextMethods,
|
||||
TexImageSource, WebGLContextAttributes, WebGLRenderingContextMethods,
|
||||
};
|
||||
use crate::dom::bindings::codegen::UnionTypes::{
|
||||
ArrayBufferViewOrArrayBuffer, Float32ArrayOrUnrestrictedFloatSequence,
|
||||
HTMLCanvasElementOrOffscreenCanvas,
|
||||
ImageDataOrHTMLImageElementOrHTMLCanvasElementOrHTMLVideoElement, Int32ArrayOrLongSequence,
|
||||
HTMLCanvasElementOrOffscreenCanvas, Int32ArrayOrLongSequence,
|
||||
Uint32ArrayOrUnsignedLongSequence,
|
||||
};
|
||||
use crate::dom::bindings::error::{ErrorResult, Fallible};
|
||||
|
@ -3023,7 +3022,7 @@ impl WebGL2RenderingContextMethods<crate::DomTypeHolder> for WebGL2RenderingCont
|
|||
internal_format: i32,
|
||||
format: u32,
|
||||
data_type: u32,
|
||||
source: ImageDataOrHTMLImageElementOrHTMLCanvasElementOrHTMLVideoElement,
|
||||
source: TexImageSource,
|
||||
) -> ErrorResult {
|
||||
self.base
|
||||
.TexImage2D_(target, level, internal_format, format, data_type, source)
|
||||
|
@ -3118,7 +3117,7 @@ impl WebGL2RenderingContextMethods<crate::DomTypeHolder> for WebGL2RenderingCont
|
|||
border: i32,
|
||||
format: u32,
|
||||
type_: u32,
|
||||
source: ImageDataOrHTMLImageElementOrHTMLCanvasElementOrHTMLVideoElement,
|
||||
source: TexImageSource,
|
||||
) -> Fallible<()> {
|
||||
if self.bound_pixel_unpack_buffer.get().is_some() {
|
||||
self.base.webgl_error(InvalidOperation);
|
||||
|
@ -3301,7 +3300,7 @@ impl WebGL2RenderingContextMethods<crate::DomTypeHolder> for WebGL2RenderingCont
|
|||
yoffset: i32,
|
||||
format: u32,
|
||||
data_type: u32,
|
||||
source: ImageDataOrHTMLImageElementOrHTMLCanvasElementOrHTMLVideoElement,
|
||||
source: TexImageSource,
|
||||
) -> ErrorResult {
|
||||
self.base
|
||||
.TexSubImage2D_(target, level, xoffset, yoffset, format, data_type, source)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue