PSSMDemo.GaussianBlurEffect.SetKernelOffsets C# (CSharp) Method

SetKernelOffsets() public method

public SetKernelOffsets ( ) : void
return void
        void SetKernelOffsets()
        {
            if ((dirtyFlags & DirtyFlags.KernelOffsets) != 0)
            {
                var dx = 1.0f / (float) width;
                var dy = 1.0f / (float) height;

                horizontalKernels[0].X = 0.0f;
                horizontalKernels[0].Y = 0.0f;
                verticalKernels[0].X = 0.0f;
                verticalKernels[0].Y = 0.0f;

                for (int i = 0; i < kernelSize / 2; i++)
                {
                    int baseIndex = i * 2;
                    int left = baseIndex + 1;
                    int right = baseIndex + 2;

                    // XNA BloomPostprocess サンプルに従ってオフセットを決定。
                    float sampleOffset = i * 2 + 1.5f;
                    var offsetX = dx * sampleOffset;
                    var offsetY = dy * sampleOffset;

                    horizontalKernels[left].X = offsetX;
                    horizontalKernels[right].X = -offsetX;

                    verticalKernels[left].Y = offsetY;
                    verticalKernels[right].Y = -offsetY;
                }

                dirtyFlags &= ~DirtyFlags.KernelOffsets;
            }
        }