2 * Copyright (c) 2021 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include <dali/internal/graphics/gles-impl/egl-sync-object.h>
23 #include <dali/internal/graphics/gles-impl/egl-graphics-controller.h>
24 #include <dali/internal/graphics/gles/egl-sync-implementation.h>
26 namespace Dali::Graphics::EGL
28 SyncObject::SyncObject(const Graphics::SyncObjectCreateInfo& createInfo, Graphics::EglGraphicsController& controller)
29 : SyncObjectResource(createInfo, controller),
30 mEglSyncImplementation(controller.GetEglSyncImplementation()),
31 mEglSyncObject(nullptr)
35 SyncObject::~SyncObject()
39 void SyncObject::DestroyResource()
43 bool SyncObject::InitializeResource()
45 // Initialized not from a resource queue, but from a command.
46 mEglSyncObject = static_cast<Internal::Adaptor::EglSyncObject*>(mEglSyncImplementation.CreateSyncObject());
50 void SyncObject::DiscardResource()
52 // Called from custom deleter.
53 // Don't use discard queue, drop immediately.
54 mEglSyncImplementation.DestroySyncObject(mEglSyncObject);
55 mEglSyncObject = nullptr;
58 bool SyncObject::IsSynced()
62 return mEglSyncObject->IsSynced();
67 } // namespace Dali::Graphics::EGL