1 /* Copyright 2014 The Chromium Authors. All rights reserved. 2 * Use of this source code is governed by a BSD-style license that can be 3 * found in the LICENSE file. 4 */ 5 6 /* From private/ppb_input_event_private.idl, 7 * modified Tue May 20 18:31:39 2014. 8 */ 9 10 #ifndef PPAPI_C_PRIVATE_PPB_INPUT_EVENT_PRIVATE_H_ 11 #define PPAPI_C_PRIVATE_PPB_INPUT_EVENT_PRIVATE_H_ 12 13 #include "ppapi/c/pp_bool.h" 14 #include "ppapi/c/pp_instance.h" 15 #include "ppapi/c/pp_macros.h" 16 #include "ppapi/c/pp_resource.h" 17 #include "ppapi/c/pp_stdint.h" 18 19 #define PPB_INPUTEVENT_PRIVATE_INTERFACE_0_1 "PPB_InputEvent_Private;0.1" 20 #define PPB_INPUTEVENT_PRIVATE_INTERFACE PPB_INPUTEVENT_PRIVATE_INTERFACE_0_1 21 22 /** 23 * @file 24 * This file defines the PPB_InputEvent_Private interfaces. 25 */ 26 27 28 /** 29 * @addtogroup Interfaces 30 * @{ 31 */ 32 /** 33 * The <code>PPB_InputEvent_Private</code> interface contains pointers to 34 several 35 * functions related to generic input events on the browser. 36 */ 37 struct PPB_InputEvent_Private_0_1 { 38 /** 39 * TraceInputLatency() traces the latency of the input event. The input 40 * latency is shown in the trace viewer. The starting point of the input 41 * latency is when the input event is sent from renderer to plugin. If the 42 * input event does not cause any rendering damage, the end point of input 43 * latency is when TraceInputLatency() is called on the event. If the input 44 * event does cause rendering damage, the end point of input latency is when 45 * the resulted plugin frame eventually reaches screen. 46 * 47 * Notes: In the current version, only Graphics2D damage is considered as 48 * rendering damage. And it works only when the Graphics2Ds are bound to 49 * the plugin instance. 50 * 51 * @param[in] event A <code>PP_Resource</code> corresponding to an input 52 * event. 53 * 54 * @param[in] has_damage A bool indicating whether the event has caused any 55 * rendering damage. 56 * 57 * @return <code>PP_TRUE</code> if the latency for the given event is tracked. 58 */ 59 PP_Bool (*TraceInputLatency)(PP_Resource event, PP_Bool has_damage); 60 /** 61 * StartTrackingLatency() requests input latency to be tracked. 62 * 63 * Without calling StartTrackingLatency() first, TraceInputLatency() won't 64 * take effect. 65 * 66 * @param[in] instance The <code>PP_Instance</code> of the instance requesting 67 * to start tracking input latency. 68 */ 69 void (*StartTrackingLatency)(PP_Instance instance); 70 }; 71 72 typedef struct PPB_InputEvent_Private_0_1 PPB_InputEvent_Private; 73 /** 74 * @} 75 */ 76 77 #endif /* PPAPI_C_PRIVATE_PPB_INPUT_EVENT_PRIVATE_H_ */ 78 79