summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorewaldhew <ewaldhew@gmail.com>2017-09-13 21:19:39 +0200
committerWerner Lemberg <wl@gnu.org>2017-09-13 21:19:39 +0200
commit9527f705cf4fa37edc93195754bcc88c61eed407 (patch)
treedb617bafae0ec0021ff472243f67a0893c8a74b6
parent5a2eb1b201d4945cb12d918be59b2a131e225ecb (diff)
[design] Add page for interfaces and services.
-rw-r--r--freetype2/docs/design/design-1.html3
-rw-r--r--freetype2/docs/design/design-2.html3
-rw-r--r--freetype2/docs/design/design-3.html3
-rw-r--r--freetype2/docs/design/design-4.html3
-rw-r--r--freetype2/docs/design/design-5.html3
-rw-r--r--freetype2/docs/design/design-6.html193
-rw-r--r--freetype2/docs/design/index.html8
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&nbsp;/&nbsp;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&amp;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>
+ &nbsp; <!-- 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>