Create the main window.

        Args:
            size (tuple): The width and height of the window.
            samples (int): The number of samples.

        Keyword Args:
            fullscreen (bool): Fullscreen?
            title (bool): The title of the window.
            threaded (bool): Threaded?

        Returns:
            Window: The main window.

def create_window(size=None, samples=16, *, fullscreen=False, title=None, threaded=True) -> Window:
    '''
        Create the main window.

        Args:
            size (tuple): The width and height of the window.
            samples (int): The number of samples.

        Keyword Args:
            fullscreen (bool): Fullscreen?
            title (bool): The title of the window.
            threaded (bool): Threaded?

        Returns:
            Window: The main window.
    '''

    if size is None:
        width, height = 1280, 720

    else:
        width, height = size

    if samples < 0 or (samples & (samples - 1)) != 0:
        raise Exception('Invalid number of samples: %d' % samples)

    window = Window.__new__(Window)
    window.wnd = glwnd.create_window(width, height, samples, fullscreen, title, threaded)
    return window