1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Multiply-included message file, hence no include guard here, but see below 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// for a much smaller-than-usual include guard section. 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include <vector> 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ipc/ipc_message_macros.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "third_party/skia/include/core/SkBitmap.h" 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/gfx/geometry/point.h" 1303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "ui/gfx/geometry/rect.h" 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/gfx/ipc/gfx_param_traits.h" 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/gfx/native_widget_types.h" 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/ozone/common/gpu/ozone_gpu_message_params.h" 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/ozone/ozone_export.h" 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#undef IPC_MESSAGE_EXPORT 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define IPC_MESSAGE_EXPORT OZONE_EXPORT 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define IPC_MESSAGE_START OzoneGpuMsgStart 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 24116680a4aac90f2aa7413d9095a592090648e557Ben MurdochIPC_ENUM_TRAITS_MAX_VALUE(ui::DisplayConnectionType, 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ui::DISPLAY_CONNECTION_TYPE_LAST) 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 27116680a4aac90f2aa7413d9095a592090648e557Ben MurdochIPC_STRUCT_TRAITS_BEGIN(ui::DisplayMode_Params) 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(size) 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(is_interlaced) 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(refresh_rate) 31116680a4aac90f2aa7413d9095a592090648e557Ben MurdochIPC_STRUCT_TRAITS_END() 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 33116680a4aac90f2aa7413d9095a592090648e557Ben MurdochIPC_STRUCT_TRAITS_BEGIN(ui::DisplaySnapshot_Params) 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(display_id) 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(has_proper_display_id) 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(origin) 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(physical_size) 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(type) 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(is_aspect_preserving_scaling) 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(has_overscan) 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(display_name) 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(modes) 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(has_current_mode) 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(current_mode) 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(has_native_mode) 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(native_mode) 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IPC_STRUCT_TRAITS_MEMBER(string_representation) 48116680a4aac90f2aa7413d9095a592090648e557Ben MurdochIPC_STRUCT_TRAITS_END() 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch//------------------------------------------------------------------------------ 51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// GPU Messages 52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// These are messages from the browser to the GPU process. 53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Update the HW cursor bitmap & move to specified location. 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciIPC_MESSAGE_CONTROL4(OzoneGpuMsg_CursorSet, 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci gfx::AcceleratedWidget, 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci std::vector<SkBitmap>, 581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci gfx::Point /* location */, 591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int /* frame_delay_ms */) 60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 61116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Move the HW cursor to the specified location. 62116680a4aac90f2aa7413d9095a592090648e557Ben MurdochIPC_MESSAGE_CONTROL2(OzoneGpuMsg_CursorMove, 63116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch gfx::AcceleratedWidget, gfx::Point) 64116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 6503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Explicit creation of a WindowDelegate. We explicitly create the window 6603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// delegate such that any state change in the window is not lost while the 6703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// surface is created on the GPU side. 6803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)IPC_MESSAGE_CONTROL1(OzoneGpuMsg_CreateWindowDelegate, 6903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) gfx::AcceleratedWidget /* widget */) 7003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 7103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)IPC_MESSAGE_CONTROL1(OzoneGpuMsg_DestroyWindowDelegate, 7203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) gfx::AcceleratedWidget /* widget */) 7303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 7403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Updates the location and size of the widget on the screen. 7503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)IPC_MESSAGE_CONTROL2(OzoneGpuMsg_WindowBoundsChanged, 7603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) gfx::AcceleratedWidget /* widget */, 7703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) gfx::Rect /* bounds */) 7803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 79116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#if defined(OS_CHROMEOS) 80116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Force the DPMS state of the display to on. 81116680a4aac90f2aa7413d9095a592090648e557Ben MurdochIPC_MESSAGE_CONTROL0(OzoneGpuMsg_ForceDPMSOn) 82116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 83116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Trigger a display reconfiguration. OzoneHostMsg_UpdateNativeDisplays will be 84116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// sent as a response. 851320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// The |displays| parameter will hold a list of last known displays. 861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciIPC_MESSAGE_CONTROL1(OzoneGpuMsg_RefreshNativeDisplays, 871320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci std::vector<ui::DisplaySnapshot_Params> /* displays */) 88116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 89116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Configure a display with the specified mode at the specified location. 90116680a4aac90f2aa7413d9095a592090648e557Ben MurdochIPC_MESSAGE_CONTROL3(OzoneGpuMsg_ConfigureNativeDisplay, 91116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch int64_t, // display ID 92116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ui::DisplayMode_Params, // display mode 93116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch gfx::Point) // origin for the display 94116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 95116680a4aac90f2aa7413d9095a592090648e557Ben MurdochIPC_MESSAGE_CONTROL1(OzoneGpuMsg_DisableNativeDisplay, 96116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch int64_t) // display ID 97116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 98116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch//------------------------------------------------------------------------------ 99116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Browser Messages 100116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// These messages are from the GPU to the browser process. 101116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 102116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Updates the list of active displays. 103116680a4aac90f2aa7413d9095a592090648e557Ben MurdochIPC_MESSAGE_CONTROL1(OzoneHostMsg_UpdateNativeDisplays, 104116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch std::vector<ui::DisplaySnapshot_Params>) 105116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif 106