2015-08-09 103 views
0

我是圖形化編程的新手,並且學習了關於SDL的簡單教程。 因此,我面臨一個問題,我無法找到答案: 每當我打開一個窗口,它只是複製下面的任何東西,而不是像教程中的白色。我認爲這可能是由於一些隱藏的渲染緩衝區(?)。SDL2和OpenGL信息

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