diff --git a/KREngine/KREngine/Classes/KRLight.cpp b/KREngine/KREngine/Classes/KRLight.cpp index 76334e7..cfc7ee8 100644 --- a/KREngine/KREngine/Classes/KRLight.cpp +++ b/KREngine/KREngine/Classes/KRLight.cpp @@ -262,8 +262,11 @@ void KRLight::render(KRCamera *pCamera, std::vector &lights, const KR } } +#endif + void KRLight::allocateShadowBuffers(int cBuffers) { +#if TARGET_OS_IPHONE // First deallocate buffers no longer needed for(int iShadow = cBuffers; iShadow < KRENGINE_MAX_SHADOW_BUFFERS; iShadow++) { if (shadowDepthTexture[iShadow]) { @@ -307,6 +310,7 @@ void KRLight::allocateShadowBuffers(int cBuffers) { } m_cShadowBuffers = cBuffers; +#endif } @@ -329,7 +333,8 @@ int KRLight::configureShadowBufferViewports(const KRViewport &viewport) } void KRLight::renderShadowBuffers(KRCamera *pCamera) -{ +{ +#if TARGET_OS_IPHONE for(int iShadow=0; iShadow < m_cShadowBuffers; iShadow++) { if(!shadowValid[iShadow]) { shadowValid[iShadow] = true; @@ -371,9 +376,10 @@ void KRLight::renderShadowBuffers(KRCamera *pCamera) getScene().render(pCamera, m_shadowViewports[iShadow].getVisibleBounds(), m_shadowViewports[iShadow], KRNode::RENDER_PASS_SHADOWMAP, true); } } +#endif } -#endif + int KRLight::getShadowBufferCount() { diff --git a/KREngine/KREngine/Classes/KRMaterial.cpp b/KREngine/KREngine/Classes/KRMaterial.cpp index ed92c46..05a19a2 100644 --- a/KREngine/KREngine/Classes/KRMaterial.cpp +++ b/KREngine/KREngine/Classes/KRMaterial.cpp @@ -92,21 +92,33 @@ bool KRMaterial::save(const std::string& path) { fprintf(f, "Ns %f\n", m_ns); if(m_ambientMap.size()) { fprintf(f, "map_Ka %s.pvr -s %f %f -o %f %f\n", m_ambientMap.c_str(), m_ambientMapScale.x, m_ambientMapScale.y, m_ambientMapOffset.x, m_ambientMapOffset.y); + } else { + fprintf(f, "# map_Ka filename.pvr -s 1.0 1.0 -o 0.0 0.0\n"); } if(m_diffuseMap.size()) { fprintf(f, "map_Kd %s.pvr -s %f %f -o %f %f\n", m_diffuseMap.c_str(), m_diffuseMapScale.x, m_diffuseMapScale.y, m_diffuseMapOffset.x, m_diffuseMapOffset.y); + } else { + fprintf(f, "# map_Kd filename.pvr -s 1.0 1.0 -o 0.0 0.0\n"); } if(m_specularMap.size()) { fprintf(f, "map_Ks %s.pvr -s %f %f -o %f %f\n", m_specularMap.c_str(), m_specularMapScale.x, m_specularMapScale.y, m_specularMapOffset.x, m_specularMapOffset.y); + } else { + fprintf(f, "# map_Ks filename.pvr -s 1.0 1.0 -o 0.0 0.0\n"); } if(m_normalMap.size()) { fprintf(f, "map_Normal %s.pvr -s %f %f -o %f %f\n", m_normalMap.c_str(), m_normalMapScale.x, m_normalMapScale.y, m_normalMapOffset.x, m_normalMapOffset.y); + } else { + fprintf(f, "# map_Normal filename.pvr -s 1.0 1.0 -o 0.0 0.0\n"); } if(m_reflectionMap.size()) { fprintf(f, "map_Reflection %s.pvr -s %f %f -o %f %f\n", m_reflectionMap.c_str(), m_reflectionMapScale.x, m_reflectionMapScale.y, m_reflectionMapOffset.x, m_reflectionMapOffset.y); + } else { + fprintf(f, "# map_Reflection filename.pvr -s 1.0 1.0 -o 0.0 0.0\n"); } if(m_reflectionCube.size()) { fprintf(f, "map_ReflectionCube %s.pvr\n", m_reflectionCube.c_str()); + } else { + fprintf(f, "# map_ReflectionCube cubemapname"); } switch(m_alpha_mode) { case KRMATERIAL_ALPHA_MODE_OPAQUE: diff --git a/KREngine/KREngine/Classes/KRResource+fbx.cpp b/KREngine/KREngine/Classes/KRResource+fbx.cpp index c290863..bc25931 100644 --- a/KREngine/KREngine/Classes/KRResource+fbx.cpp +++ b/KREngine/KREngine/Classes/KRResource+fbx.cpp @@ -589,7 +589,7 @@ KRNode *LoadMesh(KRNode *parent_node, std::vector &resources, KFbx std::string light_map = pNode->GetName(); light_map.append("_lightmap"); - KRInstance *new_instance = new KRInstance(parent_node->getScene(), pNode->GetName(), pNode->GetName(), light_map, 0.0f); + KRInstance *new_instance = new KRInstance(parent_node->getScene(), pNode->GetName(), pNode->GetName(), light_map, 0.0f, true); return new_instance; } else { return NULL; diff --git a/KREngine/KREngine/Classes/KRShaderManager.cpp b/KREngine/KREngine/Classes/KRShaderManager.cpp index 8481813..36a56c6 100644 --- a/KREngine/KREngine/Classes/KRShaderManager.cpp +++ b/KREngine/KREngine/Classes/KRShaderManager.cpp @@ -182,7 +182,11 @@ bool KRShaderManager::selectShader(KRCamera &camera, const KRShader *pShader, co bool bSameShader = strcmp(pShader->getKey(), m_szCurrentShaderKey) == 0; if(!bSameShader) { strcpy(m_szCurrentShaderKey, pShader->getKey()); +#if TARGET_OS_IPHONE return pShader->bind(camera, viewport, matModel, lights, renderPass); +#else + return false; +#endif } else { return true; }