diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index c3966f5aed8d5..507040d6dc782 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -44061,8 +44061,6 @@ ORIGIN: ../../../flutter/shell/platform/linux/fl_accessible_node_test.cc + ../.. ORIGIN: ../../../flutter/shell/platform/linux/fl_accessible_text_field.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/linux/fl_accessible_text_field.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/linux/fl_accessible_text_field_test.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/shell/platform/linux/fl_backing_store_provider.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/shell/platform/linux/fl_backing_store_provider.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/linux/fl_basic_message_channel.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/linux/fl_basic_message_channel_test.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/linux/fl_binary_codec.cc + ../../../flutter/LICENSE @@ -44078,6 +44076,8 @@ ORIGIN: ../../../flutter/shell/platform/linux/fl_engine_private.h + ../../../flu ORIGIN: ../../../flutter/shell/platform/linux/fl_engine_test.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/linux/fl_event_channel.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/linux/fl_event_channel_test.cc + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/shell/platform/linux/fl_framebuffer.cc + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/shell/platform/linux/fl_framebuffer.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/linux/fl_gnome_settings.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/linux/fl_gnome_settings.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/shell/platform/linux/fl_gnome_settings_test.cc + ../../../flutter/LICENSE @@ -46968,8 +46968,6 @@ FILE: ../../../flutter/shell/platform/linux/fl_accessible_node_test.cc FILE: ../../../flutter/shell/platform/linux/fl_accessible_text_field.cc FILE: ../../../flutter/shell/platform/linux/fl_accessible_text_field.h FILE: ../../../flutter/shell/platform/linux/fl_accessible_text_field_test.cc -FILE: ../../../flutter/shell/platform/linux/fl_backing_store_provider.cc -FILE: ../../../flutter/shell/platform/linux/fl_backing_store_provider.h FILE: ../../../flutter/shell/platform/linux/fl_basic_message_channel.cc FILE: ../../../flutter/shell/platform/linux/fl_basic_message_channel_test.cc FILE: ../../../flutter/shell/platform/linux/fl_binary_codec.cc @@ -46985,6 +46983,8 @@ FILE: ../../../flutter/shell/platform/linux/fl_engine_private.h FILE: ../../../flutter/shell/platform/linux/fl_engine_test.cc FILE: ../../../flutter/shell/platform/linux/fl_event_channel.cc FILE: ../../../flutter/shell/platform/linux/fl_event_channel_test.cc +FILE: ../../../flutter/shell/platform/linux/fl_framebuffer.cc +FILE: ../../../flutter/shell/platform/linux/fl_framebuffer.h FILE: ../../../flutter/shell/platform/linux/fl_gnome_settings.cc FILE: ../../../flutter/shell/platform/linux/fl_gnome_settings.h FILE: ../../../flutter/shell/platform/linux/fl_gnome_settings_test.cc diff --git a/shell/platform/linux/BUILD.gn b/shell/platform/linux/BUILD.gn index cf84277a2cc31..ef05b4ddd2117 100644 --- a/shell/platform/linux/BUILD.gn +++ b/shell/platform/linux/BUILD.gn @@ -99,13 +99,13 @@ source_set("flutter_linux_sources") { sources = [ "fl_accessible_node.cc", "fl_accessible_text_field.cc", - "fl_backing_store_provider.cc", "fl_basic_message_channel.cc", "fl_binary_codec.cc", "fl_binary_messenger.cc", "fl_dart_project.cc", "fl_engine.cc", "fl_event_channel.cc", + "fl_framebuffer.cc", "fl_gnome_settings.cc", "fl_json_message_codec.cc", "fl_json_method_codec.cc", diff --git a/shell/platform/linux/fl_backing_store_provider.h b/shell/platform/linux/fl_backing_store_provider.h deleted file mode 100644 index 6f36daa83ab7d..0000000000000 --- a/shell/platform/linux/fl_backing_store_provider.h +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef FLUTTER_SHELL_PLATFORM_LINUX_FL_BACKING_STORE_PROVIDER_H_ -#define FLUTTER_SHELL_PLATFORM_LINUX_FL_BACKING_STORE_PROVIDER_H_ - -#include - -#include - -G_BEGIN_DECLS - -G_DECLARE_FINAL_TYPE(FlBackingStoreProvider, - fl_backing_store_provider, - FL, - BACKING_STORE_PROVIDER, - GObject) - -/** - * FlBackingStoreProvider: - * - * #FlBackingStoreProvider creates framebuffers and their backing textures - * for embedder compositor. - */ - -/** - * fl_backing_store_provider_new: - * @width: width of texture. - * @height: height of texture. - * - * Creates a new frame buffer. fl_renderer_make_current() must be called - * first. - * - * Returns: a new #FlBackingStoreProvider. - */ -FlBackingStoreProvider* fl_backing_store_provider_new(int width, int height); - -/** - * fl_backing_store_provider_get_gl_framebuffer_id: - * @provider: an #FlBackingStoreProvider. - * - * Gets created framebuffer id. - * - * Returns: gl framebuffer id, 0 if creation failed. - */ -uint32_t fl_backing_store_provider_get_gl_framebuffer_id( - FlBackingStoreProvider* provider); - -/** - * fl_backing_store_provider_get_gl_texture_id: - * @provider: an #FlBackingStoreProvider. - * - * Gets created texture id. - * - * Returns: gl texture id, 0 if creation failed. - */ -uint32_t fl_backing_store_provider_get_gl_texture_id( - FlBackingStoreProvider* provider); - -/** - * fl_backing_store_provider_get_gl_target: - * @provider: an #FlBackingStoreProvider. - * - * Gets target texture (example GL_TEXTURE_2D or GL_TEXTURE_RECTANGLE). - * - * Returns: target texture. - */ -uint32_t fl_backing_store_provider_get_gl_target( - FlBackingStoreProvider* provider); - -/** - * fl_backing_store_provider_get_gl_format: - * @provider: an #FlBackingStoreProvider. - * - * Gets texture format (example GL_RGBA8). - * - * Returns: texture format. - */ -uint32_t fl_backing_store_provider_get_gl_format( - FlBackingStoreProvider* provider); - -/** - * fl_backing_store_provider_get_geometry: - * @provider: an #FlBackingStoreProvider. - * - * Gets geometry of framebuffer. - * - * Returns: geometry of backing store. - */ -GdkRectangle fl_backing_store_provider_get_geometry( - FlBackingStoreProvider* provider); - -G_END_DECLS - -#endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_BACKING_STORE_PROVIDER_H_ diff --git a/shell/platform/linux/fl_backing_store_provider.cc b/shell/platform/linux/fl_framebuffer.cc similarity index 59% rename from shell/platform/linux/fl_backing_store_provider.cc rename to shell/platform/linux/fl_framebuffer.cc index c7be731c67b35..46e9d9e7dfa59 100644 --- a/shell/platform/linux/fl_backing_store_provider.cc +++ b/shell/platform/linux/fl_framebuffer.cc @@ -2,46 +2,49 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "fl_backing_store_provider.h" +#include "fl_framebuffer.h" #include -struct _FlBackingStoreProvider { +struct _FlFramebuffer { GObject parent_instance; - uint32_t framebuffer_id; - uint32_t texture_id; - GdkRectangle geometry; + // Width of framebuffer in pixels. + size_t width; + + // Height of framebuffer in pixels. + size_t height; + + // Framebuffer ID. + GLuint framebuffer_id; + + // Texture backing framebuffer. + GLuint texture_id; }; -G_DEFINE_TYPE(FlBackingStoreProvider, fl_backing_store_provider, G_TYPE_OBJECT) +G_DEFINE_TYPE(FlFramebuffer, fl_framebuffer, G_TYPE_OBJECT) -static void fl_backing_store_provider_dispose(GObject* object) { - FlBackingStoreProvider* self = FL_BACKING_STORE_PROVIDER(object); +static void fl_framebuffer_dispose(GObject* object) { + FlFramebuffer* self = FL_FRAMEBUFFER(object); glDeleteFramebuffers(1, &self->framebuffer_id); glDeleteTextures(1, &self->texture_id); - G_OBJECT_CLASS(fl_backing_store_provider_parent_class)->dispose(object); + G_OBJECT_CLASS(fl_framebuffer_parent_class)->dispose(object); } -static void fl_backing_store_provider_class_init( - FlBackingStoreProviderClass* klass) { - G_OBJECT_CLASS(klass)->dispose = fl_backing_store_provider_dispose; +static void fl_framebuffer_class_init(FlFramebufferClass* klass) { + G_OBJECT_CLASS(klass)->dispose = fl_framebuffer_dispose; } -static void fl_backing_store_provider_init(FlBackingStoreProvider* self) {} +static void fl_framebuffer_init(FlFramebuffer* self) {} -FlBackingStoreProvider* fl_backing_store_provider_new(int width, int height) { - FlBackingStoreProvider* provider = FL_BACKING_STORE_PROVIDER( - g_object_new(fl_backing_store_provider_get_type(), nullptr)); +FlFramebuffer* fl_framebuffer_new(size_t width, size_t height) { + FlFramebuffer* provider = + FL_FRAMEBUFFER(g_object_new(fl_framebuffer_get_type(), nullptr)); - provider->geometry = { - .x = 0, - .y = 0, - .width = width, - .height = height, - }; + provider->width = width; + provider->height = height; glGenTextures(1, &provider->texture_id); glGenFramebuffers(1, &provider->framebuffer_id); @@ -63,21 +66,19 @@ FlBackingStoreProvider* fl_backing_store_provider_new(int width, int height) { return provider; } -uint32_t fl_backing_store_provider_get_gl_framebuffer_id( - FlBackingStoreProvider* self) { +GLuint fl_framebuffer_get_id(FlFramebuffer* self) { return self->framebuffer_id; } -uint32_t fl_backing_store_provider_get_gl_texture_id( - FlBackingStoreProvider* self) { +GLuint fl_framebuffer_get_texture_id(FlFramebuffer* self) { return self->texture_id; } -uint32_t fl_backing_store_provider_get_gl_target(FlBackingStoreProvider* self) { +GLenum fl_framebuffer_get_target(FlFramebuffer* self) { return GL_TEXTURE_2D; } -uint32_t fl_backing_store_provider_get_gl_format(FlBackingStoreProvider* self) { +GLenum fl_framebuffer_get_format(FlFramebuffer* self) { // Flutter defines SK_R32_SHIFT=16, so SK_PMCOLOR_BYTE_ORDER should be BGRA. // In Linux kN32_SkColorType is assumed to be kBGRA_8888_SkColorType. // So we must choose a valid gl format to be compatible with surface format @@ -102,7 +103,10 @@ uint32_t fl_backing_store_provider_get_gl_format(FlBackingStoreProvider* self) { return GL_RGBA8; } -GdkRectangle fl_backing_store_provider_get_geometry( - FlBackingStoreProvider* self) { - return self->geometry; +size_t fl_framebuffer_get_width(FlFramebuffer* self) { + return self->width; +} + +size_t fl_framebuffer_get_height(FlFramebuffer* self) { + return self->height; } diff --git a/shell/platform/linux/fl_framebuffer.h b/shell/platform/linux/fl_framebuffer.h new file mode 100644 index 0000000000000..b70593a4339c2 --- /dev/null +++ b/shell/platform/linux/fl_framebuffer.h @@ -0,0 +1,95 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef FLUTTER_SHELL_PLATFORM_LINUX_FL_FRAMEBUFFER_H_ +#define FLUTTER_SHELL_PLATFORM_LINUX_FL_FRAMEBUFFER_H_ + +#include +#include + +G_BEGIN_DECLS + +G_DECLARE_FINAL_TYPE(FlFramebuffer, fl_framebuffer, FL, FRAMEBUFFER, GObject) + +/** + * FlFramebuffer: + * + * #FlFramebuffer creates framebuffers and their backing textures + * for use by the Flutter compositor. + */ + +/** + * fl_framebuffer_new: + * @width: width of texture. + * @height: height of texture. + * + * Creates a new frame buffer. Requires a valid OpenGL context to create. + * + * Returns: a new #FlFramebuffer. + */ +FlFramebuffer* fl_framebuffer_new(size_t width, size_t height); + +/** + * fl_framebuffer_get_id: + * @framebuffer: an #FlFramebuffer. + * + * Gets the ID for this framebuffer. + * + * Returns: OpenGL framebuffer id or 0 if creation failed. + */ +GLuint fl_framebuffer_get_id(FlFramebuffer* framebuffer); + +/** + * fl_framebuffer_get_texture_id: + * @framebuffer: an #FlFramebuffer. + * + * Gets the ID of the texture associated with this framebuffer. + * + * Returns: OpenGL texture id or 0 if creation failed. + */ +GLuint fl_framebuffer_get_texture_id(FlFramebuffer* framebuffer); + +/** + * fl_framebuffer_get_target: + * @framebuffer: an #FlFramebuffer. + * + * Gets target texture (example GL_TEXTURE_2D or GL_TEXTURE_RECTANGLE). + * + * Returns: target texture. + */ +GLenum fl_framebuffer_get_target(FlFramebuffer* framebuffer); + +/** + * fl_framebuffer_get_format: + * @framebuffer: an #FlFramebuffer. + * + * Gets format of texture backing the framebuffer (example GL_RGBA8). + * + * Returns: texture format. + */ +GLenum fl_framebuffer_get_format(FlFramebuffer* framebuffer); + +/** + * fl_framebuffer_get_width: + * @framebuffer: an #FlFramebuffer. + * + * Gets the width of the framebuffer in pixels. + * + * Returns: width in pixels. + */ +size_t fl_framebuffer_get_width(FlFramebuffer* framebuffer); + +/** + * fl_framebuffer_get_height: + * @framebuffer: an #FlFramebuffer. + * + * Gets the height of the framebuffer in pixels. + * + * Returns: height in pixels. + */ +size_t fl_framebuffer_get_height(FlFramebuffer* framebuffer); + +G_END_DECLS + +#endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_FRAMEBUFFER_H_ diff --git a/shell/platform/linux/fl_renderer.cc b/shell/platform/linux/fl_renderer.cc index 9db2bee5bdf7e..013a2c73ae2b4 100644 --- a/shell/platform/linux/fl_renderer.cc +++ b/shell/platform/linux/fl_renderer.cc @@ -8,8 +8,8 @@ #include #include "flutter/shell/platform/embedder/embedder.h" -#include "flutter/shell/platform/linux/fl_backing_store_provider.h" #include "flutter/shell/platform/linux/fl_engine_private.h" +#include "flutter/shell/platform/linux/fl_framebuffer.h" #include "flutter/shell/platform/linux/fl_view_private.h" // Vertex shader to draw Flutter window contents. @@ -54,8 +54,8 @@ typedef struct { // Shader program. GLuint program; - // Textures to render. - GPtrArray* textures; + // Framebuffers to render. + GPtrArray* framebuffers; } FlRendererPrivate; G_DEFINE_TYPE_WITH_PRIVATE(FlRenderer, fl_renderer, G_TYPE_OBJECT) @@ -152,18 +152,16 @@ static void render_with_blit(FlRenderer* self) { // See OpenGL specification version 4.6, section 18.3.1. glDisable(GL_SCISSOR_TEST); - for (guint i = 0; i < priv->textures->len; i++) { - FlBackingStoreProvider* texture = - FL_BACKING_STORE_PROVIDER(g_ptr_array_index(priv->textures, i)); + for (guint i = 0; i < priv->framebuffers->len; i++) { + FlFramebuffer* framebuffer = + FL_FRAMEBUFFER(g_ptr_array_index(priv->framebuffers, i)); - uint32_t framebuffer_id = - fl_backing_store_provider_get_gl_framebuffer_id(texture); + GLuint framebuffer_id = fl_framebuffer_get_id(framebuffer); glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer_id); - GdkRectangle geometry = fl_backing_store_provider_get_geometry(texture); - glBlitFramebuffer(0, 0, geometry.width, geometry.height, geometry.x, - geometry.y, geometry.x + geometry.width, - geometry.y + geometry.height, GL_COLOR_BUFFER_BIT, - GL_NEAREST); + size_t width = fl_framebuffer_get_width(framebuffer); + size_t height = fl_framebuffer_get_height(framebuffer); + glBlitFramebuffer(0, 0, width, height, 0, 0, width, height, + GL_COLOR_BUFFER_BIT, GL_NEAREST); } glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); } @@ -184,25 +182,20 @@ static void render_with_textures(FlRenderer* self, int width, int height) { glUseProgram(priv->program); - for (guint i = 0; i < priv->textures->len; i++) { - FlBackingStoreProvider* texture = - FL_BACKING_STORE_PROVIDER(g_ptr_array_index(priv->textures, i)); + for (guint i = 0; i < priv->framebuffers->len; i++) { + FlFramebuffer* framebuffer = + FL_FRAMEBUFFER(g_ptr_array_index(priv->framebuffers, i)); - uint32_t texture_id = fl_backing_store_provider_get_gl_texture_id(texture); + GLuint texture_id = fl_framebuffer_get_texture_id(framebuffer); glBindTexture(GL_TEXTURE_2D, texture_id); // Translate into OpenGL co-ordinates - GdkRectangle texture_geometry = - fl_backing_store_provider_get_geometry(texture); - GLfloat texture_x = texture_geometry.x; - GLfloat texture_y = texture_geometry.y; - GLfloat texture_width = texture_geometry.width; - GLfloat texture_height = texture_geometry.height; - GLfloat x0 = pixels_to_gl_coords(texture_x, width); - GLfloat y0 = - pixels_to_gl_coords(height - (texture_y + texture_height), height); - GLfloat x1 = pixels_to_gl_coords(texture_x + texture_width, width); - GLfloat y1 = pixels_to_gl_coords(height - texture_y, height); + size_t texture_width = fl_framebuffer_get_width(framebuffer); + size_t texture_height = fl_framebuffer_get_height(framebuffer); + GLfloat x0 = pixels_to_gl_coords(0, width); + GLfloat y0 = pixels_to_gl_coords(height - texture_height, height); + GLfloat x1 = pixels_to_gl_coords(texture_width, width); + GLfloat y1 = pixels_to_gl_coords(height, height); GLfloat vertex_data[] = {x0, y0, 0, 0, x1, y1, 1, 1, x0, y1, 0, 1, x0, y0, 0, 0, x1, y0, 1, 0, x1, y1, 1, 1}; @@ -240,7 +233,7 @@ static void fl_renderer_dispose(GObject* object) { fl_renderer_unblock_main_thread(self); - g_clear_pointer(&priv->textures, g_ptr_array_unref); + g_clear_pointer(&priv->framebuffers, g_ptr_array_unref); G_OBJECT_CLASS(fl_renderer_parent_class)->dispose(object); } @@ -252,7 +245,7 @@ static void fl_renderer_class_init(FlRendererClass* klass) { static void fl_renderer_init(FlRenderer* self) { FlRendererPrivate* priv = reinterpret_cast( fl_renderer_get_instance_private(self)); - priv->textures = g_ptr_array_new_with_free_func(g_object_unref); + priv->framebuffers = g_ptr_array_new_with_free_func(g_object_unref); } gboolean fl_renderer_start(FlRenderer* self, FlView* view) { @@ -304,21 +297,20 @@ gboolean fl_renderer_create_backing_store( FlutterBackingStore* backing_store_out) { fl_renderer_make_current(renderer); - FlBackingStoreProvider* provider = - fl_backing_store_provider_new(config->size.width, config->size.height); - if (!provider) { + FlFramebuffer* framebuffer = + fl_framebuffer_new(config->size.width, config->size.height); + if (!framebuffer) { g_warning("Failed to create backing store"); return FALSE; } - uint32_t name = fl_backing_store_provider_get_gl_framebuffer_id(provider); - uint32_t format = fl_backing_store_provider_get_gl_format(provider); - backing_store_out->type = kFlutterBackingStoreTypeOpenGL; backing_store_out->open_gl.type = kFlutterOpenGLTargetTypeFramebuffer; - backing_store_out->open_gl.framebuffer.user_data = provider; - backing_store_out->open_gl.framebuffer.name = name; - backing_store_out->open_gl.framebuffer.target = format; + backing_store_out->open_gl.framebuffer.user_data = framebuffer; + backing_store_out->open_gl.framebuffer.name = + fl_framebuffer_get_id(framebuffer); + backing_store_out->open_gl.framebuffer.target = + fl_framebuffer_get_format(framebuffer); backing_store_out->open_gl.framebuffer.destruction_callback = [](void* p) { // Backing store destroyed in fl_renderer_collect_backing_store(), set // on FlutterCompositor.collect_backing_store_callback during engine start. @@ -332,7 +324,7 @@ gboolean fl_renderer_collect_backing_store( const FlutterBackingStore* backing_store) { fl_renderer_make_current(self); - // OpenGL context is required when destroying #FlBackingStoreProvider. + // OpenGL context is required when destroying #FlFramebuffer. g_object_unref(backing_store->open_gl.framebuffer.user_data); return TRUE; } @@ -377,16 +369,15 @@ gboolean fl_renderer_present_layers(FlRenderer* self, fl_renderer_unblock_main_thread(self); - g_ptr_array_set_size(priv->textures, 0); + g_ptr_array_set_size(priv->framebuffers, 0); for (size_t i = 0; i < layers_count; ++i) { const FlutterLayer* layer = layers[i]; switch (layer->type) { case kFlutterLayerContentTypeBackingStore: { const FlutterBackingStore* backing_store = layer->backing_store; - auto framebuffer = &backing_store->open_gl.framebuffer; - FlBackingStoreProvider* provider = - FL_BACKING_STORE_PROVIDER(framebuffer->user_data); - g_ptr_array_add(priv->textures, g_object_ref(provider)); + FlFramebuffer* framebuffer = + FL_FRAMEBUFFER(backing_store->open_gl.framebuffer.user_data); + g_ptr_array_add(priv->framebuffers, g_object_ref(framebuffer)); } break; case kFlutterLayerContentTypePlatformView: { // TODO(robert-ancell) Not implemented - diff --git a/shell/platform/linux/fl_renderer_test.cc b/shell/platform/linux/fl_renderer_test.cc index 7c5144df9f14f..c682a27f0f8d5 100644 --- a/shell/platform/linux/fl_renderer_test.cc +++ b/shell/platform/linux/fl_renderer_test.cc @@ -5,7 +5,7 @@ #include "gtest/gtest.h" #include "flutter/fml/logging.h" -#include "flutter/shell/platform/linux/fl_backing_store_provider.h" +#include "flutter/shell/platform/linux/fl_framebuffer.h" #include "flutter/shell/platform/linux/testing/fl_test_gtk_logs.h" #include "flutter/shell/platform/linux/testing/mock_epoxy.h" #include "flutter/shell/platform/linux/testing/mock_renderer.h" @@ -22,15 +22,14 @@ TEST(FlRendererTest, RestoresGLState) { g_autoptr(FlDartProject) project = fl_dart_project_new(); g_autoptr(FlView) view = fl_view_new(project); g_autoptr(FlMockRenderer) renderer = fl_mock_renderer_new(); - g_autoptr(FlBackingStoreProvider) backing_store_provider = - fl_backing_store_provider_new(kWidth, kHeight); + g_autoptr(FlFramebuffer) framebuffer = fl_framebuffer_new(kWidth, kHeight); fl_renderer_start(FL_RENDERER(renderer), view); fl_renderer_wait_for_frame(FL_RENDERER(renderer), kWidth, kHeight); FlutterBackingStore backing_store; backing_store.type = kFlutterBackingStoreTypeOpenGL; - backing_store.open_gl.framebuffer.user_data = backing_store_provider; + backing_store.open_gl.framebuffer.user_data = framebuffer; FlutterLayer layer; layer.type = kFlutterLayerContentTypeBackingStore; diff --git a/shell/platform/linux/fl_view.cc b/shell/platform/linux/fl_view.cc index 3cea57586eaea..14075c5809ec9 100644 --- a/shell/platform/linux/fl_view.cc +++ b/shell/platform/linux/fl_view.cc @@ -12,8 +12,8 @@ #include #include "flutter/shell/platform/linux/fl_accessible_node.h" -#include "flutter/shell/platform/linux/fl_backing_store_provider.h" #include "flutter/shell/platform/linux/fl_engine_private.h" +#include "flutter/shell/platform/linux/fl_framebuffer.h" #include "flutter/shell/platform/linux/fl_key_event.h" #include "flutter/shell/platform/linux/fl_keyboard_handler.h" #include "flutter/shell/platform/linux/fl_keyboard_view_delegate.h"