Package icyllis.arc3d.granite.geom
Class SDFRectGeoProc
java.lang.Object
icyllis.arc3d.granite.GeometryStep
icyllis.arc3d.granite.geom.SDFRectGeoProc
Generates rectangle geometric primitive, uses instanced rendering.
Signed distance function (exact):
float sdBox(vec2 p, vec2 b) {
vec2 q = abs(p)-b;
return length(max(q,0.0)) + min(max(q.x,q.y),0.0);
}
Descriptor:
- 0-1 bits: use distance-to-edge antialiasing
- 1-2 bits: fill/stroke
- 2-3 bits: use instanced view matrix
struct Instance {
ubyte4/float4 color; // premultiplied color
float4 box; // rectangle (radius x, center x, radius y, center y) in local space
float2 stroke; // optional (stroke radius, stroke position)
float3 viewMatrix[3]; // optional view matrix
}
-
Nested Class Summary
Nested classes/interfaces inherited from class icyllis.arc3d.granite.GeometryStep
GeometryStep.ProgramImpl -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final VertexInputLayout.Attributestatic final VertexInputLayout.AttributePer-instance attributes.static final intstatic final intstatic final intstatic final VertexInputLayout.AttributeSetstatic final VertexInputLayout.AttributePer-vertex attributes.static final VertexInputLayout.Attributestatic final VertexInputLayout.AttributeSetstatic final VertexInputLayout.AttributeFields inherited from class icyllis.arc3d.granite.GeometryStep
DEPTH, FLAG_EMIT_COVERAGE, FLAG_EMIT_PRIMITIVE_COLOR, FLAG_HANDLE_SOLID_COLOR, FLAG_HAS_TEXTURES, FLAG_OUTSET_BOUNDS_FOR_AA, FLAG_PERFORM_SHADING, MODEL_VIEW, SOLID_COLOR -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAppends a key on the KeyBuilder that reflects any variety in the code that the geometry processor subclass can emit.makeProgramImpl(ShaderCaps caps) Returns a new instance of the appropriate implementation class for the given GeometryProcessor.Methods inherited from class icyllis.arc3d.granite.GeometryStep
appendAttributesToKey, depthStencilFlags, depthStencilSettings, emitFragmentColorCode, emitFragmentCoverageCode, emitSamplers, emitsCoverage, emitsPrimitiveColor, emitUniforms, emitVaryings, emitVertexGeomCode, getInputLayout, handlesSolidColor, hasInstanceAttributes, hasVertexAttributes, instanceAttributes, instanceBinding, instanceStride, makeColorAttribute, name, numInstanceAttributes, numInstanceLocations, numTextureSamplers, numVertexAttributes, numVertexLocations, performsShading, primitiveType, textureSamplerState, textureSamplerSwizzle, uniqueID, vertexAttributes, vertexBinding, vertexStride, writeMesh, writeUniformsAndTextures
-
Field Details
-
POSITION
Per-vertex attributes. -
COLOR
Per-instance attributes. -
BOX
-
STROKE
-
VIEW_MATRIX
-
VERTEX_ATTRIBS
-
INSTANCE_ATTRIBS
-
FLAG_ANTIALIASING
public static final int FLAG_ANTIALIASING- See Also:
-
FLAG_STROKE
public static final int FLAG_STROKE- See Also:
-
FLAG_INSTANCED_MATRIX
public static final int FLAG_INSTANCED_MATRIX- See Also:
-
-
Constructor Details
-
SDFRectGeoProc
public SDFRectGeoProc(int flags)
-
-
Method Details
-
appendToKey
Description copied from class:GeometryStepAppends a key on the KeyBuilder that reflects any variety in the code that the geometry processor subclass can emit.- Specified by:
appendToKeyin classGeometryStep- See Also:
-
makeProgramImpl
Description copied from class:GeometryStepReturns a new instance of the appropriate implementation class for the given GeometryProcessor. This method is called only when the specified key does not exist in the program cache.- Specified by:
makeProgramImplin classGeometryStep- See Also:
-