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 */
37struct 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
72typedef 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