Browse Source

Minor optimisation in software image rendering.

tags/2021-05-28
jules 12 years ago
parent
commit
bcce4e388a
1 changed files with 8 additions and 6 deletions
  1. +8
    -6
      modules/juce_graphics/native/juce_RenderingHelpers.h

+ 8
- 6
modules/juce_graphics/native/juce_RenderingHelpers.h View File

@@ -890,20 +890,22 @@ namespace EdgeTableFillers
forcedinline void copyRow (DestPixelType* dest, SrcPixelType const* src, int width) const noexcept
{
if (srcData.pixelStride == 3 && destData.pixelStride == 3)
const int destStride = destData.pixelStride;
const int srcStride = srcData.pixelStride;
if (destStride == srcStride
&& srcData.pixelFormat == Image::PixelFormat::RGB
&& destData.pixelFormat == Image::PixelFormat::RGB)
{
memcpy (dest, src, sizeof (PixelRGB) * (size_t) width);
memcpy (dest, src, (size_t) (width * srcStride));
}
else
{
const int destStride = destData.pixelStride;
const int srcStride = srcData.pixelStride;
do
{
dest->blend (*src);
dest = addBytesToPointer (dest, destStride);
src = addBytesToPointer (src, srcStride);
src = addBytesToPointer (src, srcStride);
} while (--width > 0);
}
}


Loading…
Cancel
Save