blob: 558f83718d51cfe518f9ed8e6115add0fc173e86 [file] [log] [blame]
// Copyright 2017 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.
#pragma once
#include "lib/images/fidl/image_info.fidl.h"
// Contains utilities for converting from various formats to BGRA_8, which is
// what is needed to render.
// TODO(garratt): Merge with existing image conversion libraries in media:
// bin/media/video/video_converter.h
namespace escher {
namespace image_formats {
// Returns the number of bytes per pixel for the given format.
size_t BytesPerPixel(const scenic::ImageInfo::PixelFormat& pixel_format);
// Returns the pixel alignment for the given format.
size_t PixelAlignment(const scenic::ImageInfo::PixelFormat& pixel_format);
using ImgConvertFunc = fbl::Function<void(void*, void*, uint32_t, uint32_t)>;
// Returns a function that can be used to convert any format supported in
// ImageInfo into a BGRA_8 image.
ImgConvertFunc GetConversionFunction(const scenic::ImageInfo& image_info);
} // namespace image_formats
} // namespace escher