目的:ubuntu配置使用opengl - 初探-创建一个空窗口

目的:ubuntu配置使用openGL - 初探-创建一个空窗口

环境:

系统:Ubuntu18.04
环境:g++

步骤:

Ubuntu下使用openGL,搭建配置环境并测试窗口
1、openGL库,需要单独安装,由于本机是vmware虚拟机Ubuntu18.04,所以显卡是使用不了的。

2、glfw头文件和库,参考其他文章(https://blog.csdn.net/Alger_magic/article/details/128168157?spm=1001.2014.3001.5502)中编译方法获得(GLFW 是配合 OpenGL 使用的轻量级工具程序库,缩写自 Graphics Library Framework(图形库框架)。GLFW 的主要功能是创建并管理窗口和 OpenGL 上下文,同时还提供了处理手柄、键盘、鼠标输入的功能。有类似功能的库还有 GLUT和 SDL。)。

3、glad头文件和资源文件(GLAD作为开源库,用于管理OpenGL函数指针,使OpenGL基础渲染变得更加简单),下载链接https://glad.dav1d.de/, glad是在线直接选下载对应的头文件和源文件。
目的:ubuntu配置使用opengl - 初探-创建一个空窗口_第1张图片
目的:ubuntu配置使用opengl - 初探-创建一个空窗口_第2张图片

1.构建工程

1、安装依赖

安装openGL,实际安装#1 #2两步即能运行openGL

#0、安装查看OpenGL版本支持的工具
sudo apt-get install mesa-utils
glxinfo | grep OpenGL


#1、安装了opengl的核心库

sudo apt-get install libgl1-mesa-dev*
sudo apt-get install build-essential

#2、安装OpenGL Library

sudo apt-get install libgl1-mesa-dev

#3、安装OpenGL Utilities,

sudo apt-get install libglu1-mesa-dev
sudo apt-get install libegl1-mesa-dev

#4、安装OpenGL Utility Toolkit

sudo apt-get install libglut-dev

2、构建工程

按照如下样式构建工程

    -opengl_test
    ├─3rdparty
    │  ├─glad
    │  │  ├─include
    │  │  │  ├─glad
    │  │  │  │  └─glad.h
    │  │  │  └─KHR
    │  │  │     └─khrplatform.h
    │  │  └─src
    │  │     └─glad.c
    │  └─glfw
    │      ├─include
    │      │  ├─glfw3.h
    │      │  └─glfw3nativ.h
    │      └─lib
    │         └─libglfw.so
    ├─build
    ├─include
    ├─src
    │  └─opengl_win.cpp 
    ├─CMakelists.txt
    └─readme.txt


2. 写入测试代码

CMakelists.txt

cmake_minimum_required(VERSION 2.8)

project(opengl_test)

# Include files
# glfw
include_directories( ${PROJECT_SOURCE_DIR}/3rdparty/glfw/include/)
link_directories(${PROJECT_SOURCE_DIR}/3rdparty/glfw/lib/)
#glad
include_directories(${PROJECT_SOURCE_DIR}/3rdparty/glad/include/)


add_executable(opengl_win 
                ${PROJECT_SOURCE_DIR}/src/opengl_win.cpp
                ${PROJECT_SOURCE_DIR}/3rdparty/glad/src/glad.c)

target_link_libraries(opengl_win glfw GL dl)

opencl_win.cpp

#include 

#include 
#include 

void framebufer_size_callback(GLFWwindow *_window, int _width, int _height);

int main()
{
	glfwInit();

	glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
	glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
	glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

	GLFWwindow *win_handle = glfwCreateWindow(600, 600, "opengl_test", NULL, NULL);
	if (win_handle == NULL)
	{
		std::cout << "Failed to crate GLFW Window" << std::endl;
		glfwTerminate();

		return -1;
	}
	glfwMakeContextCurrent(win_handle);

	if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
	{
		std::cout << "Failed to initialize GLAD" << std::endl;
		return -1;
	}

	glViewport(0, 0, 600, 600);

	glfwSetFramebufferSizeCallback(win_handle, framebufer_size_callback);

	while (!glfwWindowShouldClose(win_handle))
	{
		glfwSwapBuffers(win_handle);
		glfwPollEvents();
	}

	glfwTerminate();

	return 0;
}

void framebufer_size_callback(GLFWwindow *_window, int _width, int _height)
{
	glViewport(0, 0, _width, _height);
}
3.编译执行
cd build

cmake .. && make

./opengl_win

目的:ubuntu配置使用opengl - 初探-创建一个空窗口_第3张图片

demo源代码:
https://download.csdn.net/download/Alger_magic/87240079

你可能感兴趣的:(ubuntu,openGL)