Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tdo22
10 / 10 / 1
Регистрация: 14.02.2013
Сообщений: 728
#1

SDL 2.0 Загрузка картинки - C++

05.01.2014, 21:25. Просмотров 1031. Ответов 1
Метки нет (Все метки)

Привет, прохожу уроки по SDL 1.2
но сам пользуюсь 2.0 и немножко по ходу обучения сам переписываю код чтоб работал на 2.0
Но вот проблему, не могу вывести картинку, в уроке делали так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
SDL_Surface* CSurface::OnLoad(char* File) {
    SDL_Surface* Surf_Temp = NULL;
    SDL_Surface* Surf_Return = NULL;
 
    if((Surf_Temp = SDL_LoadBMP(File)) == NULL) {
        return NULL;
    }
 
    Surf_Return = SDL_DisplayFormat(Surf_Temp);
    SDL_FreeSurface(Surf_Temp);
 
    return Surf_Return;
}
вместо SDL_DisplayFormat на 9 строке я написал
C++
1
Surf_Return = SDL_ConvertSurfaceFormat(Surf_Temp,SDL_PIXELFORMAT_RGB24,0);
так как функции SDL_DisplayFormat в 2.0 нету,
вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SDL_Surface* CSurface::OnLoad(char* File)
    {
        SDL_Surface* Surf_Temp = NULL;
        SDL_Surface* Surf_Return = NULL;
 
        if((Surf_Temp = SDL_LoadBMP(File)) == NULL)//Загрузка картинки, грузе тільки .BMP
            {
                printf("Fail to load Image");
                return NULL;
            }
 
        Surf_Return = SDL_ConvertSurfaceFormat(Surf_Temp,SDL_PIXELFORMAT_RGB24,0);//Тут я міняв
        SDL_FreeSurface(Surf_Temp);
 
        return Surf_Return;
    }
проблема в том, что оно не выводит картинку, но открывает ее.
Может я не правильно написал второй параметр SDL_PIXELFORMAT_RGB24 ?
Справка по SDL_ConvertSurfaceFormat
Есть также функция SDL_ConvertSurface но я незнаю подходит она мне
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2014, 21:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос SDL 2.0 Загрузка картинки (C++):

SDL : Неадекватная загрузка текстур - C++
Есть следующее приложение: Programm.h #include <windows.h> #include <SDL.h> #include <iostream> #include <string> #pragma once ...

Как вывести текст на экран, используя библиотеку SDL TTF для SDL 2? - C++
В официальной доке как-то скомкано написано. При инициализации SDL TTF и при загрузке шрифта ошибок нет. Но текст на экране не...

C++ SDL - C++
Всем привет! Работал я значи в SDL, а потом что-то нажалось ил не нажалось и вообщем теперь, при компиляции любого(работающего,...

инициализация SDL - C++
подключил #include "SDL.h" - проверил, запустилось. добавил первую строку из статьи про работу сдл SDL_Init(SDL_INIT_VIDEO); ...

Документация по SDL - C++
Люди , кто знает пожалуйста киньте ссылки на документацию по SDL =) Заранее спс!

Странность С++ и SDL - C++
Здравствуйте уважаемые форумчане возникла непонятная ситуация вообщем писал на С++ классы и учил OpenGL и все вроде нормально как вдруг...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
coloc
погромист
410 / 246 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
05.01.2014, 21:58 #2
tdo22, в СДЛ 2.0 нету уже сарфейс, нужно использовать текстуры. Грузится вроде бы так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
SDL_Texture* load(const std::string &path, SDL_Renderer *r) {
    SDL_Surface *full_image = IMG_Load(path.c_str());
    if(!full_image) {
        std::string error;
        error += "\nCouldn't load image: ";
        error += path;
        throw error;
    }
 
    SDL_Texture *texture = SDL_CreateTextureFromSurface(r, full_image);
    SDL_FreeSurface(full_image);
    return texture;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2014, 21:58
Привет! Вот еще темы с ответами:

Оптимизация SDL - C++
Начал изучать SDL. Все бы хорошо, но процесс созданного окна кушает 25% ресурсов процессора. Когда делал по этим урокам:...

SDL mouse - C++
если обработка нажатия на левую кнопку мыши это if (occur.type == SDL_MOUSEBUTTONDOWN) if(occur.button.button == SDL_BUTTON_LEFT)...

Установка SDL 2 - C++
Из-за некоторых проблем с обработкой клавиатуры решил перейти с GLUT на SDL 2. Вопрос: как на Ubuntu установить этот самый SDL 2? ...

SDL - Конфигурирование - C++
Всем доброго времени суток. Недавно натолкнулся проблему с настройкой SDL. Дело в том, что мне нужно отключить переадресацию stdio с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru