com.threerings.opengl.material.config
Class TechniqueConfig

java.lang.Object
  extended by com.threerings.util.DeepObject
      extended by com.threerings.opengl.material.config.TechniqueConfig
All Implemented Interfaces:
Exportable, Copyable, Cloneable

public class TechniqueConfig
extends DeepObject
implements Exportable

Represents a single technique for rendering a material.


Nested Class Summary
static class TechniqueConfig.CompoundEnqueuer
          Invokes some number of sub-enqueuers.
static class TechniqueConfig.Enqueuer
          Represents the manner in which we enqueue the technique's batches.
static class TechniqueConfig.EnqueuerWrapper
          Wraps another enqueuer.
static class TechniqueConfig.GroupedEnqueuer
          Invokes some number of sub-enqueuers within a group.
static class TechniqueConfig.NormalEnqueuer
          Enqueues a single batch at a configurable priority.
static class TechniqueConfig.RenderEffectDependency
          A dependency on a render effect.
static class TechniqueConfig.SkipColorClearDependency
          A "dependency" that lets the compositor know that it can skip the color clear, because if we render something using this technique, then we know that we will be writing over all pixels.
static class TechniqueConfig.StateContainer
          A simple container for a set of states.
static class TechniqueConfig.StencilReflectionDependency
          A dependency on a stencil reflection.
static class TechniqueConfig.StencilRefractionDependency
          A dependency on a stencil refraction.
static class TechniqueConfig.TechniqueDependency
          Represents a dependency that must be resolved when rendering.
 
Field Summary
 DeformerConfig deformer
          The deformer to apply to the geometry.
 TechniqueConfig.TechniqueDependency[] dependencies
          Basic material dependencies.
 TechniqueConfig.Enqueuer enqueuer
          Determines what we actually enqueue for this technique.
 boolean receivesProjections
          Whether or not this technique receives projections.
 String scheme
          The render scheme with which this technique is associated.
 
Constructor Summary
TechniqueConfig()
           
 
Method Summary
 Compositable createCompositable(GlContext ctx, Scope scope, Geometry geometry)
          Creates a compositable to render the supplied geometry using this technique.
 Compositable createCompositable(GlContext ctx, Scope scope, Geometry geometry, RenderQueue.Group group)
          Creates a compositable to render the supplied geometry using this technique.
 PassDescriptor[] getDescriptors(GlContext ctx)
          Returns the cached descriptors for this technique's passes.
 RenderSchemeConfig getSchemeConfig(GlContext ctx)
          Returns the cached configuration for the technique's render scheme.
 void getUpdateReferences(ConfigReferenceSet refs)
          Adds the technique's update references to the provided set.
 void invalidate()
          Invalidates any cached state for this config.
 boolean isSupported(GlContext ctx, boolean fallback)
          Determines whether this technique is supported.
 TechniqueConfig process(GlContext ctx, boolean fallback)
          Processes this technique to accommodate the features of the hardware.
 
Methods inherited from class com.threerings.util.DeepObject
clone, copy, copy, equals, hashCode, toString
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

scheme

@Editable(editor="config",
          mode="render_scheme",
          nullable=true,
          hgroup="s")
public String scheme
The render scheme with which this technique is associated.


receivesProjections

@Editable(hgroup="s")
public boolean receivesProjections
Whether or not this technique receives projections.


dependencies

@Editable
public TechniqueConfig.TechniqueDependency[] dependencies
Basic material dependencies.


deformer

@Editable(nullable=true)
public DeformerConfig deformer
The deformer to apply to the geometry.


enqueuer

@Editable
public TechniqueConfig.Enqueuer enqueuer
Determines what we actually enqueue for this technique.

Constructor Detail

TechniqueConfig

public TechniqueConfig()
Method Detail

getUpdateReferences

public void getUpdateReferences(ConfigReferenceSet refs)
Adds the technique's update references to the provided set.


process

public TechniqueConfig process(GlContext ctx,
                               boolean fallback)
Processes this technique to accommodate the features of the hardware.

Returns:
the processed technique, or null if the technique is not supported.

isSupported

public boolean isSupported(GlContext ctx,
                           boolean fallback)
Determines whether this technique is supported.


getSchemeConfig

public RenderSchemeConfig getSchemeConfig(GlContext ctx)
Returns the cached configuration for the technique's render scheme.


getDescriptors

public PassDescriptor[] getDescriptors(GlContext ctx)
Returns the cached descriptors for this technique's passes.


createCompositable

public Compositable createCompositable(GlContext ctx,
                                       Scope scope,
                                       Geometry geometry)
Creates a compositable to render the supplied geometry using this technique.


createCompositable

public Compositable createCompositable(GlContext ctx,
                                       Scope scope,
                                       Geometry geometry,
                                       RenderQueue.Group group)
Creates a compositable to render the supplied geometry using this technique.


invalidate

public void invalidate()
Invalidates any cached state for this config.



Copyright © 2011. All Rights Reserved.