<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" />
<title>LISPBUILDER-SDL-GFX - </title>
<style type="text/css">
body {
margin: 10px 20px 20px 220px;
padding: 0px;
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: small;
text-align: justify;
max-width: 50em;
background-color: white;
}
a, a:visited {
text-decoration: none;
color: maroon;
}
/* index */
div.index {
position: fixed;
top: 0px;
left: 0px;
width: 180px;
height: 100%;
margin: 0px;
padding: 5px;
font-size: 12px;
background-color: #DCDCDC;
border-right: thin black solid;
}
div.index ol {
color: navy;
margin: 0px;
padding-left: 0px;
}
div.index ol li {
list-style: none;
}
div.index ol li:before {
display: marker;
content: counter(heading1) ". ";
counter-increment: heading1;
}
div.index ol ol {
padding-left: 10px;
font-size: 10px;
list-style: none;
counter-reset: heading2;
}
div.index ol ol li:before {
display: marker;
content: counter(heading1)"." counter(heading2)" ";
counter-increment: heading2;
}
/* heading styles */
body > h1 {
margin-top: 0px;
}
h1 {
margin-top: 40px;
margin-bottom: 0px;
color: #4682B4;
}
h1:before {
display: marker;
content: counter(chapter) ". ";
counter-increment: chapter;
counter-reset: section1;
}
h1 + p {
margin-top: 5px;
}
h2 {
margin-top: 20px;
color: #000000;
margin-bottom: 0px;
}
h2:before {
display: marker;
content: counter(chapter) "." counter(section1) " ";
counter-increment: section1;
}
h2 + p {
margin-top: 0px;
}
h3 {
margin-top: 20px;
color: #000000;
margin-bottom: 0px;
}
h3:before {
display: marker;
content: counter(chapter) "." counter(section1) "." counter(section2) " ";
counter-increment: section2;
}
h3 + p {
margin-top: 0px;
}
h4 {
margin-top: 20px;
color: #000000;
margin-bottom: 0px;
}
h4:before {
display: marker;
content: counter(chapter) "." counter(section1) "." counter(section2) "." counter(section3) " ";
counter-increment: section3;
}
h4 + p {
margin-top: 0px;
}
/* generated content for images and tables */
img:after {
content: "[" counter(image) "] " attr(title);
counter-increment: image;
display: block;
font-size: 10px;
font-weight: bold;
margin-top: 5px;
margin-bottom: 20px;
color: black;
}
table:after {
content: "Table " counter(table) ": " attr(summary);
counter-increment: table;
display: table-caption;
caption-side: bottom;
font-size: 10px;
font-weight: bold;
margin-top: 5px;
margin-bottom: 20px;
white-space: nowrap;
color: black;
}
/* code for examples, code and pathnames*/
div.example table {
color: black;
}
div.example, div.code, div.path, div.sequence {
margin: 10px 0px;
border: 1px black solid;
padding: 10px;
background-color: #F4F4F4;
counter-reset: image;
color: maroon;
}
div.example:before {
content: "Example " counter(example);
counter-increment: example;
display: block;
}
div.example + p {
margin-bottom: 0px;
}
div.code:before {
content: "Code";
}
div.path:before {
content: "Path";
}
div.sequence:before {
content: "Sequence";
}
p.reference:before {
display: marker;
content: "[" counter(reference) "]";
counter-increment: reference;
font-weight: bold;
margin-right: 5px;
}
div.code:before, div.example:before, div.path:before, div.sequence:before {
font-weight: bold;
font-size: 15px;
margin-bottom: 20px;
color: black;
}
pre {
color: Green;
margin: 0px;
padding: 0px;
}
/* equation counter */
e:after {
content: "[" counter(equation) "]";
counter-increment: equation;
display: block;
float: right;
margin-right: 10px;
}
/* to prevent the CC image from being numbered */
img[alt="Creative Commons License"] {
display: inline;
}
img[alt="Creative Commons License"]:after {
display: none;
}
div#cc {
background-color: #DCDCDC;
border: thin black solid;
padding: 10px;
font-size: 10px;
}
/* Table Design */
/* http://www.duoh.com/csstutorials/csstables/ */
#mytable {
width: 700px;
padding: 0;
margin: 0;
}
caption {
padding: 0 0 5px 0;
width: 700px;
font: italic 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
text-align: right;
}
th {
font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
color: #4f6b72;
border-right: 1px solid #C1DAD7;
border-bottom: 1px solid #C1DAD7;
border-top: 1px solid #C1DAD7;
letter-spacing: 2px;
text-transform: uppercase;
text-align: left;
padding: 6px 6px 6px 12px;
background: #CAE8EA url(images/bg_header.jpg) no-repeat;
}
th.nobg {
border-top: 0;
border-left: 0;
border-right: 1px solid #C1DAD7;
background: none;
}
td {
border-right: 1px solid #C1DAD7;
border-bottom: 1px solid #C1DAD7;
background: #fff;
padding: 6px 6px 6px 12px;
color: #4f6b72;
}
td.alt {
background: #F5FAFA;
color: #797268;
}
th.spec {
border-left: 1px solid #C1DAD7;
border-top: 0;
background: #fff url(images/bullet1.gif) no-repeat;
font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
}
th.specalt {
border-left: 1px solid #C1DAD7;
border-top: 0;
background: #f5fafa url(images/bullet2.gif) no-repeat;
font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
color: #797268;
}
</style>
</head>
<!--
(CC) 2003 Luke Crook. Some Rights Reserved.
http://creativecommons.org/licenses/by/1.0
This page is licensed under a Creative Commons License.
Maintained by the Common Lisp Application Builder project at www.lispbuilder.org
The entire styleguide was copied wholesale from http://www.markschenk.com/cssexp/publication/article.xml
(CC) 2003 Mark Schenk. Some Rights Reserved.
http://creativecommons.org/licenses/by/1.0
This page is licensed under a Creative Commons License.
-->
<BODY BGCOLOR=#FFFFFF >
<h1><a name="top" class=none> LISPBUILDER-SDL-GFX - </a></h1>
<blockquote>
<br> </br><h2><a name=abstract class=abstract>Abstract</a></h2>
<p>
LISPBUILDER-SDL-GFX provides a Lisp wrapper for the
<a href="http://www.ferzkopp.net/joomla/content/view/19/14/">SDL_gfx</a> library,
and provides support for renering several graphics primitives directly to SDL surfaces.
LISPBUILDER-SDL-GFX has a dependency on the LISPBUILDER-SDL package.
LISPBUILDER-SDL-GFX is distributed under the
<a href="http://en.wikipedia.org/wiki/MIT_License">MIT-style license</a>.
</p>
<p>
<font color=red>Current Version:</font> The current version of LISPBUILDER-SDL-GFX is version <a href="#download">0.2</a>.
</p>
<!-- <p> -->
<!-- <font color=red>Download shortcut:</font> <a href="http://www.balooga.com/lispbuilder/lispbuilder-sdl-gfx.zip">http://www.balooga.com/lispbuilder/lispbuilder-sdl-gfx.zip</a>. -->
<!-- </p> -->
</blockquote>
<br> </br><h2><a class=none name="packageover">Package Overview</a></h2>
<p>
Functions and symbols exported from the LISPBUILDER-SDL-GFX package are
accessible from the <code>LISPBUILDER-SDL-GFX:</code> prefix or the
shorter form <code>SDL-GFX:</code> nickname.
</p>
<br> </br><h2><a class=none name="examplesimple">Simple Example</a></h2>
<div class="example">
<p>
This example was created with the following code:
</p>
<p>
<img src="sdl-gfx-examples_width-height.png" width="206" height="232" title="Width and Height" alt="Width and Height"/>
</p>
<pre>
(defun width-height ()
(let ((width 200) (height 200))
(sdl:with-init ()
(sdl:window width height :title-caption "Width and Height, from Processing.org")
(sdl:clear-display (sdl:color :r 127 :g 127 :b 127))
(loop for i from 0 to height by 20
do (progn (sdl-gfx:draw-box (sdl:rectangle :x 0 :y i :w 200 :h 10)
:color sdl:*black*)
(sdl-gfx:draw-box (sdl:rectangle :x i :y 0 :w 10 :h 200)
:color sdl:*white*)))
(sdl:with-events ()
(:quit-event () t)
(:video-expose-event () (sdl:update-display))))))
</pre>
</div>
<div class="index">
<ol>
<li><a href="#top">LISPBUILDER-SDL-GFX</a></li>
<ol>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#packageover">Package Overview</a></li>
<li><a href="#examplesimple">Simple Example</a></li>
<li><a href="#compatibility">Compatibility</a></li>
<li><a href="#download">Download</a></li>
<li><a href="#installation">Installation</a></li>
<li><a href="#usage">Usage</a></li>
<li><a href="#examples">Examples</a></li>
<li><a href="#dependency">Dependencies</a></li>
<li><a href="#license">License</a></li>
<li><a href="#dictionar">LISPBUILDER-SDL-GFX dictionary</a></li>
<ol>
<li><a href="#dictionary">INDEX</a></li>
</ol>
<li><a href="#ack">Acknowledgements</a></li>
</ol>
</div>
<br> </br><h2><a class=none name="dictionary">The LISPBUILDER-SDL-GFX dictionary Index</h2>
<ol>
<li><a href="#*default-font*"><code>*default-font*</code></a>
<li><a href="#*font-10x20*"><code>*font-10x20*</code></a>
<li><a href="#*font-5x7*"><code>*font-5x7*</code></a>
<li><a href="#*font-5x8*"><code>*font-5x8*</code></a>
<li><a href="#*font-6x10*"><code>*font-6x10*</code></a>
<li><a href="#*font-6x12*"><code>*font-6x12*</code></a>
<li><a href="#*font-6x13*"><code>*font-6x13*</code></a>
<li><a href="#*font-6x13b*"><code>*font-6x13b*</code></a>
<li><a href="#*font-6x13o*"><code>*font-6x13o*</code></a>
<li><a href="#*font-6x9*"><code>*font-6x9*</code></a>
<li><a href="#*font-7x13*"><code>*font-7x13*</code></a>
<li><a href="#*font-7x13b*"><code>*font-7x13b*</code></a>
<li><a href="#*font-7x13o*"><code>*font-7x13o*</code></a>
<li><a href="#*font-7x14*"><code>*font-7x14*</code></a>
<li><a href="#*font-7x14b*"><code>*font-7x14b*</code></a>
<li><a href="#*font-8x13*"><code>*font-8x13*</code></a>
<li><a href="#*font-8x13b*"><code>*font-8x13b*</code></a>
<li><a href="#*font-8x13o*"><code>*font-8x13o*</code></a>
<li><a href="#*font-8x8*"><code>*font-8x8*</code></a>
<li><a href="#*font-9x15*"><code>*font-9x15*</code></a>
<li><a href="#*font-9x15b*"><code>*font-9x15b*</code></a>
<li><a href="#*font-9x18*"><code>*font-9x18*</code></a>
<li><a href="#*font-9x18b*"><code>*font-9x18b*</code></a>
<li><a href="#draw-aa-circle"><code>draw-aa-circle</code></a>
<li><a href="#draw-aa-circle-*"><code>draw-aa-circle-*</code></a>
<li><a href="#draw-aa-ellipse"><code>draw-aa-ellipse</code></a>
<li><a href="#draw-aa-ellipse-*"><code>draw-aa-ellipse-*</code></a>
<li><a href="#draw-aa-line"><code>draw-aa-line</code></a>
<li><a href="#draw-aa-line-*"><code>draw-aa-line-*</code></a>
<li><a href="#draw-aa-polygon"><code>draw-aa-polygon</code></a>
<li><a href="#draw-aa-trigon"><code>draw-aa-trigon</code></a>
<li><a href="#draw-bezier"><code>draw-bezier</code></a>
<li><a href="#draw-box"><code>draw-box</code></a>
<li><a href="#draw-box-*"><code>draw-box-*</code></a>
<li><a href="#draw-character-shaded"><code>draw-character-shaded</code></a>
<li><a href="#draw-character-shaded-*"><code>draw-character-shaded-*</code></a>
<li><a href="#draw-character-solid"><code>draw-character-solid</code></a>
<li><a href="#draw-character-solid-*"><code>draw-character-solid-*</code></a>
<li><a href="#draw-circle"><code>draw-circle</code></a>
<li><a href="#draw-circle-*"><code>draw-circle-*</code></a>
<li><a href="#draw-curve"><code>draw-curve</code></a>
<li><a href="#draw-ellipse"><code>draw-ellipse</code></a>
<li><a href="#draw-ellipse-*"><code>draw-ellipse-*</code></a>
<li><a href="#draw-filled-circle"><code>draw-filled-circle</code></a>
<li><a href="#draw-filled-circle-*"><code>draw-filled-circle-*</code></a>
<li><a href="#draw-filled-ellipse"><code>draw-filled-ellipse</code></a>
<li><a href="#draw-filled-ellipse-*"><code>draw-filled-ellipse-*</code></a>
<li><a href="#draw-filled-pie"><code>draw-filled-pie</code></a>
<li><a href="#draw-filled-pie-*"><code>draw-filled-pie-*</code></a>
<li><a href="#draw-filled-polygon"><code>draw-filled-polygon</code></a>
<li><a href="#draw-filled-trigon"><code>draw-filled-trigon</code></a>
<li><a href="#draw-font"><code>draw-font</code></a>
<li><a href="#draw-font"><code>draw-font</code></a>
<li><a href="#draw-font-at"><code>draw-font-at</code></a>
<li><a href="#draw-font-at-*"><code>draw-font-at-*</code></a>
<li><a href="#draw-hline"><code>draw-hline</code></a>
<li><a href="#draw-line"><code>draw-line</code></a>
<li><a href="#draw-line-*"><code>draw-line-*</code></a>
<li><a href="#draw-pie"><code>draw-pie</code></a>
<li><a href="#draw-pie-*"><code>draw-pie-*</code></a>
<li><a href="#draw-pixel"><code>draw-pixel</code></a>
<li><a href="#draw-pixel-*"><code>draw-pixel-*</code></a>
<li><a href="#draw-polygon"><code>draw-polygon</code></a>
<li><a href="#draw-rectangle"><code>draw-rectangle</code></a>
<li><a href="#draw-rectangle-*"><code>draw-rectangle-*</code></a>
<li><a href="#draw-shape"><code>draw-shape</code></a>
<li><a href="#draw-string-shaded"><code>draw-string-shaded</code></a>
<li><a href="#draw-string-shaded-*"><code>draw-string-shaded-*</code></a>
<li><a href="#draw-string-solid"><code>draw-string-solid</code></a>
<li><a href="#draw-string-solid-*"><code>draw-string-solid-*</code></a>
<li><a href="#draw-trigon"><code>draw-trigon</code></a>
<li><a href="#draw-vline"><code>draw-vline</code></a>
<li><a href="#font"><code>font</code></a>
<li><a href="#font-height"><code>font-height</code></a>
<li><a href="#font-width"><code>font-width</code></a>
<li><a href="#free-font"><code>free-font</code></a>
<li><a href="#initialise-default-font"><code>initialise-default-font</code></a>
<li><a href="#initialise-font"><code>initialise-font</code></a>
<li><a href="#render-string-shaded"><code>render-string-shaded</code></a>
<li><a href="#render-string-solid"><code>render-string-solid</code></a>
<li><a href="#roto-zoom-size"><code>roto-zoom-size</code></a>
<li><a href="#roto-zoom-size-xy"><code>roto-zoom-size-xy</code></a>
<li><a href="#roto-zoom-xy"><code>roto-zoom-xy</code></a>
<li><a href="#set-default-font"><code>set-default-font</code></a>
<li><a href="#with-bezier"><code>with-bezier</code></a>
<li><a href="#with-curve"><code>with-curve</code></a>
<li><a href="#with-shape"><code>with-shape</code></a>
<li><a href="#zoom-surface"><code>zoom-surface</code></a>
<li><a href="#zoom-surface-size"><code>zoom-surface-size</code></a>
</li>
</ol>
<br> </br><h2><a class=none name="compatibility">Compatibility</h2>
<p>
The following table describes the status of the Lisp implementations that have been tested with
LISPBUILDER-SDL-GFX:
</p>
<table id="mytable" cellspacing="0" summary="Compatibility">
<tr>
<th><b>Lisp Implementation</b></th>
<th colspan="3"><b>LISPBUILDER-SDL-GFX Status</b></th>
<th><b>Comments</b></th>
</tr>
<tr>
<th colspan="1"></th>
<th><b>Win32</b></th>
<th><b>Linux</b></th>
<th><b>MacOS</b></th>
<th></th>
</tr>
<tr>
<th class="spec" scope="row">
<a href="http://clisp.cons.org/">CLISP v2.38</a>
</th>
<td bgcolor="#60c060">Working</td>
<td bgcolor="#60c060">Working</td>
<td bgcolor="#ff6060">No</td>
<td></td>
</tr>
<tr>
<th class="specalt" scope="row">
<a href="http://www.lispworks.com/">Lispworks v4.4.6 Personal</a>
</th>
<td class="alt" bgcolor="#60c060">Working</td>
<td class="alt" bgcolor="#60c060">Working</td>
<td class="alt" bgcolor="#ff6060">No</td>
<td></td>
</tr>
<tr>
<th class="spec" scope="row">
<a href="http://www.franz.com/">Allegro Express 8.0</a>
</th>
<td bgcolor="#ff6060">Unknown</td>
<td bgcolor="#ff6060">Unknown</td>
<td bgcolor="#ff6060">No</td>
<td></td>
</tr>
<tr>
<th class="specalt" scope="row">
<a href="http://openmcl.clozure.com/">OpenMCL</a>
</th>
<td class="alt" bgcolor=blue><font color="#FFFFFF">NA</font></td>
<td class="alt" bgcolor=blue><font color="#FFFFFF">NA</font></td>
<td class="alt" bgcolor="#ff6060">Unknown</td>
<td></td>
</tr>
<tr>
<th class="spec" scope="row">
<a href="http://www.sbcl.org/">SBCL</a>
</th>
<td bgcolor="#60c060">Working</td>
<td bgcolor="#60c060">Working</td>
<td bgcolor="#ff6060">No</td>
<td></td>
</tr>
</table>
<br> </br><h2><a class=none name="download">Download</a></h2>
<ul>
<li><font color=red>Development:</font> Available via anonymous SVN at:
<pre>
svn co https://lispbuilder.svn.sourceforge.net/svnroot/lispbuilder lispbuilder
</pre>
</li>
<li>
<font color=red>Stable:</font> The latest stable versions are available from the
<a href="http://sourceforge.net/project/showfiles.php?group_id=159740">LISPBUILDER-SDL repository on SourceForge.</a>
</li>
<li>
<font color=red>The Edi Weitz 'Starter Pack' Version:</font> The stable version of Lispbuilder,
suitable for the installation of installation LISPBUILDER-SDL-GFX using the Lisp Starter Pack from Edi Weitz is can be downloaded from
<a href="http://www.balooga.com/lispbuilder/lispbuilder-sdl-gfx.zip">http://www.balooga.com/lispbuilder/lispbuilder-sdl-gfx.zip</a>.
</li>
</ul>
<br> </br><h2><a class=none name="installation">Installation</a></h2>
<p>See <a href="http://lispbuilder.sourceforge.net/index.html#installation">the LISPBUILDER documentation</a>
for installation instructions.
</p>
<br> </br><h2><a class=none name="usage">Using LISPBUILDER-SDL-GFX</a></h2>
<p>See <a href="http://lispbuilder.sourceforge.net/index.html#usage">the LISPBUILDER documentation</a>
for Usage instructions.
</p>
<br> </br><h2><a class=none name="examples">Running Examples in LISPBUILDER-SDL-GFX-EXAMPLES</a></h2>
<p>Enter the following at the REPL to load the examples included in the
LISPBUILDER-SDL-GFX-EXAMPLES package:</p>
<pre>
(asdf:operate 'asdf:load-op :lispbuilder-sdl-gfx-examples)
</pre>
<p>Run the examples by entering any of the following at the REPL:
</p>
<ul>
<li>(SDL-GFX-EXAMPLES:RECURSION)</li>
<li>(SDL-GFX-EXAMPLES:METABALLS)</li>
<li>(SDL-GFX-EXAMPLES:POINTS-AND-LINES)</li>
<li>(SDL-GFX-EXAMPLES:FUNCTIONS)</li>
<li>(SDL-GFX-EXAMPLES:WIDTH-HEIGHT)</li>
<li>(SDL-GFX-EXAMPLES:INBUILT-FONT)</li>
<li>(SDL-GFX-EXAMPLES:BEZIER)</li>
<li>(SDL-GFX-EXAMPLES:VERTICES)</li>
<li>(SDL-GFX-EXAMPLES:SHAPE-PRIMITIVES)</li>
<li>(SDL-GFX-EXAMPLES:SETUP-AND-DRAW)</li>
<li>(SDL-GFX-EXAMPLES:DISTANCE-2D)</li>
<li>(SDL-GFX-EXAMPLES:RANDOM-CIRCLES)</li>
<li>(SDL-GFX-EXAMPLES:OBJECTS)</li>
</ul>
<br> </br><h2><a class=none name="dependency">Dependencies</a></h2>
<p>LISPBUILDER-SDL-GFX has a dependency on LISPBUILDER-SDL.</p>
<br> </br><h2><a class=none name="license">License</a></h2>
<p>
LISPBUILDER-SDL-GFX is distributed under the
<a href="http://en.wikipedia.org/wiki/MIT_License">MIT-style license</a>.
</p>
<br> </br><h2><a class=none name="dictionar">The LISPBUILDER-SDL-GFX dictionary</a></h2>
<!-- Entry for *DEFAULT-FONT* -->
<p><br>[Special variable]<br><a class=none name='*default-font*'><b>*default-font*</b></a>
<blockquote><br>
<p>When a LISPBUILDER-SDL-GFX function or macro has an <code>OPTIONAL</code> or <code>KEY</code>word argument <code>FONT</code>, the default action is to bind to <code>*DEFAULT-FONT*</code>.<code>*DEFAULT-FONT*</code> is set to <code>NIL</code> initially. A font must be initialized by calling <a href="#initialise-default-font">INITIALISE-DEFAULT-FONT</a> prior to use. </p>
</blockquote>
<!-- End of entry for *DEFAULT-FONT* -->
<!-- Entry for *FONT-10X20* -->
<p><br>[Special variable]<br><a class=none name='*font-10x20*'><b>*font-10x20*</b></a>
<blockquote><br>
<p>Contains the font data for an 10x20 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-10X20* -->
<!-- Entry for *FONT-5X7* -->
<p><br>[Special variable]<br><a class=none name='*font-5x7*'><b>*font-5x7*</b></a>
<blockquote><br>
<p>Contains the font data for an 5x7 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-5X7* -->
<!-- Entry for *FONT-5X8* -->
<p><br>[Special variable]<br><a class=none name='*font-5x8*'><b>*font-5x8*</b></a>
<blockquote><br>
<p>Contains the font data for an 5x8 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-5X8* -->
<!-- Entry for *FONT-6X10* -->
<p><br>[Special variable]<br><a class=none name='*font-6x10*'><b>*font-6x10*</b></a>
<blockquote><br>
<p>Contains the font data for an 6x10 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-6X10* -->
<!-- Entry for *FONT-6X12* -->
<p><br>[Special variable]<br><a class=none name='*font-6x12*'><b>*font-6x12*</b></a>
<blockquote><br>
<p>Contains the font data for an 6x12 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-6X12* -->
<!-- Entry for *FONT-6X13* -->
<p><br>[Special variable]<br><a class=none name='*font-6x13*'><b>*font-6x13*</b></a>
<blockquote><br>
<p>Contains the font data for an 6x13 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-6X13* -->
<!-- Entry for *FONT-6X13B* -->
<p><br>[Special variable]<br><a class=none name='*font-6x13b*'><b>*font-6x13b*</b></a>
<blockquote><br>
<p>Contains the font data for an 6x13 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-6X13B* -->
<!-- Entry for *FONT-6X13O* -->
<p><br>[Special variable]<br><a class=none name='*font-6x13o*'><b>*font-6x13o*</b></a>
<blockquote><br>
<p>Contains the font data for an 6x13 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-6X13O* -->
<!-- Entry for *FONT-6X9* -->
<p><br>[Special variable]<br><a class=none name='*font-6x9*'><b>*font-6x9*</b></a>
<blockquote><br>
<p>Contains the font data for an 6x9 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-6X9* -->
<!-- Entry for *FONT-7X13* -->
<p><br>[Special variable]<br><a class=none name='*font-7x13*'><b>*font-7x13*</b></a>
<blockquote><br>
<p>Contains the font data for an 7x13 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-7X13* -->
<!-- Entry for *FONT-7X13B* -->
<p><br>[Special variable]<br><a class=none name='*font-7x13b*'><b>*font-7x13b*</b></a>
<blockquote><br>
<p>Contains the font data for an 7x13 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-7X13B* -->
<!-- Entry for *FONT-7X13O* -->
<p><br>[Special variable]<br><a class=none name='*font-7x13o*'><b>*font-7x13o*</b></a>
<blockquote><br>
<p>Contains the font data for an 7x13 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-7X13O* -->
<!-- Entry for *FONT-7X14* -->
<p><br>[Special variable]<br><a class=none name='*font-7x14*'><b>*font-7x14*</b></a>
<blockquote><br>
<p>Contains the font data for an 7x14 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-7X14* -->
<!-- Entry for *FONT-7X14B* -->
<p><br>[Special variable]<br><a class=none name='*font-7x14b*'><b>*font-7x14b*</b></a>
<blockquote><br>
<p>Contains the font data for an 7x14 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-7X14B* -->
<!-- Entry for *FONT-8X13* -->
<p><br>[Special variable]<br><a class=none name='*font-8x13*'><b>*font-8x13*</b></a>
<blockquote><br>
<p>Contains the font data for an 8x13 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-8X13* -->
<!-- Entry for *FONT-8X13B* -->
<p><br>[Special variable]<br><a class=none name='*font-8x13b*'><b>*font-8x13b*</b></a>
<blockquote><br>
<p>Contains the font data for an 8x13 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-8X13B* -->
<!-- Entry for *FONT-8X13O* -->
<p><br>[Special variable]<br><a class=none name='*font-8x13o*'><b>*font-8x13o*</b></a>
<blockquote><br>
<p>Contains the font data for an 8x13 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-8X13O* -->
<!-- Entry for *FONT-8X8* -->
<p><br>[Special variable]<br><a class=none name='*font-8x8*'><b>*font-8x8*</b></a>
<blockquote><br>
<p>Contains the font data for an 8x8 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-8X8* -->
<!-- Entry for *FONT-9X15* -->
<p><br>[Special variable]<br><a class=none name='*font-9x15*'><b>*font-9x15*</b></a>
<blockquote><br>
<p>Contains the font data for an 9x15 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-9X15* -->
<!-- Entry for *FONT-9X15B* -->
<p><br>[Special variable]<br><a class=none name='*font-9x15b*'><b>*font-9x15b*</b></a>
<blockquote><br>
<p>Contains the font data for an 9x15 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-9X15B* -->
<!-- Entry for *FONT-9X18* -->
<p><br>[Special variable]<br><a class=none name='*font-9x18*'><b>*font-9x18*</b></a>
<blockquote><br>
<p>Contains the font data for an 9x18 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-9X18* -->
<!-- Entry for *FONT-9X18B* -->
<p><br>[Special variable]<br><a class=none name='*font-9x18b*'><b>*font-9x18b*</b></a>
<blockquote><br>
<p>Contains the font data for an 9x18 bitmap font. </p>
</blockquote>
<!-- End of entry for *FONT-9X18B* -->
<!-- Entry for DRAW-AA-CIRCLE -->
<p><br>[Function]<br><a class=none name='draw-aa-circle'><b>draw-aa-circle</b> <i>p1 r <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-aa-circle-*">DRAW-AA-CIRCLE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the antialiased circle, of type <code>SDL:POINT</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-AA-CIRCLE -->
<!-- Entry for DRAW-AA-CIRCLE-* -->
<p><br>[Function]<br><a class=none name='draw-aa-circle-*'><b>draw-aa-circle-*</b> <i>x y r <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draws the circumference of a circle of color COLOR to the surface SURFACE using anti-aliasing. Use <a href="#draw-filled-circle-*">DRAW-FILLED-CIRCLE-*</a> to draw a filled circle. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the circle, of type <code>INTEGER</code>. </li>
<li><code>R</code> is the circle radius, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-AA-CIRCLE-* -->
<!-- Entry for DRAW-AA-ELLIPSE -->
<p><br>[Function]<br><a class=none name='draw-aa-ellipse'><b>draw-aa-ellipse</b> <i>p1 rx ry <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-aa-ellipse-*">DRAW-AA-ELLIPSE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the ellipse, of type <code>SDL:POINT</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-AA-ELLIPSE -->
<!-- Entry for DRAW-AA-ELLIPSE-* -->
<p><br>[Function]<br><a class=none name='draw-aa-ellipse-*'><b>draw-aa-ellipse-*</b> <i>x y rx ry <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draws the circumference of an ellipse of color COLOR to the surface SURFACE using anti-aliasing. Use <a href="#draw-filled-ellipse-*">DRAW-FILLED-ELLIPSE-*</a> to draw a filled ellipse. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the ellipse, of type <code>INTEGER</code>. </li>
<li><code>RX</code> and <code>RY</code> specify the ellipse radius, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-AA-ELLIPSE-* -->
<!-- Entry for DRAW-AA-LINE -->
<p><br>[Function]<br><a class=none name='draw-aa-line'><b>draw-aa-line</b> <i>point1 point2 <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-aa-line-*">DRAW-AA-LINE-*</a>-* </p><h5>Parameters </h5>
<ul><li><code>POINT1</code> and <code>POINT2</code> are the start and end x/y co-ordinates of the line, of type <code>SDL:POINT</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-AA-LINE -->
<!-- Entry for DRAW-AA-LINE-* -->
<p><br>[Function]<br><a class=none name='draw-aa-line-*'><b>draw-aa-line-*</b> <i>x1 y1 x2 y2 <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draws an antialiased line of color <code>COLOR</code> to the surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X1</code><code>Y1</code> are the start X/Y coordinates of the line, of type <code>INTEGER</code>. </li>
<li><code>X2</code><code>Y2</code> are the end X/Y coordinates of the line, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-AA-LINE-* -->
<!-- Entry for DRAW-AA-POLYGON -->
<p><br>[Function]<br><a class=none name='draw-aa-polygon'><b>draw-aa-polygon</b> <i>points <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draw the circumference of a polygon of color <code>COLOR</code> to surface SURFACE using the vertices in <code>POINTS</code>. The polygon is anti-aliased. Use <a href="#draw-filled-polygon-*">DRAW-FILLED-POLYGON-*</a> to draw a filled polygon. </p><h5>Parameters </h5>
<ul><li><code>POINTS</code> is the list of vertices of type <code>SDL:POINT</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-AA-POLYGON -->
<!-- Entry for DRAW-AA-TRIGON -->
<p><br>[Function]<br><a class=none name='draw-aa-trigon'><b>draw-aa-trigon</b> <i>point1 point2 point3 <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draw the outline of a trigon or triangle, of color <code>COLOR</code> to surface <code>SURFACE</code> using anti-aliasing. Use <a href="#draw-filled-trigon-*">DRAW-FILLED-TRIGON-*</a> to draw a filled trigon. </p><h5>Parameters </h5>
<ul><li><code>POINT1</code>, <code>POINT2</code> and <code>POINT3</code> specify the vertices of the trigon, of type <code>SDL:POINT</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-AA-TRIGON -->
<!-- Entry for DRAW-BEZIER -->
<p><br>[Function]<br><a class=none name='draw-bezier'><b>draw-bezier</b> <i>points steps <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draw a bezier curve of color <code>COLOR</code> to the surface <code>SURFACE</code>. The shape of the Bezier curve is defined by several control points. A control point is a vertex containing an X and Y coordinate pair. </p><h5>Parameters </h5>
<ul><li><code>POINTS</code> is the list of control points of type <code>SDL:POINT</code>. </li>
<li><code>STEPS</code> is the number of segments used to draw the Bezier curve. The greater the number of segments, the smoother the Bezier curve. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-BEZIER (LIST (SDL:POINT :X 60 :Y 40)
(SDL:POINT :X 160 :Y 10)
(SDL:POINT :X 170 :Y 150)
(SDL:POINT :X 60 :Y 150))
10)
</code></pre>
</blockquote>
<!-- End of entry for DRAW-BEZIER -->
<!-- Entry for DRAW-BOX -->
<p><br>[Function]<br><a class=none name='draw-box'><b>draw-box</b> <i>rect <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-box-*">DRAW-BOX-*</a>. </p><h5>Parameters </h5>
<ul><li><code>RECT</code> is the rectangle to fill, of type <code>SDL:RECTANGLE</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-BOX -->
<!-- Entry for DRAW-BOX-* -->
<p><br>[Function]<br><a class=none name='draw-box-*'><b>draw-box-*</b> <i>x y w h <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draws a filled rectangle of color <code>COLOR</code> to surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> are the <code>INTEGER</code> coordinates of the top-left corner of the rectangle. </li>
<li><code>W</code> and <code>H</code> are the width and height of the rectangle, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the fill color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-BOX-* -->
<!-- Entry for DRAW-CHARACTER-SHADED -->
<p><br>[Function]<br><a class=none name='draw-character-shaded'><b>draw-character-shaded</b> <i>c p1 fg-color bg-color <tt>&key</tt> font surface</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-character-shaded-*">DRAW-CHARACTER-SHADED-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the x and y position to render the character, of type <code>SDL:POINT</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-CHARACTER-SHADED -->
<!-- Entry for DRAW-CHARACTER-SHADED-* -->
<p><br>[Function]<br><a class=none name='draw-character-shaded-*'><b>draw-character-shaded-*</b> <i>c x y fg-color bg-color <tt>&key</tt> font surface</i> => <i>result</i></a>
<blockquote><br>
<p>Draw the character <code>C</code> at location <code>X</code><code>Y</code> using font <code>FONT</code> with text color <code>FG-COLOR</code> and background color <code>BG-COLOR</code> onto surface <code>SURFACE</code>. The surface background is filled with <code>BG-COLOR</code> so the surface cannot be keyed over other surfaces. </p><ul><li><code>C</code> is the character to render. </li>
<li><code>X</code> and <code>Y</code> are the x and y position coordinates, as <code>INTEGERS</code>. </li>
<li><code>FG-COLOR</code> color is the character color, of type SDL:SDL-COLOR </li>
<li><code>BG-COLOR</code> color is the background color used to fill the surface <code>SURFACE</code>, of type SDL:SDL-COLOR </li>
<li><code>FONT</code> is the font face used to render the character. Of type <code>FONT</code>. Bound to <code>*DEFAULT-FONT*</code> if unspecified. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
</ul><h5>Returns </h5>
<ul><li>Returns the font <code>FONT</code>. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-CHARACTER-SHADED-* &quot;Hello World!&quot; 0 0 F-COLOR B-COLOR :SURFACE A-SURFACE)
</code></pre>
</blockquote>
<!-- End of entry for DRAW-CHARACTER-SHADED-* -->
<!-- Entry for DRAW-CHARACTER-SOLID -->
<p><br>[Function]<br><a class=none name='draw-character-solid'><b>draw-character-solid</b> <i>c p1 <tt>&key</tt> font surface color</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-character-solid-*">DRAW-CHARACTER-SOLID-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the x and y position to render the character, of type <code>SDL:POINT</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-CHARACTER-SOLID -->
<!-- Entry for DRAW-CHARACTER-SOLID-* -->
<p><br>[Function]<br><a class=none name='draw-character-solid-*'><b>draw-character-solid-*</b> <i>c x y <tt>&key</tt> font surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draw character <code>C</code> at location <code>X</code><code>Y</code> using font <code>FONT</code> with text color <code>COLOR</code> onto surface <code>SURFACE</code>. The character is keyed onto SURFACE. </p><h5>Parameters </h5>
<ul><li><code>C</code> is the character to render. </li>
<li><code>X</code> and <code>Y</code> are the x and y position coordinates, as <code>INTEGERS</code>. </li>
<li><code>FONT</code> is the font face used to render the character. Of type <code>FONT</code>. Bound to <code>*DEFAULT-FONT*</code> if unspecified. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> color is the character color, of type <code>SDL:SDL-COLOR</code>. </li>
</ul><h5>Returns </h5>
<ul><li>Returns the font <code>FONT</code>. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-CHARACTER-SOLID-* &quot;Hello World!&quot; 0 0 :SURFACE A-SURFACE :COLOR A-COLOR)
</code></pre>
</blockquote>
<!-- End of entry for DRAW-CHARACTER-SOLID-* -->
<!-- Entry for DRAW-CIRCLE -->
<p><br>[Function]<br><a class=none name='draw-circle'><b>draw-circle</b> <i>p1 r <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-circle-*">DRAW-CIRCLE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the circle, of type <code>SDL:POINT</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-CIRCLE -->
<!-- Entry for DRAW-CIRCLE-* -->
<p><br>[Function]<br><a class=none name='draw-circle-*'><b>draw-circle-*</b> <i>x y r <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draws a circle circumference of color <code>COLOR</code> to the surface <code>SURFACE</code>. Use <a href="#draw-filled-circle-*">DRAW-FILLED-CIRCLE-*</a> to draw a filled circle. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the circle, of type <code>INTEGER</code>. </li>
<li><code>R</code> is the circle radius, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-CIRCLE-* -->
<!-- Entry for DRAW-CURVE -->
<p><br>[Function]<br><a class=none name='draw-curve'><b>draw-curve</b> <i>points type segments <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draw a Cattmul-Rom spline using color <code>COLOR</code> to the surface <code>SURFACE</code>. The shape of the curve is defined by waypoints. A waypoint is a vertex containing an X and Y coordinate pair. </p><h5>Parameters </h5>
<ul><li><code>POINTS</code> is a list of waypoints or vetices for the spline, of type <code>SDL:POINT</code></li>
<li><code>TYPE</code> describes the line style used to draw the curve and may be one of <code>:LINE-STRIP</code>, <code>:LINES</code>, or <code>:POINTS</code>. Use <code>:LINE-STRIP</code> to draw a single continuous line through the specified waypoints. Use <code>:LINES</code> to draw a line between alternate waypoint pairs. Use <code>:POINTS</code> to draw a single pixel at each waypoint. </li>
<li><code>SEGMENTS</code> is the number of segments used to draw the Catmull-Rom spline. Default is 10 segments if unspecified. The greater the number of segments, the smoother the spline. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-CURVE (LIST (SDL:POINT :X 60 :Y 40)
(SDL:POINT :X 160 :Y 10)
(SDL:POINT :X 170 :Y 150)
(SDL:POINT :X 60 :Y 150))
:LINE-STRIP
10)
</code></pre>
</blockquote>
<!-- End of entry for DRAW-CURVE -->
<!-- Entry for DRAW-ELLIPSE -->
<p><br>[Function]<br><a class=none name='draw-ellipse'><b>draw-ellipse</b> <i>p1 rx ry <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-ellipse-*">DRAW-ELLIPSE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the ellipse, of type <code>SDL:POINT</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-ELLIPSE -->
<!-- Entry for DRAW-ELLIPSE-* -->
<p><br>[Function]<br><a class=none name='draw-ellipse-*'><b>draw-ellipse-*</b> <i>x y rx ry <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draws an ellipse circumference of color <code>COLOR</code> to the surface <code>SURFACE</code>. Use <a href="#draw-filled-ellipse-*">DRAW-FILLED-ELLIPSE-*</a> to draw a filled ellipse. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the ellipse, of type <code>INTEGER</code>. </li>
<li><code>RX</code> and <code>RY</code> specify the ellipse radius, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-ELLIPSE-* -->
<!-- Entry for DRAW-FILLED-CIRCLE -->
<p><br>[Function]<br><a class=none name='draw-filled-circle'><b>draw-filled-circle</b> <i>p1 r <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-filled-circle-*">DRAW-FILLED-CIRCLE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the filled circle, of type <code>SDL:POINT</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-FILLED-CIRCLE -->
<!-- Entry for DRAW-FILLED-CIRCLE-* -->
<p><br>[Function]<br><a class=none name='draw-filled-circle-*'><b>draw-filled-circle-*</b> <i>x y r <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draws a filled circle of color <code>COLOR</code> to the surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the circle, of type <code>INTEGER</code>. </li>
<li><code>R</code> is the circle radius, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the fill color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-FILLED-CIRCLE-* -->
<!-- Entry for DRAW-FILLED-ELLIPSE -->
<p><br>[Function]<br><a class=none name='draw-filled-ellipse'><b>draw-filled-ellipse</b> <i>p1 rx ry <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-filled-ellipse-*">DRAW-FILLED-ELLIPSE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the filled ellipse, of type <code>SDL:POINT</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-FILLED-ELLIPSE -->
<!-- Entry for DRAW-FILLED-ELLIPSE-* -->
<p><br>[Function]<br><a class=none name='draw-filled-ellipse-*'><b>draw-filled-ellipse-*</b> <i>x y rx ry <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draws a filled ellipse of color <code>COLOR</code> to the surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the ellipse, of type <code>INTEGER</code>. </li>
<li><code>RX</code> and <code>RY</code> specify the ellipse radius, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the fill color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-FILLED-ELLIPSE-* -->
<!-- Entry for DRAW-FILLED-PIE -->
<p><br>[Function]<br><a class=none name='draw-filled-pie'><b>draw-filled-pie</b> <i>p1 rad start end <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-filled-pie-*">DRAW-FILLED-PIE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the filled pie, of type <code>SDL:POINT</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-FILLED-PIE -->
<!-- Entry for DRAW-FILLED-PIE-* -->
<p><br>[Function]<br><a class=none name='draw-filled-pie-*'><b>draw-filled-pie-*</b> <i>x y rad start end <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draws a filled pie of color <code>COLOR</code> to the surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the pie, of type <code>INTEGER</code>. </li>
<li><code>RAD</code> is the pie radius, of type <code>INTEGER</code>. </li>
<li><code>START</code> is the pie start, of type <code>INTEGER</code>. </li>
<li><code>END</code> is the pie end, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the fill color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-FILLED-PIE-* -->
<!-- Entry for DRAW-FILLED-POLYGON -->
<p><br>[Function]<br><a class=none name='draw-filled-polygon'><b>draw-filled-polygon</b> <i>points <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draw a filled polygon, of color <code>COLOR</code> to surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>POINTS</code> is the list of vertices of type <code>SDL:POINT</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the fill color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-FILLED-POLYGON -->
<!-- Entry for DRAW-FILLED-TRIGON -->
<p><br>[Function]<br><a class=none name='draw-filled-trigon'><b>draw-filled-trigon</b> <i>point1 point2 point3 <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draw a filled trigon, of color <code>COLOR</code> to surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>POINT1</code>, <code>POINT2</code> and <code>POINT3</code> specify the vertices of the trigon, of type <code>SDL:POINT</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the fill color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-FILLED-TRIGON -->
<!-- Entry for DRAW-FONT -->
<p><br>[Generic function]<br><a class=none name='draw-font'><b>draw-font</b> <i><tt>&key</tt> font surface</i> => <i>result</i></a>
<blockquote><br>
<p>Blit the cached SURFACE in FONT to the destination surface SURFACE. The cached surface is created during a previous call to any of the DRAW-STRING* functions. Uses POSITION in the cached SURFACE to render to the X/Y coordinates on the destination SURFACE. </p><p>This function can speed up blitting when the text remains unchanged between screen updates. </p>
</blockquote>
<!-- End of entry for DRAW-FONT -->
<!-- Entry for DRAW-FONT -->
<p><br>[Function]<br><a class=none name='draw-font'><b>draw-font</b> <i><tt>&key</tt> font surface</i> => <i>result</i></a>
<blockquote><br>
</blockquote>
<!-- End of entry for DRAW-FONT -->
<!-- Entry for DRAW-FONT-AT -->
<p><br>[Generic function]<br><a class=none name='draw-font-at'><b>draw-font-at</b> <i>position <tt>&key</tt> font surface</i> => <i>result</i></a>
<blockquote><br>
<p>See DRAW-FONT. POINT is used to position the cached SURFACE, where POINT is of type SDL:POINT. </p>
</blockquote>
<!-- End of entry for DRAW-FONT-AT -->
<!-- Entry for DRAW-FONT-AT -->
<p><br>[Method]<br><a class=none><b>draw-font-at</b> <i>position <tt>&key</tt> font surface</i> => <i>result</i></a>
<blockquote><br>
</blockquote>
<!-- End of entry for DRAW-FONT-AT -->
<!-- Entry for DRAW-FONT-AT-* -->
<p><br>[Generic function]<br><a class=none name='draw-font-at-*'><b>draw-font-at-*</b> <i>x y <tt>&key</tt> font surface</i> => <i>result</i></a>
<blockquote><br>
<p>See DRAW-FONT. X and Y are used to position the cached SURFACE, where X and Y are INTEGERS. </p>
</blockquote>
<!-- End of entry for DRAW-FONT-AT-* -->
<!-- Entry for DRAW-FONT-AT-* -->
<p><br>[Method]<br><a class=none><b>draw-font-at-*</b> <i>x y <tt>&key</tt> font surface</i> => <i>result</i></a>
<blockquote><br>
</blockquote>
<!-- End of entry for DRAW-FONT-AT-* -->
<!-- Entry for DRAW-HLINE -->
<p><br>[Function]<br><a class=none name='draw-hline'><b>draw-hline</b> <i>x1 x2 y <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draw a horizontal line of color <code>COLOR</code> from <code>X1</code> to <code>X2</code> through <code>Y</code> onto the surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X1</code> and <code>X2</code> are the horizontal start and end points of the line, of type <code>INTEGER</code>. </li>
<li><code>Y</code> is the vertical <code>INTEGER</code> coordinate that the horizontal line must intersect. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-HLINE -->
<!-- Entry for DRAW-LINE -->
<p><br>[Function]<br><a class=none name='draw-line'><b>draw-line</b> <i>point1 point2 <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-line-*">DRAW-LINE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>POINT1</code> and <code>POINT2</code> are the start and end x/y co-ordinates of the line, of type <code>SDL:POINT</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-LINE -->
<!-- Entry for DRAW-LINE-* -->
<p><br>[Function]<br><a class=none name='draw-line-*'><b>draw-line-*</b> <i>x1 y1 x2 y2 <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draws a line of color <code>COLOR</code> to the surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X1</code><code>Y1</code> are the start X/Y coordinates of the line, of type <code>INTEGER</code>. </li>
<li><code>X2</code><code>Y2</code> are the end X/Y coordinates of the line, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-LINE-* -->
<!-- Entry for DRAW-PIE -->
<p><br>[Function]<br><a class=none name='draw-pie'><b>draw-pie</b> <i>p1 rad start end <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-pie-*">DRAW-PIE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the pie, of type <code>SDL:POINT</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-PIE -->
<!-- Entry for DRAW-PIE-* -->
<p><br>[Function]<br><a class=none name='draw-pie-*'><b>draw-pie-*</b> <i>x y rad start end <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draws a pie of color <code>COLOR</code> to the surface <code>SURFACE</code>. Use <a href="#draw-filled-pie-*">DRAW-FILLED-PIE-*</a> to draw a filled pie. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the pie, of type <code>INTEGER</code>. </li>
<li><code>RAD</code> is the pie radius, of type <code>INTEGER</code>. </li>
<li><code>START</code> is the pie start, of type <code>INTEGER</code>. </li>
<li><code>END</code> is the pie end, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-PIE-* -->
<!-- Entry for DRAW-PIXEL -->
<p><br>[Function]<br><a class=none name='draw-pixel'><b>draw-pixel</b> <i>position <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-pixel-*">DRAW-PIXEL-*</a>. </p><h5>Parameters </h5>
<ul><li><code>POSITION</code> is the X/Y coordinate of the pixel, of type <code>SDL:POINT</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-PIXEL -->
<!-- Entry for DRAW-PIXEL-* -->
<p><br>[Function]<br><a class=none name='draw-pixel-*'><b>draw-pixel-*</b> <i>x y <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draw a single pixel of color <code>COLOR</code> to the surface <code>SURFACE</code> at the specified <code>X</code> and <code>Y</code> coordiates. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the coordinates of the pixel, and are of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the pixel color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-PIXEL-* -->
<!-- Entry for DRAW-POLYGON -->
<p><br>[Function]<br><a class=none name='draw-polygon'><b>draw-polygon</b> <i>points <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draw the circumference of a polygon of color <code>COLOR</code> to surface SURFACE using the vertices in <code>POINTS</code>. Use <a href="#draw-filled-polygon-*">DRAW-FILLED-POLYGON-*</a> to draw a filled polygon. </p><h5>Parameters </h5>
<ul><li><code>POINTS</code> is the list of vertices for the polygon. <code>POINTS</code> is a list of <code>SDL:POINT</code>s. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-POLYGON -->
<!-- Entry for DRAW-RECTANGLE -->
<p><br>[Function]<br><a class=none name='draw-rectangle'><b>draw-rectangle</b> <i>rect <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-rectangle-*">DRAW-RECTANGLE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>RECT</code> is the rectangle to draw, of type <code>SDL:RECTANGLE</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-RECTANGLE -->
<!-- Entry for DRAW-RECTANGLE-* -->
<p><br>[Function]<br><a class=none name='draw-rectangle-*'><b>draw-rectangle-*</b> <i>x y w h <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draw a rectangle outline of color <code>COLOR</code> to the surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> are the <code>INTEGER</code> coordinates of the top-left corner of the rectangle. </li>
<li><code>W</code> and <code>H</code> are the width and height of the rectangle, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-RECTANGLE-* -->
<!-- Entry for DRAW-SHAPE -->
<p><br>[Function]<br><a class=none name='draw-shape'><b>draw-shape</b> <i>points type <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draw a polygon of color <code>COLOR</code> to the surface <code>SURFACE</code> using the vertices in <code>POINTS</code>. </p><h5>Parameters </h5>
<ul><li><code>POINTS</code> is a list of vertices, of type <code>SDL:POINT</code></li>
<li><code>TYPE</code> describes the line style used to draw the polygon and may be one of <code>:LINE-STRIP</code>, <code>:LINES</code>, or <code>:POINTS</code>. Use <code>:LINE-STRIP</code> to draw a single continuous line through the specified waypoints. Use <code>:LINES</code> to draw a line between alternate waypoint pairs. Use <code>:POINTS</code> to draw a single pixel at each waypoint. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-SHAPE (LIST (SDL:POINT :X 60 :Y 40)
(SDL:POINT :X 160 :Y 10)
(SDL:POINT :X 170 :Y 150)
(SDL:POINT :X 60 :Y 150))
:LINE-STRIP)
</code></pre>
</blockquote>
<!-- End of entry for DRAW-SHAPE -->
<!-- Entry for DRAW-STRING-SHADED -->
<p><br>[Function]<br><a class=none name='draw-string-shaded'><b>draw-string-shaded</b> <i>c p1 fg-color bg-color <tt>&key</tt> font surface</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-string-shaded-*">DRAW-STRING-SHADED-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the x and y position to render the text, of type <code>SDL:POINT</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-STRING-SHADED -->
<!-- Entry for DRAW-STRING-SHADED-* -->
<p><br>[Function]<br><a class=none name='draw-string-shaded-*'><b>draw-string-shaded-*</b> <i>c x y fg-color bg-color <tt>&key</tt> font surface</i> => <i>result</i></a>
<blockquote><br>
<p>Draw text <code>C</code> using at location <code>X</code><code>Y</code> using font <code>FONT</code> with text color <code>FG-COLOR</code> and background color <code>BG-COLOR</code> onto surface <code>SURFACE</code>. The surface background is filled with <code>BG-COLOR</code> so the surface cannot be keyed over other surfaces. </p><ul><li><code>C</code> is the text to render. </li>
<li><code>X</code> and <code>Y</code> are the x and y position coordinates, as <code>INTEGERS</code>. </li>
<li><code>FG-COLOR</code> color is the text color, of type SDL:SDL-COLOR </li>
<li><code>BG-COLOR</code> color is the background color used to fill the surface <code>SURFACE</code>, of type SDL:SDL-COLOR </li>
<li><code>FONT</code> is the font face used to render the text. Of type <code>FONT</code>. Bound to <code>*DEFAULT-FONT*</code> if unspecified. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
</ul><h5>Returns </h5>
<ul><li>Returns the font <code>FONT</code>. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-STRING-SHADED-* &quot;Hello World!&quot; 0 0 F-COLOR B-COLOR :SURFACE A-SURFACE)
</code></pre>
</blockquote>
<!-- End of entry for DRAW-STRING-SHADED-* -->
<!-- Entry for DRAW-STRING-SOLID -->
<p><br>[Function]<br><a class=none name='draw-string-solid'><b>draw-string-solid</b> <i>c p1 <tt>&key</tt> font surface color</i> => <i>result</i></a>
<blockquote><br>
<p>See <a href="#draw-string-solid-*">DRAW-STRING-SOLID-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the x and y position to render the text, of type <code>SDL:POINT</code>. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-STRING-SOLID -->
<!-- Entry for DRAW-STRING-SOLID-* -->
<p><br>[Function]<br><a class=none name='draw-string-solid-*'><b>draw-string-solid-*</b> <i>c x y <tt>&key</tt> font surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draw text <code>C</code> at location <code>X</code><code>Y</code> using font <code>FONT</code> with color <code>COLOR</code> onto surface <code>SURFACE</code>. The text is keyed onto SURFACE. </p><h5>Parameters </h5>
<ul><li><code>C</code> is the text to render. </li>
<li><code>X</code> and <code>Y</code> are the x and y position coordinates, as <code>INTEGERS</code>. </li>
<li><code>FONT</code> is the font face used to render the string. Of type <code>FONT</code>. Bound to <code>*DEFAULT-FONT*</code> if unspecified. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> color is the text color, of type <code>SDL:SDL-COLOR</code>. </li>
</ul><h5>Returns </h5>
<ul><li>Returns the font <code>FONT</code>. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-STRING-SOLID-* &quot;Hello World!&quot; 0 0 :SURFACE A-SURFACE :COLOR A-COLOR)
</code></pre>
</blockquote>
<!-- End of entry for DRAW-STRING-SOLID-* -->
<!-- Entry for DRAW-TRIGON -->
<p><br>[Function]<br><a class=none name='draw-trigon'><b>draw-trigon</b> <i>point1 point2 point3 <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draw the outline of a trigon or triangle, of color <code>COLOR</code> to surface <code>SURFACE</code>. Use <a href="#draw-filled-trigon-*">DRAW-FILLED-TRIGON-*</a> to draw a filled trigon. </p><h5>Parameters </h5>
<ul><li><code>POINT1</code>, <code>POINT2</code> and <code>POINT3</code> specify the vertices of the trigon, of type <code>SDL:POINT</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-TRIGON -->
<!-- Entry for DRAW-VLINE -->
<p><br>[Function]<br><a class=none name='draw-vline'><b>draw-vline</b> <i>x y1 y2 <tt>&key</tt> surface color</i> => <i>result</i></a>
<blockquote><br>
<p>Draw a vertical line of color <code>COLOR</code> from <code>Y1</code> to <code>Y2</code> through <code>X</code> onto the surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X</code> is the horizontal <code>INTEGER</code> coordinate that the vertical line must intersect. </li>
<li><code>Y1</code> and <code>Y2</code> are the vertical start and end points of the line, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>
</blockquote>
<!-- End of entry for DRAW-VLINE -->
<!-- Entry for FONT -->
<p><br>[Standard class]<br><a class=none name='font'><b>font</b></a>
<blockquote><br>
<p>A <code>FONT</code> object manages the resources for the font. These resources include any cached surface as well as the foreign array containing the font data. </p><p>The cached surface is created by a call to any of the RENDER-STRING* functions. Use <a href="#draw-font">DRAW-FONT</a>, <a href="#draw-font-at">DRAW-FONT-AT</a> or <a href="#draw-font-at-*">DRAW-FONT-AT-*</a> to draw the cached surface. </p><p>Prior to the first call to a RENDER-STRING* function, the cached surface is <code>NIL</code>. </p>
</blockquote>
<!-- End of entry for FONT -->
<!-- Entry for FONT-HEIGHT -->
<p><br>[Generic function]<br><a class=none name='font-height'><b>font-height</b> <i>font</i> => <i>result</i></a>
<blockquote><br>
</blockquote>
<!-- End of entry for FONT-HEIGHT -->
<!-- Entry for FONT-HEIGHT -->
<p><br>[Method]<br><a class=none><b>font-height</b> <i>(font font)</i> => <i>result</i></a>
<blockquote><br>
</blockquote>
<!-- End of entry for FONT-HEIGHT -->
<!-- Entry for FONT-WIDTH -->
<p><br>[Generic function]<br><a class=none name='font-width'><b>font-width</b> <i>font</i> => <i>result</i></a>
<blockquote><br>
</blockquote>
<!-- End of entry for FONT-WIDTH -->
<!-- Entry for FONT-WIDTH -->
<p><br>[Method]<br><a class=none><b>font-width</b> <i>(font font)</i> => <i>result</i></a>
<blockquote><br>
</blockquote>
<!-- End of entry for FONT-WIDTH -->
<!-- Entry for FREE-FONT -->
<p><br>[Generic function]<br><a class=none name='free-font'><b>free-font</b> <i>font</i> => <i>result</i></a>
<blockquote><br>
</blockquote>
<!-- End of entry for FREE-FONT -->
<!-- Entry for FREE-FONT -->
<p><br>[Method]<br><a class=none><b>free-font</b> <i>(font font)</i> => <i>result</i></a>
<blockquote><br>
<p>Free resources associated with the font <code>FONT</code>. This includes freeing the cached surface and the foreign array containing the font data. </p>
</blockquote>
<!-- End of entry for FREE-FONT -->
<!-- Entry for INITIALISE-DEFAULT-FONT -->
<p><br>[Function]<br><a class=none name='initialise-default-font'><b>initialise-default-font</b> <i><tt>&optional</tt> font-definition</i> => <i>result</i></a>
<blockquote><br>
<p>Creates a new <code>FONT</code> object from the font definition in <code>FONT-DEFINITION</code>. Sets the font <code>FONT</code> as the default font to be used for subsequent font rendering or drawing operations. </p><p>Binds the symbol <code>*DEFAULT-FONT*</code> to font. Functions that take a <code>FONT</code> argument use <code>*DEFAULT-FONT*</code> unless otherwise specified. Returns a new <code>FONT</code>, or <code>NIL</code> if unsuccessful. </p>
</blockquote>
<!-- End of entry for INITIALISE-DEFAULT-FONT -->
<!-- Entry for INITIALISE-FONT -->
<p><br>[Function]<br><a class=none name='initialise-font'><b>initialise-font</b> <i>font-definition</i> => <i>result</i></a>
<blockquote><br>
<p>Creates a new <code>FONT</code> object from the font data in <code>FONT-DEFINITION</code>. Returns a new <code>FONT</code>, or <code>NIL</code> if unsuccessful. </p>
</blockquote>
<!-- End of entry for INITIALISE-FONT -->
<!-- Entry for RENDER-STRING-SHADED -->
<p><br>[Function]<br><a class=none name='render-string-shaded'><b>render-string-shaded</b> <i>string fg-color bg-color <tt>&key</tt> font free cache</i> => <i>result</i></a>
<blockquote><br>
<p>Render the string <code>STRING</code> using font <code>FONT</code> with text color <code>FG-COLOR</code> and background color <code>BG-COLOR</code> to a new <code>SURFACE</code>. The dimensions of the new surface are height == <code>FONT</code> height, and width == <code>FONT</code> width * <code>STRING</code> length. The surface background is filled with <code>BG-COLOR</code> so the surface cannot be keyed over other surfaces. Use <code>:CACHE T</code> to cache the new surface in the <code>FONT</code> object. When <code>:FREE T</code> any exisiting cached surface in <code>FONT</code> is automatically freed. When <code>:FREE NIL</code> the caller is responsible for freeing any existing cached surface in <code>FONT</code>. </p><h5>Parameters </h5>
<ul><li><code>STRING</code> is the text to render. </li>
<li><code>FONT</code> is the font face used to render the <code>STRING</code>. Of type <code>FONT</code>. Bound to <code>*DEFAULT-FONT*</code> if unspecified. </li>
<li><code>FG-COLOR</code> color is the text color, of type SDL:SDL-COLOR </li>
<li><code>BG-COLOR</code> color is the background color used to fill the surface, of type SDL:SDL-COLOR </li>
<li><code>FREE</code> when <code>T</code> will free any exisitng cached surface in <code>FONT</code>. </li>
<li><code>CACHE</code> when <code>T</code> will cache the newly created SURFACE in <code>FONT</code>. </li>
</ul><h5>Returns </h5>
<ul><li>Returns a new cached surface <code>SDL:SDL-SURFACE</code>. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-STRING-SHADED &quot;Hello World!&quot; F-COLOR B-COLOR)
</code></pre>
</blockquote>
<!-- End of entry for RENDER-STRING-SHADED -->
<!-- Entry for RENDER-STRING-SOLID -->
<p><br>[Function]<br><a class=none name='render-string-solid'><b>render-string-solid</b> <i>string <tt>&key</tt> font color free cache</i> => <i>result</i></a>
<blockquote><br>
<p>Render the string <code>STRING</code> using font <code>FONT</code> with text color <code>COLOR</code> to a new <code>SURFACE</code>. The dimensions of the new surface are height == <code>FONT</code> height, and width == <code>FONT</code> width * <code>STRING</code> length. The surface background is transparent and therefore can be keyed over other surfaces. Use <code>:CACHE T</code> to cache the new surface in the <code>FONT</code> object. When <code>:FREE T</code> any exisiting cached surface in <code>FONT</code> is automatically freed. When <code>:FREE NIL</code> the caller is responsible for freeing any existing cached surface in <code>FONT</code>. </p><h5>Parameters </h5>
<ul><li><code>STRING</code> is the text to render. </li>
<li><code>FONT</code> is the font face used to render the <code>STRING</code>. Of type <code>FONT</code>. Bound to <code>*DEFAULT-FONT*</code> if unspecified. </li>
<li><code>COLOR</code> color is the text color, of type <code>SDL:SDL-COLOR</code>. </li>
<li><code>FREE</code> when <code>T</code> will free any exisitng cached surface in <code>FONT</code>. </li>
<li><code>CACHE</code> when <code>T</code> will cache the newly created SURFACE in <code>FONT</code>. </li>
</ul><h5>Returns </h5>
<ul><li>Returns a new cached surface <code>SDL:SDL-SURFACE</code>. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-STRING-SOLID &quot;Hello World!&quot; :COLOR A-COLOR)
</code></pre>
</blockquote>
<!-- End of entry for RENDER-STRING-SOLID -->
<!-- Entry for ROTO-ZOOM-SIZE -->
<p><br>[Function]<br><a class=none name='roto-zoom-size'><b>roto-zoom-size</b> <i>width height angle zoom</i> => <i>result</i></a>
<blockquote><br>
</blockquote>
<!-- End of entry for ROTO-ZOOM-SIZE -->
<!-- Entry for ROTO-ZOOM-SIZE-XY -->
<p><br>[Function]<br><a class=none name='roto-zoom-size-xy'><b>roto-zoom-size-xy</b> <i>width height angle zoomx zoomy</i> => <i>result</i></a>
<blockquote><br>
</blockquote>
<!-- End of entry for ROTO-ZOOM-SIZE-XY -->
<!-- Entry for ROTO-ZOOM-XY -->
<p><br>[Function]<br><a class=none name='roto-zoom-xy'><b>roto-zoom-xy</b> <i>angle zoomx zoomy smooth <tt>&key</tt> surface</i> => <i>result</i></a>
<blockquote><br>
</blockquote>
<!-- End of entry for ROTO-ZOOM-XY -->
<!-- Entry for SET-DEFAULT-FONT -->
<p><br>[Function]<br><a class=none name='set-default-font'><b>set-default-font</b> <i>font</i> => <i>result</i></a>
<blockquote><br>
<p>Sets the font <code>FONT</code> as the default font to be used for subsequent font rendering or drawing operations. Binds the symbol <code>*DEFAULT-FONT*</code> to font. Functions that take a <code>FONT</code> argument use <code>*DEFAULT-FONT*</code> unless otherwise specified. Returns a new <code>FONT</code>, or <code>NIL</code> if unsuccessful. </p>
</blockquote>
<!-- End of entry for SET-DEFAULT-FONT -->
<!-- Entry for WITH-BEZIER -->
<p><br>[Macro]<br><a class=none name='with-bezier'><b>with-bezier</b> <i>(<tt>&optional</tt> segments) declaration* statement*</i> => <i>result</i></a>
<blockquote><br>
<p>Draw a bezier curve of color <code>*DEFAULT-COLOR*</code> to the surface <code>*DEFAULT-SURFACE*</code>. The shape of the Bezier curve is defined by control points. A control point is a vertex containing an X and Y coordinate pair. </p><h5>Local Methods </h5>
<p>A vertex may be added using: </p><ul><li><code>ADD-VERTEX</code> which accepts an <code>SDL:POINT</code>, or </li>
<li><code>ADD-VERTEX-*</code> which is the x/y spread version </li>
</ul><p><code>ADD-VERTEX</code> and <code>ADD-VERTEX-*</code> are valid only within the scop of <code>WITH-BEZIER</code>. </p><h5>Parameters </h5>
<ul><li><code>SEGMENTS</code> is the number of segments used to draw the Bezier curve. Default is 10 segments if unspecified. The greater the number of segments, the smoother the curve. </li>
</ul><h5>Example </h5>
<pre><code>(SDL:WITH-COLOR (COL (SDL:COLOR))
(WITH-BEZIER (30)
(ADD-VERTEX-* 60 40)
(ADD-VERTEX-* 160 10)
(ADD-VERTEX-* 170 150)
(ADD-VERTEX-* 60 150)))
</code></pre>
</blockquote>
<!-- End of entry for WITH-BEZIER -->
<!-- Entry for WITH-CURVE -->
<p><br>[Macro]<br><a class=none name='with-curve'><b>with-curve</b> <i>(shape-type <tt>&optional</tt> segments) declaration* statement*</i> => <i>result</i></a>
<blockquote><br>
<p>Draw a Cattmul-Rom spline of color <code>*DEFAULT-COLOR*</code> to the surface <code>*DEFAULT-SURFACE*</code>. The shape of the curve is defined by waypoints. A waypoint is a vertex containing an X and Y coordinate pair. </p><h5>Local Methods </h5>
<p>A vertex may be added using: </p><ul><li><code>ADD-VERTEX</code> which accepts an <code>SDL:POINT</code>, or </li>
<li><code>ADD-VERTEX-*</code> which is the x/y spread version </li>
</ul><p><code>ADD-VERTEX</code> and <code>ADD-VERTEX-*</code> are valid only within the scope of <code>WITH-CURVE</code>. </p><h5>Parameters </h5>
<ul><li><code>SHAPE-TYPE</code> describes the line style used to draw the curve and may be one of <code>:LINE-STRIP</code>, <code>:LINES</code>, or <code>:POINTS</code>. Use <code>:LINE-STRIP</code> to draw a single continuous line through the specified waypoints. Use <code>:LINES</code> to draw a line between alternate waypoint pairs. Use <code>:POINTS</code> to draw a single pixel at each waypoint. </li>
<li><code>SEGMENTS</code> is the number of segments used to draw the Catmull-Rom spline. Default is 10 segments if unspecified. The greater the number of segments, the smoother the spline. </li>
</ul><h5>Example </h5>
<pre><code>(SDL:WITH-COLOR (COL (SDL:COLOR))
(WITH-CURVE (:LINE-STRIP 30)
(ADD-VERTEX-* 60 40)
(ADD-VERTEX-* 160 10)
(ADD-VERTEX-* 170 150)
(ADD-VERTEX-* 60 150)))
</code></pre>
</blockquote>
<!-- End of entry for WITH-CURVE -->
<!-- Entry for WITH-SHAPE -->
<p><br>[Macro]<br><a class=none name='with-shape'><b>with-shape</b> <i>(shape-type) declaration* statement*</i> => <i>result</i></a>
<blockquote><br>
<p>Draw a polygon of color <code>*DEFAULT-COLOR*</code> to the surface <code>*DEFAULT-SURFACE*</code>. </p><h5>Local Methods </h5>
<p>A vertex may be added using: </p><ul><li><code>ADD-VERTEX</code> which accepts an <code>SDL:POINT</code>, or </li>
<li><code>ADD-VERTEX-*</code> which is the x/y spread version </li>
</ul><p>ADD-VERTEX and ADD-VERTEX-* are valid only within the scop of WITH-SHAPE. </p><h5>Parameters </h5>
<ul><li><code>SHAPE-TYPE</code> describes the line style used to draw the shape and may be one of <code>:LINE-STRIP</code>, <code>:LINES</code>, or <code>:POINTS</code>. Use <code>:LINE-STRIP</code> to draw a single continuous line through the specified waypoints. Use <code>:LINES</code> to draw a line between alternate waypoint pairs. Use <code>:POINTS</code> to draw a single pixel at each waypoint. </li>
</ul><h5>Example </h5>
<pre><code>(SDL:WITH-COLOR (COL (SDL:COLOR))
(WITH-SHAPE (:POINTS)
(ADD-VERTEX-* 60 40)
(ADD-VERTEX-* 160 10)
(ADD-VERTEX-* 170 150)
(ADD-VERTEX-* 60 150)))
</code></pre>
</blockquote>
<!-- End of entry for WITH-SHAPE -->
<!-- Entry for ZOOM-SURFACE -->
<p><br>[Function]<br><a class=none name='zoom-surface'><b>zoom-surface</b> <i>zoomx zoomy smooth <tt>&key</tt> surface</i> => <i>result</i></a>
<blockquote><br>
</blockquote>
<!-- End of entry for ZOOM-SURFACE -->
<!-- Entry for ZOOM-SURFACE-SIZE -->
<p><br>[Function]<br><a class=none name='zoom-surface-size'><b>zoom-surface-size</b> <i>width height zoomx zoomy</i> => <i>result</i></a>
<blockquote><br>
</blockquote>
<!-- End of entry for ZOOM-SURFACE-SIZE -->
<br> <br><h3><a class=none name="ack">Acknowledgements</a></h3>
<ul>
<li>
Documentation prepared using:
</li>
<ul>
<li>
Edi Weitz's
<a href="http://weitz.de/documentation-template/">DOCUMENTATION-TEMPLATE</a>.
</li>
<li>
Gary King's
<a href="http://common-lisp.net/project/cl-markdown/">CL-MARKDOWN</a>.
</li>
</ul>
</ul>
<p>
<a href="index.html">BACK</a>
</p>
</body>
</html>