mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Auto merge of #23226 - mmatyas:webgl_compressed_textures, r=jdm
Add initial support for WebGL compressed textures This patch is an initial implementation of WebGL compressed texture support, it contains - functions for registering and querying compressed texture extensions - initial implementation of `CompressedTexImage2D` and `CompressedTexSubImage2D` and their parameter validation - implementation of S3TC (DXT1, DXT3, DXT5) and ETC1 extensions as examples What's still missing: - some of the parameter validation steps are missing - the pixel comparison tests fail for more complex cases (I'm probably missing something trivial at the GL calls) Related: #10209 and #20594 cc @jdm @zakorgy --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] Related issues: #10209, #20594 - [x] There are tests for these changes <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23226) <!-- Reviewable:end -->
This commit is contained in:
commit
123f58592c
16 changed files with 792 additions and 37 deletions
|
@ -1168,6 +1168,43 @@ impl WebGLImpl {
|
|||
&pixels,
|
||||
);
|
||||
},
|
||||
WebGLCommand::CompressedTexImage2D {
|
||||
target,
|
||||
level,
|
||||
internal_format,
|
||||
size,
|
||||
ref data,
|
||||
} => {
|
||||
ctx.gl().compressed_tex_image_2d(
|
||||
target,
|
||||
level as i32,
|
||||
internal_format,
|
||||
size.width as i32,
|
||||
size.height as i32,
|
||||
0,
|
||||
&*data,
|
||||
);
|
||||
},
|
||||
WebGLCommand::CompressedTexSubImage2D {
|
||||
target,
|
||||
level,
|
||||
xoffset,
|
||||
yoffset,
|
||||
size,
|
||||
format,
|
||||
ref data,
|
||||
} => {
|
||||
ctx.gl().compressed_tex_sub_image_2d(
|
||||
target,
|
||||
level as i32,
|
||||
xoffset as i32,
|
||||
yoffset as i32,
|
||||
size.width as i32,
|
||||
size.height as i32,
|
||||
format,
|
||||
&*data,
|
||||
);
|
||||
},
|
||||
WebGLCommand::DrawingBufferWidth(ref sender) => sender
|
||||
.send(ctx.borrow_draw_buffer().unwrap().size().width)
|
||||
.unwrap(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue