Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | List of all members
ThreadedSurface Class Referencefinal

#include <Surface.h>

Inheritance diagram for ThreadedSurface:
Surface SkRefCnt SkRefCntBase

Public Member Functions

 ThreadedSurface (JNIEnv *env, jobject surface)
 
- Public Member Functions inherited from Surface
int width () const
 
int height () const
 
sk_sp< SkImagemakeImageSnapshot () const
 
- Public Member Functions inherited from SkRefCntBase
 SkRefCntBase ()
 
virtual ~SkRefCntBase ()
 
bool unique () const
 
void ref () const
 
void unref () const
 

Private Member Functions

void release (JNIEnv *env) override
 
SkCanvasgetCanvas () override
 
void flushAndSubmit () override
 

Additional Inherited Members

- Protected Attributes inherited from Surface
sk_sp< SkSurfacefSurface
 

Detailed Description

Definition at line 59 of file Surface.h.

Constructor & Destructor Documentation

◆ ThreadedSurface()

ThreadedSurface::ThreadedSurface ( JNIEnv *  env,
jobject  surface 
)

Definition at line 48 of file Surface.cpp.

49 : fThread(std::make_unique<SurfaceThread>()) {
50 ANativeWindow* window = ANativeWindow_fromSurface(env, surface);
51 fWidth = ANativeWindow_getWidth(window);
52 fHeight = ANativeWindow_getHeight(window);
53
55 message.fNativeWindow = window;
56 message.fWindowSurface = &fWindowSurface;
57 fThread->postMessage(message);
58}
@ kInitialize
GLFWwindow * window
Definition main.cc:45
VkSurfaceKHR surface
Definition main.cc:49
Win32Message message
Definition __init__.py:1
struct ANativeWindow ANativeWindow

Member Function Documentation

◆ flushAndSubmit()

void ThreadedSurface::flushAndSubmit ( )
overrideprivatevirtual

Implements Surface.

Definition at line 72 of file Surface.cpp.

72 {
74 message.fWindowSurface = &fWindowSurface;
75 message.fPicture = fRecorder.finishRecordingAsPicture().release();
76 fThread->postMessage(message);
77}
@ kRenderPicture
sk_sp< SkPicture > finishRecordingAsPicture()
T * release()
Definition SkRefCnt.h:324

◆ getCanvas()

SkCanvas * ThreadedSurface::getCanvas ( )
overrideprivatevirtual

Implements Surface.

Definition at line 67 of file Surface.cpp.

67 {
68 return fRecorder.beginRecording(fWidth,
69 fHeight);
70}
SkCanvas * beginRecording(const SkRect &bounds, sk_sp< SkBBoxHierarchy > bbh)

◆ release()

void ThreadedSurface::release ( JNIEnv *  env)
overrideprivatevirtual

Implements Surface.

Definition at line 60 of file Surface.cpp.

60 {
62 message.fWindowSurface = &fWindowSurface;
63 fThread->postMessage(message);
64 fThread->release();
65}
@ kDestroy

The documentation for this class was generated from the following files: