序文
glew + freeglutは比較的古いOpenGL学習の組み合わせです。教師の教科書は依然としてglutの窓です。
新しい方はglfw + gladの設定です。これははるかに快適です!アドレス構成を構成する
ようにglad + glfw
glad + glfwも構成しましたが、これらの2つのセットを使用する場所によっては、まだいくつかのギャップがあります!
1.ライブラリをダウンロード
また、プリコンパイルダウンロードすることができ、独自のソースコードをコンパイルすることができます
GLEWライブラリ をダウンロードする公式サイトを
バイナリバージョンダウンロードする
freeglutライブラリ のダウンロードに公式サイトを
コンパイルされたすべてをダウンロードしました
自分でコンパイルする必要はありません!
ダウンロードした2つのファイルは、解凍後に次の図のようになります。
2.設定
ClionのCmakelistの構成は次のとおりです。
cmake_minimum_required(VERSION 3.15)
project(Graph)
set(CMAKE_CXX_STANDARD 14)
# 路径自己替换
link_directories("F:/freeglut/lib/x64")
link_directories("F:/glew-2.1.0/lib/Release/x64")
#文件头
include_directories("F:/freeglut/include")
include_directories("F:/glew-2.1.0/include")
add_executable(Graph main.cpp)
# 这句话重要,一点要先衔接opengl32库才能用! opengl32.lib或者libopengl32.a都可以
target_link_libraries(Graph libopengl32.a libfreeglut.a glew32.lib)
3.テスト実行
ここに三角形を描く
#include<gl/glew.h>
#include<gl/freeglut.h>
#include<iostream>
using namespace std;
//改变窗口大小
void changeViewport(int w, int h)
{
glViewport(0, 0, w, h);
}
//渲染一个三角形
void render()
{
glClear(GL_COLOR_BUFFER_BIT);、
// 线形
glBegin(GL_TRIANGLE_STRIP);
{
glVertex2f(-0.8,-0.8);
glVertex2f(0.8,-0.8);
glVertex2f(0,0.8);
}
glEnd();
glutSwapBuffers();
}
int main(int argc,char** argv)
{
//初始化
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
glutInitWindowSize(800, 600);
glutCreateWindow("HelloWord");
glutReshapeFunc(changeViewport);
glutDisplayFunc(render);
// 测试glew
GLenum error = glewInit();
if (error!=GLEW_OK)
{
printf("GLEW CREATE ERROR");
return -1;
}
glutMainLoop();
return 0;
}