zoukankan      html  css  js  c++  java
  • OpenGL学习第一天

    学了很多次OpenGL了,每次都无疾而终,这次真得用了~~~

     1 #include <GLUT/GLUT.h>
     2 
     3 #include <iostream>
     4 
     5 void render(void);
     6 void keyboard(unsigned char c, int x, int y);
     7 void mouse(int button, int state, int x, int y);
     8 
     9 int main(int argc, char **argv)
    10 {
    11     //初始化glut
    12     glutInit(&argc, argv);
    13     //初始化显示模式为双缓存、RGBA
    14     glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
    15     //设置窗口位置
    16     glutInitWindowPosition(100, 100);
    17     //设置窗口大小
    18     glutInitWindowSize(640, 480);
    19     //创建窗口
    20     glutCreateWindow("Simple GLUT Application");
    21     //指定显示回调函数
    22     glutDisplayFunc(render);
    23     //指定键盘回调函数
    24     glutKeyboardFunc(keyboard);
    25     //指定鼠标回调函数
    26     glutMouseFunc(mouse);
    27     //启动主循环
    28     glutMainLoop();
    29 }
    30 
    31 //渲染回调函数
    32 void render(void)
    33 {
    34     //清理颜色和深度缓存
    35     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    36 
    37     //开始绘制图形
    38     glBegin(GL_TRIANGLES);
    39         //指定笔触颜色
    40         glColor3f(1, 0, 0);
    41 
    42         //绘制点
    43         // glVertex234fid
    44         glVertex2f(-0.5, -0.5);
    45 
    46         glColor3f(0, 1, 0);
    47         glVertex2f(0.5, -0.5);
    48 
    49         glColor3f(0, 0, 1);
    50         glVertex2f(0, 0.5);
    51     glEnd();
    52 
    53     //交换缓存
    54     glutSwapBuffers();
    55 }
    56 
    57 //键盘事件回调函数
    58 void keyboard(unsigned char c, int x, int y)
    59 {
    60     //ESC键
    61     if (c == 27)
    62     {
    63         //退出程序
    64         exit(0);
    65     }
    66 }
    67 
    68 //鼠标事件回调函数
    69 void mouse(int button, int state, int x, int y)
    70 {
    71     //鼠标右键
    72     if (button == GLUT_RIGHT_BUTTON)
    73     {
    74         exit(0);
    75     }
    76 }

    在Mac下用用GLUT框架和OpenGL框架还是挺简单的,不需要去考虑平台和语言的区别。直接编译运行:

    1 :clang++ BasicGlut.cpp -o BasicGlut -framework OpenGL -framework GLUT
    2 :./BasicGlut
  • 相关阅读:
    360天擎安装上之后,手机开热点之后就没有办法连接
    Redis基本数据类型--Hash(哈希)
    Redis基本数据类型--Set
    redis的五种基本数据类型之List
    Redis的五种基本数据类型 String
    Android应用程序的安装位置
    Java中long和Long有什么区别(转)
    Logcat打印调试信息
    Java GUI图形界面开发工具
    CSDN精选Android开发博客
  • 原文地址:https://www.cnblogs.com/jsxh/p/3358744.html
Copyright © 2011-2022 走看看