From c0b9900cdc474b8f0ea6d5ec8bb41ea6416845f9 Mon Sep 17 00:00:00 2001 From: Philip Rideout Date: Wed, 13 Nov 2019 12:54:50 -0800 Subject: [PATCH] Stream API: privatize the AcquiredImage struct. --- filament/backend/CMakeLists.txt | 1 + .../backend/include/backend/DriverEnums.h | 7 ---- .../include/private/backend/AcquiredImage.h | 38 +++++++++++++++++++ .../include/private/backend/OpenGLPlatform.h | 2 + filament/backend/src/DriverBase.h | 1 + 5 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 filament/backend/include/private/backend/AcquiredImage.h diff --git a/filament/backend/CMakeLists.txt b/filament/backend/CMakeLists.txt index 1fd0e4d982..dd68c4cf49 100644 --- a/filament/backend/CMakeLists.txt +++ b/filament/backend/CMakeLists.txt @@ -34,6 +34,7 @@ set(SRCS ) set(PRIVATE_HDRS + include/private/backend/AcquiredImage.h include/private/backend/CircularBuffer.h include/private/backend/CommandBufferQueue.h include/private/backend/CommandStream.h diff --git a/filament/backend/include/backend/DriverEnums.h b/filament/backend/include/backend/DriverEnums.h index e625b392c0..bba497fb1c 100644 --- a/filament/backend/include/backend/DriverEnums.h +++ b/filament/backend/include/backend/DriverEnums.h @@ -634,13 +634,6 @@ enum class StreamType { //! Releases an ACQUIRED external texture, guaranteed to be called on the application thread. using StreamCallback = void(*)(void* image, void* user); -//! Bundles the state of an ACQUIRED stream. -struct AcquiredImage { - void* image = nullptr; - backend::StreamCallback callback = nullptr; - void* userData = nullptr; -}; - //! Vertex attribute descriptor struct Attribute { //! attribute is normalized (remapped between 0 and 1) diff --git a/filament/backend/include/private/backend/AcquiredImage.h b/filament/backend/include/private/backend/AcquiredImage.h new file mode 100644 index 0000000000..3f585974c9 --- /dev/null +++ b/filament/backend/include/private/backend/AcquiredImage.h @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef TNT_FILAMENT_BACKEND_ACQUIRED_IMAGE_H +#define TNT_FILAMENT_BACKEND_ACQUIRED_IMAGE_H + +#include + +namespace filament { +namespace backend { + +// This lightweight POD allows us to bundle the state required to process an ACQUIRED stream. +// Since these types of external images need to be moved around and queued up, an encapsulation is +// very useful. + +struct AcquiredImage { + void* image = nullptr; + backend::StreamCallback callback = nullptr; + void* userData = nullptr; +}; + +} // namespace backend +} // namespace filament + +#endif // TNT_FILAMENT_BACKEND_ACQUIRED_IMAGE_H diff --git a/filament/backend/include/private/backend/OpenGLPlatform.h b/filament/backend/include/private/backend/OpenGLPlatform.h index 24b014b10b..f59dbdf1e2 100644 --- a/filament/backend/include/private/backend/OpenGLPlatform.h +++ b/filament/backend/include/private/backend/OpenGLPlatform.h @@ -19,6 +19,8 @@ #include +#include "private/backend/AcquiredImage.h" + namespace filament { namespace backend { diff --git a/filament/backend/src/DriverBase.h b/filament/backend/src/DriverBase.h index dcbfaecbe7..2728e6b2e9 100644 --- a/filament/backend/src/DriverBase.h +++ b/filament/backend/src/DriverBase.h @@ -24,6 +24,7 @@ #include +#include "private/backend/AcquiredImage.h" #include "private/backend/Driver.h" #include "private/backend/SamplerGroup.h"