PDA

Visualizza la versione completa : [c] errore C1075 in fase di compilazione


micetta2482
27-02-2010, 12:34
Salve ho scritto questo pezzo di codice

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <GL/gl.h>
#include <GL/glut.h>


typedef struct {
char *name; /* Il nome del terreno. Di default equivale al nome del file. */
int height; /* L'altezza della heightmap. */
int width; /* La larghezza della Heightmap. */
unsigned char *data; /* Puntatore alla zona di memoria contenente la Heightmap. */
GLuint GLuinGLID; /* Il numero ID dell'oggetto nella lista di OpenGL. = 0 fino alla compilazione del terreno. */
GLuint primitive; /* La primitiva da utilizzare per costruire il terreno. Pu essere GL_TRIANGLE_STRIP o GL_SQUARE. */
int rendermode; /* La modalit di disegno del terreno. Pu essere VLP_MODE_WIREFRAME o VLP_MODE_FLAT. */
int resolution; /* La risoluzione del terreno equivale alla distanza tra un punto e l'altro nella Heightmap. */
/* Pi il valore piccolo, pi vertici verranno disegnati. Pu essere al minimo = 2. */
//vlpVec3 pos; /* La posizione del centro del terreno. */
float scaleF; /* scaleF un fattore che verr moltiplicato alle dimensioni (x,y,z) del terreno. */
float heightF; /* heightF un fattore che verr moltiplicato all'altezza del terreno (y). */
int textureID; /* Il numero ID di OpenGL della texture da applicare al terreno. */
/* textureID = 0 fino a quando non verr applicata una texture tramite vlbAttachTexture. */
int textureRepeat; /* Il numero di volte (per l'altezza e per la larghezza) che la texture dovr venire riprodotta sul terreno. */
/* Se ad esempio = 2 allora la texture verr riprodotta 4 volte (2 per l'altezza e 2 per la larghezza). */
int walkable; /* Determina se la camera, quando impostata in modalit VLP_CAMERA_WALK, pu camminare sul terreno. */
/* Pu essere VLP_WALKABLE_YES o VLP_WALKABLE_NO. */
int lightRespond; /* Determina se il terreno deve interagire con le luci presenti nella scena. */
/* Pu essere VLP_lightRespond_YES o VLP_lightRespond_NO. */
int visible; /* Determina se il terreno deve venire disegnato oppure no. Pu essere VLP_VISIBLE_YES o VLP_VISIBLE_NO. */
}vlpTer;

typedef struct {
GLuint GLID; /* Il numero ID assegnato da OpenGL per identificare la texture.*/
int height; /* L'altezza della texture. */
int width; /* La larghezza della texture. */
char *name; /* Il nome della texture. Di default equivale al nome del file. */
} vlpTex;


// Puntatore al terreno selezionato
vlpTer *selected_terrain;

// Definizione dei terreni
vlpTer terPianura;
vlpTer skydome;
vlpTer terMontagna1;
vlpTer terMontagna2;
vlpTer terMontagna3;
vlpTer terMontagna4;

// Definizione delle texture
vlpTex texPianura; // Texture: terreno, erba e sassi
vlpTex texSkydoome; // Texture: cielo, nuvole
vlpTex texGhiacciao; // Texture: neve, sassi
vlpTex texGhiacciao2; // Texture: neve, sassi

// Definizione bound principale
int boundx, boundz;
int boundwidth, boundheight;
vlpBound boundprincipale;


// Definizione delle luci
GLfloat lightAmbient[] = {0.2f, 0.2f, 0.2f, 1.0f}; // Impostazione della luce d'ambiente.
GLfloat lightDiffuse[] = {0.8f, 0.8f, 0.8f, 1.0f}; // Impostazione della luce diffusa.
float lightPosition[] = {500, 200.0, 500.0, 1.0f}; // Posizione della luce.
float lightDir[]={0.0, 0.0, 0.0}; // Direzione della luce
float lightCutoff = 180; // Apertura dello spot (in gradi).

// Definizione di altre variabili
int mousewas_x; // Memorizza la posizione precedente x del mouse.
int mousewas_y; // Memorizza la posizione precedente x del mouse.
int left_button_state = 0; // Se = 1 allora il pulsante LEFT attivo.
int right_button_state = 0; // Se = 1 allora il pulsante RIGHT attivo.
int up_button_state = 0; // Se = 1 allora il pulsante UP attivo.
int down_button_state = 0; // Se = 1 allora il pulsante DOWN attivo.
int resolution_button_state = 0; // Se = 1: resolution UP, se = 2: resolution DOWN, se 0: pulsante non attivo.
int scaleF_button_state = 0; // Se = 1: scaleF UP, se = 2: scaleF DOWN, se 0: pulsante non attivo.
int heightF_button_state = 0; // Se = 1: heightF UP, se = 2: heightF DOWN, se 0: pulsante non attivo.

int special_key = 0; // 0 = nessun tasto speciale, 1 = ctrl premuto , 2 = shift premuto, 3 = alt premuto
int movingLight = 0; // Si sta spostando la luce?
int no_vertex = 0; // Numero di vertici generati dal terreno.
int helpPane = 1; // Determina se visualizzare o meno l'help pane.
int isfullscreen = 0;

int DefWindowHeight = 660; // L'altezza di default della finestra.
int DefWindowWidth = 890; // La larghezza di default della finestra.
int CurrentWindowHeight = 660; // L'altezza corrente della finestra.
int CurrentWindowWidth = 960; // La larghezza corrente della finestra.


//Prototipi funzioni
GLvoid DefineScene(int Width, int Height);
GLvoid DrawScene(GLvoid);
GLvoid idle(GLvoid);
void InitScene(void);
GLvoid ProcessNormalKeys (unsigned char key, int x, int y);
GLvoid ProcessSpecialKeys (int key, int x, int y);
void process_Mouse(int x, int y);
void print_values(void);
void ProcessMainKeys (void);
void move_camera(void);
void release_specialbutton (int key, int x, int y);
void renderHelpPane(void);
void reset_mouse (int button, int state, int mouse_x, int mouse_y);
void process_mouse(int mouse_x, int mouse_y);
void MoveLightOnLatitude(float angle);
void MoveLightOnLongitude(float angle);
void DrawLightSphere(void);
void preset1 (void);
void preset2 (void);
void preset3 (void);
void release_button (int key, int x, int y);


int main(int argc, char** argv)
{
// Inizializzo GLUT.
glutInit(&argc, argv);

// Inizializzo la scena
InitScene();

// Abilito i callback di GLUT
glutKeyboardFunc(ProcessNormalKeys);
glutSpecialFunc(ProcessSpecialKeys);
//glutKeyboardUpFunc (release_button);
glutSpecialUpFunc(release_specialbutton);
glutMotionFunc(process_mouse);
glutMouseFunc(reset_mouse);
glutDisplayFunc(DrawScene);
glutReshapeFunc(DefineScene);

glutMainLoop();

return 0;
}

e mi d il seguente errore in compilazione

c:\documents and settings\utente\desktop\terrenirendering\terrenire ndering\terreni.cpp(55) : fatal error C1075: fine file raggiunta prima che fosse trovata la corrispondenza per l'elemento parentesi graffa '{' di sinistra in 'c:\documents and settings\utente\desktop\terrenirendering\terrenire ndering\terreni.cpp(54)'.

Non riesco a capire il problema (premetto che la prima volta che programmo in c).
Qualcuno mi sa dire dove sbaglio? :dh:

Grazie

oregon
27-02-2010, 12:42
In questa riga

vlpBound boundprincipale;

cosa vlpBound

?

micetta2482
27-02-2010, 15:06
Scusami ho dimenticato di mettere cosa vlpBound.
E' anche una struttura e l'ho definita come

typedef struct {
int x_pos;
int z_pos;
int width;
int height;
} vlpBound;

Cmq non s perch ora che ho riavviato il pc non mi d pi quell'errore.

Grazie mille per la gentilezza che dimostri di avere ogni volta che ho scritto su questo forum.

Loading