创建 Kanzi Engine 插件
Kanzi Engine 插件扩展 Kanzi Engine 的功能。Kanzi Engine 在目标平台上执行这些插件。 使用 Kanzi Engine 插件:
- 使用 Kanzi Engine API 创建自定义节点,将其用于 Kanzi Studio 工程,并在 Kanzi Studio 预览 (Preview) 中查看其工作情况。
- 使用 Kanzi Engine API 创建自定义属性类型和消息,并将其用于 Kanzi Studio 工程。
- 定义您的 Kanzi 应用程序的数据录入点,并形成 Kanzi 应用程序设计师和开发者之间的约定。
要了解如何使用 Kanzi Engine 插件,请参阅:
要创建 Kanzi Engine 插件:
- 按以下方式之一创建插件:
- 安装插件。请参阅 添加 Kanzi Engine 插件到 Kanzi Studio 工程中。
- 调试插件。请参阅 调试 Kanzi Engine 插件。
使用插件模板创建 Kanzi Engine 插件
要使用插件模板创建 Kanzi Engine 插件:
- 在 Kanzi Studio 快速启动 (Quick Start) 屏幕中点击新建工程 (New Project)。
- 在新建工程 (New Project) 窗口中,将模板 (Template) 设置为 含 Kanzi Engine 插件的应用程序 (Application with Kanzi Engine plugin),然后点击创建 (Create)。
Kanzi 在 <KanziWorkspace>/Projects/<ProjectName>/Tool_project 目录中创建 Kanzi Studio 工程,并在 <KanziWorkspace>/Projects/<ProjectName>/Application 中创建工程的 Visual Studio 解决方案的结构:
- bin 目录包含工程的二进制文件和配置文件。
- configs 目录包含不同平台的配置文件。Kanzi 默认为几个不同的平台创建配置文件。适用于开发 Kanzi 应用程序的推荐平台是 Microsoft Visual Studio。请参阅 部署 Kanzi 应用程序。
- src 包含您的工程的源代码。
- 在 Visual Studio 中,打开平台的 Visual Studio 解决方案。
例如,打开存储在 <KanziWorkspace>/Projects/<ProjectName>/Application/configs/platforms/win32 中的适用于 Windows 平台的 Visual Studio 解决方案。
Visual Studio 解决方案包含:- Kanzi Engine 插件的工程,名为 <ProjectName>。您可在这里创建 Kanzi Engine 插件。
- C ++ 应用程序的工程,名为 <ProjectName>_executable。您可以在这里创建应用程序的逻辑。
- 在 Visual Studio 中,为您的 Kanzi 应用程序和 Kanzi Engine 插件创建逻辑,并在 Kanzi Studio 的 Kanzi Engine 插件中配置自定义组件。请参阅 扩展 Kanzi Engine 的功能。
- 在 Solution Explorer 中,右键点击 <ProjectName>_executable 工程并选择设为启动工程 (Set as StartUp Project)。
- 在 Visual Studio 中,为您的 Visual Studio 版本选择一个解决方案配置并选择构建 (Build) > 构建解决方案 (Build Solution)。如果您要同时构建多个版本,请在构建 (Build) > 批量构建 (Batch Build) 中选择您要构建的版本。
Visual Studio 构建包含 Kanzi 应用程序的逻辑的工程,并为您的 Kanzi Engine 插件创建 .dll。如果您只构建插件,请选择其中一种 DLL 解决方案配置,右键点击 <ProjectName> 工程并选择构建 (Build)。
例如,如果您仍在开发应用程序和插件,请选择 GL_vs2015_Debug_DLL 配置。要创建 Kanzi 应用程序的产品版本,选择一个可用的发布配置。
- 在 Kanzi Studio 中,从素材库 (Library) > Kanzi Engine 插件 (Kanzi Engine Plugins) 找到您在第一步中创建的工程,选择 <ProjectName> 插件:
- 右键点击该插件,并选择 更新 Kanzi Engine 插件 (Update Kanzi Engine Plugin) 以应用您在 Visual Studio 插件工程中对该插件所做的更改。
- 在属性 (Properties) 中,确保已启用 (Is Enabled) 属性为启用。
建议使用 已启用 (Is Enabled) 属性启用或禁用工程中的任何 Kanzi Engine 插件。
-
确保在 Visual Studio 中构建应用程序和插件工程使用的解决方案配置与 Kanzi Studio 工程的设置相匹配。
例如,如果您在 Visual Studio 中使用 GL_vs2015_Release 解决方案配置,则在 Kanzi Studio 工程的 > 中设置:
- 预览 OpenGL ES 包装 (Preview OpenGL ES Wrapper) 为GL (通过桌面 OpenGL GL 仿真)(Emulation through desktop OpenGL)
- 预览版本配置 (Preview Build Configuration) 为释放 (Release)
- 预览 Visual Studio 版本 (Preview Visual Studio Version) 为2015
- 预览工作目录 (Preview Working Directory) 为..\Application\bin。
通过这些设置,将 Kanzi Studio 预览 (Preview) 设为与插件配合使用。
手动创建 Kanzi Engine 插件
要手动创建 Kanzi Engine 插件:
- 在 Kanzi Studio 新建工程 (New Project) 窗口中,将模板 (Template) 设置为应用程序 (Application),以使用 C++ 应用程序创建新工程。
- 在Kanzi Studio 中选择 > 导出 (Export) > 导出 KZB (Export KZB)。
Kanzi Studio 从 Kanzi Studio 工程创建 kzb 文件和配置文件。Kanzi Studio 将导出的文件存储在 <ProjectName>/Application/bin 目录或您在 > 的二进制导出目录 (Binary Export Directory) 属性中指定的位置。Kzb 文件包含 Kanzi Studio 工程中的所有节点和资源,您在本地化表中标记为本地化包的资源除外。
当您从 Visual Studio 中运行您的 Kanzi 应用程序时,您的应用程序就会加载 kzb 文件和配置文件。
- 在 Visual Studio 中,为您的应用程序打开位于 Application/configs/platforms/win32 的 Visual Studio 解决方案。
- 在 Visual Studio 中,为您的 Visual Studio 版本选择解决方案配置。
例如,如果您仍在开发应用程序和插件,请选择 GL_vs2015_Debug_DLL 配置。要创建 Kanzi 应用程序的产品版本,选择一个可用的发布配置。
- 在 Solution Explorer 中,右键点击该解决方案并选择添加 (Add) > 新工程 (New Project)。在该工程中创建 Kanzi Engine 插件。
- 选择空工程 (Empty Project)。
- 命名工程。
- 将位置 (Location) 设为 <ProjectName>/Application/configs/platforms/win32。
- 在 Solution Explorer 中,右键点击该插件工程并选择设为启动工程 (Set as StartUp Project)。
- 在 Solution Explorer 中,右键点击您在上一步中创建的空工程,选择属性 (Properties),然后点击配置管理器... (Configuration Manager...)。
- 在您所创建的工程的配置管理器 (Configuration Manager) 中,选择 <New...> 配置并设置:
- Name 为您在第三步中选择的构建配置的名称。
例如,将其设为GL_vs2015_Debug_DLL。 - 取消选择创建新的解决方案配置 (Create new solution configurations)。
- 点击确定 (OK)。
- 在属性管理器 (Property Manager) 中,右键点击您在上一步中添加的配置,然后选择添加现有属性表...(Add Existing Property Sheet...),并添加:
- <KanziWorkspace>/Engine/configs/platforms/win32/debug.props
- <ProjectName>/Application/configs/platforms/win32/dll_application.props
- <KanziWorkspace>/Engine/configs/platforms/win32/gl.props
- 在 Solution Explorer 中,右键点击该插件工程,选择属性 (Properties) 并设置:
- 在 Solution Explorer 中,右键点击该插件工程,然后选择添加新工程 (Add New Item...):
- 选择 C++ 文件 (.cpp) (C++ File (.cpp))。
- 命名该文件。
- 将位置 (Location) 设为 <ProjectName>/Application/src。
- 在 Solution Explorer 中,右键点击该插件工程,并选择属性 (Properties):
- 在属性页面 (Property Pages) 窗口中,选择配置属性 (Configuration Properties) > C/C++ > 预处理器 (Preprocessor)。
- 在预处理器定义 (Preprocessor Definitions) 下拉菜单中,选择 <Edit...>。
- 在预处理器定义 (Preprocessor Definitions) 窗口中,添加
CUSTOM_COMPONENT_API=__declspec(dllexport)
定义。
您必须添加预处理器定义,以便 .dll 可以将其功能导出至 Kanzi Engine。
- 在 Solution Explorer 中,右键点击主工程,并选择属性 (Properties):
- 在属性页面 (Property Pages) 窗口中,选择配置属性 (Configuration Properties) > C/C++ > 预处理器 (Preprocessor)。
- 在预处理器定义 (Preprocessor Definitions) 下拉菜单中,选择 <Edit...>。
- 在预处理器定义 (Preprocessor Definitions) 窗口中,添加
CUSTOM_COMPONENT_API=__declspec(dllimport)
定义。
您必须在主工程中添加预处理器定义,以便主工程可以将插件 .dll 导出的功能导入到 Kanzi Engine。 - 在属性页面 (Property Pages) 窗口中,选择通用属性 (Common Properties) > 框架和参考 (Framework and References)。
- 点击添加新参考...(Add New Reference...),然后在您的插件工程中添加参考。
- 在 Visual Studio 中,打开您在插件工程中创建的 .cpp 文件并添加 createModule、deleteModule 和 getMetaclassOverride 函数。
插件使用这些函数来获取 .dll 中的函数、元类和组件列表。它使用这些函数将它们注册到 Kanzi Engine。
#include <kanzi/core/module/module.hpp>
extern "C"
{
CUSTOM_COMPONENT_API kanzi::Module* createModule(uint32_t kanziVersionMajor, uint32_t kanziVersionMinor);
}
class PluginModule: public kanzi::Module
{
virtual MetaclassContainer getMetaclassesOverride() KZ_OVERRIDE;
};
PluginModule::MetaclassContainer PluginModule::getMetaclassesOverride()
{
MetaclassContainer metaclasses;
return metaclasses;
}
CUSTOM_COMPONENT_API kanzi::Module* createModule(uint32_t /*kanziVersionMajor*/, uint32_t /*kanziVersionMinor*/)
{
return new PluginModule;
}
- 选择构建 (Build) > 构建解决方案 (Build Solution)。
构建输出是 .dll,即您可以在 Kanzi Studio 工程中安装和使用的 Kanzi Engine 插件。请参阅 添加 Kanzi Engine 插件到 Kanzi Studio 工程中。
添加 Kanzi Engine 插件到 Kanzi Studio 工程中
要添加 Kanzi Engine 插件到 Kanzi Studio 工程中:
- 在素材库 (Library) 中右键点击Kanzi Engine 插件 (Kanzi Engine Plugins) 并选择导入 Kanzi Engine 插件 (Import Kanzi Engine Plugin)。
- 选择您要导入的插件的 DLL 文件,然后点击打开 (Open)。
您在素材库 (Library) > Kanzi Engine 插件 (Kanzi Engine Plugins) 中选择导入的插件时,可以在属性 (Properties) 中看到插件引入 Kanzi Studio 工程的内容列表。例如,在属性 (Properties) 中您可以看到选定插件提供的属性类型、组件、数据源、渲染通道、节点组件和触发器动作类型。
-
确保在 Visual Studio 中构建应用程序和插件工程使用的解决方案配置与 Kanzi Studio 工程的设置相匹配。
例如,如果您在 Visual Studio 中使用 GL_vs2015_Release 解决方案配置,则在 Kanzi Studio 工程的 > 中设置:
- 预览 OpenGL ES 包装 (Preview OpenGL ES Wrapper) 为GL (通过桌面 OpenGL GL 仿真)(Emulation through desktop OpenGL)
- 预览版本配置 (Preview Build Configuration) 为释放 (Release)
- 预览 Visual Studio 版本 (Preview Visual Studio Version) 为2015
- 预览工作目录 (Preview Working Directory) 为..\Application\bin。
通过这些设置,将 Kanzi Studio 预览 (Preview) 设为与插件配合使用。
- 在素材库 (Library) > Kanzi Engine 插件 (Kanzi Engine Plugins) 中选择插件,并确保在属性 (Properties) 中启用已启用 (Is Enabled) 属性。
建议使用 已启用 (Is Enabled) 属性启用或禁用工程中的任何 Kanzi Engine 插件。
- 按下 Ctrl F8 或选择 > 重启预览 (Restart Preview) 重启预览 (Preview)。
您现在可以使用 Kanzi Studio 工程中的插件提供的内容。
另请参阅
调试 Kanzi Engine 插件
扩展 Kanzi Engine 的功能
Kanzi Engine 插件中声明的属性类型的 Kanzi Studio 属性编辑器
Kanzi Engine 插件
打开导航