<!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:
</li>
<li>Nested
|
</li>
<li>Field
|
</li>
<li><a href="#constructor_summary">Constr
</a> |
</li>
<li><a href="#method_summary">Method
</a></li>
</ul>
<ul class="subNavList">
<li>Detail:
</li>
<li>Field
|
</li>
<li><a href="#constructor_detail">Constr
</a> |
</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"> </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
isStatic,
int
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
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"> </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> </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> </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[]
indices,
int
offset,
int
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
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
IndexBufferObject(boolean
isStatic,
int
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
IndexBufferObject(int
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
int
getNumIndices()
</pre>
<dl>
<dt><strong>Specified by:
</strong></dt>
<dd><code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html#getNumIndices()">getNumIndices
</a></code> in interface
<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
int
getNumMaxIndices()
</pre>
<dl>
<dt><strong>Specified by:
</strong></dt>
<dd><code><a href="../../../../../com/badlogic/gdx/graphics/glutils/IndexData.html#getNumMaxIndices()">getNumMaxIndices
</a></code> in interface
<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
void
setIndices(short[]
indices,
int
offset,
int
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> in interface
<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
java.nio.ShortBuffer
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> in interface
<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
void
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> in interface
<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
void
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> in interface
<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
void
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> in interface
<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
void
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> in interface
<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> in interface
<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:
</li>
<li>Nested
|
</li>
<li>Field
|
</li>
<li><a href="#constructor_summary">Constr
</a> |
</li>
<li><a href="#method_summary">Method
</a></li>
</ul>
<ul class="subNavList">
<li>Detail:
</li>
<li>Field
|
</li>
<li><a href="#constructor_detail">Constr
</a> |
</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
© 2010-2013 Mario Zechner (contact@badlogicgames.com), Nathan Sweet (admin@esotericsoftware.com)
</i></div>
</small></p>
</body>
</html>