Explorar o código

CHORE: better cmake configuration and src folder

Douglas A hai 1 ano
pai
achega
131347d9f4
Modificáronse 11 ficheiros con 32 adicións e 22 borrados
  1. 3 0
      .gitignore
  2. 3 5
      CMakeLists.txt
  3. 21 0
      src/CMakeLists.txt
  4. 0 0
      src/callbacks.cpp
  5. 0 0
      src/callbacks.h
  6. 0 0
      src/glad.c
  7. 5 16
      src/main.cpp
  8. 0 1
      src/renderer.cpp
  9. 0 0
      src/renderer.h
  10. 0 0
      src/shader.cpp
  11. 0 0
      src/shader.h

+ 3 - 0
.gitignore

@@ -397,3 +397,6 @@ FodyWeavers.xsd
 # JetBrains Rider
 *.sln.iml
 
+build/
+
+compile_commands.json

+ 3 - 5
CMakeLists.txt

@@ -3,18 +3,16 @@ cmake_minimum_required(VERSION 3.5)
 project(another-gl LANGUAGES C CXX)
 
 set(CXX_STANDARD 20)
+set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "")
 
 set(OpenGL_GL_PREFERENCE GLVND)
+
 find_package(glm REQUIRED)
 find_package(spdlog REQUIRED)
 find_package(glfw3 REQUIRED)
 find_package(OpenGL REQUIRED)
 
-add_executable(another-gl
-    main.cpp glad.c renderer.cpp shader.cpp callbacks.cpp)
-
-target_include_directories(another-gl PUBLIC ${glm_INCLUDE_DIRS} ${glfw3_INCLUDE_DIRS} ${spdlog_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/include)
-target_link_libraries(another-gl glfw glm::glm spdlog::spdlog OpenGL::GL)
+add_subdirectory(src)
 
 add_custom_target(copy-files-vert ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/vert.glsl ${CMAKE_CURRENT_BINARY_DIR})
 add_custom_target(copy-files-frag ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/frag.glsl ${CMAKE_CURRENT_BINARY_DIR})

+ 21 - 0
src/CMakeLists.txt

@@ -0,0 +1,21 @@
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
+
+include_directories(${OPENGL_INCLUDE_DIR})
+
+set(SOURCES
+    glad.c
+    renderer.cpp
+    shader.cpp
+    callbacks.cpp
+)
+
+set(EXECUTABLE_OUTPUT_PATH ..)
+
+include_directories(${CMAKE_SOURCE_DIR}/include)
+
+add_library(another-gl-lib STATIC ${SOURCES})
+add_executable(another-gl main.cpp)
+
+target_include_directories(another-gl PUBLIC ${glm_INCLUDE_DIRS} ${glfw3_INCLUDE_DIRS} ${spdlog_INCLUDE_DIRS} )
+target_link_libraries(another-gl-lib glfw glm::glm spdlog::spdlog OpenGL::GL)
+target_link_libraries(another-gl another-gl-lib)

+ 0 - 0
callbacks.cpp → src/callbacks.cpp


+ 0 - 0
callbacks.h → src/callbacks.h


+ 0 - 0
glad.c → src/glad.c


+ 5 - 16
main.cpp → src/main.cpp

@@ -1,5 +1,3 @@
-#include <iostream>
-
 #define GLFW_INCLUDE_NONE
 #include <GLFW/glfw3.h>
 #include <glad/glad.h>
@@ -16,12 +14,10 @@
 
 void process_input(GLFWwindow* window);
 
-
 int main() {
 
 	if (!glfwInit()) {
 		spdlog::error("Could not intialize GLFW.");
-		glfwTerminate();
 		return EXIT_FAILURE;
 	}
 	glfwSetErrorCallback(error_callback);
@@ -37,7 +33,7 @@ int main() {
 		return EXIT_FAILURE;
 	}
 	glfwMakeContextCurrent(window);
-	
+
 	if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {
 		spdlog::error("Failed to initialize GLAD");
 		return EXIT_FAILURE;
@@ -45,7 +41,7 @@ int main() {
 	glfwSetKeyCallback(window, key_callback);
 	glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
 
-	
+
 	glViewport(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT);
 	glEnable(GL_BLEND);
 	glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
@@ -58,15 +54,13 @@ int main() {
 		static_cast<float>(WINDOW_HEIGHT), 0.0f, -1.0f, 1.0f);
 	basic.setMatrix4("projection", projection);
 
-
-
 	Renderer r = Renderer(basic);
 	float deltaTime = 0.0f;
 	float lastFrame = 0.0f;
 
 	while (!glfwWindowShouldClose(window)) {
 
-		
+
 		float currentFrame = glfwGetTime();
 		deltaTime = currentFrame - lastFrame;
 		lastFrame = currentFrame;
@@ -78,19 +72,14 @@ int main() {
 		glm::vec2 size(400.0f, 300.0f);
 		glm::vec3 color(0.5f, 0.5f, 0.5f);
 
-
-	
 		glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
 		glClear(GL_COLOR_BUFFER_BIT);
 
 		r.draw(pos, size, 0.0f, color);
 
+		spdlog::warn("deltaTime {}", 1.0f/deltaTime);
 
-		
-		
 		glfwSwapBuffers(window);
-		
-
 	}
 
 	glfwDestroyWindow(window);
@@ -102,4 +91,4 @@ int main() {
 void process_input(GLFWwindow* window) {
 	if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
 		glfwSetWindowShouldClose(window, true);
-}
+}

+ 0 - 1
renderer.cpp → src/renderer.cpp

@@ -21,7 +21,6 @@ void Renderer::draw(glm::vec2 position, glm::vec2 size, float rotate, glm::vec3
 
     model = glm::scale(model, glm::vec3(size, 1.0f)); // last scale
 
-
     this->m_shader.setMatrix4("model", model);
 
     // render textured quad

+ 0 - 0
renderer.h → src/renderer.h


+ 0 - 0
shader.cpp → src/shader.cpp


+ 0 - 0
shader.h → src/shader.h