2014-11-13 2 views
1

SDL2를 테스트하기 위해 간단한 프로그램을 만들었지 만, 어떻게 작동하는지 이해할 수없는 것들이 있습니다. 그래서SDL2 창/표면에 대한 설명?

window = SDL_CreateWindow("Window name", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN); 
windowSurface = SDL_GetWindowSurface(window); 

첫 번째 줄 : :이 (내가하지 않는 부분)이 이제

SDL_Window *window = nullptr; 
SDL_Surface *windowSurface = nullptr; 

:

그래서 나는 창 표면을 만든 내가 사용하는 SDL_createWindow() 윈도우라는 창을 만드는 함수로 가정합니다. 두번째 줄, 나는 무슨 일이 벌어지고 있는지 전혀 모른다 - 설명? 일부 뒤에

SDL_BlitSurface(currentImage, NULL, windowSurface, NULL); 
SDL_UpdateWindowSurface(window); 

당신이 붙여 넣은 코드가하는 다음

답변

1

을 창문 등을 파괴/다시 nullptr에 포인터를 설정하고 프로그램을 종료하는 코드를 정리 : 마지막으로

나는이 있습니다 things : "창 이름"이라는 SDL 창을 만들고, 가로 및 세로 위치를 가운데로 설정하고, 창 크기를 640 x 480으로 설정하고 그림과 같이 표시합니다. 두 번째 줄은이 창에 대한 SDL 곡면 바인딩을 가져옵니다.

의미 : 창 만들기, 실제로는 OpenGL 창과 GPU 텍스처 (표면, SDL2에는 텍스처 용으로 별도의 클래스가 있음)를 그립니다. GetWindowSurface를 사용하여 획득 한 표면을 수정하면 방금 작성한 창의 픽셀이 수정됩니다.

Bliting은 대상 텍스처에 픽셀 배열을 적용합니다. 즉,이 이미지/미리 렌더링 된 프레임 등을 얻었습니다.이 이미지를이 표면에 적용하여 보여줄 수 있습니다. 블리 잇.

난이 도움 바랍니다 :>

당신은 여기에 SDL LazyFoo 이전 SDL에 대한 전체 튜토리얼과 모든 것을 설명을 제공

LazyFoo

Official SDL wiki에 대한 자세한 정보를 찾을 수 있습니다 하지만 많은 것들이 SDL2에서 동일합니다.

+0

감사합니다. 더 의미가있는 것처럼 보입니다. 나는 LazyFoo를보고있었습니다. 거기에 훌륭한 정보가 있습니다. – goldenFox