WebRenderMessages.ipdlh (5066B)
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- 2 * vim: sw=2 ts=8 et : 3 */ 4 /* This Source Code Form is subject to the terms of the Mozilla Public 5 * License, v. 2.0. If a copy of the MPL was not distributed with this 6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 7 8 include "mozilla/layers/LayersMessageUtils.h"; 9 include "mozilla/layers/WebRenderMessageUtils.h"; 10 11 include LayersSurfaces; 12 include LayersMessages; 13 include protocol PTexture; 14 15 using mozilla::layers::CompositableHandle from "mozilla/layers/LayersTypes.h"; 16 using mozilla::layers::CompositableHandleOwner from "mozilla/layers/LayersTypes.h"; 17 using mozilla::wr::LayoutSize from "mozilla/webrender/webrender_ffi.h"; 18 using mozilla::wr::ImageDescriptor from "mozilla/webrender/webrender_ffi.h"; 19 using mozilla::wr::ImageRendering from "mozilla/webrender/webrender_ffi.h"; 20 using mozilla::wr::MixBlendMode from "mozilla/webrender/webrender_ffi.h"; 21 using mozilla::wr::ExternalImageId from "mozilla/webrender/WebRenderTypes.h"; 22 using mozilla::wr::MaybeFontInstanceOptions from "mozilla/webrender/WebRenderTypes.h"; 23 using mozilla::wr::MaybeFontInstancePlatformOptions from "mozilla/webrender/WebRenderTypes.h"; 24 using mozilla::wr::FontInstanceKey from "mozilla/webrender/WebRenderTypes.h"; 25 using mozilla::wr::FontKey from "mozilla/webrender/WebRenderTypes.h"; 26 using mozilla::wr::ImageKey from "mozilla/webrender/WebRenderTypes.h"; 27 using mozilla::wr::BlobImageKey from "mozilla/webrender/WebRenderTypes.h"; 28 using mozilla::wr::SnapshotImageKey from "mozilla/webrender/WebRenderTypes.h"; 29 using mozilla::wr::WrRotation from "mozilla/webrender/WebRenderTypes.h"; 30 using mozilla::wr::PipelineId from "mozilla/webrender/WebRenderTypes.h"; 31 using mozilla::LayoutDeviceRect from "Units.h"; 32 using mozilla::LayoutDeviceSize from "Units.h"; 33 using mozilla::ImageIntRect from "Units.h"; 34 using mozilla::gfx::Rect from "mozilla/gfx/Rect.h"; 35 using mozilla::gfx::Matrix4x4 from "mozilla/gfx/Matrix.h"; 36 using struct mozilla::void_t from "mozilla/ipc/IPCCore.h"; 37 38 namespace mozilla { 39 namespace layers { 40 41 struct RefCountedShmem { 42 Shmem buffer; 43 }; 44 45 struct OpAddSharedExternalImage { 46 ExternalImageId externalImageId; 47 ImageKey key; 48 }; 49 50 struct OpPushExternalImageForTexture { 51 ExternalImageId externalImageId; 52 ImageKey key; 53 PTexture texture; 54 bool isUpdate; 55 }; 56 57 struct OpAddCompositorAnimations { 58 CompositorAnimations data; 59 }; 60 61 struct OpAddPipelineIdForCompositable { 62 PipelineId pipelineId; 63 CompositableHandle handle; 64 CompositableHandleOwner owner; 65 }; 66 67 struct OpRemovePipelineIdForCompositable { 68 PipelineId pipelineId; 69 }; 70 71 struct OpReleaseTextureOfImage { 72 ImageKey key; 73 }; 74 75 struct OpUpdateAsyncImagePipeline { 76 PipelineId pipelineId; 77 LayoutDeviceRect scBounds; 78 WrRotation rotation; 79 ImageRendering filter; 80 MixBlendMode mixBlendMode; 81 }; 82 83 struct OpUpdatedAsyncImagePipeline { 84 PipelineId pipelineId; 85 }; 86 87 union WebRenderParentCommand { 88 OpAddPipelineIdForCompositable; 89 OpRemovePipelineIdForCompositable; 90 OpReleaseTextureOfImage; 91 OpUpdateAsyncImagePipeline; 92 OpUpdatedAsyncImagePipeline; 93 CompositableOperation; 94 OpAddCompositorAnimations; 95 }; 96 97 struct OffsetRange { 98 uint32_t source; 99 uint32_t start; 100 uint32_t length; 101 }; 102 103 struct OpAddImage { 104 ImageDescriptor descriptor; 105 OffsetRange bytes; 106 uint16_t tiling; 107 ImageKey key; 108 }; 109 110 struct OpAddBlobImage { 111 ImageDescriptor descriptor; 112 OffsetRange bytes; 113 ImageIntRect visibleRect; 114 uint16_t tiling; 115 BlobImageKey key; 116 }; 117 118 struct OpAddSnapshotImage { 119 SnapshotImageKey key; 120 }; 121 122 struct OpUpdateImage { 123 ImageDescriptor descriptor; 124 OffsetRange bytes; 125 ImageKey key; 126 }; 127 128 struct OpUpdateBlobImage { 129 ImageDescriptor descriptor; 130 OffsetRange bytes; 131 BlobImageKey key; 132 ImageIntRect visibleRect; 133 ImageIntRect dirtyRect; 134 }; 135 136 struct OpSetBlobImageVisibleArea { 137 ImageIntRect area; 138 BlobImageKey key; 139 }; 140 141 struct OpUpdateSharedExternalImage { 142 ExternalImageId externalImageId; 143 ImageKey key; 144 ImageIntRect dirtyRect; 145 }; 146 147 struct OpDeleteImage { 148 ImageKey key; 149 }; 150 151 struct OpDeleteSnapshotImage { 152 SnapshotImageKey key; 153 }; 154 155 struct OpDeleteBlobImage { 156 BlobImageKey key; 157 }; 158 159 struct OpAddRawFont { 160 OffsetRange bytes; 161 uint32_t fontIndex; 162 FontKey key; 163 }; 164 165 struct OpAddFontDescriptor { 166 OffsetRange bytes; 167 uint32_t fontIndex; 168 FontKey key; 169 }; 170 171 struct OpDeleteFont { 172 FontKey key; 173 }; 174 175 struct OpAddFontInstance { 176 MaybeFontInstanceOptions options; 177 MaybeFontInstancePlatformOptions platformOptions; 178 OffsetRange variations; 179 FontInstanceKey instanceKey; 180 FontKey fontKey; 181 float glyphSize; 182 }; 183 184 struct OpDeleteFontInstance { 185 FontInstanceKey key; 186 }; 187 188 union OpUpdateResource { 189 OpAddImage; 190 OpAddBlobImage; 191 OpAddSnapshotImage; 192 OpUpdateImage; 193 OpUpdateBlobImage; 194 OpSetBlobImageVisibleArea; 195 OpDeleteImage; 196 OpDeleteBlobImage; 197 OpDeleteSnapshotImage; 198 OpAddRawFont; 199 OpAddFontDescriptor; 200 OpDeleteFont; 201 OpAddFontInstance; 202 OpDeleteFontInstance; 203 OpAddSharedExternalImage; 204 OpPushExternalImageForTexture; 205 OpUpdateSharedExternalImage; 206 }; 207 208 } // namespace 209 } // namespace