MCPcopy Create free account
hub / github.com/NatronGitHub/Natron / convertToFormatCommon

Method convertToFormatCommon

Engine/ImageConvert.cpp:668–881  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

666} // Image::convertToFormatInternalForDepth
667
668void
669Image::convertToFormatCommon(const RectI & renderWindow,
670 ViewerColorSpaceEnum srcColorSpace,
671 ViewerColorSpaceEnum dstColorSpace,
672 int channelForAlpha,
673 bool useAlpha0,
674 bool copyBitmap,
675 bool requiresUnpremult,
676 Image* dstImg) const
677{
678 QWriteLocker k(&dstImg->_entryLock);
679 QReadLocker k2(&_entryLock);
680
681 assert( _bounds.contains(renderWindow) && dstImg->_bounds.contains(renderWindow) );
682
683 if ( dstImg->getComponents().getNumComponents() == getComponents().getNumComponents() ) {
684 switch ( dstImg->getBitDepth() ) {
685 case eImageBitDepthByte: {
686 switch ( getBitDepth() ) {
687 case eImageBitDepthByte:
688 ///Same as a copy
689 convertToFormatInternal_sameComps<unsigned char, unsigned char, 255, 255>(renderWindow, *this, *dstImg,
690 srcColorSpace,
691 dstColorSpace, copyBitmap);
692 break;
693 case eImageBitDepthShort:
694 convertToFormatInternal_sameComps<unsigned short, unsigned char, 65535, 255>(renderWindow, *this, *dstImg,
695 srcColorSpace,
696 dstColorSpace, copyBitmap);
697 break;
698 case eImageBitDepthHalf:
699 break;
700 case eImageBitDepthFloat:
701 convertToFormatInternal_sameComps<float, unsigned char, 1, 255>(renderWindow, *this, *dstImg,
702 srcColorSpace,
703 dstColorSpace, copyBitmap);
704 break;
705 case eImageBitDepthNone:
706 break;
707 }
708 break;
709 }
710
711 case eImageBitDepthShort: {
712 switch ( getBitDepth() ) {
713 case eImageBitDepthByte:
714 convertToFormatInternal_sameComps<unsigned char, unsigned short, 255, 65535>(renderWindow, *this, *dstImg,
715 srcColorSpace,
716 dstColorSpace, copyBitmap);
717 break;
718 case eImageBitDepthShort:
719 ///Same as a copy
720 convertToFormatInternal_sameComps<unsigned short, unsigned short, 65535, 65535>(renderWindow, *this, *dstImg,
721 srcColorSpace,
722 dstColorSpace, copyBitmap);
723 break;
724 case eImageBitDepthHalf:
725 break;

Callers

nothing calls this directly

Calls 5

getBitDepthFunction · 0.85
getComponentsMethod · 0.80
containsMethod · 0.45
getNumComponentsMethod · 0.45
getBitDepthMethod · 0.45

Tested by

no test coverage detected