Skocz do zawartości


[OpenGL] Dziwaczny błąd #endif

opengl problem endif #endif programowanie visual studio 2008 EE

2 odpowiedzi w tym temacie

#1 dawidsznurek

    Nowy na forum

  • Użytkownicy
  • 2 Postów:

Napisano czw, 05 lip 2012 - 16:21

Witam wszystkich bardzo serdecznie.
Przejdę szybko do rzeczy. Otóż nauczyłem się już C++, obecnie chciałem nauczyć się OpenGL, kupiłem książkę "OpenGL księga eksperta wydanie V", wszystko było ładnie, aż do pierwszego programu przykładowego w którym wystąpić miał czerwony trójkąt na niebieskim tle. Problem polega na tym, że ściągnąłem wszystkie biblioteki jakie miałem posiadać (freeglut i GLTools), wszystko na Visual C++ 2008 Express Edition, ale pierwszy program choćbym nie wiem jak się starał nie chce się uruchomić, cały czas wychodzi błąd fatal error C1020: unexpected #endif

Cały podany kod wygląda następująco:
------------------------------------------------------------------------------------------------------------------------------------------------------
// Triangle.cpp
#include <GLTools.h>
#include <GLShaderManager.h>

#define FREEGLUT_STATIC
#include <GL/glut.h>
#endif

GLBatch triangleBatch;
GLShaderManager shaderManager;

void ChangeSize(int w, int h)
{
glViewport (0, 0, w, h);
}

void SetupRC()
{
glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
shaderManager.InitializeStockShaders();

GLfloat vVerts[] = { -0.5f, 0.0f, 0.0f,
0.5f, 0.0f, 0.0f,
0.0f, 0.5f, 0.0f};
triangleBatch.Begin(GL_TRIANGLES, 3);
triangleBatch.CopyVertexData3f(vVerts);
triangleBatch.End();
}

void RenderScene(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPF_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 1.0f };
shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed);
triangleBatch.Draw();
glutSwapBuffers();
}

int main (int argc, char* argv[])
{
gltSetWorkingDirectory(argv[0]);
glutInt(&argc, argv);
glutIntDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL);
glutIntWindowSize(800, 600);
glutCreateWindow("Trójkąt");
glutReshapeFunc(ChangeSize);
glutDisplayFunc(RenderScene);

GLenum err = glewInit();
if (GLEW_OK != err)
{
fprintf(stderr, "Błąd GLEW: %s\n", glewGetErrorString(err));
return 1;
}
SetupRC();
glutMainLoop();
return 0;
}

------------------------------------------------------------------------------------------------------------------------------------------------------
Wnioskuję że jest coś nie tak z nagłówkiem #endif jednak kiedy go usuwam pojawia się więcej błędów. Nie wiem jak rozwiązać ten problem, a to dopiero początek nauki więc będę wdzięczny za wszelaką pomoc :)

#2 Blind

    Dzień dobry

  • Moderatorzy
  • 1057 Postów:

Napisano czw, 05 lip 2012 - 18:20

Nom a ja ci podpiwem ze blad masz w 7linijce

#3 Jason

    Avatar

  • Super użytkownicy
  • 1118 Postów:

Napisano wto, 10 lip 2012 - 02:03

Masz endif, a gdzie if?