SLD_Window * 윈도우를 다른 클래스에 전달하려고합니다. 올바른 프로그래밍 방법인지는 모르겠지만 시도하고 싶습니다. main.cpp에 SDL_Window * Window를 만들고 포인터 * Window를 다른 클래스에 전달합니다. 모든 렌더러 함수가 윈도우에서 아무런 영향을 미치지 않는 것을 알았지 만, window.cpp 스크린에 복사했을 때 빨간색이었습니다. 포인터를 전달하는 것처럼 보이지만 completly 새 창을 만듭니다. 메인 클래스에서 정의 된 동일한 윈도우에서 여러 클래스에서 어떻게 작업 할 수 있습니까? 모든 그리기 기능을 유지할 Draw.cpp를 작성하고자하기 때문에 이와 같습니다.SDL_Window를 다른 클래스에 전달
MAIN.CPP
SDL_Window *WindowMain = NULL;
window Window(WindowMain , name);
renderer = SDL_CreateRenderer(WindowMain , -1, SDL_RENDERER_ACCELERATED);
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 100);
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer)
window.h
class window {
public:
window(SDL_Window *Window, const char* Nazwa);
virtual ~window();
private:
SDL_Window *okno;
};
window.cpp는
window::window(SDL_Window *Window, const char* Nazwa) {
okno = Window;
if(SDL_Init(SDL_INIT_VIDEO) !=0)
{
printf("Unable to initialize SDL due error: %s", SDL_GetError());
}
okno = SDL_CreateWindow(Nazwa,
SDL_WINDOWPOS_CENTERED, // X position
SDL_WINDOWPOS_CENTERED, // Y position
800, // Width
600, // Height
SDL_WINDOW_SHOWN);
if(okno == NULL){
printf("Unable to create window due error: %s", SDL_GetError());
}
}
window::~window() {
SDL_DestroyWindow(okno);
SDL_Quit();
}
. 읽기 어려움 ... –
문제는 'Window'매개 변수가 가리키는 창을 기대하고 있지만 실제로는 아무 것도하지 않는다는 것입니다. 당신은 분명히'window' 클래스에'okno' 필드를 가지고 있습니다 만, 그 필드를 다른 값으로 설정해도'main'에서 선언 한'okno'는 변경되지 않습니다. 전체 응용 프로그램을 작성하기 전에 기본 C++ 지식을 다듬어야합니다. – Cubic