summaryrefslogtreecommitdiffstats
path: root/ppapi/documentation/index.dox
blob: 21b93513e2c38ed08b8fa11d9721a1a819f52e7a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/** \mainpage Pepper API (PPAPI) Reference Documentation

 <p>
 This reference documentation describes the Pepper plugin API (PPAPI),
 a cross-platform, open-source API for browser plugins.
 You can use the Pepper API
 in <a href="http://code.google.com/p/nativeclient-sdk">Native Client</a>
 modules to communicate with the Google Chrome browser.
 This page has the following contents:
 </p>

 <ul>
 <li> @ref reading </li>
 <li> @ref modules </li>
 <li> @ref about </li>
 <li> @ref todo </li>
 </ul>


 \section reading Before you start

 This documentation assumes that you have read and understood
 the following pages in the PPAPI project:

 - <a href="http://code.google.com/p/ppapi/wiki/GettingStarted">Getting started</a>
 - <a href="http://code.google.com/p/ppapi/wiki/Concepts">Important concepts</a>

 For additional documentation and information
 about Pepper, see the PPAPI project
 <a href="http://code.google.com/p/ppapi/">homepage</a> and
 <a href="http://code.google.com/p/ppapi/w/list">wiki</a>.


 \section modules API categories

The Pepper API consists of C API,
plus C++ classes
(in the pp namespace)
that we recommend you use if you're writing a C++ plugin.
You'll see three prefixes in the C API:

 <dl>
   <dt> PP_ </dt>
   <dd> Data types,
     such as ::PP_Instance and ::PP_Event.
     </dd>
   <dt> PPB_ </dt>
   <dd> API that you can use to call into the browser,
     such as ::PPB_Instance and ::PPB_GetInterface.
     </dd>
   <dt> PPP_ </dt>
   <dd> API that you implement
     so that the browser can call into your module.
     Examples include ::PPP_Instance and ::PPP_InitializeModule.
     </dd>
 </dl>

 The C++ API provides a layer over the C API.
 For example, when you call the constructor
 for the pp::Instance class,
 you specify a ::PP_Instance variable.
 For your convenience, pp::Instance defines methods such as
 HandleEvent(), which implements ::PPP_Instance.HandleEvent, and
 GetWindowObject(), which implements ::PPB_Instance.GetWindowObject.
 

 \section about About this doc

 <p>
 The tabs at the top of each page
 take you to the following sections.
 </p>

 <ul>
 <li> <b>Main Page</b>: This page </li>
 <li> <a href="modules.html"><b>Modules</b></a>:
      Lets you find API by functional area
      &mdash; for example,
      <a href="group___c_p_p.html">C++ API</a> or
      <a href="group___p_p.html">Data Types (PP)</a>.
      Don't confuse this Doxygen term
      with the Pepper concept of modules,
      which are represented by pp::Module objects.
      </li>
 <li> <a href="annotated.html"><b>Data Structures</b></a>:
      List of classes and data structures in PPAPI.
      </li>
 <li> <a href="files.html"><b>Files</b></a>:
      The header files used to generate this documentation,
      with file descriptions and links to generated doc.
      Don't miss the <a href="globals.html">File member index</a>.
      </li>
 </ul>

 \section todo TO DO {PENDING: remove/comment this out before publishing}

 - add include filenames to doc {NOTE: they're now at the end of each page. ok?}
 - check whether private fields should be documented
 - make sure naming is consistent and as understandable as possible
   (modules? plugins? ...)
 <!-- - make sure access levels (public/protected/private are in the doc)
 {PENDING: they appear to be. e.g. see file:///home/kathyw/SVN/ppapi/doc-out-linux/html/classpp_1_1_resource.html} -->
 <!-- - Modules -> API Groups? I couldn't figure out how to do this. -->

 */