当前位置: 首页 > article >正文

在Linux中开发OpenGL——环境搭建

因为Android手机编写调试OpenGL程序局限性比较大所以打算PC搭建开发环境步骤如下

1、  安装运行

sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install freeglut3-dev

2、  编写Demo

#include <GL/glut.h>
#include <stdio.h>
#include <stdlib.h> 

void init () {
    glClearColor ( 0.0, 0.0, 0.0, 0.0 );
}

double random_double() {
    // 生成一个 0 到 RAND_MAX 之间的随机整数
    int rand_int = rand();
    // 将其转换为 0.0 到 1.0 之间的浮点数
    return (double)rand_int / (double)RAND_MAX;
}

/*调用GLUT函数,绘制一个球*/
void display () {
    while (1) {
        glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glClearColor ( random_double(), 0.0, 0.0, 1.0 );
        printf("random_double() = %f\n", random_double());
        glFlush ();
    }
}

int main(int argc, char** argv) {
    /* GLUT环境初始化*/
    glutInit (&argc, argv);
    /* 显示模式初始化 */
    glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
    /* 定义窗口大小 */
    glutInitWindowSize (300, 300);
    /* 定义窗口位置 */
    glutInitWindowPosition (100, 100);
    /* 显示窗口,窗口标题为执行函数名 */
    glutCreateWindow ("test");
    /* 调用OpenGL初始化函数 */
    init ( );
    /* 注册OpenGL绘图函数 */
    glutDisplayFunc ( display );
    /* 进入GLUT消息循环,开始执行程序 */
    glutMainLoop( );
    return 0;
}

3、  编译并运行

gcc -o demo demo.c -lGL -lGLU -lglut

./demo

4、  效果

一个不断闪烁红色框框


http://www.kler.cn/a/573091.html

相关文章:

  • 【BFS最短路问题】最小基因变化
  • 服务器数据恢复—raid5阵列中硬盘掉线导致上层应用不可用的数据恢复案例
  • 【MySQL】与MongoDB的区别,字符集,三范式,存储引擎InnoDB、MyISAM
  • 优化cache利用、减少cache miss的方法
  • LLM 模型 Prompt 工程
  • [Computer Vision]图像分割技术
  • Android10.0关于发送广播Sending non-protected broadcast android.price.public.close
  • JVM(Java Virtual Machine,Java 虚拟机)的作用
  • 机器分类的基石:逻辑回归Logistic Regression
  • JavaWeb-HttpServlet源码分析
  • SpringBoot为什么要禁止循环依赖?
  • 网络安全公钥密码体制
  • 不懂ui->layout()->removeWidget(bar);
  • 2W8000字 LLM架构文章阅读指北
  • 题目梳理2025[长期更新]
  • 在阿里云ECS云服务器上安装、配置及高效使用Docker与Docker Compose
  • 数字北极星与DeepSeek深度融合,引领流程智能的AI革命
  • 第十二届蓝桥杯大学A组java省赛答案整理
  • 【简单的C++围棋游戏开发示例】
  • react 编写一个待办事项,函数优化,组件传值