Aviatrix3D
2.0 Dev

org.j3d.aviatrix3d.pipeline.graphics
Class StateSortStage

java.lang.Object
  extended byorg.j3d.aviatrix3d.pipeline.graphics.BaseSortStage
      extended byorg.j3d.aviatrix3d.pipeline.graphics.BaseStateSortStage
          extended byorg.j3d.aviatrix3d.pipeline.graphics.StateSortStage
All Implemented Interfaces:
GraphicsSortStage

public class StateSortStage
extends BaseStateSortStage

Implementation of the sort stage that does nothing.

The sort stage just takes the given nodes and expands them into an array renders and then immediately pops the node. No sorting on output is done.

Version:
$Revision: 3.3 $
Author:
Justin Couch

Field Summary
 
Fields inherited from class org.j3d.aviatrix3d.pipeline.graphics.BaseStateSortStage
clipTmp, currentAppearance, currentBlendAttr, currentClipPlanes, currentDepthAttr, currentFog, currentFragShader, currentLights, currentLineAttr, currentMaterial, currentPointAttr, currentPolyAttr, currentShader, currentShaderArgs, currentShaderProgram, currentStencilAttr, currentTextures, currentVtxShader, GUESS_NUM_COMPONENTS, keepClipPlanes, keepLights, lightIdMap, lightTmp, newClipPlanes, newLights, numTextures, oldClipPlanes, oldLights, stateComparator, TEX_IDS, textureTmp
 
Fields inherited from class org.j3d.aviatrix3d.pipeline.graphics.BaseSortStage
commandList, instructionMap, lastGlobalId, LIST_START_SIZE, terminate
 
Constructor Summary
StateSortStage()
          Create an empty sorting stage that assumes just a single renderable output.
StateSortStage(int numSurfaces)
          Create an empty sorting stage that initialises the internal structures to assume that there is a minumum number of surfaces, both on and offscreen.
 
Method Summary
protected  int estimateInstructionSize(MultipassRenderBucket scene)
          Estimate the required size of the instruction list needed for this scene to be processed.
protected  int estimateInstructionSize(SceneRenderBucket scene)
          Estimate the required size of the instruction list needed for this scene to be processed.
protected  int sortNodes(GraphicsCullOutputDetails[] nodes, int numNodes, GraphicsEnvironmentData data, GraphicsInstructions instr, int instrCount, int buffer)
          Sort a single set of nodes into the output details of a single layer of a single viewport and place in the provided GraphicsInstructions instance.
 
Methods inherited from class org.j3d.aviatrix3d.pipeline.graphics.BaseStateSortStage
appendClipPlanes, appendLights, appendObject, cleanupObjects, cleanupVisuals, updateBlendAttribs, updateDepthAttribs, updateFog, updateLineAttribs, updateMaterial, updatePointAttribs, updatePolyAttribs, updateShader, updateStencilAttribs, updateTextures
 
Methods inherited from class org.j3d.aviatrix3d.pipeline.graphics.BaseSortStage
halt, realloc, setSortedGeometryReceiver, sort
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StateSortStage

public StateSortStage()
Create an empty sorting stage that assumes just a single renderable output.


StateSortStage

public StateSortStage(int numSurfaces)
Create an empty sorting stage that initialises the internal structures to assume that there is a minumum number of surfaces, both on and offscreen.

Method Detail

sortNodes

protected int sortNodes(GraphicsCullOutputDetails[] nodes,
                        int numNodes,
                        GraphicsEnvironmentData data,
                        GraphicsInstructions instr,
                        int instrCount,
                        int buffer)
Sort a single set of nodes into the output details of a single layer of a single viewport and place in the provided GraphicsInstructions instance. The implementation of this method should only concern itself with this set of nodes and not worry about dealing with nested scenes or other viewports.

Specified by:
sortNodes in class BaseSortStage
Parameters:
nodes - The list of nodes to perform sorting on
numNodes - The number of valid items in the nodes array
data - The environment data used during sorting
instr - Instruction instant to put the details into
instrCount - Offset of current number of valid instructions
buffer - The buffer ID to use to output the data to when multi-threaded
Returns:
The current instruction count after sorting

estimateInstructionSize

protected int estimateInstructionSize(SceneRenderBucket scene)
Estimate the required size of the instruction list needed for this scene to be processed. This is an initial rough estimate that will be used to make sure the arrays are at least big enough to start with. There is no issue if this underestimates, as most sorting will continually check and resize as needed. However, each resize is costly, so the closer this can be to estimating the real size, the better for performance.

Specified by:
estimateInstructionSize in class BaseSortStage
Parameters:
scene - The scene bucket to use for the source
Returns:
A greater than zero value

estimateInstructionSize

protected int estimateInstructionSize(MultipassRenderBucket scene)
Estimate the required size of the instruction list needed for this scene to be processed. This is an initial rough estimate that will be used to make sure the arrays are at least big enough to start with. There is no issue if this underestimates, as most sorting will continually check and resize as needed. However, each resize is costly, so the closer this can be to estimating the real size, the better for performance.

Specified by:
estimateInstructionSize in class BaseSortStage
Parameters:
scene - The scene bucket to use for the source
Returns:
A greater than zero value

Aviatrix3D
2.0 Dev

Latest Info from http://aviatrix3d.j3d.org/
Copyright © 2003 - 2005 j3d.org