зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1328602 - Expose Renderer through the c bindings. r=gfx?
This commit is contained in:
Родитель
cbfc9a8d28
Коммит
a9829d0c64
|
@ -41,6 +41,37 @@ extern {
|
|||
fn is_in_compositor_thread() -> bool;
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern fn wr_renderer_update(renderer: &mut Renderer) {
|
||||
renderer.update();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern fn wr_renderer_render(renderer: &mut Renderer, width: u32, height: u32) {
|
||||
renderer.render(DeviceUintSize::new(width, height));
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern fn wr_renderer_set_profiler_enabled(renderer: &mut Renderer, enabled: bool) {
|
||||
renderer.set_profiler_enabled(enabled);
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern fn wr_renderer_current_epoch(renderer: &mut Renderer,
|
||||
pipeline_id: PipelineId,
|
||||
out_epoch: &mut Epoch) -> bool {
|
||||
if let Some(epoch) = renderer.current_epoch(pipeline_id) {
|
||||
*out_epoch = epoch;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe extern fn wr_renderer_delete(renderer: *mut Renderer) {
|
||||
let _ = Box::from_raw(renderer);
|
||||
}
|
||||
|
||||
pub struct WebRenderFrameBuilder {
|
||||
pub root_pipeline_id: PipelineId,
|
||||
pub dl_builder: webrender_traits::DisplayListBuilder,
|
||||
|
|
|
@ -10,6 +10,12 @@ extern "C" {
|
|||
bool is_in_compositor_thread();
|
||||
void* get_proc_address_from_glcontext(void* glcontext_ptr, const char* procname);
|
||||
|
||||
struct WrRenderer;
|
||||
void wr_renderer_update(WrRenderer* renderer);
|
||||
void wr_renderer_render(WrRenderer* renderer, uint32_t width, uint32_t height);
|
||||
void wr_renderer_set_profiler_enabled(WrRenderer* renderer, bool enabled);
|
||||
bool wr_renderer_current_epoch(WrRenderer* renderer, uint64_t pipeline_id, uint32_t* out_epoch);
|
||||
|
||||
enum WRImageFormat {
|
||||
Invalid,
|
||||
A8,
|
||||
|
|
Загрузка…
Ссылка в новой задаче