Subversion Repositories AndroidProjects

Rev

Blame | Last modification | View Log | RSS feed

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_17) on Sun Nov 03 15:35:46 CET 2013 -->
<title>IndexBufferObject (libgdx API)</title>
<meta name="date" content="2013-11-03">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
   if (location.href.indexOf('is-external=true') == -1) {
       parent.document.title="IndexBufferObject (libgdx API)";
   }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/IndexBufferObject.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em>
                                libgdx API
                                <style>
                                body, td, th { font-family:Helvetica, Tahoma, Arial, sans-serif; font-size:10pt }
                                pre, code, tt { font-size:9pt; font-family:Lucida Console, Courier New, sans-serif }
                                h1, h2, h3, .FrameTitleFont, .FrameHeadingFont, .TableHeadingColor font { font-size:105%;  font-weight:bold }
                                .TableHeadingColor { background:#EEEEFF; }
                                a { text-decoration:none }
                                a:hover { text-decoration:underline }
                                a:link, a:visited { color:blue }
                                table { border:0px }
                                .TableRowColor td:first-child { border-left:1px solid black }
                                .TableRowColor td { border:0px; border-bottom:1px solid black; border-right:1px solid black }
                                hr { border:0px; border-bottom:1px solid #333366; }
                                </style>
                        </em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexArray.html" title="class in com.badlogic.gdx.graphics.glutils"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObjectSubData.html" title="class in com.badlogic.gdx.graphics.glutils"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?com/badlogic/gdx/graphics/glutils/IndexBufferObject.html" target="_top">Frames</a></li>
<li><a href="IndexBufferObject.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
 allClassesLink = document.getElementById("allclasses_navbar_top");
 if(window==top) {
   allClassesLink.style.display = "block";
 }
 else {
   allClassesLink.style.display = "none";
 }
 //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.badlogic.gdx.graphics.glutils</div>
<h2 title="Class IndexBufferObject" class="title">Class IndexBufferObject</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>com.badlogic.gdx.graphics.glutils.IndexBufferObject</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html" title="interface in com.badlogic.gdx.graphics.glutils">IndexData</a>, <a href="../../../../../com/badlogic/gdx/utils/Disposable.html" title="interface in com.badlogic.gdx.utils">Disposable</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">IndexBufferObject</span>
extends java.lang.Object
implements <a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html" title="interface in com.badlogic.gdx.graphics.glutils">IndexData</a></pre>
<div class="block"><p>
 In IndexBufferObject wraps OpenGL's index buffer functionality to be used in conjunction with VBOs. This class can be
 seamlessly used with OpenGL ES 1.x and 2.0.
 </p>
 
 <p>
 Uses indirect Buffers on Android 1.5/1.6 to fix GC invocation due to leaking PlatformAddress instances.
 </p>
 
 <p>
 You can also use this to store indices for vertex arrays. Do not call <a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#bind()"><code>bind()</code></a> or <a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#unbind()"><code>unbind()</code></a> in this case but
 rather use <a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#getBuffer()"><code>getBuffer()</code></a> to use the buffer directly with glDrawElements. You must also create the IndexBufferObject with
 the second constructor and specify isDirect as true as glDrawElements in conjunction with vertex arrays needs direct buffers.
 </p>
 
 <p>
 VertexBufferObjects must be disposed via the <a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#dispose()"><code>dispose()</code></a> method when no longer needed
 </p></div>
<dl><dt><span class="strong">Author:</span></dt>
  <dd>mzechner</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#IndexBufferObject(boolean, int)">IndexBufferObject</a></strong>(boolean&nbsp;isStatic,
                 int&nbsp;maxIndices)</code>
<div class="block">Creates a new IndexBufferObject.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#IndexBufferObject(int)">IndexBufferObject</a></strong>(int&nbsp;maxIndices)</code>
<div class="block">Creates a new IndexBufferObject to be used with vertex arrays.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#bind()">bind</a></strong>()</code>
<div class="block">Binds this IndexBufferObject for rendering with glDrawElements.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#dispose()">dispose</a></strong>()</code>
<div class="block">Disposes this IndexBufferObject and all its associated OpenGL resources.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.nio.ShortBuffer</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#getBuffer()">getBuffer</a></strong>()</code>
<div class="block">
 Returns the underlying ShortBuffer.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#getNumIndices()">getNumIndices</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#getNumMaxIndices()">getNumMaxIndices</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#invalidate()">invalidate</a></strong>()</code>
<div class="block">Invalidates the IndexBufferObject so a new OpenGL buffer handle is created.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#setIndices(short[], int, int)">setIndices</a></strong>(short[]&nbsp;indices,
          int&nbsp;offset,
          int&nbsp;count)</code>
<div class="block">
 Sets the indices of this IndexBufferObject, discarding the old indices.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#unbind()">unbind</a></strong>()</code>
<div class="block">Unbinds this IndexBufferObject.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="IndexBufferObject(boolean, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>IndexBufferObject</h4>
<pre>public&nbsp;IndexBufferObject(boolean&nbsp;isStatic,
                 int&nbsp;maxIndices)</pre>
<div class="block">Creates a new IndexBufferObject.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>isStatic</code> - whether the index buffer is static</dd><dd><code>maxIndices</code> - the maximum number of indices this buffer can hold</dd></dl>
</li>
</ul>
<a name="IndexBufferObject(int)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>IndexBufferObject</h4>
<pre>public&nbsp;IndexBufferObject(int&nbsp;maxIndices)</pre>
<div class="block">Creates a new IndexBufferObject to be used with vertex arrays.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>maxIndices</code> - the maximum number of indices this buffer can hold</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getNumIndices()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumIndices</h4>
<pre>public&nbsp;int&nbsp;getNumIndices()</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html#getNumIndices()">getNumIndices</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html" title="interface in com.badlogic.gdx.graphics.glutils">IndexData</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the number of indices currently stored in this buffer</dd></dl>
</li>
</ul>
<a name="getNumMaxIndices()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumMaxIndices</h4>
<pre>public&nbsp;int&nbsp;getNumMaxIndices()</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html#getNumMaxIndices()">getNumMaxIndices</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html" title="interface in com.badlogic.gdx.graphics.glutils">IndexData</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the maximum number of indices this IndexBufferObject can store.</dd></dl>
</li>
</ul>
<a name="setIndices(short[], int, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setIndices</h4>
<pre>public&nbsp;void&nbsp;setIndices(short[]&nbsp;indices,
              int&nbsp;offset,
              int&nbsp;count)</pre>
<div class="block"><p>
 Sets the indices of this IndexBufferObject, discarding the old indices. The count must equal the number of indices to be
 copied to this IndexBufferObject.
 </p>
 
 <p>
 This can be called in between calls to <a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#bind()"><code>bind()</code></a> and <a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#unbind()"><code>unbind()</code></a>. The index data will be updated instantly.
 </p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html#setIndices(short[], int, int)">setIndices</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html" title="interface in com.badlogic.gdx.graphics.glutils">IndexData</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>indices</code> - the vertex data</dd><dd><code>offset</code> - the offset to start copying the data from</dd><dd><code>count</code> - the number of shorts to copy</dd></dl>
</li>
</ul>
<a name="getBuffer()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBuffer</h4>
<pre>public&nbsp;java.nio.ShortBuffer&nbsp;getBuffer()</pre>
<div class="block"><p>
 Returns the underlying ShortBuffer. If you modify the buffer contents they wil be uploaded on the call to <a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#bind()"><code>bind()</code></a>.
 If you need immediate uploading use <a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObject.html#setIndices(short[], int, int)"><code>setIndices(short[], int, int)</code></a>.
 </p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html#getBuffer()">getBuffer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html" title="interface in com.badlogic.gdx.graphics.glutils">IndexData</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the underlying short buffer.</dd></dl>
</li>
</ul>
<a name="bind()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>bind</h4>
<pre>public&nbsp;void&nbsp;bind()</pre>
<div class="block">Binds this IndexBufferObject for rendering with glDrawElements.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html#bind()">bind</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html" title="interface in com.badlogic.gdx.graphics.glutils">IndexData</a></code></dd>
</dl>
</li>
</ul>
<a name="unbind()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unbind</h4>
<pre>public&nbsp;void&nbsp;unbind()</pre>
<div class="block">Unbinds this IndexBufferObject.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html#unbind()">unbind</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html" title="interface in com.badlogic.gdx.graphics.glutils">IndexData</a></code></dd>
</dl>
</li>
</ul>
<a name="invalidate()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invalidate</h4>
<pre>public&nbsp;void&nbsp;invalidate()</pre>
<div class="block">Invalidates the IndexBufferObject so a new OpenGL buffer handle is created. Use this in case of a context loss.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html#invalidate()">invalidate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html" title="interface in com.badlogic.gdx.graphics.glutils">IndexData</a></code></dd>
</dl>
</li>
</ul>
<a name="dispose()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>dispose</h4>
<pre>public&nbsp;void&nbsp;dispose()</pre>
<div class="block">Disposes this IndexBufferObject and all its associated OpenGL resources.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html#dispose()">dispose</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html" title="interface in com.badlogic.gdx.graphics.glutils">IndexData</a></code></dd>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../com/badlogic/gdx/utils/Disposable.html#dispose()">dispose</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/badlogic/gdx/utils/Disposable.html" title="interface in com.badlogic.gdx.utils">Disposable</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/IndexBufferObject.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em>libgdx API</em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexArray.html" title="class in com.badlogic.gdx.graphics.glutils"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexBufferObjectSubData.html" title="class in com.badlogic.gdx.graphics.glutils"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?com/badlogic/gdx/graphics/glutils/IndexBufferObject.html" target="_top">Frames</a></li>
<li><a href="IndexBufferObject.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
 allClassesLink = document.getElementById("allclasses_navbar_bottom");
 if(window==top) {
   allClassesLink.style.display = "block";
 }
 else {
   allClassesLink.style.display = "none";
 }
 //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>
                                <div style="font-size:9pt"><i>
                                Copyright &copy; 2010-2013 Mario Zechner (contact@badlogicgames.com), Nathan Sweet (admin@esotericsoftware.com)
                                </i></div>
                        </small></p>
</body>
</html>