Bonjour,
n'ayant pas trouver beaucooup d'example concluant sous linux, je me lance a programmer un petit prog sous linux.....mais il faut un makefile kel galère!
bon voila mes petit prog
particle.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
// particle.h
#include <Cg/cgGL.h>
 
 
//using namespace glh;
 
class Particle {
public:
  Particle(int w, int h, int iterations);
  ~Particle();
 
  int GetWidth() { return m_w; }
  int GetHeight() { return m_h; }
 
 
  void TimeStep(float dt);    // step the simulation
  void ReadBack();
 
  void Display();         // display particle system as points and lines
  void DisplayShaded();   // display shaded mesh
  void DisplayShaded2();  // display shaded mesh using render-to-vertex array
 
  void DisplayTextures(); // display position and normal textures
 
private:
 
  void InitCg();
  void DrawImage();
  void CalculateNormals();
  void DrawQuad();
	int m_w, m_h;             // size of grid
  int m_current, m_previous, m_dest;
	int m_iterations;         // number of constraint iterations
  GLuint m_cloth_tex; 
};
particle.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <Cg/cgGL.h>
#include "particle.h"
 
Particle::
Particle(int w, int h, int iterations) : m_w(w), m_h(h), m_iterations(iterations)
{
  m_current = 0;
  m_previous = 1;
  m_dest = 2;
};
 
void 
Particle::DrawQuad()
{
  glBegin(GL_QUADS);
  glTexCoord2f(0, 0);     glVertex2f(0, 0);
  glTexCoord2f(m_w, 0);   glVertex2f(m_w, 0);
  glTexCoord2f(m_w, m_h); glVertex2f(m_w, m_h);
  glTexCoord2f(0, m_h);   glVertex2f(0, m_h);
  glEnd();
}
et le prog principal prog.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h> 
#include <Cg/cgGL.h>
#include <Cg/cg.h> 
#include <GL/glut.h>
#include "particle.h"
 
// check for OpenGL errors
void checkGLErrors(char *s)
{
  GLenum error;
  while ((error = glGetError()) != GL_NO_ERROR) {
    fprintf(stderr, "%s: error - %s\n", s, (char *) gluErrorString(error));
  }
}
 
void initGL()
{  
  glEnable(GL_DEPTH_TEST);
  glDisable(GL_DITHER);
  glClearColor(0.5, 0.5, 0.5, 1.0);
  checkGLErrors("initGL");  
}
 
int main(int argc, char **argv)
{
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
  glutInitWindowSize(512, 512);
  (void) glutCreateWindow("particle");
 
	initGL();
	part = new Particle(32, 32, 2);
	part->DrawQuad();
 
  glutMainLoop();
  return 0;
}
et mon makefile qui me donne l'erreur : make: *** No rule to make target `particle.c', needed by `particle.o'. Stop.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
CC=g++
EXE = run
OBJ = particle.o prog.o 
 
LIBS = -lCg -lCgGL -lglut -lGLU -lGL -lXi -lXmu -lpthread  -lXext -lX11 -lm
CFLAGS = -Wall
 
all: $(EXE)
 
 
 
$(EXE):	$(OBJ)
	$(CC) -o $(EXE) $(OBJ) $(LIBS)
 
particle.o: particle.c
	$(CC) -o particle.o -c particle.c
 
 prog.o: prog.c particle.h
	$(CC) -o prog.o -c prog.c $(CFLAGS)
 
 
clean:
	rm  $(EXE)
j'ai essayé de tourner dans tous les sens mais sa marche pas.
ca doit etre une erreur bidon mais bon, je suis pas tres fortiche pour ce genre de chose.j'espere que qqun pourra m'aider
merci!