zoukankan      html  css  js  c++  java
  • 把KlayGE嵌入其他GUI框架

    转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2496

    长期以来,KlayGE一直是单独执行的,窗口上的UI也都是自己画。很多人都提到这么做给编辑器等应用造成了困难。所以如果适度修改KlayGE的窗口系统,使得KlayGE可以嵌入其他的GUI框架,比如MFC、QT、WPF等,有些时候会方便得多。

    第一个尝试做这件事情,并且取得成功的在这里。他通过修改Window类,支持从外部传入HWND,让KlayGE复用外部建立的窗口。这么做能顺利地把KlayGE嵌入MFC等框架中。同时,作者也指出了单独这么改仍不能达到完美的程度,“并且由于KlayGE没有开放单独绘制一桢这样的函数,所以直接关闭程序会有内存泄漏和异常。以后再研究研究,试着把相关功能提取一下,做成和Ogre一样的,那样就可以在OnIdle()和OnPaint()时渲染一桢,在OnDestory()时清理资源。

    于是,我尝试除了改Window类之外,还进一步修改App3DFramework。原先的消息循环放在了渲染引擎里,通过StartRendering来调用。但实际上不同的渲染引擎插件,消息循环部分是一样的。或者说,消息循环取决于平台,而不取决于渲染引擎。所以这里做的第一件事情是把消息循环挪到App3DFramework中。渲染引擎之需要提供一个Refresh函数,负责渲染本身。同时,这个函数也可以在OnIdle的时候调用,也就解决了嵌入的问题。

    就这样,用了很少的改动,就完成了嵌入。

    KGEditor

  • 相关阅读:
    財智V6.0(完美破解序列号特别版)
    垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
    HDU1006
    HDU 1385 Minimum Transport Cost 最短路径题解
    fast-json.jar的用法
    curl命令具体解释
    mysql很全的和完整的总结
    MongoDB入门简单介绍
    Tuxedo入门学习
    BP神经网络基本原理
  • 原文地址:https://www.cnblogs.com/gongminmin/p/3134184.html
Copyright © 2011-2022 走看看