首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Direct3D10:没有32位ARGB格式?

Direct3D10:没有32位ARGB格式?
EN

Stack Overflow用户
提问于 2009-03-17 11:09:22
回答 2查看 918关注 0票数 2

我开始为我现有的d3d9图形后端添加d3d10支持。

问题在于所有现有的代码(在几个应用程序中...)使用ARGB格式的颜色,但是我找不到与d3d10匹配的格式模式。是d3d10根本不支持ARGB颜色格式,还是我错过了什么?如果我没有错过什么是在它们之间转换的好方法,它只需要将第一个字节移到末尾,这看起来是一个非常简单的概念,但是我看不出除了将颜色分解成组件并重建it...eg之外还能做什么:

代码语言:javascript
复制
//unsigned colIn, colOut
unsigned char
    a = (colIn & 0xFF000000) >> 24,
    r = (colIn & 0x00FF0000) >> 16,
    g = (colIn & 0x0000FF00) >> 8,
    b = (colIn & 0x000000FF);
colOut = (r << 24) | (g << 16) | (b << 8) | a;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-03-17 11:17:49

查看相关的enum type,我(也)找不到任何AxRxGxBx格式。所以看起来你需要自己去喝水了。

这是非常适合SSE optimization的当然,检查你的编译器是否能够将代码优化成使用SSE的东西,性能应该是好的。

在编写此代码时,请考虑字符顺序问题,这很容易出错,如果不考虑字符顺序,则很难编写此代码。

票数 1
EN

Stack Overflow用户

发布于 2009-03-17 11:23:32

在我看来,该格式丢失了,因此您需要重新排序您的数据。然而,如果你打算使用RGBA,你不需要像你的例子那样分离所有的颜色,因为R,G和B仍然是连续的相同顺序,你可以将这3个通道作为一个块移动。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/653787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档