我的第一个OpenGL 程序



//

//  main.c

//  opengl

//

//  Created bych_soft on 12-1-11.

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//

#include<stdio.h>

#include<stdlib.h>

#include<GLUT/glut.h>

//#include "GL/glut.h"

// #include<GL/glut.h>


void display()

{

   glClear(GL_COLOR_BUFFER_BIT); // 清屏

    glColor4f(0.0, 1.0, 0.0, 0.5);// 绘制矩形

    glRectf(0.1, 0.1, 0.6, 0.6);

    glColor4f(1.0, 1.0, 0.0, 0.7);// 绘制矩形

    glRectf(0.4, 0.3, 0.9, 0.8);

   glFlush(); // 强制绘图完成

}

void init()

{

    glEnable (GL_BLEND);    // 启用融合

   glBlendFunc (GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);//产生融合因子

   glShadeModel (GL_FLAT);// 设置平面明暗处理 

    glClearColor (0.0, 0.0, 0.0, 0.0);// 清屏

}


void reshape (int w,int h)

{

    glViewport (0, 0, (GLsizei) w, (GLsizei) h);

   glMatrixMode (GL_PROJECTION);

   glLoadIdentity();

    if (w <= h)

        glOrtho (-1.5, 1.5, -1.5*(GLfloat)h/(GLfloat)w,

                 1.5*(GLfloat)h/(GLfloat)w, -10.0,10.0);

    else

        glOrtho (-1.5*(GLfloat)w/(GLfloat)h,

                 1.5*(GLfloat)w/(GLfloat)h, -1.5,1.5, -10.0,10.0);

   glMatrixMode(GL_MODELVIEW);

   glLoadIdentity();

}


void keyboard(unsignedchar key, int x,int y)

{

    switch (key) {

        case 27:

            exit(0);

            break;

    }

}


int main(int argc,char** argv)

{

    glutInit(&argc, argv);

   glutInitDisplayMode (GLUT_SINGLE |GLUT_RGB | GLUT_DEPTH);

   glutInitWindowSize (500,500); 

   glutInitWindowPosition (100,100);

   glutCreateWindow (argv[0]);

    init ();

   glutDisplayFunc(display); 

   glutReshapeFunc(reshape);

   glutKeyboardFunc(keyboard);

   glutMainLoop();

    return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值