comparison Core/Images/ImageProcessing.cpp @ 2490:0cacb38297a9

speed up ImageProcessing::Set
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 14 Mar 2018 13:46:17 +0100
parents e91bab2d8c75
children a9459c7d4bc2
comparison
equal deleted inserted replaced
2489:e91bab2d8c75 2490:0cacb38297a9
625 case PixelFormat_Grayscale8: 625 case PixelFormat_Grayscale8:
626 memset(image.GetBuffer(), static_cast<uint8_t>(value), image.GetPitch() * image.GetHeight()); 626 memset(image.GetBuffer(), static_cast<uint8_t>(value), image.GetPitch() * image.GetHeight());
627 return; 627 return;
628 628
629 case PixelFormat_Grayscale16: 629 case PixelFormat_Grayscale16:
630 SetInternal<uint16_t>(image, value); 630 if (value == 0)
631 {
632 memset(image.GetBuffer(), 0, image.GetPitch() * image.GetHeight());
633 }
634 else
635 {
636 SetInternal<uint16_t>(image, value);
637 }
631 return; 638 return;
632 639
633 case PixelFormat_Grayscale32: 640 case PixelFormat_Grayscale32:
634 SetInternal<uint32_t>(image, value); 641 if (value == 0)
642 {
643 memset(image.GetBuffer(), 0, image.GetPitch() * image.GetHeight());
644 }
645 else
646 {
647 SetInternal<uint32_t>(image, value);
648 }
635 return; 649 return;
636 650
637 case PixelFormat_SignedGrayscale16: 651 case PixelFormat_SignedGrayscale16:
638 SetInternal<int16_t>(image, value); 652 if (value == 0)
653 {
654 memset(image.GetBuffer(), 0, image.GetPitch() * image.GetHeight());
655 }
656 else
657 {
658 SetInternal<int16_t>(image, value);
659 }
639 return; 660 return;
640 661
641 case PixelFormat_Float32: 662 case PixelFormat_Float32:
642 assert(sizeof(float) == 4); 663 assert(sizeof(float) == 4);
643 SetInternal<float>(image, value); 664 SetInternal<float>(image, value);