用于“创建像Flip3D之类的应用程序”的API是什么? [英] What is the API to "create applications like Flip3D"

查看:118
本文介绍了用于“创建像Flip3D之类的应用程序”的API是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图弄清楚如何使用DWM将Window的副本渲染到我自己想要的位置。我唯一能告诉DWM渲染的地方就是缩略图API。



但是MSDN的:



  • 已发运的许可产品应符合《合规规则》,并且设计和制造的方式显然应为
    旨在有效地使
    令人沮丧的尝试,以修改此类许可产品,以违反HDCP规范和
    符合性规则的内容保护要求。


  • 许可产品的设计和制造方式应明确旨在有效地挫败以试图发现或揭示设备密钥或其他高度机密的
    信息


  • 许可产品应至少采用以下技术,并且应采用明确设计的方式有效地 frustrate 试图使
    违反HDCP
    规范和合规性规则的内容保护要求



你必须怪索尼。

解决方案

看看此项目: https://github.com/gratianlup/SmartFlip 。它使用WPF和Thumbnail API。


I am trying to figure out how to use DWM to render a copy of a Window into my own desired location. The only thing I can find to tell DWM to render somewhere is with the thumbnail APIs.

But MSDN's DWM Thumbnail Overview they specifically warn me off:

Note DWM thumbnails do not enable developers to create applications like the Windows Vista Flip3D (WINKEY-TAB) feature. Thumbnails are rendered directly to the destination window in 2-D.

I am told that the thumbnailing api cannot be used to create applications like Flip3D, but they don't say which api can be used to create applications like the Windows Flip3D.

So what API can be used to create applications like the Windows Vista Flip3D?


Background

With Windows Desktop Composition running, applications draw their window client-area's onto their own private buffer. (This contrasts with previous versions of Windows where every application drew directly on the screen). This client area image is then placed in a frame (the title bar, minimize, maximize, restore buttons, etc) and then drawn (i.e. composited) onto the desktop - along with all the other windows that are open:

Because this buffer is private, and because graphics cards in the last few years have become powerful at performing 3D tasks, Windows can then start to perform some neat tricks. One of them is to be able to manipulate the client window, performing scaling and perspective changes to it. This allows the live "thumbnail" api - where Windows will draw a thumbnail size copy of a window where you tell it to. Since this is all happening in the hardware, it is very fast.

The other ability is the Flip3D (Win+Tab). The compositor can perform 3d positioning of a window. Again, because this is all done in hardware it is very fast.

I have found the API to tell the Desktop Window Monitor to draw me a thumbnail of an application "here":

//Register a thumbnail we want
DwmRegisterThumbnail({in}hwndDestination, {in}hwndSource, out thumbnail);

// Start displaying the thumbnail
DwmUpdateThumbnailProperties({in}thumbnail, {in}thumbproperties);

But I cannot find the API to tell the DWM to draw me the full-size version of a window.


Edit: You can't blame Microsoft for copy protection in Windows:

  • Licensed Products as shipped shall comply with the Compliance Rules and shall be designed and manufactured in a manner that is clearly designed to effectively frustrate attempts to modify such Licensed Products to defeat the content protection requirements of the HDCP Specification and the Compliance Rules.

  • Licensed Products shall be designed and manufactured in a manner that is clearly intended to effectively frustrate attempts to discover or reveal Device Keys or other Highly Confidential Information

  • Licensed Products shall use at least the following techniques, in a manner that is clearly designed to effectively frustrate attempts to defeat the content protection requirements of the HDCP Specification and the Compliance Rules

You have to blame Sony.

解决方案

Take a look at this project: https://github.com/gratianlup/SmartFlip. It uses WPF and the Thumbnail API.

这篇关于用于“创建像Flip3D之类的应用程序”的API是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆