在做用QT引擎渲染的时候,怎么也不能让QT的播放核心回调指定的函数。真是奇怪,在真正的程序中没有问题,为何偏偏在Demo中有问题呢?
先把这个问题记录一下,以后来解决了再记录一下解法吧。
没想到这么快就解决了,多亏Ardiue的帮助。下面说说是咋回事吧。
原来在QT当中,进行渲染一贞的时机是用户触发的,即是说什么时候调用先前指定的回调函数由用户说了算。通过调用MoviesTask这个QT SDK中的API即是告诉QT解码器——现在处于idle状态,你可以进行渲染了,这个过程仅仅渲染一贞而已。所以如果保证流畅的话至少要没33毫秒渲染一次才可以(30贞/秒)。
QT的解码器封装的很好,其输出仅仅是一种格式:RGB,至于是32还是24or16?则是在创建GWORLD的时候由用户指定的。
在网上看到介绍QT的文章多讲的是用QT自己内部来进行渲染的控制,其实QT完全可以由我们自己来进行控制,因为回调函数传入参数就是每一贞的画面,所以我们得到了每一贞的画面后还有什么不能做的呢?
一帧一帧的把画面输出到屏幕上就是一个连续的影片了。
先把这个问题记录一下,以后来解决了再记录一下解法吧。
没想到这么快就解决了,多亏Ardiue的帮助。下面说说是咋回事吧。
原来在QT当中,进行渲染一贞的时机是用户触发的,即是说什么时候调用先前指定的回调函数由用户说了算。通过调用MoviesTask这个QT SDK中的API即是告诉QT解码器——现在处于idle状态,你可以进行渲染了,这个过程仅仅渲染一贞而已。所以如果保证流畅的话至少要没33毫秒渲染一次才可以(30贞/秒)。
QT的解码器封装的很好,其输出仅仅是一种格式:RGB,至于是32还是24or16?则是在创建GWORLD的时候由用户指定的。
在网上看到介绍QT的文章多讲的是用QT自己内部来进行渲染的控制,其实QT完全可以由我们自己来进行控制,因为回调函数传入参数就是每一贞的画面,所以我们得到了每一贞的画面后还有什么不能做的呢?
一帧一帧的把画面输出到屏幕上就是一个连续的影片了。