mac vulkan_Mac OSX系统下使用OpenGL
在osx中,OpenGL庫(kù)在系統(tǒng)中已經(jīng)自帶了,要想查看當(dāng)前系統(tǒng)中的OpenGL庫(kù)的版本,可以在App Store中安裝OpenGL Extensions Viewer
安裝第三方包
依賴工具:homebrew,cmake。
這兩個(gè)工具的具體安裝方式網(wǎng)上有很多,google一下很容易找到。GLFW
GLFW是一個(gè)小型的C庫(kù),它可以讓你創(chuàng)建和管理窗口、OpenGL和OpenGL ES上下文和Vulkan表面,枚舉顯示器和視頻模式,以及處理鍵盤、鼠標(biāo)、操縱桿、剪貼板和時(shí)間等輸入。
GLFW主要針對(duì)那些唯一的圖形輸出是通過(guò)OpenGL、OpenGL ES或Vulkan的應(yīng)用程序,提供了一個(gè)簡(jiǎn)單的、多平臺(tái)的抽象層。因此GLFW在開發(fā)多平臺(tái)OpenGL應(yīng)用時(shí)非常有用,但單平臺(tái)開發(fā)者也可以從避免處理笨拙的平臺(tái)特定API中獲益。
像GLFW這樣的庫(kù)非常有用,因?yàn)镺penGL和OpenGL ES本身并沒(méi)有提供任何機(jī)制來(lái)創(chuàng)建必要的上下文、管理窗口、用戶輸入、定時(shí)等。正如OpenGL 3.1規(guī)范(第2章,第1段)所述。OpenGL只涉及渲染到幀緩沖區(qū)(以及讀取存儲(chǔ)在該幀緩沖區(qū)中的值)。不支持有時(shí)與圖形硬件相關(guān)的其他外設(shè),如鼠標(biāo)和鍵盤。程序員必須依靠其他機(jī)制來(lái)獲取用戶輸入。
安裝命令:
bash brew install glfw3GLEW
OpenGL Extension Wrangler Library(GLEW)是一個(gè)跨平臺(tái)的開源C/C++擴(kuò)展加載庫(kù)。GLEW提供了高效的運(yùn)行時(shí)機(jī)制,用于確定目標(biāo)平臺(tái)上支持哪些OpenGL擴(kuò)展。OpenGL核心和擴(kuò)展功能在一個(gè)頭文件中暴露出來(lái)。GLEW已經(jīng)在各種操作系統(tǒng)上進(jìn)行了測(cè)試,包括Windows、Linux、Mac OS X、FreeBSD、Irix和Solaris。
安裝命令:
bash brew install glew
上面是用包管理器來(lái)安裝。需要依賴工具h(yuǎn)omebrew和編譯工具cmake,如果沒(méi)有安裝這兩個(gè)工具,可以google一下安裝方式來(lái)安裝一下。
第一個(gè)Hello World
網(wǎng)上很多教程到這里后,就會(huì)教你配置vs studio或者xcode,由于我本人的習(xí)慣問(wèn)題,很少使用這些ide,所以這里我還是基于cmake編譯工具來(lái)寫第一個(gè)hello world程序。主要目的是熟悉配置include和lib目錄。
新建一個(gè)文件夾,比如叫test_opengl,目錄中新建一個(gè)main.cpp,添加如下代碼:
#include #include #include int main(void)
{
GLFWwindow* window;
/* Initialize the library */
if (!glfwInit())
return -1;
/* Create a windowed mode window and its OpenGL context */
window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
if (!window)
{
glfwTerminate();
return -1;
}
/* Make the window's context current */
glfwMakeContextCurrent(window);
/* Loop until the user closes the window */
while (!glfwWindowShouldClose(window))
{
/* Render here */
/* Swap front and back buffers */
glfwSwapBuffers(window);
/* Poll for and process events */
glfwPollEvents();
}
glfwTerminate();
return 0;
}
保存后,在新建一個(gè)CMakeLists.txt文件。這個(gè)文件是cmake使用的,用于指定編譯時(shí)的目錄、鏈接的庫(kù)、以及編譯選項(xiàng)等。對(duì)于本項(xiàng)目,添加簡(jiǎn)單的如下內(nèi)容:
cmake_minimum_required(VERSION 2.8)
project(test_opengl)
set(CMAKE_VERBOSE_MAKEFILE OFF)
# glfw和glew的頭文件目錄,這是我的路徑,你可以換成你自己的
include_directories(/usr/local/include)
aux_source_directory("./" SRCS)
set(CMAKE_CXX_FLAGS "-g -std=c++11 -Wformat")
# glew的庫(kù)目錄路徑
link_directories(/usr/local/Cellar/glew/2.1.0/lib)
# glfw的庫(kù)目錄路徑
link_directories(/usr/local/Cellar/glfw/3.3/lib)
add_executable(test_opengl ${SRCS} ${HDRS})
# 指定glew庫(kù)
target_link_libraries(test_opengl GLEW)
# 指定glfw庫(kù)
target_link_libraries(test_opengl GLFW)
編寫完之后,在main.cpp同級(jí)目錄下建立一個(gè)build目錄,然后
cd build
cmake ..
make
然后測(cè)試是否能編譯成功。如果編譯成功,會(huì)出現(xiàn)一個(gè)test_opengl 可執(zhí)行程序,然后運(yùn)行:
./test_opengl
這時(shí)會(huì)看到一個(gè)hello world的窗口。
至此,你已經(jīng)利用OpenGL編寫了第一個(gè)程序。恭喜,你已經(jīng)入門了。
總結(jié)
以上是生活随笔為你收集整理的mac vulkan_Mac OSX系统下使用OpenGL的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: hdfs 版本号_如何查看hadoop版
- 下一篇: git切换到旧版本_github上怎么切