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>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_26) on Sun Jun 03 02:18:09 CEST 2012 -->
<TITLE>
GroupStrategy (libgdx API)
</TITLE>

<META NAME="date" CONTENT="2012-06-03">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="GroupStrategy (libgdx API)";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/GroupStrategy.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><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>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/GroupPlug.html" title="interface in com.badlogic.gdx.graphics.g3d.decals"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/PluggableGroupStrategy.html" title="class in com.badlogic.gdx.graphics.g3d.decals"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../index.html?com/badlogic/gdx/graphics/g3d/decals/GroupStrategy.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="GroupStrategy.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
 if(window==top) {
   document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
 }
 //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
com.badlogic.gdx.graphics.g3d.decals</FONT>
<BR>
Interface GroupStrategy</H2>
<DL>
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/CameraGroupStrategy.html" title="class in com.badlogic.gdx.graphics.g3d.decals">CameraGroupStrategy</A>, <A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/DefaultGroupStrategy.html" title="class in com.badlogic.gdx.graphics.g3d.decals">DefaultGroupStrategy</A>, <A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/PluggableGroupStrategy.html" title="class in com.badlogic.gdx.graphics.g3d.decals">PluggableGroupStrategy</A>, <A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/SimpleOrthoGroupStrategy.html" title="class in com.badlogic.gdx.graphics.g3d.decals">SimpleOrthoGroupStrategy</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public interface <B>GroupStrategy</B></DL>
</PRE>

<P>
<p>
 This class provides hooks which are invoked by <A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/DecalBatch.html" title="class in com.badlogic.gdx.graphics.g3d.decals"><CODE>DecalBatch</CODE></A> to evaluate the group a sprite falls into, as well as to
 adjust settings before and after rendering a group.
 </p>
 <p>
 A group is identified by an integer. The <A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/GroupStrategy.html#beforeGroup(int, com.badlogic.gdx.utils.Array)"><CODE>beforeGroup()</CODE></A> method provides the strategy with a list
 of all the decals, which are contained in the group itself, and will be rendered before the associated call to
 <A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/GroupStrategy.html#afterGroup(int)"><CODE>afterGroup(int)</CODE></A>.<br/>
 A call to <code>beforeGroup()</code> is always fallowed by a call to <code>afterGroup()</code>.<br/>
 <b>Groups are always invoked based on their ascending int values</b>. Group -10 will be rendered before group -5, group -5
 before group 0, group 0 before group 6 and so on.<br/>
 The call order for a single flush is always <code>beforeGroups(), beforeGroup1(), afterGroup1(), ... beforeGroupN(),
 afterGroupN(), afterGroups()</code>.
 </p>
 <p>
 The contents of the <code>beforeGroup()</code> call can be modified at will to realize view frustum culling, material & depth
sorting, ... all based on the requirements of the current group. The batch itself does not change OpenGL settings except for
whichever changes are entailed <A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/DecalMaterial.html#set()"><CODE>DecalMaterial.set()</CODE></A>. If the group requires a special shader, blending,
<A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/GroupStrategy.html#getGroupShader(int)"><CODE>getGroupShader(int)</CODE></A> should return it so that DecalBatch can apply it while rendering the group.
</p>
<P>

<P>
<HR>

<P>

<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/GroupStrategy.html#afterGroup(int)">afterGroup</A></B>(int&nbsp;group)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked directly after rendering of a group has completed</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/GroupStrategy.html#afterGroups()">afterGroups</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked after having rendered all groups</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/GroupStrategy.html#beforeGroup(int, com.badlogic.gdx.utils.Array)">beforeGroup</A></B>(int&nbsp;group,
            <A HREF="../../../../../../com/badlogic/gdx/utils/Array.html" title="class in com.badlogic.gdx.utils">Array</A>&lt;<A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/Decal.html" title="class in com.badlogic.gdx.graphics.g3d.decals">Decal</A>&gt;&nbsp;contents)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked directly before rendering the contents of a group</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/GroupStrategy.html#beforeGroups()">beforeGroups</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked before rendering any group</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/GroupStrategy.html#decideGroup(com.badlogic.gdx.graphics.g3d.decals.Decal)">decideGroup</A></B>(<A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/Decal.html" title="class in com.badlogic.gdx.graphics.g3d.decals">Decal</A>&nbsp;decal)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assigns a group to a decal</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../com/badlogic/gdx/graphics/glutils/ShaderProgram.html" title="class in com.badlogic.gdx.graphics.glutils">ShaderProgram</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/GroupStrategy.html#getGroupShader(int)">getGroupShader</A></B>(int&nbsp;group)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the shader to be used for the group.</TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="getGroupShader(int)"><!-- --></A><H3>
getGroupShader</H3>
<PRE>
<A HREF="../../../../../../com/badlogic/gdx/graphics/glutils/ShaderProgram.html" title="class in com.badlogic.gdx.graphics.glutils">ShaderProgram</A> <B>getGroupShader</B>(int&nbsp;group)</PRE>
<DL>
<DD>Returns the shader to be used for the group. Can be null in which case the GroupStrategy doesn't support GLES 2.0
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>group</CODE> - the group
<DT><B>Returns:</B><DD>the <A HREF="../../../../../../com/badlogic/gdx/graphics/glutils/ShaderProgram.html" title="class in com.badlogic.gdx.graphics.glutils"><CODE>ShaderProgram</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="decideGroup(com.badlogic.gdx.graphics.g3d.decals.Decal)"><!-- --></A><H3>
decideGroup</H3>
<PRE>
int <B>decideGroup</B>(<A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/Decal.html" title="class in com.badlogic.gdx.graphics.g3d.decals">Decal</A>&nbsp;decal)</PRE>
<DL>
<DD>Assigns a group to a decal
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>decal</CODE> - Decal to assign group to
<DT><B>Returns:</B><DD>group assigned</DL>
</DD>
</DL>
<HR>

<A NAME="beforeGroup(int, com.badlogic.gdx.utils.Array)"><!-- --></A><H3>
beforeGroup</H3>
<PRE>
void <B>beforeGroup</B>(int&nbsp;group,
                 <A HREF="../../../../../../com/badlogic/gdx/utils/Array.html" title="class in com.badlogic.gdx.utils">Array</A>&lt;<A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/Decal.html" title="class in com.badlogic.gdx.graphics.g3d.decals">Decal</A>&gt;&nbsp;contents)</PRE>
<DL>
<DD>Invoked directly before rendering the contents of a group
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>group</CODE> - Group that will be rendered<DD><CODE>contents</CODE> - List of entries of arrays containing all the decals in the group</DL>
</DD>
</DL>
<HR>

<A NAME="afterGroup(int)"><!-- --></A><H3>
afterGroup</H3>
<PRE>
void <B>afterGroup</B>(int&nbsp;group)</PRE>
<DL>
<DD>Invoked directly after rendering of a group has completed
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>group</CODE> - Group which completed rendering</DL>
</DD>
</DL>
<HR>

<A NAME="beforeGroups()"><!-- --></A><H3>
beforeGroups</H3>
<PRE>
void <B>beforeGroups</B>()</PRE>
<DL>
<DD>Invoked before rendering any group
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="afterGroups()"><!-- --></A><H3>
afterGroups</H3>
<PRE>
void <B>afterGroups</B>()</PRE>
<DL>
<DD>Invoked after having rendered all groups
<P>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/GroupStrategy.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
libgdx API</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/GroupPlug.html" title="interface in com.badlogic.gdx.graphics.g3d.decals"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../com/badlogic/gdx/graphics/g3d/decals/PluggableGroupStrategy.html" title="class in com.badlogic.gdx.graphics.g3d.decals"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../index.html?com/badlogic/gdx/graphics/g3d/decals/GroupStrategy.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="GroupStrategy.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
 if(window==top) {
   document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
 }
 //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

                                <div style="font-size:9pt"><i>
                                Copyright 2010 Mario Zechner (contact@badlogicgames.com), Nathan Sweet (admin@esotericsoftware.com)
                                </i></div>
                       
</BODY>
</HTML>