Fixed bug in material loader that resulted in corrupted displays for materials with > 64 characters in the name
--HG-- extra : convert_revision : svn%3A7752d6cf-9f14-4ad2-affc-04f1e67b81a5/trunk%4099
This commit is contained in:
@@ -90,7 +90,8 @@ void KRInstance::render(KRCamera *pCamera, KRContext *pContext, KRBoundingVolume
|
|||||||
projectionMatrix = pCamera->getProjectionMatrix();
|
projectionMatrix = pCamera->getProjectionMatrix();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_pModel != NULL && (getExtents(pContext).test_intersect(frustrumVolume) || renderPass == RENDER_PASS_SHADOWMAP)) {
|
if(m_pModel != NULL) {
|
||||||
|
if(getExtents(pContext).test_intersect(frustrumVolume) || renderPass == RENDER_PASS_SHADOWMAP) {
|
||||||
//if(m_pModel != NULL && (getBounds().visible(viewMatrix * projectionMatrix) || renderPass == RENDER_PASS_SHADOWMAP)) {
|
//if(m_pModel != NULL && (getBounds().visible(viewMatrix * projectionMatrix) || renderPass == RENDER_PASS_SHADOWMAP)) {
|
||||||
|
|
||||||
if(m_pLightMap == NULL && m_lightMap.size()) {
|
if(m_pLightMap == NULL && m_lightMap.size()) {
|
||||||
@@ -115,6 +116,7 @@ void KRInstance::render(KRCamera *pCamera, KRContext *pContext, KRBoundingVolume
|
|||||||
m_pModel->render(pCamera, pContext, matModelToView, mvpmatrix, cameraPosObject, lightDirection, pShadowMatrices, shadowDepthTextures, cShadowBuffers, m_pLightMap, renderPass);
|
m_pModel->render(pCamera, pContext, matModelToView, mvpmatrix, cameraPosObject, lightDirection, pShadowMatrices, shadowDepthTextures, cShadowBuffers, m_pLightMap, renderPass);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -125,6 +127,7 @@ void KRInstance::calcExtents(KRContext *pContext)
|
|||||||
|
|
||||||
KRNode::calcExtents(pContext);
|
KRNode::calcExtents(pContext);
|
||||||
loadModel();
|
loadModel();
|
||||||
|
if(m_pModel != NULL) {
|
||||||
KRMesh *pMesh = m_pModel->getMesh();
|
KRMesh *pMesh = m_pModel->getMesh();
|
||||||
KRBoundingVolume mesh_bounds = KRBoundingVolume(pMesh->getMinPoint(), pMesh->getMaxPoint(), m_modelMatrix);
|
KRBoundingVolume mesh_bounds = KRBoundingVolume(pMesh->getMinPoint(), pMesh->getMaxPoint(), m_modelMatrix);
|
||||||
if(m_pExtents) {
|
if(m_pExtents) {
|
||||||
@@ -132,6 +135,7 @@ void KRInstance::calcExtents(KRContext *pContext)
|
|||||||
} else {
|
} else {
|
||||||
m_pExtents = new KRBoundingVolume(mesh_bounds);
|
m_pExtents = new KRBoundingVolume(mesh_bounds);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool KRInstance::hasTransparency() {
|
bool KRInstance::hasTransparency() {
|
||||||
@@ -145,6 +149,7 @@ bool KRInstance::hasTransparency() {
|
|||||||
KRAABB KRInstance::getBounds() {
|
KRAABB KRInstance::getBounds() {
|
||||||
calcModelMatrix();
|
calcModelMatrix();
|
||||||
loadModel();
|
loadModel();
|
||||||
|
assert(m_pModel != NULL);
|
||||||
|
|
||||||
KRMesh *pMesh = m_pModel->getMesh();
|
KRMesh *pMesh = m_pModel->getMesh();
|
||||||
KRVector3 meshMin = pMesh->getMinPoint();
|
KRVector3 meshMin = pMesh->getMinPoint();
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ vector<KRMesh::Submesh *> KRMesh::getSubmeshes() {
|
|||||||
pSubmesh->vertex_count = pPackMaterial->vertex_count;
|
pSubmesh->vertex_count = pPackMaterial->vertex_count;
|
||||||
|
|
||||||
strncpy(pSubmesh->szMaterialName, pPackMaterial->szName, 256);
|
strncpy(pSubmesh->szMaterialName, pPackMaterial->szName, 256);
|
||||||
pSubmesh->szMaterialName[63] = '\0';
|
pSubmesh->szMaterialName[255] = '\0';
|
||||||
//fprintf(stderr, "Submesh material: \"%s\"\n", pSubmesh->szMaterialName);
|
//fprintf(stderr, "Submesh material: \"%s\"\n", pSubmesh->szMaterialName);
|
||||||
m_submeshes.push_back(pSubmesh);
|
m_submeshes.push_back(pSubmesh);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,7 +67,6 @@ KRModel::~KRModel() {
|
|||||||
void KRModel::render(KRCamera *pCamera, KRContext *pContext, KRMat4 &matModelToView, KRMat4 &mvpMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRTexture *pLightMap, KRNode::RenderPass renderPass) {
|
void KRModel::render(KRCamera *pCamera, KRContext *pContext, KRMat4 &matModelToView, KRMat4 &mvpMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRTexture *pLightMap, KRNode::RenderPass renderPass) {
|
||||||
|
|
||||||
//fprintf(stderr, "Rendering model: %s\n", m_name.c_str());
|
//fprintf(stderr, "Rendering model: %s\n", m_name.c_str());
|
||||||
|
|
||||||
if(renderPass != KRNode::RENDER_PASS_FLARES) {
|
if(renderPass != KRNode::RENDER_PASS_FLARES) {
|
||||||
|
|
||||||
if(m_materials.size() == 0) {
|
if(m_materials.size() == 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user