Skip to content

Commit b2cb4b6

Browse files
committed
Update joint system, and skysun render
1 parent d3bd478 commit b2cb4b6

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

Projects/Skylicht/Components/Source/SkySun/CSkySunRenderer.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,15 +86,20 @@ namespace Skylicht
8686

8787
IMeshBuffer* buffer = sky->Buffer;
8888

89-
CShaderMaterial::setMaterial(sky->SkySunMaterial);
89+
SMaterial& mat = buffer->getMaterial();
90+
CMaterial* material = sky->SkySunMaterial;
91+
92+
material->updateTexture(mat);
93+
94+
CShaderMaterial::setMaterial(material);
9095

9196
world.makeIdentity();
9297
world.setTranslation(cameraPosition);
9398
world.setScale(cameraFar * 0.9f);
9499

95100
driver->setTransform(video::ETS_WORLD, world);
96101

97-
driver->setMaterial(buffer->getMaterial());
102+
driver->setMaterial(mat);
98103
driver->drawMeshBuffer(buffer);
99104
}
100105
}

Projects/Skylicht/Components/Source/SpriteDraw/CSpriteRenderer.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -246,12 +246,15 @@ namespace Skylicht
246246
// if change texture or last sprite
247247
if (i == n - 1 || currentTexture != sprites[i + 1]->Frame->Image->Texture)
248248
{
249-
// flush render
250-
m_meshBuffer->getMaterial().setTexture(0, currentTexture);
251249
m_meshBuffer->setDirty();
252250

251+
// flush render
252+
SMaterial& mat = m_meshBuffer->getMaterial();
253+
mat.setTexture(0, currentTexture);
254+
253255
driver->setTransform(video::ETS_WORLD, core::IdentityMatrix);
254-
driver->setMaterial(m_meshBuffer->getMaterial());
256+
257+
driver->setMaterial(mat);
255258
driver->drawMeshBuffer(m_meshBuffer);
256259

257260
// clean

Projects/Skylicht/Engine/Source/RenderMesh/CJointAnimationSystem.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,10 @@ namespace Skylicht
7676
CEntity* entity = entities[i];
7777

7878
CJointData* joint = GET_ENTITY_DATA(entity, CJointData);
79-
if (joint->RootIndex != 0)
79+
CWorldTransformData* transform = GET_ENTITY_DATA(entity, CWorldTransformData);
80+
81+
if (transform->NeedValidate && joint->RootIndex != 0)
8082
{
81-
CWorldTransformData* transform = GET_ENTITY_DATA(entity, CWorldTransformData);
8283
CWorldInverseTransformData* rootInvTransform = GET_ENTITY_DATA(allEntities[joint->RootIndex], CWorldInverseTransformData);
8384

8485
if (rootInvTransform != NULL)

0 commit comments

Comments
 (0)