blob: d1e79fbb27a8ca0beb96a8b26a7a4549927af894 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/ui/scenic/lib/gfx/tests/image_pipe_unittest_common.h"
#include <lib/images/cpp/images.h>
#include <gtest/gtest.h>
#include "src/ui/lib/escher/util/image_utils.h"
#include "src/ui/scenic/lib/gfx/tests/mocks/util.h"
namespace scenic_impl {
namespace gfx {
namespace test {
fxl::RefPtr<fsl::SharedVmo> CreateVmoWithBuffer(size_t buffer_size,
std::unique_ptr<uint8_t[]> buffer_pixels) {
auto shared_vmo = CreateSharedVmo(buffer_size);
memcpy(shared_vmo->Map(), buffer_pixels.get(), buffer_size);
return shared_vmo;
}
fxl::RefPtr<fsl::SharedVmo> CreateVmoWithCheckerboardPixels(size_t w, size_t h) {
size_t pixels_size;
auto pixels = escher::image_utils::NewCheckerboardPixels(w, h, &pixels_size);
return CreateVmoWithBuffer(pixels_size, std::move(pixels));
}
fuchsia::images::ImageInfo CreateImageInfoForBgra8Image(size_t w, size_t h) {
fuchsia::images::ImageInfo image_info;
image_info.pixel_format = fuchsia::images::PixelFormat::BGRA_8;
image_info.tiling = fuchsia::images::Tiling::LINEAR;
image_info.width = w;
image_info.height = h;
image_info.stride = w * images::StrideBytesPerWidthPixel(image_info.pixel_format);
return image_info;
}
fxl::RefPtr<fsl::SharedVmo> CreateVmoWithGradientPixels(size_t w, size_t h) {
size_t pixels_size;
auto pixels = escher::image_utils::NewGradientPixels(w, h, &pixels_size);
return CreateVmoWithBuffer(pixels_size, std::move(pixels));
}
} // namespace test
} // namespace gfx
} // namespace scenic_impl