diff --git a/src/SHADERed/Engine/Model.cpp b/src/SHADERed/Engine/Model.cpp index a22fed82..bb421f7b 100644 --- a/src/SHADERed/Engine/Model.cpp +++ b/src/SHADERed/Engine/Model.cpp @@ -78,7 +78,7 @@ namespace ed { // read file via ASSIMP Assimp::Importer importer; - const aiScene* scene = importer.ReadFile(path, aiProcess_Triangulate | aiProcess_FlipUVs); + const aiScene* scene = importer.ReadFile(path, aiProcess_Triangulate); // check for errors if (!scene || scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode) // if is Not Zero diff --git a/src/SHADERed/Objects/ObjectManager.cpp b/src/SHADERed/Objects/ObjectManager.cpp index 985d6b29..5d6c482a 100644 --- a/src/SHADERed/Objects/ObjectManager.cpp +++ b/src/SHADERed/Objects/ObjectManager.cpp @@ -281,7 +281,7 @@ namespace ed { height = ddsImage->header.height; } else { int nrChannels = 0; - stbi_set_flip_vertically_on_load(1); + stbi_set_flip_vertically_on_load(0); data = stbi_load(path.c_str(), &width, &height, &nrChannels, STBI_rgb_alpha); } @@ -793,7 +793,7 @@ namespace ed { bool ObjectManager::ReloadTexture(ObjectManagerItem* item, const std::string& newPath) { - stbi_set_flip_vertically_on_load(1); + stbi_set_flip_vertically_on_load(0); for (int i = 0; i < m_items.size(); i++) { if (m_items[i] == item) { diff --git a/src/SHADERed/Objects/RenderEngine.cpp b/src/SHADERed/Objects/RenderEngine.cpp index 756f1d41..b4ed3e05 100644 --- a/src/SHADERed/Objects/RenderEngine.cpp +++ b/src/SHADERed/Objects/RenderEngine.cpp @@ -2192,8 +2192,6 @@ namespace ed { m_msgs->Add(MessageStack::Type::Error, items[i]->Name, "Failed to compile the shader"); m_shaders[i] = 0; } else { - m_msgs->ClearGroup(items[i]->Name); - m_shaders[i] = glCreateProgram(); glAttachShader(m_shaders[i], vs); glAttachShader(m_shaders[i], ps); @@ -2201,7 +2199,12 @@ namespace ed { if (data->TSUsed) glAttachShader(m_shaders[i], tcs); if (data->TSUsed) glAttachShader(m_shaders[i], tes); glLinkProgram(m_shaders[i]); - // XXX TODO check link status + + if (!gl::CheckShaderLinkStatus(m_shaders[i], shaderMessage)) { + m_msgs->Add(MessageStack::Type::Error, items[i]->Name, shaderMessage); + m_msgs->Add(MessageStack::Type::Error, items[i]->Name, "Failed to link the shader"); + } else + m_msgs->ClearGroup(items[i]->Name); m_debugShaders[i] = glCreateProgram(); glAttachShader(m_debugShaders[i], m_generalDebugShader); diff --git a/src/SHADERed/UI/ObjectListUI.cpp b/src/SHADERed/UI/ObjectListUI.cpp index 63c9896f..683e1d12 100644 --- a/src/SHADERed/UI/ObjectListUI.cpp +++ b/src/SHADERed/UI/ObjectListUI.cpp @@ -82,6 +82,8 @@ namespace ed { if (oItem->Type == ObjectType::CubeMap) { m_cubePrev.Draw(tex); ImGui::Image((void*)(intptr_t)m_cubePrev.GetTexture(), ImVec2(IMAGE_CONTEXT_WIDTH, ((float)imgWH) * IMAGE_CONTEXT_WIDTH), ImVec2(0, 1), ImVec2(1, 0)); + } else if (oItem->Type == ObjectType::Texture) { + ImGui::Image(*(void **)&tex, ImVec2(IMAGE_CONTEXT_WIDTH, ((float)imgWH) * IMAGE_CONTEXT_WIDTH)); } else if (!isBuf && !isImg3D && !isPluginOwner) ImGui::Image((void*)(intptr_t)tex, ImVec2(IMAGE_CONTEXT_WIDTH, ((float)imgWH) * IMAGE_CONTEXT_WIDTH), ImVec2(0, 1), ImVec2(1, 0)); else if (hasPluginPreview) @@ -105,6 +107,8 @@ namespace ed { m_tex3DPrev.Draw(tex, IMAGE_CONTEXT_WIDTH, ((float)imgWH) * IMAGE_CONTEXT_WIDTH); ImGui::Image((void*)(intptr_t)m_tex3DPrev.GetTexture(), ImVec2(IMAGE_CONTEXT_WIDTH, ((float)imgWH) * IMAGE_CONTEXT_WIDTH)); } + else if (oItem->Type == ObjectType::Texture) + ImGui::Image(*(void **)&tex, ImVec2(IMAGE_CONTEXT_WIDTH, ((float)imgWH) * IMAGE_CONTEXT_WIDTH)); else if (!isBuf && !isImg3D && !isPluginOwner) ImGui::Image((void*)(intptr_t)tex, ImVec2(IMAGE_CONTEXT_WIDTH, ((float)imgWH) * IMAGE_CONTEXT_WIDTH), ImVec2(0, 1), ImVec2(1, 0)); else if (hasPluginPreview) diff --git a/src/SHADERed/UI/ObjectPreviewUI.cpp b/src/SHADERed/UI/ObjectPreviewUI.cpp index c355e403..5d4c112d 100644 --- a/src/SHADERed/UI/ObjectPreviewUI.cpp +++ b/src/SHADERed/UI/ObjectPreviewUI.cpp @@ -379,8 +379,8 @@ namespace ed { const glm::vec2& zPos = m_zoom[i].GetZoomPosition(); const glm::vec2& zSize = m_zoom[i].GetZoomSize(); - - ImGui::Image((void*)(intptr_t)item->Texture, aSize, ImVec2(zPos.x, zPos.y + zSize.y), ImVec2(zPos.x + zSize.x, zPos.y)); + + ImGui::Image(*(void **)&item->Texture, aSize, ImVec2(zPos.x, zPos.y), ImVec2(zPos.x + zSize.x, zPos.y + zSize.y)); if (ImGui::IsItemHovered()) { m_curHoveredItem = i;