コード例 #1
0
ファイル: sdlimage_test.py プロジェクト: gdos/pgreloaded
    def test_load_texture(self):
        sf = surface.create_rgb_surface(10, 10, 32)
        rd = render.create_software_renderer(sf)

        fname = "surfacetest.%s"
        for fmt in formats:
            filename = RESOURCES.get_path(fname % fmt)
            tex = sdlimage.load_texture(rd, filename)
            self.assertIsInstance(tex, render.SDL_Texture)
            render.destroy_texture(tex)

        self.assertRaises(sdl.SDLError, sdlimage.load_texture, rd, RESOURCES.get_path("rwopstest.txt"))

        self.assertRaises(sdl.SDLError, sdlimage.load_texture, rd, None)
        self.assertRaises(sdl.SDLError, sdlimage.load_texture, rd, 1234)
        self.assertRaises(
            (AttributeError, TypeError), sdlimage.load_texture, None, RESOURCES.get_path("surfacetest.bmp")
        )
        self.assertRaises(
            (AttributeError, TypeError), sdlimage.load_texture, "Test", RESOURCES.get_path("surfacetest.bmp")
        )
        self.assertRaises(
            (AttributeError, TypeError), sdlimage.load_texture, 1234, RESOURCES.get_path("surfacetest.bmp")
        )

        render.destroy_renderer(rd)
        surface.free_surface(sf)
コード例 #2
0
ファイル: sdl_render_test.py プロジェクト: gdos/pgreloaded
    def test_get_set_texture_blend_mode(self):
        window = video.create_window("Test", 10, 10, 10, 10,
                                     video.SDL_WINDOW_HIDDEN)
        self.assertIsInstance(window, video.SDL_Window)
        renderer = render.create_renderer(window, -1,
                                          render.SDL_RENDERER_SOFTWARE)
        self.assertIsInstance(renderer, render.SDL_Renderer)

        tex = render.create_texture(renderer, pixels.SDL_PIXELFORMAT_ARGB8888,
                                    render.SDL_TEXTUREACCESS_STREAMING, 10, 10)
        self.assertIsInstance(tex, render.SDL_Texture)

        modes = (video.SDL_BLENDMODE_NONE,
                 video.SDL_BLENDMODE_ADD,
                 video.SDL_BLENDMODE_BLEND,
                 video.SDL_BLENDMODE_MOD,
                 )
        for mode in modes:
            render.set_texture_blend_mode(tex, mode)
            tmode = render.get_texture_blend_mode(tex)
            self.assertEqual(tmode, mode)

        render.destroy_texture(tex)
        self.assertRaises(sdl.SDLError, render.set_texture_blend_mode, tex,
                          modes[2])
        self.assertRaises(sdl.SDLError, render.get_texture_blend_mode, tex)

        render.destroy_renderer(renderer)
        video.destroy_window(window)
コード例 #3
0
ファイル: sdl_render_test.py プロジェクト: gdos/pgreloaded
    def test_get_set_texture_color_mod(self):
        window = video.create_window("Test", 10, 10, 10, 10,
                                     video.SDL_WINDOW_HIDDEN)
        self.assertIsInstance(window, video.SDL_Window)
        renderer = render.create_renderer(window, -1,
                                          render.SDL_RENDERER_SOFTWARE)
        self.assertIsInstance(renderer, render.SDL_Renderer)

        tex = render.create_texture(renderer, pixels.SDL_PIXELFORMAT_ARGB8888,
                                    render.SDL_TEXTUREACCESS_STREAMING, 10, 10)
        self.assertIsInstance(tex, render.SDL_Texture)
        colors = ((16, 22, 185),
                  (32, 64, 128),
                  (64, 32, 128),
                  (64, 32, 255),
                  (255, 32, 64),
                  (255, 32, 128),
                  (0, 0, 0),
                  (255, 255, 255),
                  (128, 128, 128),
                  )
        for r, g, b in colors:
            render.set_texture_color_mod(tex, r, g, b)
            tr, tg, tb = render.get_texture_color_mod(tex)
            self.assertEqual((tr, tg, tb), (r, g, b))

        render.destroy_texture(tex)
        self.assertRaises(sdl.SDLError, render.set_texture_color_mod, tex,
                          10, 20, 30)
        self.assertRaises(sdl.SDLError, render.get_texture_color_mod, tex)

        render.destroy_renderer(renderer)
        video.destroy_window(window)
コード例 #4
0
ファイル: sdl_render_test.py プロジェクト: gdos/pgreloaded
    def test_query_texture(self):
        window = video.create_window("Test", 10, 10, 10, 10,
                                     video.SDL_WINDOW_HIDDEN)
        self.assertIsInstance(window, video.SDL_Window)
        renderer = render.create_renderer(window, -1,
                                          render.SDL_RENDERER_SOFTWARE)
        self.assertIsInstance(renderer, render.SDL_Renderer)

        formats = (pixels.SDL_PIXELFORMAT_ARGB8888,
                   pixels.SDL_PIXELFORMAT_RGB555,
                   pixels.SDL_PIXELFORMAT_RGBA4444,
                   pixels.SDL_PIXELFORMAT_ARGB2101010,
                   pixels.SDL_PIXELFORMAT_YUY2
                   )
        access = (render.SDL_TEXTUREACCESS_STATIC,
                  render.SDL_TEXTUREACCESS_STREAMING,
                  render.SDL_TEXTUREACCESS_TARGET)
        for fmt in formats:
            for acc in access:
                for w in range(1, 300, 5):
                    for h in range(1, 300, 5):
                        tex = render.create_texture(renderer, fmt, acc, w, h)
                        self.assertIsInstance(tex, render.SDL_Texture)
                        qf, qa, qw, qh = render.query_texture(tex)
                        self.assertEqual(qf, fmt)
                        self.assertEqual(qa, acc)
                        self.assertEqual(w, qw)
                        self.assertEqual(h, qh)
                        render.destroy_texture(tex)

        render.destroy_renderer(renderer)
        video.destroy_window(window)
コード例 #5
0
ファイル: sdlimage_test.py プロジェクト: gdos/pgreloaded
    def test_load_texture_typed_rw(self):
        sf = surface.create_rgb_surface(10, 10, 32)
        rd = render.create_software_renderer(sf)

        fname = "surfacetest.%s"
        for fmt in formats:
            fp = RESOURCES.get(fname % fmt)
            tex = sdlimage.load_texture_typed_rw(rd, rwops.rw_from_object(fp), False, fmt.upper())
            self.assertIsInstance(tex, render.SDL_Texture)
            render.destroy_texture(tex)
        render.destroy_renderer(rd)
        surface.free_surface(sf)
コード例 #6
0
ファイル: sdl_render_test.py プロジェクト: gdos/pgreloaded
    def test_create_destroy_texture(self):
        window = video.create_window("Test", 10, 10, 10, 10,
                                     video.SDL_WINDOW_HIDDEN)
        self.assertIsInstance(window, video.SDL_Window)
        renderer = render.create_renderer(window, -1,
                                          render.SDL_RENDERER_SOFTWARE)
        self.assertIsInstance(renderer, render.SDL_Renderer)

        formats = (pixels.SDL_PIXELFORMAT_ARGB8888,
                   pixels.SDL_PIXELFORMAT_RGB555,
                   pixels.SDL_PIXELFORMAT_RGBA4444,
                   pixels.SDL_PIXELFORMAT_RGBA8888,
                   pixels.SDL_PIXELFORMAT_ARGB2101010,
                   pixels.SDL_PIXELFORMAT_YUY2
                   )
        access = (render.SDL_TEXTUREACCESS_STATIC,
                  render.SDL_TEXTUREACCESS_STREAMING,
                  render.SDL_TEXTUREACCESS_TARGET)
        for fmt in formats:
            for acc in access:
                for w in range(1, 300, 5):
                    for h in range(1, 300, 5):
                        tex = render.create_texture(renderer, fmt, acc, w, h)
                        self.assertIsInstance(tex, render.SDL_Texture)
                        render.destroy_texture(tex)

        self.assertRaises(sdl.SDLError, render.create_texture, renderer,
                          pixels.SDL_PIXELFORMAT_RGB555, 1, -10, 10)
        self.assertRaises(sdl.SDLError, render.create_texture, renderer,
                          pixels.SDL_PIXELFORMAT_RGB555, 1, 10, -10)
        self.assertRaises(sdl.SDLError, render.create_texture, renderer,
                          pixels.SDL_PIXELFORMAT_RGB555, 1, -10, -10)
        self.assertRaises(ValueError, render.create_texture, renderer,
                          pixels.SDL_PIXELFORMAT_RGB555, -5, 10, 10)
        self.assertRaises(ValueError, render.create_texture, renderer,
                          -10, 1, 10, 10)
        self.assertRaises((AttributeError, TypeError),
                          render.create_texture, None,
                          pixels.SDL_PIXELFORMAT_RGB555, 1, 10, 10)
        self.assertRaises((AttributeError, TypeError),
                          render.create_texture, "Test",
                          pixels.SDL_PIXELFORMAT_RGB555, 1, 10, 10)
        self.assertRaises(ValueError, render.create_texture, renderer,
                          "Test", 1, 10, 10)
        self.assertRaises(ValueError, render.create_texture, renderer,
                          pixels.SDL_PIXELFORMAT_RGB555, None, 10, 10)
        self.assertRaises(ValueError, render.create_texture, renderer,
                          pixels.SDL_PIXELFORMAT_RGB555, "Test", 10, 10)

        render.destroy_renderer(renderer)
        self.assertRaises(sdl.SDLError, render.create_texture, renderer,
                          pixels.SDL_PIXELFORMAT_RGB555, 1, 10, 10)
        video.destroy_window(window)
コード例 #7
0
ファイル: sdlimage_test.py プロジェクト: gdos/pgreloaded
    def test_load_texture_rw(self):
        sf = surface.create_rgb_surface(10, 10, 32)
        rd = render.create_software_renderer(sf)

        fname = "surfacetest.%s"
        for fmt in formats:
            if fmt == "tga":
                # SDL_image does not support loading TGA via
                # IMG_LoadTexture_RW()
                continue
            fp = RESOURCES.get(fname % fmt)
            tex = sdlimage.load_texture_rw(rd, rwops.rw_from_object(fp), False)
            self.assertIsInstance(tex, render.SDL_Texture)
            render.destroy_texture(tex)

        render.destroy_renderer(rd)
        surface.free_surface(sf)
コード例 #8
0
ファイル: sdl_render_test.py プロジェクト: gdos/pgreloaded
    def test_get_set_render_target(self):
        window = video.create_window("Test", 10, 10, 10, 10,
                                     video.SDL_WINDOW_HIDDEN)
        self.assertIsInstance(window, video.SDL_Window)

        skipcount = 0
        for i in range(render.get_num_render_drivers()):
            renderer = render.create_renderer(window, i,
                                              render.SDL_RENDERER_ACCELERATED)
            self.assertIsInstance(renderer, render.SDL_Renderer)

            supported = render.render_target_supported(renderer)
            if not supported:
                skipcount += 1
                render.destroy_renderer(renderer)
                continue

            render.set_render_target(renderer)
            self.assertIsNone(render.get_render_target(renderer))

            tex = render.create_texture(renderer,
                                        pixels.SDL_PIXELFORMAT_ARGB8888,
                                        render.SDL_TEXTUREACCESS_TARGET,
                                        10, 10)
            render.set_render_target(renderer, tex)
            self.assertIsInstance(render.get_render_target(renderer),
                                  render.SDL_Texture)
            render.destroy_texture(tex)

            # TODO: Check in the SDL codebase, why the code below does
            # not fail...
            # tex2 = render.create_texture(renderer,
            #                              pixels.SDL_PIXELFORMAT_ARGB8888,
            #                              render.SDL_TEXTUREACCESS_STREAMING,
            #                              10, 10)
            # self.assertRaises(SDLError, render.set_render_target, renderer,
            #                   tex2)
            # render.destroy_texture(tex2)

            render.destroy_renderer(renderer)
        video.destroy_window(window)

        if skipcount == render.get_num_render_drivers():
            self.skipTest("None of the renderers supports render targets")
コード例 #9
0
ファイル: sdl_render_test.py プロジェクト: gdos/pgreloaded
    def test_get_set_texture_alpha_mod(self):
        window = video.create_window("Test", 10, 10, 10, 10,
                                     video.SDL_WINDOW_HIDDEN)
        self.assertIsInstance(window, video.SDL_Window)
        renderer = render.create_renderer(window, -1,
                                          render.SDL_RENDERER_SOFTWARE)
        self.assertIsInstance(renderer, render.SDL_Renderer)

        tex = render.create_texture(renderer, pixels.SDL_PIXELFORMAT_ARGB8888,
                                    render.SDL_TEXTUREACCESS_STREAMING, 10, 10)
        self.assertIsInstance(tex, render.SDL_Texture)

        for alpha in range(0, 255):
            render.set_texture_alpha_mod(tex, alpha)
            talpha = render.get_texture_alpha_mod(tex)
            self.assertEqual(talpha, alpha)

        render.destroy_texture(tex)
        self.assertRaises(sdl.SDLError, render.set_texture_color_mod, tex,
                          10, 20, 30)
        self.assertRaises(sdl.SDLError, render.get_texture_color_mod, tex)

        render.destroy_renderer(renderer)
        video.destroy_window(window)
コード例 #10
0
ファイル: sprite.py プロジェクト: gdos/pgreloaded
 def __del__(self):
     """Releases the bound SDL_Texture."""
     if self.texture is not None:
         render.destroy_texture(self.texture)
     self.texture = None