OpenGL學習(一)環境搭建+helloworld
標簽: OpenGL
今天完成了環境的搭建,參考博客在這里:
https://blog.csdn.net/qiangbizhi3622/article/details/79467994
沒有一次成功,遇見了一個巨坑:
既然是vs2019,就要注意win32,不然報錯很崩潰的。
又填入了如下代碼的確能做:
#include <iostream>
#include <glad/glad.h>
#include <GLFW/glfw3.h>
void framebuffer_size_callback(GLFWwindow* window, int width, int height);
void processInput(GLFWwindow *window);
const unsigned int SCR_WIDTH = 600;
const unsigned int SCR_HEIGHT = 500;
int main(int argc, const char * argv[]) {
// insert code here...
std::cout << "Hello, World!\n";
glfwInit();//初始化GLFW
//使用opengl 3.3版本,
//我們將主版本號(Major)和次版本號(Minor)都設為3。我們同樣明確告訴GLFW我們使用的是核心模式(Core-profile)。
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
//如果是mac 就把這段編輯進去
#ifdef __APPLE__
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // uncomment this statement to fix compilation on OS X
#endif
//創建window
GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "openGL第一個窗口", NULL, NULL);
if(window == NULL){
std::cout << "創建失敗" << std::endl;
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
if(!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)){
std::cout << "Failed !" << std::endl;
return -1;
}
// 循環渲染
while (!glfwWindowShouldClose(window))
{
// input監聽輸入的內容
processInput(window);
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glfwSwapBuffers(window);
glfwPollEvents();
}
//直接終止glfw
glfwTerminate();
return 0;
}
//窗口大小改變時候觸發
void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
// make sure the viewport matches the new window dimensions; note that width and
// height will be significantly larger than specified on retina displays.
glViewport(0, 0, width, height);
}
void processInput(GLFWwindow *window)
{
if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
glfwSetWindowShouldClose(window, true);
}
智能推薦
Android OpenGL ES 開發(一)— 環境搭建
我的視頻課程(基礎):《(NDK)FFmpeg打造Android萬能音頻播放器》 我的視頻課程(進階):《(NDK)FFmpeg打造Android視頻播放器》 我的視頻課程(編碼直播推流):《Android視頻編碼和直播推流》 對于Opengl/sl/cv/...系列相信大家也不陌生,我在前面博客...
【由淺入深OpenGL】一:Visual Studio下搭建OpenGL開發環境
萬事開頭難! 理論與實踐結合才能產生價值,很多人學習OpengGL碰到的第一件事情就是配置環境 首先需要下載GLFW 與GLEW包,建議都下載32位的 http://www.glfw.org/ http://glew.sourceforge.net/ 1.首先打開Visual Studio創建項目工程,現在很多時候如果我們選擇創建控制臺程序就會生成stdafx.文件等比較不必要的東西,所以我們直接...
SpringBoot學習一:環境及HelloWorld
開始學習神秘的springboot,通過helloworld學習,感覺并不難,相比springmvc,簡化了很多配置,myeclipse對springboot有很好的支持。 首先,需要安裝springboot的插件。目錄為help->Intall from Catalog->propular 點擊安裝。安裝完成后,重啟Myeclipse 注:為了下載安裝,使用阿里云maven鏡像,具體...
rocketMQ學習筆記(一) 單機版rocketMQ環境搭建和helloWorld
一、簡介官方簡介: l RocketMQ是一款分布式、隊列模型的消息中間件,具有以下特點: l 能夠保證嚴格的消息順序 l 提供豐富的消息拉取模式 l 高效的訂...
Springboot 環境搭建-helloworld
更多相關鏈接:https://zhuanlan.zhihu.com/p/20643322 Springboot有逐漸取代springmvc的趨勢,越來越多的項目開始使用springboot,對于初次使用的人來說,先搭建個helloworld出來,算是初始配置。 step1: 【File】->【New】->ma【maven project】,選中create a simple proje...
猜你喜歡
2018/7/21--OpenGL學習筆記(一)環境搭建/create window
開篇的話:僅僅是作者的學習筆記!筆記!記! OpenGL 在開始這段旅程之前我們先了解一下OpenGL到底是什么。一般它被認為是一個API(Application Programming Interface, 應用程序編程接口),包含了一系列可以操作圖形、圖像的函數。然而,OpenGL本身并不是一個API,它僅僅是一個由Khronos組織制定并維護的規范(Specification)。 OpenG...
kotlin語言學習01 ——環境搭建helloworld
kotlin語言學習01 ——環境搭建helloworld 1、新建kotlin工程 使用idea新建項目,選擇左側的Kotlin,在選擇 JVM|IDEA 表示基于JVM開發的kotlin。 填寫項目信息,IDEA會自動配置資源內容,直接創建即可。 2、kotlin的工作空間 3、新建kotlin 創建完成生成了后綴名為kt的文件 4、IDEA會自動檢測kotlin版本 ...
kotlin學習筆記(1) 搭建環境和helloworld
讀書學習筆記《KOTLIN 開發快速入門與實戰》 通過把書中的內容 復述一遍,把代碼敲一遍,達到復習效果 Kotlin是基于JVM 的編程語言,由JetBrains 公司研發和維護,可以將它編譯成Java 字節碼,也可以編譯成JavaScript ,方便再沒有JVM 的設備上運行。 在windows 操作系統下配置Kotlin 環境 流程如下: 下載JDK 安裝JDK 配置JDK 環境變量 檢查J...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...