<html>
<head>
<title>Uses of Struct FloatingPointBitmapLayout-xref</title>
<style>h3 { font-size:13pt; font-weight:bold; margin-top:3pt; margin-bottom:1pt; }
p, dt, dd, pre  { font-size:11pt; margin-top:3pt; margin-bottom:1pt; }
table.lightbg { background-color:#eeeeff; }
table.subtitle { margin-top:6pt; margin-bottom:6pt; }
td { font-size:11pt; }
td.title { font-family: Arial; font-size:19pt; font-weight:bold; text-align:center; background-color:#ccccff; line-height:30pt; }
td.subtitle { font-family: Arial; font-size:13pt; background-color:#ccccff; line-height:20pt; }
td.imdetail { width:100%; background-color:#eeeeff; }
a.membertitle { font-size:12pt; font-weight:bold; line-height:18pt; }
td.imsum_left { width:30%;  }
td.imsum_right { width:70%;  }
td.navimain, a.navimain { text-align:center; font-family: Arial; font-size:12pt; font-weight:bold; }
td.navimainself { text-align:center; font-family: Arial; font-size:12pt; font-weight:bold; color:#ffffff; background-color:#2222ad; }
td.navimainnone { text-align:center; font-family: Arial; font-size:12pt; }
td.attrtitle { font-weight:bold; background-color:#eeeeff; }
td.navisub, a.navisub, td.attrtitle, td.attrvalue { text-align:center; font-family: Arial; font-size:9pt; font-variant:small-caps; }
td.navimain, td.navisub { padding-left:7pt; padding-right:7pt; }
p.raise  { font-size:11pt; margin-top:0pt; text-align:right; padding-right:5pt; }
a.navimain, a.navisub  { color:#000000; }
.dt     { font-weight:bold; }
.namechain  { font-size:13pt; font-weight:bold; margin-top:3pt; margin-bottom:6pt; }
.tpl        { font-size:13pt; margin-top:3pt; margin-bottom:6pt; }
</style>

<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body bgcolor="#ffffff">
<a name="_top_"> </a>
<table border="0" cellpadding="3" class="lightbg">
<tr>
<td class="navimain"><a href="com/sun/star/module-ix.html" class="navimain">Overview</a></td>
<td class="navimain"><a href="module-ix.html" class="navimain">Module</a></td>
<td class="navimainself">Use</td>
<td class="navimainnone">Devguide</td>
<td class="navimain"><a href="index-files/index-1.html" class="navimain">Index</a></td>
</tr>
</table>
<hr>
<table border="0" width="100%" cellpadding="5" cellspacing="3" style="margin-bottom:6pt;">
<tr>
<td class="title">uses of struct FloatingPointBitmapLayout</td>
</tr>
<tr>
<td><p><a href="FloatingPointBitmapLayout.html"><b>back to struct FloatingPointBitmapLayout</b></a><br>
<br>

Derived Structs<br>

Synonym Typedefs<br>

<a href="#Returns">Uses as Return Type<br>

</a>Uses as Parameter<br>

Uses as Data Type<br>

References in Developers Guide<br>

</p>
</td>
</tr>
</table>
<hr>
<a name="Returns"/><table border="1" width="100%" cellpadding="5" cellspacing="0" class="subtitle">
<tr>
<td class="subtitle">Uses as Return Type</td>
</tr>
<tr>
<td>XIeeeDoubleBitmap::<a href="XIeeeDoubleBitmap.html#getMemoryLayout">getMemoryLayout()</a><br>
XIeeeFloatBitmap::<a href="XIeeeFloatBitmap.html#getMemoryLayout">getMemoryLayout()</a><br>
XHalfFloatBitmap::<a href="XHalfFloatBitmap.html#getMemoryLayout">getMemoryLayout()</a><br>
</td>
</tr>
</table>
<hr>
<a href="#_top_">Top of Page</a><hr size="3"><p class="copyright" align="center">Copyright &copy; 2003 Sun Microsystems, Inc.</p>
</body>

</html>
