Deep-Color(每通道10位+)如何在Win32中运行?

时间:2017-01-07 18:49:02

标签: winapi colors

我没有任何支持Deep-Color的硬件连接到我的电脑上,因此我无法自我实验,并且在线搜索" win32深色"或" win32 10位颜色" (或30位,48位或64位)没有任何相关或最近。最重要的结果仍然是2009年的NVIDIA PDF:https://www.nvidia.com/docs/IO/40049/TB-04701-001_v02_new.pdf - 它描述了使用OpenGL和NVIDIA API来显示每个通道超过8位的图像。

我理解使用OpenGL如何显示30位彩色图像:它有效地绕过操作系统,OpenGL表面在GPU上以深色呈现,并通过DisplayPort以适当的格式直接发送到显示器或HDMI。

但OpenGL以外有哪些选择?

在Win32中,在使用CreateWindow创建窗口后,通过处理WM_PAINT消息来呈现它,然后调用BeginPaint,它为您提供了GDI设备的句柄 - 上下文,不能超过32bpp(每通道8位)。

虽然GDI表面上抽象出渲染设备的实现细节,包括颜色深度,但是不可能指定10bpp RGB值,例如(COLORREF结构被硬编码为使用32位(8bpp){ {1}}值),漏洞抽象。

这是否意味着使用处理DWORD的程序在Windows桌面中显示30bpp /深色内容并且OpenGL是唯一的方法是不可能的?

如果您试图从内存中的OpenGL渲染缓冲区向窗口表面进行blit会发生什么? (即如果在BD播放器中显示深色BluRay光盘时按PrintScreen,或在Photoshop中显示30位内容会发生什么?)

0 个答案:

没有答案