зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1359738 - Add push_yuv_image() in WR binding.
Please check [1] for webrender_ffi_generated.h updates. [1] https://dxr.mozilla.org/mozilla-central/rev/f229b7e5d91eb70d23d3e31db7caff9d69a2ef04/gfx/webrender_bindings/webrender_ffi_generated.h#7 MozReview-Commit-ID: 3PolFzfQB0l
This commit is contained in:
Родитель
e00af8354a
Коммит
51510de95b
|
@ -49,6 +49,8 @@ type WrPipelineId = PipelineId;
|
|||
type WrImageKey = ImageKey;
|
||||
/// cbindgen:field-names=[mNamespace, mHandle]
|
||||
type WrFontKey = FontKey;
|
||||
/// cbindgen:field-names=[mNamespace, mHandle]
|
||||
type WrYuvColorSpace = YuvColorSpace;
|
||||
|
||||
/// cbindgen:field-names=[mHandle]
|
||||
#[repr(C)]
|
||||
|
@ -1328,11 +1330,9 @@ pub extern "C" fn wr_dp_push_image(state: &mut WrState,
|
|||
key: WrImageKey) {
|
||||
assert!(unsafe { is_in_main_thread() });
|
||||
|
||||
let bounds = bounds.into();
|
||||
|
||||
state.frame_builder
|
||||
.dl_builder
|
||||
.push_image(bounds,
|
||||
.push_image(bounds.into(),
|
||||
clip.into(),
|
||||
stretch_size.into(),
|
||||
tile_spacing.into(),
|
||||
|
@ -1340,6 +1340,32 @@ pub extern "C" fn wr_dp_push_image(state: &mut WrState,
|
|||
key);
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn wr_dp_push_yuv_image(state: &mut WrState,
|
||||
bounds: WrRect,
|
||||
clip: WrClipRegion,
|
||||
image_keys: *const WrImageKey,
|
||||
key_num: u8,
|
||||
color_space: WrYuvColorSpace) {
|
||||
assert!(unsafe { is_in_main_thread() });
|
||||
assert!(key_num == 3);
|
||||
unsafe {
|
||||
for key_index in 0..key_num {
|
||||
assert!(!image_keys.offset(key_index as isize).is_null());
|
||||
}
|
||||
}
|
||||
let key_slice = make_slice(image_keys, key_num as usize);
|
||||
|
||||
state.frame_builder
|
||||
.dl_builder
|
||||
.push_yuv_image(bounds.into(),
|
||||
clip.into(),
|
||||
key_slice[0],
|
||||
key_slice[1],
|
||||
key_slice[2],
|
||||
color_space);
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn wr_dp_push_text(state: &mut WrState,
|
||||
bounds: WrRect,
|
||||
|
|
|
@ -94,6 +94,13 @@ enum class WrRepeatMode : uint32_t {
|
|||
Sentinel /* this must be last for serialization purposes. */
|
||||
};
|
||||
|
||||
enum class WrYuvColorSpace : uint32_t {
|
||||
Rec601 = 1,
|
||||
Rec709 = 2,
|
||||
|
||||
Sentinel /* this must be last for serialization purposes. */
|
||||
};
|
||||
|
||||
struct WrAPI;
|
||||
|
||||
struct WrImageKey {
|
||||
|
@ -805,6 +812,15 @@ wr_dp_push_text(WrState* state,
|
|||
float glyph_size)
|
||||
WR_FUNC;
|
||||
|
||||
WR_INLINE void
|
||||
wr_dp_push_yuv_image(WrState* state,
|
||||
WrRect bounds,
|
||||
WrClipRegion clip,
|
||||
const WrImageKey* image_keys,
|
||||
uint8_t key_num,
|
||||
WrYuvColorSpace color_space)
|
||||
WR_FUNC;
|
||||
|
||||
WR_INLINE void
|
||||
wr_rendered_epochs_delete(WrRenderedEpochs* pipeline_epochs)
|
||||
WR_DESTRUCTOR_SAFE_FUNC;
|
||||
|
|
Загрузка…
Ссылка в новой задаче