.. _pepper_stable_c_index:
.. _c-api:

.. DO NOT EDIT! This document is auto-generated by doxygen/rst_index.py.

.. include:: /migration/deprecation.inc

##########################################
Pepper C API Reference (Stable)
##########################################

This page lists the C API for Pepper 60. Apps that use this API can
run in Chrome 60 or higher.

`Interfaces <pepper_stable/c/group___interfaces.html>`__
=============================================================
  * `PPB_Audio <pepper_stable/c/struct_p_p_b___audio__1__1.html>`__

  * `PPB_AudioBuffer <pepper_stable/c/struct_p_p_b___audio_buffer__0__1.html>`__

  * `PPB_AudioConfig <pepper_stable/c/struct_p_p_b___audio_config__1__1.html>`__

  * `PPB_AudioEncoder <pepper_stable/c/struct_p_p_b___audio_encoder__0__1.html>`__

  * `PPB_Compositor <pepper_stable/c/struct_p_p_b___compositor__0__1.html>`__

  * `PPB_CompositorLayer <pepper_stable/c/struct_p_p_b___compositor_layer__0__2.html>`__

  * `PPB_Console <pepper_stable/c/struct_p_p_b___console__1__0.html>`__

  * `PPB_Core <pepper_stable/c/struct_p_p_b___core__1__0.html>`__

  * `PPB_FileIO <pepper_stable/c/struct_p_p_b___file_i_o__1__1.html>`__

  * `PPB_FileRef <pepper_stable/c/struct_p_p_b___file_ref__1__2.html>`__

  * `PPB_FileSystem <pepper_stable/c/struct_p_p_b___file_system__1__0.html>`__

  * `PPB_Fullscreen <pepper_stable/c/struct_p_p_b___fullscreen__1__0.html>`__

  * `PPB_Gamepad <pepper_stable/c/struct_p_p_b___gamepad__1__0.html>`__

  * `PPB_Graphics2D <pepper_stable/c/struct_p_p_b___graphics2_d__1__2.html>`__

  * `PPB_Graphics3D <pepper_stable/c/struct_p_p_b___graphics3_d__1__0.html>`__

  * `PPB_HostResolver <pepper_stable/c/struct_p_p_b___host_resolver__1__0.html>`__

  * `PPB_IMEInputEvent <pepper_stable/c/struct_p_p_b___i_m_e_input_event__1__0.html>`__

  * `PPB_ImageData <pepper_stable/c/struct_p_p_b___image_data__1__0.html>`__

  * `PPB_InputEvent <pepper_stable/c/struct_p_p_b___input_event__1__0.html>`__

  * `PPB_Instance <pepper_stable/c/struct_p_p_b___instance__1__0.html>`__

  * `PPB_KeyboardInputEvent <pepper_stable/c/struct_p_p_b___keyboard_input_event__1__2.html>`__

  * `PPB_MediaStreamAudioTrack <pepper_stable/c/struct_p_p_b___media_stream_audio_track__0__1.html>`__

  * `PPB_MediaStreamVideoTrack <pepper_stable/c/struct_p_p_b___media_stream_video_track__1__0.html>`__

  * `PPB_MessageLoop <pepper_stable/c/struct_p_p_b___message_loop__1__0.html>`__

  * `PPB_Messaging <pepper_stable/c/struct_p_p_b___messaging__1__2.html>`__

  * `PPB_MouseCursor <pepper_stable/c/struct_p_p_b___mouse_cursor__1__0.html>`__

  * `PPB_MouseInputEvent <pepper_stable/c/struct_p_p_b___mouse_input_event__1__1.html>`__

  * `PPB_MouseLock <pepper_stable/c/struct_p_p_b___mouse_lock__1__0.html>`__

  * `PPB_NetAddress <pepper_stable/c/struct_p_p_b___net_address__1__0.html>`__

  * `PPB_NetworkList <pepper_stable/c/struct_p_p_b___network_list__1__0.html>`__

  * `PPB_NetworkMonitor <pepper_stable/c/struct_p_p_b___network_monitor__1__0.html>`__

  * `PPB_NetworkProxy <pepper_stable/c/struct_p_p_b___network_proxy__1__0.html>`__

  * `PPB_OpenGLES2 <pepper_stable/c/struct_p_p_b___open_g_l_e_s2.html>`__

  * `PPB_OpenGLES2 <pepper_stable/c/struct_p_p_b___open_g_l_e_s2__1__0.html>`__

  * `PPB_OpenGLES2ChromiumEnableFeature <pepper_stable/c/struct_p_p_b___open_g_l_e_s2_chromium_enable_feature.html>`__

  * `PPB_OpenGLES2ChromiumEnableFeature <pepper_stable/c/struct_p_p_b___open_g_l_e_s2_chromium_enable_feature__1__0.html>`__

  * `PPB_OpenGLES2ChromiumMapSub <pepper_stable/c/struct_p_p_b___open_g_l_e_s2_chromium_map_sub.html>`__

  * `PPB_OpenGLES2ChromiumMapSub <pepper_stable/c/struct_p_p_b___open_g_l_e_s2_chromium_map_sub__1__0.html>`__

  * `PPB_OpenGLES2FramebufferBlit <pepper_stable/c/struct_p_p_b___open_g_l_e_s2_framebuffer_blit.html>`__

  * `PPB_OpenGLES2FramebufferBlit <pepper_stable/c/struct_p_p_b___open_g_l_e_s2_framebuffer_blit__1__0.html>`__

  * `PPB_OpenGLES2FramebufferMultisample <pepper_stable/c/struct_p_p_b___open_g_l_e_s2_framebuffer_multisample.html>`__

  * `PPB_OpenGLES2FramebufferMultisample <pepper_stable/c/struct_p_p_b___open_g_l_e_s2_framebuffer_multisample__1__0.html>`__

  * `PPB_OpenGLES2InstancedArrays <pepper_stable/c/struct_p_p_b___open_g_l_e_s2_instanced_arrays.html>`__

  * `PPB_OpenGLES2InstancedArrays <pepper_stable/c/struct_p_p_b___open_g_l_e_s2_instanced_arrays__1__0.html>`__

  * `PPB_OpenGLES2Query <pepper_stable/c/struct_p_p_b___open_g_l_e_s2_query.html>`__

  * `PPB_OpenGLES2Query <pepper_stable/c/struct_p_p_b___open_g_l_e_s2_query__1__0.html>`__

  * `PPB_OpenGLES2VertexArrayObject <pepper_stable/c/struct_p_p_b___open_g_l_e_s2_vertex_array_object.html>`__

  * `PPB_OpenGLES2VertexArrayObject <pepper_stable/c/struct_p_p_b___open_g_l_e_s2_vertex_array_object__1__0.html>`__

  * `PPB_TCPSocket <pepper_stable/c/struct_p_p_b___t_c_p_socket__1__2.html>`__

  * `PPB_TextInputController <pepper_stable/c/struct_p_p_b___text_input_controller__1__0.html>`__

  * `PPB_TouchInputEvent <pepper_stable/c/struct_p_p_b___touch_input_event__1__0.html>`__

  * `PPB_UDPSocket <pepper_stable/c/struct_p_p_b___u_d_p_socket__1__2.html>`__

  * `PPB_URLLoader <pepper_stable/c/struct_p_p_b___u_r_l_loader__1__0.html>`__

  * `PPB_URLRequestInfo <pepper_stable/c/struct_p_p_b___u_r_l_request_info__1__0.html>`__

  * `PPB_URLResponseInfo <pepper_stable/c/struct_p_p_b___u_r_l_response_info__1__0.html>`__

  * `PPB_Var <pepper_stable/c/struct_p_p_b___var__1__2.html>`__

  * `PPB_VarArray <pepper_stable/c/struct_p_p_b___var_array__1__0.html>`__

  * `PPB_VarArrayBuffer <pepper_stable/c/struct_p_p_b___var_array_buffer__1__0.html>`__

  * `PPB_VarDictionary <pepper_stable/c/struct_p_p_b___var_dictionary__1__0.html>`__

  * `PPB_VideoDecoder <pepper_stable/c/struct_p_p_b___video_decoder__1__1.html>`__

  * `PPB_VideoEncoder <pepper_stable/c/struct_p_p_b___video_encoder__0__2.html>`__

  * `PPB_VideoFrame <pepper_stable/c/struct_p_p_b___video_frame__0__1.html>`__

  * `PPB_View <pepper_stable/c/struct_p_p_b___view__1__2.html>`__

  * `PPB_VpnProvider <pepper_stable/c/struct_p_p_b___vpn_provider__0__1.html>`__

  * `PPB_WebSocket <pepper_stable/c/struct_p_p_b___web_socket__1__0.html>`__

  * `PPB_WheelInputEvent <pepper_stable/c/struct_p_p_b___wheel_input_event__1__0.html>`__

  * `PPP_Graphics3D <pepper_stable/c/struct_p_p_p___graphics3_d__1__0.html>`__

  * `PPP_InputEvent <pepper_stable/c/struct_p_p_p___input_event__0__1.html>`__

  * `PPP_Instance <pepper_stable/c/struct_p_p_p___instance__1__1.html>`__

  * `PPP_MessageHandler <pepper_stable/c/struct_p_p_p___message_handler__0__2.html>`__

  * `PPP_Messaging <pepper_stable/c/struct_p_p_p___messaging__1__0.html>`__

  * `PPP_MouseLock <pepper_stable/c/struct_p_p_p___mouse_lock__1__0.html>`__


`Structures <pepper_stable/c/group___structs.html>`__
==========================================================
  * `PP_ArrayOutput <pepper_stable/c/struct_p_p___array_output.html>`__

  * `PP_AudioBitstreamBuffer <pepper_stable/c/struct_p_p___audio_bitstream_buffer.html>`__

  * `PP_AudioProfileDescription <pepper_stable/c/struct_p_p___audio_profile_description.html>`__

  * `PP_BitstreamBuffer <pepper_stable/c/struct_p_p___bitstream_buffer.html>`__

  * `PP_CompletionCallback <pepper_stable/c/struct_p_p___completion_callback.html>`__

  * `PP_DirectoryEntry <pepper_stable/c/struct_p_p___directory_entry.html>`__

  * `PP_FileInfo <pepper_stable/c/struct_p_p___file_info.html>`__

  * `PP_FloatPoint <pepper_stable/c/struct_p_p___float_point.html>`__

  * `PP_FloatRect <pepper_stable/c/struct_p_p___float_rect.html>`__

  * `PP_FloatSize <pepper_stable/c/struct_p_p___float_size.html>`__

  * `PP_GamepadSampleData <pepper_stable/c/struct_p_p___gamepad_sample_data.html>`__

  * `PP_GamepadsSampleData <pepper_stable/c/struct_p_p___gamepads_sample_data.html>`__

  * `PP_HostResolver_Hint <pepper_stable/c/struct_p_p___host_resolver___hint.html>`__

  * `PP_ImageDataDesc <pepper_stable/c/struct_p_p___image_data_desc.html>`__

  * `PP_InputEvent_Character <pepper_stable/c/struct_p_p___input_event___character.html>`__

  * `PP_InputEvent_Key <pepper_stable/c/struct_p_p___input_event___key.html>`__

  * `PP_InputEvent_Mouse <pepper_stable/c/struct_p_p___input_event___mouse.html>`__

  * `PP_InputEvent_Wheel <pepper_stable/c/struct_p_p___input_event___wheel.html>`__

  * `PP_NetAddress_IPv4 <pepper_stable/c/struct_p_p___net_address___i_pv4.html>`__

  * `PP_NetAddress_IPv6 <pepper_stable/c/struct_p_p___net_address___i_pv6.html>`__

  * `PP_Point <pepper_stable/c/struct_p_p___point.html>`__

  * `PP_Rect <pepper_stable/c/struct_p_p___rect.html>`__

  * `PP_Size <pepper_stable/c/struct_p_p___size.html>`__

  * `PP_TouchPoint <pepper_stable/c/struct_p_p___touch_point.html>`__

  * `PP_Var <pepper_stable/c/struct_p_p___var.html>`__

  * `PP_VideoPicture <pepper_stable/c/struct_p_p___video_picture.html>`__

  * `PP_VideoPicture <pepper_stable/c/struct_p_p___video_picture__0__1.html>`__

  * `PP_VideoProfileDescription <pepper_stable/c/struct_p_p___video_profile_description.html>`__

  * `PP_VideoProfileDescription <pepper_stable/c/struct_p_p___video_profile_description__0__1.html>`__

  * `PP_VarValue <pepper_stable/c/union_p_p___var_value.html>`__


`Functions <pepper_stable/c/group___functions.html>`__
===========================================================

`Enums <pepper_stable/c/group___enums.html>`__
===================================================

`Typedefs <pepper_stable/c/group___typedefs.html>`__
=========================================================

`Macros <pepper_stable/c/globals_defs.html>`__
===================================================

Files
=====
  * `pp_array_output.h <pepper_stable/c/pp__array__output_8h.html>`__

  * `pp_bool.h <pepper_stable/c/pp__bool_8h.html>`__

  * `pp_codecs.h <pepper_stable/c/pp__codecs_8h.html>`__

  * `pp_completion_callback.h <pepper_stable/c/pp__completion__callback_8h.html>`__

  * `pp_directory_entry.h <pepper_stable/c/pp__directory__entry_8h.html>`__

  * `pp_errors.h <pepper_stable/c/pp__errors_8h.html>`__

  * `pp_file_info.h <pepper_stable/c/pp__file__info_8h.html>`__

  * `pp_graphics_3d.h <pepper_stable/c/pp__graphics__3d_8h.html>`__

  * `pp_input_event.h <pepper_stable/c/pp__input__event_8h.html>`__

  * `pp_instance.h <pepper_stable/c/pp__instance_8h.html>`__

  * `pp_module.h <pepper_stable/c/pp__module_8h.html>`__

  * `pp_point.h <pepper_stable/c/pp__point_8h.html>`__

  * `pp_rect.h <pepper_stable/c/pp__rect_8h.html>`__

  * `pp_resource.h <pepper_stable/c/pp__resource_8h.html>`__

  * `pp_size.h <pepper_stable/c/pp__size_8h.html>`__

  * `pp_stdint.h <pepper_stable/c/pp__stdint_8h.html>`__

  * `pp_time.h <pepper_stable/c/pp__time_8h.html>`__

  * `pp_touch_point.h <pepper_stable/c/pp__touch__point_8h.html>`__

  * `pp_var.h <pepper_stable/c/pp__var_8h.html>`__

  * `ppb.h <pepper_stable/c/ppb_8h.html>`__

  * `ppb_audio.h <pepper_stable/c/ppb__audio_8h.html>`__

  * `ppb_audio_buffer.h <pepper_stable/c/ppb__audio__buffer_8h.html>`__

  * `ppb_audio_config.h <pepper_stable/c/ppb__audio__config_8h.html>`__

  * `ppb_audio_encoder.h <pepper_stable/c/ppb__audio__encoder_8h.html>`__

  * `ppb_compositor.h <pepper_stable/c/ppb__compositor_8h.html>`__

  * `ppb_compositor_layer.h <pepper_stable/c/ppb__compositor__layer_8h.html>`__

  * `ppb_console.h <pepper_stable/c/ppb__console_8h.html>`__

  * `ppb_core.h <pepper_stable/c/ppb__core_8h.html>`__

  * `ppb_file_io.h <pepper_stable/c/ppb__file__io_8h.html>`__

  * `ppb_file_ref.h <pepper_stable/c/ppb__file__ref_8h.html>`__

  * `ppb_file_system.h <pepper_stable/c/ppb__file__system_8h.html>`__

  * `ppb_fullscreen.h <pepper_stable/c/ppb__fullscreen_8h.html>`__

  * `ppb_gamepad.h <pepper_stable/c/ppb__gamepad_8h.html>`__

  * `ppb_graphics_2d.h <pepper_stable/c/ppb__graphics__2d_8h.html>`__

  * `ppb_graphics_3d.h <pepper_stable/c/ppb__graphics__3d_8h.html>`__

  * `ppb_host_resolver.h <pepper_stable/c/ppb__host__resolver_8h.html>`__

  * `ppb_image_data.h <pepper_stable/c/ppb__image__data_8h.html>`__

  * `ppb_input_event.h <pepper_stable/c/ppb__input__event_8h.html>`__

  * `ppb_instance.h <pepper_stable/c/ppb__instance_8h.html>`__

  * `ppb_media_stream_audio_track.h <pepper_stable/c/ppb__media__stream__audio__track_8h.html>`__

  * `ppb_media_stream_video_track.h <pepper_stable/c/ppb__media__stream__video__track_8h.html>`__

  * `ppb_message_loop.h <pepper_stable/c/ppb__message__loop_8h.html>`__

  * `ppb_messaging.h <pepper_stable/c/ppb__messaging_8h.html>`__

  * `ppb_mouse_cursor.h <pepper_stable/c/ppb__mouse__cursor_8h.html>`__

  * `ppb_mouse_lock.h <pepper_stable/c/ppb__mouse__lock_8h.html>`__

  * `ppb_net_address.h <pepper_stable/c/ppb__net__address_8h.html>`__

  * `ppb_network_list.h <pepper_stable/c/ppb__network__list_8h.html>`__

  * `ppb_network_monitor.h <pepper_stable/c/ppb__network__monitor_8h.html>`__

  * `ppb_network_proxy.h <pepper_stable/c/ppb__network__proxy_8h.html>`__

  * `ppb_opengles2.h <pepper_stable/c/ppb__opengles2_8h.html>`__

  * `ppb_tcp_socket.h <pepper_stable/c/ppb__tcp__socket_8h.html>`__

  * `ppb_text_input_controller.h <pepper_stable/c/ppb__text__input__controller_8h.html>`__

  * `ppb_udp_socket.h <pepper_stable/c/ppb__udp__socket_8h.html>`__

  * `ppb_url_loader.h <pepper_stable/c/ppb__url__loader_8h.html>`__

  * `ppb_url_request_info.h <pepper_stable/c/ppb__url__request__info_8h.html>`__

  * `ppb_url_response_info.h <pepper_stable/c/ppb__url__response__info_8h.html>`__

  * `ppb_var.h <pepper_stable/c/ppb__var_8h.html>`__

  * `ppb_var_array.h <pepper_stable/c/ppb__var__array_8h.html>`__

  * `ppb_var_array_buffer.h <pepper_stable/c/ppb__var__array__buffer_8h.html>`__

  * `ppb_var_dictionary.h <pepper_stable/c/ppb__var__dictionary_8h.html>`__

  * `ppb_video_decoder.h <pepper_stable/c/ppb__video__decoder_8h.html>`__

  * `ppb_video_encoder.h <pepper_stable/c/ppb__video__encoder_8h.html>`__

  * `ppb_video_frame.h <pepper_stable/c/ppb__video__frame_8h.html>`__

  * `ppb_view.h <pepper_stable/c/ppb__view_8h.html>`__

  * `ppb_vpn_provider.h <pepper_stable/c/ppb__vpn__provider_8h.html>`__

  * `ppb_websocket.h <pepper_stable/c/ppb__websocket_8h.html>`__

  * `ppp.h <pepper_stable/c/ppp_8h.html>`__

  * `ppp_graphics_3d.h <pepper_stable/c/ppp__graphics__3d_8h.html>`__

  * `ppp_input_event.h <pepper_stable/c/ppp__input__event_8h.html>`__

  * `ppp_instance.h <pepper_stable/c/ppp__instance_8h.html>`__

  * `ppp_message_handler.h <pepper_stable/c/ppp__message__handler_8h.html>`__

  * `ppp_messaging.h <pepper_stable/c/ppp__messaging_8h.html>`__

  * `ppp_mouse_lock.h <pepper_stable/c/ppp__mouse__lock_8h.html>`__

