D3D渲染实时流

最近在做

IDirect3D9Device接口中有一个Setviewport方法,可以设置显示的区域,

不知道这个问题能不能解决1920*1080屏幕分辨率下渲染出现花屏的问题

经过分析发现花屏其实不是渲染的问题,只是解码的时候出现错误,所以解码是很重要的)。


说明其实渲染实时流很简单:

①:首先创建一个后台缓存区;一个前台缓存区;

注明:后台缓存区内存;前台缓存区是保存在显存中的

②:将要渲染的数据填充到后台缓存区;注意在填充数据之前要进行lock操作,

填充结束后记得unlock解锁

③:前台缓存和后台缓存之间进行交换,也就是交换链之间进行交换;这边其实只是交换指针,有点是速度快

例如可以通过这个函数StrechRect

④:最后调用Present函数,将前台缓存数据拷贝到显示器进行渲染。


有了上述步骤之后就是一系列的循环了,②-④之间进行不断的循环就可以实现实时流的预览了






版权声明:本文为chen_0306原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。