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

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

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

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

05.01.2014, 21:25. Просмотров 953. Ответов 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 Загрузка картинки
Посмотрите здесь:

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

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

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

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

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

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

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

Утечка памяти в SDL - C++
Здравствуйте! Для проверки завершения работы я использую условие на нулевую ссылку int Game::exec() { while (m_pWindow...

Ошибка в приложении sdl - C++
Начинаю разбираться в sdl. Написал фреймворк с графикой. Вижуал студия ошибок не показывает, но при компиляции выдает много ошибок,...

Sdl 2.0 Dev-cpp - C++
Под спойлером лог компилятора, по сути не может найти winapifamily.h, где его брать, куда пихать итд, сдл поставил полностью ...

Подключение SDL 2.0 MinGW - C++
Доброго времени суток. Закинул все файлы SDL по своим местам, но при компиляции через командную строку выводится следующее: Содержимое...

Прилинковать SDL к V.S. 2010 - C++
Доброго всем вечера. Я знаю, что подобных тем было много, но, справиться с проблемой не могу. Скачал с оф.сайта все .h, SDL.lib,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
05.01.2014, 21:58     SDL 2.0 Загрузка картинки #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;
}
Yandex
Объявления
05.01.2014, 21:58     SDL 2.0 Загрузка картинки
Ответ Создать тему
Опции темы

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