diff options
author | ewaldhew <ewaldhew@gmail.com> | 2017-09-13 21:19:39 +0200 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2017-09-13 21:19:39 +0200 |
commit | 9527f705cf4fa37edc93195754bcc88c61eed407 (patch) | |
tree | db617bafae0ec0021ff472243f67a0893c8a74b6 | |
parent | 5a2eb1b201d4945cb12d918be59b2a131e225ecb (diff) |
[design] Add page for interfaces and services.
-rw-r--r-- | freetype2/docs/design/design-1.html | 3 | ||||
-rw-r--r-- | freetype2/docs/design/design-2.html | 3 | ||||
-rw-r--r-- | freetype2/docs/design/design-3.html | 3 | ||||
-rw-r--r-- | freetype2/docs/design/design-4.html | 3 | ||||
-rw-r--r-- | freetype2/docs/design/design-5.html | 3 | ||||
-rw-r--r-- | freetype2/docs/design/design-6.html | 193 | ||||
-rw-r--r-- | freetype2/docs/design/index.html | 8 |
7 files changed, 215 insertions, 1 deletions
diff --git a/freetype2/docs/design/design-1.html b/freetype2/docs/design/design-1.html index 2b33b72..17980c9 100644 --- a/freetype2/docs/design/design-1.html +++ b/freetype2/docs/design/design-1.html @@ -219,6 +219,9 @@ <li class="tertiary"> <a href="design-5.html">Module Classes</a> </li> + <li class="tertiary"> + <a href="design-6.html">Interfaces and Services</a> + </li> </ul> </div> diff --git a/freetype2/docs/design/design-2.html b/freetype2/docs/design/design-2.html index e1c70b8..db14718 100644 --- a/freetype2/docs/design/design-2.html +++ b/freetype2/docs/design/design-2.html @@ -274,6 +274,9 @@ <li class="tertiary"> <a href="design-5.html">Module Classes</a> </li> + <li class="tertiary"> + <a href="design-6.html">Interfaces and Services</a> + </li> </ul> </div> diff --git a/freetype2/docs/design/design-3.html b/freetype2/docs/design/design-3.html index 72bb864..b40ac6b 100644 --- a/freetype2/docs/design/design-3.html +++ b/freetype2/docs/design/design-3.html @@ -426,6 +426,9 @@ FT_Error FT_New_Face( FT_Library library, <li class="tertiary"> <a href="design-5.html">Module Classes</a> </li> + <li class="tertiary"> + <a href="design-6.html">Interfaces and Services</a> + </li> </ul> </div> diff --git a/freetype2/docs/design/design-4.html b/freetype2/docs/design/design-4.html index dd7fa3f..f3b027c 100644 --- a/freetype2/docs/design/design-4.html +++ b/freetype2/docs/design/design-4.html @@ -388,6 +388,9 @@ FT_Add_Module( FT_Library library, <li class="tertiary"> <a href="design-5.html">Module Classes</a> </li> + <li class="tertiary"> + <a href="design-6.html">Interfaces and Services</a> + </li> </ul> </div> diff --git a/freetype2/docs/design/design-5.html b/freetype2/docs/design/design-5.html index b78c257..4d80064 100644 --- a/freetype2/docs/design/design-5.html +++ b/freetype2/docs/design/design-5.html @@ -530,6 +530,9 @@ typedef struct FT_Module_Class_ <li class="tertiary"> <a href="design-5.html" class="current">Module Classes</a> </li> + <li class="tertiary"> + <a href="design-6.html">Interfaces and Services</a> + </li> </ul> </div> diff --git a/freetype2/docs/design/design-6.html b/freetype2/docs/design/design-6.html new file mode 100644 index 0000000..15b40b5 --- /dev/null +++ b/freetype2/docs/design/design-6.html @@ -0,0 +1,193 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> + +<html lang="en"> + +<head> + <meta http-equiv="Content-Type" + content="text/html; charset=utf-8"> + <meta http-equiv="Content-Style-Type" + content="text/css"> + <meta http-equiv="Content-Script-Type" + content="text/javascript"> + <meta name="description" + content="FreeType Documentation"> + <meta name="Author" + content="David Turner"> + + <link rel="icon" + href="../../../image/favicon_-90.ico"> + <link rel="shortcut icon" + href="../../../image/favicon_-90.ico"> + <link rel="stylesheet" + type="text/css" + href="../../../css/freetype2_-90.css"> + + <script type="text/javascript" + src="../../../js/jquery-1.11.0.min.js"> + </script> + <script type="text/javascript" + src="../../../js/jquery.ba-resize.min.js"> + </script> + <script type="text/javascript" + src="../../../js/freetype2.js"> + </script> + + <title>FreeType Design / V</title> +</head> + + +<body> + +<div id="top" + class="bar"> + <h1><a href="../../../index.html">FreeType</a> + Design / V</h1> +</div> + + +<div id="wrapper"> + +<div class="colmask leftmenu"> + <div class="colright"> + <div class="col1wrap"> + <div class="col1"> + + + <!-- ************************************************** --> + + <div id="module-classes"> + <h2>V. Interfaces and Services</h2> + + <p>We shall now go into detail about interfaces and services + in FreeType.</p> + + <p><em>Interfaces</em> in FreeType are analogous to those + found in object-oriented programming. They can be thought + of as internal public APIs, and are essentially tables of + function pointers.</p> + + <p>Interfaces only describe the form and functionality, but + the actual function body may be implemented elsewhere. + The module that is implementing the interface will then + pass the required function pointers to the table. This + gives modularity and easy extendability.</p> + + <p>There are two main kinds of interfaces: <em>module</em> + interfaces, and <em>services</em>.</p> + + <p>Module interfaces are defined for each module. For + example, every font driver provides its own set of + procedures for use in the base layer, which are registered + in an <tt>FT_Driver</tt>. This way, very different font + drivers can be used in the same way in the base layer.</p> + + <p>Services are cross-module interfaces. These provide + functionality needed in several font drivers. </p> + + <p>Services are created when code from one module needs to + be used in another. Rather than include files from + another module, a service is created instead. Now, the + other module just needs to include the header defining the + interface.</p> + + <p>Helper modules are an extreme example of this; all their + public functionality is made for use in other font drivers + and hence are in a single service.</p> + </div> + + <!-- ************************************************** --> + + <div class="updated"> + <p>Last update: 13-Sep-2017</p> + </div> + </div> + </div> + + + <!-- ************************************************** --> + + <div class="col2"> + </div> + </div> +</div> + + +<!-- ************************************************** --> + +<div id="TOC"> + <ul> + <li class="funding"> + <p><a href="https://pledgie.com/campaigns/24434"> + <img alt="Click here to lend your support to the FreeType project and make a donation at pledgie.com!" + src="https://pledgie.com/campaigns/24434.png?skin_name=chrome" + border="0" + align="middle"> + </a></p> + + <p><a href="https://flattr.com/submit/auto?fid=mq2xxp&url=https%3A%2F%2Fwww.freetype.org" + target="_blank"> + <img class="with-border" + src="https://button.flattr.com/flattr-badge-large.png" + alt="Flattr this" + title="Flattr this" + border="0" + align="middle"> + </a></p> + </li> + <li class="primary"> + <a href="../../../index.html">Home</a> + </li> + <li class="primary"> + <a href="../../../index.html#news">News</a> + </li> + <li class="primary"> + <a href="../index.html">Overview</a> + </li> + <li class="primary"> + <a href="../documentation.html">Documentation</a> + </li> + <li class="primary"> + <a href="../../../developer.html">Development</a> + </li> + <li class="primary"> + <a href="../../../contact.html" + class="emphasis">Contact</a> + </li> + + <li> + <!-- separate primary from secondary entries --> + </li> + + <li class="secondary"> + <a href="index.html">FreeType Design</a> + </li> + <li class="tertiary"> + <a href="design-1.html">Introduction</a> + </li> + <li class="tertiary"> + <a href="design-2.html">Components and APIs</a> + </li> + <li class="tertiary"> + <a href="design-3.html">Public Objects and Classes</a> + </li> + <li class="tertiary"> + <a href="design-4.html">Internal Objects and Classes</a> + </li> + <li class="tertiary"> + <a href="design-5.html">Module Classes</a> + </li> + <li class="tertiary"> + <a href="design-6.html" class="current">Interfaces and + Services</a> + </li> + </ul> +</div> + +</div> <!-- id="wrapper" --> + +<div id="TOC-bottom"> +</div> + +</body> +</html> diff --git a/freetype2/docs/design/index.html b/freetype2/docs/design/index.html index a9e1ebc..4554d5a 100644 --- a/freetype2/docs/design/index.html +++ b/freetype2/docs/design/index.html @@ -135,12 +135,15 @@ Type</a> </li> </ul> + + <h3><a href="design-6.html">V. Interfaces and + Services</a></h3> </div> <!-- ************************************************** --> <div class="updated"> - <p>Last update: 14-May-2017</p> + <p>Last update: 13-Sep-2017</p> </div> </div> </div> @@ -218,6 +221,9 @@ <li class="tertiary"> <a href="design-5.html">Module Classes</a> </li> + <li class="tertiary"> + <a href="design-6.html">Interfaces and Services</a> + </li> </ul> </div> |