游戏引擎养成《二》 引入跨平台渲染库

# 引擎从哪里开始?

从图形渲染部分开始是最直观的,它也最能引起大家兴致的部分,毕竟程序员有一条路就是TA方向。所以我们从开始就着手图形渲染引擎。 为了实现跨平台也为了省心,我们引入glfw库。

# 什么是GLFW

一个轻量级,开源的,跨平台的library。支持OpenGL及OpenGL ES,用来管理窗口,读取输入,处理事件等。
  1. 跨平台,能在window、Linux和wayland中使用;
  2. 支持OpenGL、OpenGL ES;
  3. 底层的可配置性;

# glfw的安装与配置

下载 GLFW - Download

include , lib

创建目录Dependencies ,将GLFW的头文件和lib2015 移到此处。

修改我们的CMakeLists.txt + main.cpp 来测试是否成功。

main.cpp

#include <iostream>
#include <GLFW/glfw3.h>
using namespace std;
int main() {
	printf("Hello Engine!\n");
	if (!glfwInit())
	{
		std::cout << "Failed to initialize GLFW!" << std::endl;
		return 1;
	}

	return 0;
}

CMakeLists.txt -根目录

这里我们用到了cmake的更多特性,add_subdirectory创建子路径,在子路径中的CMakeLists.txt在执行时也会被调用,非常便捷。
cmake_minimum_required (VERSION 3.1)
set (CMAKE_C_STANDARD 11)
set (CMAKE_CXX_STANDARD 11)
project (PhantomEngine)
include_directories("${PROJECT_SOURCE_DIR}/PhantomCore")

add_subdirectory(PhantomCore)

CMakeLists.txt - core 目录

include_directories("${PROJECT_SOURCE_DIR}/Dependencies/GLFW/include")
link_directories("${PROJECT_SOURCE_DIR}/Dependencies/GLFW/lib-vc2015")
link_libraries("glfw3.lib")
add_executable(PhantomCore main.cpp)
target_link_libraries(PhantomCore glfw3.lib)

# 一切准备妥当后,cd进build目录执行cmake .. ,得到vs工程,打开运行成功。

ok , 使用我们的git 提交并打好tag,第二节工程环境算是搭建ok了。

前两节轻松愉快,但是要预习好cmake 、git 以及 脱离IDE自己编译程序所需的知识。希望我们能由浅入深,循序渐进,在程序构建、版本管理、图形渲染、引擎架构等方面来一次深潜。


下一节:游戏引擎养成《三》 hello window!

编辑于 2019-03-03

文章被以下专栏收录