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

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

Войти
Регистрация
Восстановить пароль
 
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
#1

Баг в SDL2.0? - C++

30.10.2013, 21:49. Просмотров 777. Ответов 13
Метки нет (Все метки)

Здравтсвуйте. Нашел сегодня странное поведение SDL2.0. Стандартный игровой цикл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <windows.h>
#include <SDL/SDL.h>
 
int WINAPI WinMain(HINSTANCE argc, HINSTANCE a, LPSTR argv, int b) {
    SDL_Init(SDL_INIT_EVERYTHING);
 
    SDL_Window *screen = SDL_CreateWindow("My Game Window",
                          SDL_WINDOWPOS_UNDEFINED,
                          SDL_WINDOWPOS_UNDEFINED,
                          800, 600,
                          0);
 
    SDL_Renderer *renderer = SDL_CreateRenderer(screen, -1, SDL_RENDERER_ACCELERATED);
    bool running = true;
    SDL_Event event;
 
    while(running) {
        while(SDL_PollEvent(&event)) {
            if(event.type == SDL_QUIT || event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_ESCAPE) {
                running = false;
            }
        }
 
        SDL_RenderClear(renderer);
        SDL_RenderPresent(renderer);
    }
 
    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(screen);
    SDL_Quit();
    return 0;
}
Смотрю в диспетчере на память: она растет! По 100-200 кб. Путем тыка обнаружил, что во всем этом стоит функция SDL_RenderPresent. Или я пьян или действительно это баг. Протестируйте кто нибуть на своей машине. Буду очень благодарен.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2013, 21:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Баг в SDL2.0? (C++):

std::regex : баг на сайте или баг компилятора? - C++
http://en.cppreference.com/w/cpp/regex/regex_match этот код выкидывает throw... Добавлено через 35 секунд компилятор gcc 4.8

Подключение SDL2 в проект - C++
Подскажите, пожалуйста, что делаю не так. Пытаюсь включить библиотеку SDL2 в проект. Сам SDL2 c lib и dll распаковал в...

SDL2 оперативная память - C++
Помогите пожалуйста. Проблема в следующем: написал небольшую игрушку в VS C++ с использованием библиотеки sdl2, при запуске смотрел...

Проклятый SDL_SetVideoMode в SDL2 - C++
все делал по уроку и облазил большую часть ссылок гугла по ошибке, но не нашел причину. Вот файл .срр: ...

Отсутствует SDL2.dll - C++
Всем доброй ночи и дня. Решил окунуться в мир геймдева, но сразу же столкнулся с проблемой, а именно: скачал SDL, установил, создал проект,...

SDL2 в Visual Studio 2013 - C++
Создал проект в Visual Studio 2013 и подключил к нему SDL2. Но проект странное себя ведет. Работает только когда в int main прописаны...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Max Dark
30.10.2013, 22:11
  #2

Не по теме:

к теме о багах SDL2...
у SDL2 есть толи баг толи фишка - если создать более одного окна, то при попытке закрытия любого окна сообщение SDL_QUIT не посылается... OS ubuntu 13.10 x64

1
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.10.2013, 22:18 #3
Цитата Сообщение от anubis1768 Посмотреть сообщение
она растет! По 100-200 кб
За какое время?
1
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
30.10.2013, 22:20  [ТС] #4
Cra3y, если у вас есть установленный SDL, то попробуйте выполнить этот код. Мне вот интересно: это же логично не возможно, чтобы разработчики такое допустили, значит я что то накосячил. Ну а что - пока что не знаю.

Добавлено через 56 секунд
Цитата Сообщение от alsav22 Посмотреть сообщение
За какое время?
Каждая секунда в промежутке 100-200кб. А у вас все нормально выполняется да?
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.10.2013, 22:21 #5
Ничего особенного не увидел.
0
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
30.10.2013, 22:24  [ТС] #6
Цитата Сообщение от alsav22 Посмотреть сообщение
Ничего особенного не увидел.
То есть у вас не растет память или вы ничего особенного не увидили в таком росте? Уточните пожалуйста. Быть может, компилятор mingw с SDL не дружит. Глупое предположение, но пока что лучшего у меня ничего нет
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.10.2013, 22:26 #7
Цитата Сообщение от anubis1768 Посмотреть сообщение
То есть у вас не растет память или вы ничего особенного не увидили в таком росте?
Не растёт.
1
Max Dark
шКодер самоучка
1825 / 1627 / 592
Регистрация: 09.10.2013
Сообщений: 3,634
Записей в блоге: 6
Завершенные тесты: 2
30.10.2013, 22:34 #8
У меня так же роста памяти не замечено
Возможно, то что вы наблюдаете, это особенность Windows версии
1
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
30.10.2013, 22:47  [ТС] #9
Cra3y, но у alsav22 также Windows (насколько я понял) и рост не замечен. И вообще, я не понимаю, почему когда я вместо WinMain пишу int main(int argc, char **argv) то ругается, что нету функции мейн, хотя в SDL есть макрос SDL_Main, который для конкретной платформы должен разворачиватся в нужный main. Быть может, я в настройках проекта CodeBlocks что то накосячил. Пошел качать Видимую студию, если и там будет такая лажа, то уже и не знаю дальше что делать...
0
Max Dark
шКодер самоучка
1825 / 1627 / 592
Регистрация: 09.10.2013
Сообщений: 3,634
Записей в блоге: 6
Завершенные тесты: 2
30.10.2013, 22:55 #10
Под Windows надо создавать консольный проект для использования main
под *nix он всегда консольный)
0
Max Dark
30.10.2013, 23:10
  #11

Не по теме:

Попробуйте откомпилить следующий код sdlapp.zip

1
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.10.2013, 23:19 #12
Цитата Сообщение от anubis1768 Посмотреть сообщение
Быть может, я в настройках проекта CodeBlocks что то накосячил.
....
0
Миниатюры
Баг в SDL2.0?  
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
30.10.2013, 23:51  [ТС] #13
Cra3y, Скомпилировалось. alsav22, ну и что?? Все равно, даже если выставить консольное приложение, оно ругается на стандартный мейн. Ну ближе к самой проблеме: память хоть и поднимается, но в определенный момент падает почти к начальной позиции. Наверное, какая то особенность на моей системе, потому что екзешник от Визуал студии ведет себя таким же образом. Думаю, что на этом не нужно зацыкливатся: компилируется вот и хорошо. Всем спасибо за помощь и внимание.
0
Max Dark
шКодер самоучка
1825 / 1627 / 592
Регистрация: 09.10.2013
Сообщений: 3,634
Записей в блоге: 6
Завершенные тесты: 2
30.10.2013, 23:57 #14
Я думаю что просто происходит кэширование выделенной памяти для программы.
А после определенного времени кешированая, но неиспользованная память возвращается системе
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2013, 23:57
Привет! Вот еще темы с ответами:

SDL2 BlitScaled и прозрачность - масштабирование изображения - C++
Здравствуйте. Пару дней назад начал работать с SDL2, возникла некоторая проблема, никак не могу масштабировать изображение с прозрачностью....

Узнать какая кнопка была нажата SDL2.0 - C++
Привет, как в этом примере узнать какая кнопка была нажата, я хочу сделать для каждой кнопки отдельное действия, но не могу понять, как...

Как подключить библиотеку sdl2 к Visual Studio? - C++
помогите пожалуйста проблема такая: хочу подключить библиотеку sdl2 к VS хидеры вроде подрубились SDL2.dll просто положил в папку...

Visual Studio 2015 Previev отказываеться работать с SDL2 - C++
Проект отлично компилируется в VS 2013 Express, но на отказ не хочет работать в VS 2015, выдавая ошибки: error LNK2019: ссылка на...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.10.2013, 23:57
Ответ Создать тему
Опции темы

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