Skip to content

Commit 6ae3ecd

Browse files
GeertJohanPierre Champion
authored and
Pierre Champion
committed
Moved project (#76)
Rename a bunch of things: - import path github.com/Drakirus/go-flutter-desktop-embedder > github.com/go-flutter-desktop/go-flutter - package path go-flutter/flutter > go-flutter/embedder - package name flutter > embedder - package name gutter > flutter - embedder.EngineOpenGL > embedder.FlutterEngine - identifier flutterOGL > flutterEngine - formatted embedder.embedder_helper.c
1 parent 27e861b commit 6ae3ecd

18 files changed

+175
-181
lines changed

.github/ISSUE_TEMPLATE/BUG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Golang's compiling errors
3131

3232
## Does the prebuilt and portable version works ?
3333

34-
###### Download [Link](https://github.com/Drakirus/go-flutter-desktop-embedder/releases)
34+
###### Download [Link](https://github.com/go-flutter-desktop/go-flutter/releases)
3535
<!-- Please answer either yes or no -->
3636
- Yes / No
3737

README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ The choice of [Golang](https://github.com/golang/go) comes from the fact that it
2525
<details>
2626
<summary> :package: :penguin: Linux</summary>
2727
<h4>From binaries</h4>
28-
Check out the <a href="https://github.com/Drakirus/go-flutter-desktop-embedder/releases">Release</a> page for prebuilt versions.
28+
Check out the <a href="https://github.com/go-flutter-desktop/go-flutter/releases">Release</a> page for prebuilt versions.
2929

3030
<h4>From source</h4>
3131

@@ -34,7 +34,7 @@ Go read first: [go-gl/glfw](https://github.com/go-gl/glfw/)
3434

3535
```bash
3636
# Clone
37-
git clone https://github.com/Drakirus/go-flutter-desktop-embedder.git
37+
git clone https://github.com/go-flutter-desktop/go-flutter.git
3838
cd go-flutter-desktop-embedder
3939

4040
# Build the flutter simpleDemo project
@@ -51,7 +51,7 @@ export CGO_LDFLAGS="-L${PWD}"
5151
# The share library must stay next to the generated binary.
5252

5353
# Get the libraries
54-
go get -u -v github.com/Drakirus/go-flutter-desktop-embedder
54+
go get -u -v github.com/go-flutter-desktop/go-flutter
5555

5656
# Build the example project
5757
go build main.go
@@ -64,7 +64,7 @@ go build main.go
6464
<details>
6565
<summary> :package: :checkered_flag: Windows</summary>
6666
<h4>From binaries</h4>
67-
Check out the <a href="https://github.com/Drakirus/go-flutter-desktop-embedder/releases">Release</a> page for prebuilt versions.
67+
Check out the <a href="https://github.com/go-flutter-desktop/go-flutter/releases">Release</a> page for prebuilt versions.
6868

6969
<h4>From source</h4>
7070

@@ -73,7 +73,7 @@ Go read first: [go-gl/glfw](https://github.com/go-gl/glfw/)
7373

7474
```bash
7575
# Clone
76-
git clone https://github.com/Drakirus/go-flutter-desktop-embedder.git
76+
git clone https://github.com/go-flutter-desktop/go-flutter.git
7777
cd go-flutter-desktop-embedder
7878

7979
# Build the flutter simpleDemo project
@@ -88,10 +88,10 @@ go run engineDownloader.go
8888
# REQUIRED before every `go build`. The CGO compiler need to know where to look for the share library
8989
set CGO_LDFLAGS=-L%cd%
9090
# The share library must stay next to the generated binary.
91-
# If you ran into a MinGW ld error, checkout: https://github.com/Drakirus/go-flutter-desktop-embedder/issues/34
91+
# If you ran into a MinGW ld error, checkout: https://github.com/go-flutter-desktop/go-flutter/issues/34
9292

9393
# Get the libraries
94-
go get -u -v github.com/Drakirus/go-flutter-desktop-embedder
94+
go get -u -v github.com/go-flutter-desktop/go-flutter
9595

9696
# Build the example project
9797
go build main.go
@@ -104,7 +104,7 @@ go build main.go
104104
<details>
105105
<summary> :package: :apple: MacOS</summary>
106106
<h4>From binaries</h4>
107-
Check out the <a href="https://github.com/Drakirus/go-flutter-desktop-embedder/releases">Release</a> page for prebuilt versions.
107+
Check out the <a href="https://github.com/go-flutter-desktop/go-flutter/releases">Release</a> page for prebuilt versions.
108108

109109
<h4>From source</h4>
110110

@@ -113,7 +113,7 @@ Go read first: [go-gl/glfw](https://github.com/go-gl/glfw/)
113113

114114
```bash
115115
# Clone
116-
git clone https://github.com/Drakirus/go-flutter-desktop-embedder.git
116+
git clone https://github.com/go-flutter-desktop/go-flutter.git
117117
cd go-flutter-desktop-embedder
118118

119119
# Build the flutter simpleDemo project
@@ -130,7 +130,7 @@ export CGO_LDFLAGS="-F${PWD} -Wl,-rpath,@executable_path"
130130
# The share library must stay next to the generated binary.
131131

132132
# Get the libraries
133-
go get -u -v github.com/Drakirus/go-flutter-desktop-embedder
133+
go get -u -v github.com/go-flutter-desktop/go-flutter
134134

135135
# Build the example project
136136
go build main.go

flutter/build.go renamed to embedder/build.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package flutter
1+
package embedder
22

33
/*
44
// Linux Build Tags
@@ -21,5 +21,5 @@ import "C"
2121

2222
import (
2323
// prevents dep from stripping out the c source files in flutter library.
24-
_ "github.com/Drakirus/go-flutter-desktop-embedder/flutter/library"
24+
_ "github.com/go-flutter-desktop/go-flutter/embedder/library"
2525
)

flutter/flutter.go renamed to embedder/embedder.go

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package flutter
1+
package embedder
22

33
// #include "flutter_embedder.h"
44
// FlutterResult runFlutter(uintptr_t window, FlutterEngine *engine, FlutterProjectArgs * Args,
@@ -12,21 +12,21 @@ import (
1212
"unsafe"
1313
)
1414

15-
// the current FlutterEngine running (associated with his callback)
16-
var flutterEngines []*EngineOpenGL
15+
// A list of flutter engines that are managed by this embedder.
16+
var flutterEngines []*FlutterEngine
1717
var flutterEnginesLock sync.RWMutex
1818

19-
// SelectEngine return a EngineOpenGL from an index
20-
func SelectEngine(index int) *EngineOpenGL {
19+
// FlutterEngineByIndex returns an existing FlutterEngine by its index in this embedder.
20+
func FlutterEngineByIndex(index int) *FlutterEngine {
2121
flutterEnginesLock.RLock()
2222
engine := flutterEngines[index]
2323
flutterEnginesLock.RUnlock()
2424
return engine
2525
}
2626

27-
// NumberOfEngines return the number of engine registered into this embedder
28-
func NumberOfEngines() C.int {
29-
return C.int(len(flutterEngines))
27+
// CountFlutterEngines return the number of engines registered in this embedder.
28+
func CountFlutterEngines() int {
29+
return len(flutterEngines)
3030
}
3131

3232
// Result corresponds to the C.enum retuned by the shared flutter library
@@ -40,8 +40,8 @@ const (
4040
KInvalidArguments Result = C.kInvalidArguments
4141
)
4242

43-
// EngineOpenGL corresponds to the C.FlutterEngine with his associated callback's method.
44-
type EngineOpenGL struct {
43+
// FlutterEngine corresponds to the C.FlutterEngine with his associated callback's method.
44+
type FlutterEngine struct {
4545
// Flutter Engine.
4646
Engine C.FlutterEngine
4747

@@ -63,28 +63,28 @@ type EngineOpenGL struct {
6363
IcuDataPath string
6464
}
6565

66-
// NewEngineOpenGL creates an empty EngineOpenGL
66+
// NewFlutterEngine creates an empty FlutterEngine
6767
// and assigns it an index for global lookup.
68-
func NewEngineOpenGL() *EngineOpenGL {
69-
flu := &EngineOpenGL{}
68+
func NewFlutterEngine() *FlutterEngine {
69+
fe := &FlutterEngine{}
7070
flutterEnginesLock.Lock()
71-
flutterEngines = append(flutterEngines, flu)
72-
flu.index = len(flutterEngines) - 1
71+
flutterEngines = append(flutterEngines, fe)
72+
fe.index = len(flutterEngines) - 1
7373
flutterEnginesLock.Unlock()
74-
return flu
74+
return fe
7575
}
7676

7777
// Index returns the index of the engine in the global flutterEngines slice
78-
func (flu *EngineOpenGL) Index() int {
78+
func (flu *FlutterEngine) Index() int {
7979
return flu.index
8080
}
8181

8282
// Run launches the Flutter Engine in a background thread.
83-
func (flu *EngineOpenGL) Run(window uintptr, vmArgs []string) Result {
84-
// validate this EngineOpenGL was created correctly
83+
func (flu *FlutterEngine) Run(window uintptr, vmArgs []string) Result {
84+
// validate this FlutterEngine was created correctly
8585
flutterEnginesLock.RLock()
8686
if len(flutterEngines) <= flu.index || flutterEngines[flu.index] != flu {
87-
panic("EngineOpenGL was wrongly created. Use embedder.NewEngineOpenGL().")
87+
panic("FlutterEngine was wrongly created. Use embedder.NewFlutterEngine().")
8888
}
8989
flutterEnginesLock.RUnlock()
9090

@@ -109,7 +109,7 @@ func (flu *EngineOpenGL) Run(window uintptr, vmArgs []string) Result {
109109
}
110110

111111
// Shutdown stops the Flutter engine.
112-
func (flu *EngineOpenGL) Shutdown() Result {
112+
func (flu *FlutterEngine) Shutdown() Result {
113113
res := C.FlutterEngineShutdown(flu.Engine)
114114
return (Result)(res)
115115
}
@@ -133,8 +133,8 @@ type PointerEvent struct {
133133
Y float64
134134
}
135135

136-
// EngineSendPointerEvent is used to send an PointerEvent to the Flutter engine.
137-
func (flu *EngineOpenGL) EngineSendPointerEvent(Event PointerEvent) Result {
136+
// SendPointerEvent is used to send an PointerEvent to the Flutter engine.
137+
func (flu *FlutterEngine) SendPointerEvent(Event PointerEvent) Result {
138138

139139
cEvents := C.FlutterPointerEvent{
140140
phase: (_Ctype_FlutterPointerPhase)(Event.Phase),
@@ -156,8 +156,8 @@ type WindowMetricsEvent struct {
156156
PixelRatio float64
157157
}
158158

159-
// EngineSendWindowMetricsEvent is used to send a WindowMetricsEvent to the Flutter Engine.
160-
func (flu *EngineOpenGL) EngineSendWindowMetricsEvent(Metric WindowMetricsEvent) Result {
159+
// SendWindowMetricsEvent is used to send a WindowMetricsEvent to the Flutter Engine.
160+
func (flu *FlutterEngine) SendWindowMetricsEvent(Metric WindowMetricsEvent) Result {
161161

162162
cMetric := C.FlutterWindowMetricsEvent{
163163
width: C.size_t(Metric.Width),
@@ -188,7 +188,7 @@ type Message struct {
188188
}
189189

190190
// SendPlatformMessage is used to send a PlatformMessage to the Flutter engine.
191-
func (flu *EngineOpenGL) SendPlatformMessage(Message *PlatformMessage) Result {
191+
func (flu *FlutterEngine) SendPlatformMessage(Message *PlatformMessage) Result {
192192

193193
marshalled, err := json.Marshal(&Message.Message)
194194
if err != nil {
@@ -213,7 +213,7 @@ func (flu *EngineOpenGL) SendPlatformMessage(Message *PlatformMessage) Result {
213213
}
214214

215215
// SendPlatformMessageResponse is used to send a message to the Flutter side using the correct ResponseHandle!
216-
func (flu *EngineOpenGL) SendPlatformMessageResponse(
216+
func (flu *FlutterEngine) SendPlatformMessageResponse(
217217
responseTo *PlatformMessage,
218218
data []byte,
219219
) Result {
@@ -228,8 +228,8 @@ func (flu *EngineOpenGL) SendPlatformMessageResponse(
228228

229229
}
230230

231-
// EngineFlushPendingTasksNow flush tasks on a message loop not controlled by the Flutter engine.
231+
// FlutterEngineFlushPendingTasksNow flush tasks on a message loop not controlled by the Flutter engine.
232232
// deprecated soon.
233-
func EngineFlushPendingTasksNow() {
233+
func FlutterEngineFlushPendingTasksNow() {
234234
C.__FlutterEngineFlushPendingTasksNow()
235235
}

embedder/embedder_helper.c

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
2+
#include "library/flutter_embedder.h"
3+
#include <stdlib.h>
4+
5+
// C proxies def
6+
bool proxy_make_current(void *v);
7+
bool proxy_clear_current(void *v);
8+
bool proxy_present(void *v);
9+
uint32_t proxy_fbo_callback(void *v);
10+
bool proxy_make_resource_current(void *v);
11+
void *proxy_gl_proc_resolver(void *v, const char *procname);
12+
bool proxy_on_platform_message(FlutterPlatformMessage *message, void *window);
13+
14+
// C helper
15+
FlutterResult runFlutter(uintptr_t window, FlutterEngine *engine, FlutterProjectArgs *Args,
16+
const char *const *vmArgs, int nVmAgrs)
17+
{
18+
19+
FlutterRendererConfig config = {};
20+
config.type = kOpenGL;
21+
22+
config.open_gl.struct_size = sizeof(FlutterOpenGLRendererConfig);
23+
config.open_gl.make_current = proxy_make_current;
24+
config.open_gl.clear_current = proxy_clear_current;
25+
config.open_gl.present = proxy_present;
26+
config.open_gl.fbo_callback = proxy_fbo_callback;
27+
config.open_gl.make_resource_current = proxy_make_resource_current;
28+
config.open_gl.gl_proc_resolver = proxy_gl_proc_resolver;
29+
30+
Args->command_line_argc = nVmAgrs;
31+
Args->command_line_argv = vmArgs;
32+
Args->platform_message_callback = (FlutterPlatformMessageCallback)proxy_on_platform_message;
33+
34+
return FlutterEngineRun(FLUTTER_ENGINE_VERSION, &config, Args, (void *)window, engine);
35+
}
36+
37+
char **makeCharArray(int size)
38+
{
39+
return calloc(sizeof(char *), size);
40+
}
41+
42+
void setArrayString(char **a, char *s, int n)
43+
{
44+
a[n] = s;
45+
}

flutter/flutter_proxy_glfw.go renamed to embedder/embedder_proxy_glfw.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package flutter
1+
package embedder
22

33
/*
44
#include "flutter_embedder.h"
@@ -31,8 +31,8 @@ func proxy_on_platform_message(message *C.FlutterPlatformMessage, window unsafe.
3131
ResponseHandle: message.response_handle,
3232
}
3333
index := *(*int)(glfw.GoWindow(window).GetUserPointer())
34-
engine := SelectEngine(index)
35-
return C.bool(engine.FPlatfromMessage(FlutterPlatformMessage, window))
34+
flutterEngine := FlutterEngineByIndex(index)
35+
return C.bool(flutterEngine.FPlatfromMessage(FlutterPlatformMessage, window))
3636
}
3737
return C.bool(false)
3838
}
@@ -41,40 +41,40 @@ func proxy_on_platform_message(message *C.FlutterPlatformMessage, window unsafe.
4141
func proxy_make_current(v unsafe.Pointer) C.bool {
4242
w := glfw.GoWindow(v)
4343
index := *(*int)(w.GetUserPointer())
44-
engine := SelectEngine(index)
45-
return C.bool(engine.FMakeCurrent(v))
44+
flutterEngine := FlutterEngineByIndex(index)
45+
return C.bool(flutterEngine.FMakeCurrent(v))
4646
}
4747

4848
//export proxy_clear_current
4949
func proxy_clear_current(v unsafe.Pointer) C.bool {
5050
w := glfw.GoWindow(v)
5151
index := *(*int)(w.GetUserPointer())
52-
engine := SelectEngine(index)
53-
return C.bool(engine.FClearCurrent(v))
52+
flutterEngine := FlutterEngineByIndex(index)
53+
return C.bool(flutterEngine.FClearCurrent(v))
5454
}
5555

5656
//export proxy_present
5757
func proxy_present(v unsafe.Pointer) C.bool {
5858
w := glfw.GoWindow(v)
5959
index := *(*int)(w.GetUserPointer())
60-
engine := SelectEngine(index)
61-
return C.bool(engine.FPresent(v))
60+
flutterEngine := FlutterEngineByIndex(index)
61+
return C.bool(flutterEngine.FPresent(v))
6262
}
6363

6464
//export proxy_fbo_callback
6565
func proxy_fbo_callback(v unsafe.Pointer) C.uint32_t {
6666
w := glfw.GoWindow(v)
6767
index := *(*int)(w.GetUserPointer())
68-
engine := SelectEngine(index)
69-
return C.uint32_t(engine.FFboCallback(v))
68+
flutterEngine := FlutterEngineByIndex(index)
69+
return C.uint32_t(flutterEngine.FFboCallback(v))
7070
}
7171

7272
//export proxy_make_resource_current
7373
func proxy_make_resource_current(v unsafe.Pointer) C.bool {
7474
w := glfw.GoWindow(v)
7575
index := *(*int)(w.GetUserPointer())
76-
engine := SelectEngine(index)
77-
return C.bool(engine.FMakeResourceCurrent(v))
76+
flutterEngine := FlutterEngineByIndex(index)
77+
return C.bool(flutterEngine.FMakeResourceCurrent(v))
7878
}
7979

8080
//export proxy_gl_proc_resolver
File renamed without changes.

example/simpleDemo/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
icudtl.dat
2+
main

0 commit comments

Comments
 (0)