Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [c] errore C1075 in fase di compilazione

    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?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    In questa riga

    vlpBound boundprincipale;

    cosa è vlpBound

    ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    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.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.