Skip to content

Commit 6ab2701

Browse files
committed
Add ImageFormat::RGBAF16
Signed-off-by: Samson <[email protected]>
1 parent 8468e81 commit 6ab2701

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

webrender/src/device/gl.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4113,6 +4113,12 @@ impl Device {
41134113
read: gl::RG,
41144114
pixel_type: gl::UNSIGNED_SHORT,
41154115
},
4116+
ImageFormat::RGBAF16 => FormatDesc {
4117+
internal: gl::RGBA16F,
4118+
external: gl::RGBA,
4119+
read: gl::RGBA,
4120+
pixel_type: gl::HALF_FLOAT,
4121+
},
41164122
}
41174123
}
41184124

@@ -4754,6 +4760,7 @@ impl<'a> TextureUploader<'a> {
47544760
ImageFormat::RG16 => (gl::RG, 4, gl::UNSIGNED_SHORT),
47554761
ImageFormat::RGBAF32 => (gl::RGBA, 16, gl::FLOAT),
47564762
ImageFormat::RGBAI32 => (gl::RGBA_INTEGER, 16, gl::INT),
4763+
ImageFormat::RGBAF16 => (gl::RGBA, 8, gl::HALF_FLOAT),
47574764
};
47584765

47594766
let row_length = match chunk.stride {

webrender_api/src/image.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,9 @@ pub enum ImageFormat {
171171
RGBAI32 = 7,
172172
/// Four channels, byte storage.
173173
RGBA8 = 8,
174+
175+
/// Four channels, float16 storage.
176+
RGBAF16 = 9,
174177
}
175178

176179
impl ImageFormat {
@@ -185,6 +188,7 @@ impl ImageFormat {
185188
ImageFormat::RG16 => 4,
186189
ImageFormat::RGBAI32 => 16,
187190
ImageFormat::RGBA8 => 4,
191+
ImageFormat::RGBAF16 => 8,
188192
}
189193
}
190194
}

wrench/src/yaml_frame_reader.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,7 @@ fn is_image_opaque(format: ImageFormat, bytes: &[u8]) -> bool {
304304
ImageFormat::RG16 => true,
305305
ImageFormat::R8 => false,
306306
ImageFormat::R16 => false,
307+
ImageFormat::RGBAF16 |
307308
ImageFormat::RGBAF32 |
308309
ImageFormat::RGBAI32 => unreachable!(),
309310
}

0 commit comments

Comments
 (0)