66 import maya.OpenMaya 
as OpenMaya
 
   67 import maya.OpenMayaMPx 
as OpenMayaMPx
 
   68 import maya.OpenMayaRender 
as OpenMayaRender
 
   72 kImagePluginName = 
"spSimpleImageFile" 
   75 glRenderer = OpenMayaRender.MHardwareRenderer.theRenderer()
 
   76 glFT = glRenderer.glFunctionTable()
 
   80 class SimpleImageFile(OpenMayaMPx.MPxImageFile):
 
   84         OpenMayaMPx.MPxImageFile.__init__(self)
 
   93     def open( self, pathname, info ):
 
   99             info.pixelType( OpenMaya.MImage.kFloat )
 
  103             info.hardwareType( OpenMaya.MImageFileInfo.kHwTexture2D)        
 
  112     def load( self, image, idx ):
 
  119         image.create( width, height, 3, OpenMaya.MImage.kFloat )
 
  120         self.populateTestImage( image.floatPixels(), width, height )        
 
  129     def glLoad( self, info, imageNumber ):
 
  137         image.create( w, h, 3, OpenMaya.MImage.kFloat )
 
  138         self.populateTestImage( image.floatPixels(), w, h )
 
  141         glFT.glTexImage2D( OpenMayaRender.MGL_TEXTURE_2D, 0, \
 
  142             OpenMayaRender.MGL_RGB, w, h, 0, OpenMayaRender.MGL_RGB, \
 
  143             OpenMayaRender.MGL_FLOAT, pixelsPtr )
 
  151     def populateTestImage( self, pixels, w, h ):
 
  155         for y 
in range( 0, h ):
 
  156             g = rainbowScale * y / float(h)         
 
  157             for x 
in range( 0, w ):
 
  158                 r = rainbowScale * x / float(w)
 
  159                 OpenMaya.MScriptUtil.setFloatArray( pixels, index, r )
 
  161                 OpenMaya.MScriptUtil.setFloatArray( pixels, index, g )
 
  163                 b = rainbowScale * 1.5 - r - g
 
  164                 OpenMaya.MScriptUtil.setFloatArray( pixels, index, b )
 
  169     return OpenMayaMPx.asMPxPtr( SimpleImageFile() )    
 
  173 def initializePlugin( mObject ):
 
  174     mPlugin = OpenMayaMPx.MFnPlugin(mObject, 
"Autodesk", 
"1.0", 
"Any")  
 
  178         mPlugin.registerImageFile( kImagePluginName, creator, extensions )
 
  180         sys.stderr.write( 
"Failed to register image plugin: %s" % kImagePluginName )
 
  184 def uninitializePlugin( mObject ):
 
  185     mPlugin = OpenMayaMPx.MFnPlugin( mObject )
 
  187         mPlugin.deregisterImageFile( kImagePluginName )
 
  189         sys.stderr.write( 
"Failed to deregister image: %s" % kImagePluginName )