public void SetRecieveBlender(IRecieveBlenderFloat value) { if (value != null && value.NumPixelBits != BitDepth) { throw new NotSupportedException("The blender has to support the bit depth of this image."); } m_Blender = value; }
public void Attach(IImageFloat sourceImage, IRecieveBlenderFloat blender, int distanceBetweenPixelsInclusive, int bufferOffset, int bitsPerPixel) { SetDimmensionAndFormat(sourceImage.Width, sourceImage.Height, sourceImage.StrideInFloats(), bitsPerPixel, distanceBetweenPixelsInclusive); int offset = sourceImage.GetBufferOffsetXY(0, 0); float[] buffer = sourceImage.GetBuffer(); SetBuffer(buffer, offset + bufferOffset); SetRecieveBlender(blender); }
public ImageBufferFloat(IImageFloat sourceImage, IRecieveBlenderFloat blender) { SetDimmensionAndFormat(sourceImage.Width, sourceImage.Height, sourceImage.StrideInFloats(), sourceImage.BitDepth, sourceImage.GetFloatsBetweenPixelsInclusive()); int offset = sourceImage.GetBufferOffsetXY(0, 0); float[] buffer = sourceImage.GetBuffer(); float[] newBuffer = new float[buffer.Length]; agg_basics.memcpy(newBuffer, offset, buffer, offset, buffer.Length - offset); SetBuffer(newBuffer, offset); SetRecieveBlender(blender); }
public ImageBufferFloat(IImageFloat sourceImageToCopy, IRecieveBlenderFloat blender, int distanceBetweenPixelsInclusive, int bufferOffset, int bitsPerPixel) { SetDimmensionAndFormat(sourceImageToCopy.Width, sourceImageToCopy.Height, sourceImageToCopy.StrideInFloats(), bitsPerPixel, distanceBetweenPixelsInclusive); int offset = sourceImageToCopy.GetBufferOffsetXY(0, 0); float[] buffer = sourceImageToCopy.GetBuffer(); float[] newBuffer = new float[buffer.Length]; throw new NotImplementedException(); //agg_basics.memcpy(newBuffer, offset, buffer, offset, buffer.Length - offset); //SetBuffer(newBuffer, offset + bufferOffset); //SetRecieveBlender(blender); }
public static void BasedOnAlpha(IRecieveBlenderFloat Blender, float[] destBuffer, int bufferOffset, ColorF sourceColor) { //if (sourceColor.m_A != 0) { #if false // we blend regardless of the alpha so that we can get Light Opacity working (used this way we have additive and faster blending in one blender) LBB if (sourceColor.m_A == base_mask) { Blender.CopyPixel(pDestBuffer, sourceColor); } else #endif { Blender.BlendPixel(destBuffer, bufferOffset, sourceColor); } } }
public static void BasedOnAlphaAndCover(IRecieveBlenderFloat Blender, float[] destBuffer, int bufferOffset, RGBA_Floats sourceColor, int cover) { if (cover == 255) { BasedOnAlpha(Blender, destBuffer, bufferOffset, sourceColor); } else { //if (sourceColor.m_A != 0) { sourceColor.alpha = sourceColor.alpha * ((float)cover * (1 / 255)); #if false // we blend regardless of the alpha so that we can get Light Opacity working (used this way we have addative and faster blending in one blender) LBB if (sourceColor.m_A == base_mask) { Blender.CopyPixel(pDestBuffer, sourceColor); } else #endif { Blender.BlendPixel(destBuffer, bufferOffset, sourceColor); } } } }
public ImageBufferFloat(IRecieveBlenderFloat blender) { SetRecieveBlender(blender); }
public static void BasedOnAlphaAndCover(IRecieveBlenderFloat Blender, float[] destBuffer, int bufferOffset, RGBA_Floats sourceColor, int cover) { if (cover == 255) { BasedOnAlpha(Blender, destBuffer, bufferOffset, sourceColor); } else { //if (sourceColor.m_A != 0) { sourceColor.alpha = sourceColor.alpha * ((float)cover * (1 / 255)); #if false // we blend regardless of the alpha so that we can get Light Opacity working (used this way we have additive and faster blending in one blender) LBB if (sourceColor.m_A == base_mask) { Blender.CopyPixel(pDestBuffer, sourceColor); } else #endif { Blender.BlendPixel(destBuffer, bufferOffset, sourceColor); } } } }
public void Attach(IImageFloat sourceImage, IRecieveBlenderFloat blender) { Attach(sourceImage, blender, sourceImage.GetFloatsBetweenPixelsInclusive(), 0, sourceImage.BitDepth); }
public ImageBufferFloat(int width, int height, int bitsPerPixel, IRecieveBlenderFloat blender) { Allocate(width, height, width * (bitsPerPixel / 32), bitsPerPixel); SetRecieveBlender(blender); }
public void SetRecieveBlender(IRecieveBlenderFloat value) { linkedImage.SetRecieveBlender(value); }