| Index: mojo/services/gfx/images/interfaces/image.mojom
|
| diff --git a/mojo/services/gfx/images/interfaces/image.mojom b/mojo/services/gfx/images/interfaces/image.mojom
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3009222ac79d07140df0a43b89a871ba9cc21169
|
| --- /dev/null
|
| +++ b/mojo/services/gfx/images/interfaces/image.mojom
|
| @@ -0,0 +1,48 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +[DartPackage="mojo_services"]
|
| +module mojo.gfx;
|
| +
|
| +import "geometry/interfaces/geometry.mojom";
|
| +
|
| +//This should probably be a system wide list (maybe in exists already?) since
|
| +//this is undoubtably not the only interface that will care about color formats
|
| +enum PixelLayout {
|
| + RGBA_8888 = 0,
|
| + BGRA_8888 = 1,
|
| +};
|
| +
|
| +enum ColorSpace {
|
| + SRGB = 0,
|
| +};
|
| +
|
| +struct ColorFormat {
|
| + PixelLayout layout;
|
| + ColorSpace color_space;
|
| +};
|
| +
|
| +//ImageBuffer is a thin wrapper around a handle for a platform memory handle
|
| +//which includes some basic metadata about the image. This may eventually be
|
| +//provided by some other, more general purpose system This should probably be
|
| +//where we put flags/properties about the buffer that are not image specific
|
| +//(Like whether it is CPU or GPU memory, what the layout is like, etc.)
|
| +struct ImageBuffer {
|
| + uint64 size;
|
| + handle data;
|
| +};
|
| +
|
| +//Image wraps ImageBuffer and provides image-specific metadata for the buffer
|
| +struct Image {
|
| + mojo.Size size; //width and height of image in pixels
|
| + uint32 stride; //bytes per row
|
| + uint32 pitch; // pixels per row
|
| + ColorFormat format; //pixel format
|
| + ImageBuffer buffer;
|
| +};
|
| +
|
| +struct SupportedImageProperties {
|
| + array<ColorFormat> formats;
|
| + mojo.Size size;
|
| +};
|
|
|