IDirect3DSurface9的D3DFORMAT格式
/* Formats
* Most of these names have the following convention:
* A = Alpha
* R = Red
* G = Green
* B = Blue
* X = Unused Bits
* P = Palette
* L = Luminance
* U = dU coordinate for BumpMap
* V = dV coordinate for BumpMap
* S = Stencil
* D = Depth (e.g. Z or W buffer)
* C = Computed from other channels (typically on certain read operations)
*
* Further, the order of the pieces are from MSB first; hence
* D3DFMT_A8L8 indicates that the high byte of this two byte
* format is alpha.
*
* D3DFMT_D16_LOCKABLE indicates:
* - An integer 16-bit value.
* - An app-lockable surface.
*
* D3DFMT_D32F_LOCKABLE indicates:
* - An IEEE 754 floating-point value.
* - An app-lockable surface.
*
* All Depth/Stencil formats except D3DFMT_D16_LOCKABLE and D3DFMT_D32F_LOCKABLE indicate:
* - no particular bit ordering per pixel, and
* - are not app lockable, and
* - the driver is allowed to consume more than the indicated
* number of bits per Depth channel (but not Stencil channel).
*/
#ifndef MAKEFOURCC
#define MAKEFOURCC(ch0, ch1, ch2, ch3) \
((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << ) | \
((DWORD)(BYTE)(ch2) << ) | ((DWORD)(BYTE)(ch3) << ))
#endif /* defined(MAKEFOURCC) */
typedef enum _D3DFORMAT
{
D3DFMT_UNKNOWN = , D3DFMT_R8G8B8 = ,
D3DFMT_A8R8G8B8 = ,
D3DFMT_X8R8G8B8 = ,
D3DFMT_R5G6B5 = ,
D3DFMT_X1R5G5B5 = ,
D3DFMT_A1R5G5B5 = ,
D3DFMT_A4R4G4B4 = ,
D3DFMT_R3G3B2 = ,
D3DFMT_A8 = ,
D3DFMT_A8R3G3B2 = ,
D3DFMT_X4R4G4B4 = ,
D3DFMT_A2B10G10R10 = ,
D3DFMT_A8B8G8R8 = ,
D3DFMT_X8B8G8R8 = ,
D3DFMT_G16R16 = ,
D3DFMT_A2R10G10B10 = ,
D3DFMT_A16B16G16R16 = , D3DFMT_A8P8 = ,
D3DFMT_P8 = , D3DFMT_L8 = ,
D3DFMT_A8L8 = ,
D3DFMT_A4L4 = , D3DFMT_V8U8 = ,
D3DFMT_L6V5U5 = ,
D3DFMT_X8L8V8U8 = ,
D3DFMT_Q8W8V8U8 = ,
D3DFMT_V16U16 = ,
D3DFMT_A2W10V10U10 = , D3DFMT_UYVY = MAKEFOURCC('U', 'Y', 'V', 'Y'),
D3DFMT_R8G8_B8G8 = MAKEFOURCC('R', 'G', 'B', 'G'),
D3DFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', ''),
D3DFMT_G8R8_G8B8 = MAKEFOURCC('G', 'R', 'G', 'B'),
D3DFMT_DXT1 = MAKEFOURCC('D', 'X', 'T', ''),
D3DFMT_DXT2 = MAKEFOURCC('D', 'X', 'T', ''),
D3DFMT_DXT3 = MAKEFOURCC('D', 'X', 'T', ''),
D3DFMT_DXT4 = MAKEFOURCC('D', 'X', 'T', ''),
D3DFMT_DXT5 = MAKEFOURCC('D', 'X', 'T', ''), D3DFMT_D16_LOCKABLE = ,
D3DFMT_D32 = ,
D3DFMT_D15S1 = ,
D3DFMT_D24S8 = ,
D3DFMT_D24X8 = ,
D3DFMT_D24X4S4 = ,
D3DFMT_D16 = , D3DFMT_D32F_LOCKABLE = ,
D3DFMT_D24FS8 = , /* D3D9Ex only -- */
#if !defined(D3D_DISABLE_9EX) /* Z-Stencil formats valid for CPU access */
D3DFMT_D32_LOCKABLE = ,
D3DFMT_S8_LOCKABLE = , #endif // !D3D_DISABLE_9EX
/* -- D3D9Ex only */ D3DFMT_L16 = , D3DFMT_VERTEXDATA =,
D3DFMT_INDEX16 =,
D3DFMT_INDEX32 =, D3DFMT_Q16W16V16U16 =, D3DFMT_MULTI2_ARGB8 = MAKEFOURCC('M','E','T',''), // Floating point surface formats // s10e5 formats (16-bits per channel)
D3DFMT_R16F = ,
D3DFMT_G16R16F = ,
D3DFMT_A16B16G16R16F = , // IEEE s23e8 formats (32-bits per channel)
D3DFMT_R32F = ,
D3DFMT_G32R32F = ,
D3DFMT_A32B32G32R32F = , D3DFMT_CxV8U8 = , /* D3D9Ex only -- */
#if !defined(D3D_DISABLE_9EX) // Monochrome 1 bit per pixel format
D3DFMT_A1 = , // 2.8 biased fixed point
D3DFMT_A2B10G10R10_XR_BIAS = , // Binary format indicating that the data has no inherent type
D3DFMT_BINARYBUFFER = , #endif // !D3D_DISABLE_9EX
/* -- D3D9Ex only */ D3DFMT_FORCE_DWORD =0x7fffffff
} D3DFORMAT;
看到其中没有yuv420p,所以我们需要自己添加枚举,但是怎么定义yuv420p网上找不到具体的方法,
https://www.fourcc.org/yuv.php 这个位置有规范了yuv的fourcc code
须知 yuv420p 又分为yu12 和yv12
yu12 在安卓下双称I420

yv12

所以我们在上面说的网址中查表添加两个枚举
D3DFMT_YUV420P_YU12 = 0x30323449,
D3DFMT_YUV420P_YV12 = 0x32315659,
然后就可以愉快的使用surface渲染yuv420p了
向雷神致敬.
IDirect3DSurface9的D3DFORMAT格式的更多相关文章
- 在DirectShow中支持DXVA 2.0(Supporting DXVA 2.0 in DirectShow)
这几天在做dxva2硬件加速,找不到什么资料,翻译了一下微软的两篇相关文档.并准备记录一下用ffmpeg实现dxva2,将在第三篇写到.这是第二篇.,英文原址:https://msdn.microso ...
- 日期格式代码出现两次的错误 ORA-01810
错误的原因是使用了两次MM . 一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 11:11:21','yyyy-MM-dd ...
- 一个粗心的Bug,JSON格式不规范导致AJAX错误
一.事件回放 今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...
- excel 日期/数字格式不生效需要但双击才会生效的解决办法
原因: Excel2007设置过单元格格式后,并不能立即生效必须挨个双击单元格,才能生效.数据行很多.效率太低. 原因:主要是一些从网上拷贝过来的日期或数字excel默认为文本格式或特殊-中文数字格式 ...
- 很多人很想知道怎么扫一扫二维码就能打开网站,就能添加联系人,就能链接wifi,今天说下这些格式,明天做个demo
有些功能部分手机不能使用,网站,通讯录,wifi基本上每个手机都可以使用. 在看之前你可以扫一扫下面几个二维码先看看效果: 1.二维码生成 网址 (URL) 包含网址的 二维码生成 是大家平时最常接触 ...
- System.Guid ToString五中格式
参考:https://msdn.microsoft.com/en-us/library/97af8hh4.aspx 测试代码: using System; using System.Collectio ...
- WebApi返回Json格式字符串
WebApi返回json格式字符串, 在网上能找到好几种方法, 其中有三种普遍的方法, 但是感觉都不怎么好. 先贴一下, 网上给的常用方法吧. 方法一:(改配置法) 找到Global.asax文件,在 ...
- 你所能用到的BMP格式介绍
原理篇: 一.编码的意义. 让我们从一个简单的问题开始,-2&-255(中间的操作符表示and的意思)的结果是多少,这个很简单的问题,但是能够写出解答过程的人并不 多.这个看起来和图片格式没有 ...
- 值得注意的ibatis动态sql语法格式
一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...
随机推荐
- RDP连接失败的解决方法
当RDP某一桌面时,远程桌面连接提示:发生身份验证错误,要求的函数不受支持. 解决方法: 打开Run, 输入gpedit.msc,打开组策略编辑器. 如上如所示,修改配置加密Oracle修正策略. E ...
- P4095 [HEOI2013]Eden 的新背包问题
P4095 [HEOI2013]Eden 的新背包问题 题解 既然假定第 i 个物品不可以选,那么我们就设置两个数组 dpl[][] 正序选前i个物品,dpr[][] 倒序选前i个物品 ,价格不超过 ...
- 深度学习之加载VGG19模型获取特征图
1.加载VGG19获取图片特征图 # coding = utf-8 import tensorflow as tf import numpy as np import matplotlib.pyplo ...
- 机器学习之DBSCAN聚类算法
可以看该博客:https://www.cnblogs.com/aijianiula/p/4339960.html 1.知识点 """ 基本概念: 1.核心对象:某个点的密 ...
- virtualbox迁移虚拟机
我用的Ubuntu16.04,下图为装好virtualbox时安装好系统后默认的存储位置. 促使我想迁移的原因是我的/home下因为虚拟机的存储原因导致/home下还剩1.5M可用空间..... 该目 ...
- SSM框架—Spring AOP之基于注解的声明式AspectJ(Demo)
项目结构 XML <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http ...
- 【转】实现1080P延迟低于500ms的实时超清直播传输技术
最近由于公司业务关系,需要一个在公网上能实时互动超清视频的架构和技术方案.众所周知,视频直播用 CDN + RTMP 就可以满足绝大部分视频直播业务,我们也接触了和测试了几家 CDN 提供的方案,单人 ...
- openstack核心组件--glance镜像(2)
一.glance介绍: Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供Restful API可以查询虚 ...
- Minimum number of swaps required to sort an array
https://www.hackerrank.com/challenges/minimum-swaps-2/problem Minimum Swaps II You are given an unor ...
- FUZZ测试简介
基本思想:利用黑盒方法,发送大量恶意/随机数据到被测试系统,通过监视系统运行过程中的异常,来发现应用程序中可能存在的安全问题.