From ed19d36f58d3ce87cbb0cbaf03e311c70bed75a9 Mon Sep 17 00:00:00 2001 From: Boram Bae Date: Mon, 5 Sep 2022 15:29:56 +0900 Subject: [PATCH 1/4] Apply new texture APIs * Contributes to flutter-tizen/engine/issues/285. * This change depends on flutter-tizen/engine/pull/338. Signed-off-by: Boram Bae --- packages/camera/CHANGELOG.md | 3 +++ packages/camera/README.md | 2 +- packages/camera/pubspec.yaml | 2 +- packages/camera/tizen/src/camera_device.cc | 12 ++++++++---- packages/camera/tizen/src/camera_device.h | 3 ++- packages/video_player/CHANGELOG.md | 3 +++ packages/video_player/README.md | 2 +- packages/video_player/pubspec.yaml | 2 +- packages/video_player/tizen/src/video_player.cc | 16 ++++++++++------ packages/video_player/tizen/src/video_player.h | 6 ++++-- packages/webview_flutter/CHANGELOG.md | 3 +++ packages/webview_flutter/README.md | 2 +- packages/webview_flutter/pubspec.yaml | 2 +- .../webview_flutter/tizen/src/buffer_pool.cc | 6 ++++-- packages/webview_flutter/tizen/src/buffer_pool.h | 4 ++-- packages/webview_flutter/tizen/src/webview.cc | 8 +++++--- packages/webview_flutter/tizen/src/webview.h | 3 ++- 17 files changed, 52 insertions(+), 27 deletions(-) diff --git a/packages/camera/CHANGELOG.md b/packages/camera/CHANGELOG.md index 549ddfb1e..c132bcca0 100644 --- a/packages/camera/CHANGELOG.md +++ b/packages/camera/CHANGELOG.md @@ -1,3 +1,6 @@ +## 0.3.3 +* Appaly new texture APIs. + ## 0.3.2 * Update the example app and integration_test. diff --git a/packages/camera/README.md b/packages/camera/README.md index 3bad8bf9a..b66275d00 100644 --- a/packages/camera/README.md +++ b/packages/camera/README.md @@ -26,7 +26,7 @@ This package is not an _endorsed_ implementation of `camera`. Therefore, you hav ```yaml dependencies: camera: ^0.9.4 - camera_tizen: ^0.3.2 + camera_tizen: ^0.3.3 ``` Then you can import `camera` in your Dart code: diff --git a/packages/camera/pubspec.yaml b/packages/camera/pubspec.yaml index e5fa7eb13..4f128dad4 100644 --- a/packages/camera/pubspec.yaml +++ b/packages/camera/pubspec.yaml @@ -2,7 +2,7 @@ name: camera_tizen description: Tizen implementation of the camera plugin homepage: https://github.com/flutter-tizen/plugins repository: https://github.com/flutter-tizen/plugins/tree/master/packages/camera -version: 0.3.2 +version: 0.3.3 dependencies: camera_platform_interface: ^2.1.1 diff --git a/packages/camera/tizen/src/camera_device.cc b/packages/camera/tizen/src/camera_device.cc index a52abc00d..1ad94ebde 100644 --- a/packages/camera/tizen/src/camera_device.cc +++ b/packages/camera/tizen/src/camera_device.cc @@ -330,9 +330,10 @@ CameraDevice::CameraDevice(flutter::PluginRegistrar *registrar, // Init channels texture_variant_ = - std::make_unique(flutter::GpuBufferTexture( + std::make_unique(flutter::GpuSurfaceTexture( + kFlutterDesktopGpuSurfaceTypeNone, [this](size_t width, - size_t height) -> const FlutterDesktopGpuBuffer * { + size_t height) -> const FlutterDesktopGpuSurfaceDescriptor * { std::lock_guard lock(mutex_); if (!current_packet_) { return nullptr; @@ -345,9 +346,11 @@ CameraDevice::CameraDevice(flutter::PluginRegistrar *registrar, current_packet_ = nullptr; return nullptr; } - flutter_desktop_gpu_buffer_->buffer = surface; + flutter_desktop_gpu_buffer_->handle = surface; flutter_desktop_gpu_buffer_->width = width; + flutter_desktop_gpu_buffer_->visible_width = width; flutter_desktop_gpu_buffer_->height = height; + flutter_desktop_gpu_buffer_->visible_height = height; flutter_desktop_gpu_buffer_->release_callback = [](void *release_context) { CameraDevice *cd = (CameraDevice *)release_context; @@ -358,7 +361,8 @@ CameraDevice::CameraDevice(flutter::PluginRegistrar *registrar, })); texture_id_ = registrar_->texture_registrar()->RegisterTexture(texture_variant_.get()); - flutter_desktop_gpu_buffer_ = std::make_unique(); + flutter_desktop_gpu_buffer_ = + std::make_unique(); LOG_DEBUG("texture_id_[%ld]", texture_id_); camera_method_channel_ = diff --git a/packages/camera/tizen/src/camera_device.h b/packages/camera/tizen/src/camera_device.h index 7813fe949..fcbe942d7 100644 --- a/packages/camera/tizen/src/camera_device.h +++ b/packages/camera/tizen/src/camera_device.h @@ -329,7 +329,8 @@ class CameraDevice { long texture_id_{0}; flutter::PluginRegistrar *registrar_{nullptr}; std::unique_ptr texture_variant_; - std::unique_ptr flutter_desktop_gpu_buffer_; + std::unique_ptr + flutter_desktop_gpu_buffer_; media_packet_h current_packet_{nullptr}; std::mutex mutex_; diff --git a/packages/video_player/CHANGELOG.md b/packages/video_player/CHANGELOG.md index 8fb14580e..4abd3bee7 100644 --- a/packages/video_player/CHANGELOG.md +++ b/packages/video_player/CHANGELOG.md @@ -1,3 +1,6 @@ +## 2.4.1 +* Appaly new texture APIs. + ## 2.4.0 * Update video_player to 2.4.2. diff --git a/packages/video_player/README.md b/packages/video_player/README.md index 73ee3d9a0..4a93929e0 100644 --- a/packages/video_player/README.md +++ b/packages/video_player/README.md @@ -29,7 +29,7 @@ This package is not an _endorsed_ implementation of `video_player`. Therefore, y ```yaml dependencies: video_player: ^2.4.2 - video_player_tizen: ^2.4.0 + video_player_tizen: ^2.4.1 ``` Then you can import `video_player` in your Dart code: diff --git a/packages/video_player/pubspec.yaml b/packages/video_player/pubspec.yaml index 33d1bbeab..d5eac8d9c 100644 --- a/packages/video_player/pubspec.yaml +++ b/packages/video_player/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for displaying inline video with other Flutter widgets on Tizen. homepage: https://github.com/flutter-tizen/plugins repository: https://github.com/flutter-tizen/plugins/tree/master/packages/video_player -version: 2.4.0 +version: 2.4.1 flutter: plugin: diff --git a/packages/video_player/tizen/src/video_player.cc b/packages/video_player/tizen/src/video_player.cc index 8ce74e03c..47fa64fef 100644 --- a/packages/video_player/tizen/src/video_player.cc +++ b/packages/video_player/tizen/src/video_player.cc @@ -52,8 +52,8 @@ void VideoPlayer::ReleaseMediaPacket(void *data) { } } -FlutterDesktopGpuBuffer *VideoPlayer::ObtainGpuBuffer(size_t width, - size_t height) { +FlutterDesktopGpuSurfaceDescriptor *VideoPlayer::ObtainGpuBuffer( + size_t width, size_t height) { std::lock_guard lock(mutex_); if (!current_media_packet_) { LOG_ERROR("[VideoPlayer] No valid media packet."); @@ -67,9 +67,11 @@ FlutterDesktopGpuBuffer *VideoPlayer::ObtainGpuBuffer(size_t width, current_media_packet_ = nullptr; return nullptr; } - flutter_desktop_gpu_buffer_->buffer = surface; + flutter_desktop_gpu_buffer_->handle = surface; flutter_desktop_gpu_buffer_->width = width; + flutter_desktop_gpu_buffer_->visible_width = width; flutter_desktop_gpu_buffer_->height = height; + flutter_desktop_gpu_buffer_->visible_height = height; flutter_desktop_gpu_buffer_->release_context = this; flutter_desktop_gpu_buffer_->release_callback = ReleaseMediaPacket; return flutter_desktop_gpu_buffer_.get(); @@ -82,12 +84,14 @@ VideoPlayer::VideoPlayer(flutter::PluginRegistrar *plugin_registrar, texture_registrar_ = texture_registrar; texture_variant_ = - std::make_unique(flutter::GpuBufferTexture( + std::make_unique(flutter::GpuSurfaceTexture( + kFlutterDesktopGpuSurfaceTypeNone, [this](size_t width, - size_t height) -> const FlutterDesktopGpuBuffer * { + size_t height) -> const FlutterDesktopGpuSurfaceDescriptor * { return this->ObtainGpuBuffer(width, height); })); - flutter_desktop_gpu_buffer_ = std::make_unique(); + flutter_desktop_gpu_buffer_ = + std::make_unique(); texture_id_ = texture_registrar->RegisterTexture(texture_variant_.get()); int ret = player_create(&player_); diff --git a/packages/video_player/tizen/src/video_player.h b/packages/video_player/tizen/src/video_player.h index 8aaa3925f..4dfc2486a 100644 --- a/packages/video_player/tizen/src/video_player.h +++ b/packages/video_player/tizen/src/video_player.h @@ -42,7 +42,8 @@ class VideoPlayer { void Initialize(); void SetUpEventChannel(flutter::BinaryMessenger *messenger); void SendInitialized(); - FlutterDesktopGpuBuffer *ObtainGpuBuffer(size_t width, size_t height); + FlutterDesktopGpuSurfaceDescriptor *ObtainGpuBuffer(size_t width, + size_t height); static void ReleaseMediaPacket(void *packet); static void OnPrepared(void *data); @@ -61,7 +62,8 @@ class VideoPlayer { int64_t texture_id_; flutter::TextureRegistrar *texture_registrar_; std::unique_ptr texture_variant_; - std::unique_ptr flutter_desktop_gpu_buffer_; + std::unique_ptr + flutter_desktop_gpu_buffer_; std::mutex mutex_; SeekCompletedCallback on_seek_completed_; media_packet_h current_media_packet_ = nullptr; diff --git a/packages/webview_flutter/CHANGELOG.md b/packages/webview_flutter/CHANGELOG.md index f17e52fa6..5c36807a9 100644 --- a/packages/webview_flutter/CHANGELOG.md +++ b/packages/webview_flutter/CHANGELOG.md @@ -1,3 +1,6 @@ +## 0.5.3 +* Appaly new texture APIs. + ## 0.5.2 * Add a back key handling. diff --git a/packages/webview_flutter/README.md b/packages/webview_flutter/README.md index df5251e4d..27114a7fb 100644 --- a/packages/webview_flutter/README.md +++ b/packages/webview_flutter/README.md @@ -25,7 +25,7 @@ This package is not an _endorsed_ implementation of `webview_flutter`. Therefore ```yaml dependencies: webview_flutter: ^3.0.4 - webview_flutter_tizen: ^0.5.2 + webview_flutter_tizen: ^0.5.3 ``` ## Example diff --git a/packages/webview_flutter/pubspec.yaml b/packages/webview_flutter/pubspec.yaml index 3630769ad..1b978f358 100644 --- a/packages/webview_flutter/pubspec.yaml +++ b/packages/webview_flutter/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter_tizen description: Tizen implementation of the webview plugin homepage: https://github.com/flutter-tizen/plugins repository: https://github.com/flutter-tizen/plugins/tree/master/packages/webview_flutter -version: 0.5.2 +version: 0.5.3 environment: sdk: ">=2.17.0 <3.0.0" diff --git a/packages/webview_flutter/tizen/src/buffer_pool.cc b/packages/webview_flutter/tizen/src/buffer_pool.cc index e69e20ba9..43205f4a0 100644 --- a/packages/webview_flutter/tizen/src/buffer_pool.cc +++ b/packages/webview_flutter/tizen/src/buffer_pool.cc @@ -53,10 +53,12 @@ void BufferUnit::Reset(int32_t width, int32_t height) { } tbm_surface_ = tbm_surface_create(width_, height_, TBM_FORMAT_ARGB8888); - gpu_buffer_ = new FlutterDesktopGpuBuffer(); + gpu_buffer_ = new FlutterDesktopGpuSurfaceDescriptor(); gpu_buffer_->width = width_; + gpu_buffer_->visible_width = width_; gpu_buffer_->height = height_; - gpu_buffer_->buffer = tbm_surface_; + gpu_buffer_->visible_height = height_; + gpu_buffer_->handle = tbm_surface_; gpu_buffer_->release_callback = [](void* release_context) { BufferUnit* buffer = reinterpret_cast(release_context); buffer->UnmarkInUse(); diff --git a/packages/webview_flutter/tizen/src/buffer_pool.h b/packages/webview_flutter/tizen/src/buffer_pool.h index 66d4fefc3..4dd8ca86c 100644 --- a/packages/webview_flutter/tizen/src/buffer_pool.h +++ b/packages/webview_flutter/tizen/src/buffer_pool.h @@ -26,7 +26,7 @@ class BufferUnit { tbm_surface_h Surface(); - FlutterDesktopGpuBuffer* GpuBuffer() { return gpu_buffer_; } + FlutterDesktopGpuSurfaceDescriptor* GpuBuffer() { return gpu_buffer_; } #ifndef NDEBUG // TODO: Unused code. @@ -38,7 +38,7 @@ class BufferUnit { int32_t width_ = 0; int32_t height_ = 0; tbm_surface_h tbm_surface_ = nullptr; - FlutterDesktopGpuBuffer* gpu_buffer_ = nullptr; + FlutterDesktopGpuSurfaceDescriptor* gpu_buffer_ = nullptr; }; class BufferPool { diff --git a/packages/webview_flutter/tizen/src/webview.cc b/packages/webview_flutter/tizen/src/webview.cc index 34d0b23b1..959d547e4 100644 --- a/packages/webview_flutter/tizen/src/webview.cc +++ b/packages/webview_flutter/tizen/src/webview.cc @@ -166,9 +166,10 @@ WebView::WebView(flutter::PluginRegistrar* registrar, int view_id, } texture_variant_ = - std::make_unique(flutter::GpuBufferTexture( + std::make_unique(flutter::GpuSurfaceTexture( + kFlutterDesktopGpuSurfaceTypeNone, [this](size_t width, - size_t height) -> const FlutterDesktopGpuBuffer* { + size_t height) -> const FlutterDesktopGpuSurfaceDescriptor* { return ObtainGpuBuffer(width, height); })); SetTextureId(texture_registrar_->RegisterTexture(texture_variant_.get())); @@ -862,7 +863,8 @@ void WebView::HandleCookieMethodCall( } } -FlutterDesktopGpuBuffer* WebView::ObtainGpuBuffer(size_t width, size_t height) { +FlutterDesktopGpuSurfaceDescriptor* WebView::ObtainGpuBuffer(size_t width, + size_t height) { std::lock_guard lock(mutex_); if (!candidate_surface_) { if (rendered_surface_) { diff --git a/packages/webview_flutter/tizen/src/webview.h b/packages/webview_flutter/tizen/src/webview.h index bc57e1931..f0f330200 100644 --- a/packages/webview_flutter/tizen/src/webview.h +++ b/packages/webview_flutter/tizen/src/webview.h @@ -46,7 +46,8 @@ class WebView : public PlatformView { LWE::WebContainer* GetWebViewInstance() { return webview_instance_; } - FlutterDesktopGpuBuffer* ObtainGpuBuffer(size_t width, size_t height); + FlutterDesktopGpuSurfaceDescriptor* ObtainGpuBuffer(size_t width, + size_t height); private: void HandleMethodCall( From 72c74df6f0881fab3cd3e199395a1f60617d3b70 Mon Sep 17 00:00:00 2001 From: Boram Bae Date: Tue, 6 Sep 2022 11:38:31 +0900 Subject: [PATCH 2/4] Tidy up change log Signed-off-by: Boram Bae --- packages/camera/CHANGELOG.md | 3 ++- packages/video_player/CHANGELOG.md | 3 ++- packages/webview_flutter/CHANGELOG.md | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/camera/CHANGELOG.md b/packages/camera/CHANGELOG.md index c132bcca0..d37fd5462 100644 --- a/packages/camera/CHANGELOG.md +++ b/packages/camera/CHANGELOG.md @@ -1,5 +1,6 @@ ## 0.3.3 -* Appaly new texture APIs. + +* Apply new texture APIs. ## 0.3.2 diff --git a/packages/video_player/CHANGELOG.md b/packages/video_player/CHANGELOG.md index 4abd3bee7..3ab7a38be 100644 --- a/packages/video_player/CHANGELOG.md +++ b/packages/video_player/CHANGELOG.md @@ -1,5 +1,6 @@ ## 2.4.1 -* Appaly new texture APIs. + +* Apply new texture APIs. ## 2.4.0 diff --git a/packages/webview_flutter/CHANGELOG.md b/packages/webview_flutter/CHANGELOG.md index 5c36807a9..a0ce9b2bd 100644 --- a/packages/webview_flutter/CHANGELOG.md +++ b/packages/webview_flutter/CHANGELOG.md @@ -1,5 +1,6 @@ ## 0.5.3 -* Appaly new texture APIs. + +* Apply new texture APIs. ## 0.5.2 * Add a back key handling. From f1dbd4d4478531993f695f1daa32845af283469e Mon Sep 17 00:00:00 2001 From: Boram Bae Date: Tue, 6 Sep 2022 11:47:02 +0900 Subject: [PATCH 3/4] Rename simply to gpu_surface_ Signed-off-by: Boram Bae --- packages/camera/tizen/src/camera_device.cc | 26 ++++++++--------- packages/camera/tizen/src/camera_device.h | 3 +- .../video_player/tizen/src/video_player.cc | 23 ++++++++------- .../video_player/tizen/src/video_player.h | 7 ++--- .../webview_flutter/tizen/src/buffer_pool.cc | 28 +++++++++---------- .../webview_flutter/tizen/src/buffer_pool.h | 4 +-- packages/webview_flutter/tizen/src/webview.cc | 10 +++---- packages/webview_flutter/tizen/src/webview.h | 4 +-- 8 files changed, 50 insertions(+), 55 deletions(-) diff --git a/packages/camera/tizen/src/camera_device.cc b/packages/camera/tizen/src/camera_device.cc index 1ad94ebde..78a807fe9 100644 --- a/packages/camera/tizen/src/camera_device.cc +++ b/packages/camera/tizen/src/camera_device.cc @@ -346,23 +346,21 @@ CameraDevice::CameraDevice(flutter::PluginRegistrar *registrar, current_packet_ = nullptr; return nullptr; } - flutter_desktop_gpu_buffer_->handle = surface; - flutter_desktop_gpu_buffer_->width = width; - flutter_desktop_gpu_buffer_->visible_width = width; - flutter_desktop_gpu_buffer_->height = height; - flutter_desktop_gpu_buffer_->visible_height = height; - flutter_desktop_gpu_buffer_->release_callback = - [](void *release_context) { - CameraDevice *cd = (CameraDevice *)release_context; - cd->ReleaseMediaPacket(); - }; - flutter_desktop_gpu_buffer_->release_context = this; - return flutter_desktop_gpu_buffer_.get(); + gpu_surface_->handle = surface; + gpu_surface_->width = width; + gpu_surface_->visible_width = width; + gpu_surface_->height = height; + gpu_surface_->visible_height = height; + gpu_surface_->release_callback = [](void *release_context) { + CameraDevice *cd = (CameraDevice *)release_context; + cd->ReleaseMediaPacket(); + }; + gpu_surface_->release_context = this; + return gpu_surface_.get(); })); texture_id_ = registrar_->texture_registrar()->RegisterTexture(texture_variant_.get()); - flutter_desktop_gpu_buffer_ = - std::make_unique(); + gpu_surface_ = std::make_unique(); LOG_DEBUG("texture_id_[%ld]", texture_id_); camera_method_channel_ = diff --git a/packages/camera/tizen/src/camera_device.h b/packages/camera/tizen/src/camera_device.h index fcbe942d7..bf219bd65 100644 --- a/packages/camera/tizen/src/camera_device.h +++ b/packages/camera/tizen/src/camera_device.h @@ -329,8 +329,7 @@ class CameraDevice { long texture_id_{0}; flutter::PluginRegistrar *registrar_{nullptr}; std::unique_ptr texture_variant_; - std::unique_ptr - flutter_desktop_gpu_buffer_; + std::unique_ptr gpu_surface_; media_packet_h current_packet_{nullptr}; std::mutex mutex_; diff --git a/packages/video_player/tizen/src/video_player.cc b/packages/video_player/tizen/src/video_player.cc index 47fa64fef..1499fd8d8 100644 --- a/packages/video_player/tizen/src/video_player.cc +++ b/packages/video_player/tizen/src/video_player.cc @@ -52,7 +52,7 @@ void VideoPlayer::ReleaseMediaPacket(void *data) { } } -FlutterDesktopGpuSurfaceDescriptor *VideoPlayer::ObtainGpuBuffer( +FlutterDesktopGpuSurfaceDescriptor *VideoPlayer::ObtainGpuSurface( size_t width, size_t height) { std::lock_guard lock(mutex_); if (!current_media_packet_) { @@ -67,14 +67,14 @@ FlutterDesktopGpuSurfaceDescriptor *VideoPlayer::ObtainGpuBuffer( current_media_packet_ = nullptr; return nullptr; } - flutter_desktop_gpu_buffer_->handle = surface; - flutter_desktop_gpu_buffer_->width = width; - flutter_desktop_gpu_buffer_->visible_width = width; - flutter_desktop_gpu_buffer_->height = height; - flutter_desktop_gpu_buffer_->visible_height = height; - flutter_desktop_gpu_buffer_->release_context = this; - flutter_desktop_gpu_buffer_->release_callback = ReleaseMediaPacket; - return flutter_desktop_gpu_buffer_.get(); + gpu_surface_->handle = surface; + gpu_surface_->width = width; + gpu_surface_->visible_width = width; + gpu_surface_->height = height; + gpu_surface_->visible_height = height; + gpu_surface_->release_context = this; + gpu_surface_->release_callback = ReleaseMediaPacket; + return gpu_surface_.get(); } VideoPlayer::VideoPlayer(flutter::PluginRegistrar *plugin_registrar, @@ -88,10 +88,9 @@ VideoPlayer::VideoPlayer(flutter::PluginRegistrar *plugin_registrar, kFlutterDesktopGpuSurfaceTypeNone, [this](size_t width, size_t height) -> const FlutterDesktopGpuSurfaceDescriptor * { - return this->ObtainGpuBuffer(width, height); + return this->ObtainGpuSurface(width, height); })); - flutter_desktop_gpu_buffer_ = - std::make_unique(); + gpu_surface_ = std::make_unique(); texture_id_ = texture_registrar->RegisterTexture(texture_variant_.get()); int ret = player_create(&player_); diff --git a/packages/video_player/tizen/src/video_player.h b/packages/video_player/tizen/src/video_player.h index 4dfc2486a..109b4b228 100644 --- a/packages/video_player/tizen/src/video_player.h +++ b/packages/video_player/tizen/src/video_player.h @@ -42,8 +42,8 @@ class VideoPlayer { void Initialize(); void SetUpEventChannel(flutter::BinaryMessenger *messenger); void SendInitialized(); - FlutterDesktopGpuSurfaceDescriptor *ObtainGpuBuffer(size_t width, - size_t height); + FlutterDesktopGpuSurfaceDescriptor *ObtainGpuSurface(size_t width, + size_t height); static void ReleaseMediaPacket(void *packet); static void OnPrepared(void *data); @@ -62,8 +62,7 @@ class VideoPlayer { int64_t texture_id_; flutter::TextureRegistrar *texture_registrar_; std::unique_ptr texture_variant_; - std::unique_ptr - flutter_desktop_gpu_buffer_; + std::unique_ptr gpu_surface_; std::mutex mutex_; SeekCompletedCallback on_seek_completed_; media_packet_h current_media_packet_ = nullptr; diff --git a/packages/webview_flutter/tizen/src/buffer_pool.cc b/packages/webview_flutter/tizen/src/buffer_pool.cc index 43205f4a0..0644e80f2 100644 --- a/packages/webview_flutter/tizen/src/buffer_pool.cc +++ b/packages/webview_flutter/tizen/src/buffer_pool.cc @@ -13,9 +13,9 @@ BufferUnit::~BufferUnit() { tbm_surface_destroy(tbm_surface_); tbm_surface_ = nullptr; } - if (gpu_buffer_) { - delete gpu_buffer_; - gpu_buffer_ = nullptr; + if (gpu_surface_) { + delete gpu_surface_; + gpu_surface_ = nullptr; } } @@ -47,23 +47,23 @@ void BufferUnit::Reset(int32_t width, int32_t height) { tbm_surface_destroy(tbm_surface_); tbm_surface_ = nullptr; } - if (gpu_buffer_) { - delete gpu_buffer_; - gpu_buffer_ = nullptr; + if (gpu_surface_) { + delete gpu_surface_; + gpu_surface_ = nullptr; } tbm_surface_ = tbm_surface_create(width_, height_, TBM_FORMAT_ARGB8888); - gpu_buffer_ = new FlutterDesktopGpuSurfaceDescriptor(); - gpu_buffer_->width = width_; - gpu_buffer_->visible_width = width_; - gpu_buffer_->height = height_; - gpu_buffer_->visible_height = height_; - gpu_buffer_->handle = tbm_surface_; - gpu_buffer_->release_callback = [](void* release_context) { + gpu_surface_ = new FlutterDesktopGpuSurfaceDescriptor(); + gpu_surface_->width = width_; + gpu_surface_->visible_width = width_; + gpu_surface_->height = height_; + gpu_surface_->visible_height = height_; + gpu_surface_->handle = tbm_surface_; + gpu_surface_->release_callback = [](void* release_context) { BufferUnit* buffer = reinterpret_cast(release_context); buffer->UnmarkInUse(); }; - gpu_buffer_->release_context = this; + gpu_surface_->release_context = this; } BufferPool::BufferPool(int32_t width, int32_t height, size_t pool_size) { diff --git a/packages/webview_flutter/tizen/src/buffer_pool.h b/packages/webview_flutter/tizen/src/buffer_pool.h index 4dd8ca86c..e648a7fe9 100644 --- a/packages/webview_flutter/tizen/src/buffer_pool.h +++ b/packages/webview_flutter/tizen/src/buffer_pool.h @@ -26,7 +26,7 @@ class BufferUnit { tbm_surface_h Surface(); - FlutterDesktopGpuSurfaceDescriptor* GpuBuffer() { return gpu_buffer_; } + FlutterDesktopGpuSurfaceDescriptor* GpuSurface() { return gpu_surface_; } #ifndef NDEBUG // TODO: Unused code. @@ -38,7 +38,7 @@ class BufferUnit { int32_t width_ = 0; int32_t height_ = 0; tbm_surface_h tbm_surface_ = nullptr; - FlutterDesktopGpuSurfaceDescriptor* gpu_buffer_ = nullptr; + FlutterDesktopGpuSurfaceDescriptor* gpu_surface_ = nullptr; }; class BufferPool { diff --git a/packages/webview_flutter/tizen/src/webview.cc b/packages/webview_flutter/tizen/src/webview.cc index 959d547e4..934defcc4 100644 --- a/packages/webview_flutter/tizen/src/webview.cc +++ b/packages/webview_flutter/tizen/src/webview.cc @@ -170,7 +170,7 @@ WebView::WebView(flutter::PluginRegistrar* registrar, int view_id, kFlutterDesktopGpuSurfaceTypeNone, [this](size_t width, size_t height) -> const FlutterDesktopGpuSurfaceDescriptor* { - return ObtainGpuBuffer(width, height); + return ObtainGpuSurface(width, height); })); SetTextureId(texture_registrar_->RegisterTexture(texture_variant_.get())); @@ -863,12 +863,12 @@ void WebView::HandleCookieMethodCall( } } -FlutterDesktopGpuSurfaceDescriptor* WebView::ObtainGpuBuffer(size_t width, - size_t height) { +FlutterDesktopGpuSurfaceDescriptor* WebView::ObtainGpuSurface(size_t width, + size_t height) { std::lock_guard lock(mutex_); if (!candidate_surface_) { if (rendered_surface_) { - return rendered_surface_->GpuBuffer(); + return rendered_surface_->GpuSurface(); } return nullptr; } @@ -877,5 +877,5 @@ FlutterDesktopGpuSurfaceDescriptor* WebView::ObtainGpuBuffer(size_t width, } rendered_surface_ = candidate_surface_; candidate_surface_ = nullptr; - return rendered_surface_->GpuBuffer(); + return rendered_surface_->GpuSurface(); } diff --git a/packages/webview_flutter/tizen/src/webview.h b/packages/webview_flutter/tizen/src/webview.h index f0f330200..d78142d0a 100644 --- a/packages/webview_flutter/tizen/src/webview.h +++ b/packages/webview_flutter/tizen/src/webview.h @@ -46,8 +46,8 @@ class WebView : public PlatformView { LWE::WebContainer* GetWebViewInstance() { return webview_instance_; } - FlutterDesktopGpuSurfaceDescriptor* ObtainGpuBuffer(size_t width, - size_t height); + FlutterDesktopGpuSurfaceDescriptor* ObtainGpuSurface(size_t width, + size_t height); private: void HandleMethodCall( From 266c26dccb0d4b6a520f7b5b97801a974c845d02 Mon Sep 17 00:00:00 2001 From: Boram Bae Date: Tue, 6 Sep 2022 11:54:54 +0900 Subject: [PATCH 4/4] Remove visible size usage Signed-off-by: Boram Bae --- packages/camera/tizen/src/camera_device.cc | 2 -- packages/video_player/tizen/src/video_player.cc | 2 -- packages/webview_flutter/tizen/src/buffer_pool.cc | 2 -- 3 files changed, 6 deletions(-) diff --git a/packages/camera/tizen/src/camera_device.cc b/packages/camera/tizen/src/camera_device.cc index 78a807fe9..25ac8bd7f 100644 --- a/packages/camera/tizen/src/camera_device.cc +++ b/packages/camera/tizen/src/camera_device.cc @@ -348,9 +348,7 @@ CameraDevice::CameraDevice(flutter::PluginRegistrar *registrar, } gpu_surface_->handle = surface; gpu_surface_->width = width; - gpu_surface_->visible_width = width; gpu_surface_->height = height; - gpu_surface_->visible_height = height; gpu_surface_->release_callback = [](void *release_context) { CameraDevice *cd = (CameraDevice *)release_context; cd->ReleaseMediaPacket(); diff --git a/packages/video_player/tizen/src/video_player.cc b/packages/video_player/tizen/src/video_player.cc index 1499fd8d8..10d939801 100644 --- a/packages/video_player/tizen/src/video_player.cc +++ b/packages/video_player/tizen/src/video_player.cc @@ -69,9 +69,7 @@ FlutterDesktopGpuSurfaceDescriptor *VideoPlayer::ObtainGpuSurface( } gpu_surface_->handle = surface; gpu_surface_->width = width; - gpu_surface_->visible_width = width; gpu_surface_->height = height; - gpu_surface_->visible_height = height; gpu_surface_->release_context = this; gpu_surface_->release_callback = ReleaseMediaPacket; return gpu_surface_.get(); diff --git a/packages/webview_flutter/tizen/src/buffer_pool.cc b/packages/webview_flutter/tizen/src/buffer_pool.cc index 0644e80f2..7e3a2dd0e 100644 --- a/packages/webview_flutter/tizen/src/buffer_pool.cc +++ b/packages/webview_flutter/tizen/src/buffer_pool.cc @@ -55,9 +55,7 @@ void BufferUnit::Reset(int32_t width, int32_t height) { tbm_surface_ = tbm_surface_create(width_, height_, TBM_FORMAT_ARGB8888); gpu_surface_ = new FlutterDesktopGpuSurfaceDescriptor(); gpu_surface_->width = width_; - gpu_surface_->visible_width = width_; gpu_surface_->height = height_; - gpu_surface_->visible_height = height_; gpu_surface_->handle = tbm_surface_; gpu_surface_->release_callback = [](void* release_context) { BufferUnit* buffer = reinterpret_cast(release_context);