[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Speed of mouse position capture



Well, I just did testing, and DirectX does sample the mouse position faster in full screen mode, but still skips positions under load. My experience with it not skipping must have been a side effect of my dirty rectangle processing lightening the load on the graphic engine.

If you want to test for yourself, here's another disposable code bit:

import pygame
import os

FULLSCREEN = 1
ENGINE = 'directx' # 'windib'

def main():
    os.environ['SDL_VIDEODRIVER'] = ENGINE
    lastpos = (0, 0)
    quit = 0
    pygame.init()
    if FULLSCREEN:
        flags = pygame.FULLSCREEN
    else:
        flags = 0
    bg = pygame.display.set_mode((640, 480), flags, 32)
    font = pygame.font.Font(None, 24)
    lineheight = font.get_height()
    text = None
    mousepos = []
    while not quit:
        pygame.event.pump()
        for event in pygame.event.get():
            if (event.type == pygame.QUIT) or \
               (event.type == pygame.KEYDOWN and event.key == 27):
                quit = 1
                break
            elif event.type == pygame.MOUSEMOTION:
                if event.pos == lastpos:
                    pass
                else:
                    lastpos = event.pos
                    mousepos.append('%d, %d' % (lastpos[0], lastpos[1]))
                    mousepos = mousepos[-20:]
                    bg.fill((0, 0, 0))
                    for i, line in enumerate(mousepos):
                        text = font.render(line, 1, (255, 255, 255))
                        bg.blit(text, (0, i*lineheight))
                    pygame.display.flip()
    pygame.quit()


main()