コード例 #1
0
ファイル: main.c プロジェクト: MichaelBaker/opengl-haskell
int main(int argc, char** argv)
{
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
  glutInitWindowSize(400, 300);
  glutCreateWindow("Hello World");
  glutDisplayFunc(&render);
  glutIdleFunc(&update_fade_factor);
  glewInit();

  if(!GLEW_VERSION_2_0) {
    fprintf(stderr, "OpenGL 2.0 not available\n");
    return 1;
  }

  if(!make_resources()) {
    fprintf(stderr, "Failed to load resources\n");
    return 1;
  }

  glClearColor(1.0, 1.0, 1.0, 1.0);
  glClear(GL_COLOR_BUFFER_BIT);
  glutMainLoop();
  return 0;
}
コード例 #2
0
ファイル: flag.c プロジェクト: jckarter/ch5-flag
int main(int argc, char* argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
    glutInitWindowSize(INITIAL_WINDOW_WIDTH, INITIAL_WINDOW_HEIGHT);
    glutCreateWindow("Flag");
    glutIdleFunc(&update);
    glutDisplayFunc(&render);
    glutReshapeFunc(&reshape);
    glutMotionFunc(&drag);
    glutMouseFunc(&mouse);
    glutKeyboardFunc(&keyboard);

    glewInit();
    if (!GLEW_VERSION_2_0) {
        fprintf(stderr, "OpenGL 2.0 not available\n");
        return 1;
    }
    if (!GLEW_EXT_framebuffer_object) {
        fprintf(stderr, "OpenGL framebuffer object extension not available\n");
        return 1;
    }

    init_gl_state();
    if (!make_resources()) {
        fprintf(stderr, "Failed to load resources\n");
        return 1;
    }

    glutMainLoop();
    return 0;
}
コード例 #3
0
ファイル: hello-gl.c プロジェクト: zc5872061/wheel
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
    glutInitWindowSize(800, 600);
    glutCreateWindow("Hello World");
    glutIdleFunc(&update_timer);

    
    glutDisplayFunc(&render);
    
    glewInit();
    if (!GLEW_VERSION_2_0) {
        fprintf(stderr, "OpenGL 2.0 not available\n");
        return 1;
    }

    if (!make_resources(argc >= 2 ? argv[1] : "/Users/chukie/Study/WorkWork/wheel/OpenglStudy/FreeType2Demo/test2/hello-gl.v.glsl")) {
        fprintf(stderr, "Failed to load resources\n");
        return 1;
    }

    glutMainLoop();
    return 0;
}
コード例 #4
0
ファイル: Bullet.cpp プロジェクト: CrazyRagdoll/CubeRacer
Bullet::Bullet(float x, float y, float z) {

  // A default "unit" triangular pyramid
  num_vertices = 5;
  num_triangles = 6;
  g_vertex_buffer_data = new GLfloat[num_vertices * 3]; // three points per vertex
  g_element_buffer_data = new GLushort[num_triangles * 3]; // three vertices per triangle

  g_vertex_buffer_data[0]  = -0.125; //Bottom Left Point 0
  g_vertex_buffer_data[1]  = -0.125;
  g_vertex_buffer_data[2]  = -0.25;

  g_vertex_buffer_data[3]  =  0.125;  //Bottom Right Point 1
  g_vertex_buffer_data[4]  = -0.125;
  g_vertex_buffer_data[5]  = -0.25;

  g_vertex_buffer_data[6]  = -0.125;  //Top Left Point 2
  g_vertex_buffer_data[7]  =  0.125;
  g_vertex_buffer_data[8]  = -0.25;

  g_vertex_buffer_data[9]  =  0.125;  //Top Right Point 3
  g_vertex_buffer_data[10] =  0.125;
  g_vertex_buffer_data[11] = -0.25;
 
  g_vertex_buffer_data[12] =  0.0;  //Front point 4
  g_vertex_buffer_data[13] =  0.0;
  g_vertex_buffer_data[14] =  0.5;

  g_element_buffer_data[0]  = 0;
  g_element_buffer_data[1]  = 1;
  g_element_buffer_data[2]  = 2;

  g_element_buffer_data[3]  = 1;
  g_element_buffer_data[4]  = 3;
  g_element_buffer_data[5]  = 2;

  g_element_buffer_data[6]  = 2;
  g_element_buffer_data[7]  = 3;
  g_element_buffer_data[8]  = 4;

  g_element_buffer_data[9]  = 3;
  g_element_buffer_data[10] = 1;
  g_element_buffer_data[11] = 4;

  g_element_buffer_data[12] = 1;
  g_element_buffer_data[13] = 0;
  g_element_buffer_data[14] = 4;

  g_element_buffer_data[15] = 0;
  g_element_buffer_data[16] = 2;
  g_element_buffer_data[17] = 4;

  bbox.reset();
  bbox = shared_ptr<BoundingBox>(new BoundingBox(Point3(x, y, z), 0.5, 0.5, 0.5));

  make_resources();
}
コード例 #5
0
EnvironmentAsset::EnvironmentAsset(float x, float y, float z) {
  this->li = nullptr;
  this->pos = shared_ptr<Point3>(new Point3(x, y, z));
  // A default "unit" triangular pyramid
  num_vertices = 10;
  num_triangles = 10;
  g_vertex_buffer_data = new GLfloat[num_vertices * 3] { // three points per vertex

// (x,y,z)

  -10.0, 0.0, -10.0,		//0  PLANE
  -10.0, 0.0,  10.0,		//1
   10.0, 0.0,  10.0,		//2
   10.0, 0.0, -10.0,		//3

  -10.0, 10.0, -10.0,		//4  WALL 1
  -10.0, 10.0, 10.0,			//5

  -10.0, 10.0,  10.0,		//6  WALL 2
   10.0, 10.0,  10.0,		//7

   10.0, 10.0, 10.0,			//8  WALL 3
   10.0, 10.0, -10.0			//9

};


  g_element_buffer_data = new GLushort[num_triangles * 3] { // three vertices per triangle



  0, 4, 5,		//WALL 1
  0, 1, 5,

  1, 2, 7,		//WALL 2
  1, 6, 7,

  2, 3, 9,		//WALL 3
  2, 8, 9




  };




  mv_matrix = mv_matrix.translation( Vector3(x, y, z));
  bbox.reset();
  bbox = shared_ptr<BoundingBox>(new BoundingBox(Point3(x, y, z), 1.0, 1.0, 1.0));

  make_resources();
}
コード例 #6
0
CollectAsset::CollectAsset(float x, float y, float z)   :

			GameAsset(
	      string("shaders/hello-gl.v.glsl")
	      , string("shaders/collect.f.glsl")
	      ){
  this->li = nullptr;
  this->pos = shared_ptr<Point3>(new Point3(x, y, z));
  // A default "unit" triangular pyramid
  num_vertices = 8;
  num_triangles = 12;
  g_vertex_buffer_data = new GLfloat[num_vertices * 3] { // three points per vertex

  0.0, 0.0, 0.0,
  1.0, 0.0, 0.0,
  0.0, 1.0, 0.0,
  1.0, 1.0, 0.0,

  0.0, 0.0, 1.0,
  1.0, 0.0, 1.0,
  0.0, 1.0, 1.0,
  1.0, 1.0, 1.0  };


  g_element_buffer_data = new GLushort[num_triangles * 3] { // three vertices per triangle

  0, 1, 2,
  2, 1, 3,

  5, 4, 6,
  7, 5, 6,

  3, 1, 5,
  3, 5, 7,

  4, 0, 2,
  6, 4, 2,

  2, 3, 6,
  6, 3, 7,

  1, 0, 4,
  5, 1, 4
  };




  mv_matrix = mv_matrix.translation( Vector3(x, y, z));
  bbox.reset();
  bbox = shared_ptr<BoundingBox>(new BoundingBox(Point3(x, y, z), 1.0, 1.0, 1.0));

  make_resources();
}
コード例 #7
0
ファイル: WallAsset.cpp プロジェクト: JosephLoe/CubeGame
WallAsset::WallAsset(float x, float y, float z, float wallX, float wallY, float wallZ, string(side), string(shader)) : GameAsset(
	      string("shaders/hello-gl.v.glsl")
	      , string(shader)
	      ){
  this->li = nullptr;
  this->pos = shared_ptr<Point3>(new Point3(x, y, z));
  // A default "unit" triangular pyramid
  num_vertices = 4;
  num_triangles = 2;
  if(side=="LR"){ // from the string that's input, if it is equal "LR" (standing for Left-Right walls) create the left or right wall depending on the float inputs.
  g_vertex_buffer_data = new GLfloat[num_vertices * 3]{
//	   X,  Y,  Z,
	   wallX, -wallY, -wallZ, //0
	   wallX, -wallY,  wallZ, //1
	   wallX,  wallY,  wallZ, //2
	   wallX,  wallY, -wallZ //3

  }; // three points per vertex
  g_element_buffer_data = new GLushort[num_triangles * 3]{
	  //linking anti clockwise
	  0,1,2,
	  2,3,0 //

  }; // three vertices per triangle
  bbox.reset();
  bbox = shared_ptr<BoundingBox>(new BoundingBox(Point3(x, y, z), 1, wallY, wallZ));
  }else if(side=="TB"){ // from the string that's input, if it is equal "TB" (standing for Top-Bottom walls) create the Top OR Bottom wall depending on the float inputs.
	  g_vertex_buffer_data = new GLfloat[num_vertices * 3]{
	  //	   X,  Y,  Z,
	  	  -wallX,  wallY, -wallZ, //0
	  	  -wallX,  wallY,  wallZ, //1
	  	   wallX,  wallY,  wallZ, //2
	  	   wallX,  wallY, -wallZ //3

	    }; // three points per vertex
	    g_element_buffer_data = new GLushort[num_triangles * 3]{
	  	  //linking anti clockwise
	  	  0,1,2,
	  	  2,3,0 //

	    }; // three vertices per triangle
	    bbox.reset();
	    bbox = shared_ptr<BoundingBox>(new BoundingBox(Point3(x, y, z), wallX, 1, wallZ));
  } else{ // else if the string is invalid cerr:
	  cerr<< "Invalid string passed into WallAsset, Must be LR or TB" << endl;
  }

  mv_matrix = mv_matrix.translation( Vector3(x, y, z));

  make_resources();
}
コード例 #8
0
ファイル: hello-gl.c プロジェクト: robn/hello-gl
/*
 * Entry point
 */
int main(int argc, char** argv)
{
    if (SDL_Init(SDL_INIT_VIDEO) < 0) {
        fprintf(stderr, "Video initialization failed: %s\n", SDL_GetError());
        exit(-1);
    }

    const SDL_VideoInfo *info = SDL_GetVideoInfo();
    switch (info->vfmt->BitsPerPixel) {
        case 16:
            SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5);
            SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 6);
            SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5);
            break;
        case 24:
        case 32:
            SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
            SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
            SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
            break;
        default:
            fprintf(stderr, "Invalid pixel depth: %d bpp\n", info->vfmt->BitsPerPixel);
            exit(-1);
    }
    SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
    SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 1);

    if (!SDL_SetVideoMode(400, 300, info->vfmt->BitsPerPixel, SDL_OPENGL)) {
        fprintf(stderr, "Failed to set video mode: %s", SDL_GetError());
        SDL_Quit();
        exit(-1);
    }

    SDL_WM_SetCaption("Hello World", "Hello World");

    if (!make_resources()) {
        fprintf(stderr, "Failed to load resources\n");
        return 1;
    }

    SDL_Event e;
    while (!SDL_PollEvent(&e) || e.type != SDL_KEYDOWN || e.key.keysym.sym != SDLK_ESCAPE) {
        update_fade_factor();
        render();
    }

    return 0;
}
コード例 #9
0
ファイル: Player.cpp プロジェクト: Cecaro/RobotEscape
Player::Player(float x, float y, float z): GameAsset 
(
  string("shaders/hello-gl.v.glsl"),
  string("shaders/red-shader.f.glsl"))
{
  // A default unit cube
  num_vertices = 8;
  num_triangles = 12;
  g_vertex_buffer_data = new GLfloat[num_vertices * 3]{
 // three points per vertex
//x     y    z
-0.5, -0.5, 0.5,  //F - 0
 0.5, -0.5, 0.5,  //F - 1
-0.5, 0.5, 0.5,   //F - 2
 0.5, 0.5, 0.5,   //F - 3
-0.5, -0.5, -0.5, //B - 4
 0.5, -0.5, -0.5, //B - 5
-0.5, 0.5, -0.5,  //B - 6
 0.5, 0.5, -0.5   //B - 7
};
 // three vertices per triangle
  g_element_buffer_data = new GLushort[num_triangles * 3]{

F0, F1, F2, //front
F1, F3, F2,

F1, R2, F3, //right
R2, R4, F3,

R2, R1, R4, //back
R1, R3, R4,

R1, F0, R3, //left
F0, F2, R3,

F2, F3, R3, //top
F3, R4, R3,

R1, R2, F0, //bottom
R2, F1, F0

};

  bbox.reset();
  bbox = shared_ptr<BoundingBox>(new BoundingBox(Point3(x, y, z), 1.0, 1.0, 1.0));

  make_resources();
}
コード例 #10
0
ファイル: Player.cpp プロジェクト: StefanosIr/Game-Test-3
PlayerAsset::PlayerAsset(float x, float y, float z) {
  this->li = nullptr;

  // A default "unit" triangular pyramid
  num_vertices = 8;
  num_triangles = 6;
  g_vertex_buffer_data = new GLfloat[num_vertices * 3]; // three points per vertex
  g_element_buffer_data = new GLushort[num_triangles * 3]; // three vertices per triangle

  g_vertex_buffer_data[0] = -0.5;
  g_vertex_buffer_data[1] = -0.5;
  g_vertex_buffer_data[2] = 0.5;

  g_vertex_buffer_data[3] = 0.5;
  g_vertex_buffer_data[4] = -0.5;
  g_vertex_buffer_data[5] = 0.5;

  g_vertex_buffer_data[6] = 0.0;
  g_vertex_buffer_data[7] = -0.5;
  g_vertex_buffer_data[8] = -0.5;

  g_vertex_buffer_data[9] = 0.0;
  g_vertex_buffer_data[10] = 0.5;
  g_vertex_buffer_data[11] = 0.0;

  g_element_buffer_data[0] = 0;
  g_element_buffer_data[1] = 1;
  g_element_buffer_data[2] = 3;

  g_element_buffer_data[3] = 1;
  g_element_buffer_data[4] = 2;
  g_element_buffer_data[5] = 3;

  g_element_buffer_data[6] = 2;
  g_element_buffer_data[7] = 0;
  g_element_buffer_data[8] = 3;

  g_element_buffer_data[9] = 2;
  g_element_buffer_data[10] = 0;
  g_element_buffer_data[11] = 1;

  bbox.reset();
  bbox = shared_ptr<BoundingBox>(new BoundingBox(Point3(x, y, z), 1.0, 1.0, 1.0));

  make_resources();
}
コード例 #11
0
ファイル: test_1.cpp プロジェクト: GoCodingIcreated/workshop
int main(int argc, char **argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
    glutInitWindowSize(400, 300);
    glutCreateWindow("Hello world");
    glutDisplayFunc(&render);
    glutIdleFunc(&update_fade_factor);
    glewInit();
    if (!GLEW_VERSION_2_0) {
        std::cerr << "OpenGL v.2.0 is not available" << std::endl;
        return 1;
    }
    if (!make_resources()) {
        std::cerr << "Failed to load resources" << std::endl;
        return 1;
    }
    glutMainLoop();
    return 0;
}
コード例 #12
0
ファイル: HeartAsset.cpp プロジェクト: CrazyRagdoll/CubeRacer
HeartAsset::HeartAsset(float x, float y, float z) 
  : GameAsset(
      string("CubeRacer/shaders/hello-gl.v.glsl"), 
      string("CubeRacer/shaders/heartAsset-gl.f.glsl")
){

  // A default "unit" Heart
  num_vertices = 6;
  num_triangles = 4;
  g_vertex_buffer_data = new GLfloat[num_vertices * 3]{

  //     x      y     z     //http://www.google.co.uk/imgres?imgurl=&imgrefurl=http%3A%2F%2Fcollectionphotos.com%2Fnice-love-hearts%2F&h=0&w=0&tbnid=KXbXdSvz8eslGM&zoom=1&tbnh=180&tbnw=200&docid=USx2IhSCYzdRuM&tbm=isch&ei=cV1iU5SwK6fC0QXj3IDICg&ved=0CBEQsCUoBQ

	0.0,	0.4,	0.0,	//Middle Top		F0
	0.4,	0.8,	0.0,
	0.8,	0.4,	0.0,
	
	-0.4,	0.8,	0.0,
	-0.8,	0.4,	0.0,
	
	0.0,	-0.8,	0.0
	
	
}; // three points per vertex

  g_element_buffer_data = new GLushort[num_triangles * 3]{

	F0, F1, F2,	//Bottom left point
	F4, F3, F0,
	F2, F5, F0,
	F0, F5, F4


}; // three vertices per triangle

  bbox.reset();
  bbox = shared_ptr<BoundingBox>(new BoundingBox(Point3(x, y, z), 1.0, 1.0, 1.0));

  make_resources();
}
コード例 #13
0
ファイル: hello-gl.c プロジェクト: mostafaizz/opengl
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
    glutInitWindowSize(400, 300);
    glutCreateWindow("Hello World");
    glutIdleFunc(&update_timer);
    glutDisplayFunc(&render);


    glewInit();
    if(!GLEW_VERSION_2_0) {
        fprintf(stderr, "OpenGL 2.0 not available\n");
        return 1;
    }
    if(!make_resources(argc > 1 ? argv[1] : "hello-gl.v.glsl")) {
        fprintf(stderr, "Failed to load resources\n");
        return 1;
    }

    glutMainLoop();
    return 0;
}
コード例 #14
0
ファイル: visualize.c プロジェクト: lilclmrboy/avc2011repo
int main(int argc, char* argv[]) {
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
	glutInitWindowSize(400, 400);
	glutCreateWindow("wallee");
	glutDisplayFunc(&render);
	glutIdleFunc(&update_fade_factor);

	glewInit();
	if (!GLEW_VERSION_2_0) {
		fprintf(stderr, "OpenGL 2.0 not available\n");
		return 1;
	}

	if (!make_resources()) {
		fprintf(stderr, "Failed to load resources\n");
		return 1;
	}
	
	glutMainLoop();
	return 0;

}
コード例 #15
0
ファイル: CubeAsset.cpp プロジェクト: lisaeliasson/blue
CubeAsset::CubeAsset(float x, float y, float z) {

  // A default "unit" triangular pyramid
  num_vertices = 8;
  num_triangles = 12;
  g_vertex_buffer_data = new GLfloat[num_vertices * 3]; // 4 points per vertex
  g_element_buffer_data = new GLushort[num_triangles * 3]; // three vertices per triangle

  g_vertex_buffer_data[0] = -0.5;
  g_vertex_buffer_data[1] = -0.5;
  g_vertex_buffer_data[2] = 0.5;

  g_vertex_buffer_data[3] = 0.5;
  g_vertex_buffer_data[4] = -0.5;
  g_vertex_buffer_data[5] = 0.5;

  g_vertex_buffer_data[6] = 0.0;
  g_vertex_buffer_data[7] = -0.5;


  g_element_buffer_data[0] = 0;
  g_element_buffer_data[1] = 1;
  g_element_buffer_data[2] = 2;

  g_element_buffer_data[3] = 2;
  g_element_buffer_data[4] = 3;
  g_element_buffer_data[5] = 0;

  g_element_buffer_data[6] = 1;
  g_element_buffer_data[7] = 5;
  g_element_buffer_data[8] = 6;

  g_element_buffer_data[0] = 5;
  g_element_buffer_data[1] = 4;
  g_element_buffer_data[2] = 1;

  g_element_buffer_data[3] = 1;
  g_element_buffer_data[4] = 0;
  g_element_buffer_data[5] = 4;

  g_element_buffer_data[6] = 0;
  g_element_buffer_data[7] = 2;
  g_element_buffer_data[8] = 3;

  g_element_buffer_data[0] = 3;
  g_element_buffer_data[1] = 7;
  g_element_buffer_data[2] = 4;

  g_element_buffer_data[3] = 7;
  g_element_buffer_data[4] = 3;
  g_element_buffer_data[5] = 0;

  g_element_buffer_data[6] = 3;
  g_element_buffer_data[7] = 2;
  g_element_buffer_data[8] = 7;

  g_element_buffer_data[0] = 7;
  g_element_buffer_data[1] = 6;
  g_element_buffer_data[2] = 2;

  g_element_buffer_data[3] = 7;
  g_element_buffer_data[4] = 6;
  g_element_buffer_data[5] = 5;

  g_element_buffer_data[6] = 5;
  g_element_buffer_data[7] = 4;
  g_element_buffer_data[8] = 7;




  make_resources();
}