From 83c3ea09403f2f47812abd9d0967876a69e8009f Mon Sep 17 00:00:00 2001 From: jie Date: Sun, 8 Oct 2023 15:34:44 +0800 Subject: [PATCH] init --- .gitignore | 2 ++ CMakeLists.txt | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ main.cpp | 18 ++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..add2a72 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/build/ +/.idea/ \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..8e189d7 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,51 @@ +cmake_minimum_required(VERSION 3.26) + +set(PROJECT_N LearnOpengl) +project(${PROJECT_N}) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + + +IF(UNIX) + MESSAGE(STATUS "UNIX") + find_package(PkgConfig REQUIRED) + pkg_check_modules(LIBAV REQUIRED IMPORTED_TARGET + libavdevice + libavfilter + libavformat + libswresample + libswscale + libavutil + ) + add_executable(${PROJECT_N} main.cpp) + target_link_libraries(${PROJECT_N} + PkgConfig::LIBAV + ) +ELSE(WIN32) + MESSAGE(STATUS "WIN32") + set(CMAKE_PREFIX_PATH D:/document/lib/) + set(THIRD_LIB_DIR D:/document/lib/) + #glad + include_directories(${THIRD_LIB_DIR}/glad/glad3.3/include) + set(GLAD_SRCS ${THIRD_LIB_DIR}/glad/glad3.3/src/glad.c) + #glfw + include_directories(${THIRD_LIB_DIR}/glfw/glfw-3.3.8.bin.WIN64/glfw-3.3.8.bin.WIN64/include) + link_directories(${THIRD_LIB_DIR}/glfw/glfw-3.3.8.bin.WIN64/glfw-3.3.8.bin.WIN64/lib-vc2022) + set(Glfw_LIBS + glfw3.lib + ) + #opengl + set(Opengl_LIBS + opengl32.lib + ) + #link + add_executable(${PROJECT_N} + main.cpp + ${GLAD_SRCS} + ) + target_link_libraries(${PROJECT_N} + ${Glfw_LIBS} + ${Opengl_LIBS} + ) +endif () diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..eee3867 --- /dev/null +++ b/main.cpp @@ -0,0 +1,18 @@ +#include "glad/glad.h" +#include "GLFW/glfw3.h" + +int main(int argc, char** const argv){ + glfwInit(); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); + + auto window = glfwCreateWindow(800, 600, "Window", nullptr, nullptr); + glfwMakeContextCurrent(window); + + if(!gladLoadGLLoader((GLADloadproc) glfwGetProcAddress)){ + auto error = glad_glGetError(); + return error; + } + return 0; +} \ No newline at end of file