예제 #1
0
    def test_render_target_supported(self):
        window = video.create_window("Test", 10, 10, 10, 10,
                                     video.SDL_WINDOW_HIDDEN)
        self.assertIsInstance(window, video.SDL_Window)

        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)

            val = render.render_target_supported(renderer)
            self.assertIsInstance(val, bool)
            render.destroy_renderer(renderer)
        video.destroy_window(window)
예제 #2
0
    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")