diff --git a/packages/camera/CHANGELOG.md b/packages/camera/CHANGELOG.md index 549ddfb1e..d37fd5462 100644 --- a/packages/camera/CHANGELOG.md +++ b/packages/camera/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.3 + +* Apply 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..25ac8bd7f 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,20 +346,19 @@ CameraDevice::CameraDevice(flutter::PluginRegistrar *registrar, current_packet_ = nullptr; return nullptr; } - flutter_desktop_gpu_buffer_->buffer = surface; - flutter_desktop_gpu_buffer_->width = width; - flutter_desktop_gpu_buffer_->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_->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 7813fe949..bf219bd65 100644 --- a/packages/camera/tizen/src/camera_device.h +++ b/packages/camera/tizen/src/camera_device.h @@ -329,7 +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/CHANGELOG.md b/packages/video_player/CHANGELOG.md index 8fb14580e..3ab7a38be 100644 --- a/packages/video_player/CHANGELOG.md +++ b/packages/video_player/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.4.1 + +* Apply 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..10d939801 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::ObtainGpuSurface( + size_t width, size_t height) { std::lock_guard lock(mutex_); if (!current_media_packet_) { LOG_ERROR("[VideoPlayer] No valid media packet."); @@ -67,12 +67,12 @@ FlutterDesktopGpuBuffer *VideoPlayer::ObtainGpuBuffer(size_t width, current_media_packet_ = nullptr; return nullptr; } - flutter_desktop_gpu_buffer_->buffer = surface; - flutter_desktop_gpu_buffer_->width = width; - flutter_desktop_gpu_buffer_->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_->height = height; + gpu_surface_->release_context = this; + gpu_surface_->release_callback = ReleaseMediaPacket; + return gpu_surface_.get(); } VideoPlayer::VideoPlayer(flutter::PluginRegistrar *plugin_registrar, @@ -82,12 +82,13 @@ 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 * { - return this->ObtainGpuBuffer(width, height); + size_t height) -> const FlutterDesktopGpuSurfaceDescriptor * { + 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 8aaa3925f..109b4b228 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 *ObtainGpuSurface(size_t width, + size_t height); static void ReleaseMediaPacket(void *packet); static void OnPrepared(void *data); @@ -61,7 +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/CHANGELOG.md b/packages/webview_flutter/CHANGELOG.md index f17e52fa6..a0ce9b2bd 100644 --- a/packages/webview_flutter/CHANGELOG.md +++ b/packages/webview_flutter/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.5.3 + +* Apply 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..7e3a2dd0e 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,21 +47,21 @@ 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 FlutterDesktopGpuBuffer(); - gpu_buffer_->width = width_; - gpu_buffer_->height = height_; - gpu_buffer_->buffer = tbm_surface_; - gpu_buffer_->release_callback = [](void* release_context) { + gpu_surface_ = new FlutterDesktopGpuSurfaceDescriptor(); + gpu_surface_->width = width_; + gpu_surface_->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 66d4fefc3..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(); - FlutterDesktopGpuBuffer* 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; - FlutterDesktopGpuBuffer* 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 34d0b23b1..934defcc4 100644 --- a/packages/webview_flutter/tizen/src/webview.cc +++ b/packages/webview_flutter/tizen/src/webview.cc @@ -166,10 +166,11 @@ 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* { - return ObtainGpuBuffer(width, height); + size_t height) -> const FlutterDesktopGpuSurfaceDescriptor* { + return ObtainGpuSurface(width, height); })); SetTextureId(texture_registrar_->RegisterTexture(texture_variant_.get())); @@ -862,11 +863,12 @@ void WebView::HandleCookieMethodCall( } } -FlutterDesktopGpuBuffer* 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; } @@ -875,5 +877,5 @@ FlutterDesktopGpuBuffer* WebView::ObtainGpuBuffer(size_t width, size_t height) { } 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 bc57e1931..d78142d0a 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* ObtainGpuSurface(size_t width, + size_t height); private: void HandleMethodCall(