社区
游戏开发
帖子详情
请问怎么样用DirectX提高放大图像的播放速率?
admireO
2001-11-14 09:38:24
最近再用DirectX写一个播放原始图像的(8bit/pixel)程序,用:BitBlt写显存,速度上还可以,现在当我把图像放大时把512 * 512放大成1024 * 1024速度只有原来的1/3了.请问高手,怎么样提高播放速度呀?
...全文
123
11
打赏
收藏
请问怎么样用DirectX提高放大图像的播放速率?
最近再用DirectX写一个播放原始图像的(8bit/pixel)程序,用:BitBlt写显存,速度上还可以,现在当我把图像放大时把512 * 512放大成1024 * 1024速度只有原来的1/3了.请问高手,怎么样提高播放速度呀?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
admireO
2001-11-20
打赏
举报
回复
top,top..........................................
admireO
2001-11-20
打赏
举报
回复
大家帮帮忙呀?????????????????????????????????
admireO
2001-11-19
打赏
举报
回复
大家帮我看一段代码把,怎么执行到:lpDDSOffScreen->GetDC( &hOffScreenDC )就出问题,程序被强制终止了.
BOOL CDDUtil::DD_CreateWnd(int nOuterMode,int x,int y,int width,int height,int nRest,LPCTSTR lpszCaption)
{
DDSURFACEDESC ddsd={0};
HRESULT ddrval;
HINSTANCE hInstance=g_hInst;
//int sysw,sysh;
//HWND hawnd=GetActiveWindow();
nMode=nOuterMode;
nSrcWidth=width;
nSrcHeight=height;
nMode |= MODE_WINDOW; nMode |=MODE_FASTBLT;
if (nMode&MODE_YUV /*|| nMode&MODE_RGB*/)
nMode &= ~MODE_FASTBLT ;
BOOL bDisplayInWindow=TRUE;//((nMode&MODE_WINDOW) && (!(nMode&MODE_FASTBLT)));
//Set position here
rcPos.top=y;
rcPos.left=x;
rcPos.bottom=y+height;
rcPos.right=x+width;
/*
* create a window
*/
hwnd = CreateWindowEx(
0,
NAME,
lpszCaption,
WS_CAPTION|WS_SYSMENU|WS_VISIBLE|WS_MAXIMIZEBOX|WS_BORDER|WS_SIZEBOX|WS_MAXIMIZE,
// gan WS_CAPTION|WS_SYSMENU|WS_VISIBLE|WS_MAXIMIZEBOX|WS_BORDER|WS_SIZEBOX,
x,
y,
/*width + nRest,
height,*/
width,
height,
NULL,
NULL,
hInstance,
NULL );
if( !hwnd )
{
DWORD dwRet = ::GetLastError();
return FALSE;
}
m_hCreatedWnd = hwnd;
SetWindowLong(hwnd,GWL_USERDATA,(LONG)((nMode&MODE_WINDOW)?this:NULL));
// ShowWindow( hwnd, (nMode&MODE_WINDOW)?SW_SHOWNOACTIVATE:SW_HIDE );
// UpdateWindow( hwnd );
if (nMode & MODE_WINDOW){
GetClientRect(hwnd,&rcPos);
sysw=width-(rcPos.right-rcPos.left);
sysh=height-(rcPos.bottom-rcPos.top);
MoveWindow(hwnd,x,y,width,height,TRUE);
}
/* create the main DirectDraw object
*/
LPDIRECTDRAW lpDD1;
ddrval = DirectDrawCreate( NULL, &lpDD1, NULL );
if( ddrval != DD_OK )
{
return DDrawFailed();
}
ddrval = lpDD1->QueryInterface(IID_IDirectDraw2, (void **)&lpDD);
if( ddrval != DD_OK )
{
return DDrawFailed();
}
lpDD1->Release();
ddrval = lpDD->SetCooperativeLevel( hwnd, DDSCL_NORMAL );
if( ddrval != DD_OK )
{
return DDrawFailed();
}
// Create the primary surface
ddsd.dwSize = sizeof( ddsd );
ddsd.dwFlags = DDSD_CAPS;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
ddrval = lpDD->CreateSurface( &ddsd, &lpDDSPrimary, NULL );
if( ddrval != DD_OK )
{
ddrval=DD_OK;
return DDrawFailed();
}
DDSURFACEDESC desc = { 0 };
desc.dwSize = sizeof(desc);
desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
desc.dwHeight = height;
desc.dwWidth = width;
ddrval = lpDD->CreateSurface( &desc,&lpDDSOffScreen,NULL );
if( ddrval != DD_OK )
{
ddrval = DD_OK;
return DDrawFailed();
}
ASSERT( m_hTypeBitmap != NULL );
ASSERT( lpDDSOffScreen != NULL );
lpDDSOffScreen->Restore();
HDC hOffScreenDC;
//执行到下面这句被强制终止,这是什么原因呀,我的DIRECTX部分不是满屏的是一个1024 * 1024窗口
LRESULT ddRet = lpDDSOffScreen->GetDC( &hOffScreenDC );
ASSERT( hOffScreenDC != NULL );
::SelectObject( hOffScreenDC,m_hTypeBitmap );
lpDDSOffScreen->ReleaseDC( hOffScreenDC );
return TRUE;
}
rockswang
2001-11-16
打赏
举报
回复
BltFast呀
admireO
2001-11-15
打赏
举报
回复
我用Clipper,获得窗口HDC,然后再BitBlt,当我放大图像的时候我就用StretchBlt,速度好像跟不上,请问,有没有什么好的办法?
hboy
2001-11-15
打赏
举报
回复
用Overlay表面可以,但对显卡有要求
IONPhantom
2001-11-15
打赏
举报
回复
就是,用显卡硬件实现多好!
linclouds
2001-11-15
打赏
举报
回复
使用DirectDraw可以,有些显卡支持硬件拉伸!
admireO
2001-11-15
打赏
举报
回复
请大家关注呀,我快疯了
IONPhantom
2001-11-15
打赏
举报
回复
DirectDraw 好象没有 BitBlt 这个函数呀,只有 Blt
admireO
2001-11-14
打赏
举报
回复
我的贴子怎么没人理呀?
iSee视频监控 v5.2
具有局部
放大
功能,可逐帧回放,快速
播放
,慢速
播放
,常规
播放
。 回放时可进行图片抓拍功能,回放时文件备份功能、文件剪辑功能。 可进行远程监控,远程控制云镜、色彩、手动录像、布撤防、重启计算机等控制...
图像
知识 太经典 膜拜
图像
知识 图形
图像
图形设备和系统 图形文件的显示 图形文件的格式 WINDOWS编程基础 WINDOWS
图像
编程 动画技术 三维世界 ...
【Visual C++】游戏开发笔记三十八 浅墨
DirectX
提高
班之六 携手迈向三维世界:四大变换展身手
其实固定渲染流水线和之后我们要学习的可编程渲染流水线体系有很多异曲同工之妙,所以先学习固定功能渲染流水线体系,再学可编程渲染流水线体系,就可以循序渐进,步步为营地掌握好
DirectX
。 空间中的物体需要...
深入Managed
DirectX
9
建议初学者仔细看) <br />文章来源 >> http://www.cnblogs.com/dagon007/archive/2005/05/06/149916.html<br /><br />:【翻译】深入Managed
DirectX
9(一) <br /> Device类是
DirectX
里的...
【Visual C++】游戏开发笔记三十八 浅墨
DirectX
提高
班之六 携手迈向三维世界:四大变换展身手...
作者:毛星云(浅墨) 邮箱: happylifemxy@163.com本篇文章里,我们首先对Direct3D中固定功能渲染流水线相关概念进行了深入的剖析,然后介绍了创建三维游戏世界的四大变换的概念和使用的方方面面,最后依旧是提供...
游戏开发
8,304
社区成员
23,682
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章