Example #1
0
    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)
Example #2
0
 def test_destroy_window(self):
     flags = (video.SDL_WINDOW_BORDERLESS,
              video.SDL_WINDOW_BORDERLESS | video.SDL_WINDOW_HIDDEN)
     for flag in flags:
         window = video.create_window("Test", 10, 10, 10, 10, flag)
         # TODO: how to check for this in a meaningful way?
         video.destroy_window(window)
Example #3
0
    def test_get_set_render_draw_color(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)

            colors = ((16, 22, 185, 217),
                      (32, 64, 128, 255),
                      (64, 32, 128, 255),
                      (64, 32, 255, 128),
                      (255, 32, 64, 128),
                      (255, 32, 128, 64),
                      (0, 0, 0, 0),
                      (255, 255, 255, 255),
                      (128, 128, 128, 255),
                      )
            for r, g, b, a in colors:
                render.set_render_draw_color(renderer, r, g, b, a)
                dr, dg, db, da = render.get_render_draw_color(renderer)
                self.assertEqual((dr, dg, db, da), (r, g, b, a))
            render.destroy_renderer(renderer)
            self.assertRaises(sdl.SDLError, render.set_render_draw_color,
                              renderer, 10, 20, 30, 40)
            self.assertRaises(sdl.SDLError, render.get_render_draw_color,
                              renderer)

        video.destroy_window(window)
Example #4
0
    def test_get_set_render_draw_blend_mode(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)

            modes = (video.SDL_BLENDMODE_NONE,
                     video.SDL_BLENDMODE_ADD,
                     video.SDL_BLENDMODE_BLEND,
                     video.SDL_BLENDMODE_MOD,
                     )
            for mode in modes:
                render.set_render_draw_blend_mode(renderer, mode)
                bmode = render.get_render_draw_blend_mode(renderer)
                self.assertEqual(bmode, mode)
            render.destroy_renderer(renderer)
            self.assertRaises(sdl.SDLError, render.set_render_draw_blend_mode,
                              renderer, video.SDL_BLENDMODE_ADD)
            self.assertRaises(sdl.SDLError, render.get_render_draw_blend_mode,
                              renderer)
        video.destroy_window(window)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    def test_gl_get_set_swap_interval(self):
        self.assertRaises(ValueError, video.gl_set_swap_interval, None)
        self.assertRaises(ValueError, video.gl_set_swap_interval, "Test")
        self.assertRaises(ValueError, video.gl_set_swap_interval, 1234)

        # No current OpenGL context yet.
        # Might crash on certain platforms, since the internal state of
        # SDL2 does not support calling GL functions without having a
        # GL library loaded.
        # self.assertRaises(sdl.SDLError, video.gl_set_swap_interval, 1)
        # self.assertRaises(sdl.SDLError, video.gl_set_swap_interval, 0)

        self.assertTrue(video.gl_load_library())
        window = video.create_window("OpenGL", 10, 10, 10, 10,
                                     video.SDL_WINDOW_OPENGL)
        ctx = video.gl_create_context(window)
        video.gl_make_current(window, ctx)

        video.gl_set_swap_interval(0)
        self.assertEqual(video.gl_get_swap_interval(), 0)
        video.gl_set_swap_interval(1)
        self.assertEqual(video.gl_get_swap_interval(), 1)

        video.gl_delete_context(ctx)
        video.destroy_window(window)

        video.gl_unload_library()
Example #8
0
 def test_get_shaped_window_mode(self):
     flags = (video.SDL_WINDOW_HIDDEN, )
     for flag in flags:
         window = shape.create_shaped_window("Test", 10, 10, 10, 10, flag)
         self.assertIsInstance(window, video.SDL_Window)
         mode = shape.get_shaped_window_mode(window)
         self.assertIsInstance(mode, shape.SDL_WindowShapeMode)
         video.destroy_window(window)
Example #9
0
 def test_get_window_wm_info(self):
     window = video.create_window("Test", 10, 10, 10, 10,
                                  video.SDL_WINDOW_HIDDEN)
     wminfo = syswm.get_window_wm_info(window)
     self.assertEqual(wminfo.version.major, 2)
     self.assertEqual(wminfo.version.minor, 0)
     self.assertEqual(wminfo.version.patch, 0)
     video.destroy_window(window)
Example #10
0
    def test_create_window_and_renderer(self):
        window, renderer = render.create_window_and_renderer \
            (10, 10, video.SDL_WINDOW_HIDDEN)
        self.assertIsInstance(window, video.SDL_Window)
        self.assertIsInstance(renderer, render.SDL_Renderer)

        render.destroy_renderer(renderer)
        video.destroy_window(window)
Example #11
0
 def test_update_window_surface(self):
     flags = (video.SDL_WINDOW_BORDERLESS,
              video.SDL_WINDOW_BORDERLESS | video.SDL_WINDOW_HIDDEN,
              video.SDL_WINDOW_RESIZABLE | video.SDL_WINDOW_MINIMIZED)
     for flag in flags:
         window = video.create_window("Test", 200, 200, 200, 200, flag)
         video.update_window_surface(window)
         video.destroy_window(window)
Example #12
0
 def test_get_set_window_title(self):
     window = video.create_window("Test", 10, 10, 10, 10, 0)
     self.assertEqual(video.get_window_title(window), "Test")
     video.set_window_title(window, "Hello there")
     self.assertEqual(video.get_window_title(window), "Hello there")
     video.set_window_title(window, 123456789)
     self.assertEqual(video.get_window_title(window), "123456789")
     video.destroy_window(window)
     self.assertRaises(sdl.SDLError, video.get_window_title, window)
Example #13
0
    def test_maximize_window(self):
        window = video.create_window("test_maximize_window", 200, 200,
                                     200, 200, video.SDL_WINDOW_RESIZABLE)
        video.show_window(window)
        doprint("""Please check, that a window with the title
'test_maximize_window' is shown""")
        video.maximize_window(window)
        doprint("Please check, if the window was maximized properly")
        video.destroy_window(window)
Example #14
0
    def test_minimize_window(self):
        window = video.create_window("test_minimize_window", 200, 200,
                                     200, 200, 0)
        video.show_window(window)
        doprint("""Please check, that a window with the title
'test_minimize_window' is shown""")
        video.minimize_window(window)
        doprint("Please check, if the window was minimized properly")
        video.destroy_window(window)
Example #15
0
 def test_get_window_id(self):
     flags = (video.SDL_WINDOW_BORDERLESS,
              video.SDL_WINDOW_BORDERLESS | video.SDL_WINDOW_HIDDEN)
     for flag in flags:
         window = video.create_window("Test", 10, 10, 10, 10, flag)
         id = video.get_window_id(window)
         self.assertIsInstance(id, int)
         video.destroy_window(window)
         self.assertRaises(sdl.SDLError, video.get_window_id, window)
Example #16
0
 def test_get_window_display_mode(self):
     flags = (video.SDL_WINDOW_BORDERLESS,
              video.SDL_WINDOW_BORDERLESS | video.SDL_WINDOW_HIDDEN)
     for flag in flags:
         window = video.create_window("Test", 10, 10, 10, 10, flag)
         dmode = video.get_window_display_mode(window)
         self.assertIsInstance(dmode, video.SDL_DisplayMode)
         video.destroy_window(window)
         self.assertRaises(sdl.SDLError, video.get_window_display_mode,
                           window)
Example #17
0
 def test_get_window_pixelformat(self):
     flags = (video.SDL_WINDOW_BORDERLESS,
              video.SDL_WINDOW_BORDERLESS | video.SDL_WINDOW_HIDDEN)
     for flag in flags:
         window = video.create_window("Test", 10, 10, 10, 10, flag)
         fmt = video.get_window_pixelformat(window)
         self.assertTrue(type(fmt) in(int, long))
         video.destroy_window(window)
         self.assertRaises(sdl.SDLError, video.get_window_pixelformat,
                           window)
Example #18
0
 def test_get_window_surface(self):
     flags = (video.SDL_WINDOW_BORDERLESS,
              video.SDL_WINDOW_BORDERLESS | video.SDL_WINDOW_HIDDEN,
              video.SDL_WINDOW_RESIZABLE | video.SDL_WINDOW_MINIMIZED)
     for flag in flags:
         window = video.create_window("Test", 200, 200, 200, 200, flag)
         sf = video.get_window_surface(window)
         self.assertIsInstance(sf, surface.SDL_Surface)
         video.destroy_window(window)
         self.assertRaises(sdl.SDLError, video.get_window_surface, window)
Example #19
0
    def test_raise_window(self):
        window = video.create_window("test_raise_window", 200, 200, 200, 200,
                                     0)
        video.show_window(window)
        doprint("""Please check, that a window with the title
'test_raise_window' is shown""")
        doprint("Move another window on top of the window, so it is hidden")
        video.raise_window(window)
        doprint("The window should be raised to the foreground now")
        video.destroy_window(window)
Example #20
0
    def test_hide_window(self):
        window = video.create_window("test_hide_window", 200, 200, 200, 200, 0)
        video.show_window(window)
        doprint("""Please check, if a window with the title
'test_hide_window' is shown""")
        video.hide_window(window)
        doprint("Please check, that the window is not shown anymore")
        video.show_window(window)
        doprint("Please check, if the window is shown again")
        video.destroy_window(window)
Example #21
0
 def test_get_set_window_position(self):
     window = video.create_window("Test", 10, 10, 10, 10, 0)
     self.assertEqual(video.get_window_position(window), (10, 10))
     video.set_window_position(window, 0, 0)
     self.assertEqual(video.get_window_position(window), (0, 0))
     video.set_window_position(window, 600, 900)
     self.assertEqual(video.get_window_position(window), (600, 900))
     video.set_window_position(window, -200, -10)
     self.assertEqual(video.get_window_position(window), (-200, -10))
     video.destroy_window(window)
Example #22
0
 def test_get_set_window_size(self):
     flags = video.SDL_WINDOW_BORDERLESS
     window = video.create_window("Test", 10, 10, 10, 10, flags)
     self.assertEqual(video.get_window_size(window), (10, 10))
     video.set_window_size(window, 0, 0)
     self.assertEqual(video.get_window_size(window), (0, 0))
     video.set_window_size(window, 600, 900)
     self.assertEqual(video.get_window_size(window), (600, 900))
     video.set_window_size(window, -200, -10)
     self.assertEqual(video.get_window_size(window), (-200, -10))
     video.destroy_window(window)
Example #23
0
    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)
Example #24
0
    def test_get_keyboard_focus(self):
        window = keyboard.get_keyboard_focus()
        self.assertEqual(window, None)
        rwin = video.create_window("", 10, 10, 10, 10, 0)
        window = keyboard.get_keyboard_focus()
        if window:
            self.assertEqual(video.get_window_id(window),
                             video.get_window_id(rwin))
        video.destroy_window(rwin)

        window = keyboard.get_keyboard_focus()
        self.assertEqual(window, None)
Example #25
0
 def test_create_window(self):
     # Borderless to ensure that the size check works
     flags = (video.SDL_WINDOW_BORDERLESS,
              video.SDL_WINDOW_BORDERLESS | video.SDL_WINDOW_HIDDEN)
     for flag in flags:
         window = video.create_window("Test", 10, 10, 10, 10, flag)
         self.assertIsInstance(window, video.SDL_Window)
         self.assertEqual(video.get_window_position(window), (10, 10))
         self.assertEqual(video.get_window_size(window), (10, 10))
         self.assertEqual(video.get_window_flags(window) & flag, flag)
         self.assertEqual(video.get_window_title(window), "Test")
         video.destroy_window(window)
Example #26
0
 def test_update_window_surface_rects(self):
     rectlist = [rect.SDL_Rect(), rect.SDL_Rect(10, 10, 10, 10),
                 rect.SDL_Rect(0, 0, 5, 4), rect.SDL_Rect(-5, -5, 6, 2)]
     flags = (video.SDL_WINDOW_BORDERLESS,
              video.SDL_WINDOW_BORDERLESS | video.SDL_WINDOW_HIDDEN,
              video.SDL_WINDOW_RESIZABLE | video.SDL_WINDOW_MINIMIZED)
     for flag in flags:
         window = video.create_window("Test", 200, 200, 200, 200, flag)
         self.assertRaises(sdl.SDLError, video.update_window_surface_rects,
                           window, rectlist)
         surface = video.get_window_surface(window)
         video.update_window_surface_rects(window, rectlist)
         video.destroy_window(window)
Example #27
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)
Example #28
0
    def test_is_shaped_window(self):
        flags = (video.SDL_WINDOW_HIDDEN, )
        for flag in flags:
            window = shape.create_shaped_window("Test", 10, 10, 10, 10, flag)
            self.assertIsInstance(window, video.SDL_Window)
            val = shape.is_shaped_window(window)
            self.assertTrue(val)
            video.destroy_window(window)

            window = video.create_window("Test", 10, 10, 10, 10, flag)
            self.assertIsInstance(window, video.SDL_Window)
            val = shape.is_shaped_window(window)
            self.assertFalse(val)
            video.destroy_window(window)
Example #29
0
    def test_gl_make_current(self):
        self.assertTrue(video.gl_load_library())

        self.assertRaises((AttributeError, TypeError),
                          video.gl_make_current, None, None)

        window = video.create_window("No OpenGL", 10, 10, 10, 10,
                                     video.SDL_WINDOW_BORDERLESS)
        self.assertRaises(sdl.SDLError, video.gl_create_context, window)
        video.destroy_window(window)

        self.assertRaises((AttributeError, TypeError),
                          video.gl_make_current, None, None)

        video.gl_unload_library()
Example #30
0
    def test_gl_extension_supported(self):
        self.assertFalse(video.gl_extension_supported("GL_EXT_bgra"))

        self.assertTrue(video.gl_load_library())
        window = video.create_window("OpenGL", 10, 10, 10, 10,
                                     video.SDL_WINDOW_OPENGL)
        ctx = video.gl_create_context(window)

        self.assertTrue(video.gl_extension_supported("GL_EXT_bgra"))

        video.gl_delete_context(ctx)
        video.destroy_window(window)
        video.gl_unload_library()

        self.assertFalse(video.gl_extension_supported("GL_EXT_bgra"))