5#ifndef FLUTTER_SKWASM_SURFACE_H_
6#define FLUTTER_SKWASM_SURFACE_H_
9#include <GLES2/gl2ext.h>
10#include <emscripten.h>
11#include <emscripten/html5_webgl.h>
12#include <emscripten/threading.h>
13#include <webgl/webgl1.h>
33 unsigned long raster_thread_id_;
45 EMSCRIPTEN_WEBGL_CONTEXT_HANDLE
GetGlContext() {
return gl_context_; }
74 uint32_t callback_id);
91 void RecreateSurface();
94 uint32_t current_callback_id_ = 0;
96 int canvas_width_ = 0;
97 int canvas_height_ = 0;
99 EMSCRIPTEN_WEBGL_CONTEXT_HANDLE gl_context_ = 0;
100 std::unique_ptr<RenderContext> render_context_;
101 uint32_t context_lost_callback_id_ = 0;
103 unsigned long thread_;
105 bool is_initialized_ =
false;
void TriggerContextLossOnWorker(uint32_t callback_id)
void ReceiveCanvasOnWorker(SkwasmObject canvas, uint32_t callback_id)
void ReportContextLost(uint32_t callback_id)
unsigned long GetThreadId()
std::unique_ptr< TextureSourceWrapper > CreateTextureSourceWrapper(SkwasmObject textureSource)
uint32_t SetSize(int width, int height)
uint32_t TriggerContextLoss()
void RasterizeImageOnWorker(flutter::DlImage *image, ImageByteFormat format, uint32_t callback_id)
void OnInitialized(uint32_t callback_id)
uint32_t SetCanvas(SkwasmObject canvas)
void(uint32_t, void *, SkwasmObject) CallbackHandler
uint32_t RasterizeImage(flutter::DlImage *image, ImageByteFormat format)
EMSCRIPTEN_WEBGL_CONTEXT_HANDLE GetGlContext()
uint32_t RenderPictures(flutter::DisplayList **picture, int count)
void OnRenderComplete(uint32_t callback_id, SkwasmObject image_bitmap)
void OnRasterizeComplete(uint32_t callback_id, SkData *data)
void OnResizeComplete(uint32_t callback_id)
void RenderPicturesOnWorker(sk_sp< flutter::DisplayList > *picture, int picture_count, uint32_t callback_id, double raster_start)
void SetCallbackHandler(CallbackHandler *callback_handler)
void ResizeOnWorker(int width, int height, uint32_t callback_id)
void SetResourceCacheLimit(int bytes)
void OnContextLossTriggered(uint32_t callback_id)
SkwasmObject GetTextureSource()
Represents an image whose allocation is (usually) resident on device memory.
FlutterVulkanImage * image
CallbackHandler callback_handler
__externref_t SkwasmObject
flutter::DisplayList DisplayList
std::shared_ptr< const fml::Mapping > data