Fixed bug: cannot load images in vs2015.

This commit is contained in:
txf
2016-08-25 15:16:46 +08:00
parent de9593226f
commit 8baa9bf99e

View File

@@ -32,7 +32,7 @@ void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
void mouse_callback(GLFWwindow* window, double xpos, double ypos); void mouse_callback(GLFWwindow* window, double xpos, double ypos);
void Do_Movement(); void Do_Movement();
GLuint loadTexture(GLchar const * path); GLuint loadTexture(GLchar const * path);
GLuint loadCubemap(std::vector<const GLchar*> faces); GLuint loadCubemap(std::vector<std::string> faces);
// Camera // Camera
Camera camera(glm::vec3(0.0f, 0.0f, 3.0f)); Camera camera(glm::vec3(0.0f, 0.0f, 3.0f));
@@ -198,13 +198,13 @@ int main()
#pragma endregion #pragma endregion
// Cubemap (Skybox) // Cubemap (Skybox)
std::vector<const GLchar*> faces; std::vector<std::string> faces;
faces.push_back(FileSystem::getPath("resources/textures/skybox/right.jpg").c_str()); faces.push_back(FileSystem::getPath("resources/textures/skybox/right.jpg"));
faces.push_back(FileSystem::getPath("resources/textures/skybox/left.jpg").c_str()); faces.push_back(FileSystem::getPath("resources/textures/skybox/left.jpg"));
faces.push_back(FileSystem::getPath("resources/textures/skybox/top.jpg").c_str()); faces.push_back(FileSystem::getPath("resources/textures/skybox/top.jpg"));
faces.push_back(FileSystem::getPath("resources/textures/skybox/bottom.jpg").c_str()); faces.push_back(FileSystem::getPath("resources/textures/skybox/bottom.jpg"));
faces.push_back(FileSystem::getPath("resources/textures/skybox/back.jpg").c_str()); faces.push_back(FileSystem::getPath("resources/textures/skybox/back.jpg"));
faces.push_back(FileSystem::getPath("resources/textures/skybox/front.jpg").c_str()); faces.push_back(FileSystem::getPath("resources/textures/skybox/front.jpg"));
GLuint skyboxTexture = loadCubemap(faces); GLuint skyboxTexture = loadCubemap(faces);
// Draw as wireframe // Draw as wireframe
@@ -272,7 +272,7 @@ int main()
// -Y (bottom) // -Y (bottom)
// +Z (front)? (CHECK THIS) // +Z (front)? (CHECK THIS)
// -Z (back)? // -Z (back)?
GLuint loadCubemap(std::vector<const GLchar*> faces) GLuint loadCubemap(std::vector<std::string> faces)
{ {
GLuint textureID; GLuint textureID;
glGenTextures(1, &textureID); glGenTextures(1, &textureID);
@@ -284,7 +284,7 @@ GLuint loadCubemap(std::vector<const GLchar*> faces)
glBindTexture(GL_TEXTURE_CUBE_MAP, textureID); glBindTexture(GL_TEXTURE_CUBE_MAP, textureID);
for (GLuint i = 0; i < faces.size(); i++) for (GLuint i = 0; i < faces.size(); i++)
{ {
image = SOIL_load_image(faces[i], &width, &height, 0, SOIL_LOAD_RGB); image = SOIL_load_image(faces[i].c_str(), &width, &height, 0, SOIL_LOAD_RGB);
glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image); glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
} }
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR);