mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-01-13 02:00:35 +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_ViewPort3d.h>
|
||||
#include <OCCViewer_Utilities.h>
|
||||
|
||||
// OCCT Includes
|
||||
#include <AIS_Drawer.hxx>
|
||||
@ -158,47 +159,6 @@ namespace
|
||||
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
|
||||
// Purpose : Get default texture
|
||||
|
Loading…
Reference in New Issue
Block a user