Package icyllis.arc3d.granite
Class DrawPass
java.lang.Object
icyllis.arc3d.granite.DrawPass
- All Implemented Interfaces:
AutoCloseable
A draw pass represents a render pass, with limited and sorted draw commands.
Created immutable.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classThe sorting is used to minimize state change. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final Stringstatic final intstatic final Stringstatic final intAn invalid index forUniformTracker, also for pipeline index.static final intDepth buffer is 16-bit, ensure no overflow. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()booleanexecute(CommandBuffer commandBuffer) intstatic @Nullable DrawPassmake(RecordingContext context, it.unimi.dsi.fastutil.objects.ObjectArrayList<Draw> drawList, int numSteps, @RawPtr ImageViewProxy targetView, ImageInfo deviceInfo) Backing store's width/height may not equal to device's width/height, currently we use the backing dimensions for scissor and viewport.booleanprepare(ResourceProvider resourceProvider, RenderPassDesc renderPassDesc)
-
Field Details
-
GEOMETRY_UNIFORM_BLOCK_BINDING
public static final int GEOMETRY_UNIFORM_BLOCK_BINDING- See Also:
-
FRAGMENT_UNIFORM_BLOCK_BINDING
public static final int FRAGMENT_UNIFORM_BLOCK_BINDING- See Also:
-
GEOMETRY_UNIFORM_BLOCK_NAME
- See Also:
-
FRAGMENT_UNIFORM_BLOCK_NAME
- See Also:
-
MAX_RENDER_STEPS
public static final int MAX_RENDER_STEPSDepth buffer is 16-bit, ensure no overflow. The theoretic max for this value is 65535, but we see markedly better performance with smaller values- See Also:
-
INVALID_INDEX
public static final int INVALID_INDEXAn invalid index forUniformTracker, also for pipeline index.- See Also:
-
-
Method Details
-
make
public static @Nullable DrawPass make(RecordingContext context, it.unimi.dsi.fastutil.objects.ObjectArrayList<Draw> drawList, int numSteps, @RawPtr @RawPtr ImageViewProxy targetView, ImageInfo deviceInfo) Backing store's width/height may not equal to device's width/height, currently we use the backing dimensions for scissor and viewport. All the parameters are raw pointers and read-only.The first uniform variable in geometry block must be a projection vector, see
PipelineBuilder. -
getBounds
-
getDepthStencilFlags
public int getDepthStencilFlags() -
getCommandList
-
prepare
-
execute
-
close
public void close()- Specified by:
closein interfaceAutoCloseable
-