Cześć! Wszystko działało bardzo dobrze do momentu gdy usunąłem jedną klasę. Chciałem stworzyć nową z taką samą nazwą, ale ciągle wyskakiwało, że już taka jest. Postanowiłem kliknąć w Build->Clean solution
i potem Build->Build solution
. Po zrobieniu tych dwóch rzeczy, klasę stworzyłem bez problemu, ale przestały mi działać inne klasy takie jak na przykład Shader albo klasa odpowiedzialna za ładowanie tekstur 2d.
int main(int argc, char*args[])
{
Window window;
//Inicjuje SDL i glew, parametry to major i minor
window.Init(3, 0);
//Tworzy okno: nazwa, w, h, flag
window.Create("Window", 1280, 720, NULL);
Shader shader;
GLuint shaders[2];
//Tworzy shader z pliku o danym typie
shaders[0] = shader.CreateShader("vertex2.shader", GL_VERTEX_SHADER);
shaders[1] = shader.CreateShader("fragment2.shader", GL_FRAGMENT_SHADER);
//Tworzy program shadera: tablica, ilość shaderów
shader.CreateProgram(shaders, 2);
//Używa programu
shader.useProgram();
bool quit = false;
while (!quit) {
while (window.PollEvent()) {
if (window.Quit()) {
quit = true;
}
}
glClearColor(0.5f, 0.5f, 0.5f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDrawArrays(GL_TRIANGLES, 0, 3);
window.SwapBuffers();
}
return 0;
}
Testowy kod ma rysować tylko czerwony trójkąt, ale zamiast tego wyskakuje błąd:
Przed użyciem clean i build wszystko działało bez problemu.
Kodu shader w żaden sposób nie zmieniałem, klasy shadera ani innych klas też nie zmieniałem. Wydaje mi się, że w ogóle metody open gl nie działają poprawnie.
Dlaczego tak się stało? W jaki sposób to naprawić?