58 import maya.OpenMaya
as OpenMaya
59 import maya.OpenMayaMPx
as OpenMayaMPx
60 import maya.OpenMayaRender
as OpenMayaRender
64 kImagePluginName =
"spSimpleImageFile"
67 glRenderer = OpenMayaRender.MHardwareRenderer.theRenderer()
68 glFT = glRenderer.glFunctionTable()
72 class SimpleImageFile(OpenMayaMPx.MPxImageFile):
76 OpenMayaMPx.MPxImageFile.__init__(self)
85 def open( self, pathname, info ):
91 info.pixelType( OpenMaya.MImage.kFloat )
95 info.hardwareType( OpenMaya.MImageFileInfo.kHwTexture2D)
104 def load( self, image, idx ):
111 image.create( width, height, 3, OpenMaya.MImage.kFloat )
112 self.populateTestImage( image.floatPixels(), width, height )
121 def glLoad( self, info, imageNumber ):
128 image = OpenMaya.MImage()
129 image.create( w, h, 3, OpenMaya.MImage.kFloat )
130 self.populateTestImage( image.floatPixels(), w, h )
133 glFT.glTexImage2D( OpenMayaRender.MGL_TEXTURE_2D, 0, \
134 OpenMayaRender.MGL_RGB, w, h, 0, OpenMayaRender.MGL_RGB, \
135 OpenMayaRender.MGL_FLOAT, pixelsPtr )
143 def populateTestImage( self, pixels, w, h ):
147 for y
in range( 0, h ):
148 g = rainbowScale * y / float(h)
149 for x
in range( 0, w ):
150 r = rainbowScale * x / float(w)
151 OpenMaya.MScriptUtil.setFloatArray( pixels, index, r )
153 OpenMaya.MScriptUtil.setFloatArray( pixels, index, g )
155 b = rainbowScale * 1.5 - r - g
156 OpenMaya.MScriptUtil.setFloatArray( pixels, index, b )
161 return OpenMayaMPx.asMPxPtr( SimpleImageFile() )
165 def initializePlugin( mObject ):
166 mPlugin = OpenMayaMPx.MFnPlugin(mObject,
"Autodesk",
"1.0",
"Any")
170 mPlugin.registerImageFile( kImagePluginName, creator, extensions )
172 sys.stderr.write(
"Failed to register image plugin: %s" % kImagePluginName )
176 def uninitializePlugin( mObject ):
177 mPlugin = OpenMayaMPx.MFnPlugin( mObject )
179 mPlugin.deregisterImageFile( kImagePluginName )
181 sys.stderr.write(
"Failed to deregister image: %s" % kImagePluginName )