Hello, OpenGL - OpenGL × GLFW3 × C++의 기억.
덧붙여서 C++도 공부중입니다.
이 기사에 대한 츳코미는 환영합니다.
GLFW3의 함수에 대해 영어로 코멘트하고 있습니다만, 그들은 glfw3.h 파일 참조 이쪽으로부터의 인용이 되고 있습니다. 일본어의 코멘트는 제가 마음대로 해석하고 붙이고 있으므로, 잘못되어 있으면 츳코미 부탁합니다.
컴파일러 버전
$ g++ --version
g++ (Debian 4.7.2-5) 4.7.2
...
Hello, OpenGL
GLFW3 라이브러리를 사용하여 창을 만들고 표시합니다.
GLU 라이브러리를 캡처하고 있지만 창을 만드는 데 필요하지 않습니다.
자주 포함 방법을 잊기 때문에, 암기를 목적으로 쓰고 있습니다.
GLU를 포함한 GLFW3의 포함.
복수의 소스에서는, 이 매크로를 Main 에 상당하는 파일의 선두로 정의.
다른 소스에서는 매크로를 작성할 필요는 없습니다.
memo#define GLFW_INCLUDE_GLU
#include <GLFW/glfw3.h>
01-hello.cpp
#define GLFW_INCLUDE_GLU
#include <GLFW/glfw3.h>
#include <iostream>
#include <cstdlib>
#include <string>
static GLFWwindow* aWindow;
static int aWidth = 640;
static int aHeight = 480;
static std::string aTitle = "Hello, OpenGL";
int main()
{
// Initializes the GLFW library.
if(! glfwInit() )
{
std::cerr << "glfwInit failed." << std::endl;
exit( EXIT_FAILURE );
}
// Creates a window and its associated context.
aWindow = glfwCreateWindow( aWidth, aHeight, aTitle.c_str(), nullptr, nullptr );
if(! aWindow )
{
std::cerr << "glfwCreateWindow failed." << std::endl;
glfwTerminate();
exit( EXIT_FAILURE );
}
// Makes the context of the specified window current for the calling thread.
glfwMakeContextCurrent( aWindow );
// Returns a string describing the compile-time configuration.
std::cout << glfwGetVersionString() << std::endl;
// glClear() で使用する色(RGBA)
glClearColor( 1, 1, 1, 1 );
// Checks the close flag of the specified window.
while(! glfwWindowShouldClose( aWindow ))
{
// 画面をクリア。
glClear( GL_COLOR_BUFFER_BIT );
// Swaps the front and back buffers of the specified window.
glfwSwapBuffers( aWindow );
// Processes all pending events.
// マウスやキー入力のイベントはこの関数で監視する。
glfwPollEvents();
}
// Terminates the GLFW library.
glfwTerminate();
return EXIT_SUCCESS;
}
빌드 및 실행 결과$ g++ -std=c++11 -Wall 01-hello.cpp -lglfw -lGLU
$ ./a.out
3.1.0 X11 GLX glXGetProcAddress clock_gettime /dev/js shared
Reference
이 문제에 관하여(Hello, OpenGL - OpenGL × GLFW3 × C++의 기억.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/narupo/items/6f50017f095f1fe0e734
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#define GLFW_INCLUDE_GLU
#include <GLFW/glfw3.h>
#define GLFW_INCLUDE_GLU
#include <GLFW/glfw3.h>
#include <iostream>
#include <cstdlib>
#include <string>
static GLFWwindow* aWindow;
static int aWidth = 640;
static int aHeight = 480;
static std::string aTitle = "Hello, OpenGL";
int main()
{
// Initializes the GLFW library.
if(! glfwInit() )
{
std::cerr << "glfwInit failed." << std::endl;
exit( EXIT_FAILURE );
}
// Creates a window and its associated context.
aWindow = glfwCreateWindow( aWidth, aHeight, aTitle.c_str(), nullptr, nullptr );
if(! aWindow )
{
std::cerr << "glfwCreateWindow failed." << std::endl;
glfwTerminate();
exit( EXIT_FAILURE );
}
// Makes the context of the specified window current for the calling thread.
glfwMakeContextCurrent( aWindow );
// Returns a string describing the compile-time configuration.
std::cout << glfwGetVersionString() << std::endl;
// glClear() で使用する色(RGBA)
glClearColor( 1, 1, 1, 1 );
// Checks the close flag of the specified window.
while(! glfwWindowShouldClose( aWindow ))
{
// 画面をクリア。
glClear( GL_COLOR_BUFFER_BIT );
// Swaps the front and back buffers of the specified window.
glfwSwapBuffers( aWindow );
// Processes all pending events.
// マウスやキー入力のイベントはこの関数で監視する。
glfwPollEvents();
}
// Terminates the GLFW library.
glfwTerminate();
return EXIT_SUCCESS;
}
$ g++ -std=c++11 -Wall 01-hello.cpp -lglfw -lGLU
$ ./a.out
3.1.0 X11 GLX glXGetProcAddress clock_gettime /dev/js shared
Reference
이 문제에 관하여(Hello, OpenGL - OpenGL × GLFW3 × C++의 기억.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/narupo/items/6f50017f095f1fe0e734텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)