public static InterlockedMax ( int destination, int value ) : void | ||
destination | int | The destination value. |
value | int | The input value. |
return | void |
public void Execute(ThreadIds id) { var currentMax = 0; for (var j = 0; j < iterations; j++) { var i = (id.X * iterations) + j; if (i * 3 >= coordinatesSize) { return; } var pX = (int)Hlsl.Floor(((coordinates[i * 3] - left) / (right - left)) * width); var pY = (int)Hlsl.Floor(((coordinates[(i * 3) + 2] - top) / (bottom - top)) * height); if (pX < 0 || pX >= width || pY < 0 || pY >= height) { continue; } var denIndex = pX + (pY * width); density[denIndex]++; if (density[denIndex] > currentMax) { currentMax = density[denIndex]; } } Hlsl.InterlockedMax(maxDensity[0], currentMax); //if (currentMax > maxDensity[0]) { maxDensity[0] = currentMax; } }