def testRenderPipeline(self): sys.stderr.write("\n") for useSrcCanvas in (False, True): for useDestCanvas in (False, True): for useFX in (False, True): for useColorConv in (False, True): sys.stderr.write(" " + str(useSrcCanvas) + " " + str(useDestCanvas) + " " + str(useFX) + " " + str(useColorConv) + "\n") root = self.loadEmptyScene() if useSrcCanvas: srcCanvas = player.createCanvas(id="src", size=(160, 120), mediadir="media") avg.ImageNode(href="rgb24alpha-64x64.png", parent=srcCanvas.getRootNode()) srcImg = avg.ImageNode(href="canvas:src") else: srcImg = avg.ImageNode(href="rgb24alpha-64x64.png") if useFX: srcImg.setEffect(avg.NullFXNode()) if useColorConv: srcImg.contrast = (1.01, 1.0, 1.0) if useDestCanvas: destCanvas = player.createCanvas(id="dest", size=(160, 120), mediadir="media") destCanvas.getRootNode().appendChild(srcImg) avg.ImageNode(href="canvas:dest", parent=root) else: root.appendChild(srcImg) self.start(False, ( lambda: self.compareImage("testRenderPipeline"), ))
def testMultiWindowFX(self): def setHueSat(node): effect = avg.HueSatFXNode() effect.saturation = -200 node.setEffect(effect) def setBlur(node): node.setEffect(avg.BlurFXNode(3)) def startVideo(): node.unlink(True) self.videoNode = avg.VideoNode(href="mpeg1-48x48.mov", size=(96, 96), threaded=False, parent=root) self.videoNode.setEffect(avg.NullFXNode()) self.videoNode.play() root = self.loadEmptyScene() player.setWindowConfig("avgwindowconfig.xml") node = avg.ImageNode(pos=(0, 0), href="rgb24-64x64.png", parent=root) node.setEffect(avg.NullFXNode()) player.setFakeFPS(25) self.start(False, ( self.skipIfMinimalShader, lambda: self.compareImage("testMultiWindowFX1"), lambda: setHueSat(node), lambda: self.compareImage("testMultiWindowFX2"), lambda: setBlur(node), lambda: self.compareImage("testMultiWindowFX3"), startVideo, lambda: self.compareImage("testMultiWindowFXVideo1"), lambda: setHueSat(self.videoNode), lambda: self.compareImage("testMultiWindowFXVideo2"), ))
def startVideo(): node.unlink(True) self.videoNode = avg.VideoNode(href="mpeg1-48x48.mov", size=(96, 96), threaded=False, parent=root) self.videoNode.setEffect(avg.NullFXNode()) self.videoNode.play()
def testVideoNullFX(self): root = self.loadEmptyScene() player.setFakeFPS(25) node = avg.VideoNode(parent=root, href="mjpeg-48x48.avi", threaded=False) node.setEffect(avg.NullFXNode()) node.play() self.start(False, (lambda: self.compareImage("testVideoNullFX"),))
def initFXCache(numFXNodes): nodes = [] mediadir = os.path.join(os.path.dirname(__file__), 'data') for i in range(numFXNodes): node = avg.ImageNode(href=mediadir + "/black.png", parent=player.getRootNode()) node.setEffect(avg.NullFXNode()) nodes.append(node) for node in nodes: node.unlink(True)
def testWordsNullFX(self): root = self.loadEmptyScene() node = avg.WordsNode(parent=root, text="testtext", font="Bitstream Vera Sans", variant="Roman") node.setEffect(avg.NullFXNode()) avg.WordsNode(parent=root, text="testtext", pos=(0,20), font="Bitstream Vera Sans", variant="Roman") self.start(True, (lambda: self.compareImage("testWordsNullFX"), ))
def testNodeInCanvasNullFX(self): root = self.loadEmptyScene() canvas = self.__createOffscreenCanvas() avg.ImageNode(parent=root, href="canvas:offscreen") node = canvas.getElementByID("test") node.setEffect(avg.NullFXNode()) rect = avg.RectNode(size=(100,100), strokewidth=0, fillcolor="FF0000", fillopacity=1) canvas.getRootNode().insertChild(rect, 0) self.start(False, (lambda: self.compareImage("testNodeInCanvasNullFX1"), ))
def testMultiWindowFXWords(self): def setHueSat(node): effect = avg.HueSatFXNode() effect.saturation = -200 node.setEffect(effect) root = self.loadEmptyScene() player.setWindowConfig("avgwindowconfig.xml") self.wordsNode = avg.WordsNode(text="WordsNode", color="FF0000", parent=root) self.wordsNode.setEffect(avg.NullFXNode()) self.start(True, ( lambda: self.compareImage("testMultiWindowFXWords1"), lambda: setHueSat(self.wordsNode), lambda: self.compareImage("testMultiWindowFXWords2"), ))
def testCanvasNullFX(self): def setOuterOpacity(): node.opacity = 0.6 def setInnerOpacity(): innerNode = canvas.getElementByID("test") innerNode.opacity = 0.0 root = self.loadEmptyScene() canvas = self.__createOffscreenCanvas() node = avg.ImageNode(parent=root, href="canvas:offscreen") node.setEffect(avg.NullFXNode()) self.start(False, ( lambda: self.compareImage("testCanvasNullFX1"), setOuterOpacity, lambda: self.compareImage("testCanvasNullFX2"), setInnerOpacity, lambda: self.compareImage("testCanvasNullFX3"), ))
def addWords(): self.videoNode.unlink(True) self.wordsNode = avg.WordsNode(text="WordsNode", color="FF0000", parent=root) self.wordsNode.setEffect(avg.NullFXNode())
def configureNode(node, fx): curNodes.append(node) if fx: node.x = 32 node.setEffect(avg.NullFXNode())
def emptyImageFX(): node = avg.ImageNode(parent=root, href="", pos=(64, 0)) node.setEffect(avg.NullFXNode())
def newFX(): self.newNode.setEffect(avg.NullFXNode())
def newNode(): self.newNode = avg.ImageNode(parent=root, href="rgb24-32x32.png", pos=(64, 0)) self.newNode.setEffect(avg.NullFXNode())
def activateFX(): for node in self.nodes[0]: node.setEffect(avg.NullFXNode())