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
Modifier and TypeClassDescriptionstatic final class
The sorting is used to minimize state change. -
Field Summary
Modifier and TypeFieldDescriptionstatic final int
static final String
static final int
static final String
static final int
An invalid index forUniformTracker
, also for pipeline index.static final int
Depth buffer is 16-bit, ensure no overflow. -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
boolean
execute
(CommandBuffer commandBuffer) int
static DrawPass
make
(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.boolean
prepare
(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
@Nullable public static 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:
close
in interfaceAutoCloseable
-