2015-08-09 2 views
0

Я новичок в графическом программировании и после простого руководства по SDL. Настоящим я столкнулся с проблемой, на которую я не могу найти ответ: Всякий раз, когда я открываю окно, он просто копирует все, что находится под ним, и не является белым, как в учебнике. Я думаю, это может быть связано с некоторым скрытым буфером визуализации (?).SDL2 и OpenGL confict

Terminal and window that just copied background

Я бегу следующий код:

SDL_Init(SDL_INIT_EVERYTHING); 

_window = SDL_CreateWindow("EvolutionEngine", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 
          _screenwidht, _screenheight, SDL_WINDOW_OPENGL); 


SDL_Event evnt; 
while(SDL_PollEvent(&evnt) == true) 
{ 
    switch (evnt.type) 
    { 
    case SDL_QUIT: 
     _gameState = GameState::EXIT; 
     break; 
    case SDL_MOUSEMOTION: 
     std::cout << "(" << evnt.motion.x << "," << evnt.motion.y << ")\n"; 
     break; 
    } 
} 

(Они находятся в различных функций, но только соответствующий код проблемы). Мой файл QMAKE выглядит следующим образом:

QT  += core 
QT  -= gui 
TARGET = Evolution 
CONFIG += console 
CONFIG -= app_bundle 
TEMPLATE = app 
CONFIG += link_pkgconfig 
PKGCONFIG += sdl2 

QMAKE_CXXFLAGS += -std=c++11 
SOURCES += \ 
... 
HEADERS += \ 
... 

ли кто-нибудь есть идея о том, что может привести ли это, как я могу это исправить?

ответ

2

Вы запрашиваете окно с формой контекста opengl SDL. Но вы никогда ничего не рисуете (включая очистку буфера). Я не знаю, почему вы ожидаете от этого белого изображения. Содержимое вашего буфера кадра будет просто полностью undefined. И то, что вы получаете, является одной из многих возможностей того, как может выглядеть такой неопределенный контент.

+0

Хорошо, спасибо! Я был просто смущен, потому что парень в учебнике получил белый фон с самого начала, но я подумал, что это может быть что-то вроде этого. – RunOrVeith

1

Чтобы зафиксировать печать положения мыши, замените + на < <.

+0

Я только что заметил это! Очень любительский от меня – RunOrVeith

Смежные вопросы