to może wkleje sam kod gdzie używam dynamicznej pamieci
Tutaj mamy deklaracje wskaznikow w nagłówku klasy :
int ** Object_Array;
Ms_Shader * Shader_Array;
Ms_Drawer * Mesh_Array;
Ms_Textures * Texture_Array;
glm::mat4 * Matrix_Array;
pozniej konstruktor:
Ms_Scene::Num_Objects = 8;
Ms_Scene::Object_Array = new int*[4];
for (int i = 0; i < 4; ++i)
Object_Array[i] = new int[Ms_Scene::Num_Objects];
Ms_Scene::Shader_Array = new Ms_Shader[4];
Ms_Scene::Mesh_Array = new Ms_Drawer[8];
Ms_Scene::Textur_Array = new Ms_Textures[5];
Ms_Scene::Matrix_Array = new glm::mat4[8];
nastepnie program tylko laduje dane do tych tablic
Ms_Scene::Shader_Array[0].Load_Shader("test");
Ms_Scene::Shader_Array[1].Load_Shader("light");
Ms_Scene::Shader_Array[2].Load_Shader("ambient");
Ms_Scene::Shader_Array[3].Load_Shader("water");
Ms_Scene::Mesh_Array[0].LoadMesh("Data/World/Shape/Grid.obj");
Ms_Scene::Mesh_Array[1].LoadMesh("Data/World/Shape/Ms_Box2.obj");
Ms_Scene::Mesh_Array[2].LoadMesh("Data/World/Shape/Storm.obj");
Ms_Scene::Mesh_Array[3].LoadAnim("Data/World/Shape/storm.dae");
Ms_Scene::Mesh_Array[4].LoadAnim("Data/World/Shape/Skeletal_test3.dae");
Ms_Scene::Mesh_Array[5].LoadAnim("Data/World/Shape/Skeletal_test.dae");
Ms_Scene::Mesh_Array[6].LoadMesh("Data/World/Shape/boat.obj");
Ms_Scene::Mesh_Array[7].LoadMesh("Data/World/Shape/bulb.obj");
Ms_Scene::Textur_Array[0].LoadTxT("Data/World/View/Grid.png");
Ms_Scene::Textur_Array[1].LoadTxT("Data/World/View/box.jpg");
Ms_Scene::Textur_Array[2].LoadTxT("Data/World/View/Storm.dds");
Ms_Scene::Textur_Array[3].LoadTxT("Data/World/View/box.jpg");
Ms_Scene::Textur_Array[4].LoadTxT("Data/World/View/boat_d.png");
Ms_Scene::Matrix_Array[0] = glm::translate(Ms_Scene::Matrix_Array[0], glm::vec3(0.0f, 0.0f, 0.0f));
Ms_Scene::Matrix_Array[1] = glm::translate(Ms_Scene::Matrix_Array[1], glm::vec3(8.0f, 0.0f, -8.0f));
Ms_Scene::Matrix_Array[2] = glm::translate(Ms_Scene::Matrix_Array[2], glm::vec3(6.0f, 0.0f, 1.0f));
Ms_Scene::Matrix_Array[3] = glm::translate(Ms_Scene::Matrix_Array[3], glm::vec3(2.0f, 0.0f, 2.0f));
Ms_Scene::Matrix_Array[4] = glm::translate(Ms_Scene::Matrix_Array[4], glm::vec3(-5.0f, 0.0f, -3.0f));
Ms_Scene::Matrix_Array[5] = glm::translate(Ms_Scene::Matrix_Array[5], glm::vec3(-6.0f, 0.0f, 4.0f));
Ms_Scene::Matrix_Array[6] = glm::translate(Ms_Scene::Matrix_Array[6], glm::vec3(-1.0f, 0.0f, -5.0f));
Ms_Scene::Matrix_Array[7] = glm::translate(Ms_Scene::Matrix_Array[7], glm::vec3(0.0f, 5.0f, 0.0f));
Ms_Scene::Object_Array[0][0] = 2; Ms_Scene::Object_Array[1][0] = 0; Ms_Scene::Object_Array[2][0] = 0; Ms_Scene::Object_Array[3][0] = 0;
Ms_Scene::Object_Array[0][1] = 0; Ms_Scene::Object_Array[1][1] = 1; Ms_Scene::Object_Array[2][1] = 1; Ms_Scene::Object_Array[3][1] = 1;
Ms_Scene::Object_Array[0][2] = 0; Ms_Scene::Object_Array[1][2] = 2; Ms_Scene::Object_Array[2][2] = 2; Ms_Scene::Object_Array[3][2] = 2;
Ms_Scene::Object_Array[0][3] = 0; Ms_Scene::Object_Array[1][3] = 3; Ms_Scene::Object_Array[2][3] = 2; Ms_Scene::Object_Array[3][3] = 3;
Ms_Scene::Object_Array[0][4] = 0; Ms_Scene::Object_Array[1][4] = 4; Ms_Scene::Object_Array[2][4] = 1; Ms_Scene::Object_Array[3][4] = 4;
Ms_Scene::Object_Array[0][5] = 0; Ms_Scene::Object_Array[1][5] = 5; Ms_Scene::Object_Array[2][5] = 1; Ms_Scene::Object_Array[3][5] = 5;
Ms_Scene::Object_Array[0][6] = 0; Ms_Scene::Object_Array[1][6] = 6; Ms_Scene::Object_Array[2][6] = 4; Ms_Scene::Object_Array[3][6] = 6;
Ms_Scene::Object_Array[0][7] = 1; Ms_Scene::Object_Array[1][7] = 7; Ms_Scene::Object_Array[2][7] = 1; Ms_Scene::Object_Array[3][7] = 7;
no i destruktor
for(int i= 0; i < 4; ++i)
delete[] Ms_Scene::Object_Array[i];
delete [] Ms_Scene::Object_Array;
delete [] Ms_Scene::Shader_Array;
delete [] Ms_Scene::Mesh_Array;
delete [] Ms_Scene::Textur_Array;
delete [] Ms_Scene::Matrix_Array;
to wszystko co robie, wydaje mi sie, że jest ok, jednak po dodaniu tego kodu do programu wszystko sie sypie
dodam, że jeżeli nie stworze obiektu tej klasy to program dziala dobrze, po stworzeniu obiektu wysypuje sie przy starcie(jeśli nigdzie nie uzyje cout, lub jakis string bedzie krotszy od 12 znakow)