Ivan Safrin 9 лет назад
Родитель
Сommit
ceef627e96

+ 3 - 3
build/osx/TemplateApp/TemplateApp/PolycodeTemplateApp.mm

@@ -23,9 +23,9 @@ PolycodeTemplateApp::PolycodeTemplateApp(PolycodeView *view) {
     scene->clearColor.setColor(0.2, 0.2, 0.2, 1.0);
     
     
-    scene->setOverrideMaterial((Material*)globalPool->getResource(Resource::RESOURCE_MATERIAL, "Unlit"));
+   // scene->setOverrideMaterial((Material*)globalPool->getResource(Resource::RESOURCE_MATERIAL, "Unlit"));
     
-    for(int i=0; i  < 1; i++) {
+    for(int i=0; i  < 3000; i++) {
         test = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 0.5, 0.5);
         test->setMaterialByName("Unlit");
         test->getShaderPass(0).shaderBinding->loadTextureForParam("diffuse", "main_icon.png");
@@ -38,7 +38,7 @@ PolycodeTemplateApp::PolycodeTemplateApp(PolycodeView *view) {
        Camera *camera = scene->getDefaultCamera();
 
     fpsLabel = new SceneLabel("FPS:", 32, "main", Label::ANTIALIAS_FULL, 0.1);
-  //  scene->addChild(fpsLabel);
+    scene->addChild(fpsLabel);
     fpsLabel->setPositionX(-0.6);
     /*
     scene->getDefaultCamera()->setPostFilterByName("HDRProcessBloom");

+ 2 - 2
src/core/PolyCamera.cpp

@@ -54,7 +54,7 @@ Camera::Camera(Scene *parentScene) : Entity() {
 
 Camera::~Camera() {	
     for(int i=0; i < shaderPasses.size(); i++)  {
-        delete shaderPasses[i].shaderBinding;
+        Services()->getRenderer()->destroyShaderBinding(shaderPasses[i].shaderBinding);
     }
     delete screenQuadMesh;
     Services()->getRenderer()->destroyRenderBuffer(originalFramebuffer);
@@ -350,7 +350,7 @@ void Camera::setPostFilter(Material *material) {
     }
     
     for(int i=0; i < shaderPasses.size(); i++)  {
-        delete shaderPasses[i].shaderBinding;
+        Services()->getRenderer()->destroyShaderBinding(shaderPasses[i].shaderBinding);
     }
     shaderPasses.clear();
     

+ 1 - 1
src/core/PolyMaterial.cpp

@@ -249,7 +249,7 @@ void Material::recreateExpectedShaderParams() {
 
 void Material::removeShaderPass(int shaderIndex) {
 	if(shaderIndex >= 0 && shaderIndex < shaderPasses.size()) {
-        delete shaderPasses[shaderIndex].shaderBinding;
+        Services()->getRenderer()->destroyShaderBinding(shaderPasses[shaderIndex].shaderBinding);
 		shaderPasses.erase(shaderPasses.begin() + shaderIndex);
 	}
 }