이봐, 나는 SDL_Surface을로드하고 OpenGL을 텍스처로 저장이 스크립트가 있습니다SDL_surface
typedef GLuint texture;
texture load_texture(std::string fname){
SDL_Surface *tex_surf = IMG_Load(fname.c_str());
if(!tex_surf){
return 0;
}
texture ret;
glGenTextures(1, &ret);
glBindTexture(GL_TEXTURE_2D, ret);
glTexImage2D(GL_TEXTURE_2D, 0, 3, tex_surf->w, tex_surf->h, 0, GL_RGB, GL_UNSIGNED_BYTE, tex_surf->pixels);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
SDL_FreeSurface(tex_surf);
return ret;
}
문제는 그것이 작동하지 않는입니다. main 함수에서 함수를 호출하면, 단지 이미지를로드하지 않고 (그냥 드로잉 컬러를 표시 할 때), 메인 함수 외부의 함수에서 호출 할 때 프로그램이 충돌합니다.
2D(GL_TEXTURE_2D, 0, 3, tex_surf->w, tex_surf->h, 0, GL_RGB, GL_UNSIGNED_BYTE, tex_surf->pixels);
는 사람이의 실수를 볼 수 있습니다 은 프로그램 충돌하게이 줄이야?
문제를 나타내는 최소한의 편집 가능한 출처를 게시하십시오. 더 나은 답변을 얻을 수 있습니다. 문제가 무엇인지 이론화하는 것은 매우 어렵습니다. – dirkgently