游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2003|回复: 3

看不到效果怎么办? :)

[复制链接]

15

主题

31

帖子

35

积分

注册会员

Rank: 2

积分
35
发表于 2004-1-25 21:30:00 | 显示全部楼层 |阅读模式



我想在我的以D3D为框架的程序中播放一段AVI视频,我参照DirectShow中的一个名为Texture3D9的例子先在初始化函数里加上


LPDIRECT3DDEVICE9->CreateVertexBuffer

LPDIRECT3DVERTEXBUFFER9->Lock

。。。


LPDIRECT3DVERTEXBUFFER9->Unlock


还加上了Texture3D9例子中的InitDShowTextureRenderer()

在每帧都执行的render函数中加上

LPDIRECT3DDEVICE9->SetTexture( 0, LPDIRECT3DTEXTURE9 );
    LPDIRECT3DDEVICE9->SetStreamSource( 0,LPDIRECT3DVERTEXBUFFER9, 0, sizeof(CUSTOMVERTEX) );
  LPDIRECT3DDEVICE9->SetVertexShader( NULL );
  LPDIRECT3DDEVICE9->SetFVF( D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_TEX1);
LPDIRECT3DDEVICE9->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 100-2 );


但在程序执行后,看不到LPDIRECT3DTEXTURE9这个纹理,我想问题应该在

LPDIRECT3DDEVICE9->SetTexture( 0, LPDIRECT3DTEXTURE9 )或LPDIRECT3DDEVICE9->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 100-2 )这两个地方

请了解directshow的朋友帮帮我,多谢多谢!


我可以把工程发给您!

15

主题

31

帖子

35

积分

注册会员

Rank: 2

积分
35
 楼主| 发表于 2004-1-26 23:06:00 | 显示全部楼层

Re:看不到效果怎么办? :)


程序执行时编译器提示

                                  Failed to agree type
quartz.dll(tid 290)      671 : Render: FAILED to connect output pin 16634d0 to pin 3fc390 on filter at address 3fc048
quartz.dll(tid 290)      677 : Render: No more pins - FAILED to find a pin to use on filter 3fc048

15

主题

31

帖子

35

积分

注册会员

Rank: 2

积分
35
 楼主| 发表于 2004-1-28 09:24:00 | 显示全部楼层

Re: 看不到效果怎么办? :)

我已经能在窗口模式下在“世界”中加载avi纹理了,但当我用全屏方式时,avi纹理不再被加载在“世界”中,

而是单独出现了一个名为ActiveMovie Window的窗口,播放avi视频

CComPtr<IMediaControl>->Run() 应该是播放avi的代码吧。

我的程序是

class CMyD3DApplication : public CD3DApplication

公有继承自CD3DApplication如果我将d3dapp.h中CD3DApplication()构造函数中的
m_bStartFullscreen  =true;

那么我的程序执行时就是全屏,但就出现了上述问题。(窗口时就没事)

15

主题

31

帖子

35

积分

注册会员

Rank: 2

积分
35
 楼主| 发表于 2004-1-28 20:06:00 | 显示全部楼层

放mpg就没事!

!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-25 00:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表