D3D三层Texture纹理经像素着色器实现渲染YUV420P 第二版
D3D三层Texture纹理经像素着色器实现渲染YUV420P全工程源码,VS2013编译通过。修正了画质问题。运行前确保安装了DirectX9.
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-12-13 22:25 MultiTexture
目录 0 2016-12-13 22:25 MultiTextureBackup
文件 902 2016-11-29 16:20 MultiTextureBackupMultiTexture.sln
目录 0 2016-12-13 22:25 MultiTextureDebug
文件 89600 2016-12-13 22:25 MultiTextureDebugMultiTexture.exe
文件 585420 2016-12-13 22:25 MultiTextureDebugMultiTexture.ilk
文件 1314816 2016-12-13 22:25 MultiTextureDebugMultiTexture.pdb
文件 1892184 2009-09-04 17:29 MultiTextureDebugd3dx9_42.dll
文件 495 2016-12-02 23:15 MultiTextureDebugps_multitex.txt
目录 0 2016-12-13 22:25 MultiTextureMultiTexture
目录 0 2016-12-13 22:25 MultiTextureMultiTextureDebug
文件 7696 2016-11-30 17:39 MultiTextureMultiTextureDebugBuildLog.htm
文件 1174 2016-12-05 20:17 MultiTextureMultiTextureDebugMultiTexture.Build.CppClean.log
文件 1826 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.log
目录 0 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tlog
文件 61726 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tlogCL.read.1.tlog
文件 1308 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tlogCL.write.1.tlog
文件 156 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tlogMultiTexture.lastbuildstate
文件 1250 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tlogcl.command.1.tlog
文件 1364 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tloglink.command.1.tlog
文件 3028 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tloglink.read.1.tlog
文件 518 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tloglink.write.1.tlog
文件 198778 2016-12-05 20:17 MultiTextureMultiTextureDebugd3dUtility.obj
文件 67 2016-11-30 17:39 MultiTextureMultiTextureDebugmt.dep
文件 191514 2016-12-13 22:25 MultiTextureMultiTextureDebugps_multitex.obj
文件 1010688 2016-12-13 22:25 MultiTextureMultiTextureDebugvc120.idb
文件 684032 2016-12-13 22:25 MultiTextureMultiTextureDebugvc120.pdb
文件 4232 2016-11-29 16:25 MultiTextureMultiTextureMultiTexture.vcproj
文件 1419 2016-11-30 17:40 MultiTextureMultiTextureMultiTexture.vcproj.DQ-DEV32-PC.DQ-DEV32.user
文件 5078 2016-12-03 22:00 MultiTextureMultiTextureMultiTexture.vcxproj
文件 1170 2016-12-03 22:00 MultiTextureMultiTextureMultiTexture.vcxproj.filters
............此处省略171个文件信息
//////////////////////////////////////////////////////////////////////////////////////////////////
//
// File: d3dUtility.cpp
//
// Author: Frank Luna (C) All Rights Reserved
//
// System: AMD Athlon 1800+ XP 512 DDR Geforce 3 Windows XP MSVC++ 7.0
//
// Desc: Provides utility functions for simplifying common tasks.
//
//////////////////////////////////////////////////////////////////////////////////////////////////
#include “d3dUtility.h“
// vertex formats
const DWORD d3d::Vertex::FVF = D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1;
bool d3d::InitD3D(
HINSTANCE hInstance
int width int height
bool windowed
D3DDEVTYPE deviceType
IDirect3DDevice9** device)
{
//
// Create the main application window.
//
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)d3d::WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(0 IDI_APPLICATION);
wc.hCursor = LoadCursor(0 IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockobject(WHITE_BRUSH);
wc.lpszMenuName = 0;
wc.lpszClassName = “Direct3D9App“;
if( !RegisterClass(&wc) )
{
::MessageBox(0 “RegisterClass() - FAILED“ 0 0);
return false;
}
HWND hwnd = 0;
hwnd = ::CreateWindow(“Direct3D9App“ “Direct3D9App“
WS_EX_TOPMOST
0 0 width height
0 /*parent hwnd*/ 0 /* menu */ hInstance 0 /*extra*/);
if( !hwnd )
{
::MessageBox(0 “CreateWindow() - FAILED“ 0 0);
return false;
}
::ShowWindow(hwnd SW_SHOW);
::UpdateWindow(hwnd);
//
// Init D3D:
//
HRESULT hr = 0;
// Step 1: Create the IDirect3D9 object.
IDirect3D9* d3d9 = 0;
d3d9 = Direct3DCreate9(D3D_SDK_VERSION);
if( !d3d9 )
{
::MessageBox(0 “Direct3DCreate9() - FAILED“ 0 0);
return false;
}
// Step 2: Check for hardware vp.
D3DCAPS9 caps;
d3d9->GetDeviceCaps(D3DADAPTER_DEFAULT deviceType &caps);
int vp = 0;
if( caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT )
vp = D3DCREATE_HARDWARE_VERTEXPROCESSING;
else
vp = D3DCREATE_SOFTWARE_VERTEXPROCESSING;
// Step 3: Fill out the D3DPRESENT_PARAMETERS structure.
D3DDISPLAYMODE d3ddm;
UINT adapter = D3DADAPTER_DEFAULT;
IDirect3D9_GetAdapterDisplayMode(d3d9 adapter &d3ddm);
// 默认不使用多采样
D3DMULTISAMPLE_TYPE multiType = D3DMULTISAMPLE_NONE;
if(d3d9->CheckDeviceMultiSampleType(D3DADAPTER_DEFAULT
D3DDEVTYPE_HAL D3DFMT_A8R8G8B8 !windowed
D3DMULTISAMPLE_4_SAMPLES
NULL) == D3D_OK)
{
// 保存多采样类型
multiType = D3DMULTISAMPLE_4_SAMPLES;
}
D3DPRESENT_PARAMETERS d3dpp;
d3dpp.BackBufferWidth = width;
d3dpp.BackBufferHeight = height;
d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;
d3dpp.BackBufferCount = 1;
d3dpp.MultiSampleType = multiType;
d3dpp.MultiSampleQuality = 0;
d3dpp.SwapEffect = D3DSWAPEFFE
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-12-13 22:25 MultiTexture
目录 0 2016-12-13 22:25 MultiTextureBackup
文件 902 2016-11-29 16:20 MultiTextureBackupMultiTexture.sln
目录 0 2016-12-13 22:25 MultiTextureDebug
文件 89600 2016-12-13 22:25 MultiTextureDebugMultiTexture.exe
文件 585420 2016-12-13 22:25 MultiTextureDebugMultiTexture.ilk
文件 1314816 2016-12-13 22:25 MultiTextureDebugMultiTexture.pdb
文件 1892184 2009-09-04 17:29 MultiTextureDebugd3dx9_42.dll
文件 495 2016-12-02 23:15 MultiTextureDebugps_multitex.txt
目录 0 2016-12-13 22:25 MultiTextureMultiTexture
目录 0 2016-12-13 22:25 MultiTextureMultiTextureDebug
文件 7696 2016-11-30 17:39 MultiTextureMultiTextureDebugBuildLog.htm
文件 1174 2016-12-05 20:17 MultiTextureMultiTextureDebugMultiTexture.Build.CppClean.log
文件 1826 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.log
目录 0 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tlog
文件 61726 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tlogCL.read.1.tlog
文件 1308 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tlogCL.write.1.tlog
文件 156 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tlogMultiTexture.lastbuildstate
文件 1250 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tlogcl.command.1.tlog
文件 1364 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tlogli
文件 3028 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tlogli
文件 518 2016-12-13 22:25 MultiTextureMultiTextureDebugMultiTexture.tlogli
文件 198778 2016-12-05 20:17 MultiTextureMultiTextureDebugd3dUtility.obj
文件 67 2016-11-30 17:39 MultiTextureMultiTextureDebugmt.dep
文件 191514 2016-12-13 22:25 MultiTextureMultiTextureDebugps_multitex.obj
文件 1010688 2016-12-13 22:25 MultiTextureMultiTextureDebugvc120.idb
文件 684032 2016-12-13 22:25 MultiTextureMultiTextureDebugvc120.pdb
文件 4232 2016-11-29 16:25 MultiTextureMultiTextureMultiTexture.vcproj
文件 1419 2016-11-30 17:40 MultiTextureMultiTextureMultiTexture.vcproj.DQ-DEV32-PC.DQ-DEV32.user
文件 5078 2016-12-03 22:00 MultiTextureMultiTextureMultiTexture.vcxproj
文件 1170 2016-12-03 22:00 MultiTextureMultiTextureMultiTexture.vcxproj.filters
............此处省略171个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)