mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-04-08 13:47:27 +05:00
moved method imageToPixmap() from GEOM_Displayer to GUI module (OCCViewer) as external
This commit is contained in:
parent
04e80ddd75
commit
4ffc08bf4b
@ -77,6 +77,7 @@
|
|||||||
|
|
||||||
#include <OCCViewer_ViewWindow.h>
|
#include <OCCViewer_ViewWindow.h>
|
||||||
#include <OCCViewer_ViewPort3d.h>
|
#include <OCCViewer_ViewPort3d.h>
|
||||||
|
#include <OCCViewer_Utilities.h>
|
||||||
|
|
||||||
// OCCT Includes
|
// OCCT Includes
|
||||||
#include <AIS_Drawer.hxx>
|
#include <AIS_Drawer.hxx>
|
||||||
@ -158,47 +159,6 @@ namespace
|
|||||||
return aMap;
|
return aMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
|
||||||
// Function : imageToPixmap
|
|
||||||
// Purpose : Concert QImage to OCCT pixmap
|
|
||||||
//===========================================================================
|
|
||||||
static inline Handle(Image_PixMap) imageToPixmap( const QImage& anImage )
|
|
||||||
{
|
|
||||||
Handle(Image_PixMap) aPixmap = new Image_PixMap();
|
|
||||||
if ( !anImage.isNull() ) {
|
|
||||||
aPixmap->InitTrash( Image_PixMap::ImgBGRA, anImage.width(), anImage.height() );
|
|
||||||
aPixmap->SetTopDown( Standard_True );
|
|
||||||
|
|
||||||
const uchar* aImageBytes = anImage.bits();
|
|
||||||
|
|
||||||
for ( int aLine = anImage.height() - 1; aLine >= 0; --aLine ) {
|
|
||||||
#if OCC_VERSION_LARGE > 0x06070100
|
|
||||||
// convert pixels from ARGB to renderer-compatible RGBA
|
|
||||||
for ( int aByte = 0; aByte < anImage.width(); ++aByte ) {
|
|
||||||
Image_ColorBGRA& aPixmapBytes = aPixmap->ChangeValue<Image_ColorBGRA>(aLine, aByte);
|
|
||||||
|
|
||||||
aPixmapBytes.b() = (Standard_Byte) *aImageBytes++;
|
|
||||||
aPixmapBytes.g() = (Standard_Byte) *aImageBytes++;
|
|
||||||
aPixmapBytes.r() = (Standard_Byte) *aImageBytes++;
|
|
||||||
aPixmapBytes.a() = (Standard_Byte) *aImageBytes++;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
Image_ColorBGRA* aPixmapBytes = aPixmap->EditData<Image_ColorBGRA>().ChangeRow(aLine);
|
|
||||||
|
|
||||||
// convert pixels from ARGB to renderer-compatible RGBA
|
|
||||||
for ( int aByte = 0; aByte < anImage.width(); ++aByte ) {
|
|
||||||
aPixmapBytes->b() = (Standard_Byte) *aImageBytes++;
|
|
||||||
aPixmapBytes->g() = (Standard_Byte) *aImageBytes++;
|
|
||||||
aPixmapBytes->r() = (Standard_Byte) *aImageBytes++;
|
|
||||||
aPixmapBytes->a() = (Standard_Byte) *aImageBytes++;
|
|
||||||
aPixmapBytes++;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return aPixmap;
|
|
||||||
}
|
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
// Function : getDefaultTexture
|
// Function : getDefaultTexture
|
||||||
// Purpose : Get default texture
|
// Purpose : Get default texture
|
||||||
|
Loading…
x
Reference in New Issue
Block a user