Полноэкранный режим в SDL1.2 делает позиции ложными

Разрешение моего экрана 1920х1080. Для того, чтобы иметь полноэкранное окно, я звоню SDL_SetVideoMode(1920, 1080, 32, SDL_HWSURFACE | SDL_FULLSCREEN);, Однако, когда я пытаюсь добавить изображение на этот экран с позициями x = 0 и y = 0, оно располагается за пределами экрана, как если бы мой экран имел более низкое разрешение, чем окно. Он показывает только часть окна.

Для того, чтобы увидеть изображение, мне нужно дать image.x а также image.y значение, которое больше 0. Например, вот результат с image.x = 190 а также image.y = 100:

Как видите, изображение застряло в самом левом верхнем углу. Это может дать вам представление о том, где оно находится, примерно, когда image.x = 0 а также image.y = 0,

Вот мой код:

int     main (int argc, char **argv)
{
    SDL_Surface *screen = NULL;
    SDL_Surface *image = NULL;
    SDL_Rect pos_image;

    SDL_Init(SDL_INIT_VIDEO);
    screen = SDL_SetVideoMode(1920, 1080, 32, SDL_SWSURFACE | SDL_FULLSCREEN);
    SDL_WM_SetCaption("SDL Test", NULL);
    image = SDL_LoadBMP("pack_images_sdz/image.bmp");
    SDL_SetColorKey(image, SDL_SRCCOLORKEY, SDL_MapRGB(image->format, 0, 0, 255));
    pos_image.x = 190;
    pos_image.y = 100;
    SDL_BlitSurface(image, NULL, screen, &pos_image);
    SDL_Flip(screen);
    pause();
    SDL_Quit();
    return EXIT_SUCCESS;
}

Я хотел бы знать, почему это так. почему позиции x = 0 и y = 0 находятся за пределами экрана?

1 ответ

это может быть ширина и высота вашего изображения, я, конечно, не очень разбираюсь в SDL1.2, но эта проблема может быть связана с изображением, попробуйте другое изображение и перезапустите программу, если это не сработает, я бы посоветовал вам переустановите SDL1.2, удачи

Другие вопросы по тегам