RemoteSampleBufferDisplayLayerManager.cpp [plain text]
#include "config.h"
#include "RemoteSampleBufferDisplayLayerManager.h"
#if PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)
#include "Decoder.h"
#include "RemoteSampleBufferDisplayLayer.h"
#include <WebCore/IntSize.h>
namespace WebKit {
RemoteSampleBufferDisplayLayerManager::RemoteSampleBufferDisplayLayerManager(Ref<IPC::Connection>&& connection)
: m_connection(WTFMove(connection))
{
}
RemoteSampleBufferDisplayLayerManager::~RemoteSampleBufferDisplayLayerManager() = default;
void RemoteSampleBufferDisplayLayerManager::didReceiveLayerMessage(IPC::Connection& connection, IPC::Decoder& decoder)
{
if (auto* layer = m_layers.get(makeObjectIdentifier<SampleBufferDisplayLayerIdentifierType>(decoder.destinationID())))
layer->didReceiveMessage(connection, decoder);
}
void RemoteSampleBufferDisplayLayerManager::createLayer(SampleBufferDisplayLayerIdentifier identifier, bool hideRootLayer, WebCore::IntSize size, LayerCreationCallback&& callback)
{
ASSERT(!m_layers.contains(identifier));
auto layer = RemoteSampleBufferDisplayLayer::create(identifier, m_connection.copyRef());
layer->initialize(hideRootLayer, size, WTFMove(callback));
m_layers.add(identifier, WTFMove(layer));
}
void RemoteSampleBufferDisplayLayerManager::releaseLayer(SampleBufferDisplayLayerIdentifier identifier)
{
ASSERT(m_layers.contains(identifier));
m_layers.remove(identifier);
}
}
#endif // PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)