#include <OCCViewer_ViewWindow.h>
#include <OCCViewer_ViewPort3d.h>
+#include <OCCViewer_Utilities.h>
// OCCT Includes
#include <AIS_Drawer.hxx>
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