zoukankan      html  css  js  c++  java
  • Kanzi入门

    1.安装Kanzi。

    2.使用Kanzi studio创建工程。

    Kanzi创建的工程会包含以下目录结构:

    其中,

    Tool_project文件夹中存放的是设计师设计的工程,包含kanzi UI的工程的所有文件。

    Application文件夹则为代码的工程文件夹。该文件夹下的bin文件夹存放设计师导出的kzb文件,src文件夹存放编写的代码,config里面存放对应的vs、vc、eclipse工程文件。

    UI设计师和软件工程师通过bin目录下的kzb资源文件联系起来。UI设计师通过kanzi studio设计工具导出kzb资源文件到该目录,而软件工程师使用engine读取该kzb文件创建界面,监听点击事件,传递数据,实现具体功能。

    【设计师设计部分】可以通过以下视频教程进行学习。

    http://v.ku6.com/show/eHuNhYr8nd4S7gY7jpwahg...html?st=3_1_2

    http://v.17173.com/so-index.html?key=kanzi

    http://v.youku.com/v_show/id_XNjU5MTI2ODE2.html?from=y1.7-1.2

    【软件工程师编程部分】

    1.对于2.8.x版本:

    刚创建的Kanzi工程有两个函数,其中kzApplicationConfigure为整个程序的入口,相当于main函数(kanzi把main函数封装在库中了,只提供kzApplicationConfigure出来,kzApplicationConfigure会在创建窗口之前回调)。

    如下:

     1 /** 
     2  * A typical application configuration function. 
     3  */  
     4 KZ_CALLBACK void kzApplicationConfigure(const struct KzaSystemProperties* systemPropert
     5 ies, struct KzaApplicationProperties* configuration) 
     6 { 
     7     /* Memory reserved for the application. */  
     8     configuration->memoryPoolSize = 20 * 1024 * 1024;     //设置使用内存的大小,默认20Mb
     9     configuration->binaryName = "binaries.cfg";     //设置读取kzb的配置文件
    10   
    11     /* Platform specific configuration parameters. */  
    12 #if defined WIN32 || defined __linux__ 
    13     configuration->windowProperties.style = KZS_WINDOW_STYLE_DEFAULT; 
    14     configuration->windowProperties.width = 800; 
    15     configuration->windowProperties.height = 480; 
    16 #endif 
    17  
    18     /* List of available entry points implemented. Implementation is optional. */  
    19     /* Application lifetime. */ 
    20     configuration->onStartup = startup; 
    21     configuration->onProjectLoaded = projectLoaded; 
    22     configuration->onShutdown = shutdown; 
    23   
    24     /* Application events. */ 
    25     configuration->onApplicationEvent = applicationEventHandler; 
    26     configuration->onWindowEvent = windowEventHandler; 
    27   
    28     /* Input events. */ 
    29     configuration->onKeyInputEvent = keyInputEventHandler; 
    30     configuration->onPointerInputEvent = pointerInputEventHandler; 
    31      
    32     /* Render cycle. */ 
    33     configuration->onPreRender = preRender; 
    34     configuration->onPostRender = postRender; 
    35     configuration->onUpdate = update; 
    36 }

    kzApplicationConfigure函数中可做app的配置,设置内存池大小、窗口大小、窗口类型等,

    另外就是在里面注册回调函数,如

    configuration->onPostRender = postRender;
    为注册每一帧渲染后的回调函数。

    2.对于3.2版本则改成了c++的风格,如下:

     1 #include <kanzi/kanzi.hpp>
     2 
     3 class NApplicaiton : public ExampleApplication
     4 {
     5 protected:
     6     virtual void onConfigure(ApplicationProperties& configuration) KZ_OVERRIDE;
     7 
     8     virtual void onProjectLoaded() KZ_OVERRIDE;
     9 
    10     virtual void onShutdown() KZ_OVERRIDE;
    11 
    12     virtual void onKeyInputEvent(const KzsInputEventKey* inputData) KZ_OVERRIDE;
    13 
    14 private:
    15     NApplicaiton();
    16     ~NApplicaiton();
    17 
    18 };
    19 
    20 Application* createApplication()
    21 {
    22     return new NApplicaiton();
    23 }

     之前在2.8.x版本中的 注册回调函数的方式在3.2版本换成了 重写ExampleApplication的虚函数,其作用还是一样的。同样onProjectLoaded会在资源加载完成后背调用。




  • 相关阅读:
    LeetCode Array Easy 414. Third Maximum Number
    LeetCode Linked List Medium 2. Add Two Numbers
    LeetCode Array Easy 283. Move Zeroes
    LeetCode Array Easy 268. Missing Number
    LeetCode Array Easy 219. Contains Duplicate II
    LeetCode Array Easy 217. Contains Duplicate
    LeetCode Array Easy 189. Rotate Array
    LeetCode Array Easy169. Majority Element
    LeetCode Array Medium 11. Container With Most Water
    LeetCode Array Easy 167. Two Sum II
  • 原文地址:https://www.cnblogs.com/littlemeng/p/kanzi.html
Copyright © 2011-2022 走看看