Home | History | Annotate | Download | only in private
      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