mirror of
https://github.com/servo/servo.git
synced 2025-08-07 14:35:33 +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
|
@ -0,0 +1,13 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
/*
|
||||
* WebGL IDL definitions from the Khronos specification:
|
||||
* https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc1/
|
||||
*/
|
||||
|
||||
[NoInterfaceObject]
|
||||
interface WEBGLCompressedTextureETC1 {
|
||||
/* Compressed Texture Format */
|
||||
const GLenum COMPRESSED_RGB_ETC1_WEBGL = 0x8D64;
|
||||
}; // interface WEBGLCompressedTextureETC1
|
|
@ -0,0 +1,16 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
/*
|
||||
* WebGL IDL definitions from the Khronos specification:
|
||||
* https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/
|
||||
*/
|
||||
|
||||
[NoInterfaceObject]
|
||||
interface WEBGLCompressedTextureS3TC {
|
||||
/* Compressed Texture Formats */
|
||||
const GLenum COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0;
|
||||
const GLenum COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1;
|
||||
const GLenum COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2;
|
||||
const GLenum COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3;
|
||||
}; // interface WEBGLCompressedTextureS3TC
|
Loading…
Add table
Add a link
Reference in a new issue