gfx/layers/ipc/WebRenderMessages.ipdlh
author Nicolas Silva <nsilva@mozilla.com>
Wed, 20 Sep 2017 13:39:19 +0200
changeset 431417 d5e1533786ee8a8f754ef737ccd7980d30818e93
parent 431415 0ecd18f1020354adbdbc6ba3734ae69b1621c88a
child 433194 754a0d9a44ea5208b6b204e06033e008a6c17b52
permissions -rw-r--r--
Bug 1400532 - Separate small and large shmem allocations in IpcResourceUpdateQueue. r=jrmuizel

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 * vim: sw=2 ts=8 et :
 */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

include LayersSurfaces;
include LayersMessages;
include protocol PTexture;

using mozilla::wr::ByteBuffer from "mozilla/webrender/WebRenderTypes.h";
using mozilla::wr::LayoutSize from "mozilla/webrender/webrender_ffi.h";
using mozilla::wr::ImageDescriptor from "mozilla/webrender/webrender_ffi.h";
using mozilla::wr::ImageRendering from "mozilla/webrender/webrender_ffi.h";
using mozilla::wr::MixBlendMode from "mozilla/webrender/webrender_ffi.h";
using mozilla::wr::MaybeImageMask from "mozilla/webrender/WebRenderTypes.h";
using mozilla::wr::ExternalImageId from "mozilla/webrender/WebRenderTypes.h";
using mozilla::wr::MaybeFontInstanceOptions from "mozilla/webrender/WebRenderTypes.h";
using mozilla::wr::MaybeFontInstancePlatformOptions from "mozilla/webrender/WebRenderTypes.h";
using mozilla::wr::FontInstanceKey from "mozilla/webrender/WebRenderTypes.h";
using mozilla::wr::FontKey from "mozilla/webrender/WebRenderTypes.h";
using mozilla::wr::ImageKey from "mozilla/webrender/WebRenderTypes.h";
using mozilla::wr::PipelineId from "mozilla/webrender/WebRenderTypes.h";
using mozilla::gfx::MaybeIntSize from "mozilla/gfx/Point.h";
using mozilla::LayerPoint from "Units.h";
using mozilla::layers::MaybeLayerRect from "mozilla/layers/LayersTypes.h";
using class mozilla::gfx::Matrix4x4 from "mozilla/gfx/Matrix.h";
using struct mozilla::void_t from "ipc/IPCMessageUtils.h";

namespace mozilla {
namespace layers {

union OptionalTransform {
  Matrix4x4;
  void_t;
};

union OptionalOpacity {
  float;
  void_t;
};

struct OpAddExternalImage {
  ExternalImageId externalImageId;
  ImageKey key;
};

struct OpAddCompositorAnimations {
  CompositorAnimations data;
  OptionalTransform transform;
  OptionalOpacity opacity;
};

struct OpUpdateAsyncImagePipeline {
  PipelineId pipelineId;
  LayerRect scBounds;
  Matrix4x4 scTransform;
  MaybeIntSize scaleToSize;
  ImageRendering filter;
  MixBlendMode mixBlendMode;
};

union WebRenderParentCommand {
  OpUpdateAsyncImagePipeline;
  CompositableOperation;
  OpAddCompositorAnimations;
};

struct OffsetRange {
  uint32_t source;
  uint32_t start;
  uint32_t length;
};

struct OpAddImage {
  ImageDescriptor descriptor;
  OffsetRange bytes;
  uint16_t tiling;
  ImageKey key;
};

struct OpAddBlobImage {
  ImageDescriptor descriptor;
  OffsetRange bytes;
  uint16_t tiling;
  ImageKey key;
};

struct OpUpdateImage {
  ImageDescriptor descriptor;
  OffsetRange bytes;
  ImageKey key;
};

struct OpUpdateBlobImage {
  ImageDescriptor descriptor;
  OffsetRange bytes;
  ImageKey key;
};

struct OpDeleteImage {
  ImageKey key;
};

struct OpAddRawFont {
  OffsetRange bytes;
  uint32_t fontIndex;
  FontKey key;
};

struct OpDeleteFont {
  FontKey key;
};

struct OpAddFontInstance {
  MaybeFontInstanceOptions options;
  MaybeFontInstancePlatformOptions platformOptions ;
  FontInstanceKey instanceKey;
  FontKey fontKey;
  float glyphSize;
};

struct OpDeleteFontInstance {
  FontInstanceKey key;
};

union OpUpdateResource {
  OpAddImage;
  OpAddBlobImage;
  OpUpdateImage;
  OpUpdateBlobImage;
  OpDeleteImage;
  OpAddRawFont;
  OpDeleteFont;
  OpAddFontInstance;
  OpDeleteFontInstance;
  OpAddExternalImage;
};

} // namespace
} // namespace