Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
PluginTemplate/cmake-build-debug/
/build/
/cmake-build-debug/
/vendor/glfw/
2 changes: 1 addition & 1 deletion .idea/.name

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 17 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,17 +1,25 @@
cmake_minimum_required(VERSION 3.24.4)
project(HUMMINGBIRD_PLUGIN_BASE)
project(HUMMINGBIRD_PLUGIN_TEMPLATE)
set(CMAKE_CXX_STANDARD 23)

if (NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
endif ()
if (NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
endif ()
if (NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
endif ()
if (NOT DEFINED CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 23)
endif ()

#TEST TEXT FOR WORKFLOW TEST
if (NOT TARGET imgui-extension)
if (NOT TARGET HBUI)
message(STATUS "imgui-extension not included, including it now")
set(IMGUI_EXAMPLES OFF CACHE BOOL "" FORCE)
set(IMGUI_DEMO OFF CACHE BOOL "" FORCE)
set(IMGUI_ENABLE_FREETYPE OFF CACHE BOOL "" FORCE)
set(IMGUI_IMPL_GLFW OFF CACHE BOOL "" FORCE)
set(IMGUI_IMPL_VULKAN OFF CACHE BOOL "" FORCE)
set(IMGUI_ENABLE_STDLIB_SUPPORT OFF CACHE BOOL "" FORCE)
set(IMGUI_EXTENSION ON CACHE BOOL "" FORCE)
add_subdirectory(vendor/imgui)
add_subdirectory(vendor/imgui/HBUI)
else ()
message(STATUS "imgui-extension already included")
endif ()
Expand Down
26 changes: 11 additions & 15 deletions PluginTemplate/PluginTemplate/src/PluginTemplate.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,18 @@
#include "IPlugin.h"

class PluginTemplate : public HummingBird::Plugins::IPlugin {
public:
public:
PluginTemplate(HummingBirdCore::UI::WindowManager *windowManagerPtr, ImGuiContext *imGuiContext,
ImGuiMemAllocFunc allocFunc, ImGuiMemFreeFunc freeFunc, void *userData) : IPlugin(windowManagerPtr, imGuiContext, allocFunc, freeFunc, userData) {
}
void initialize() override;
void update() override;
void cleanup() override;

private:
char* inputTest = "test";

public:
public:
PluginTemplate(HummingBirdCore::UI::WindowManager *windowManagerPtr, ImGuiContext *imGuiContext,
ImGuiMemAllocFunc allocFunc, ImGuiMemFreeFunc freeFunc, void *userData) : IPlugin(windowManagerPtr, imGuiContext, allocFunc, freeFunc, userData) {
}
void initialize() override;
void update() override;
void cleanup() override;
};

extern "C" HummingBird::Plugins::IPlugin *create_plugin(
HummingBirdCore::UI::WindowManager *windowManagerPtr, ImGuiContext *imGuiContext,
ImGuiMemAllocFunc allocFunc, ImGuiMemFreeFunc freeFunc, void *userData) {
return new PluginTemplate(windowManagerPtr, imGuiContext, allocFunc, freeFunc, userData);
HummingBirdCore::UI::WindowManager *windowManagerPtr, ImGuiContext *imGuiContext,
ImGuiMemAllocFunc allocFunc, ImGuiMemFreeFunc freeFunc, void *userData) {
return new PluginTemplate(windowManagerPtr, imGuiContext, allocFunc, freeFunc, userData);
}
16 changes: 9 additions & 7 deletions PluginTemplate/PluginTemplate/src/PluginTemplateWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,16 @@ class PluginTemplateWindow : public HummingBirdCore::UIWindow {
}

void render() override {
ImGui::Text("This is the plugin exsmple window");
//todo: add stdlib
// ImGui::InputText("Plugin Name", &inputTest)
ImGui::InputText("Plugin Name", inputTest, IM_ARRAYSIZE(inputTest));
ImGui::Button("test button");
ImGui::Text("This is the plugin example window");

ImGui::InputText("Plugin Name", inputTest, IM_ARRAYSIZE(inputTest));
ImGui::ColorPicker4("Color Picker", &clear_color.x);

ImGui::Button("test button1");
ImGui::Button("test button3");
}

private:
char inputTest[128] = "Hello, world!";
char inputTest[128] = "Hello, world!";
ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
};

6 changes: 3 additions & 3 deletions PluginTemplate/template.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ add_library(${PLUGIN_NAME} SHARED
)


if(TARGET imgui-extension)
target_link_libraries(${PLUGIN_NAME} PUBLIC imgui-extension)
if(TARGET HBUI)
target_link_libraries(${PLUGIN_NAME} PUBLIC HBUI)
else()
message(FATAL_ERROR "imgui-extension not found")
message(FATAL_ERROR "HBUI not found")
endif()

target_include_directories(${PLUGIN_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
Expand Down