Refactoring of streamer code to integrate texture and vbo memory management in progress.
--HG-- branch : nfb
This commit is contained in:
@@ -91,14 +91,10 @@
|
|||||||
E43F70DD181B20E400136169 /* KRLODSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E43F70DA181B20E300136169 /* KRLODSet.cpp */; };
|
E43F70DD181B20E400136169 /* KRLODSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E43F70DA181B20E300136169 /* KRLODSet.cpp */; };
|
||||||
E43F70DE181B20E400136169 /* KRLODSet.h in Headers */ = {isa = PBXBuildFile; fileRef = E43F70DB181B20E400136169 /* KRLODSet.h */; };
|
E43F70DE181B20E400136169 /* KRLODSet.h in Headers */ = {isa = PBXBuildFile; fileRef = E43F70DB181B20E400136169 /* KRLODSet.h */; };
|
||||||
E43F70DF181B20E400136169 /* KRLODSet.h in Headers */ = {isa = PBXBuildFile; fileRef = E43F70DB181B20E400136169 /* KRLODSet.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
E43F70DF181B20E400136169 /* KRLODSet.h in Headers */ = {isa = PBXBuildFile; fileRef = E43F70DB181B20E400136169 /* KRLODSet.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
E43F70E51824D9AB00136169 /* KRTextureStreamer.mm in Sources */ = {isa = PBXBuildFile; fileRef = E43F70E31824D9AB00136169 /* KRTextureStreamer.mm */; };
|
E43F70E51824D9AB00136169 /* KRStreamer.mm in Sources */ = {isa = PBXBuildFile; fileRef = E43F70E31824D9AB00136169 /* KRStreamer.mm */; };
|
||||||
E43F70E61824D9AB00136169 /* KRTextureStreamer.mm in Sources */ = {isa = PBXBuildFile; fileRef = E43F70E31824D9AB00136169 /* KRTextureStreamer.mm */; };
|
E43F70E61824D9AB00136169 /* KRStreamer.mm in Sources */ = {isa = PBXBuildFile; fileRef = E43F70E31824D9AB00136169 /* KRStreamer.mm */; };
|
||||||
E43F70E71824D9AB00136169 /* KRTextureStreamer.h in Headers */ = {isa = PBXBuildFile; fileRef = E43F70E41824D9AB00136169 /* KRTextureStreamer.h */; };
|
E43F70E71824D9AB00136169 /* KRStreamer.h in Headers */ = {isa = PBXBuildFile; fileRef = E43F70E41824D9AB00136169 /* KRStreamer.h */; };
|
||||||
E43F70E81824D9AB00136169 /* KRTextureStreamer.h in Headers */ = {isa = PBXBuildFile; fileRef = E43F70E41824D9AB00136169 /* KRTextureStreamer.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
E43F70E81824D9AB00136169 /* KRStreamer.h in Headers */ = {isa = PBXBuildFile; fileRef = E43F70E41824D9AB00136169 /* KRStreamer.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
E43F70FF1824E73100136169 /* KRMeshStreamer.mm in Sources */ = {isa = PBXBuildFile; fileRef = E43F70FD1824E73100136169 /* KRMeshStreamer.mm */; };
|
|
||||||
E43F71001824E73100136169 /* KRMeshStreamer.mm in Sources */ = {isa = PBXBuildFile; fileRef = E43F70FD1824E73100136169 /* KRMeshStreamer.mm */; };
|
|
||||||
E43F71011824E73100136169 /* KRMeshStreamer.h in Headers */ = {isa = PBXBuildFile; fileRef = E43F70FE1824E73100136169 /* KRMeshStreamer.h */; };
|
|
||||||
E43F71021824E73100136169 /* KRMeshStreamer.h in Headers */ = {isa = PBXBuildFile; fileRef = E43F70FE1824E73100136169 /* KRMeshStreamer.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
|
||||||
E4409D2916FA748700310F76 /* font.tga in Resources */ = {isa = PBXBuildFile; fileRef = E41AE1DD16B124CA00980428 /* font.tga */; };
|
E4409D2916FA748700310F76 /* font.tga in Resources */ = {isa = PBXBuildFile; fileRef = E41AE1DD16B124CA00980428 /* font.tga */; };
|
||||||
E44F38241683B23000399B5D /* KRRenderSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = E44F38231683B22C00399B5D /* KRRenderSettings.h */; settings = {ATTRIBUTES = (); }; };
|
E44F38241683B23000399B5D /* KRRenderSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = E44F38231683B22C00399B5D /* KRRenderSettings.h */; settings = {ATTRIBUTES = (); }; };
|
||||||
E44F38251683B23000399B5D /* KRRenderSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = E44F38231683B22C00399B5D /* KRRenderSettings.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
E44F38251683B23000399B5D /* KRRenderSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = E44F38231683B22C00399B5D /* KRRenderSettings.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
@@ -438,7 +434,7 @@
|
|||||||
E40BA45315EFF79500D7C3DD /* KRAABB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KRAABB.h; sourceTree = "<group>"; };
|
E40BA45315EFF79500D7C3DD /* KRAABB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KRAABB.h; sourceTree = "<group>"; };
|
||||||
E40F982A184A7A2700CFA4D8 /* KRMeshQuad.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KRMeshQuad.cpp; sourceTree = "<group>"; };
|
E40F982A184A7A2700CFA4D8 /* KRMeshQuad.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KRMeshQuad.cpp; sourceTree = "<group>"; };
|
||||||
E40F982B184A7A2700CFA4D8 /* KRMeshQuad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KRMeshQuad.h; sourceTree = "<group>"; };
|
E40F982B184A7A2700CFA4D8 /* KRMeshQuad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KRMeshQuad.h; sourceTree = "<group>"; };
|
||||||
E40F9830184A7BAC00CFA4D8 /* KRSprite.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KRSprite.cpp; sourceTree = "<group>"; };
|
E40F9830184A7BAC00CFA4D8 /* KRSprite.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = KRSprite.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
||||||
E40F9831184A7BAC00CFA4D8 /* KRSprite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KRSprite.h; sourceTree = "<group>"; };
|
E40F9831184A7BAC00CFA4D8 /* KRSprite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KRSprite.h; sourceTree = "<group>"; };
|
||||||
E414BAE11435557300A668C4 /* KRModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = KRModel.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
E414BAE11435557300A668C4 /* KRModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = KRModel.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
||||||
E414BAE41435558800A668C4 /* KRModel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = KRModel.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
E414BAE41435558800A668C4 /* KRModel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = KRModel.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
||||||
@@ -478,10 +474,8 @@
|
|||||||
E43B0AD515DDCA0D00A5CB9F /* KRContextObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KRContextObject.h; sourceTree = "<group>"; };
|
E43B0AD515DDCA0D00A5CB9F /* KRContextObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KRContextObject.h; sourceTree = "<group>"; };
|
||||||
E43F70DA181B20E300136169 /* KRLODSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KRLODSet.cpp; sourceTree = "<group>"; };
|
E43F70DA181B20E300136169 /* KRLODSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KRLODSet.cpp; sourceTree = "<group>"; };
|
||||||
E43F70DB181B20E400136169 /* KRLODSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KRLODSet.h; sourceTree = "<group>"; };
|
E43F70DB181B20E400136169 /* KRLODSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KRLODSet.h; sourceTree = "<group>"; };
|
||||||
E43F70E31824D9AB00136169 /* KRTextureStreamer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KRTextureStreamer.mm; sourceTree = "<group>"; };
|
E43F70E31824D9AB00136169 /* KRStreamer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; path = KRStreamer.mm; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
||||||
E43F70E41824D9AB00136169 /* KRTextureStreamer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KRTextureStreamer.h; sourceTree = "<group>"; };
|
E43F70E41824D9AB00136169 /* KRStreamer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = KRStreamer.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
||||||
E43F70FD1824E73100136169 /* KRMeshStreamer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KRMeshStreamer.mm; sourceTree = "<group>"; };
|
|
||||||
E43F70FE1824E73100136169 /* KRMeshStreamer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KRMeshStreamer.h; sourceTree = "<group>"; };
|
|
||||||
E44F38231683B22C00399B5D /* KRRenderSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KRRenderSettings.h; sourceTree = "<group>"; };
|
E44F38231683B22C00399B5D /* KRRenderSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KRRenderSettings.h; sourceTree = "<group>"; };
|
||||||
E44F38271683B24400399B5D /* KRRenderSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KRRenderSettings.cpp; sourceTree = "<group>"; };
|
E44F38271683B24400399B5D /* KRRenderSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KRRenderSettings.cpp; sourceTree = "<group>"; };
|
||||||
E450273716E0491D00FDEC5C /* KRReverbZone.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = KRReverbZone.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
E450273716E0491D00FDEC5C /* KRReverbZone.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = KRReverbZone.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
||||||
@@ -1020,8 +1014,6 @@
|
|||||||
E4CA10EE1637BD58005D9400 /* KRTextureTGA.cpp */,
|
E4CA10EE1637BD58005D9400 /* KRTextureTGA.cpp */,
|
||||||
E460292516681CFE00261BB9 /* KRTextureAnimated.h */,
|
E460292516681CFE00261BB9 /* KRTextureAnimated.h */,
|
||||||
E460292716681D1000261BB9 /* KRTextureAnimated.cpp */,
|
E460292716681D1000261BB9 /* KRTextureAnimated.cpp */,
|
||||||
E43F70E31824D9AB00136169 /* KRTextureStreamer.mm */,
|
|
||||||
E43F70E41824D9AB00136169 /* KRTextureStreamer.h */,
|
|
||||||
E404701E18695DD200F01F42 /* KRTextureKTX.cpp */,
|
E404701E18695DD200F01F42 /* KRTextureKTX.cpp */,
|
||||||
E404701F18695DD200F01F42 /* KRTextureKTX.h */,
|
E404701F18695DD200F01F42 /* KRTextureKTX.h */,
|
||||||
);
|
);
|
||||||
@@ -1039,8 +1031,6 @@
|
|||||||
E4C454AE167BB8FC003586CD /* KRMeshCube.cpp */,
|
E4C454AE167BB8FC003586CD /* KRMeshCube.cpp */,
|
||||||
E4C454B1167BC04B003586CD /* KRMeshSphere.h */,
|
E4C454B1167BC04B003586CD /* KRMeshSphere.h */,
|
||||||
E4C454B4167BC05C003586CD /* KRMeshSphere.cpp */,
|
E4C454B4167BC05C003586CD /* KRMeshSphere.cpp */,
|
||||||
E43F70FD1824E73100136169 /* KRMeshStreamer.mm */,
|
|
||||||
E43F70FE1824E73100136169 /* KRMeshStreamer.h */,
|
|
||||||
E40F982A184A7A2700CFA4D8 /* KRMeshQuad.cpp */,
|
E40F982A184A7A2700CFA4D8 /* KRMeshQuad.cpp */,
|
||||||
E40F982B184A7A2700CFA4D8 /* KRMeshQuad.h */,
|
E40F982B184A7A2700CFA4D8 /* KRMeshQuad.h */,
|
||||||
);
|
);
|
||||||
@@ -1159,6 +1149,8 @@
|
|||||||
E491016613C99B9E0098455B /* kraken */ = {
|
E491016613C99B9E0098455B /* kraken */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
E43F70E31824D9AB00136169 /* KRStreamer.mm */,
|
||||||
|
E43F70E41824D9AB00136169 /* KRStreamer.h */,
|
||||||
E488399915F92BA300BD66D5 /* Managers */,
|
E488399915F92BA300BD66D5 /* Managers */,
|
||||||
E461A173152E59DF00F2044A /* Math */,
|
E461A173152E59DF00F2044A /* Math */,
|
||||||
E461A170152E598200F2044A /* Resources */,
|
E461A170152E598200F2044A /* Resources */,
|
||||||
@@ -1341,7 +1333,7 @@
|
|||||||
E461A15C152E563100F2044A /* KRDirectionalLight.h in Headers */,
|
E461A15C152E563100F2044A /* KRDirectionalLight.h in Headers */,
|
||||||
E461A168152E570700F2044A /* KRSpotLight.h in Headers */,
|
E461A168152E570700F2044A /* KRSpotLight.h in Headers */,
|
||||||
E468448117FFDF51001F1FA1 /* KRLocator.h in Headers */,
|
E468448117FFDF51001F1FA1 /* KRLocator.h in Headers */,
|
||||||
E43F70E71824D9AB00136169 /* KRTextureStreamer.h in Headers */,
|
E43F70E71824D9AB00136169 /* KRStreamer.h in Headers */,
|
||||||
E4F975321536220900FD60B2 /* KRNode.h in Headers */,
|
E4F975321536220900FD60B2 /* KRNode.h in Headers */,
|
||||||
E48C696F15374F5B00232E28 /* KRContext.h in Headers */,
|
E48C696F15374F5B00232E28 /* KRContext.h in Headers */,
|
||||||
E46F4A0B155E002100CCF8B8 /* KRDataBlock.h in Headers */,
|
E46F4A0B155E002100CCF8B8 /* KRDataBlock.h in Headers */,
|
||||||
@@ -1392,7 +1384,6 @@
|
|||||||
E4AE635F1704FB0A00B460CD /* KRLODGroup.h in Headers */,
|
E4AE635F1704FB0A00B460CD /* KRLODGroup.h in Headers */,
|
||||||
E4EC73C31720B1FF0065299F /* KRVector4.h in Headers */,
|
E4EC73C31720B1FF0065299F /* KRVector4.h in Headers */,
|
||||||
E48CF944173453990005EBBB /* KRFloat.h in Headers */,
|
E48CF944173453990005EBBB /* KRFloat.h in Headers */,
|
||||||
E43F71011824E73100136169 /* KRMeshStreamer.h in Headers */,
|
|
||||||
E45134B81746A4A300443C21 /* KRBehavior.h in Headers */,
|
E45134B81746A4A300443C21 /* KRBehavior.h in Headers */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
@@ -1487,8 +1478,7 @@
|
|||||||
E43F70DF181B20E400136169 /* KRLODSet.h in Headers */,
|
E43F70DF181B20E400136169 /* KRLODSet.h in Headers */,
|
||||||
E4AE63601704FB0A00B460CD /* KRLODGroup.h in Headers */,
|
E4AE63601704FB0A00B460CD /* KRLODGroup.h in Headers */,
|
||||||
E45134B91746A4A300443C21 /* KRBehavior.h in Headers */,
|
E45134B91746A4A300443C21 /* KRBehavior.h in Headers */,
|
||||||
E43F71021824E73100136169 /* KRMeshStreamer.h in Headers */,
|
E43F70E81824D9AB00136169 /* KRStreamer.h in Headers */,
|
||||||
E43F70E81824D9AB00136169 /* KRTextureStreamer.h in Headers */,
|
|
||||||
E40F982F184A7A2700CFA4D8 /* KRMeshQuad.h in Headers */,
|
E40F982F184A7A2700CFA4D8 /* KRMeshQuad.h in Headers */,
|
||||||
E40F9835184A7BAC00CFA4D8 /* KRSprite.h in Headers */,
|
E40F9835184A7BAC00CFA4D8 /* KRSprite.h in Headers */,
|
||||||
E48CF945173453990005EBBB /* KRFloat.h in Headers */,
|
E48CF945173453990005EBBB /* KRFloat.h in Headers */,
|
||||||
@@ -1715,7 +1705,6 @@
|
|||||||
E497B946151BA99500D3DC67 /* KRVector2.cpp in Sources */,
|
E497B946151BA99500D3DC67 /* KRVector2.cpp in Sources */,
|
||||||
E497B94D151BCF2500D3DC67 /* KRResource.cpp in Sources */,
|
E497B94D151BCF2500D3DC67 /* KRResource.cpp in Sources */,
|
||||||
E497B950151BD2CE00D3DC67 /* KRResource+obj.cpp in Sources */,
|
E497B950151BD2CE00D3DC67 /* KRResource+obj.cpp in Sources */,
|
||||||
E43F70FF1824E73100136169 /* KRMeshStreamer.mm in Sources */,
|
|
||||||
E461A156152E54F800F2044A /* KRLight.cpp in Sources */,
|
E461A156152E54F800F2044A /* KRLight.cpp in Sources */,
|
||||||
E461A159152E557E00F2044A /* KRPointLight.cpp in Sources */,
|
E461A159152E557E00F2044A /* KRPointLight.cpp in Sources */,
|
||||||
E468447F17FFDF51001F1FA1 /* KRLocator.cpp in Sources */,
|
E468447F17FFDF51001F1FA1 /* KRLocator.cpp in Sources */,
|
||||||
@@ -1742,7 +1731,7 @@
|
|||||||
E4324BA816444C230043185B /* KRParticleSystem.cpp in Sources */,
|
E4324BA816444C230043185B /* KRParticleSystem.cpp in Sources */,
|
||||||
E4324BAE16444E120043185B /* KRParticleSystemNewtonian.cpp in Sources */,
|
E4324BAE16444E120043185B /* KRParticleSystemNewtonian.cpp in Sources */,
|
||||||
E460292816681D1000261BB9 /* KRTextureAnimated.cpp in Sources */,
|
E460292816681D1000261BB9 /* KRTextureAnimated.cpp in Sources */,
|
||||||
E43F70E51824D9AB00136169 /* KRTextureStreamer.mm in Sources */,
|
E43F70E51824D9AB00136169 /* KRStreamer.mm in Sources */,
|
||||||
E428C2F51669611600A16EDF /* KRAnimationManager.cpp in Sources */,
|
E428C2F51669611600A16EDF /* KRAnimationManager.cpp in Sources */,
|
||||||
E428C2FB1669613200A16EDF /* KRAnimation.cpp in Sources */,
|
E428C2FB1669613200A16EDF /* KRAnimation.cpp in Sources */,
|
||||||
E428C3071669628A00A16EDF /* KRAnimationCurve.cpp in Sources */,
|
E428C3071669628A00A16EDF /* KRAnimationCurve.cpp in Sources */,
|
||||||
@@ -1817,7 +1806,6 @@
|
|||||||
E488399515F928CA00BD66D5 /* KRBundle.cpp in Sources */,
|
E488399515F928CA00BD66D5 /* KRBundle.cpp in Sources */,
|
||||||
E488399D15F92BE000BD66D5 /* KRBundleManager.cpp in Sources */,
|
E488399D15F92BE000BD66D5 /* KRBundleManager.cpp in Sources */,
|
||||||
E43F70DD181B20E400136169 /* KRLODSet.cpp in Sources */,
|
E43F70DD181B20E400136169 /* KRLODSet.cpp in Sources */,
|
||||||
E43F71001824E73100136169 /* KRMeshStreamer.mm in Sources */,
|
|
||||||
E4B175AD161F5A1000B8FB80 /* KRTexture.cpp in Sources */,
|
E4B175AD161F5A1000B8FB80 /* KRTexture.cpp in Sources */,
|
||||||
E4B175B3161F5FAF00B8FB80 /* KRTextureCube.cpp in Sources */,
|
E4B175B3161F5FAF00B8FB80 /* KRTextureCube.cpp in Sources */,
|
||||||
E40F9833184A7BAC00CFA4D8 /* KRSprite.cpp in Sources */,
|
E40F9833184A7BAC00CFA4D8 /* KRSprite.cpp in Sources */,
|
||||||
@@ -1835,7 +1823,7 @@
|
|||||||
E428C31A1669A25D00A16EDF /* KRAnimationAttribute.cpp in Sources */,
|
E428C31A1669A25D00A16EDF /* KRAnimationAttribute.cpp in Sources */,
|
||||||
E416AA9D1671375C000F6786 /* KRAnimationCurveManager.cpp in Sources */,
|
E416AA9D1671375C000F6786 /* KRAnimationCurveManager.cpp in Sources */,
|
||||||
E480BE6D1671C653004EC8AD /* KRBone.cpp in Sources */,
|
E480BE6D1671C653004EC8AD /* KRBone.cpp in Sources */,
|
||||||
E43F70E61824D9AB00136169 /* KRTextureStreamer.mm in Sources */,
|
E43F70E61824D9AB00136169 /* KRStreamer.mm in Sources */,
|
||||||
E4C454B0167BB8FC003586CD /* KRMeshCube.cpp in Sources */,
|
E4C454B0167BB8FC003586CD /* KRMeshCube.cpp in Sources */,
|
||||||
E4C454B6167BC05C003586CD /* KRMeshSphere.cpp in Sources */,
|
E4C454B6167BC05C003586CD /* KRMeshSphere.cpp in Sources */,
|
||||||
E4C454BC167BD248003586CD /* KRHitInfo.cpp in Sources */,
|
E4C454BC167BD248003586CD /* KRHitInfo.cpp in Sources */,
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ void KRAmbientZone::render(KRCamera *pCamera, std::vector<KRPointLight *> &point
|
|||||||
GLDEBUG(glEnable(GL_DEPTH_TEST));
|
GLDEBUG(glEnable(GL_DEPTH_TEST));
|
||||||
GLDEBUG(glDepthFunc(GL_LEQUAL));
|
GLDEBUG(glDepthFunc(GL_LEQUAL));
|
||||||
GLDEBUG(glDepthRangef(0.0, 1.0));
|
GLDEBUG(glDepthRangef(0.0, 1.0));
|
||||||
std::vector<KRMesh *> sphereModels = getContext().getModelManager()->getModel("__sphere");
|
std::vector<KRMesh *> sphereModels = getContext().getMeshManager()->getModel("__sphere");
|
||||||
if(sphereModels.size()) {
|
if(sphereModels.size()) {
|
||||||
for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) {
|
for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) {
|
||||||
sphereModels[0]->renderSubmesh(i, renderPass, getName(), "visualize_overlay");
|
sphereModels[0]->renderSubmesh(i, renderPass, getName(), "visualize_overlay");
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ void KRAudioSource::render(KRCamera *pCamera, std::vector<KRPointLight *> &point
|
|||||||
GLDEBUG(glEnable(GL_DEPTH_TEST));
|
GLDEBUG(glEnable(GL_DEPTH_TEST));
|
||||||
GLDEBUG(glDepthFunc(GL_LEQUAL));
|
GLDEBUG(glDepthFunc(GL_LEQUAL));
|
||||||
GLDEBUG(glDepthRangef(0.0, 1.0));
|
GLDEBUG(glDepthRangef(0.0, 1.0));
|
||||||
std::vector<KRMesh *> sphereModels = getContext().getModelManager()->getModel("__sphere");
|
std::vector<KRMesh *> sphereModels = getContext().getMeshManager()->getModel("__sphere");
|
||||||
if(sphereModels.size()) {
|
if(sphereModels.size()) {
|
||||||
for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) {
|
for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) {
|
||||||
sphereModels[0]->renderSubmesh(i, renderPass, getName(), "visualize_overlay");
|
sphereModels[0]->renderSubmesh(i, renderPass, getName(), "visualize_overlay");
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ void KRBone::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_lights
|
|||||||
|
|
||||||
KRVector3 rim_color;
|
KRVector3 rim_color;
|
||||||
if(getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, sphereModelMatrix, point_lights, directional_lights, spot_lights, 0, renderPass, rim_color, 0.0f)) {
|
if(getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, sphereModelMatrix, point_lights, directional_lights, spot_lights, 0, renderPass, rim_color, 0.0f)) {
|
||||||
std::vector<KRMesh *> sphereModels = getContext().getModelManager()->getModel("__sphere");
|
std::vector<KRMesh *> sphereModels = getContext().getMeshManager()->getModel("__sphere");
|
||||||
if(sphereModels.size()) {
|
if(sphereModels.size()) {
|
||||||
for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) {
|
for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) {
|
||||||
sphereModels[0]->renderSubmesh(i, renderPass, getName(), "visualize_overlay");
|
sphereModels[0]->renderSubmesh(i, renderPass, getName(), "visualize_overlay");
|
||||||
|
|||||||
@@ -321,7 +321,7 @@ void KRCamera::renderFrame(float deltaTime, GLint renderBufferWidth, GLint rende
|
|||||||
getContext().getTextureManager()->selectTexture(0, m_pSkyBoxTexture, 0.0f, KRTexture::TEXTURE_USAGE_SKY_CUBE);
|
getContext().getTextureManager()->selectTexture(0, m_pSkyBoxTexture, 0.0f, KRTexture::TEXTURE_USAGE_SKY_CUBE);
|
||||||
|
|
||||||
// Render a full screen quad
|
// Render a full screen quad
|
||||||
m_pContext->getModelManager()->bindVBO(getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_VERTICES, getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_INDEXES, getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_ATTRIBS, true);
|
m_pContext->getMeshManager()->bindVBO(getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_VERTICES, getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_INDEXES, getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_ATTRIBS, true);
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -482,7 +482,7 @@ void KRCamera::renderFrame(float deltaTime, GLint renderBufferWidth, GLint rende
|
|||||||
|
|
||||||
KRShader *pVisShader = getContext().getShaderManager()->getShader("visualize_overlay", this, std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
KRShader *pVisShader = getContext().getShaderManager()->getShader("visualize_overlay", this, std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
||||||
|
|
||||||
m_pContext->getModelManager()->bindVBO(getContext().getModelManager()->KRENGINE_VBO_3D_CUBE_VERTICES, getContext().getModelManager()->KRENGINE_VBO_3D_CUBE_INDEXES, getContext().getModelManager()->KRENGINE_VBO_3D_CUBE_ATTRIBS, true);
|
m_pContext->getMeshManager()->bindVBO(getContext().getMeshManager()->KRENGINE_VBO_3D_CUBE_VERTICES, getContext().getMeshManager()->KRENGINE_VBO_3D_CUBE_INDEXES, getContext().getMeshManager()->KRENGINE_VBO_3D_CUBE_ATTRIBS, true);
|
||||||
for(unordered_map<KRAABB, int>::iterator itr=m_viewport.getVisibleBounds().begin(); itr != m_viewport.getVisibleBounds().end(); itr++) {
|
for(unordered_map<KRAABB, int>::iterator itr=m_viewport.getVisibleBounds().begin(); itr != m_viewport.getVisibleBounds().end(); itr++) {
|
||||||
KRMat4 matModel = KRMat4();
|
KRMat4 matModel = KRMat4();
|
||||||
matModel.scale((*itr).first.size() * 0.5f);
|
matModel.scale((*itr).first.size() * 0.5f);
|
||||||
@@ -500,12 +500,12 @@ void KRCamera::renderFrame(float deltaTime, GLint renderBufferWidth, GLint rende
|
|||||||
GL_POP_GROUP_MARKER;
|
GL_POP_GROUP_MARKER;
|
||||||
|
|
||||||
|
|
||||||
// fprintf(stderr, "VBO Mem: %i Kbyte Texture Mem: %i/%i Kbyte (active/total) Shader Handles: %i Visible Bounds: %i Max Texture LOD: %i\n", (int)m_pContext->getModelManager()->getMemUsed() / 1024, (int)m_pContext->getTextureManager()->getActiveMemUsed() / 1024, (int)m_pContext->getTextureManager()->getMemUsed() / 1024, (int)m_pContext->getShaderManager()->getShaderHandlesUsed(), (int)m_visibleBounds.size(), m_pContext->getTextureManager()->getLODDimCap());
|
// fprintf(stderr, "VBO Mem: %i Kbyte Texture Mem: %i/%i Kbyte (active/total) Shader Handles: %i Visible Bounds: %i Max Texture LOD: %i\n", (int)m_pContext->getMeshManager()->getMemUsed() / 1024, (int)m_pContext->getTextureManager()->getActiveMemUsed() / 1024, (int)m_pContext->getTextureManager()->getMemUsed() / 1024, (int)m_pContext->getShaderManager()->getShaderHandlesUsed(), (int)m_visibleBounds.size(), m_pContext->getTextureManager()->getLODDimCap());
|
||||||
GL_PUSH_GROUP_MARKER("Post Processing");
|
GL_PUSH_GROUP_MARKER("Post Processing");
|
||||||
|
|
||||||
GLDEBUG(glBindFramebuffer(GL_FRAMEBUFFER, defaultFBO));
|
GLDEBUG(glBindFramebuffer(GL_FRAMEBUFFER, defaultFBO));
|
||||||
renderPost();
|
renderPost();
|
||||||
m_pContext->getModelManager()->unbindVBO();
|
m_pContext->getMeshManager()->unbindVBO();
|
||||||
|
|
||||||
GL_POP_GROUP_MARKER;
|
GL_POP_GROUP_MARKER;
|
||||||
|
|
||||||
@@ -716,7 +716,7 @@ void KRCamera::renderPost()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Update attribute values.
|
// Update attribute values.
|
||||||
m_pContext->getModelManager()->bindVBO(getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_VERTICES, getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_INDEXES, getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_ATTRIBS, true);
|
m_pContext->getMeshManager()->bindVBO(getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_VERTICES, getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_INDEXES, getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_ATTRIBS, true);
|
||||||
|
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
||||||
|
|
||||||
@@ -738,7 +738,7 @@ void KRCamera::renderPost()
|
|||||||
// viewMatrix.translate(-0.70, 0.70 - 0.45 * iShadow, 0.0);
|
// viewMatrix.translate(-0.70, 0.70 - 0.45 * iShadow, 0.0);
|
||||||
// getContext().getShaderManager()->selectShader(blitShader, KRViewport(getViewportSize(), viewMatrix, KRMat4()), shadowViewports, KRMat4(), KRVector3(), NULL, 0, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
// getContext().getShaderManager()->selectShader(blitShader, KRViewport(getViewportSize(), viewMatrix, KRMat4()), shadowViewports, KRMat4(), KRVector3(), NULL, 0, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
||||||
// m_pContext->getTextureManager()->selectTexture(1, NULL);
|
// m_pContext->getTextureManager()->selectTexture(1, NULL);
|
||||||
// m_pContext->getModelManager()->bindVBO(KRENGINE_VBO_2D_SQUARE_INDICES, KRENGINE_VBO_2D_SQUARE_VERTEXES, KRENGINE_VBO_2D_SQUARE_ATTRIBS, true);
|
// m_pContext->getMeshManager()->bindVBO(KRENGINE_VBO_2D_SQUARE_INDICES, KRENGINE_VBO_2D_SQUARE_VERTEXES, KRENGINE_VBO_2D_SQUARE_ATTRIBS, true);
|
||||||
// m_pContext->getTextureManager()->_setActiveTexture(0);
|
// m_pContext->getTextureManager()->_setActiveTexture(0);
|
||||||
// GLDEBUG(glBindTexture(GL_TEXTURE_2D, shadowDepthTexture[iShadow]));
|
// GLDEBUG(glBindTexture(GL_TEXTURE_2D, shadowDepthTexture[iShadow]));
|
||||||
//#if GL_EXT_shadow_samplers
|
//#if GL_EXT_shadow_samplers
|
||||||
@@ -758,7 +758,7 @@ void KRCamera::renderPost()
|
|||||||
|
|
||||||
|
|
||||||
if(m_debug_text_vertices.getSize()) {
|
if(m_debug_text_vertices.getSize()) {
|
||||||
m_pContext->getModelManager()->releaseVBO(m_debug_text_vertices);
|
m_pContext->getMeshManager()->releaseVBO(m_debug_text_vertices);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *szText = settings.m_debug_text.c_str();
|
const char *szText = settings.m_debug_text.c_str();
|
||||||
@@ -907,8 +907,8 @@ void KRCamera::renderPost()
|
|||||||
m_pContext->getTextureManager()->selectTexture(0, m_pContext->getTextureManager()->getTexture("font"), 0.0f, KRTexture::TEXTURE_USAGE_UI);
|
m_pContext->getTextureManager()->selectTexture(0, m_pContext->getTextureManager()->getTexture("font"), 0.0f, KRTexture::TEXTURE_USAGE_UI);
|
||||||
|
|
||||||
KRDataBlock index_data;
|
KRDataBlock index_data;
|
||||||
//m_pContext->getModelManager()->bindVBO((void *)m_debug_text_vertices, vertex_count * sizeof(DebugTextVertexData), NULL, 0, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), true);
|
//m_pContext->getMeshManager()->bindVBO((void *)m_debug_text_vertices, vertex_count * sizeof(DebugTextVertexData), NULL, 0, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), true);
|
||||||
m_pContext->getModelManager()->bindVBO(m_debug_text_vertices, index_data, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), true);
|
m_pContext->getMeshManager()->bindVBO(m_debug_text_vertices, index_data, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), true);
|
||||||
|
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLES, 0, vertex_count));
|
GLDEBUG(glDrawArrays(GL_TRIANGLES, 0, vertex_count));
|
||||||
|
|
||||||
@@ -997,11 +997,11 @@ std::string KRCamera::getDebugText()
|
|||||||
long texture_mem_used = m_pContext->getTextureManager()->getMemUsed();
|
long texture_mem_used = m_pContext->getTextureManager()->getMemUsed();
|
||||||
long texture_mem_throughput = m_pContext->getTextureManager()->getMemoryTransferedThisFrame();
|
long texture_mem_throughput = m_pContext->getTextureManager()->getMemoryTransferedThisFrame();
|
||||||
|
|
||||||
int vbo_count_active = m_pContext->getModelManager()->getActiveVBOCount();
|
int vbo_count_active = m_pContext->getMeshManager()->getActiveVBOCount();
|
||||||
int vbo_count_pooled = m_pContext->getModelManager()->getPoolVBOCount();
|
int vbo_count_pooled = m_pContext->getMeshManager()->getPoolVBOCount();
|
||||||
long vbo_mem_active = m_pContext->getModelManager()->getMemActive();
|
long vbo_mem_active = m_pContext->getMeshManager()->getMemActive();
|
||||||
long vbo_mem_used = m_pContext->getModelManager()->getMemUsed();
|
long vbo_mem_used = m_pContext->getMeshManager()->getMemUsed();
|
||||||
long vbo_mem_throughput = m_pContext->getModelManager()->getMemoryTransferedThisFrame();
|
long vbo_mem_throughput = m_pContext->getMeshManager()->getMemoryTransferedThisFrame();
|
||||||
|
|
||||||
long total_mem_active = texture_mem_active + vbo_mem_active;
|
long total_mem_active = texture_mem_active + vbo_mem_active;
|
||||||
long total_mem_used = texture_mem_used + vbo_mem_used;
|
long total_mem_used = texture_mem_used + vbo_mem_used;
|
||||||
@@ -1050,7 +1050,7 @@ std::string KRCamera::getDebugText()
|
|||||||
|
|
||||||
case KRRenderSettings::KRENGINE_DEBUG_DISPLAY_DRAW_CALLS: // ----====---- List Draw Calls ----====----
|
case KRRenderSettings::KRENGINE_DEBUG_DISPLAY_DRAW_CALLS: // ----====---- List Draw Calls ----====----
|
||||||
{
|
{
|
||||||
std::vector<KRMeshManager::draw_call_info> draw_calls = m_pContext->getModelManager()->getDrawCalls();
|
std::vector<KRMeshManager::draw_call_info> draw_calls = m_pContext->getMeshManager()->getDrawCalls();
|
||||||
|
|
||||||
long draw_call_count = 0;
|
long draw_call_count = 0;
|
||||||
long vertex_count = 0;
|
long vertex_count = 0;
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ void KRCollider::loadXML(tinyxml2::XMLElement *e) {
|
|||||||
|
|
||||||
void KRCollider::loadModel() {
|
void KRCollider::loadModel() {
|
||||||
if(m_models.size() == 0) {
|
if(m_models.size() == 0) {
|
||||||
m_models = m_pContext->getModelManager()->getModel(m_model_name.c_str()); // The model manager returns the LOD levels in sorted order, with the highest detail first
|
m_models = m_pContext->getMeshManager()->getModel(m_model_name.c_str()); // The model manager returns the LOD levels in sorted order, with the highest detail first
|
||||||
if(m_models.size() > 0) {
|
if(m_models.size() > 0) {
|
||||||
getScene().notify_sceneGraphModify(this);
|
getScene().notify_sceneGraphModify(this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ int KRContext::KRENGINE_MAX_TEXTURE_MEM;
|
|||||||
int KRContext::KRENGINE_TARGET_TEXTURE_MEM_MAX;
|
int KRContext::KRENGINE_TARGET_TEXTURE_MEM_MAX;
|
||||||
int KRContext::KRENGINE_MAX_TEXTURE_DIM;
|
int KRContext::KRENGINE_MAX_TEXTURE_DIM;
|
||||||
int KRContext::KRENGINE_MIN_TEXTURE_DIM;
|
int KRContext::KRENGINE_MIN_TEXTURE_DIM;
|
||||||
int KRContext::KRENGINE_MAX_TEXTURE_THROUGHPUT;
|
|
||||||
int KRContext::KRENGINE_PRESTREAM_DISTANCE;
|
int KRContext::KRENGINE_PRESTREAM_DISTANCE;
|
||||||
|
|
||||||
const char *KRContext::extension_names[KRENGINE_NUM_EXTENSIONS] = {
|
const char *KRContext::extension_names[KRENGINE_NUM_EXTENSIONS] = {
|
||||||
@@ -29,7 +28,8 @@ const char *KRContext::extension_names[KRENGINE_NUM_EXTENSIONS] = {
|
|||||||
KRContext::log_callback *KRContext::s_log_callback = NULL;
|
KRContext::log_callback *KRContext::s_log_callback = NULL;
|
||||||
void *KRContext::s_log_callback_user_data = NULL;
|
void *KRContext::s_log_callback_user_data = NULL;
|
||||||
|
|
||||||
KRContext::KRContext() {
|
KRContext::KRContext() : m_streamer(*this)
|
||||||
|
{
|
||||||
m_streamingEnabled = false;
|
m_streamingEnabled = false;
|
||||||
mach_timebase_info(&m_timebase_info);
|
mach_timebase_info(&m_timebase_info);
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ KRContext::KRContext() {
|
|||||||
m_pShaderManager = new KRShaderManager(*this);
|
m_pShaderManager = new KRShaderManager(*this);
|
||||||
m_pTextureManager = new KRTextureManager(*this);
|
m_pTextureManager = new KRTextureManager(*this);
|
||||||
m_pMaterialManager = new KRMaterialManager(*this, m_pTextureManager, m_pShaderManager);
|
m_pMaterialManager = new KRMaterialManager(*this, m_pTextureManager, m_pShaderManager);
|
||||||
m_pModelManager = new KRMeshManager(*this);
|
m_pMeshManager = new KRMeshManager(*this);
|
||||||
m_pSceneManager = new KRSceneManager(*this);
|
m_pSceneManager = new KRSceneManager(*this);
|
||||||
m_pAnimationManager = new KRAnimationManager(*this);
|
m_pAnimationManager = new KRAnimationManager(*this);
|
||||||
m_pAnimationCurveManager = new KRAnimationCurveManager(*this);
|
m_pAnimationCurveManager = new KRAnimationCurveManager(*this);
|
||||||
@@ -59,9 +59,9 @@ KRContext::~KRContext() {
|
|||||||
m_pSceneManager = NULL;
|
m_pSceneManager = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_pModelManager) {
|
if(m_pMeshManager) {
|
||||||
delete m_pModelManager;
|
delete m_pMeshManager;
|
||||||
m_pModelManager = NULL;
|
m_pMeshManager = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_pTextureManager) {
|
if(m_pTextureManager) {
|
||||||
@@ -147,8 +147,8 @@ KRMaterialManager *KRContext::getMaterialManager() {
|
|||||||
KRShaderManager *KRContext::getShaderManager() {
|
KRShaderManager *KRContext::getShaderManager() {
|
||||||
return m_pShaderManager;
|
return m_pShaderManager;
|
||||||
}
|
}
|
||||||
KRMeshManager *KRContext::getModelManager() {
|
KRMeshManager *KRContext::getMeshManager() {
|
||||||
return m_pModelManager;
|
return m_pMeshManager;
|
||||||
}
|
}
|
||||||
KRAnimationManager *KRContext::getAnimationManager() {
|
KRAnimationManager *KRContext::getAnimationManager() {
|
||||||
return m_pAnimationManager;
|
return m_pAnimationManager;
|
||||||
@@ -177,7 +177,7 @@ std::vector<KRResource *> KRContext::getResources()
|
|||||||
for(unordered_map<std::string, KRMaterial *>::iterator itr = m_pMaterialManager->getMaterials().begin(); itr != m_pMaterialManager->getMaterials().end(); itr++) {
|
for(unordered_map<std::string, KRMaterial *>::iterator itr = m_pMaterialManager->getMaterials().begin(); itr != m_pMaterialManager->getMaterials().end(); itr++) {
|
||||||
resources.push_back((*itr).second);
|
resources.push_back((*itr).second);
|
||||||
}
|
}
|
||||||
for(unordered_multimap<std::string, KRMesh *>::iterator itr = m_pModelManager->getModels().begin(); itr != m_pModelManager->getModels().end(); itr++) {
|
for(unordered_multimap<std::string, KRMesh *>::iterator itr = m_pMeshManager->getModels().begin(); itr != m_pMeshManager->getModels().end(); itr++) {
|
||||||
resources.push_back((*itr).second);
|
resources.push_back((*itr).second);
|
||||||
}
|
}
|
||||||
for(unordered_map<std::string, KRAnimation *>::iterator itr = m_pAnimationManager->getAnimations().begin(); itr != m_pAnimationManager->getAnimations().end(); itr++) {
|
for(unordered_map<std::string, KRAnimation *>::iterator itr = m_pAnimationManager->getAnimations().begin(); itr != m_pAnimationManager->getAnimations().end(); itr++) {
|
||||||
@@ -211,7 +211,7 @@ void KRContext::loadResource(const std::string &file_name, KRDataBlock *data) {
|
|||||||
if(extension.compare("krbundle") == 0) {
|
if(extension.compare("krbundle") == 0) {
|
||||||
m_pBundleManager->loadBundle(name.c_str(), data);
|
m_pBundleManager->loadBundle(name.c_str(), data);
|
||||||
} else if(extension.compare("krmesh") == 0) {
|
} else if(extension.compare("krmesh") == 0) {
|
||||||
m_pModelManager->loadModel(name.c_str(), data);
|
m_pMeshManager->loadModel(name.c_str(), data);
|
||||||
} else if(extension.compare("krscene") == 0) {
|
} else if(extension.compare("krscene") == 0) {
|
||||||
m_pSceneManager->loadScene(name.c_str(), data);
|
m_pSceneManager->loadScene(name.c_str(), data);
|
||||||
} else if(extension.compare("kranimation") == 0) {
|
} else if(extension.compare("kranimation") == 0) {
|
||||||
@@ -263,7 +263,7 @@ void KRContext::rotateBuffers(bool new_frame) {
|
|||||||
//fprintf(stderr, "Rotating Buffers...\n");
|
//fprintf(stderr, "Rotating Buffers...\n");
|
||||||
if(!new_frame) GLDEBUG(glFinish());
|
if(!new_frame) GLDEBUG(glFinish());
|
||||||
|
|
||||||
m_pModelManager->rotateBuffers(new_frame);
|
m_pMeshManager->rotateBuffers(new_frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRContext::detectExtensions() {
|
void KRContext::detectExtensions() {
|
||||||
@@ -273,17 +273,18 @@ void KRContext::detectExtensions() {
|
|||||||
|
|
||||||
void KRContext::startFrame(float deltaTime)
|
void KRContext::startFrame(float deltaTime)
|
||||||
{
|
{
|
||||||
|
m_streamer.startStreamer();
|
||||||
m_pTextureManager->startFrame(deltaTime);
|
m_pTextureManager->startFrame(deltaTime);
|
||||||
m_pAnimationManager->startFrame(deltaTime);
|
m_pAnimationManager->startFrame(deltaTime);
|
||||||
m_pSoundManager->startFrame(deltaTime);
|
m_pSoundManager->startFrame(deltaTime);
|
||||||
m_pModelManager->startFrame(deltaTime);
|
m_pMeshManager->startFrame(deltaTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRContext::endFrame(float deltaTime)
|
void KRContext::endFrame(float deltaTime)
|
||||||
{
|
{
|
||||||
m_pTextureManager->endFrame(deltaTime);
|
m_pTextureManager->endFrame(deltaTime);
|
||||||
m_pAnimationManager->endFrame(deltaTime);
|
m_pAnimationManager->endFrame(deltaTime);
|
||||||
m_pModelManager->endFrame(deltaTime);
|
m_pMeshManager->endFrame(deltaTime);
|
||||||
rotateBuffers(true);
|
rotateBuffers(true);
|
||||||
m_current_frame++;
|
m_current_frame++;
|
||||||
m_absolute_time += deltaTime;
|
m_absolute_time += deltaTime;
|
||||||
@@ -337,3 +338,13 @@ void KRContext::getMemoryStats(long &free_memory)
|
|||||||
#error Unsupported Platform
|
#error Unsupported Platform
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void KRContext::doStreaming()
|
||||||
|
{
|
||||||
|
if(m_streamingEnabled) {
|
||||||
|
long memoryRemaining = KRENGINE_TARGET_TEXTURE_MEM_MAX;
|
||||||
|
long memoryRemainingThisFrame = KRENGINE_MAX_TEXTURE_MEM - m_pTextureManager->getMemUsed();
|
||||||
|
m_pMeshManager->doStreaming(memoryRemaining, memoryRemainingThisFrame);
|
||||||
|
m_pTextureManager->doStreaming(memoryRemaining, memoryRemainingThisFrame);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
#include "KRAnimationCurveManager.h"
|
#include "KRAnimationCurveManager.h"
|
||||||
#include "KRAudioManager.h"
|
#include "KRAudioManager.h"
|
||||||
#include "KRUnknownManager.h"
|
#include "KRUnknownManager.h"
|
||||||
|
#include "KRStreamer.h"
|
||||||
|
|
||||||
class KRContext {
|
class KRContext {
|
||||||
public:
|
public:
|
||||||
@@ -31,7 +32,6 @@ public:
|
|||||||
static int KRENGINE_TARGET_TEXTURE_MEM_MAX;
|
static int KRENGINE_TARGET_TEXTURE_MEM_MAX;
|
||||||
static int KRENGINE_MAX_TEXTURE_DIM;
|
static int KRENGINE_MAX_TEXTURE_DIM;
|
||||||
static int KRENGINE_MIN_TEXTURE_DIM;
|
static int KRENGINE_MIN_TEXTURE_DIM;
|
||||||
static int KRENGINE_MAX_TEXTURE_THROUGHPUT;
|
|
||||||
static int KRENGINE_PRESTREAM_DISTANCE;
|
static int KRENGINE_PRESTREAM_DISTANCE;
|
||||||
|
|
||||||
|
|
||||||
@@ -46,7 +46,7 @@ public:
|
|||||||
KRTextureManager *getTextureManager();
|
KRTextureManager *getTextureManager();
|
||||||
KRMaterialManager *getMaterialManager();
|
KRMaterialManager *getMaterialManager();
|
||||||
KRShaderManager *getShaderManager();
|
KRShaderManager *getShaderManager();
|
||||||
KRMeshManager *getModelManager();
|
KRMeshManager *getMeshManager();
|
||||||
KRAnimationManager *getAnimationManager();
|
KRAnimationManager *getAnimationManager();
|
||||||
KRAnimationCurveManager *getAnimationCurveManager();
|
KRAnimationCurveManager *getAnimationCurveManager();
|
||||||
KRAudioManager *getAudioManager();
|
KRAudioManager *getAudioManager();
|
||||||
@@ -89,13 +89,15 @@ public:
|
|||||||
static void SetLogCallback(log_callback *log_callback, void *user_data);
|
static void SetLogCallback(log_callback *log_callback, void *user_data);
|
||||||
static void Log(log_level level, const std::string &message_format, ...);
|
static void Log(log_level level, const std::string &message_format, ...);
|
||||||
|
|
||||||
|
void doStreaming();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
KRBundleManager *m_pBundleManager;
|
KRBundleManager *m_pBundleManager;
|
||||||
KRSceneManager *m_pSceneManager;
|
KRSceneManager *m_pSceneManager;
|
||||||
KRTextureManager *m_pTextureManager;
|
KRTextureManager *m_pTextureManager;
|
||||||
KRMaterialManager *m_pMaterialManager;
|
KRMaterialManager *m_pMaterialManager;
|
||||||
KRShaderManager *m_pShaderManager;
|
KRShaderManager *m_pShaderManager;
|
||||||
KRMeshManager *m_pModelManager;
|
KRMeshManager *m_pMeshManager;
|
||||||
KRAnimationManager *m_pAnimationManager;
|
KRAnimationManager *m_pAnimationManager;
|
||||||
KRAnimationCurveManager *m_pAnimationCurveManager;
|
KRAnimationCurveManager *m_pAnimationCurveManager;
|
||||||
KRAudioManager *m_pSoundManager;
|
KRAudioManager *m_pSoundManager;
|
||||||
@@ -114,6 +116,8 @@ private:
|
|||||||
|
|
||||||
static log_callback *s_log_callback;
|
static log_callback *s_log_callback;
|
||||||
static void *s_log_callback_user_data;
|
static void *s_log_callback_user_data;
|
||||||
|
|
||||||
|
KRStreamer m_streamer;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ void KRDirectionalLight::render(KRCamera *pCamera, std::vector<KRPointLight *> &
|
|||||||
GLDEBUG(glDisable(GL_DEPTH_TEST));
|
GLDEBUG(glDisable(GL_DEPTH_TEST));
|
||||||
|
|
||||||
// Render a full screen quad
|
// Render a full screen quad
|
||||||
m_pContext->getModelManager()->bindVBO(getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_VERTICES, getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_INDEXES, getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_ATTRIBS, true);
|
m_pContext->getMeshManager()->bindVBO(getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_VERTICES, getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_INDEXES, getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_ATTRIBS, true);
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,8 +96,6 @@ void kraken::set_debug_text(const std::string &print_text)
|
|||||||
KRContext::KRENGINE_MIN_TEXTURE_DIM = 64;
|
KRContext::KRENGINE_MIN_TEXTURE_DIM = 64;
|
||||||
KRContext::KRENGINE_PRESTREAM_DISTANCE = 1000.0f;
|
KRContext::KRENGINE_PRESTREAM_DISTANCE = 1000.0f;
|
||||||
|
|
||||||
KRContext::KRENGINE_MAX_TEXTURE_THROUGHPUT = 4000000;
|
|
||||||
|
|
||||||
|
|
||||||
KRContext::KRENGINE_MAX_VBO_MEM = total_ram * 2 / 4;
|
KRContext::KRENGINE_MAX_VBO_MEM = total_ram * 2 / 4;
|
||||||
KRContext::KRENGINE_MAX_TEXTURE_MEM = total_ram * 1 / 8;
|
KRContext::KRENGINE_MAX_TEXTURE_MEM = total_ram * 1 / 8;
|
||||||
@@ -117,7 +115,6 @@ void kraken::set_debug_text(const std::string &print_text)
|
|||||||
KRContext::KRENGINE_TARGET_TEXTURE_MEM_MAX = 48000000 * 2;
|
KRContext::KRENGINE_TARGET_TEXTURE_MEM_MAX = 48000000 * 2;
|
||||||
KRContext::KRENGINE_MAX_TEXTURE_DIM = 2048;
|
KRContext::KRENGINE_MAX_TEXTURE_DIM = 2048;
|
||||||
KRContext::KRENGINE_MIN_TEXTURE_DIM = 64;
|
KRContext::KRENGINE_MIN_TEXTURE_DIM = 64;
|
||||||
KRContext::KRENGINE_MAX_TEXTURE_THROUGHPUT = 32000000;
|
|
||||||
} else {
|
} else {
|
||||||
KRContext::KRENGINE_MAX_VBO_HANDLES = 10000;
|
KRContext::KRENGINE_MAX_VBO_HANDLES = 10000;
|
||||||
KRContext::KRENGINE_MAX_VBO_MEM = 128000000;
|
KRContext::KRENGINE_MAX_VBO_MEM = 128000000;
|
||||||
@@ -127,7 +124,6 @@ void kraken::set_debug_text(const std::string &print_text)
|
|||||||
KRContext::KRENGINE_TARGET_TEXTURE_MEM_MAX = 48000000;
|
KRContext::KRENGINE_TARGET_TEXTURE_MEM_MAX = 48000000;
|
||||||
KRContext::KRENGINE_MAX_TEXTURE_DIM = 2048;
|
KRContext::KRENGINE_MAX_TEXTURE_DIM = 2048;
|
||||||
KRContext::KRENGINE_MIN_TEXTURE_DIM = 64;
|
KRContext::KRENGINE_MIN_TEXTURE_DIM = 64;
|
||||||
KRContext::KRENGINE_MAX_TEXTURE_THROUGHPUT = 32000000;
|
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
#else
|
#else
|
||||||
@@ -139,7 +135,6 @@ void kraken::set_debug_text(const std::string &print_text)
|
|||||||
KRContext::KRENGINE_TARGET_TEXTURE_MEM_MAX = 192000000;
|
KRContext::KRENGINE_TARGET_TEXTURE_MEM_MAX = 192000000;
|
||||||
KRContext::KRENGINE_MAX_TEXTURE_DIM = 8192;
|
KRContext::KRENGINE_MAX_TEXTURE_DIM = 8192;
|
||||||
KRContext::KRENGINE_MIN_TEXTURE_DIM = 64;
|
KRContext::KRENGINE_MIN_TEXTURE_DIM = 64;
|
||||||
KRContext::KRENGINE_MAX_TEXTURE_THROUGHPUT = 128000000;
|
|
||||||
KRContext::KRENGINE_PRESTREAM_DISTANCE = 1000.0f;
|
KRContext::KRENGINE_PRESTREAM_DISTANCE = 1000.0f;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -230,7 +230,7 @@ void KRLight::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_light
|
|||||||
pParticleShader->setUniform(KRShader::KRENGINE_UNIFORM_FLARE_SIZE, m_dust_particle_size);
|
pParticleShader->setUniform(KRShader::KRENGINE_UNIFORM_FLARE_SIZE, m_dust_particle_size);
|
||||||
|
|
||||||
KRDataBlock particle_index_data;
|
KRDataBlock particle_index_data;
|
||||||
m_pContext->getModelManager()->bindVBO(m_pContext->getModelManager()->getRandomParticles(), particle_index_data, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), true);
|
m_pContext->getMeshManager()->bindVBO(m_pContext->getMeshManager()->getRandomParticles(), particle_index_data, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), true);
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLES, 0, particle_count*3));
|
GLDEBUG(glDrawArrays(GL_TRIANGLES, 0, particle_count*3));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -271,7 +271,7 @@ void KRLight::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_light
|
|||||||
pFogShader->setUniform(KRShader::KRENGINE_UNIFORM_LIGHT_COLOR, (m_color * pCamera->settings.volumetric_environment_intensity * m_intensity * -slice_spacing / 1000.0f));
|
pFogShader->setUniform(KRShader::KRENGINE_UNIFORM_LIGHT_COLOR, (m_color * pCamera->settings.volumetric_environment_intensity * m_intensity * -slice_spacing / 1000.0f));
|
||||||
|
|
||||||
KRDataBlock index_data;
|
KRDataBlock index_data;
|
||||||
m_pContext->getModelManager()->bindVBO(m_pContext->getModelManager()->getVolumetricLightingVertexes(), index_data, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX), true);
|
m_pContext->getMeshManager()->bindVBO(m_pContext->getMeshManager()->getVolumetricLightingVertexes(), index_data, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX), true);
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLES, 0, slice_count*6));
|
GLDEBUG(glDrawArrays(GL_TRIANGLES, 0, slice_count*6));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -298,7 +298,7 @@ void KRLight::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_light
|
|||||||
GLDEBUG(glBeginQuery(GL_SAMPLES_PASSED, m_occlusionQuery));
|
GLDEBUG(glBeginQuery(GL_SAMPLES_PASSED, m_occlusionQuery));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
std::vector<KRMesh *> sphereModels = getContext().getModelManager()->getModel("__sphere");
|
std::vector<KRMesh *> sphereModels = getContext().getMeshManager()->getModel("__sphere");
|
||||||
if(sphereModels.size()) {
|
if(sphereModels.size()) {
|
||||||
for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) {
|
for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) {
|
||||||
sphereModels[0]->renderSubmesh(i, renderPass, getName(), "occlusion_test");
|
sphereModels[0]->renderSubmesh(i, renderPass, getName(), "occlusion_test");
|
||||||
@@ -341,7 +341,7 @@ void KRLight::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_light
|
|||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_MATERIAL_ALPHA, 1.0f);
|
pShader->setUniform(KRShader::KRENGINE_UNIFORM_MATERIAL_ALPHA, 1.0f);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_FLARE_SIZE, m_flareSize);
|
pShader->setUniform(KRShader::KRENGINE_UNIFORM_FLARE_SIZE, m_flareSize);
|
||||||
m_pContext->getTextureManager()->selectTexture(0, m_pFlareTexture, 0.0f, KRTexture::TEXTURE_USAGE_LIGHT_FLARE);
|
m_pContext->getTextureManager()->selectTexture(0, m_pFlareTexture, 0.0f, KRTexture::TEXTURE_USAGE_LIGHT_FLARE);
|
||||||
m_pContext->getModelManager()->bindVBO(getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_VERTICES, getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_INDEXES, getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_ATTRIBS, true);
|
m_pContext->getMeshManager()->bindVBO(getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_VERTICES, getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_INDEXES, getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_ATTRIBS, true);
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -342,15 +342,15 @@ void KRMesh::renderSubmesh(int iSubmesh, KRNode::RenderPass renderPass, const st
|
|||||||
}
|
}
|
||||||
vbo_index++;
|
vbo_index++;
|
||||||
|
|
||||||
//m_pContext->getModelManager()->bindVBO((unsigned char *)pVertexData + start_vertex_offset * m_vertex_size, vertex_count * m_vertex_size, index_data + start_index_offset, index_count * 2, vertex_attrib_flags, true);
|
//m_pContext->getMeshManager()->bindVBO((unsigned char *)pVertexData + start_vertex_offset * m_vertex_size, vertex_count * m_vertex_size, index_data + start_index_offset, index_count * 2, vertex_attrib_flags, true);
|
||||||
m_pContext->getModelManager()->bindVBO(*vertex_data_block, *index_data_block, vertex_attrib_flags, true);
|
m_pContext->getMeshManager()->bindVBO(*vertex_data_block, *index_data_block, vertex_attrib_flags, true);
|
||||||
|
|
||||||
|
|
||||||
int vertex_draw_count = cVertexes;
|
int vertex_draw_count = cVertexes;
|
||||||
if(vertex_draw_count > index_count - index_group_offset) vertex_draw_count = index_count - index_group_offset;
|
if(vertex_draw_count > index_count - index_group_offset) vertex_draw_count = index_count - index_group_offset;
|
||||||
|
|
||||||
glDrawElements(GL_TRIANGLES, vertex_draw_count, GL_UNSIGNED_SHORT, BUFFER_OFFSET(index_group_offset * 2));
|
glDrawElements(GL_TRIANGLES, vertex_draw_count, GL_UNSIGNED_SHORT, BUFFER_OFFSET(index_group_offset * 2));
|
||||||
m_pContext->getModelManager()->log_draw_call(renderPass, object_name, material_name, vertex_draw_count);
|
m_pContext->getMeshManager()->log_draw_call(renderPass, object_name, material_name, vertex_draw_count);
|
||||||
cVertexes -= vertex_draw_count;
|
cVertexes -= vertex_draw_count;
|
||||||
index_group_offset = 0;
|
index_group_offset = 0;
|
||||||
}
|
}
|
||||||
@@ -375,8 +375,8 @@ void KRMesh::renderSubmesh(int iSubmesh, KRNode::RenderPass renderPass, const st
|
|||||||
}
|
}
|
||||||
vbo_index++;
|
vbo_index++;
|
||||||
|
|
||||||
//m_pContext->getModelManager()->bindVBO((unsigned char *)pVertexData + iBuffer * MAX_VBO_SIZE * vertex_size, vertex_size * cBufferVertexes, NULL, 0, vertex_attrib_flags, true);
|
//m_pContext->getMeshManager()->bindVBO((unsigned char *)pVertexData + iBuffer * MAX_VBO_SIZE * vertex_size, vertex_size * cBufferVertexes, NULL, 0, vertex_attrib_flags, true);
|
||||||
m_pContext->getModelManager()->bindVBO(*vertex_data_block, *index_data_block, vertex_attrib_flags, true);
|
m_pContext->getMeshManager()->bindVBO(*vertex_data_block, *index_data_block, vertex_attrib_flags, true);
|
||||||
|
|
||||||
|
|
||||||
if(iVertex + cVertexes >= MAX_VBO_SIZE) {
|
if(iVertex + cVertexes >= MAX_VBO_SIZE) {
|
||||||
@@ -397,7 +397,7 @@ void KRMesh::renderSubmesh(int iSubmesh, KRNode::RenderPass renderPass, const st
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
m_pContext->getModelManager()->log_draw_call(renderPass, object_name, material_name, (MAX_VBO_SIZE - iVertex));
|
m_pContext->getMeshManager()->log_draw_call(renderPass, object_name, material_name, (MAX_VBO_SIZE - iVertex));
|
||||||
|
|
||||||
cVertexes -= (MAX_VBO_SIZE - iVertex);
|
cVertexes -= (MAX_VBO_SIZE - iVertex);
|
||||||
iVertex = 0;
|
iVertex = 0;
|
||||||
@@ -415,7 +415,7 @@ void KRMesh::renderSubmesh(int iSubmesh, KRNode::RenderPass renderPass, const st
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
m_pContext->getModelManager()->log_draw_call(renderPass, object_name, material_name, cVertexes);
|
m_pContext->getMeshManager()->log_draw_call(renderPass, object_name, material_name, cVertexes);
|
||||||
|
|
||||||
cVertexes = 0;
|
cVertexes = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
#include "KRMeshQuad.h"
|
#include "KRMeshQuad.h"
|
||||||
#include "KRMeshSphere.h"
|
#include "KRMeshSphere.h"
|
||||||
|
|
||||||
KRMeshManager::KRMeshManager(KRContext &context) : KRContextObject(context), m_streamer(context) {
|
KRMeshManager::KRMeshManager(KRContext &context) : KRContextObject(context) {
|
||||||
m_currentVBO.vbo_handle = -1;
|
m_currentVBO.vbo_handle = -1;
|
||||||
m_currentVBO.vbo_handle_indexes = -1;
|
m_currentVBO.vbo_handle_indexes = -1;
|
||||||
m_currentVBO.vao_handle = -1;
|
m_currentVBO.vao_handle = -1;
|
||||||
@@ -526,3 +526,8 @@ std::vector<KRMeshManager::draw_call_info> KRMeshManager::getDrawCalls()
|
|||||||
m_draw_call_log_used = true;
|
m_draw_call_log_used = true;
|
||||||
return m_draw_calls;
|
return m_draw_calls;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void KRMeshManager::doStreaming(long &memoryRemaining, long &memoryRemainingThisFrame)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -37,8 +37,6 @@
|
|||||||
#include "KRDataBlock.h"
|
#include "KRDataBlock.h"
|
||||||
#include "KRNode.h"
|
#include "KRNode.h"
|
||||||
|
|
||||||
#include "KRMeshStreamer.h"
|
|
||||||
|
|
||||||
class KRContext;
|
class KRContext;
|
||||||
class KRMesh;
|
class KRMesh;
|
||||||
|
|
||||||
@@ -116,6 +114,9 @@ public:
|
|||||||
KRDataBlock KRENGINE_VBO_2D_SQUARE_VERTICES, KRENGINE_VBO_2D_SQUARE_INDEXES;
|
KRDataBlock KRENGINE_VBO_2D_SQUARE_VERTICES, KRENGINE_VBO_2D_SQUARE_INDEXES;
|
||||||
__int32_t KRENGINE_VBO_2D_SQUARE_ATTRIBS;
|
__int32_t KRENGINE_VBO_2D_SQUARE_ATTRIBS;
|
||||||
|
|
||||||
|
|
||||||
|
void doStreaming(long &memoryRemaining, long &memoryRemainingThisFrame);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
unordered_multimap<std::string, KRMesh *> m_models; // Multiple models with the same name/key may be inserted, representing multiple LOD levels of the model
|
unordered_multimap<std::string, KRMesh *> m_models; // Multiple models with the same name/key may be inserted, representing multiple LOD levels of the model
|
||||||
|
|
||||||
@@ -142,8 +143,6 @@ private:
|
|||||||
bool m_draw_call_logging_enabled;
|
bool m_draw_call_logging_enabled;
|
||||||
bool m_draw_call_log_used;
|
bool m_draw_call_log_used;
|
||||||
|
|
||||||
KRMeshStreamer m_streamer;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ std::string KRModel::getLightMap()
|
|||||||
|
|
||||||
void KRModel::loadModel() {
|
void KRModel::loadModel() {
|
||||||
if(m_models.size() == 0) {
|
if(m_models.size() == 0) {
|
||||||
std::vector<KRMesh *> models = m_pContext->getModelManager()->getModel(m_model_name.c_str()); // The model manager returns the LOD levels in sorted order, with the highest detail first
|
std::vector<KRMesh *> models = m_pContext->getMeshManager()->getModel(m_model_name.c_str()); // The model manager returns the LOD levels in sorted order, with the highest detail first
|
||||||
unordered_map<KRMesh *, std::vector<KRBone *> > bones;
|
unordered_map<KRMesh *, std::vector<KRBone *> > bones;
|
||||||
if(models.size() > 0) {
|
if(models.size() > 0) {
|
||||||
bool all_bones_found = true;
|
bool all_bones_found = true;
|
||||||
|
|||||||
@@ -79,9 +79,9 @@ void KRParticleSystemNewtonian::render(KRCamera *pCamera, std::vector<KRPointLig
|
|||||||
if(getContext().getShaderManager()->selectShader(*pCamera, pParticleShader, viewport, getModelMatrix(), point_lights, directional_lights, spot_lights, 0, renderPass, rim_color, 0.0f)) {
|
if(getContext().getShaderManager()->selectShader(*pCamera, pParticleShader, viewport, getModelMatrix(), point_lights, directional_lights, spot_lights, 0, renderPass, rim_color, 0.0f)) {
|
||||||
pParticleShader->setUniform(KRShader::KRENGINE_UNIFORM_FLARE_SIZE, 1.0f);
|
pParticleShader->setUniform(KRShader::KRENGINE_UNIFORM_FLARE_SIZE, 1.0f);
|
||||||
|
|
||||||
//m_pContext->getModelManager()->bindVBO((void *)m_pContext->getModelManager()->getRandomParticles(), particle_count * 3 * sizeof(KRMeshManager::RandomParticleVertexData), NULL, 0, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), false);
|
//m_pContext->getMeshManager()->bindVBO((void *)m_pContext->getMeshManager()->getRandomParticles(), particle_count * 3 * sizeof(KRMeshManager::RandomParticleVertexData), NULL, 0, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), false);
|
||||||
KRDataBlock index_data;
|
KRDataBlock index_data;
|
||||||
m_pContext->getModelManager()->bindVBO(m_pContext->getModelManager()->getRandomParticles(), index_data, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), false);
|
m_pContext->getMeshManager()->bindVBO(m_pContext->getMeshManager()->getRandomParticles(), index_data, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), false);
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLES, 0, particle_count*3));
|
GLDEBUG(glDrawArrays(GL_TRIANGLES, 0, particle_count*3));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -109,7 +109,7 @@ void KRParticleSystemNewtonian::render(KRCamera *pCamera, std::vector<KRPointLig
|
|||||||
// 1.0f
|
// 1.0f
|
||||||
// ));
|
// ));
|
||||||
//
|
//
|
||||||
// m_pContext->getModelManager()->bindVBO((void *)m_pContext->getModelManager()->getRandomParticles(), particle_count * 3 * sizeof(KRMeshManager::RandomParticleVertexData), NULL, 0, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), false);
|
// m_pContext->getMeshManager()->bindVBO((void *)m_pContext->getMeshManager()->getRandomParticles(), particle_count * 3 * sizeof(KRMeshManager::RandomParticleVertexData), NULL, 0, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), false);
|
||||||
// GLDEBUG(glDrawArrays(GL_TRIANGLES, 0, particle_count*3));
|
// GLDEBUG(glDrawArrays(GL_TRIANGLES, 0, particle_count*3));
|
||||||
// }
|
// }
|
||||||
//// }
|
//// }
|
||||||
|
|||||||
@@ -97,13 +97,13 @@ void KRPointLight::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_
|
|||||||
GLDEBUG(glDisable(GL_DEPTH_TEST));
|
GLDEBUG(glDisable(GL_DEPTH_TEST));
|
||||||
|
|
||||||
// Render a full screen quad
|
// Render a full screen quad
|
||||||
m_pContext->getModelManager()->bindVBO(getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_VERTICES, getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_INDEXES, getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_ATTRIBS, true);
|
m_pContext->getMeshManager()->bindVBO(getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_VERTICES, getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_INDEXES, getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_ATTRIBS, true);
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
||||||
} else {
|
} else {
|
||||||
#if GL_OES_vertex_array_object
|
#if GL_OES_vertex_array_object
|
||||||
GLDEBUG(glBindVertexArrayOES(0));
|
GLDEBUG(glBindVertexArrayOES(0));
|
||||||
#endif
|
#endif
|
||||||
m_pContext->getModelManager()->configureAttribs(1 << KRMesh::KRENGINE_ATTRIB_VERTEX);
|
m_pContext->getMeshManager()->configureAttribs(1 << KRMesh::KRENGINE_ATTRIB_VERTEX);
|
||||||
// Render sphere of light's influence
|
// Render sphere of light's influence
|
||||||
generateMesh();
|
generateMesh();
|
||||||
|
|
||||||
|
|||||||
@@ -1544,7 +1544,7 @@ void LoadMesh(KRContext &context, FbxScene* pFbxScene, FbxGeometryConverter *pGe
|
|||||||
KRMesh *new_mesh = new KRMesh(context, pSourceMesh->GetNode()->GetName());
|
KRMesh *new_mesh = new KRMesh(context, pSourceMesh->GetNode()->GetName());
|
||||||
new_mesh->LoadData(mi, true, need_tangents);
|
new_mesh->LoadData(mi, true, need_tangents);
|
||||||
|
|
||||||
context.getModelManager()->addModel(new_mesh);
|
context.getMeshManager()->addModel(new_mesh);
|
||||||
}
|
}
|
||||||
|
|
||||||
KRNode *LoadMesh(KRNode *parent_node, FbxScene* pFbxScene, FbxGeometryConverter *pGeometryConverter, FbxNode* pNode) {
|
KRNode *LoadMesh(KRNode *parent_node, FbxScene* pFbxScene, FbxGeometryConverter *pGeometryConverter, FbxNode* pNode) {
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ void KRReverbZone::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_
|
|||||||
GLDEBUG(glEnable(GL_DEPTH_TEST));
|
GLDEBUG(glEnable(GL_DEPTH_TEST));
|
||||||
GLDEBUG(glDepthFunc(GL_LEQUAL));
|
GLDEBUG(glDepthFunc(GL_LEQUAL));
|
||||||
GLDEBUG(glDepthRangef(0.0, 1.0));
|
GLDEBUG(glDepthRangef(0.0, 1.0));
|
||||||
std::vector<KRMesh *> sphereModels = getContext().getModelManager()->getModel("__sphere");
|
std::vector<KRMesh *> sphereModels = getContext().getMeshManager()->getModel("__sphere");
|
||||||
if(sphereModels.size()) {
|
if(sphereModels.size()) {
|
||||||
for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) {
|
for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) {
|
||||||
sphereModels[0]->renderSubmesh(i, renderPass, getName(), "visualize_overlay");
|
sphereModels[0]->renderSubmesh(i, renderPass, getName(), "visualize_overlay");
|
||||||
|
|||||||
@@ -281,7 +281,7 @@ void KRScene::render(KROctreeNode *pOctreeNode, unordered_map<KRAABB, int> &visi
|
|||||||
KRMat4 mvpmatrix = matModel * viewport.getViewProjectionMatrix();
|
KRMat4 mvpmatrix = matModel * viewport.getViewProjectionMatrix();
|
||||||
|
|
||||||
|
|
||||||
getContext().getModelManager()->bindVBO(getContext().getModelManager()->KRENGINE_VBO_3D_CUBE_VERTICES, getContext().getModelManager()->KRENGINE_VBO_3D_CUBE_INDEXES, getContext().getModelManager()->KRENGINE_VBO_3D_CUBE_ATTRIBS, true);
|
getContext().getMeshManager()->bindVBO(getContext().getMeshManager()->KRENGINE_VBO_3D_CUBE_VERTICES, getContext().getMeshManager()->KRENGINE_VBO_3D_CUBE_INDEXES, getContext().getMeshManager()->KRENGINE_VBO_3D_CUBE_ATTRIBS, true);
|
||||||
|
|
||||||
// Enable additive blending
|
// Enable additive blending
|
||||||
if(renderPass != KRNode::RENDER_PASS_FORWARD_TRANSPARENT && renderPass != KRNode::RENDER_PASS_ADDITIVE_PARTICLES && renderPass != KRNode::RENDER_PASS_VOLUMETRIC_EFFECTS_ADDITIVE) {
|
if(renderPass != KRNode::RENDER_PASS_FORWARD_TRANSPARENT && renderPass != KRNode::RENDER_PASS_ADDITIVE_PARTICLES && renderPass != KRNode::RENDER_PASS_VOLUMETRIC_EFFECTS_ADDITIVE) {
|
||||||
@@ -301,7 +301,7 @@ void KRScene::render(KROctreeNode *pOctreeNode, unordered_map<KRAABB, int> &visi
|
|||||||
|
|
||||||
if(getContext().getShaderManager()->selectShader("occlusion_test", *pCamera, point_lights, directional_lights, spot_lights, 0, viewport, matModel, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT, KRVector3::Zero(), 0.0f)) {
|
if(getContext().getShaderManager()->selectShader("occlusion_test", *pCamera, point_lights, directional_lights, spot_lights, 0, viewport, matModel, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT, KRVector3::Zero(), 0.0f)) {
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 14));
|
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 14));
|
||||||
m_pContext->getModelManager()->log_draw_call(renderPass, "octree", "occlusion_test", 14);
|
m_pContext->getMeshManager()->log_draw_call(renderPass, "octree", "occlusion_test", 14);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(renderPass == KRNode::RENDER_PASS_FORWARD_OPAQUE ||
|
if(renderPass == KRNode::RENDER_PASS_FORWARD_OPAQUE ||
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ void KRSprite::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_ligh
|
|||||||
if(getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, getModelMatrix(), point_lights, directional_lights, spot_lights, 0, renderPass, rim_color, 0.0f)) {
|
if(getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, getModelMatrix(), point_lights, directional_lights, spot_lights, 0, renderPass, rim_color, 0.0f)) {
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_MATERIAL_ALPHA, m_spriteAlpha);
|
pShader->setUniform(KRShader::KRENGINE_UNIFORM_MATERIAL_ALPHA, m_spriteAlpha);
|
||||||
m_pContext->getTextureManager()->selectTexture(0, m_pSpriteTexture, 0.0f, KRTexture::TEXTURE_USAGE_SPRITE);
|
m_pContext->getTextureManager()->selectTexture(0, m_pSpriteTexture, 0.0f, KRTexture::TEXTURE_USAGE_SPRITE);
|
||||||
m_pContext->getModelManager()->bindVBO(getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_VERTICES, getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_INDEXES, getContext().getModelManager()->KRENGINE_VBO_2D_SQUARE_ATTRIBS, true);
|
m_pContext->getMeshManager()->bindVBO(getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_VERTICES, getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_INDEXES, getContext().getMeshManager()->KRENGINE_VBO_2D_SQUARE_ATTRIBS, true);
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
#include "KRTextureAnimated.h"
|
#include "KRTextureAnimated.h"
|
||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
|
|
||||||
KRTextureManager::KRTextureManager(KRContext &context) : KRContextObject(context), m_streamer(context) {
|
KRTextureManager::KRTextureManager(KRContext &context) : KRContextObject(context) {
|
||||||
m_textureMemUsed = 0;
|
m_textureMemUsed = 0;
|
||||||
|
|
||||||
for(int iTexture=0; iTexture<KRENGINE_MAX_TEXTURE_UNITS; iTexture++) {
|
for(int iTexture=0; iTexture<KRENGINE_MAX_TEXTURE_UNITS; iTexture++) {
|
||||||
@@ -246,7 +246,6 @@ long KRTextureManager::getMemActive() {
|
|||||||
|
|
||||||
void KRTextureManager::startFrame(float deltaTime)
|
void KRTextureManager::startFrame(float deltaTime)
|
||||||
{
|
{
|
||||||
m_streamer.startStreamer();
|
|
||||||
_clearGLState();
|
_clearGLState();
|
||||||
|
|
||||||
// TODO - Implement proper double-buffering to reduce copy operations
|
// TODO - Implement proper double-buffering to reduce copy operations
|
||||||
@@ -295,15 +294,16 @@ void KRTextureManager::endFrame(float deltaTime)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRTextureManager::doStreaming()
|
void KRTextureManager::doStreaming(long &memoryRemaining, long &memoryRemainingThisFrame)
|
||||||
{
|
{
|
||||||
|
|
||||||
// TODO - Implement proper double-buffering to reduce copy operations
|
// TODO - Implement proper double-buffering to reduce copy operations
|
||||||
m_streamerFenceMutex.lock();
|
m_streamerFenceMutex.lock();
|
||||||
m_activeTextures_streamer = std::move(m_activeTextures_streamer_copy);
|
m_activeTextures_streamer = std::move(m_activeTextures_streamer_copy);
|
||||||
m_streamerFenceMutex.unlock();
|
m_streamerFenceMutex.unlock();
|
||||||
|
|
||||||
if(m_activeTextures_streamer.size() > 0) {
|
if(m_activeTextures_streamer.size() > 0) {
|
||||||
balanceTextureMemory();
|
balanceTextureMemory(memoryRemaining, memoryRemainingThisFrame);
|
||||||
|
|
||||||
m_streamerFenceMutex.lock();
|
m_streamerFenceMutex.lock();
|
||||||
m_streamerComplete = true;
|
m_streamerComplete = true;
|
||||||
@@ -311,7 +311,7 @@ void KRTextureManager::doStreaming()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRTextureManager::balanceTextureMemory()
|
void KRTextureManager::balanceTextureMemory(long &memoryRemaining, long &memoryRemainingThisFrame)
|
||||||
{
|
{
|
||||||
// Balance texture memory by reducing and increasing the maximum mip-map level of both active and inactive textures
|
// Balance texture memory by reducing and increasing the maximum mip-map level of both active and inactive textures
|
||||||
// Favour performance over maximum texture resolution when memory is insufficient for textures at full resolution.
|
// Favour performance over maximum texture resolution when memory is insufficient for textures at full resolution.
|
||||||
@@ -336,9 +336,6 @@ void KRTextureManager::balanceTextureMemory()
|
|||||||
|
|
||||||
std::sort(m_activeTextures_streamer.begin(), m_activeTextures_streamer.end(), std::greater<std::pair<float, KRTexture *>>());
|
std::sort(m_activeTextures_streamer.begin(), m_activeTextures_streamer.end(), std::greater<std::pair<float, KRTexture *>>());
|
||||||
|
|
||||||
long memoryRemaining = getContext().KRENGINE_TARGET_TEXTURE_MEM_MAX;
|
|
||||||
long memoryRemainingThisFrame = getContext().KRENGINE_MAX_TEXTURE_MEM - getMemUsed();
|
|
||||||
|
|
||||||
for(auto itr=m_activeTextures_streamer.begin(); itr != m_activeTextures_streamer.end(); itr++) {
|
for(auto itr=m_activeTextures_streamer.begin(); itr != m_activeTextures_streamer.end(); itr++) {
|
||||||
KRTexture *texture = (*itr).second;
|
KRTexture *texture = (*itr).second;
|
||||||
int min_mip_level = KRMAX(getContext().KRENGINE_MIN_TEXTURE_DIM, texture->getMinMipMap());
|
int min_mip_level = KRMAX(getContext().KRENGINE_MIN_TEXTURE_DIM, texture->getMinMipMap());
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
#include "KREngine-common.h"
|
#include "KREngine-common.h"
|
||||||
#include "KRDataBlock.h"
|
#include "KRDataBlock.h"
|
||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
#include "KRTextureStreamer.h"
|
#include "KRStreamer.h"
|
||||||
|
|
||||||
class KRTextureManager : public KRContextObject {
|
class KRTextureManager : public KRContextObject {
|
||||||
public:
|
public:
|
||||||
@@ -77,7 +77,7 @@ public:
|
|||||||
void _clearGLState();
|
void _clearGLState();
|
||||||
void setMaxAnisotropy(float max_anisotropy);
|
void setMaxAnisotropy(float max_anisotropy);
|
||||||
|
|
||||||
void doStreaming();
|
void doStreaming(long &memoryRemaining, long &memoryRemainingThisFrame);
|
||||||
void primeTexture(KRTexture *texture);
|
void primeTexture(KRTexture *texture);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -102,9 +102,7 @@ private:
|
|||||||
std::atomic<long> m_textureMemUsed;
|
std::atomic<long> m_textureMemUsed;
|
||||||
|
|
||||||
void rotateBuffers();
|
void rotateBuffers();
|
||||||
void balanceTextureMemory();
|
void balanceTextureMemory(long &memoryRemaining, long &memoryRemainingThisFrame);
|
||||||
|
|
||||||
KRTextureStreamer m_streamer;
|
|
||||||
|
|
||||||
std::mutex m_streamerFenceMutex;
|
std::mutex m_streamerFenceMutex;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user