def test_Renderer_clear(self):
     sf = SDL_CreateRGBSurface(0, 10, 10, 32, 0xFF000000, 0x00FF0000,
                               0x0000FF00, 0x000000FF)
     renderer = sdl2ext.Renderer(sf.contents)
     self.assertIsInstance(renderer.color, sdl2ext.Color)
     self.assertEqual(renderer.color, sdl2ext.Color(0, 0, 0, 0))
     renderer.color = 0x00FF0000
     self.assertEqual(renderer.color, sdl2ext.Color(0xFF, 0, 0, 0))
     renderer.clear()
     view = sdl2ext.PixelView(sf.contents)
     self.check_areas(view, 10, 10, [[0, 0, 10, 10]], 0xFF000000, (0x0, ))
     del view
     renderer.clear(0xAABBCCDD)
     self.assertEqual(renderer.color, sdl2ext.Color(0xFF, 0, 0, 0))
     view = sdl2ext.PixelView(sf.contents)
     self.check_areas(view, 10, 10, [[0, 0, 10, 10]], 0xBBCCDDAA, (0x0, ))
     del view
     del renderer
     SDL_FreeSurface(sf)
     dogc()
    def test_SpriteFactory_from_surface(self):
        window = sdl2ext.Window("Test", size=(1, 1))
        renderer = sdl2ext.Renderer(window)
        tfactory = sdl2ext.SpriteFactory(sdl2ext.TEXTURE, renderer=renderer)
        sfactory = sdl2ext.SpriteFactory(sdl2ext.SOFTWARE)

        sf = SDL_CreateRGBSurface(0, 10, 10, 32, 0, 0, 0, 0)
        tsprite = tfactory.from_surface(sf.contents)
        self.assertIsInstance(tsprite, sdl2ext.TextureSprite)
        ssprite = sfactory.from_surface(sf.contents)
        self.assertIsInstance(ssprite, sdl2ext.SoftwareSprite)
        SDL_FreeSurface(sf)

        for factory in (tfactory, sfactory):
            self.assertRaises((sdl2ext.SDLError, AttributeError, ArgumentError,
                               TypeError), factory.from_surface, None)
            self.assertRaises((AttributeError, ArgumentError, TypeError),
                              factory.from_surface, "test")
            # TODO: crashes pypy 2.0
            #self.assertRaises((AttributeError, ArgumentError, TypeError),
            #                  factory.from_surface, 1234)
        dogc()