Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
surface.cc File Reference
#include "flutter/skwasm/surface.h"
#include <algorithm>
#include <emscripten/wasm_worker.h>
#include "flutter/display_list/display_list.h"
#include "flutter/display_list/image/dl_image.h"
#include "flutter/skwasm/live_objects.h"
#include "flutter/skwasm/skwasm_support.h"
#include "third_party/skia/include/core/SkColorSpace.h"

Go to the source code of this file.

Functions

SKWASM_EXPORT Skwasm::Surfacesurface_create ()
 
SKWASM_EXPORT uint32_t surface_setCanvas (Skwasm::Surface *surface, SkwasmObject canvas)
 
SKWASM_EXPORT void surface_receiveCanvasOnWorker (Skwasm::Surface *surface, SkwasmObject canvas, uint32_t callback_id)
 
SKWASM_EXPORT void surface_onInitialized (Skwasm::Surface *surface, uint32_t callback_id)
 
SKWASM_EXPORT uint32_t surface_setSize (Skwasm::Surface *surface, int width, int height)
 
SKWASM_EXPORT void surface_resizeOnWorker (Skwasm::Surface *surface, int width, int height, uint32_t callback_id)
 
SKWASM_EXPORT void surface_onResizeComplete (Skwasm::Surface *surface, uint32_t callback_id)
 
SKWASM_EXPORT unsigned long surface_getThreadId (Skwasm::Surface *surface)
 
SKWASM_EXPORT EMSCRIPTEN_WEBGL_CONTEXT_HANDLE surface_getGlContext (Skwasm::Surface *surface)
 
SKWASM_EXPORT uint32_t surface_triggerContextLoss (Skwasm::Surface *surface)
 
SKWASM_EXPORT void surface_triggerContextLossOnWorker (Skwasm::Surface *surface, uint32_t callback_id)
 
SKWASM_EXPORT void surface_onContextLossTriggered (Skwasm::Surface *surface, uint32_t callback_id)
 
SKWASM_EXPORT void surface_reportContextLost (Skwasm::Surface *surface, uint32_t callback_id)
 
SKWASM_EXPORT void surface_setCallbackHandler (Skwasm::Surface *surface, Skwasm::Surface::CallbackHandler *callback_handler)
 
SKWASM_EXPORT void surface_destroy (Skwasm::Surface *surface)
 
SKWASM_EXPORT void surface_dispose (Skwasm::Surface *surface)
 
SKWASM_EXPORT void surface_setResourceCacheLimitBytes (Skwasm::Surface *surface, int bytes)
 
SKWASM_EXPORT uint32_t surface_renderPictures (Skwasm::Surface *surface, flutter::DisplayList **pictures, int count)
 
SKWASM_EXPORT void surface_renderPicturesOnWorker (Skwasm::Surface *surface, sk_sp< flutter::DisplayList > *pictures, int picture_count, uint32_t callback_id, double raster_start)
 
SKWASM_EXPORT uint32_t surface_rasterizeImage (Skwasm::Surface *surface, flutter::DlImage *image, Skwasm::ImageByteFormat format)
 
SKWASM_EXPORT void surface_rasterizeImageOnWorker (Skwasm::Surface *surface, flutter::DlImage *image, Skwasm::ImageByteFormat format, uint32_t callback_id)
 
SKWASM_EXPORT void surface_onRenderComplete (Skwasm::Surface *surface, uint32_t callback_id, SkwasmObject image_bitmap)
 
SKWASM_EXPORT void surface_onRasterizeComplete (Skwasm::Surface *surface, SkData *data, uint32_t callback_id)
 
SKWASM_EXPORT void surface_onContextLost (Skwasm::Surface *surface)
 
SKWASM_EXPORT bool skwasm_isMultiThreaded ()
 

Function Documentation

◆ skwasm_isMultiThreaded()

SKWASM_EXPORT bool skwasm_isMultiThreaded ( )

Definition at line 467 of file surface.cc.

467 {
468 return !skwasm_isSingleThreaded();
469}
bool skwasm_isSingleThreaded()

References skwasm_isSingleThreaded().

◆ surface_create()

SKWASM_EXPORT Skwasm::Surface * surface_create ( )

Definition at line 326 of file surface.cc.

326 {
328 return new Skwasm::Surface();
329}
uint32_t live_surface_count

References Skwasm::live_surface_count.

◆ surface_destroy()

SKWASM_EXPORT void surface_destroy ( Skwasm::Surface surface)

Definition at line 400 of file surface.cc.

400 {
402 // Dispatch to the worker
404}
unsigned long GetRasterThread()
Definition surface.cc:44
void skwasm_dispatchDisposeSurface(unsigned long thread_id, Skwasm::Surface *surface)

References Skwasm::GetRasterThread(), Skwasm::live_surface_count, skwasm_dispatchDisposeSurface(), and surface.

◆ surface_dispose()

SKWASM_EXPORT void surface_dispose ( Skwasm::Surface surface)

Definition at line 406 of file surface.cc.

406 {
407 // This should be called directly only on the worker
408 surface->Dispose();
409}
VkSurfaceKHR surface
Definition main.cc:65

References surface.

◆ surface_getGlContext()

SKWASM_EXPORT EMSCRIPTEN_WEBGL_CONTEXT_HANDLE surface_getGlContext ( Skwasm::Surface surface)

Definition at line 371 of file surface.cc.

371 {
372 return surface->GetGlContext();
373}

References surface.

◆ surface_getThreadId()

SKWASM_EXPORT unsigned long surface_getThreadId ( Skwasm::Surface surface)

Definition at line 366 of file surface.cc.

366 {
368}

References Skwasm::GetRasterThread().

◆ surface_onContextLossTriggered()

SKWASM_EXPORT void surface_onContextLossTriggered ( Skwasm::Surface surface,
uint32_t  callback_id 
)

Definition at line 384 of file surface.cc.

385 {
386 surface->OnContextLossTriggered(callback_id);
387}

References surface.

◆ surface_onContextLost()

SKWASM_EXPORT void surface_onContextLost ( Skwasm::Surface surface)

Definition at line 463 of file surface.cc.

463 {
464 surface->OnContextLost();
465}

References surface.

◆ surface_onInitialized()

SKWASM_EXPORT void surface_onInitialized ( Skwasm::Surface surface,
uint32_t  callback_id 
)

Definition at line 343 of file surface.cc.

344 {
345 surface->OnInitialized(callback_id);
346}

References surface.

◆ surface_onRasterizeComplete()

SKWASM_EXPORT void surface_onRasterizeComplete ( Skwasm::Surface surface,
SkData *  data,
uint32_t  callback_id 
)

Definition at line 457 of file surface.cc.

459 {
460 surface->OnRasterizeComplete(callback_id, data);
461}

References surface.

◆ surface_onRenderComplete()

SKWASM_EXPORT void surface_onRenderComplete ( Skwasm::Surface surface,
uint32_t  callback_id,
SkwasmObject  image_bitmap 
)

Definition at line 451 of file surface.cc.

453 {
454 surface->OnRenderComplete(callback_id, image_bitmap);
455}

References surface.

◆ surface_onResizeComplete()

SKWASM_EXPORT void surface_onResizeComplete ( Skwasm::Surface surface,
uint32_t  callback_id 
)

Definition at line 361 of file surface.cc.

362 {
363 surface->OnResizeComplete(callback_id);
364}

References surface.

◆ surface_rasterizeImage()

SKWASM_EXPORT uint32_t surface_rasterizeImage ( Skwasm::Surface surface,
flutter::DlImage image,
Skwasm::ImageByteFormat  format 
)

Definition at line 435 of file surface.cc.

437 {
438 return surface->RasterizeImage(image, format);
439}
FlutterVulkanImage * image

References format, image, and surface.

◆ surface_rasterizeImageOnWorker()

SKWASM_EXPORT void surface_rasterizeImageOnWorker ( Skwasm::Surface surface,
flutter::DlImage image,
Skwasm::ImageByteFormat  format,
uint32_t  callback_id 
)

Definition at line 441 of file surface.cc.

445 {
446 surface->RasterizeImageOnWorker(image, format, callback_id);
447}

References format, image, and surface.

◆ surface_receiveCanvasOnWorker()

SKWASM_EXPORT void surface_receiveCanvasOnWorker ( Skwasm::Surface surface,
SkwasmObject  canvas,
uint32_t  callback_id 
)

Definition at line 337 of file surface.cc.

339 {
340 surface->ReceiveCanvasOnWorker(canvas, callback_id);
341}

References surface.

◆ surface_renderPictures()

SKWASM_EXPORT uint32_t surface_renderPictures ( Skwasm::Surface surface,
flutter::DisplayList **  pictures,
int  count 
)

Definition at line 416 of file surface.cc.

418 {
419 return surface->RenderPictures(pictures, count);
420}

References surface.

◆ surface_renderPicturesOnWorker()

SKWASM_EXPORT void surface_renderPicturesOnWorker ( Skwasm::Surface surface,
sk_sp< flutter::DisplayList > *  pictures,
int  picture_count,
uint32_t  callback_id,
double  raster_start 
)

Definition at line 422 of file surface.cc.

427 {
428 // This will release the pictures when they leave scope.
429 std::unique_ptr<sk_sp<flutter::DisplayList>[]> pictures_pointer =
430 std::unique_ptr<sk_sp<flutter::DisplayList>[]>(pictures);
431 surface->RenderPicturesOnWorker(pictures, picture_count, callback_id,
432 raster_start);
433}

References surface.

◆ surface_reportContextLost()

SKWASM_EXPORT void surface_reportContextLost ( Skwasm::Surface surface,
uint32_t  callback_id 
)

Definition at line 389 of file surface.cc.

390 {
391 surface->ReportContextLost(callback_id);
392}

References surface.

◆ surface_resizeOnWorker()

SKWASM_EXPORT void surface_resizeOnWorker ( Skwasm::Surface surface,
int  width,
int  height,
uint32_t  callback_id 
)

Definition at line 354 of file surface.cc.

357 {
358 surface->ResizeOnWorker(width, height, callback_id);
359}
int32_t height
int32_t width

References height, surface, and width.

◆ surface_setCallbackHandler()

SKWASM_EXPORT void surface_setCallbackHandler ( Skwasm::Surface surface,
Skwasm::Surface::CallbackHandler callback_handler 
)

Definition at line 394 of file surface.cc.

396 {
397 surface->SetCallbackHandler(callback_handler);
398}
CallbackHandler callback_handler

References callback_handler, and surface.

◆ surface_setCanvas()

SKWASM_EXPORT uint32_t surface_setCanvas ( Skwasm::Surface surface,
SkwasmObject  canvas 
)

Definition at line 331 of file surface.cc.

332 {
333 // Dispatch to the worker so the canvas can be transferred to the worker.
334 return surface->SetCanvas(canvas);
335}

References surface.

◆ surface_setResourceCacheLimitBytes()

SKWASM_EXPORT void surface_setResourceCacheLimitBytes ( Skwasm::Surface surface,
int  bytes 
)

Definition at line 411 of file surface.cc.

412 {
413 surface->SetResourceCacheLimit(bytes);
414}

References surface.

◆ surface_setSize()

SKWASM_EXPORT uint32_t surface_setSize ( Skwasm::Surface surface,
int  width,
int  height 
)

Definition at line 348 of file surface.cc.

350 {
351 return surface->SetSize(width, height);
352}

References height, surface, and width.

◆ surface_triggerContextLoss()

SKWASM_EXPORT uint32_t surface_triggerContextLoss ( Skwasm::Surface surface)

Definition at line 375 of file surface.cc.

375 {
376 return surface->TriggerContextLoss();
377}

References surface.

◆ surface_triggerContextLossOnWorker()

SKWASM_EXPORT void surface_triggerContextLossOnWorker ( Skwasm::Surface surface,
uint32_t  callback_id 
)

Definition at line 379 of file surface.cc.

380 {
381 surface->TriggerContextLossOnWorker(callback_id);
382}

References surface.