File tree Expand file tree Collapse file tree 4 files changed +26
-26
lines changed
Expand file tree Collapse file tree 4 files changed +26
-26
lines changed Original file line number Diff line number Diff line change @@ -3,6 +3,6 @@ public native class meshMeshAppearance extends ISerializable {
33 public native let chunkMaterials: array<CName>;
44 public native let tags: array<CName>;
55
6- public native func SetMesh(mesh: ref<CMesh>)
7- public native func ResetMaterialCache()
6+ public static native func SetMesh(self: ref<meshMeshAppearance>, mesh: ref<CMesh>)
7+ public static native func ResetMaterialCache(self: ref<meshMeshAppearance> )
88}
Original file line number Diff line number Diff line change @@ -8,13 +8,31 @@ namespace App
88{
99struct MeshAppearanceEx : Red::meshMeshAppearance
1010{
11- void SetMesh (const Red::Handle<Red::CMesh>& aMesh)
11+ static void SetMesh (const Red::Handle<Red::meshMeshAppearance>& aSelf, const Red::Handle<Red::CMesh>& aMesh)
1212 {
13- Raw::MeshAppearance::Owner::Set (this , aMesh);
13+ Raw::MeshAppearance::Owner::Set (aSelf , aMesh);
1414 }
1515
16- void ResetMaterialCache ()
16+ static void ResetMaterialCache (const Red::Handle<Red::meshMeshAppearance>& aSelf )
1717 {
18+ auto & materialJob = Raw::MeshAppearance::MaterialJob::Ref (aSelf);
19+ auto & materialLock = Raw::MeshAppearance::MaterialLock::Ref (aSelf);
20+ auto & materialPtr = Raw::MeshAppearance::MaterialData::Ref (aSelf);
21+ auto & materialMap = Raw::MeshAppearance::MaterialMap::Ref (aSelf);
22+ auto & materialCached = Raw::MeshAppearance::ForceCache::Ref (aSelf);
23+
24+ Red::WaitForJob (materialJob, std::chrono::milliseconds (5000 ));
25+
26+ std::scoped_lock _ (materialLock);
27+
28+ if (materialPtr.data )
29+ {
30+ Raw::RenderData::Release (materialPtr.data );
31+ materialPtr.data = nullptr ;
32+ }
33+
34+ materialMap.Clear ();
35+ materialCached = false ;
1836 }
1937};
2038}
Original file line number Diff line number Diff line change 11#include " ComponentWrapper.hpp"
2+ #include " App/Depot/MeshEx.hpp"
23#include " Red/Mesh.hpp"
34
45namespace
@@ -389,26 +390,7 @@ bool App::ComponentWrapper::ResetMaterialCache() const
389390 if (!meshApp)
390391 return false ;
391392
392- {
393- auto & materialJob = Raw::MeshAppearance::MaterialJob::Ref (meshApp);
394- auto & materialLock = Raw::MeshAppearance::MaterialLock::Ref (meshApp);
395- auto & materialPtr = Raw::MeshAppearance::MaterialData::Ref (meshApp);
396- auto & materialMap = Raw::MeshAppearance::MaterialMap::Ref (meshApp);
397- auto & materialCached = Raw::MeshAppearance::ForceCache::Ref (meshApp);
398-
399- Red::WaitForJob (materialJob, std::chrono::milliseconds (5000 ));
400-
401- std::scoped_lock _ (materialLock);
402-
403- if (materialPtr.data )
404- {
405- Raw::RenderData::Release (materialPtr.data );
406- materialPtr.data = nullptr ;
407- }
408-
409- materialMap.Clear ();
410- materialCached = false ;
411- }
393+ MeshAppearanceEx::ResetMaterialCache (meshApp);
412394
413395 return true ;
414396}
Original file line number Diff line number Diff line change 11set_xmakever (" 2.5.9" )
22
33set_project (" Codeware" )
4- set_version (" 1.18.0 " , {build = " %y%m%d%H%M" })
4+ set_version (" 1.18.1 " , {build = " %y%m%d%H%M" })
55
66set_arch (" x64" )
77set_languages (" cxx2a" )
You can’t perform that action at this time.
0 commit comments