1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/ozone/platform/wayland/test/test_zwp_linux_buffer_params.h"
#include "ui/ozone/platform/wayland/test/mock_zwp_linux_dmabuf.h"
#include "ui/ozone/platform/wayland/test/test_buffer.h"
namespace wl {
namespace {
void Add(wl_client* client,
wl_resource* resource,
int32_t fd,
uint32_t plane_idx,
uint32_t offset,
uint32_t stride,
uint32_t modifier_hi,
uint32_t modifier_lo) {
auto* buffer_params = GetUserDataAs<TestZwpLinuxBufferParamsV1>(resource);
buffer_params->fds_.emplace_back(fd);
buffer_params->modifier_lo_ = modifier_lo;
buffer_params->modifier_hi_ = modifier_hi;
}
void CreateCommon(TestZwpLinuxBufferParamsV1* buffer_params,
wl_client* client,
int32_t width,
int32_t height,
uint32_t format,
uint32_t flags) {
wl_resource* buffer_resource =
CreateResourceWithImpl<::testing::NiceMock<TestBuffer>>(
client, &wl_buffer_interface, 1, &kTestWlBufferImpl, 0,
std::move(buffer_params->fds_));
buffer_params->SetBufferResource(buffer_resource);
}
void Create(wl_client* client,
wl_resource* buffer_params_resource,
int32_t width,
int32_t height,
uint32_t format,
uint32_t flags) {
auto* buffer_params =
GetUserDataAs<TestZwpLinuxBufferParamsV1>(buffer_params_resource);
CreateCommon(buffer_params, client, width, height, format, flags);
}
void CreateImmed(wl_client* client,
wl_resource* buffer_params_resource,
uint32_t buffer_id,
int32_t width,
int32_t height,
uint32_t format,
uint32_t flags) {
auto* buffer_params =
GetUserDataAs<TestZwpLinuxBufferParamsV1>(buffer_params_resource);
CreateCommon(buffer_params, client, width, height, format, flags);
}
} // namespace
const struct zwp_linux_buffer_params_v1_interface
kTestZwpLinuxBufferParamsV1Impl = {&DestroyResource, &Add, &Create,
&CreateImmed};
TestZwpLinuxBufferParamsV1::TestZwpLinuxBufferParamsV1(wl_resource* resource)
: ServerObject(resource) {}
TestZwpLinuxBufferParamsV1::~TestZwpLinuxBufferParamsV1() {
DCHECK(linux_dmabuf_);
linux_dmabuf_->OnBufferParamsDestroyed(this);
}
void TestZwpLinuxBufferParamsV1::SetZwpLinuxDmabuf(
MockZwpLinuxDmabufV1* linux_dmabuf) {
DCHECK(!linux_dmabuf_);
linux_dmabuf_ = linux_dmabuf;
}
void TestZwpLinuxBufferParamsV1::SetBufferResource(wl_resource* resource) {
DCHECK(!buffer_resource_);
buffer_resource_ = resource;
}
} // namespace wl
|