前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Mac OpenGL入门:显示颜色

Mac OpenGL入门:显示颜色

作者头像
王云峰
发布于 2023-10-21 08:30:41
发布于 2023-10-21 08:30:41
20100
代码可运行
举报
运行总次数:0
代码可运行

概述

这里以显示一个红色的窗口为例,展示Mac下运行OpenGL代码的一些配置项。这里采用c++ 和cmake来编译代码的方式,比用xcode更直观。

依赖安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
brew install glfw3 glew cmake

源代码

C++源码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <GL/glew.h>
#include <GLFW/glfw3.h>

#include <iostream>


using namespace std;

void init(GLFWwindow* window) {
}

void display(GLFWwindow* window, double currentTime) {
    glClearColor(1.0, 0.0, 0.0, 1.0);
    glClear(GL_COLOR_BUFFER_BIT);
}

int main() {
    if (!glfwInit()) {
        exit(EXIT_FAILURE);
    }

    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
	
	// mac增加的代码
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);

    GLFWwindow* window = glfwCreateWindow(600, 600, "Chapter 2 - program1", NULL, NULL);
    glfwMakeContextCurrent(window);

    if (glewInit() != GLEW_OK) {
        exit(EXIT_FAILURE);
    }

    glfwSwapInterval(1);

    init(window);

    while (!glfwWindowShouldClose(window)) {
        display(window, glfwGetTime());

        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    glfwDestroyWindow(window);
    glfwTerminate();
    
    exit(EXIT_SUCCESS);
}

cmake文件

cmake 代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cmake_minimum_required(VERSION 3.10)
project(show_box)

include_directories(/usr/local/include)
link_directories(/usr/local/Cellar/glew/2.2.0_1/lib)
link_directories(/usr/local/Cellar/glfw/3.3.4/lib)

add_executable(${PROJECT_NAME} ch2.1.cpp)

target_link_libraries(${PROJECT_NAME}
GLEW
GLFW
"-framework OpenGL"
)

编译代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir build
cd build
cmake ..
make -j8
./show_box
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【C++】OpenGL:着色器基础与GLFW创建三角形示例
另外,在图形渲染中,要记住2D坐标和像素也是不同的,2D坐标精确表示一个点在2D空间中的位置,而2D像素是这个点的近似值,2D像素受到你的屏幕/窗口分辨率的限制。
DevFrank
2024/07/24
2790
【C++】OpenGL:着色器基础与GLFW创建三角形示例
【C++】开源:ImGui图形用户界面库配置与使用
项目Github地址:https://github.com/ocornut/imgui
DevFrank
2024/07/24
1.3K0
【C++】开源:ImGui图形用户界面库配置与使用
Mac上如何运行OpenGL:第一个例子
王云峰
2023/10/21
4640
macos opengl 环境搭建
GLEW(The OpenGL Extension Wrangler Library),通过GLEW就可以使用opengl的扩展功能了。
一只小虾米
2022/10/25
8110
macos opengl 环境搭建
OpenGL学习笔记——上色
前言 初学OpenGL,我越来越觉得学习OpenGL的过程,像一个小朋友学画画(我就是那个小朋友!)一开始,只画找来一张纸(窗体),在上面随便的涂抹上色,然后学着画规则物体,三角形、圆形等,接着学习画一些具有透视的3D场景,最后越画越接近真实的物理效果。 正所谓万事开头难,上一篇写了如何配置OpenGL的环境,相当于学会了如何展开一张画,这次要开始记录如何握笔。 参考教程 正文 <b>需求:</b>创建一个指定大小的窗体,并涂满指定的颜色。按ESC键退出窗体。 #include "stdafx.h" /
Oceanlong
2018/07/03
8190
【C++】OpenGL:计算机图形学OpenGL基础及环境配置
OpenGL(Open Graphics Library)是一个跨平台的图形编程接口,用于渲染2D和3D图形。它提供了一组函数和命令,允许开发者通过编程方式控制图形硬件,从而创建高性能的图形应用程序。
DevFrank
2024/07/24
2K0
【C++】OpenGL:计算机图形学OpenGL基础及环境配置
OpenGL 从入门到成魔-第2章-创建 OpenGL 窗口
注:参考自bilibili系列视频,OpenGL 从入门到成魔-第2章-创建 OpenGL 窗口https://www.bilibili.com/video/BV1Uz411v7mN
瑶瑶
2020/06/03
7550
【OpenGL】基础光照
现实世界中的光照是极其复杂,难以计算的,因此OpenGL的光照使用的是简化的模型,其中一个模型被称为冯氏光照模型(Phong Lighting Model)。
六月丶
2022/12/26
8851
【OpenGL】基础光照
35.opengl PBR-光照
这一章节就是把PBR-理论用代码实现一遍,其中球体的绘制参考一章:opengl-球体的绘制。
公号sumsmile
2020/08/28
5750
35.opengl PBR-光照
opengl入门-坐标系统(2)单model 3D动画
坐标系统(1)记录了基本的坐标变换的过程,这篇记录从二维到三维生成一个3D动效的代码实现。代码和坐标系统(1)基本一样,涉及到坐标生成和贴图计算有点区别,详细代码如下记录,有几点需要注意:
公号sumsmile
2020/06/11
6610
opengl入门-坐标系统(2)单model 3D动画
21.opengl高级-几何着色器
几何着色器可以在顶点发送到着色器之前随意变换。可以这么理解:顶点着色器是接收属性,一般不做过多处理,保持原数据,算是第一层接口层;片元着色器一般处理color;如果想做些特殊处理,通过在中间加一层几何着色器把流程拆碎,分工更细致,达到工程代码高内聚低耦合,拓展性更合理。涉及的知识点不多,下面直接通过实例来说明几何着色器的使用原理
公号sumsmile
2020/07/14
1.1K0
OpenGL自制游戏引擎-GreateWindow
自制游戏引擎,学习OpenGL相关知识并进行实践,学习引擎底层知识,提高对游戏引擎的认识。
祝你万事顺利
2019/06/24
1.8K0
OpenGL自制游戏引擎-GreateWindow
【OpenGL】窗口的创建
在 main 函数中,我们首先使用 glfwInit 初始化 GLFW,然后我们可以使用 glfwWindowHint 配置 GLFW,这个配置的选项和含义可以在GLFW:窗口指南里面找到非常详细的解释,这个还是当成工具查阅就行,我们真正要操作的地方不在窗口初始化这里
叶茂林
2023/12/05
3750
【OpenGL】窗口的创建
10.opengl光照-采样镜面光贴图
接上一篇,箱子的大部分是木头材质,不应该有镜面高光,主要是漫反射效果,而木箱周边是钢制边框能产生高光。
公号sumsmile
2020/06/19
6650
10.opengl光照-采样镜面光贴图
opengl入门-坐标系统(1)
坐标系变换流程 变换的好处: 1.1 方便计算 1.2 把很复杂的逻辑拆解成一次次独立的简单变换
公号sumsmile
2020/06/10
1.2K0
OpenGL及其相关开源库:深入探析图形编程工具与原理
在现代计算机图形学中,OpenGL及其相关的开源库扮演着至关重要的角色。这些库提供了丰富的功能和工具,使得开发者可以轻松地创建复杂的图形应用程序。这里总结的探讨一下OpenGL、GLEW、GLFW、GLM、Assimp以及GL、GLUT、FreeGLUT、GLAD等库之间的联系和概念,以及它们在图形编程中的作用。
点云PCL博主
2024/05/11
2.3K0
OpenGL及其相关开源库:深入探析图形编程工具与原理
OpenGL进行简单的通用计算实例
博主作为OpenGL新手,最近要用OpenGL进行并行的数据计算,突然发现这样的资料还是很少的,大部分资料和参考书都是讲用OpenGL进行渲染的。好不容易找到一本书《GPGPU编程技术,从OpenGL、CUDA到OpenCL》,里面对并行处理的发展进行了系统性的介绍,还是很不错的。小白博主很兴奋,看完书中第三章后恍然大悟了很多,就贴出书中代码3-3的例子,实现一番,并用一副图片数据做了实现。 实现环境:Window7 32bit, VS2013+OpenGL3.3+GLEW+GLFW。 OpenGL用来进行
一棹烟波
2018/01/12
2.1K0
OpenGL进行简单的通用计算实例
使用C++和OpenGL实现3D游戏引擎的详细教程
在这篇博客中,我们将学习如何使用C++和OpenGL构建一个简单的3D游戏引擎。我们将涵盖图形初始化、渲染循环、3D模型加载等基本概念,并提供代码示例来帮助你入门游戏引擎的开发。
Echo_Wish
2023/12/28
2.9K0
macOS 下配置 OpenGL
下载 glad,macOS 据说只支持 3.3,所以我选择了 gl: 3.3 和 Profile: Core。 解压后将 glad 文件夹直接放入 /usr/local/Cellar 文件夹下。
云游君
2021/05/21
1.1K0
MacOS 搭建 OpenGL 开发环境
如果没有安装的话会上面的指令会自动触发 XCode 下载并安装,根据提示安装完成之后再使用上面的指令检查一遍即可。
Kindem
2022/08/12
2.8K0
MacOS 搭建 OpenGL 开发环境
相关推荐
【C++】OpenGL:着色器基础与GLFW创建三角形示例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验