Implemented KRContext class to reduce the parameter count of method calls
--HG-- extra : convert_revision : svn%3A7752d6cf-9f14-4ad2-affc-04f1e67b81a5/trunk%4041
This commit is contained in:
@@ -30,7 +30,6 @@
|
|||||||
E461A176152E5C5600F2044A /* KRPointLight.h in Headers */ = {isa = PBXBuildFile; fileRef = E461A157152E555400F2044A /* KRPointLight.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
E461A176152E5C5600F2044A /* KRPointLight.h in Headers */ = {isa = PBXBuildFile; fileRef = E461A157152E555400F2044A /* KRPointLight.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
E461A177152E5C6600F2044A /* KRMat4.h in Headers */ = {isa = PBXBuildFile; fileRef = E491017613C99BDC0098455B /* KRMat4.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
E461A177152E5C6600F2044A /* KRMat4.h in Headers */ = {isa = PBXBuildFile; fileRef = E491017613C99BDC0098455B /* KRMat4.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
E461A17A152E5C9100F2044A /* KRMat4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E491017713C99BDC0098455B /* KRMat4.cpp */; };
|
E461A17A152E5C9100F2044A /* KRMat4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E491017713C99BDC0098455B /* KRMat4.cpp */; };
|
||||||
E46C214415364BC8009CABF3 /* tinyxml2_readme.txt in Resources */ = {isa = PBXBuildFile; fileRef = E46C214115364BC8009CABF3 /* tinyxml2_readme.txt */; };
|
|
||||||
E46C214515364BC8009CABF3 /* tinyxml2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E46C214215364BC8009CABF3 /* tinyxml2.cpp */; };
|
E46C214515364BC8009CABF3 /* tinyxml2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E46C214215364BC8009CABF3 /* tinyxml2.cpp */; };
|
||||||
E46C214615364BC8009CABF3 /* tinyxml2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E46C214215364BC8009CABF3 /* tinyxml2.cpp */; };
|
E46C214615364BC8009CABF3 /* tinyxml2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E46C214215364BC8009CABF3 /* tinyxml2.cpp */; };
|
||||||
E46C214715364BC8009CABF3 /* tinyxml2.h in Headers */ = {isa = PBXBuildFile; fileRef = E46C214315364BC8009CABF3 /* tinyxml2.h */; };
|
E46C214715364BC8009CABF3 /* tinyxml2.h in Headers */ = {isa = PBXBuildFile; fileRef = E46C214315364BC8009CABF3 /* tinyxml2.h */; };
|
||||||
@@ -48,6 +47,10 @@
|
|||||||
E47C25A913F4F6DD00FF4370 /* KRShader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E47C25A813F4F6DD00FF4370 /* KRShader.cpp */; };
|
E47C25A913F4F6DD00FF4370 /* KRShader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E47C25A813F4F6DD00FF4370 /* KRShader.cpp */; };
|
||||||
E48B3CBD14393DF5000C50E2 /* KRCamera.h in Headers */ = {isa = PBXBuildFile; fileRef = E48B3CBC14393DF5000C50E2 /* KRCamera.h */; };
|
E48B3CBD14393DF5000C50E2 /* KRCamera.h in Headers */ = {isa = PBXBuildFile; fileRef = E48B3CBC14393DF5000C50E2 /* KRCamera.h */; };
|
||||||
E48B3CC014393E30000C50E2 /* KRCamera.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E48B3CBF14393E2F000C50E2 /* KRCamera.cpp */; };
|
E48B3CC014393E30000C50E2 /* KRCamera.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E48B3CBF14393E2F000C50E2 /* KRCamera.cpp */; };
|
||||||
|
E48C696F15374F5B00232E28 /* KRContext.h in Headers */ = {isa = PBXBuildFile; fileRef = E48C696E15374F5A00232E28 /* KRContext.h */; };
|
||||||
|
E48C697015374F5B00232E28 /* KRContext.h in Headers */ = {isa = PBXBuildFile; fileRef = E48C696E15374F5A00232E28 /* KRContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
E48C697215374F7E00232E28 /* KRContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E48C697115374F7E00232E28 /* KRContext.cpp */; };
|
||||||
|
E48C697315374F7E00232E28 /* KRContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E48C697115374F7E00232E28 /* KRContext.cpp */; };
|
||||||
E491018713C99BDC0098455B /* KREngine.mm in Sources */ = {isa = PBXBuildFile; fileRef = E491016F13C99BDC0098455B /* KREngine.mm */; };
|
E491018713C99BDC0098455B /* KREngine.mm in Sources */ = {isa = PBXBuildFile; fileRef = E491016F13C99BDC0098455B /* KREngine.mm */; };
|
||||||
E491018A13C99BDC0098455B /* KREngine.h in Headers */ = {isa = PBXBuildFile; fileRef = E491017213C99BDC0098455B /* KREngine.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
E491018A13C99BDC0098455B /* KREngine.h in Headers */ = {isa = PBXBuildFile; fileRef = E491017213C99BDC0098455B /* KREngine.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
E491018E13C99BDC0098455B /* KRMat4.h in Headers */ = {isa = PBXBuildFile; fileRef = E491017613C99BDC0098455B /* KRMat4.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
E491018E13C99BDC0098455B /* KRMat4.h in Headers */ = {isa = PBXBuildFile; fileRef = E491017613C99BDC0098455B /* KRMat4.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
@@ -90,6 +93,10 @@
|
|||||||
E4BBBB9F1512A4B100F43B5B /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4BBBB941512A45500F43B5B /* Cocoa.framework */; };
|
E4BBBB9F1512A4B100F43B5B /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4BBBB941512A45500F43B5B /* Cocoa.framework */; };
|
||||||
E4BBBBA71512A6DC00F43B5B /* KRVector3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E491017F13C99BDC0098455B /* KRVector3.cpp */; };
|
E4BBBBA71512A6DC00F43B5B /* KRVector3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E491017F13C99BDC0098455B /* KRVector3.cpp */; };
|
||||||
E4D0683F1512A790005FFBEB /* KRVector3.h in Headers */ = {isa = PBXBuildFile; fileRef = E491017E13C99BDC0098455B /* KRVector3.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
E4D0683F1512A790005FFBEB /* KRVector3.h in Headers */ = {isa = PBXBuildFile; fileRef = E491017E13C99BDC0098455B /* KRVector3.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
E4D13364153767ED0070068C /* KRShaderManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E47C25A613F4F6AB00FF4370 /* KRShaderManager.cpp */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
E4D13365153767FF0070068C /* KRShaderManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E47C25A113F4F65A00FF4370 /* KRShaderManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
E4D133661537685A0070068C /* KRShader.h in Headers */ = {isa = PBXBuildFile; fileRef = E47C25A413F4F66F00FF4370 /* KRShader.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
E4D13367153768610070068C /* KRShader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E47C25A813F4F6DD00FF4370 /* KRShader.cpp */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
E4F711A51512BB56007EE923 /* libfbxsdk-2012.2-static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4F711A41512BB56007EE923 /* libfbxsdk-2012.2-static.a */; };
|
E4F711A51512BB56007EE923 /* libfbxsdk-2012.2-static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4F711A41512BB56007EE923 /* libfbxsdk-2012.2-static.a */; };
|
||||||
E4F975321536220900FD60B2 /* KRNode.h in Headers */ = {isa = PBXBuildFile; fileRef = E4F975311536220900FD60B2 /* KRNode.h */; };
|
E4F975321536220900FD60B2 /* KRNode.h in Headers */ = {isa = PBXBuildFile; fileRef = E4F975311536220900FD60B2 /* KRNode.h */; };
|
||||||
E4F975331536220900FD60B2 /* KRNode.h in Headers */ = {isa = PBXBuildFile; fileRef = E4F975311536220900FD60B2 /* KRNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
E4F975331536220900FD60B2 /* KRNode.h in Headers */ = {isa = PBXBuildFile; fileRef = E4F975311536220900FD60B2 /* KRNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
@@ -161,6 +168,8 @@
|
|||||||
E47C25A813F4F6DD00FF4370 /* KRShader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = KRShader.cpp; path = Classes/KRShader.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
E47C25A813F4F6DD00FF4370 /* KRShader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = KRShader.cpp; path = Classes/KRShader.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
||||||
E48B3CBC14393DF5000C50E2 /* KRCamera.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; name = KRCamera.h; path = Classes/KRCamera.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
E48B3CBC14393DF5000C50E2 /* KRCamera.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; name = KRCamera.h; path = Classes/KRCamera.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
||||||
E48B3CBF14393E2F000C50E2 /* KRCamera.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = KRCamera.cpp; path = Classes/KRCamera.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
E48B3CBF14393E2F000C50E2 /* KRCamera.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = KRCamera.cpp; path = Classes/KRCamera.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
||||||
|
E48C696E15374F5A00232E28 /* KRContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = KRContext.h; path = Classes/KRContext.h; sourceTree = "<group>"; };
|
||||||
|
E48C697115374F7E00232E28 /* KRContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = KRContext.cpp; path = Classes/KRContext.cpp; sourceTree = "<group>"; };
|
||||||
E491016113C99B9E0098455B /* libKREngine.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libKREngine.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
E491016113C99B9E0098455B /* libKREngine.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libKREngine.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
E491016413C99B9E0098455B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
E491016413C99B9E0098455B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||||
E491016813C99B9E0098455B /* KREngine-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "KREngine-Prefix.pch"; sourceTree = "<group>"; };
|
E491016813C99B9E0098455B /* KREngine-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "KREngine-Prefix.pch"; sourceTree = "<group>"; };
|
||||||
@@ -252,8 +261,8 @@
|
|||||||
E461A170152E598200F2044A /* Resources */ = {
|
E461A170152E598200F2044A /* Resources */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
E4F9755615363AA500FD60B2 /* Scene */,
|
E48C696C15374A1500232E28 /* Scene Graph */,
|
||||||
E461A174152E5A1300F2044A /* Models */,
|
E461A174152E5A1300F2044A /* Meshes */,
|
||||||
E461A172152E59BC00F2044A /* Materials */,
|
E461A172152E59BC00F2044A /* Materials */,
|
||||||
E497B949151BCEE900D3DC67 /* KRResource.h */,
|
E497B949151BCEE900D3DC67 /* KRResource.h */,
|
||||||
E497B94C151BCF2500D3DC67 /* KRResource.cpp */,
|
E497B94C151BCF2500D3DC67 /* KRResource.cpp */,
|
||||||
@@ -302,13 +311,13 @@
|
|||||||
name = Math;
|
name = Math;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
E461A174152E5A1300F2044A /* Models */ = {
|
E461A174152E5A1300F2044A /* Meshes */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
E49E79FC15126146009CF99C /* KRMesh.h */,
|
E49E79FC15126146009CF99C /* KRMesh.h */,
|
||||||
E49E79FE1512615F009CF99C /* KRMesh.cpp */,
|
E49E79FE1512615F009CF99C /* KRMesh.cpp */,
|
||||||
);
|
);
|
||||||
name = Models;
|
name = Meshes;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
E46C214015364BB8009CABF3 /* tinyxml2 */ = {
|
E46C214015364BB8009CABF3 /* tinyxml2 */ = {
|
||||||
@@ -321,6 +330,20 @@
|
|||||||
name = tinyxml2;
|
name = tinyxml2;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
E48C696C15374A1500232E28 /* Scene Graph */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
E414BAE11435557300A668C4 /* KRInstance.h */,
|
||||||
|
E414BAE41435558800A668C4 /* KRInstance.cpp */,
|
||||||
|
E461A171152E599E00F2044A /* Lights */,
|
||||||
|
E4F975311536220900FD60B2 /* KRNode.h */,
|
||||||
|
E4F975351536221C00FD60B2 /* KRNode.cpp */,
|
||||||
|
E414BAE6143557D200A668C4 /* KRScene.h */,
|
||||||
|
E414BAE81435585A00A668C4 /* KRScene.cpp */,
|
||||||
|
);
|
||||||
|
name = "Scene Graph";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
E491015613C99B9D0098455B = {
|
E491015613C99B9D0098455B = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -395,6 +418,8 @@
|
|||||||
E46DBE841512B9E200D59F86 /* KREngine-common.h */,
|
E46DBE841512B9E200D59F86 /* KREngine-common.h */,
|
||||||
E46C214915364DDB009CABF3 /* KRSceneManager.h */,
|
E46C214915364DDB009CABF3 /* KRSceneManager.h */,
|
||||||
E46C214A15364DEC009CABF3 /* KRSceneManager.cpp */,
|
E46C214A15364DEC009CABF3 /* KRSceneManager.cpp */,
|
||||||
|
E48C696E15374F5A00232E28 /* KRContext.h */,
|
||||||
|
E48C697115374F7E00232E28 /* KRContext.cpp */,
|
||||||
);
|
);
|
||||||
name = Classes;
|
name = Classes;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -443,20 +468,6 @@
|
|||||||
path = ..;
|
path = ..;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
E4F9755615363AA500FD60B2 /* Scene */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
E414BAE11435557300A668C4 /* KRInstance.h */,
|
|
||||||
E414BAE41435558800A668C4 /* KRInstance.cpp */,
|
|
||||||
E461A171152E599E00F2044A /* Lights */,
|
|
||||||
E4F975311536220900FD60B2 /* KRNode.h */,
|
|
||||||
E4F975351536221C00FD60B2 /* KRNode.cpp */,
|
|
||||||
E414BAE6143557D200A668C4 /* KRScene.h */,
|
|
||||||
E414BAE81435585A00A668C4 /* KRScene.cpp */,
|
|
||||||
);
|
|
||||||
name = Scene;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
/* End PBXGroup section */
|
/* End PBXGroup section */
|
||||||
|
|
||||||
/* Begin PBXHeadersBuildPhase section */
|
/* Begin PBXHeadersBuildPhase section */
|
||||||
@@ -485,6 +496,7 @@
|
|||||||
E461A168152E570700F2044A /* KRSpotLight.h in Headers */,
|
E461A168152E570700F2044A /* KRSpotLight.h in Headers */,
|
||||||
E4F975321536220900FD60B2 /* KRNode.h in Headers */,
|
E4F975321536220900FD60B2 /* KRNode.h in Headers */,
|
||||||
E46C214715364BC8009CABF3 /* tinyxml2.h in Headers */,
|
E46C214715364BC8009CABF3 /* tinyxml2.h in Headers */,
|
||||||
|
E48C696F15374F5B00232E28 /* KRContext.h in Headers */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -508,10 +520,13 @@
|
|||||||
E46DBE851512B9FA00D59F86 /* KREngine-common.h in Headers */,
|
E46DBE851512B9FA00D59F86 /* KREngine-common.h in Headers */,
|
||||||
E4F9754C153632F000FD60B2 /* KRCamera.h in Headers */,
|
E4F9754C153632F000FD60B2 /* KRCamera.h in Headers */,
|
||||||
E4F975501536333500FD60B2 /* KRModel.h in Headers */,
|
E4F975501536333500FD60B2 /* KRModel.h in Headers */,
|
||||||
|
E4D133661537685A0070068C /* KRShader.h in Headers */,
|
||||||
E461A153152E54B500F2044A /* KRLight.h in Headers */,
|
E461A153152E54B500F2044A /* KRLight.h in Headers */,
|
||||||
E4F97552153633EF00FD60B2 /* KRMaterialManager.h in Headers */,
|
E4F97552153633EF00FD60B2 /* KRMaterialManager.h in Headers */,
|
||||||
E461A176152E5C5600F2044A /* KRPointLight.h in Headers */,
|
E461A176152E5C5600F2044A /* KRPointLight.h in Headers */,
|
||||||
E4F975541536340400FD60B2 /* KRTexture.h in Headers */,
|
E4F975541536340400FD60B2 /* KRTexture.h in Headers */,
|
||||||
|
E48C697015374F5B00232E28 /* KRContext.h in Headers */,
|
||||||
|
E4D13365153767FF0070068C /* KRShaderManager.h in Headers */,
|
||||||
E461A15D152E563100F2044A /* KRDirectionalLight.h in Headers */,
|
E461A15D152E563100F2044A /* KRDirectionalLight.h in Headers */,
|
||||||
E461A169152E570700F2044A /* KRSpotLight.h in Headers */,
|
E461A169152E570700F2044A /* KRSpotLight.h in Headers */,
|
||||||
E46C214815364BC8009CABF3 /* tinyxml2.h in Headers */,
|
E46C214815364BC8009CABF3 /* tinyxml2.h in Headers */,
|
||||||
@@ -590,7 +605,6 @@
|
|||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
E4BBBB8A1512A40300F43B5B /* InfoPlist.strings in Resources */,
|
E4BBBB8A1512A40300F43B5B /* InfoPlist.strings in Resources */,
|
||||||
E46C214415364BC8009CABF3 /* tinyxml2_readme.txt in Resources */,
|
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -627,6 +641,7 @@
|
|||||||
E4F975361536221C00FD60B2 /* KRNode.cpp in Sources */,
|
E4F975361536221C00FD60B2 /* KRNode.cpp in Sources */,
|
||||||
E46C214515364BC8009CABF3 /* tinyxml2.cpp in Sources */,
|
E46C214515364BC8009CABF3 /* tinyxml2.cpp in Sources */,
|
||||||
E46C214B15364DEC009CABF3 /* KRSceneManager.cpp in Sources */,
|
E46C214B15364DEC009CABF3 /* KRSceneManager.cpp in Sources */,
|
||||||
|
E48C697215374F7E00232E28 /* KRContext.cpp in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -656,8 +671,11 @@
|
|||||||
E4F9754315362D0F00FD60B2 /* KRInstance.cpp in Sources */,
|
E4F9754315362D0F00FD60B2 /* KRInstance.cpp in Sources */,
|
||||||
E4F975371536221C00FD60B2 /* KRNode.cpp in Sources */,
|
E4F975371536221C00FD60B2 /* KRNode.cpp in Sources */,
|
||||||
E4F9754E1536331D00FD60B2 /* KRTextureManager.cpp in Sources */,
|
E4F9754E1536331D00FD60B2 /* KRTextureManager.cpp in Sources */,
|
||||||
|
E4D13367153768610070068C /* KRShader.cpp in Sources */,
|
||||||
E46C214615364BC8009CABF3 /* tinyxml2.cpp in Sources */,
|
E46C214615364BC8009CABF3 /* tinyxml2.cpp in Sources */,
|
||||||
|
E4D13364153767ED0070068C /* KRShaderManager.cpp in Sources */,
|
||||||
E46C214C15364DEC009CABF3 /* KRSceneManager.cpp in Sources */,
|
E46C214C15364DEC009CABF3 /* KRSceneManager.cpp in Sources */,
|
||||||
|
E48C697315374F7E00232E28 /* KRContext.cpp in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -193,8 +193,8 @@ bool KRBoundingVolume::test_intersect(const KRBoundingVolume &p) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
KRMat4 KRBoundingVolume::calcShadowProj(KRScene *pScene, KRModelManager *pModelManager, GLfloat sun_yaw, GLfloat sun_pitch) const {
|
KRMat4 KRBoundingVolume::calcShadowProj(KRScene *pScene, KRContext *pContext, GLfloat sun_yaw, GLfloat sun_pitch) const {
|
||||||
KRBoundingVolume sceneVolume = pScene->getExtents(pModelManager);
|
KRBoundingVolume sceneVolume = pScene->getExtents(pContext);
|
||||||
|
|
||||||
KRMat4 shadowvp;
|
KRMat4 shadowvp;
|
||||||
shadowvp.rotate(sun_pitch, X_AXIS);
|
shadowvp.rotate(sun_pitch, X_AXIS);
|
||||||
|
|||||||
@@ -41,6 +41,7 @@
|
|||||||
#import "KRModelManager.h"
|
#import "KRModelManager.h"
|
||||||
|
|
||||||
class KRScene;
|
class KRScene;
|
||||||
|
class KRContext;
|
||||||
|
|
||||||
class KRBoundingVolume {
|
class KRBoundingVolume {
|
||||||
public:
|
public:
|
||||||
@@ -55,7 +56,7 @@ public:
|
|||||||
KRBoundingVolume get_union(const KRBoundingVolume &p) const;
|
KRBoundingVolume get_union(const KRBoundingVolume &p) const;
|
||||||
bool test_intersect(const KRBoundingVolume &p) const;
|
bool test_intersect(const KRBoundingVolume &p) const;
|
||||||
|
|
||||||
KRMat4 calcShadowProj(KRScene *pScene, KRModelManager *pModelManager, GLfloat sun_yaw, GLfloat sun_pitch) const;
|
KRMat4 calcShadowProj(KRScene *pScene, KRContext *pContext, GLfloat sun_yaw, GLfloat sun_pitch) const;
|
||||||
private:
|
private:
|
||||||
KRVector3 m_vertices[8];
|
KRVector3 m_vertices[8];
|
||||||
};
|
};
|
||||||
|
|||||||
81
KREngine/KREngine/Classes/KRContext.cpp
Normal file
81
KREngine/KREngine/Classes/KRContext.cpp
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
//
|
||||||
|
// KRContext.cpp
|
||||||
|
// KREngine
|
||||||
|
//
|
||||||
|
// Created by Kearwood Gilbert on 12-04-12.
|
||||||
|
// Copyright (c) 2012 Kearwood Software. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
#include "KRContext.h"
|
||||||
|
|
||||||
|
KRContext::KRContext(const GLchar *szVertShaderSource, const GLchar *szFragShaderSource) {
|
||||||
|
m_pShaderManager = new KRShaderManager(szVertShaderSource, szFragShaderSource);
|
||||||
|
m_pTextureManager = new KRTextureManager();
|
||||||
|
m_pMaterialManager = new KRMaterialManager(m_pTextureManager, m_pShaderManager);
|
||||||
|
m_pModelManager = new KRModelManager();
|
||||||
|
m_pSceneManager = new KRSceneManager();
|
||||||
|
}
|
||||||
|
|
||||||
|
KRContext::~KRContext() {
|
||||||
|
if(m_pSceneManager) {
|
||||||
|
delete m_pSceneManager;
|
||||||
|
m_pSceneManager = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(m_pModelManager) {
|
||||||
|
delete m_pModelManager;
|
||||||
|
m_pModelManager = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(m_pTextureManager) {
|
||||||
|
delete m_pTextureManager;
|
||||||
|
m_pTextureManager = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(m_pMaterialManager) {
|
||||||
|
delete m_pMaterialManager;
|
||||||
|
m_pMaterialManager = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(m_pShaderManager) {
|
||||||
|
delete m_pShaderManager;
|
||||||
|
m_pShaderManager = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
KRSceneManager *KRContext::getSceneManager() {
|
||||||
|
return m_pSceneManager;
|
||||||
|
}
|
||||||
|
KRTextureManager *KRContext::getTextureManager() {
|
||||||
|
return m_pTextureManager;
|
||||||
|
}
|
||||||
|
KRMaterialManager *KRContext::getMaterialManager() {
|
||||||
|
return m_pMaterialManager;
|
||||||
|
}
|
||||||
|
KRShaderManager *KRContext::getShaderManager() {
|
||||||
|
return m_pShaderManager;
|
||||||
|
}
|
||||||
|
KRModelManager *KRContext::getModelManager() {
|
||||||
|
return m_pModelManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
void KRContext::loadResource(std::string path) {
|
||||||
|
std::string name = KRResource::GetFileBase(path);
|
||||||
|
std::string extension = KRResource::GetFileExtension(path);
|
||||||
|
if(extension.compare("krobject") == 0) {
|
||||||
|
m_pModelManager->loadModel(name.c_str(), path.c_str());
|
||||||
|
} else if(extension.compare("krscene") == 0) {
|
||||||
|
m_pSceneManager->loadScene(name.c_str(), path.c_str());
|
||||||
|
#if TARGET_OS_IPHONE
|
||||||
|
} else if(extension.compare("pvr") == 0) {
|
||||||
|
m_pTextureManager->loadTexture(name.c_str(), path.c_str());
|
||||||
|
#endif
|
||||||
|
} else if(extension.compare("mtl") == 0) {
|
||||||
|
m_pMaterialManager->loadFile(path.c_str());
|
||||||
|
} else {
|
||||||
|
fprintf(stderr, "KRContext::loadResource - Unknown resource file type: %s\n", path.c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
39
KREngine/KREngine/Classes/KRContext.h
Normal file
39
KREngine/KREngine/Classes/KRContext.h
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
//
|
||||||
|
// KRContext.h
|
||||||
|
// KREngine
|
||||||
|
//
|
||||||
|
// Created by Kearwood Gilbert on 12-04-12.
|
||||||
|
// Copyright (c) 2012 Kearwood Software. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef KREngine_KRContext_h
|
||||||
|
#define KREngine_KRContext_h
|
||||||
|
|
||||||
|
#import "KRSceneManager.h"
|
||||||
|
#import "KRTextureManager.h"
|
||||||
|
#import "KRMaterialManager.h"
|
||||||
|
#import "KRShaderManager.h"
|
||||||
|
#import "KRModelManager.h"
|
||||||
|
|
||||||
|
class KRContext {
|
||||||
|
public:
|
||||||
|
KRContext(const GLchar *szVertShaderSource, const GLchar *szFragShaderSource);
|
||||||
|
~KRContext();
|
||||||
|
|
||||||
|
void loadResource(std::string path);
|
||||||
|
|
||||||
|
KRSceneManager *getSceneManager();
|
||||||
|
KRTextureManager *getTextureManager();
|
||||||
|
KRMaterialManager *getMaterialManager();
|
||||||
|
KRShaderManager *getShaderManager();
|
||||||
|
KRModelManager *getModelManager();
|
||||||
|
|
||||||
|
private:
|
||||||
|
KRSceneManager *m_pSceneManager;
|
||||||
|
KRTextureManager *m_pTextureManager;
|
||||||
|
KRMaterialManager *m_pMaterialManager;
|
||||||
|
KRShaderManager *m_pShaderManager;
|
||||||
|
KRModelManager *m_pModelManager;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -35,11 +35,7 @@
|
|||||||
#import "KRVector3.h"
|
#import "KRVector3.h"
|
||||||
#import "KRModel.h"
|
#import "KRModel.h"
|
||||||
#import "KRScene.h"
|
#import "KRScene.h"
|
||||||
#import "KRTextureManager.h"
|
#import "KRContext.h"
|
||||||
#import "KRMaterialManager.h"
|
|
||||||
#import "KRShaderManager.h"
|
|
||||||
#import "KRModelManager.h"
|
|
||||||
#import "KRSceneManager.h"
|
|
||||||
#import "KRCamera.h"
|
#import "KRCamera.h"
|
||||||
|
|
||||||
#import "KREngine-common.h"
|
#import "KREngine-common.h"
|
||||||
@@ -81,11 +77,7 @@ typedef enum KREngineParameterType {KRENGINE_PARAMETER_INT, KRENGINE_PARAMETER_F
|
|||||||
GLuint m_postShaderProgram;
|
GLuint m_postShaderProgram;
|
||||||
GLuint m_shadowShaderProgram;
|
GLuint m_shadowShaderProgram;
|
||||||
|
|
||||||
KRSceneManager *m_pSceneManager;
|
KRContext *m_pContext;
|
||||||
KRTextureManager *m_pTextureManager;
|
|
||||||
KRMaterialManager *m_pMaterialManager;
|
|
||||||
KRShaderManager *m_pShaderManager;
|
|
||||||
KRModelManager *m_pModelManager;
|
|
||||||
|
|
||||||
int m_iFrame;
|
int m_iFrame;
|
||||||
|
|
||||||
@@ -96,6 +88,8 @@ typedef enum KREngineParameterType {KRENGINE_PARAMETER_INT, KRENGINE_PARAMETER_F
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@property(nonatomic, readonly) KRContext *context;
|
||||||
|
|
||||||
- (id)initForWidth: (GLuint)width Height: (GLuint)height;
|
- (id)initForWidth: (GLuint)width Height: (GLuint)height;
|
||||||
|
|
||||||
- (BOOL)loadVertexShader:(NSString *)vertexShaderName fragmentShader:(NSString *)fragmentShaderName forProgram:(GLuint *)programPointer withOptions:(NSString *)options;
|
- (BOOL)loadVertexShader:(NSString *)vertexShaderName fragmentShader:(NSString *)fragmentShaderName forProgram:(GLuint *)programPointer withOptions:(NSString *)options;
|
||||||
@@ -103,8 +97,6 @@ typedef enum KREngineParameterType {KRENGINE_PARAMETER_INT, KRENGINE_PARAMETER_F
|
|||||||
|
|
||||||
- (void)renderShadowBufferNumber: (int)iShadow ForScene: (KRScene *)pScene;
|
- (void)renderShadowBufferNumber: (int)iShadow ForScene: (KRScene *)pScene;
|
||||||
- (void)renderScene: (KRScene *)pScene WithViewMatrix: (KRMat4)viewMatrix LightDirection: (KRVector3)lightDirection CameraPosition: (KRVector3)cameraPosition;
|
- (void)renderScene: (KRScene *)pScene WithViewMatrix: (KRMat4)viewMatrix LightDirection: (KRVector3)lightDirection CameraPosition: (KRVector3)cameraPosition;
|
||||||
- (KRModelManager *)getModelManager;
|
|
||||||
- (KRSceneManager *)getSceneManager;
|
|
||||||
- (void)invalidateShadowBuffers;
|
- (void)invalidateShadowBuffers;
|
||||||
- (void)allocateShadowBuffers;
|
- (void)allocateShadowBuffers;
|
||||||
|
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ using namespace std;
|
|||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation KREngine
|
@implementation KREngine
|
||||||
|
@synthesize context = m_pContext;
|
||||||
double const PI = 3.141592653589793f;
|
double const PI = 3.141592653589793f;
|
||||||
|
|
||||||
- (id)initForWidth: (GLuint)width Height: (GLuint)height
|
- (id)initForWidth: (GLuint)width Height: (GLuint)height
|
||||||
@@ -79,11 +80,7 @@ double const PI = 3.141592653589793f;
|
|||||||
GLchar * szVertShaderSource = (GLchar *)[[NSString stringWithContentsOfFile:vertShaderPathname encoding:NSUTF8StringEncoding error:nil] UTF8String];
|
GLchar * szVertShaderSource = (GLchar *)[[NSString stringWithContentsOfFile:vertShaderPathname encoding:NSUTF8StringEncoding error:nil] UTF8String];
|
||||||
GLchar * szFragShaderSource = (GLchar *)[[NSString stringWithContentsOfFile:fragShaderPathname encoding:NSUTF8StringEncoding error:nil] UTF8String];
|
GLchar * szFragShaderSource = (GLchar *)[[NSString stringWithContentsOfFile:fragShaderPathname encoding:NSUTF8StringEncoding error:nil] UTF8String];
|
||||||
|
|
||||||
m_pShaderManager = new KRShaderManager(szVertShaderSource, szFragShaderSource);
|
m_pContext = new KRContext(szVertShaderSource, szFragShaderSource);
|
||||||
m_pTextureManager = new KRTextureManager();
|
|
||||||
m_pMaterialManager = new KRMaterialManager(m_pTextureManager, m_pShaderManager);
|
|
||||||
m_pModelManager = new KRModelManager(m_pMaterialManager);
|
|
||||||
m_pSceneManager = new KRSceneManager();
|
|
||||||
|
|
||||||
if (![self createBuffers] || ![self loadShaders] /*|| ![self loadObjects]*/ )
|
if (![self createBuffers] || ![self loadShaders] /*|| ![self loadObjects]*/ )
|
||||||
{
|
{
|
||||||
@@ -226,12 +223,12 @@ double const PI = 3.141592653589793f;
|
|||||||
|
|
||||||
KRMat4 newShadowMVP;
|
KRMat4 newShadowMVP;
|
||||||
if(shadowMaxDepths[m_cShadowBuffers - 1][iShadow] == 0.0) {
|
if(shadowMaxDepths[m_cShadowBuffers - 1][iShadow] == 0.0) {
|
||||||
KRBoundingVolume ext = KRBoundingVolume(pScene->getExtents(m_pModelManager));
|
KRBoundingVolume ext = KRBoundingVolume(pScene->getExtents(m_pContext));
|
||||||
|
|
||||||
newShadowMVP = ext.calcShadowProj(pScene, m_pModelManager, sun_yaw, sun_pitch);
|
newShadowMVP = ext.calcShadowProj(pScene, m_pContext, sun_yaw, sun_pitch);
|
||||||
} else {
|
} else {
|
||||||
KRBoundingVolume frustrumSliceVolume = KRBoundingVolume(viewMatrix, m_camera.perspective_fov, m_camera.perspective_aspect, m_camera.perspective_nearz + (m_camera.perspective_farz - m_camera.perspective_nearz) * shadowMinDepths[m_cShadowBuffers - 1][iShadow], m_camera.perspective_nearz + (m_camera.perspective_farz - m_camera.perspective_nearz) * shadowMaxDepths[m_cShadowBuffers - 1][iShadow]);
|
KRBoundingVolume frustrumSliceVolume = KRBoundingVolume(viewMatrix, m_camera.perspective_fov, m_camera.perspective_aspect, m_camera.perspective_nearz + (m_camera.perspective_farz - m_camera.perspective_nearz) * shadowMinDepths[m_cShadowBuffers - 1][iShadow], m_camera.perspective_nearz + (m_camera.perspective_farz - m_camera.perspective_nearz) * shadowMaxDepths[m_cShadowBuffers - 1][iShadow]);
|
||||||
newShadowMVP = frustrumSliceVolume.calcShadowProj(pScene, m_pModelManager, sun_yaw, sun_pitch);
|
newShadowMVP = frustrumSliceVolume.calcShadowProj(pScene, m_pContext, sun_yaw, sun_pitch);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!(shadowmvpmatrix[iShadow] == newShadowMVP)) {
|
if(!(shadowmvpmatrix[iShadow] == newShadowMVP)) {
|
||||||
@@ -331,8 +328,7 @@ double const PI = 3.141592653589793f;
|
|||||||
KRVector3 cameraPosition;
|
KRVector3 cameraPosition;
|
||||||
KRVector3 lightDirection;
|
KRVector3 lightDirection;
|
||||||
KRBoundingVolume shadowVolume = KRBoundingVolume(vertices);
|
KRBoundingVolume shadowVolume = KRBoundingVolume(vertices);
|
||||||
pScene->render(&m_camera, m_pModelManager, shadowVolume, m_pMaterialManager, true, shadowmvpmatrix[iShadow], cameraPosition, lightDirection, shadowmvpmatrix, NULL, 0, m_pShaderManager, m_pTextureManager);
|
pScene->render(&m_camera, m_pContext, shadowVolume, true, shadowmvpmatrix[iShadow], cameraPosition, lightDirection, shadowmvpmatrix, NULL, m_cShadowBuffers);
|
||||||
|
|
||||||
glViewport(0, 0, 768, 1024);
|
glViewport(0, 0, 768, 1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -357,7 +353,7 @@ double const PI = 3.141592653589793f;
|
|||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
|
||||||
KRBoundingVolume frustrumVolume = KRBoundingVolume(viewMatrix, m_camera.perspective_fov, m_camera.perspective_aspect, m_camera.perspective_nearz, m_camera.perspective_farz);
|
KRBoundingVolume frustrumVolume = KRBoundingVolume(viewMatrix, m_camera.perspective_fov, m_camera.perspective_aspect, m_camera.perspective_nearz, m_camera.perspective_farz);
|
||||||
pScene -> render(&m_camera, m_pModelManager, frustrumVolume, m_pMaterialManager, false, viewMatrix, cameraPosition, lightDirection, shadowmvpmatrix, shadowDepthTexture, m_cShadowBuffers, m_pShaderManager, m_pTextureManager);
|
pScene -> render(&m_camera, m_pContext, frustrumVolume, false, viewMatrix, cameraPosition, lightDirection, shadowmvpmatrix, shadowDepthTexture, m_cShadowBuffers);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)compileShader:(GLuint *)shader type:(GLenum)type file:(NSString *)file withOptions: (NSString *)options
|
- (BOOL)compileShader:(GLuint *)shader type:(GLenum)type file:(NSString *)file withOptions: (NSString *)options
|
||||||
@@ -540,49 +536,16 @@ double const PI = 3.141592653589793f;
|
|||||||
|
|
||||||
- (BOOL)loadResource:(NSString *)path
|
- (BOOL)loadResource:(NSString *)path
|
||||||
{
|
{
|
||||||
NSString *name = [[path lastPathComponent] stringByDeletingPathExtension];
|
m_pContext->loadResource([path UTF8String]);
|
||||||
if([path hasSuffix: @".krobject"]) {
|
|
||||||
NSLog(@"object: %@", path);
|
|
||||||
m_pModelManager->loadModel([name UTF8String], [path UTF8String]);
|
|
||||||
} else if([path hasSuffix: @".krscene"]) {
|
|
||||||
NSLog(@"scene: %@", path);
|
|
||||||
m_pSceneManager->loadScene([name UTF8String], [path UTF8String]);
|
|
||||||
} else if([path hasSuffix: @".pvr"]) {
|
|
||||||
NSLog(@"texture: %@", path);
|
|
||||||
m_pTextureManager->loadTexture([name UTF8String], [path UTF8String]);
|
|
||||||
} else if([path hasSuffix: @".mtl"]) {
|
|
||||||
NSLog(@"material: %@", path);
|
|
||||||
m_pMaterialManager->loadFile([path UTF8String]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)dealloc
|
- (void)dealloc
|
||||||
{
|
{
|
||||||
if(m_pSceneManager) {
|
if(m_pContext) {
|
||||||
delete m_pSceneManager;
|
delete m_pContext;
|
||||||
m_pSceneManager = NULL;
|
m_pContext = NULL;
|
||||||
}
|
|
||||||
|
|
||||||
if(m_pModelManager) {
|
|
||||||
delete m_pModelManager;
|
|
||||||
m_pModelManager = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(m_pTextureManager) {
|
|
||||||
delete m_pTextureManager;
|
|
||||||
m_pTextureManager = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(m_pMaterialManager) {
|
|
||||||
delete m_pMaterialManager;
|
|
||||||
m_pMaterialManager = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(m_pShaderManager) {
|
|
||||||
delete m_pShaderManager;
|
|
||||||
m_pShaderManager = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[self invalidatePostShader];
|
[self invalidatePostShader];
|
||||||
@@ -725,7 +688,7 @@ double const PI = 3.141592653589793f;
|
|||||||
|
|
||||||
const char *szText = [debug_text UTF8String];
|
const char *szText = [debug_text UTF8String];
|
||||||
if(*szText) {
|
if(*szText) {
|
||||||
KRTexture *pFontTexture = m_pTextureManager->getTexture("font");
|
KRTexture *pFontTexture = m_pContext->getTextureManager()->getTexture("font");
|
||||||
|
|
||||||
glDisable(GL_DEPTH_TEST);
|
glDisable(GL_DEPTH_TEST);
|
||||||
glUseProgram(m_postShaderProgram);
|
glUseProgram(m_postShaderProgram);
|
||||||
@@ -783,7 +746,7 @@ double const PI = 3.141592653589793f;
|
|||||||
|
|
||||||
-(int)getParameterCount
|
-(int)getParameterCount
|
||||||
{
|
{
|
||||||
return 30;
|
return 31;
|
||||||
}
|
}
|
||||||
|
|
||||||
-(NSString *)getParameterNameWithIndex: (int)i
|
-(NSString *)getParameterNameWithIndex: (int)i
|
||||||
@@ -1085,13 +1048,13 @@ double const PI = 3.141592653589793f;
|
|||||||
|
|
||||||
-(double)getParameterMinWithIndex: (int)i
|
-(double)getParameterMinWithIndex: (int)i
|
||||||
{
|
{
|
||||||
double minValues[30] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
double minValues[31] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||||
return minValues[i];
|
return minValues[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
-(double)getParameterMaxWithIndex: (int)i
|
-(double)getParameterMaxWithIndex: (int)i
|
||||||
{
|
{
|
||||||
double maxValues[30] = {PI, 2.0f * PI, PI, 3.0f, 1.0f, 1.0f, 1.0f, 1.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 2.0f, 1.0f, 1.0f, 1.0f, 5.0f, 1.0f, 0.5f, 1.0f, 2.0f, 2.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f};
|
double maxValues[31] = {PI, 2.0f * PI, PI, 3.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 2.0f, 1.0f, 1.0f, 1.0f, 5.0f, 1.0f, 0.5f, 1.0f, 2.0f, 2.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f};
|
||||||
return maxValues[i];
|
return maxValues[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1105,14 +1068,6 @@ double const PI = 3.141592653589793f;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (KRModelManager *)getModelManager {
|
|
||||||
return m_pModelManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (KRSceneManager *)getSceneManager {
|
|
||||||
return m_pSceneManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)invalidateShadowBuffers {
|
- (void)invalidateShadowBuffers {
|
||||||
for(int i=0; i < m_cShadowBuffers; i++) {
|
for(int i=0; i < m_cShadowBuffers; i++) {
|
||||||
shadowValid[i] = false;
|
shadowValid[i] = false;
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#import "KRInstance.h"
|
#import "KRInstance.h"
|
||||||
|
#import "KRContext.h"
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
KRInstance::KRInstance(std::string instance_name, std::string model_name, const KRMat4 modelMatrix, std::string light_map) : KRNode(instance_name) {
|
KRInstance::KRInstance(std::string instance_name, std::string model_name, const KRMat4 modelMatrix, std::string light_map) : KRNode(instance_name) {
|
||||||
@@ -64,16 +65,16 @@ KRMat4 &KRInstance::getModelMatrix() {
|
|||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
#if TARGET_OS_IPHONE
|
||||||
|
|
||||||
void KRInstance::render(KRCamera *pCamera, KRModelManager *pModelManager, KRBoundingVolume &frustrumVolume, KRMaterialManager *pMaterialManager, bool bRenderShadowMap, KRMat4 &viewMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRShaderManager *pShaderManager, KRTextureManager *pTextureManager) {
|
void KRInstance::render(KRCamera *pCamera, KRContext *pContext, KRBoundingVolume &frustrumVolume, bool bRenderShadowMap, KRMat4 &viewMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers) {
|
||||||
|
|
||||||
if(m_pModel == NULL) {
|
if(m_pModel == NULL) {
|
||||||
m_pModel = pModelManager->getModel(m_model_name.c_str());
|
m_pModel = pContext->getModelManager()->getModel(m_model_name.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_pModel != NULL && (getExtents(pModelManager).test_intersect(frustrumVolume) || bRenderShadowMap)) {
|
if(m_pModel != NULL && (getExtents(pContext).test_intersect(frustrumVolume) || bRenderShadowMap)) {
|
||||||
|
|
||||||
if(m_pLightMap == NULL && m_lightMap.size()) {
|
if(m_pLightMap == NULL && m_lightMap.size()) {
|
||||||
m_pLightMap = pTextureManager->getTexture(m_lightMap.c_str());
|
m_pLightMap = pContext->getTextureManager()->getTexture(m_lightMap.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cShadowBuffers == 0 && m_pLightMap && pCamera->bEnableLightMap && !bRenderShadowMap) {
|
if(cShadowBuffers == 0 && m_pLightMap && pCamera->bEnableLightMap && !bRenderShadowMap) {
|
||||||
@@ -97,19 +98,19 @@ void KRInstance::render(KRCamera *pCamera, KRModelManager *pModelManager, KRBoun
|
|||||||
KRVector3 cameraPosObject = inverseModelMatrix.dot(cameraPosition);
|
KRVector3 cameraPosObject = inverseModelMatrix.dot(cameraPosition);
|
||||||
KRVector3 lightDirObject = inverseModelMatrix.dot(lightDirection);
|
KRVector3 lightDirObject = inverseModelMatrix.dot(lightDirection);
|
||||||
|
|
||||||
m_pModel->render(pCamera, pMaterialManager, bRenderShadowMap, mvpmatrix, cameraPosObject, lightDirection, pShadowMatrices, shadowDepthTextures, cShadowBuffers, pShaderManager, pTextureManager, m_pLightMap);
|
m_pModel->render(pCamera, pContext, bRenderShadowMap, mvpmatrix, cameraPosObject, lightDirection, pShadowMatrices, shadowDepthTextures, cShadowBuffers, m_pLightMap);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
KRNode::render(pCamera, pModelManager, frustrumVolume, pMaterialManager, bRenderShadowMap, viewMatrix, cameraPosition, lightDirection, pShadowMatrices, shadowDepthTextures, cShadowBuffers, pShaderManager, pTextureManager);
|
KRNode::render(pCamera, pContext, frustrumVolume, bRenderShadowMap, viewMatrix, cameraPosition, lightDirection, pShadowMatrices, shadowDepthTextures, cShadowBuffers);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void KRInstance::calcExtents(KRModelManager *pModelManager) {
|
void KRInstance::calcExtents(KRContext *pContext) {
|
||||||
KRNode::calcExtents(pModelManager);
|
KRNode::calcExtents(pContext);
|
||||||
if(m_pModel == NULL) {
|
if(m_pModel == NULL) {
|
||||||
m_pModel = pModelManager->getModel(m_model_name.c_str());
|
m_pModel = pContext->getModelManager()->getModel(m_model_name.c_str());
|
||||||
}
|
}
|
||||||
assert(m_pModel != NULL);
|
assert(m_pModel != NULL);
|
||||||
|
|
||||||
|
|||||||
@@ -44,6 +44,9 @@
|
|||||||
#import "KRCamera.h"
|
#import "KRCamera.h"
|
||||||
#import "KRModelManager.h"
|
#import "KRModelManager.h"
|
||||||
#import "KRNode.h"
|
#import "KRNode.h"
|
||||||
|
#import "KRContext.h"
|
||||||
|
#import "KRModel.h"
|
||||||
|
#import "KRTexture.h"
|
||||||
|
|
||||||
class KRBoundingVolume;
|
class KRBoundingVolume;
|
||||||
|
|
||||||
@@ -58,10 +61,10 @@ public:
|
|||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
#if TARGET_OS_IPHONE
|
||||||
|
|
||||||
virtual void render(KRCamera *pCamera, KRModelManager *pModelManager, KRBoundingVolume &frustrumVolume, KRMaterialManager *pMaterialManager, bool bRenderShadowMap, KRMat4 &viewMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRShaderManager *pShaderManager, KRTextureManager *pTextureManager);
|
virtual void render(KRCamera *pCamera, KRContext *pContext, KRBoundingVolume &frustrumVolume, bool bRenderShadowMap, KRMat4 &viewMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
virtual void calcExtents(KRModelManager *pModelManager);
|
virtual void calcExtents(KRContext *pContext);
|
||||||
|
|
||||||
KRMat4 &getModelMatrix();
|
KRMat4 &getModelMatrix();
|
||||||
|
|
||||||
|
|||||||
@@ -37,6 +37,8 @@
|
|||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#import "KRcontext.h"
|
||||||
|
|
||||||
KRMaterial::KRMaterial(const char *szName) : KRResource(szName) {
|
KRMaterial::KRMaterial(const char *szName) : KRResource(szName) {
|
||||||
strcpy(m_szName, szName);
|
strcpy(m_szName, szName);
|
||||||
m_pAmbientMap = NULL;
|
m_pAmbientMap = NULL;
|
||||||
@@ -156,21 +158,21 @@ bool KRMaterial::isTransparent() {
|
|||||||
return m_tr != 0.0;
|
return m_tr != 0.0;
|
||||||
}
|
}
|
||||||
#if TARGET_OS_IPHONE
|
#if TARGET_OS_IPHONE
|
||||||
void KRMaterial::bind(KRMaterial **prevBoundMaterial, char *szPrevShaderKey, KRCamera *pCamera, KRMat4 &mvpMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRShaderManager *pShaderManager, KRTextureManager *pTextureManager, KRTexture *pLightMap) {
|
void KRMaterial::bind(KRMaterial **prevBoundMaterial, char *szPrevShaderKey, KRCamera *pCamera, KRMat4 &mvpMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRContext *pContext, KRTexture *pLightMap) {
|
||||||
bool bSameMaterial = *prevBoundMaterial == this;
|
bool bSameMaterial = *prevBoundMaterial == this;
|
||||||
bool bLightMap = pLightMap && pCamera->bEnableLightMap;
|
bool bLightMap = pLightMap && pCamera->bEnableLightMap;
|
||||||
|
|
||||||
if(!m_pAmbientMap && m_ambientMap.size()) {
|
if(!m_pAmbientMap && m_ambientMap.size()) {
|
||||||
m_pAmbientMap = pTextureManager->getTexture(m_ambientMap.c_str());
|
m_pAmbientMap = pContext->getTextureManager()->getTexture(m_ambientMap.c_str());
|
||||||
}
|
}
|
||||||
if(!m_pDiffuseMap && m_diffuseMap.size()) {
|
if(!m_pDiffuseMap && m_diffuseMap.size()) {
|
||||||
m_pDiffuseMap = pTextureManager->getTexture(m_diffuseMap.c_str());
|
m_pDiffuseMap = pContext->getTextureManager()->getTexture(m_diffuseMap.c_str());
|
||||||
}
|
}
|
||||||
if(!m_pNormalMap && m_normalMap.size()) {
|
if(!m_pNormalMap && m_normalMap.size()) {
|
||||||
m_pNormalMap = pTextureManager->getTexture(m_normalMap.c_str());
|
m_pNormalMap = pContext->getTextureManager()->getTexture(m_normalMap.c_str());
|
||||||
}
|
}
|
||||||
if(!m_pSpecularMap && m_specularMap.size()) {
|
if(!m_pSpecularMap && m_specularMap.size()) {
|
||||||
m_pSpecularMap = pTextureManager->getTexture(m_specularMap.c_str());
|
m_pSpecularMap = pContext->getTextureManager()->getTexture(m_specularMap.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -185,7 +187,7 @@ void KRMaterial::bind(KRMaterial **prevBoundMaterial, char *szPrevShaderKey, KRC
|
|||||||
bool bNormalMap = m_pNormalMap != NULL && pCamera->bEnableNormalMap;
|
bool bNormalMap = m_pNormalMap != NULL && pCamera->bEnableNormalMap;
|
||||||
bool bSpecMap = m_pSpecularMap != NULL && pCamera->bEnableSpecMap;
|
bool bSpecMap = m_pSpecularMap != NULL && pCamera->bEnableSpecMap;
|
||||||
|
|
||||||
KRShader *pShader = pShaderManager->getShader(pCamera, bDiffuseMap, bNormalMap, bSpecMap, cShadowBuffers, bLightMap, m_diffuseMapScale != default_scale && bDiffuseMap, m_specularMapScale != default_scale && bSpecMap, m_normalMapScale != default_scale && bNormalMap, m_diffuseMapOffset != default_offset && bDiffuseMap, m_specularMapOffset != default_offset && bSpecMap, m_normalMapOffset != default_offset && bNormalMap);
|
KRShader *pShader = pContext->getShaderManager()->getShader(pCamera, bDiffuseMap, bNormalMap, bSpecMap, cShadowBuffers, bLightMap, m_diffuseMapScale != default_scale && bDiffuseMap, m_specularMapScale != default_scale && bSpecMap, m_normalMapScale != default_scale && bNormalMap, m_diffuseMapOffset != default_offset && bDiffuseMap, m_specularMapOffset != default_offset && bSpecMap, m_normalMapOffset != default_offset && bNormalMap);
|
||||||
|
|
||||||
bool bSameShader = strcmp(pShader->getKey(), szPrevShaderKey) == 0;
|
bool bSameShader = strcmp(pShader->getKey(), szPrevShaderKey) == 0;
|
||||||
if(!bSameShader) {
|
if(!bSameShader) {
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ using std::list;
|
|||||||
|
|
||||||
|
|
||||||
class KRTextureManager;
|
class KRTextureManager;
|
||||||
|
class KRContext;
|
||||||
|
|
||||||
class KRMaterial : public KRResource {
|
class KRMaterial : public KRResource {
|
||||||
public:
|
public:
|
||||||
@@ -75,7 +76,7 @@ public:
|
|||||||
char *getName();
|
char *getName();
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
#if TARGET_OS_IPHONE
|
||||||
void bind(KRMaterial **prevBoundMaterial, char *szPrevShaderKey, KRCamera *pCamera, KRMat4 &mvpMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRShaderManager *pShaderManager, KRTextureManager *pTextureManager, KRTexture *pLightMap);
|
void bind(KRMaterial **prevBoundMaterial, char *szPrevShaderKey, KRCamera *pCamera, KRMat4 &mvpMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRContext *pContext, KRTexture *pLightMap);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -44,24 +44,18 @@
|
|||||||
#include "KRVector3.h"
|
#include "KRVector3.h"
|
||||||
#import "KRShader.h"
|
#import "KRShader.h"
|
||||||
#import "KRShaderManager.h"
|
#import "KRShaderManager.h"
|
||||||
|
#import "KRContext.h"
|
||||||
|
|
||||||
|
KRModel::KRModel(std::string name, std::string path) {
|
||||||
KRModel::KRModel(std::string name, std::string path, KRMaterialManager *pMaterialManager) {
|
|
||||||
m_name = name;
|
m_name = name;
|
||||||
loadPack(path, pMaterialManager);
|
loadPack(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRModel::loadPack(std::string path, KRMaterialManager *pMaterialManager) {
|
void KRModel::loadPack(std::string path) {
|
||||||
|
m_materials.clear();
|
||||||
|
m_uniqueMaterials.clear();
|
||||||
m_pMesh = new KRMesh(KRResource::GetFileBase(path));
|
m_pMesh = new KRMesh(KRResource::GetFileBase(path));
|
||||||
m_pMesh->loadPack(path);
|
m_pMesh->loadPack(path);
|
||||||
|
|
||||||
vector<KRMesh::Submesh *> submeshes = m_pMesh->getSubmeshes();
|
|
||||||
|
|
||||||
for(std::vector<KRMesh::Submesh *>::iterator itr = submeshes.begin(); itr != submeshes.end(); itr++) {
|
|
||||||
KRMaterial *pMaterial = pMaterialManager->getMaterial((*itr)->szMaterialName);
|
|
||||||
m_materials.push_back(pMaterial);
|
|
||||||
m_uniqueMaterials.insert(pMaterial);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string KRModel::getName() {
|
std::string KRModel::getName() {
|
||||||
@@ -73,7 +67,18 @@ KRModel::~KRModel() {
|
|||||||
}
|
}
|
||||||
#if TARGET_OS_IPHONE
|
#if TARGET_OS_IPHONE
|
||||||
|
|
||||||
void KRModel::render(KRCamera *pCamera, KRMaterialManager *pMaterialManager, bool bRenderShadowMap, KRMat4 &mvpMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRShaderManager *pShaderManager, KRTextureManager *pTextureManager, KRTexture *pLightMap) {
|
void KRModel::render(KRCamera *pCamera, KRContext *pContext, bool bRenderShadowMap, KRMat4 &mvpMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRTexture *pLightMap) {
|
||||||
|
|
||||||
|
if(m_materials.size() == 0) {
|
||||||
|
vector<KRMesh::Submesh *> submeshes = m_pMesh->getSubmeshes();
|
||||||
|
|
||||||
|
for(std::vector<KRMesh::Submesh *>::iterator itr = submeshes.begin(); itr != submeshes.end(); itr++) {
|
||||||
|
KRMaterial *pMaterial = pContext->getMaterialManager()->getMaterial((*itr)->szMaterialName);
|
||||||
|
m_materials.push_back(pMaterial);
|
||||||
|
m_uniqueMaterials.insert(pMaterial);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
KRMaterial *pPrevBoundMaterial = NULL;
|
KRMaterial *pPrevBoundMaterial = NULL;
|
||||||
int iPrevBuffer = -1;
|
int iPrevBuffer = -1;
|
||||||
char szPrevShaderKey[128];
|
char szPrevShaderKey[128];
|
||||||
@@ -99,7 +104,7 @@ void KRModel::render(KRCamera *pCamera, KRMaterialManager *pMaterialManager, boo
|
|||||||
KRMaterial *pMaterial = m_materials[iSubmesh];
|
KRMaterial *pMaterial = m_materials[iSubmesh];
|
||||||
|
|
||||||
if(pMaterial != NULL && pMaterial == (*mat_itr)) {
|
if(pMaterial != NULL && pMaterial == (*mat_itr)) {
|
||||||
pMaterial->bind(&pPrevBoundMaterial, szPrevShaderKey, pCamera, mvpMatrix, cameraPosition, lightDirection, pShadowMatrices, shadowDepthTextures, cShadowBuffers, pShaderManager, pTextureManager, pLightMap);
|
pMaterial->bind(&pPrevBoundMaterial, szPrevShaderKey, pCamera, mvpMatrix, cameraPosition, lightDirection, pShadowMatrices, shadowDepthTextures, cShadowBuffers, pContext, pLightMap);
|
||||||
m_pMesh->renderSubmesh(iSubmesh, &iPrevBuffer);
|
m_pMesh->renderSubmesh(iSubmesh, &iPrevBuffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
#import <string>
|
#import <string>
|
||||||
#import "KRMesh.h"
|
#import "KRMesh.h"
|
||||||
#import "KRVector2.h"
|
#import "KRVector2.h"
|
||||||
|
#import "KRcontext.h"
|
||||||
|
|
||||||
#import "KREngine-common.h"
|
#import "KREngine-common.h"
|
||||||
|
|
||||||
@@ -49,12 +50,12 @@ using std::set;
|
|||||||
class KRModel {
|
class KRModel {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
KRModel(std::string name, std::string path, KRMaterialManager *pMaterialManager);
|
KRModel(std::string name, std::string path);
|
||||||
~KRModel();
|
~KRModel();
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
#if TARGET_OS_IPHONE
|
||||||
|
|
||||||
void render(KRCamera *pCamera, KRMaterialManager *pMaterialManager, bool bRenderShadowMap, KRMat4 &mvpMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRShaderManager *pShaderManager, KRTextureManager *pTextureManager, KRTexture *pLightMap);
|
void render(KRCamera *pCamera, KRContext *pContext, bool bRenderShadowMap, KRMat4 &mvpMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRTexture *pLightMap);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -62,7 +63,7 @@ public:
|
|||||||
std::string getName();
|
std::string getName();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void loadPack(std::string path, KRMaterialManager *pMaterialManager);
|
void loadPack(std::string path);
|
||||||
|
|
||||||
vector<KRMaterial *> m_materials;
|
vector<KRMaterial *> m_materials;
|
||||||
set<KRMaterial *> m_uniqueMaterials;
|
set<KRMaterial *> m_uniqueMaterials;
|
||||||
|
|||||||
@@ -31,8 +31,10 @@
|
|||||||
|
|
||||||
#include "KRModelManager.h"
|
#include "KRModelManager.h"
|
||||||
|
|
||||||
KRModelManager::KRModelManager(KRMaterialManager *pMaterialManager) {
|
#import "KRModel.h"
|
||||||
m_pMaterialManager = pMaterialManager;
|
|
||||||
|
KRModelManager::KRModelManager() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
KRModelManager::~KRModelManager() {
|
KRModelManager::~KRModelManager() {
|
||||||
@@ -43,7 +45,7 @@ KRModelManager::~KRModelManager() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
KRModel *KRModelManager::loadModel(const char *szName, const char *szPath) {
|
KRModel *KRModelManager::loadModel(const char *szName, const char *szPath) {
|
||||||
KRModel *pModel = new KRModel(szName, szPath, m_pMaterialManager);
|
KRModel *pModel = new KRModel(szName, szPath);
|
||||||
m_models[szName] = pModel;
|
m_models[szName] = pModel;
|
||||||
return pModel;
|
return pModel;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,8 @@
|
|||||||
|
|
||||||
#import "KREngine-common.h"
|
#import "KREngine-common.h"
|
||||||
|
|
||||||
#include "KRModel.h"
|
class KRContext;
|
||||||
|
class KRModel;
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#import <string>
|
#import <string>
|
||||||
@@ -42,7 +43,7 @@ using std::map;
|
|||||||
|
|
||||||
class KRModelManager {
|
class KRModelManager {
|
||||||
public:
|
public:
|
||||||
KRModelManager(KRMaterialManager *pMaterialManager);
|
KRModelManager();
|
||||||
~KRModelManager();
|
~KRModelManager();
|
||||||
|
|
||||||
KRModel *loadModel(const char *szName, const char *szPath);
|
KRModel *loadModel(const char *szName, const char *szPath);
|
||||||
@@ -54,7 +55,6 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::map<std::string, KRModel *> m_models;
|
std::map<std::string, KRModel *> m_models;
|
||||||
KRMaterialManager *m_pMaterialManager;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -142,11 +142,11 @@ KRNode *KRNode::LoadXML(tinyxml2::XMLElement *e) {
|
|||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
#if TARGET_OS_IPHONE
|
||||||
|
|
||||||
void KRNode::render(KRCamera *pCamera, KRModelManager *pModelManager, KRBoundingVolume &frustrumVolume, KRMaterialManager *pMaterialManager, bool bRenderShadowMap, KRMat4 &viewMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRShaderManager *pShaderManager, KRTextureManager *pTextureManager) {
|
void KRNode::render(KRCamera *pCamera, KRContext *pContext, KRBoundingVolume &frustrumVolume, bool bRenderShadowMap, KRMat4 &viewMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers) {
|
||||||
|
|
||||||
for(std::vector<KRNode *>::iterator itr=m_childNodes.begin(); itr < m_childNodes.end(); ++itr) {
|
for(std::vector<KRNode *>::iterator itr=m_childNodes.begin(); itr < m_childNodes.end(); ++itr) {
|
||||||
KRNode *child = (*itr);
|
KRNode *child = (*itr);
|
||||||
child->render(pCamera, pModelManager, frustrumVolume, pMaterialManager, bRenderShadowMap, viewMatrix, cameraPosition, lightDirection, pShadowMatrices, shadowDepthTextures, cShadowBuffers, pShaderManager, pTextureManager);
|
child->render(pCamera, pContext, frustrumVolume, bRenderShadowMap, viewMatrix, cameraPosition, lightDirection, pShadowMatrices, shadowDepthTextures, cShadowBuffers);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -162,21 +162,21 @@ void KRNode::clearExtents() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
KRBoundingVolume KRNode::getExtents(KRModelManager *pModelManager) {
|
KRBoundingVolume KRNode::getExtents(KRContext *pContext) {
|
||||||
if(!m_pExtents) {
|
if(!m_pExtents) {
|
||||||
calcExtents(pModelManager);
|
calcExtents(pContext);
|
||||||
}
|
}
|
||||||
return *m_pExtents;
|
return *m_pExtents;
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRNode::calcExtents(KRModelManager *pModelManager) {
|
void KRNode::calcExtents(KRContext *pContext) {
|
||||||
clearExtents();
|
clearExtents();
|
||||||
for(std::vector<KRNode *>::iterator itr=m_childNodes.begin(); itr < m_childNodes.end(); ++itr) {
|
for(std::vector<KRNode *>::iterator itr=m_childNodes.begin(); itr < m_childNodes.end(); ++itr) {
|
||||||
KRNode *child = (*itr);
|
KRNode *child = (*itr);
|
||||||
if(m_pExtents) {
|
if(m_pExtents) {
|
||||||
*m_pExtents = m_pExtents->get_union(child->getExtents(pModelManager));
|
*m_pExtents = m_pExtents->get_union(child->getExtents(pContext));
|
||||||
} else {
|
} else {
|
||||||
m_pExtents = new KRBoundingVolume(child->getExtents(pModelManager));
|
m_pExtents = new KRBoundingVolume(child->getExtents(pContext));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ class KRModelManager;
|
|||||||
class KRMaterialManager;
|
class KRMaterialManager;
|
||||||
class KRMat4;
|
class KRMat4;
|
||||||
class KRTextureManager;
|
class KRTextureManager;
|
||||||
|
class KRContext;
|
||||||
|
|
||||||
class KRNode
|
class KRNode
|
||||||
{
|
{
|
||||||
@@ -43,11 +44,11 @@ public:
|
|||||||
const KRVector3 &getLocalRotation();
|
const KRVector3 &getLocalRotation();
|
||||||
|
|
||||||
void clearExtents();
|
void clearExtents();
|
||||||
virtual void calcExtents(KRModelManager *pModelManager);
|
virtual void calcExtents(KRContext *Context);
|
||||||
KRBoundingVolume getExtents(KRModelManager *pModelManager);
|
KRBoundingVolume getExtents(KRContext *pContext);
|
||||||
#if TARGET_OS_IPHONE
|
#if TARGET_OS_IPHONE
|
||||||
|
|
||||||
virtual void render(KRCamera *pCamera, KRModelManager *pModelManager, KRBoundingVolume &frustrumVolume, KRMaterialManager *pMaterialManager, bool bRenderShadowMap, KRMat4 &viewMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRShaderManager *pShaderManager, KRTextureManager *pTextureManager);
|
virtual void render(KRCamera *pCamera, KRContext *pContext, KRBoundingVolume &frustrumVolume, bool bRenderShadowMap, KRMat4 &viewMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ KRScene::~KRScene() {
|
|||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
#if TARGET_OS_IPHONE
|
||||||
|
|
||||||
void KRScene::render(KRCamera *pCamera, KRModelManager *pModelManager, KRBoundingVolume &frustrumVolume, KRMaterialManager *pMaterialManager, bool bRenderShadowMap, KRMat4 &viewMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRShaderManager *pShaderManager, KRTextureManager *pTextureManager) {
|
void KRScene::render(KRCamera *pCamera, KRContext *pContext, KRBoundingVolume &frustrumVolume, bool bRenderShadowMap, KRMat4 &viewMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers) {
|
||||||
|
|
||||||
if(cShadowBuffers > 0 && !bRenderShadowMap) {
|
if(cShadowBuffers > 0 && !bRenderShadowMap) {
|
||||||
glActiveTexture(GL_TEXTURE3);
|
glActiveTexture(GL_TEXTURE3);
|
||||||
@@ -77,13 +77,13 @@ void KRScene::render(KRCamera *pCamera, KRModelManager *pModelManager, KRBoundin
|
|||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_pRootNode->render(pCamera, pModelManager, frustrumVolume, pMaterialManager, bRenderShadowMap, viewMatrix, cameraPosition, lightDirection, pShadowMatrices, shadowDepthTextures, cShadowBuffers, pShaderManager, pTextureManager);
|
m_pRootNode->render(pCamera, pContext, frustrumVolume, bRenderShadowMap, viewMatrix, cameraPosition, lightDirection, pShadowMatrices, shadowDepthTextures, cShadowBuffers);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
KRBoundingVolume KRScene::getExtents(KRModelManager *pModelManager) {
|
KRBoundingVolume KRScene::getExtents(KRContext *pContext) {
|
||||||
return m_pRootNode->getExtents(pModelManager);
|
return m_pRootNode->getExtents(pContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -61,11 +61,11 @@ public:
|
|||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
#if TARGET_OS_IPHONE
|
||||||
|
|
||||||
void render(KRCamera *pCamera, KRModelManager *pModelManager, KRBoundingVolume &frustrumVolume, KRMaterialManager *pMaterialManager, bool bRenderShadowMap, KRMat4 &viewMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers, KRShaderManager *pShaderManager, KRTextureManager *pTextureManager);
|
void render(KRCamera *pCamera, KRContext *pContext, KRBoundingVolume &frustrumVolume, bool bRenderShadowMap, KRMat4 &viewMatrix, KRVector3 &cameraPosition, KRVector3 &lightDirection, KRMat4 *pShadowMatrices, GLuint *shadowDepthTextures, int cShadowBuffers);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
KRBoundingVolume getExtents(KRModelManager *pModelManager);
|
KRBoundingVolume getExtents(KRContext *pContext);
|
||||||
private:
|
private:
|
||||||
KRNode *m_pRootNode;
|
KRNode *m_pRootNode;
|
||||||
KRBoundingVolume *m_pExtents;
|
KRBoundingVolume *m_pExtents;
|
||||||
|
|||||||
@@ -29,7 +29,8 @@
|
|||||||
// or implied, of Kearwood Gilbert.
|
// or implied, of Kearwood Gilbert.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "KRSceneManager.h"
|
#import "KRSceneManager.h"
|
||||||
|
#import "KRScene.h"
|
||||||
|
|
||||||
KRSceneManager::KRSceneManager() {
|
KRSceneManager::KRSceneManager() {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
#import "KREngine-common.h"
|
#import "KREngine-common.h"
|
||||||
|
|
||||||
#include "KRScene.h"
|
class KRScene;
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#import <string>
|
#import <string>
|
||||||
|
|||||||
@@ -102,40 +102,46 @@
|
|||||||
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
|
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
|
||||||
NSFileManager* fileManager = [NSFileManager defaultManager];
|
NSFileManager* fileManager = [NSFileManager defaultManager];
|
||||||
|
|
||||||
for (NSString* fileName in [fileManager contentsOfDirectoryAtPath: documentsDirectory error:nil]) {
|
|
||||||
if([fileName hasSuffix: @".scene"]) {
|
|
||||||
NSString* path = [NSString stringWithFormat:@"%@/%@", documentsDirectory, fileName];
|
|
||||||
[renderEngine loadResource: path];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (NSString* fileName in [fileManager contentsOfDirectoryAtPath: documentsDirectory error:nil]) {
|
for (NSString* fileName in [fileManager contentsOfDirectoryAtPath: documentsDirectory error:nil]) {
|
||||||
if([fileName hasSuffix: @".pvr"]) {
|
|
||||||
NSString* path = [NSString stringWithFormat:@"%@/%@", documentsDirectory, fileName];
|
NSString* path = [NSString stringWithFormat:@"%@/%@", documentsDirectory, fileName];
|
||||||
[renderEngine loadResource: path];
|
[renderEngine loadResource: path];
|
||||||
}
|
}
|
||||||
}
|
//
|
||||||
|
// for (NSString* fileName in [fileManager contentsOfDirectoryAtPath: documentsDirectory error:nil]) {
|
||||||
for (NSString* fileName in [fileManager contentsOfDirectoryAtPath: documentsDirectory error:nil]) {
|
// if([fileName hasSuffix: @".scene"]) {
|
||||||
if([fileName hasSuffix: @".mtl"]) {
|
// NSString* path = [NSString stringWithFormat:@"%@/%@", documentsDirectory, fileName];
|
||||||
NSString* path = [NSString stringWithFormat:@"%@/%@", documentsDirectory, fileName];
|
// [renderEngine loadResource: path];
|
||||||
[renderEngine loadResource: path];
|
// }
|
||||||
}
|
// }
|
||||||
}
|
//
|
||||||
|
// for (NSString* fileName in [fileManager contentsOfDirectoryAtPath: documentsDirectory error:nil]) {
|
||||||
for (NSString* fileName in [fileManager contentsOfDirectoryAtPath: documentsDirectory error:nil]) {
|
// if([fileName hasSuffix: @".pvr"]) {
|
||||||
if([fileName hasSuffix: @".krobject"]) {
|
// NSString* path = [NSString stringWithFormat:@"%@/%@", documentsDirectory, fileName];
|
||||||
NSString* path = [NSString stringWithFormat:@"%@/%@", documentsDirectory, fileName];
|
// [renderEngine loadResource: path];
|
||||||
[renderEngine loadResource: path];
|
// }
|
||||||
}
|
// }
|
||||||
}
|
//
|
||||||
|
// for (NSString* fileName in [fileManager contentsOfDirectoryAtPath: documentsDirectory error:nil]) {
|
||||||
for (NSString* fileName in [fileManager contentsOfDirectoryAtPath: documentsDirectory error:nil]) {
|
// if([fileName hasSuffix: @".mtl"]) {
|
||||||
if([fileName hasSuffix: @".krscene"]) {
|
// NSString* path = [NSString stringWithFormat:@"%@/%@", documentsDirectory, fileName];
|
||||||
NSString* path = [NSString stringWithFormat:@"%@/%@", documentsDirectory, fileName];
|
// [renderEngine loadResource: path];
|
||||||
[renderEngine loadResource: path];
|
// }
|
||||||
}
|
// }
|
||||||
}
|
//
|
||||||
|
// for (NSString* fileName in [fileManager contentsOfDirectoryAtPath: documentsDirectory error:nil]) {
|
||||||
|
// if([fileName hasSuffix: @".krobject"]) {
|
||||||
|
// NSString* path = [NSString stringWithFormat:@"%@/%@", documentsDirectory, fileName];
|
||||||
|
// [renderEngine loadResource: path];
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// for (NSString* fileName in [fileManager contentsOfDirectoryAtPath: documentsDirectory error:nil]) {
|
||||||
|
// if([fileName hasSuffix: @".krscene"]) {
|
||||||
|
// NSString* path = [NSString stringWithFormat:@"%@/%@", documentsDirectory, fileName];
|
||||||
|
// [renderEngine loadResource: path];
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
[renderEngine setNearZ: 25.0];
|
[renderEngine setNearZ: 25.0];
|
||||||
[renderEngine setFarZ: 5000.0];
|
[renderEngine setFarZ: 5000.0];
|
||||||
@@ -236,7 +242,7 @@
|
|||||||
|
|
||||||
- (KRScene *)getScene;
|
- (KRScene *)getScene;
|
||||||
{
|
{
|
||||||
return renderEngine.getSceneManager->getFirstScene();
|
return renderEngine.context->getSceneManager()->getFirstScene();
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
|
|||||||
Reference in New Issue
Block a user