You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.1 KiB
39 lines
1.1 KiB
using Unity.Burst; |
|
using Unity.Collections; |
|
using Unity.Jobs; |
|
using Unity.Mathematics; |
|
|
|
namespace UnityEngine.Rendering.Universal |
|
{ |
|
[BurstCompile] |
|
unsafe struct SliceCombineJob : IJobFor |
|
{ |
|
public int2 tileResolution; |
|
|
|
public int wordsPerTile; |
|
|
|
[ReadOnly] |
|
public NativeArray<uint> sliceLightMasksH; |
|
|
|
[ReadOnly] |
|
public NativeArray<uint> sliceLightMasksV; |
|
|
|
[NativeDisableParallelForRestriction] |
|
public NativeArray<uint> lightMasks; |
|
|
|
public void Execute(int idY) |
|
{ |
|
var baseIndexH = idY * wordsPerTile; |
|
var baseIndexRow = baseIndexH * tileResolution.x; |
|
for (var idX = 0; idX < tileResolution.x; idX++) |
|
{ |
|
var baseIndexV = idX * wordsPerTile; |
|
var baseIndexTile = baseIndexRow + baseIndexV; |
|
for (var wordIndex = 0; wordIndex < wordsPerTile; wordIndex++) |
|
{ |
|
lightMasks[baseIndexTile + wordIndex] = sliceLightMasksH[baseIndexH + wordIndex] & sliceLightMasksV[baseIndexV + wordIndex]; |
|
} |
|
} |
|
} |
|
} |
|
}
|
|
|