1- using System ;
1+ using System ;
22using System . Runtime . InteropServices ;
33using System . Threading . Tasks ;
44using Unity . Burst ;
@@ -291,10 +291,10 @@ public void Execute(int index) {
291291 var outputY = index / outputWidth ;
292292 var outputColor = new uint3 ( ) ;
293293
294- for ( int offsetX = 0 ; offsetX < 2 ; offsetX ++ ) {
295- for ( int offsetY = 0 ; offsetY < 2 ; offsetY ++ ) {
296- var inputX = min ( mad ( 2 , outputX , offsetX ) , inputWidth ) ;
297- var inputY = min ( mad ( 2 , outputY , offsetY ) , inputHeight ) ;
294+ for ( var offsetX = 0 ; offsetX < 2 ; offsetX ++ ) {
295+ for ( var offsetY = 0 ; offsetY < 2 ; offsetY ++ ) {
296+ var inputX = min ( mad ( 2 , outputX , offsetX ) , inputWidth - 1 ) ;
297+ var inputY = min ( mad ( 2 , outputY , offsetY ) , inputHeight - 1 ) ;
298298 var inputIndex = mad ( inputWidth , inputY , inputX ) ;
299299 outputColor . x += ( uint ) inputMipmap [ mad ( 3 , inputIndex , 0 ) ] >> 2 ;
300300 outputColor . y += ( uint ) inputMipmap [ mad ( 3 , inputIndex , 1 ) ] >> 2 ;
@@ -317,19 +317,19 @@ struct FilterMipmapRGBA32Job : IJobParallelFor {
317317
318318 public int outputWidth ;
319319 public int outputHeight ;
320- [ WriteOnly , NativeDisableParallelForRestriction ]
320+ [ WriteOnly ]
321321 public NativeSlice < uint > outputMipmap ;
322322
323323 public void Execute ( int index ) {
324324 var outputX = index % outputWidth ;
325325 var outputY = index / outputWidth ;
326326 var outputColor = new uint4 ( ) ;
327327
328- for ( int offsetX = 0 ; offsetX < 2 ; offsetX ++ ) {
329- for ( int offsetY = 0 ; offsetY < 2 ; offsetY ++ ) {
330- var inputX = min ( outputX * 2 + offsetX , inputWidth ) ;
331- var inputY = min ( outputY * 2 + offsetY , inputHeight ) ;
332- var inputColor = inputMipmap [ inputY * inputWidth + inputX ] ;
328+ for ( var offsetX = 0 ; offsetX < 2 ; offsetX ++ ) {
329+ for ( var offsetY = 0 ; offsetY < 2 ; offsetY ++ ) {
330+ var inputX = min ( mad ( 2 , outputX , offsetX ) , inputWidth - 1 ) ;
331+ var inputY = min ( mad ( 2 , outputY , offsetY ) , inputHeight - 1 ) ;
332+ var inputColor = inputMipmap [ mad ( inputWidth , inputY , inputX ) ] ;
333333 outputColor . x += ( inputColor & 0x000000FFu ) >> 2 ;
334334 outputColor . y += ( inputColor & 0x0000FF00u ) >> 10 ;
335335 outputColor . z += ( inputColor & 0x00FF0000u ) >> 18 ;
0 commit comments