예제 #1
0
 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"), ))
예제 #2
0
    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"),
        ))
예제 #3
0
 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()
예제 #4
0
 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"),))
예제 #5
0
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)
예제 #6
0
 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"),
             ))
예제 #7
0
 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"),
             ))
예제 #8
0
    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"),
                ))
예제 #9
0
    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"),
        ))
예제 #10
0
 def addWords():
     self.videoNode.unlink(True)
     self.wordsNode = avg.WordsNode(text="WordsNode",
                                    color="FF0000",
                                    parent=root)
     self.wordsNode.setEffect(avg.NullFXNode())
예제 #11
0
 def configureNode(node, fx):
     curNodes.append(node)
     if fx:
         node.x = 32
         node.setEffect(avg.NullFXNode())
예제 #12
0
 def emptyImageFX():
     node = avg.ImageNode(parent=root, href="", pos=(64, 0))
     node.setEffect(avg.NullFXNode())
예제 #13
0
 def newFX():
     self.newNode.setEffect(avg.NullFXNode())
예제 #14
0
 def newNode():
     self.newNode = avg.ImageNode(parent=root,
                                  href="rgb24-32x32.png",
                                  pos=(64, 0))
     self.newNode.setEffect(avg.NullFXNode())
예제 #15
0
 def activateFX():
     for node in self.nodes[0]:
         node.setEffect(avg.NullFXNode())