protected override void DoDraw(RendererBase destRenderer) { ImageBuffer imageToDraw = ImageSequenceReference.Instance.GetImageByTime(m_TotalSeconds); //Image imageToDraw = m_PlayerShipSequence.GetImageByIndex(m_ImageIndex); //IBlender blender = new BlenderBGRA(); IBlender blender = new BlenderPreMultBGR(); /* unsafe { IImage destBuffer = destRenderer.DestImage; byte* pPixels = destBuffer.GetPixelPointerY(200); byte[] sourceBuffer = imageToDraw.ByteBuffer; for (int y = 0; y < imageToDraw.Height(); y++) { int SourceYOffset = y * imageToDraw.StrideInBytes(); int destYOffset = (int)destBuffer.StrideInBytesAbs() * y; for (int x = 0; x < imageToDraw.Width(); x++) { int sourceOffset = SourceYOffset + x * 4; RGBA_Bytes sourceColor = new RGBA_Bytes(sourceBuffer[sourceOffset + 2], sourceBuffer[sourceOffset + 1], sourceBuffer[sourceOffset + 0], sourceBuffer[sourceOffset + 3]); blender.BlendPixel(&pPixels[destYOffset + x * 4], sourceColor); } } } */ }
protected override void DoDraw(RendererBase destRenderer) { ImageBuffer imageToDraw = ImageSequenceReference.Instance.GetImageByTime(m_TotalSeconds); //Image imageToDraw = m_PlayerShipSequence.GetImageByIndex(m_ImageIndex); //IBlender blender = new BlenderBGRA(); IBlender blender = new BlenderPreMultBGR(); /* * unsafe * { * IImage destBuffer = destRenderer.DestImage; * byte* pPixels = destBuffer.GetPixelPointerY(200); * byte[] sourceBuffer = imageToDraw.ByteBuffer; * for (int y = 0; y < imageToDraw.Height(); y++) * { * int SourceYOffset = y * imageToDraw.StrideInBytes(); * int destYOffset = (int)destBuffer.StrideInBytesAbs() * y; * for (int x = 0; x < imageToDraw.Width(); x++) * { * int sourceOffset = SourceYOffset + x * 4; * RGBA_Bytes sourceColor = new RGBA_Bytes(sourceBuffer[sourceOffset + 2], sourceBuffer[sourceOffset + 1], sourceBuffer[sourceOffset + 0], sourceBuffer[sourceOffset + 3]); * blender.BlendPixel(&pPixels[destYOffset + x * 4], sourceColor); * } * } * } */ }