From 7e6dda546ee58d4cf05352f9ff9fab97b3e9464f Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Fri, 26 Apr 2024 02:05:45 +0800 Subject: [PATCH] ui/cameraview: merge EGL Image Clearing code into `clearEGLImages()` (#32292) --- selfdrive/ui/qt/widgets/cameraview.cc | 37 ++++++++++----------------- selfdrive/ui/qt/widgets/cameraview.h | 1 + 2 files changed, 15 insertions(+), 23 deletions(-) diff --git a/selfdrive/ui/qt/widgets/cameraview.cc b/selfdrive/ui/qt/widgets/cameraview.cc index e4f1396268..16a5ffbf07 100644 --- a/selfdrive/ui/qt/widgets/cameraview.cc +++ b/selfdrive/ui/qt/widgets/cameraview.cc @@ -6,14 +6,6 @@ #include #endif -#include -#include -#include -#include - -#include -#include - namespace { const char frame_vertex_shader[] = @@ -197,15 +189,7 @@ void CameraWidget::stopVipcThread() { vipc_thread = nullptr; } -#ifdef QCOM2 - EGLDisplay egl_display = eglGetCurrentDisplay(); - assert(egl_display != EGL_NO_DISPLAY); - for (auto &pair : egl_images) { - eglDestroyImageKHR(egl_display, pair.second); - assert(eglGetError() == EGL_SUCCESS); - } - egl_images.clear(); -#endif + clearEGLImages(); } void CameraWidget::availableStreamsUpdated(std::set streams) { @@ -336,12 +320,7 @@ void CameraWidget::vipcConnected(VisionIpcClient *vipc_client) { stream_stride = vipc_client->buffers[0].stride; #ifdef QCOM2 - EGLDisplay egl_display = eglGetCurrentDisplay(); - assert(egl_display != EGL_NO_DISPLAY); - for (auto &pair : egl_images) { - eglDestroyImageKHR(egl_display, pair.second); - } - egl_images.clear(); + clearEGLImages(); for (int i = 0; i < vipc_client->num_buffers; i++) { // import buffers into OpenGL int fd = dup(vipc_client->buffers[i].fd); // eglDestroyImageKHR will close, so duplicate @@ -435,3 +414,15 @@ void CameraWidget::clearFrames() { frames.clear(); available_streams.clear(); } + + +void CameraWidget::clearEGLImages() { +#ifdef QCOM2 + EGLDisplay egl_display = eglGetCurrentDisplay(); + assert(egl_display != EGL_NO_DISPLAY); + for (auto &pair : egl_images) { + eglDestroyImageKHR(egl_display, pair.second); + } + egl_images.clear(); +#endif +} diff --git a/selfdrive/ui/qt/widgets/cameraview.h b/selfdrive/ui/qt/widgets/cameraview.h index c97038cf43..4f1cbede69 100644 --- a/selfdrive/ui/qt/widgets/cameraview.h +++ b/selfdrive/ui/qt/widgets/cameraview.h @@ -58,6 +58,7 @@ protected: void updateCalibration(const mat3 &calib); void vipcThread(); void clearFrames(); + void clearEGLImages(); int glWidth(); int glHeight();