feat: add OpenGL abstraction layer with RAII resources
- Replace window class with cbt::opengl::context - Add buffer resource (VBO, EBO, UBO, SSBO) with move semantics - Add texture resource with format/type enums and filtering - Add descriptor_set for Vulkan-style resource binding - All resources use RAII with proper cleanup
This commit is contained in:
Vendored
+52
@@ -0,0 +1,52 @@
|
||||
# ==============================================================================
|
||||
# Find implot3d
|
||||
# ==============================================================================
|
||||
# Builds ImPlot3D from the bundled sources in deps/implo3d/.
|
||||
#
|
||||
# Targets provided:
|
||||
# implot3d::implot3d - The ImPlot3D library target
|
||||
#
|
||||
# Variables set:
|
||||
# implot3d_FOUND - TRUE if implot3d is available
|
||||
# implot3d_LIBRARIES - The implot3d library target (implot3d::implot3d)
|
||||
# implot3d_INCLUDE_DIR - Include directories for implot3d
|
||||
#
|
||||
# Configuration (set before find_package):
|
||||
# IMPLOT3D_BUILD_DEMO - Include demo sources (default: ON)
|
||||
# ==============================================================================
|
||||
|
||||
if (DEFINED _FINDIMPLOT3D_INCLUDED)
|
||||
return()
|
||||
endif()
|
||||
set(_FINDIMPLOT3D_INCLUDED TRUE)
|
||||
|
||||
option(IMPLOT3D_BUILD_DEMO "Include ImPlot3D demo sources" ON)
|
||||
|
||||
set(_implot3d_source_dir "${CMAKE_CURRENT_LIST_DIR}/implo3d")
|
||||
|
||||
if (NOT EXISTS "${_implot3d_source_dir}/implot3d.cpp")
|
||||
message(FATAL_ERROR "implot3d sources not found at '${_implot3d_source_dir}'")
|
||||
endif()
|
||||
|
||||
if (NOT TARGET imgui::imgui)
|
||||
message(FATAL_ERROR "implot3d requires imgui::imgui to be available before find_package(implot3d)")
|
||||
endif()
|
||||
|
||||
add_subdirectory("${_implot3d_source_dir}" "${CMAKE_BINARY_DIR}/_deps/implot3d-build" EXCLUDE_FROM_ALL)
|
||||
|
||||
if (NOT TARGET implot3d::implot3d)
|
||||
message(FATAL_ERROR "implot3d: target implot3d::implot3d was not created")
|
||||
endif()
|
||||
|
||||
set(implot3d_FOUND TRUE)
|
||||
set(implot3d_LIBRARIES implot3d::implot3d)
|
||||
get_target_property(_implot3d_inc implot3d INTERFACE_INCLUDE_DIRECTORIES)
|
||||
set(implot3d_INCLUDE_DIR "${_implot3d_inc}")
|
||||
|
||||
if (_implot3d_inc AND TARGET implot3d)
|
||||
set_target_properties(implot3d PROPERTIES
|
||||
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_implot3d_inc}"
|
||||
)
|
||||
endif()
|
||||
|
||||
set(IMPLOT3D_LICENSE_FILE "${_implot3d_source_dir}/LICENSE" CACHE FILEPATH "Path to ImPlot3D license file")
|
||||
Reference in New Issue
Block a user