6410下对overlay表面可以支持几个?数据手册说可以支持5个但读取驱动性能却只支持1个,为什么?

xqhrs232 2010-08-11 09:48:37
6410下对overlay表面可以支持几个?数据手册说可以支持5个但读取驱动性能却只支持1个,为什么?
...全文
383 37 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
xqhrs232 2012-06-21
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 的回复:]
现在就是不知道OVERLAY怎么动态更新,比如动态更新反应OVERLAY表面上的按钮按下状态,难道重新画一遍吗?
[/Quote]

就是获取OVERLAY表面的DC进行重绘,然后调updateoverlay去显示。

Overlay表面上的按钮怎么更新状态?InvalidateRect还是重新画过?我的怎么不行呢?
http://topic.csdn.net/u/20120619/09/56cab706-8b55-43de-8d84-e04b8833ae82.html
xqhrs232 2012-06-18
  • 打赏
  • 举报
回复
现在就是不知道OVERLAY怎么动态更新,比如动态更新反应OVERLAY表面上的按钮按下状态,难道重新画一遍吗?
qthsrs232 2012-06-16
  • 打赏
  • 举报
回复
两个同时显示的OVERLAY可以同时显示,也可以同时隐藏!!!

OVERLAY表面一般用来放UI,这样可以在需要显示的时候显示出来,在不需要显示的时候隐藏起来。
xqhrs232 2012-06-16
  • 打赏
  • 举报
回复
WINCE600\PUBLIC\DIRECTX\SDK_SAMPLES\DDRAW\SRC\DDUTIL有简单的示例怎么在一个表面上贴图及写文字,可以借鉴参考一下!!!
xqhrs232 2012-06-15
  • 打赏
  • 举报
回复
今天在MTK3360上成功同时显示了2个OVERLAY表面,难道过去不行是硬件平台不行?MTK3360支持最大可见OVERLAY数目是7个!!!同时显示也没怎么调整他们的z-orders啊!
xqhrs232 2012-06-14
  • 打赏
  • 举报
回复
Overlay Z-Orders
http://msdn.microsoft.com/en-us/library/ms903471.aspx


Overlay surfaces are assumed to be on top of all other screen components, but when you display multiple overlay surfaces, you need some way to visually organize them. DirectDraw supports overlay z-ordering to manage the order in which overlays clip each other. Z-order values represent conceptual distances from the primary surface toward the viewer. They range from 0, which is just on top of the primary surface, to 4 billion, which is as close to the viewer as possible, and no two overlays can share the same z-order. You set z-order values by calling the IDirectDrawSurface5::UpdateOverlayZOrder method.

Destination color keys are affected only by the bits on the primary surface, not by overlays occluded by other overlays. Source color keys work on an overlay whether or not a z-order was specified for the overlay.

Overlays without a specified z-order are assumed to have a z-order of 0. Overlays that do not have a specified z-order behave in unpredictable ways when overlaying the same area on the primary surface.

A DirectDraw object does not track the z-orders of overlays displayed by other applications.

Note You can ensure proper clipping of multiple overlay surfaces by calling UpdateOverlayZOrder in response to WM_KILLFOCUS messages. When you receive this message, set your overlay surface to the rearmost z-order position by calling the UpdateOverlayZOrder method with the dwFlags parameter set to DDOVERZ_SENDTOBACK.


xqhrs232 2012-06-14
  • 打赏
  • 举报
回复
xqhrs232 2010-08-16
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 ywc86196225 的回复:]
我 QQ 634623163 具体QQ上与你说
[/Quote]

整的好神秘啊!
haiou_arm 2010-08-16
  • 打赏
  • 举报
回复
标记一下,自己前段时间搞了两天,没搞懂~
xqhrs232 2010-08-15
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 unsway123 的回复:]
呵呵。这是个深入的问题,csdn基本上不会问到这个,我有接触过overlay,但是跟csdn里面大多数人一样,具体的没有调试过,
[/Quote]
应该是个入门级的问题
unsway123 2010-08-13
  • 打赏
  • 举报
回复
呵呵。这是个深入的问题,csdn基本上不会问到这个,我有接触过overlay,但是跟csdn里面大多数人一样,具体的没有调试过,
xqhrs232 2010-08-13
  • 打赏
  • 举报
回复
顶一下,怎么没一个人注意到这个问题?
zwtchy123 2010-08-12
  • 打赏
  • 举报
回复
marking
qthsrs232 2010-08-12
  • 打赏
  • 举报
回复
qthsrs232 2010-08-12
  • 打赏
  • 举报
回复
问题:DirectDraw:在一个主平面上能否同时显示几个覆盖平面"?

http://www.softwelt.com/Know/KnowDetail-237959.html
qthsrs232 2010-08-12
  • 打赏
  • 举报
回复
Create 2 overlay surfaces on systems where DDCAPS::dwMaxVisibleOverlays is 2

http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.directx.graphics/2009-03/msg00025.html


Hello

I have a small DirectX 7 application that has to "block" all available
within overlay surfaces. So I use DD7, call GetCaps, check the
DDCAPS::dwMaxVisibleOverlays and try to create the number of overlay
surfaces that this parameters holds. There is no problem on systems
where the GPU provides only 1 for dwMaxVisibleOverlays (ie. my
8600GT). But there are some GPUs (like Ie Intel GMA X3300) that claims
to have dwMaxVisibleOverlays == 2. In that case the second call the
CreateSurface with DDSCAPS_OVERLAY fails returning DDERR_OUTOFCAPS.
Note that parameter DDCAPS::dwCurrVisibleOverlays is always 0, no
matter if there is already some video player playing to overlay. Note,
that there are no other applications that uses overlays at the same
time i run my program.

The problem dissapears, when I run my program in 2 instances, from
which every one creates only one overlay surface. It seems that there
is somehow non documented restriction (limitation) in DD7 that one
process is able to create only one overlay surface.

Here's some sample code (The problem occurs no matter what is the
dwWidth or dwHeight). If the ddcaps.dwMaxVisibleOverlays is 2, in
second loop the call to CreateSurface returns DDERR_OUTOFCAPS.

Can anybody help me?

Thanks
Dominik

DDSD ddsd;
memset(&ddsd, 0, sizeof ddsd);
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT |
DDSD_PIXELFORMAT;
ddsd.ddsCaps.dwCaps = DDSCAPS_OVERLAY | DDSCAPS_VIDEOMEMORY;
ddsd.dwHeight = 320; // arbitrary values
ddsd.dwWidth = 200; // arbitrary values

// lock all available overlay surfaces
for ( int i=0; i<ddcaps.dwMaxVisibleOverlays; ++i )
{

LPDIRECTDRAWSURFACE7 lpOverlaySurface = NULL;
ddrval = m_lpDD->CreateSurface( &ddsd, &lpOverlaySurface,
NULL );
if( ddrval != DD_OK )
{
TRACE("Can't create overlay surface ! 0x%08lx\n", ddrval);
return(FALSE);
}
else
// keep the surface
{
m_listOverlaySurfaces.push_back
( CAdapt<CComPtr<IDirectDrawSurface7> >(CComPtr<IDirectDrawSurface7>
(lpOverlaySurface)) );

}
}

xqhrs232 2010-08-12
  • 打赏
  • 举报
回复
适用于多路视频的高效视频显示技术(zwshare原创,转载请通知)

http://hi.baidu.com/zwshare/blog/item/59c642cbd36899f752664fbe.html
xqhrs232 2010-08-12
  • 打赏
  • 举报
回复
没人关注过这个问题?
xqhrs232 2010-08-12
  • 打赏
  • 举报
回复
xqhrs232 2010-08-11
  • 打赏
  • 举报
回复
dwMaxVisibleOverlays和dwCurrVisibleOverlays成员携带了硬件设备可以显示的覆盖页面的最大个数,以及其中的多少个可以同时被显示出来的数据。

Windows平台关于显示的一些基本概念

http://blog.csdn.net/jiazhen/archive/2008/06/27/2592357.aspx
加载更多回复(14)

19,518

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧