@:directlyUsed@:src({
@param var instancesInfos:StorageBuffer<Int>;
@param var subMeshesInfos:StorageBuffer<Vec4>;
@const(32) var MATERIAL_COUNT:Int = 1;
@param var materialCommandStart:Array<Vec4,MATERIAL_COUNT>;
var radius:Float;
var lodCount:Int;
var subPartsStart:Int;
var subPartsCount:Int;
function getRadius():Float {
return radius;
};
function getLodCount():Int {
return lodCount;
};
function getSubPartsStart():Int {
return subPartsStart;
};
function getSubPartsCount():Int {
return subPartsCount;
};
function getMaterialCommandStart(materialIndex:Int):Int {
return int(materialCommandStart[materialIndex].x);
};
function init() {
var instanceID = invocID;
var subMeshIndex = instancesInfos[instanceID];
var subMeshInfos = subMeshesInfos[subMeshIndex];
radius = subMeshInfos.x;
lodCount = int(subMeshInfos.y);
subPartsStart = int(subMeshInfos.z);
subPartsCount = int(subMeshInfos.w);
};
})@:build(hxsl.Macros.buildShader())@:autoBuild(hxsl.Macros.buildShader())