Package org.lwjgl.vulkan
Class VkShaderCreateInfoEXT
java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkShaderCreateInfoEXT>
org.lwjgl.vulkan.VkShaderCreateInfoEXT
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
public class VkShaderCreateInfoEXT
extends org.lwjgl.system.Struct<VkShaderCreateInfoEXT>
implements org.lwjgl.system.NativeResource
Structure specifying parameters of a newly created shader.
Valid Usage
- If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT,codeSizemust be a multiple of 4 - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT,pCodemust point to valid SPIR-V code, formatted and packed as described by the Khronos SPIR-V Specification - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT,pCodemust adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT,pCodemust declare theShadercapability for SPIR-V code - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT,pCodemust not declare any capability that is not supported by the API, as described by the Capabilities section of the SPIR-V Environment appendix - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, andpCodedeclares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT,pCodemust not declare any SPIR-V extension that is not supported by the API, as described by the Extension section of the SPIR-V Environment appendix - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, andpCodedeclares any of the SPIR-V extensions listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied - If
stageis notSHADER_STAGE_TASK_BIT_EXT,SHADER_STAGE_MESH_BIT_EXT,SHADER_STAGE_VERTEX_BIT,SHADER_STAGE_TESSELLATION_CONTROL_BIT,SHADER_STAGE_TESSELLATION_EVALUATION_BIT,SHADER_STAGE_GEOMETRY_BIT, orSHADER_STAGE_FRAGMENT_BIT,flagsmust not includeSHADER_CREATE_LINK_STAGE_BIT_EXT - If
stageis notSHADER_STAGE_FRAGMENT_BIT,flagsmust not includeSHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT - If the
attachmentFragmentShadingRatefeature is not enabled,flagsmust not includeSHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT - If
stageis notSHADER_STAGE_FRAGMENT_BIT,flagsmust not includeSHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT - If the
fragmentDensityMapfeature is not enabled,flagsmust not includeSHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT - If
flagsincludesSHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, thesubgroupSizeControlfeature must be enabled - If
flagsincludesSHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, thecomputeFullSubgroupsfeature must be enabled - If
flagsincludesSHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT, then theVkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT::deviceGeneratedCommandsfeature must be enabled - If
flagsincludesSHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT, then the identified entry point must not specifyXfbexecution mode - If
flagsincludesSHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT,stagemust be one ofSHADER_STAGE_MESH_BIT_EXT,SHADER_STAGE_TASK_BIT_EXT, orSHADER_STAGE_COMPUTE_BIT - If
stageis notSHADER_STAGE_COMPUTE_BIT,flagsmust not includeSHADER_CREATE_DISPATCH_BASE_BIT_EXT - If
stageis notSHADER_STAGE_MESH_BIT_EXT,flagsmust not includeSHADER_CREATE_NO_TASK_SHADER_BIT_EXT - If
flagsincludes bothSHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXTandSHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, the local workgroup size in the X dimension of the shader must be a multiple ofmaxSubgroupSize - If
flagsincludesSHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXTbut notSHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXTand noVkShaderRequiredSubgroupSizeCreateInfoEXTstructure is included in thepNextchain, the local workgroup size in the X dimension of the shader must be a multiple ofsubgroupSize stagemust not beSHADER_STAGE_ALL_GRAPHICSorSHADER_STAGE_ALL- If the
tessellationShaderfeature is not enabled,stagemust not beSHADER_STAGE_TESSELLATION_CONTROL_BITorSHADER_STAGE_TESSELLATION_EVALUATION_BIT - If the
geometryShaderfeature is not enabled,stagemust not beSHADER_STAGE_GEOMETRY_BIT - If the
taskShaderfeature is not enabled,stagemust not beSHADER_STAGE_TASK_BIT_EXT - If the
meshShaderfeature is not enabled,stagemust not beSHADER_STAGE_MESH_BIT_EXT stagemust not beSHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEIstagemust not beSHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI- If
stageisSHADER_STAGE_VERTEX_BIT,nextStagemust not include any bits other thanSHADER_STAGE_TESSELLATION_CONTROL_BIT,SHADER_STAGE_GEOMETRY_BIT, andSHADER_STAGE_FRAGMENT_BIT - If the
tessellationShaderfeature is not enabled,nextStagemust not includeSHADER_STAGE_TESSELLATION_CONTROL_BITorSHADER_STAGE_TESSELLATION_EVALUATION_BIT - If the
geometryShaderfeature is not enabled,nextStagemust not includeSHADER_STAGE_GEOMETRY_BIT - If
stageisSHADER_STAGE_TESSELLATION_CONTROL_BIT,nextStagemust not include any bits other thanSHADER_STAGE_TESSELLATION_EVALUATION_BIT - If
stageisSHADER_STAGE_TESSELLATION_EVALUATION_BIT,nextStagemust not include any bits other thanSHADER_STAGE_GEOMETRY_BITandSHADER_STAGE_FRAGMENT_BIT - If
stageisSHADER_STAGE_GEOMETRY_BIT,nextStagemust not include any bits other thanSHADER_STAGE_FRAGMENT_BIT - If
stageisSHADER_STAGE_FRAGMENT_BITorSHADER_STAGE_COMPUTE_BIT,nextStagemust be 0 - If
stageisSHADER_STAGE_TASK_BIT_EXT,nextStagemust not include any bits other thanSHADER_STAGE_MESH_BIT_EXT - If
stageisSHADER_STAGE_MESH_BIT_EXT,nextStagemust not include any bits other thanSHADER_STAGE_FRAGMENT_BIT - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT,pNamemust be the name of anOpEntryPointinpCodewith an execution model that matchesstage - If
codeTypeisSHADER_CODE_TYPE_BINARY_EXT,pCodemust be aligned to 16 bytes - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT,pCodemust be aligned to 4 bytes - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variable in its interface that is declared with theClipDistanceBuiltIndecoration, that variable must not have an array size greater thanVkPhysicalDeviceLimits::maxClipDistances - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variable in its interface that is declared with theCullDistanceBuiltIndecoration, that variable must not have an array size greater thanVkPhysicalDeviceLimits::maxCullDistances - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes variables in its interface that are declared with theClipDistanceBuiltIndecoration and variables in its interface that are declared with theCullDistanceBuiltIndecoration, those variables must not have array sizes which sum to more thanVkPhysicalDeviceLimits::maxCombinedClipAndCullDistances - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variable in its interface that is declared with theSampleMaskBuiltIndecoration, that variable must not have an array size greater thanVkPhysicalDeviceLimits::maxSampleMaskWords - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, andstageisSHADER_STAGE_VERTEX_BIT, the identified entry point must not include any input variable in its interface that is decorated withCullDistance - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, andstageisSHADER_STAGE_TESSELLATION_CONTROL_BITorSHADER_STAGE_TESSELLATION_EVALUATION_BIT, and the identified entry point has anOpExecutionModeinstruction specifying a patch size withOutputVertices, the patch size must be greater than 0 and less than or equal toVkPhysicalDeviceLimits::maxTessellationPatchSize - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, andstageisSHADER_STAGE_GEOMETRY_BIT, the identified entry point must have anOpExecutionModeinstruction specifying a maximum output vertex count that is greater than 0 and less than or equal toVkPhysicalDeviceLimits::maxGeometryOutputVertices - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, andstageisSHADER_STAGE_GEOMETRY_BIT, the identified entry point must have anOpExecutionModeinstruction specifying an invocation count that is greater than 0 and less than or equal toVkPhysicalDeviceLimits::maxGeometryShaderInvocations - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, andstageis a pre-rasterization shader stage, and the identified entry point writes toLayerfor any primitive, it must write the same value toLayerfor all vertices of a given primitive - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, andstageis a pre-rasterization shader stage, and the identified entry point writes toViewportIndexfor any primitive, it must write the same value toViewportIndexfor all vertices of a given primitive - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, andstageisSHADER_STAGE_FRAGMENT_BIT, the identified entry point must not include any output variables in its interface decorated withCullDistance - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, andstageisSHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes toFragDepthin any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value ofFragDepth - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, the shader code inpCodemust be valid as described by the Khronos SPIR-V Specification after applying the specializations provided inpSpecializationInfo, if any, and then converting all specialization constants into fixed constants - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, andstageisSHADER_STAGE_TESSELLATION_EVALUATION_BIT,pCodemust contain anOpExecutionModeinstruction specifying the type of subdivision - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, andstageisSHADER_STAGE_TESSELLATION_EVALUATION_BIT,pCodemust contain anOpExecutionModeinstruction specifying the orientation of triangles generated by the tessellator - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, andstageisSHADER_STAGE_TESSELLATION_EVALUATION_BIT,pCodemust contain anOpExecutionModeinstruction specifying the spacing of segments on the edges of tessellated primitives - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, andstageisSHADER_STAGE_TESSELLATION_EVALUATION_BIT,pCodemust contain anOpExecutionModeinstruction specifying the output patch size - Any two elements of
pPushConstantRangesmust not include the same stage instageFlags - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, and if a push constant block is declared in a shader, then an element ofpPushConstantRanges::stageFlagsmust matchstage - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, and if a push constant block is declared in a shader, the block must be contained inside the element ofpPushConstantRangesthat matches the stage - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, and a resource variable is declared in a shader, the corresponding descriptor set inpSetLayoutsmust match the shader stage - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, and a resource variable is declared in a shader, and the descriptor type is notDESCRIPTOR_TYPE_MUTABLE_EXT, the corresponding descriptor set inpSetLayoutsmust match the descriptor type - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, and a resource variable is declared in a shader as an array, the corresponding descriptor set inpSetLayoutsmust match the descriptor count - If
codeTypeisSHADER_CODE_TYPE_SPIRV_EXT, and a resource variable is declared in a shader as an array of descriptors, then the descriptor type of that variable must not beDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_SHADER_CREATE_INFO_EXT- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofVkPipelineShaderStageRequiredSubgroupSizeCreateInfoorVkValidationFeaturesEXT - The
sTypevalue of each struct in thepNextchain must be unique flagsmust be a valid combination ofVkShaderCreateFlagBitsEXTvaluesstagemust be a validVkShaderStageFlagBitsvaluenextStagemust be a valid combination ofVkShaderStageFlagBitsvaluescodeTypemust be a validVkShaderCodeTypeEXTvaluepCodemust be a valid pointer to an array ofcodeSizebytes- If
pNameis notNULL,pNamemust be a null-terminated UTF-8 string - If
setLayoutCountis not 0, andpSetLayoutsis notNULL,pSetLayoutsmust be a valid pointer to an array ofsetLayoutCountvalidVkDescriptorSetLayouthandles - If
pushConstantRangeCountis not 0, andpPushConstantRangesis notNULL,pPushConstantRangesmust be a valid pointer to an array ofpushConstantRangeCountvalidVkPushConstantRangestructures - If
pSpecializationInfois notNULL,pSpecializationInfomust be a valid pointer to a validVkSpecializationInfostructure codeSizemust be greater than 0
See Also
VkPushConstantRange, VkSpecializationInfo, CreateShadersEXT
Layout
struct VkShaderCreateInfoEXT {
VkStructureType sType();
void const * pNext();
VkShaderCreateFlagsEXT flags();
VkShaderStageFlagBits stage();
VkShaderStageFlags nextStage();
VkShaderCodeTypeEXT codeType();
size_t codeSize();
void const * pCode();
char const * pName();
uint32_t setLayoutCount();
VkDescriptorSetLayout const * pSetLayouts();
uint32_t pushConstantRangeCount();
VkPushConstantRange const * pPushConstantRanges();
VkSpecializationInfo const * pSpecializationInfo();
}-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.lwjgl.system.Struct
org.lwjgl.system.Struct.StructValidationNested classes/interfaces inherited from interface org.lwjgl.system.Pointer
org.lwjgl.system.Pointer.Default -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe struct alignment in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct size in bytes.static final intThe struct member offsets.static final intThe struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionVkShaderCreateInfoEXT(ByteBuffer container) Creates aVkShaderCreateInfoEXTinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptionstatic VkShaderCreateInfoEXTcalloc()Returns a newVkShaderCreateInfoEXTinstance allocated withmemCalloc.static VkShaderCreateInfoEXT.Buffercalloc(int capacity) Returns a newVkShaderCreateInfoEXT.Bufferinstance allocated withmemCalloc.static VkShaderCreateInfoEXT.Buffercalloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkShaderCreateInfoEXT.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkShaderCreateInfoEXTcalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkShaderCreateInfoEXTinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.longcodeSize()the size in bytes of the shader code pointed to bepCode.intcodeType()aVkShaderCodeTypeEXTvalue specifying the type of the shader code pointed to bepCode.codeType(int value) Sets the specified value to thecodeType()field.static VkShaderCreateInfoEXTcreate()Returns a newVkShaderCreateInfoEXTinstance allocated withBufferUtils.static VkShaderCreateInfoEXT.Buffercreate(int capacity) Returns a newVkShaderCreateInfoEXT.Bufferinstance allocated withBufferUtils.static VkShaderCreateInfoEXTcreate(long address) Returns a newVkShaderCreateInfoEXTinstance for the specified memory address.static VkShaderCreateInfoEXT.Buffercreate(long address, int capacity) Create aVkShaderCreateInfoEXT.Bufferinstance at the specified memory.static @Nullable VkShaderCreateInfoEXTcreateSafe(long address) static @Nullable VkShaderCreateInfoEXT.BuffercreateSafe(long address, int capacity) intflags()a bitmask ofVkShaderCreateFlagBitsEXTdescribing additional parameters of the shader.flags(int value) Sets the specified value to theflags()field.static VkShaderCreateInfoEXTmalloc()Returns a newVkShaderCreateInfoEXTinstance allocated withmemAlloc.static VkShaderCreateInfoEXT.Buffermalloc(int capacity) Returns a newVkShaderCreateInfoEXT.Bufferinstance allocated withmemAlloc.static VkShaderCreateInfoEXT.Buffermalloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkShaderCreateInfoEXT.Bufferinstance allocated on the specifiedMemoryStack.static VkShaderCreateInfoEXTmalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkShaderCreateInfoEXTinstance allocated on the specifiedMemoryStack.static longncodeSize(long struct) Unsafe version ofcodeSize().static voidncodeSize(long struct, long value) Sets the specified value to thecodeSizefield of the specifiedstruct.static intncodeType(long struct) Unsafe version ofcodeType().static voidncodeType(long struct, int value) Unsafe version ofcodeType.inta bitmask ofVkShaderStageFlagBitsspecifying zero or stages which may be used as a logically next bound stage when drawing with the shader bound.nextStage(int value) Sets the specified value to thenextStage()field.static intnflags(long struct) Unsafe version offlags().static voidnflags(long struct, int value) Unsafe version offlags.static intnnextStage(long struct) Unsafe version ofnextStage().static voidnnextStage(long struct, int value) Unsafe version ofnextStage.static ByteBuffernpCode(long struct) Unsafe version ofpCode.static voidnpCode(long struct, ByteBuffer value) Unsafe version ofpCode.static @Nullable ByteBuffernpName(long struct) Unsafe version ofpName().static voidnpName(long struct, @Nullable ByteBuffer value) Unsafe version ofpName.static @Nullable StringnpNameString(long struct) Unsafe version ofpNameString().static longnpNext(long struct) Unsafe version ofpNext().static voidnpNext(long struct, long value) Unsafe version ofpNext.static @Nullable VkPushConstantRange.BuffernpPushConstantRanges(long struct) Unsafe version ofpPushConstantRanges().static voidnpPushConstantRanges(long struct, @Nullable VkPushConstantRange.Buffer value) Unsafe version ofpPushConstantRanges.static @Nullable LongBuffernpSetLayouts(long struct) Unsafe version ofpSetLayouts.static voidnpSetLayouts(long struct, @Nullable LongBuffer value) Unsafe version ofpSetLayouts.static @Nullable VkSpecializationInfonpSpecializationInfo(long struct) Unsafe version ofpSpecializationInfo().static voidnpSpecializationInfo(long struct, @Nullable VkSpecializationInfo value) Unsafe version ofpSpecializationInfo.static intnpushConstantRangeCount(long struct) Unsafe version ofpushConstantRangeCount().static voidnpushConstantRangeCount(long struct, int value) Sets the specified value to thepushConstantRangeCountfield of the specifiedstruct.static intnsetLayoutCount(long struct) Unsafe version ofsetLayoutCount().static voidnsetLayoutCount(long struct, int value) Sets the specified value to thesetLayoutCountfield of the specifiedstruct.static intnstage(long struct) Unsafe version ofstage().static voidnstage(long struct, int value) Unsafe version ofstage.static intnsType(long struct) Unsafe version ofsType().static voidnsType(long struct, int value) Unsafe version ofsType.pCode()a pointer to the shader code to use to create the shader.pCode(ByteBuffer value) Sets the address of the specifiedByteBufferto thepCode()field.@Nullable ByteBufferpName()a pointer to a null-terminated UTF-8 string specifying the entry point name of the shader for this stage.pName(@Nullable ByteBuffer value) Sets the address of the specified encoded string to thepName()field.@Nullable Stringa pointer to a null-terminated UTF-8 string specifying the entry point name of the shader for this stage.longpNext()NULLor a pointer to a structure extending this structure.pNext(long value) Sets the specified value to thepNext()field.Prepends the specifiedVkPipelineShaderStageRequiredSubgroupSizeCreateInfovalue to thepNextchain.Prepends the specifiedVkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXTvalue to thepNextchain.Prepends the specifiedVkShaderRequiredSubgroupSizeCreateInfoEXTvalue to thepNextchain.pNext(VkValidationFeaturesEXT value) Prepends the specifiedVkValidationFeaturesEXTvalue to thepNextchain.@Nullable VkPushConstantRange.Buffera pointer to an array ofVkPushConstantRangestructures used by the shader stage.pPushConstantRanges(@Nullable VkPushConstantRange.Buffer value) Sets the address of the specifiedVkPushConstantRange.Bufferto thepPushConstantRanges()field.@Nullable LongBuffera pointer to an array ofVkDescriptorSetLayoutobjects used by the shader stage.pSetLayouts(@Nullable LongBuffer value) Sets the address of the specifiedLongBufferto thepSetLayouts()field.@Nullable VkSpecializationInfopSpecializationInfo(@Nullable VkSpecializationInfo value) Sets the address of the specifiedVkSpecializationInfoto thepSpecializationInfo()field.intthe number of push constant ranges pointed to bypPushConstantRanges.pushConstantRangeCount(int value) Sets the specified value to thepushConstantRangeCount()field.set(int sType, long pNext, int flags, int stage, int nextStage, int codeType, ByteBuffer pCode, @Nullable ByteBuffer pName, int setLayoutCount, @Nullable LongBuffer pSetLayouts, int pushConstantRangeCount, @Nullable VkPushConstantRange.Buffer pPushConstantRanges, @Nullable VkSpecializationInfo pSpecializationInfo) Initializes this struct with the specified values.set(VkShaderCreateInfoEXT src) Copies the specified struct data to this struct.intthe number of descriptor set layouts pointed to bypSetLayouts.setLayoutCount(int value) Sets the specified value to thesetLayoutCount()field.intsizeof()intstage()aVkShaderStageFlagBitsvalue specifying a single shader stage.stage(int value) Sets the specified value to thestage()field.intsType()aVkStructureTypevalue identifying this structure.sType(int value) Sets the specified value to thesType()field.Sets theSTRUCTURE_TYPE_SHADER_CREATE_INFO_EXTvalue to thesType()field.static voidvalidate(long struct) Validates pointer members that should not beNULL.Methods inherited from class org.lwjgl.system.Struct
clear, free, isNull, validate, validateMethods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toStringMethods inherited from interface org.lwjgl.system.NativeResource
close, free
-
Field Details
-
SIZEOF
public static final int SIZEOFThe struct size in bytes. -
ALIGNOF
public static final int ALIGNOFThe struct alignment in bytes. -
STYPE
public static final int STYPEThe struct member offsets. -
PNEXT
public static final int PNEXTThe struct member offsets. -
FLAGS
public static final int FLAGSThe struct member offsets. -
STAGE
public static final int STAGEThe struct member offsets. -
NEXTSTAGE
public static final int NEXTSTAGEThe struct member offsets. -
CODETYPE
public static final int CODETYPEThe struct member offsets. -
CODESIZE
public static final int CODESIZEThe struct member offsets. -
PCODE
public static final int PCODEThe struct member offsets. -
PNAME
public static final int PNAMEThe struct member offsets. -
SETLAYOUTCOUNT
public static final int SETLAYOUTCOUNTThe struct member offsets. -
PSETLAYOUTS
public static final int PSETLAYOUTSThe struct member offsets. -
PUSHCONSTANTRANGECOUNT
public static final int PUSHCONSTANTRANGECOUNTThe struct member offsets. -
PPUSHCONSTANTRANGES
public static final int PPUSHCONSTANTRANGESThe struct member offsets. -
PSPECIALIZATIONINFO
public static final int PSPECIALIZATIONINFOThe struct member offsets.
-
-
Constructor Details
-
VkShaderCreateInfoEXT
Creates aVkShaderCreateInfoEXTinstance at the current position of the specifiedByteBuffercontainer. Changes to the buffer's content will be visible to the struct instance and vice versa.The created instance holds a strong reference to the container object.
-
-
Method Details
-
sizeof
public int sizeof()- Specified by:
sizeofin classorg.lwjgl.system.Struct<VkShaderCreateInfoEXT>
-
sType
public int sType()aVkStructureTypevalue identifying this structure. -
pNext
public long pNext()NULLor a pointer to a structure extending this structure. -
flags
public int flags()a bitmask ofVkShaderCreateFlagBitsEXTdescribing additional parameters of the shader. -
stage
public int stage()aVkShaderStageFlagBitsvalue specifying a single shader stage. -
nextStage
public int nextStage()a bitmask ofVkShaderStageFlagBitsspecifying zero or stages which may be used as a logically next bound stage when drawing with the shader bound. -
codeType
public int codeType()aVkShaderCodeTypeEXTvalue specifying the type of the shader code pointed to bepCode. -
codeSize
public long codeSize()the size in bytes of the shader code pointed to bepCode. -
pCode
a pointer to the shader code to use to create the shader. -
pName
a pointer to a null-terminated UTF-8 string specifying the entry point name of the shader for this stage. -
pNameString
a pointer to a null-terminated UTF-8 string specifying the entry point name of the shader for this stage. -
setLayoutCount
public int setLayoutCount()the number of descriptor set layouts pointed to bypSetLayouts. -
pSetLayouts
a pointer to an array ofVkDescriptorSetLayoutobjects used by the shader stage. -
pushConstantRangeCount
public int pushConstantRangeCount()the number of push constant ranges pointed to bypPushConstantRanges. -
pPushConstantRanges
a pointer to an array ofVkPushConstantRangestructures used by the shader stage. -
pSpecializationInfo
-
sType
Sets the specified value to thesType()field. -
sType$Default
Sets theSTRUCTURE_TYPE_SHADER_CREATE_INFO_EXTvalue to thesType()field. -
pNext
Sets the specified value to thepNext()field. -
pNext
Prepends the specifiedVkPipelineShaderStageRequiredSubgroupSizeCreateInfovalue to thepNextchain. -
pNext
Prepends the specifiedVkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkShaderRequiredSubgroupSizeCreateInfoEXTvalue to thepNextchain. -
pNext
Prepends the specifiedVkValidationFeaturesEXTvalue to thepNextchain. -
flags
Sets the specified value to theflags()field. -
stage
Sets the specified value to thestage()field. -
nextStage
Sets the specified value to thenextStage()field. -
codeType
Sets the specified value to thecodeType()field. -
pCode
Sets the address of the specifiedByteBufferto thepCode()field. -
pName
Sets the address of the specified encoded string to thepName()field. -
setLayoutCount
Sets the specified value to thesetLayoutCount()field. -
pSetLayouts
Sets the address of the specifiedLongBufferto thepSetLayouts()field. -
pushConstantRangeCount
Sets the specified value to thepushConstantRangeCount()field. -
pPushConstantRanges
Sets the address of the specifiedVkPushConstantRange.Bufferto thepPushConstantRanges()field. -
pSpecializationInfo
Sets the address of the specifiedVkSpecializationInfoto thepSpecializationInfo()field. -
set
public VkShaderCreateInfoEXT set(int sType, long pNext, int flags, int stage, int nextStage, int codeType, ByteBuffer pCode, @Nullable ByteBuffer pName, int setLayoutCount, @Nullable LongBuffer pSetLayouts, int pushConstantRangeCount, @Nullable VkPushConstantRange.Buffer pPushConstantRanges, @Nullable VkSpecializationInfo pSpecializationInfo) Initializes this struct with the specified values. -
set
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
Returns a newVkShaderCreateInfoEXTinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkShaderCreateInfoEXTinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkShaderCreateInfoEXTinstance allocated withBufferUtils. -
create
Returns a newVkShaderCreateInfoEXTinstance for the specified memory address. -
createSafe
-
malloc
Returns a newVkShaderCreateInfoEXT.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkShaderCreateInfoEXT.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkShaderCreateInfoEXT.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkShaderCreateInfoEXT.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
-
malloc
Returns a newVkShaderCreateInfoEXTinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newVkShaderCreateInfoEXTinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
Returns a newVkShaderCreateInfoEXT.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
Returns a newVkShaderCreateInfoEXT.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
nsType
public static int nsType(long struct) Unsafe version ofsType(). -
npNext
public static long npNext(long struct) Unsafe version ofpNext(). -
nflags
public static int nflags(long struct) Unsafe version offlags(). -
nstage
public static int nstage(long struct) Unsafe version ofstage(). -
nnextStage
public static int nnextStage(long struct) Unsafe version ofnextStage(). -
ncodeType
public static int ncodeType(long struct) Unsafe version ofcodeType(). -
ncodeSize
public static long ncodeSize(long struct) Unsafe version ofcodeSize(). -
npCode
Unsafe version ofpCode. -
npName
Unsafe version ofpName(). -
npNameString
Unsafe version ofpNameString(). -
nsetLayoutCount
public static int nsetLayoutCount(long struct) Unsafe version ofsetLayoutCount(). -
npSetLayouts
Unsafe version ofpSetLayouts. -
npushConstantRangeCount
public static int npushConstantRangeCount(long struct) Unsafe version ofpushConstantRangeCount(). -
npPushConstantRanges
Unsafe version ofpPushConstantRanges(). -
npSpecializationInfo
Unsafe version ofpSpecializationInfo(). -
nsType
public static void nsType(long struct, int value) Unsafe version ofsType. -
npNext
public static void npNext(long struct, long value) Unsafe version ofpNext. -
nflags
public static void nflags(long struct, int value) Unsafe version offlags. -
nstage
public static void nstage(long struct, int value) Unsafe version ofstage. -
nnextStage
public static void nnextStage(long struct, int value) Unsafe version ofnextStage. -
ncodeType
public static void ncodeType(long struct, int value) Unsafe version ofcodeType. -
ncodeSize
public static void ncodeSize(long struct, long value) Sets the specified value to thecodeSizefield of the specifiedstruct. -
npCode
Unsafe version ofpCode. -
npName
Unsafe version ofpName. -
nsetLayoutCount
public static void nsetLayoutCount(long struct, int value) Sets the specified value to thesetLayoutCountfield of the specifiedstruct. -
npSetLayouts
Unsafe version ofpSetLayouts. -
npushConstantRangeCount
public static void npushConstantRangeCount(long struct, int value) Sets the specified value to thepushConstantRangeCountfield of the specifiedstruct. -
npPushConstantRanges
Unsafe version ofpPushConstantRanges. -
npSpecializationInfo
Unsafe version ofpSpecializationInfo. -
validate
public static void validate(long struct) Validates pointer members that should not beNULL.- Parameters:
struct- the struct to validate
-