- Core
- Renderer
- Сцена
- Окно
- ExternalGraphicsLibs
Проблема, с которой я столкнулся, заключается в том, что и Renderer, и Scene нуждаются в инициализации Glad, и если я инициализирую Glad только в рендерере, сцена не увидит его, поэтому мне нужно выполнить повторную инициализацию. там тоже это. На мой взгляд, это не лучший подход, потому что обе библиотеки будут иметь два разных указателя на функцию Glad, которые, по сути, будут делать одно и то же.
Знаете ли вы какое-нибудь решение этой проблемы? ? Как решить эту проблему или просто оставить это так, чтобы каждая dll, использующая Glad, имела собственную инициализацию?
Мой cmake для ExternalGraphicalLibs:
cmake_minimum_required(VERSION 3.24.0)
project(ExternalGraphicsLibs)
set(CMAKE_BUILD_PARALLEL_LEVEL)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Find and configure OpenGL
find_package(OpenGL REQUIRED)
# GLFW options
set(GLFW_BUILD_DOCS OFF CACHE BOOL "Disable GLFW docs" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "Disable GLFW tests" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "Disable GLFW examples" FORCE)
set(GLFW_INSTALL OFF CACHE BOOL "Disable GLFW install" FORCE)
# Add GLFW source code
add_subdirectory(glfw)
# Add GLAD source code
add_library(${PROJECT_NAME}
STATIC
${CMAKE_CURRENT_SOURCE_DIR}/glad/src/gl.c
)
target_include_directories(${PROJECT_NAME}
PUBLIC
glfw/include
glad/include
glm/
${OPENGL_INCLUDE_DIRS}
)
target_link_libraries(${PROJECT_NAME}
PUBLIC
glfw
${OPENGL_LIBRARIES}
)
Подробнее здесь: https://stackoverflow.com/questions/793 ... t-use-glad