Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 68ca69d

Browse files
committed
Add more tests for renderer
1 parent 3861524 commit 68ca69d

File tree

4 files changed

+33
-4
lines changed

4 files changed

+33
-4
lines changed

shell/platform/darwin/macos/framework/Source/FlutterEngine.mm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ - (FlutterCompositor*)createFlutterCompositor {
339339

340340
__weak FlutterEngine* weak_self = self;
341341
_macOSGLCompositor->SetPresentCallback(
342-
[weak_self]() { return [weak_self.openGLRenderer present]; });
342+
[weak_self]() { return [weak_self.openGLRenderer glPresent]; });
343343

344344
_compositor.avoid_backing_store_cache = true;
345345

shell/platform/darwin/macos/framework/Source/FlutterOpenGLRenderer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
/**
5050
* Called by the engine when the context's buffers should be swapped.
5151
*/
52-
- (BOOL)present;
52+
- (BOOL)glPresent;
5353

5454
/**
5555
* Called by the engine when framebuffer object ID is requested.

shell/platform/darwin/macos/framework/Source/FlutterOpenGLRenderer.mm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ static bool OnClearCurrent(FlutterEngine* engine) {
2020
}
2121

2222
static bool OnPresent(FlutterEngine* engine) {
23-
return [engine.openGLRenderer present];
23+
return [engine.openGLRenderer glPresent];
2424
}
2525

2626
static uint32_t OnFBO(FlutterEngine* engine, const FlutterFrameInfo* info) {
@@ -85,7 +85,7 @@ - (BOOL)clearCurrent {
8585
return true;
8686
}
8787

88-
- (BOOL)present {
88+
- (BOOL)glPresent {
8989
if (!_openGLContext) {
9090
return false;
9191
}

shell/platform/darwin/macos/framework/Source/FlutterOpenGLRendererTest.mm

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
#import "flutter/shell/platform/darwin/macos/framework/Headers/FlutterEngine.h"
88
#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterDartProject_Internal.h"
99
#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterEngine_Internal.h"
10+
#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterOpenGLRenderer.h"
11+
#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterView.h"
1012
#include "flutter/shell/platform/embedder/embedder.h"
1113
#include "flutter/shell/platform/embedder/test_utils/proc_table_replacement.h"
1214
#include "flutter/testing/testing.h"
@@ -86,4 +88,31 @@
8688
[engine shutDownEngine];
8789
}
8890

91+
TEST(FlutterOpenGLRenderer, PresetDelegatesToFlutterView) {
92+
FlutterEngine* engine = CreateTestEngine();
93+
FlutterOpenGLRenderer* renderer = [[FlutterOpenGLRenderer alloc] initWithFlutterEngine:engine];
94+
id mockFlutterView = OCMClassMock([FlutterView class]);
95+
[[mockFlutterView expect] present];
96+
[renderer attachToFlutterView:mockFlutterView];
97+
[renderer openGLContext];
98+
[renderer glPresent];
99+
}
100+
101+
TEST(FlutterOpenGLRenderer, FBOReturnedByFlutterView) {
102+
FlutterEngine* engine = CreateTestEngine();
103+
FlutterOpenGLRenderer* renderer = [[FlutterOpenGLRenderer alloc] initWithFlutterEngine:engine];
104+
id mockFlutterView = OCMClassMock([FlutterView class]);
105+
FlutterFrameInfo frameInfo;
106+
frameInfo.struct_size = sizeof(FlutterFrameInfo);
107+
FlutterUIntSize dimensions;
108+
dimensions.width = 100;
109+
dimensions.height = 200;
110+
frameInfo.size = dimensions;
111+
CGSize size = CGSizeMake(dimensions.width, dimensions.height);
112+
[[mockFlutterView expect] frameBufferIDForSize:size];
113+
[renderer attachToFlutterView:mockFlutterView];
114+
[renderer openGLContext];
115+
[renderer fboForFrameInfo:&frameInfo];
116+
}
117+
89118
} // namespace flutter::testing

0 commit comments

Comments
 (0)