文件结构调整, CMakeLists添加注释
This commit is contained in:
parent
231b140a1d
commit
3043d3dba9
@ -14,18 +14,27 @@ set(BUILD_TESTING OFF CACHE BOOL "hikogui Build tests" FORCE)
|
||||
# 添加hikogui子目录
|
||||
add_subdirectory(third_party/hikogui)
|
||||
|
||||
# 遍历添加源文件
|
||||
set(ALL_FILES "")
|
||||
retrieve_files(${CMAKE_CURRENT_SOURCE_DIR}/src ALL_FILES)
|
||||
add_executable(${PROJECT_NAME} ${ALL_FILES})
|
||||
|
||||
# 添加目录
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
|
||||
# 添加链接库
|
||||
target_link_libraries(${PROJECT_NAME} core hikogui)
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC core hikogui)
|
||||
|
||||
|
||||
################################### 编译Vulkan着色器 ###################################
|
||||
# 查找VulkanSDK
|
||||
find_package(Vulkan REQUIRED)
|
||||
|
||||
# 设置shader文件
|
||||
set(vulkan_arona_shader_sources
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/resources/waveform_cs.comp)
|
||||
|
||||
# 编译shader
|
||||
set(vulkan_arona_compiled_shader_files "")
|
||||
foreach(shader_file ${vulkan_arona_shader_sources})
|
||||
set(input_file "${shader_file}")
|
||||
@ -40,15 +49,14 @@ foreach(shader_file ${vulkan_arona_shader_sources})
|
||||
|
||||
set(vulkan_arona_compiled_shader_files ${vulkan_arona_compiled_shader_files} "${output_file}")
|
||||
endforeach()
|
||||
|
||||
# 添加自定义目标
|
||||
add_custom_target(vulkan_arona_shaders ALL DEPENDS ${vulkan_arona_compiled_shader_files})
|
||||
# 添加编译依赖
|
||||
add_dependencies(${PROJECT_NAME} vulkan_arona_shaders)
|
||||
|
||||
# 添加资源
|
||||
target_resources(${PROJECT_NAME} ${vulkan_arona_compiled_shader_files})
|
||||
################################### 编译Vulkan着色器 ###################################
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# Installation Rules: hikogui_demo
|
||||
#-------------------------------------------------------------------
|
||||
install(
|
||||
TARGETS ${PROJECT_NAME} DESTINATION
|
||||
RESOURCE DESTINATION ../bin/resources)
|
||||
|
64
Arona/src/arona_application.h
Normal file
64
Arona/src/arona_application.h
Normal file
@ -0,0 +1,64 @@
|
||||
#pragma once
|
||||
|
||||
#include "application/application.h"
|
||||
#include "hikogui/hikogui.hpp"
|
||||
|
||||
using namespace hi;
|
||||
|
||||
class arona_application : public application {
|
||||
public:
|
||||
~arona_application() override = default;
|
||||
|
||||
void tick(float delta_time) override {
|
||||
|
||||
}
|
||||
|
||||
void init(const char* runtime_dir) override {
|
||||
application::init(runtime_dir);
|
||||
|
||||
set_application_name("Toggle example");
|
||||
set_application_vendor("HikoGUI");
|
||||
set_application_version({1, 0, 0});
|
||||
|
||||
init_window();
|
||||
}
|
||||
|
||||
void shutdown() override {
|
||||
application::shutdown();
|
||||
}
|
||||
|
||||
void init_window() {
|
||||
// get_plugin_host_manager().create_instrument_plugin_host(R"(F:\VST\VST64\Serum_x64.dll)");
|
||||
// 创建一个窗口
|
||||
auto widget = std::make_unique<window_widget>(txt("Toggle example"));
|
||||
// 在窗口中放入一个标签控件(A1表示控件地址, 可能能够通过标签控件的地址来获取控件对象)
|
||||
widget->content().emplace<label_widget>("A1", txt("toggle:"));
|
||||
|
||||
// 创建一个整数观察者
|
||||
observer<int> value = 0;
|
||||
|
||||
// 在窗口中放入一个带标签的开关控件(B1表示控件地址)
|
||||
auto& tb = widget->content().emplace<toggle_with_label_widget>("B1", value, 1, 2);
|
||||
tb.attributes.on_label = txt("on");
|
||||
tb.attributes.off_label = txt("off");
|
||||
tb.attributes.other_label = txt("other");
|
||||
|
||||
// 将窗口指针保存到成员变量中
|
||||
window_ = std::make_unique<gui_window>(std::move(widget));
|
||||
close_cb = window_->closing.subscribe([this]() {
|
||||
on_window_closing();
|
||||
}, callback_flags::main);
|
||||
}
|
||||
protected:
|
||||
void on_window_closing() {
|
||||
window_.reset();
|
||||
shutdown();
|
||||
}
|
||||
private:
|
||||
std::unique_ptr<gui_window> window_;
|
||||
callback<> close_cb;
|
||||
};
|
||||
|
||||
inline arona_application* get_application() {
|
||||
return static_cast<arona_application*>(g_application);
|
||||
}
|
@ -1,65 +1,10 @@
|
||||
#include "application/application.h"
|
||||
#include "audio/plugin_host/plugin_host_manager.h"
|
||||
|
||||
#include "hikogui/crt.hpp"
|
||||
#include "hikogui/hikogui.hpp"
|
||||
#include "arona_application.h"
|
||||
|
||||
using namespace hi;
|
||||
|
||||
class arona_application : public application {
|
||||
public:
|
||||
~arona_application() override = default;
|
||||
|
||||
void tick(float delta_time) override {
|
||||
|
||||
}
|
||||
|
||||
void init(const char* runtime_dir) override {
|
||||
application::init(runtime_dir);
|
||||
|
||||
set_application_name("Toggle example");
|
||||
set_application_vendor("HikoGUI");
|
||||
set_application_version({1, 0, 0});
|
||||
|
||||
init_window();
|
||||
}
|
||||
|
||||
void shutdown() override {
|
||||
application::shutdown();
|
||||
}
|
||||
|
||||
void init_window() {
|
||||
// get_plugin_host_manager().create_instrument_plugin_host(R"(F:\VST\VST64\Serum_x64.dll)");
|
||||
// 创建一个窗口
|
||||
auto widget = std::make_unique<window_widget>(txt("Toggle example"));
|
||||
// 在窗口中放入一个标签控件(A1表示控件地址, 可能能够通过标签控件的地址来获取控件对象)
|
||||
widget->content().emplace<label_widget>("A1", txt("toggle:"));
|
||||
|
||||
// 创建一个整数观察者
|
||||
observer<int> value = 0;
|
||||
|
||||
// 在窗口中放入一个带标签的开关控件(B1表示控件地址)
|
||||
auto& tb = widget->content().emplace<toggle_with_label_widget>("B1", value, 1, 2);
|
||||
tb.attributes.on_label = txt("on");
|
||||
tb.attributes.off_label = txt("off");
|
||||
tb.attributes.other_label = txt("other");
|
||||
|
||||
// 将窗口指针保存到成员变量中
|
||||
window_ = std::make_unique<gui_window>(std::move(widget));
|
||||
close_cb = window_->closing.subscribe([this]() {
|
||||
on_window_closing();
|
||||
}, callback_flags::main);
|
||||
}
|
||||
protected:
|
||||
void on_window_closing() {
|
||||
window_.reset();
|
||||
shutdown();
|
||||
}
|
||||
private:
|
||||
std::unique_ptr<gui_window> window_;
|
||||
callback<> close_cb;
|
||||
};
|
||||
|
||||
int hi_main(int argc, char* argv[]) {
|
||||
arona_application arona;
|
||||
arona.init(nullptr);
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 5b02f82f07f800d8fe8ab40ac1f54ec7e7358378
|
||||
Subproject commit 00d6b5fb691add3241444ce1b9b11c1cf8561215
|
Loading…
x
Reference in New Issue
Block a user